@colijnit/homedecorator 255.1.4 → 255.1.6
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/app/core/enum/message-type.enum.d.ts +3 -1
- package/app/core/interface/message-with-payload.interface.d.ts +6 -0
- package/app/core/model/homedecorator-settings-options.d.ts +2 -0
- package/app/core/service/homedecorator-app-event.service.d.ts +1 -0
- package/app/core/service/homedecorator-connector-adapter.service.d.ts +2 -0
- package/app/core/service/homedecorator-connector.service.d.ts +5 -4
- package/app/core/service/homedecorator-settings.service.d.ts +2 -1
- package/app/core/service/presets.service.d.ts +3 -1
- package/app/homedecorator.component.d.ts +3 -1
- package/app/homedecorator.module.d.ts +2 -1
- package/app/plugins/core3d/service/floor-pattern.service.d.ts +1 -1
- package/app/plugins/core3d/service/floor-tile-intersection.service.d.ts +2 -1
- package/app/plugins/core3d/service/floor.service.d.ts +3 -1
- package/app/plugins/core3d/service/post-processing.service.d.ts +21 -7
- package/app/plugins/core3d/service/scene.service.d.ts +1 -1
- package/app/plugins/core3d/service/ssr.service.d.ts +0 -1
- package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +11 -2
- package/app/plugins/model-uploader/model-previewer/model-preview.component.scss +185 -15
- package/app/plugins/model-uploader/model-uploader.module.d.ts +5 -1
- package/app/plugins/render/render-dialog/render-dialog.component.d.ts +4 -1
- package/app/plugins/render/render-dialog/render-dialog.component.scss +5 -5
- package/app/plugins/room-planner/components/floorplanner/floorplanner.component.d.ts +3 -1
- package/app/plugins/room-planner/components/floorplanner/service/room.service.d.ts +1 -0
- package/app/plugins/room-planner/components/settings/settings.component.d.ts +5 -1
- package/app/plugins/room-planner/components/texture-editor/texture-editor.component.d.ts +4 -1
- package/app/plugins/room-planner/room-planner/room-planner.component.scss +1 -0
- package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +1 -3
- package/app/plugins/toolbar/draw-dialog/draw-dialog.component.d.ts +2 -0
- package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
- package/app/plugins/toolbar/toolbar/toolbar.component.d.ts +2 -0
- package/assets/icons/dash-button.svg +7 -0
- package/assets/icons/pen-ruler.svg +1 -0
- package/assets/icons/retry-button.svg +7 -0
- package/bundles/colijnit-homedecorator.umd.js +822 -601
- package/bundles/colijnit-homedecorator.umd.js.map +1 -1
- package/esm2015/app/app.version.js +3 -3
- package/esm2015/app/core/enum/message-type.enum.js +3 -1
- package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
- package/esm2015/app/core/model/homedecorator-settings-options.js +3 -1
- package/esm2015/app/core/service/3dm-api.js +4 -4
- package/esm2015/app/core/service/homedecorator-app-event.service.js +2 -1
- package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +25 -2
- package/esm2015/app/core/service/homedecorator-connector.service.js +25 -22
- package/esm2015/app/core/service/homedecorator-settings.service.js +3 -2
- package/esm2015/app/core/service/presets.service.js +13 -5
- package/esm2015/app/core/utils/material.utils.js +3 -3
- package/esm2015/app/homedecorator.component.js +26 -19
- package/esm2015/app/homedecorator.module.js +8 -4
- package/esm2015/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.js +5 -5
- package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/factory.js +3 -2
- package/esm2015/app/plugins/core3d/service/ar.service.js +2 -1
- package/esm2015/app/plugins/core3d/service/floor-pattern.service.js +24 -18
- package/esm2015/app/plugins/core3d/service/floor-tile-intersection.service.js +13 -8
- package/esm2015/app/plugins/core3d/service/floor.service.js +9 -4
- package/esm2015/app/plugins/core3d/service/light-presets.service.js +10 -8
- package/esm2015/app/plugins/core3d/service/lights.service.js +8 -1
- package/esm2015/app/plugins/core3d/service/outline.service.js +4 -6
- package/esm2015/app/plugins/core3d/service/post-processing.service.js +148 -51
- package/esm2015/app/plugins/core3d/service/scene-event.service.js +14 -7
- package/esm2015/app/plugins/core3d/service/scene.service.js +84 -74
- package/esm2015/app/plugins/core3d/service/ssr.service.js +2 -53
- package/esm2015/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.js +10 -5
- package/esm2015/app/plugins/lite-selector/lite-selector/lite-selector.component.js +2 -2
- package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +281 -166
- package/esm2015/app/plugins/model-uploader/model-uploader.module.js +22 -3
- package/esm2015/app/plugins/render/render-controls/render-controls.component.js +3 -2
- package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +19 -14
- package/esm2015/app/plugins/render/service/new-render.service.js +4 -2
- package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +4 -2
- package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +2 -2
- package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner.component.js +29 -15
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +5 -2
- package/esm2015/app/plugins/room-planner/components/settings/settings.component.js +12 -5
- package/esm2015/app/plugins/room-planner/components/texture-editor/texture-editor.component.js +31 -15
- package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +691 -683
- package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +43 -41
- package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +1 -1
- package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +26 -20
- package/esm2015/app/plugins/toolbar/save-dialog/save-dialog.component.js +2 -2
- package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +15 -8
- package/esm2015/app/shared/loading-overlay/loading-overlay.component.js +4 -2
- package/esm2015/app/shared/model-dialog/model-dialog-furniture-list.component.js +3 -3
- package/fesm2015/colijnit-homedecorator.js +1656 -1322
- package/fesm2015/colijnit-homedecorator.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ import { NewRenderService } from '../service/new-render.service';
|
|
|
10
10
|
import { ApiServiceModule } from '../../../core/service/3dm-api';
|
|
11
11
|
import { MessageBusService } from '../../../core/service/message-bus.service';
|
|
12
12
|
import { UtilsService } from '../../../core/service/utils.service';
|
|
13
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
export declare class RenderDialogComponent implements OnDestroy {
|
|
15
16
|
cameraService: CameraService;
|
|
@@ -20,6 +21,7 @@ export declare class RenderDialogComponent implements OnDestroy {
|
|
|
20
21
|
private _settingsService;
|
|
21
22
|
private _newRenderService;
|
|
22
23
|
private _3dmRenderApi;
|
|
24
|
+
private _dialog;
|
|
23
25
|
readonly renderStatus: typeof RenderStatus;
|
|
24
26
|
readonly iconName: typeof IconName;
|
|
25
27
|
readonly renderModes: typeof RenderModes;
|
|
@@ -38,7 +40,7 @@ export declare class RenderDialogComponent implements OnDestroy {
|
|
|
38
40
|
get disablePictureButton(): boolean;
|
|
39
41
|
get renderedImages(): string[];
|
|
40
42
|
private _subs;
|
|
41
|
-
constructor(cameraService: CameraService, renderService: RenderService, messageService: MessageBusService, _utilsService: UtilsService, _domSanitizer: DomSanitizer, _settingsService: HomedecoratorSettingsService, _newRenderService: NewRenderService, _3dmRenderApi: ApiServiceModule);
|
|
43
|
+
constructor(cameraService: CameraService, renderService: RenderService, messageService: MessageBusService, _utilsService: UtilsService, _domSanitizer: DomSanitizer, _settingsService: HomedecoratorSettingsService, _newRenderService: NewRenderService, _3dmRenderApi: ApiServiceModule, _dialog: MatDialog);
|
|
42
44
|
ngOnDestroy(): void;
|
|
43
45
|
changeInputSize(model: number): void;
|
|
44
46
|
addRenderCustom(): void;
|
|
@@ -49,6 +51,7 @@ export declare class RenderDialogComponent implements OnDestroy {
|
|
|
49
51
|
addRendersToQueue(): Promise<void>;
|
|
50
52
|
startRenderingRoom(): Promise<void>;
|
|
51
53
|
createBlenderRender(): void;
|
|
54
|
+
cancelBlenderRender(): void;
|
|
52
55
|
saveImage(url: string): void;
|
|
53
56
|
removeRender(url: string, index: number): boolean;
|
|
54
57
|
renderOnChange(): void;
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
position: absolute;
|
|
29
29
|
top: 0;
|
|
30
30
|
right: 0;
|
|
31
|
-
font-size:
|
|
31
|
+
font-size: 20px;
|
|
32
32
|
padding: 0;
|
|
33
|
-
width:
|
|
33
|
+
width: 30px;
|
|
34
34
|
min-width: 0px;
|
|
35
|
-
line-height:
|
|
35
|
+
line-height: 30px;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
.render_btn {
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
|
|
49
49
|
.render-camera-positions-left {
|
|
50
50
|
//width: 30%;
|
|
51
|
-
min-width:
|
|
51
|
+
min-width: 400px;
|
|
52
52
|
background: #e4edf4;
|
|
53
|
-
padding:
|
|
53
|
+
padding: 30px;
|
|
54
54
|
text-align: center;
|
|
55
55
|
|
|
56
56
|
//&.large {
|
|
@@ -7,6 +7,7 @@ import { MessageBusService } from '../../../../core/service/message-bus.service'
|
|
|
7
7
|
import { ConfigurationService } from '../../../../core/service/configuration.service';
|
|
8
8
|
import { DimensioningService } from '../../../../core/service/dimensioning.service';
|
|
9
9
|
import { ViewModeService } from '../../../../core/service/view-mode.service';
|
|
10
|
+
import { RoomService } from './service/room.service';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
export declare class FloorplannerComponent implements AfterViewInit, OnDestroy {
|
|
12
13
|
private _floorplanService;
|
|
@@ -14,6 +15,7 @@ export declare class FloorplannerComponent implements AfterViewInit, OnDestroy {
|
|
|
14
15
|
private _configurationService;
|
|
15
16
|
private _dimensionService;
|
|
16
17
|
private _viewModeService;
|
|
18
|
+
private _roomService;
|
|
17
19
|
canvasElement: ElementRef;
|
|
18
20
|
selectedWallChange: Subject<SelectedWallEvent>;
|
|
19
21
|
private readonly _viewScaleMin;
|
|
@@ -82,7 +84,7 @@ export declare class FloorplannerComponent implements AfterViewInit, OnDestroy {
|
|
|
82
84
|
handleDocKeyDown(event: KeyboardEvent): void;
|
|
83
85
|
handleDocKeyUp(event: KeyboardEvent): void;
|
|
84
86
|
resizeGrid(): void;
|
|
85
|
-
constructor(_floorplanService: FloorplanService, _messageBusService: MessageBusService, _configurationService: ConfigurationService, _dimensionService: DimensioningService, _viewModeService: ViewModeService);
|
|
87
|
+
constructor(_floorplanService: FloorplanService, _messageBusService: MessageBusService, _configurationService: ConfigurationService, _dimensionService: DimensioningService, _viewModeService: ViewModeService, _roomService: RoomService);
|
|
86
88
|
ngOnDestroy(): void;
|
|
87
89
|
ngAfterViewInit(): void;
|
|
88
90
|
showStartMessage(): void;
|
|
@@ -65,6 +65,7 @@ export declare class RoomService implements OnDestroy {
|
|
|
65
65
|
getRoomCenter(): Vector3;
|
|
66
66
|
updateFloorsAndEdges(): Promise<void>;
|
|
67
67
|
updateCeilings(): void;
|
|
68
|
+
resetAllRooms(): void;
|
|
68
69
|
private _showHideWalls;
|
|
69
70
|
private _updateEdgeVisibility;
|
|
70
71
|
private _setAllEdgesVisible;
|
|
@@ -18,6 +18,7 @@ export declare class SettingsComponent implements OnInit, OnDestroy {
|
|
|
18
18
|
private _itemService;
|
|
19
19
|
private _appService;
|
|
20
20
|
private _fontService;
|
|
21
|
+
private _settingsService;
|
|
21
22
|
readonly configurationKey: typeof ConfigurationKey;
|
|
22
23
|
versionFieldRef: ElementRef;
|
|
23
24
|
minWallHeight: number;
|
|
@@ -36,6 +37,8 @@ export declare class SettingsComponent implements OnInit, OnDestroy {
|
|
|
36
37
|
showCameraControls: boolean;
|
|
37
38
|
showLightControls: boolean;
|
|
38
39
|
showPostProcessingSettings: boolean;
|
|
40
|
+
showAA: boolean;
|
|
41
|
+
showAO: boolean;
|
|
39
42
|
showWalls: boolean;
|
|
40
43
|
showCeiling: boolean;
|
|
41
44
|
wallSnapping: boolean;
|
|
@@ -45,11 +48,12 @@ export declare class SettingsComponent implements OnInit, OnDestroy {
|
|
|
45
48
|
interiorLightIntensity: number;
|
|
46
49
|
showSettingsOptions: boolean;
|
|
47
50
|
enableTouch: boolean;
|
|
48
|
-
constructor(settingsService: HomedecoratorSettingsService, _snackBar: MatSnackBar, _messageBus: MessageBusService, _configurationService: ConfigurationService, _sceneService: SceneService, _itemService: ItemService, _appService: HomedecoratorAppService, _fontService: FontService);
|
|
51
|
+
constructor(settingsService: HomedecoratorSettingsService, _snackBar: MatSnackBar, _messageBus: MessageBusService, _configurationService: ConfigurationService, _sceneService: SceneService, _itemService: ItemService, _appService: HomedecoratorAppService, _fontService: FontService, _settingsService: HomedecoratorSettingsService);
|
|
49
52
|
ngOnInit(): void;
|
|
50
53
|
ngOnDestroy(): void;
|
|
51
54
|
applyNewHeight(height: number): void;
|
|
52
55
|
toggle(key: ConfigurationKey, checked: boolean): void;
|
|
56
|
+
toggleOption(option: string, checked: boolean): void;
|
|
53
57
|
setInteriorLightIntensity(value: number): void;
|
|
54
58
|
removeAll(): void;
|
|
55
59
|
compareEnum(a: string, b: string): boolean;
|
|
@@ -3,6 +3,7 @@ import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges }
|
|
|
3
3
|
import { TextureType } from '../../../../core/model/texture-type';
|
|
4
4
|
import { Texture } from '../../../../core/model/texture';
|
|
5
5
|
import { HomedecoratorSettingsService } from '../../../../core/service/homedecorator-settings.service';
|
|
6
|
+
import { MessageBusService } from '../../../../core/service/message-bus.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare enum TextureEditorOptions {
|
|
8
9
|
None = 0,
|
|
@@ -11,6 +12,7 @@ export declare enum TextureEditorOptions {
|
|
|
11
12
|
Both = 3
|
|
12
13
|
}
|
|
13
14
|
export declare class TextureEditorComponent implements OnInit, OnChanges, OnDestroy {
|
|
15
|
+
messageService: MessageBusService;
|
|
14
16
|
private _settingsService;
|
|
15
17
|
readonly textureType: typeof TextureType;
|
|
16
18
|
fileInput: ElementRef;
|
|
@@ -70,10 +72,11 @@ export declare class TextureEditorComponent implements OnInit, OnChanges, OnDest
|
|
|
70
72
|
emit: (value: any) => void;
|
|
71
73
|
release: () => void;
|
|
72
74
|
};
|
|
73
|
-
constructor(_settingsService: HomedecoratorSettingsService);
|
|
75
|
+
constructor(messageService: MessageBusService, _settingsService: HomedecoratorSettingsService);
|
|
74
76
|
ngOnInit(): void;
|
|
75
77
|
ngOnDestroy(): void;
|
|
76
78
|
ngOnChanges(changes: SimpleChanges): void;
|
|
79
|
+
setNewTexture(texture: Texture): void;
|
|
77
80
|
handleRemoveTextureClick(event: any): void;
|
|
78
81
|
private _loadTextureData;
|
|
79
82
|
setPhotoImage(dataUrl: string, resize?: boolean): Promise<void>;
|
|
@@ -4,7 +4,6 @@ import { Subject } from 'rxjs';
|
|
|
4
4
|
import { Answer } from '@colijnit/configuratorapi/build/model/answer';
|
|
5
5
|
import { Mesh, Object3D, Vector3 } from 'three';
|
|
6
6
|
import { MatDialog } from '@angular/material/dialog';
|
|
7
|
-
import { Question } from '@colijnit/configuratorapi/build/model/question';
|
|
8
7
|
import { Item } from '../../../core3d/items/item';
|
|
9
8
|
import { Metadata } from '../../../core3d/items/metadata';
|
|
10
9
|
import { CustomFloorGroupResult } from '../../../core3d/model/custom-floor-group-result';
|
|
@@ -84,8 +83,6 @@ export declare class BuildFurnitureService implements OnDestroy {
|
|
|
84
83
|
activeConnector: any;
|
|
85
84
|
get useNodeIdToLink(): boolean;
|
|
86
85
|
get currentCustomFloorGroup(): Item;
|
|
87
|
-
activeQuestion: Question;
|
|
88
|
-
activeAnswers: Answer[];
|
|
89
86
|
get standAlone(): boolean;
|
|
90
87
|
set standAlone(value: boolean);
|
|
91
88
|
get selections(): Selection[];
|
|
@@ -116,6 +113,7 @@ export declare class BuildFurnitureService implements OnDestroy {
|
|
|
116
113
|
createSimple3DModel(result: CustomFloorGroupResult, standAlone?: boolean): CustomFloorGroupResult;
|
|
117
114
|
private _buildFloor;
|
|
118
115
|
private _generateLayingPattern;
|
|
116
|
+
private _instancedMeshFromFloorPatternTransform;
|
|
119
117
|
private _generateFloorPatternInfo;
|
|
120
118
|
private _generateSelectedInMetadata;
|
|
121
119
|
private _normalizeMesh;
|
|
@@ -17,6 +17,7 @@ export declare class DrawDialogComponent implements OnDestroy, OnInit, AfterView
|
|
|
17
17
|
canvasElement: ElementRef;
|
|
18
18
|
inputLength: ElementRef;
|
|
19
19
|
hiddenImage: ElementRef;
|
|
20
|
+
customerInputLenght: number;
|
|
20
21
|
draftingMode: string;
|
|
21
22
|
diagramImage: string;
|
|
22
23
|
cameraOffset: any;
|
|
@@ -44,6 +45,7 @@ export declare class DrawDialogComponent implements OnDestroy, OnInit, AfterView
|
|
|
44
45
|
ngOnDestroy(): void;
|
|
45
46
|
draw: () => void;
|
|
46
47
|
handleStartCanvas(): void;
|
|
48
|
+
updateUserValue(): void;
|
|
47
49
|
handleMouseDown(event: MouseEvent): void;
|
|
48
50
|
handleMouseMove(event: MouseEvent): void;
|
|
49
51
|
handleMouseUp(event: MouseEvent): void;
|
|
@@ -25,6 +25,7 @@ import { DevelopmentService } from '../../../development/service/development.ser
|
|
|
25
25
|
import { Item } from '../../core3d/items/item';
|
|
26
26
|
import { ToolbarIcon } from '../../../core/interface/toolbar-icon.interface';
|
|
27
27
|
import { NewRenderService } from '../../render/service/new-render.service';
|
|
28
|
+
import { ErrorDialogData } from '../../../shared/error-dialog/error-dialog.component';
|
|
28
29
|
import * as i0 from "@angular/core";
|
|
29
30
|
export declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
30
31
|
appState: AppStateService;
|
|
@@ -89,6 +90,7 @@ export declare class ToolbarComponent implements OnInit, OnDestroy, AfterViewIni
|
|
|
89
90
|
openDrawDiagram(file: any): void;
|
|
90
91
|
openCroppingDiagram(file: any): void;
|
|
91
92
|
openModelPreview(file: any): void;
|
|
93
|
+
showRenderError(data: ErrorDialogData): void;
|
|
92
94
|
testRender(): void;
|
|
93
95
|
private _showSaveDialog;
|
|
94
96
|
private _hideToast;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M373.2 16.97C395.1-4.901 430.5-4.901 452.4 16.97L495 59.6C516.9 81.47 516.9 116.9 495 138.8L182.3 451.6C170.9 462.9 156.9 471.2 141.5 475.8L20.52 511.3C14.9 512.1 8.827 511.5 4.687 507.3C.5466 503.2-1.002 497.1 .6506 491.5L36.23 370.5C40.76 355.1 49.09 341.1 60.44 329.7L373.2 16.97zM429.8 39.6C420.4 30.22 405.2 30.22 395.8 39.6L341 94.4L417.6 170.1L472.4 116.2C481.8 106.8 481.8 91.6 472.4 82.23L429.8 39.6zM66.93 379.5L39.63 472.4L132.4 445.1C142.7 442 152.1 436.5 159.6 428.9L394.1 193.6L318.4 117L83.07 352.4C75.5 359.9 69.95 369.3 66.93 379.5V379.5zM173.3 27.31L244.1 98.18L221.5 120.8L189.7 88.97L155.3 123.3C149.1 129.6 138.9 129.6 132.7 123.3C126.4 117.1 126.4 106.9 132.7 100.7L167 66.34L150.6 49.94C138.1 37.44 117.9 37.44 105.4 49.94L49.94 105.4C37.44 117.9 37.44 138.1 49.94 150.6L120.8 221.5L98.18 244.1L27.31 173.3C2.32 148.3 2.32 107.7 27.31 82.75L82.75 27.31C107.7 2.32 148.3 2.32 173.3 27.31V27.31zM338.7 484.7L267.9 413.8L290.5 391.2L361.4 462.1C373.9 474.6 394.1 474.6 406.6 462.1L462.1 406.6C474.6 394.1 474.6 373.9 462.1 361.4L445.7 344.1L411.3 379.3C405.1 385.6 394.9 385.6 388.7 379.3C382.4 373.1 382.4 362.9 388.7 356.7L423 322.3L391.2 290.5L413.8 267.9L484.7 338.7C509.7 363.7 509.7 404.3 484.7 429.3L429.3 484.7C404.3 509.7 363.7 509.7 338.7 484.7V484.7z"/></svg>
|