@colijnit/homedecorator 261.20.2 → 261.20.4
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/fesm2022/colijnit-homedecorator.mjs +356 -268
- package/fesm2022/colijnit-homedecorator.mjs.map +1 -1
- package/index.d.ts +29 -11
- package/package.json +8 -8
- package/style/_variables.scss +3 -0
- package/style/styles.scss +39 -3
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Pipe, Component, Inject, Input, HostBinding, Optional, ViewChild, EventEmitter, ElementRef, Output, Directive, ChangeDetectionStrategy, HostListener, ViewEncapsulation, SkipSelf, Self, NgModule, NO_ERRORS_SCHEMA, forwardRef } from '@angular/core';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { Vector2, Mesh, Object3D, PointLight, Matrix4, Box3, Vector3, Euler, BoxGeometry, MeshBasicMaterial, Scene, AxesHelper, Group, BufferGeometry, Float32BufferAttribute, Line, LineBasicMaterial, CylinderGeometry, EquirectangularReflectionMapping, Material as Material$1, Texture as Texture$1, Source, EventDispatcher, Color, PerspectiveCamera, Quaternion, PlaneGeometry, DoubleSide, MeshStandardMaterial, RingGeometry, MathUtils, Raycaster, DataTexture, UnsignedByteType, LinearFilter, Shape, LinearSRGBColorSpace, SRGBColorSpace, SphereGeometry, PCFSoftShadowMap, ShadowMaterial, LightProbe, DirectionalLight, MeshPhongMaterial, BackSide, FrontSide, NoToneMapping, ReinhardToneMapping, CineonToneMapping, ACESFilmicToneMapping, CustomToneMapping, NeutralToneMapping, BasicShadowMap, PCFShadowMap, VSMShadowMap, OrthographicCamera, WebGLRenderer, TextureLoader, EllipseCurve, ArcCurve, NearestFilter, MeshPhysicalMaterial, Path, ShapeGeometry, ConeGeometry, ObjectLoader, Light, Camera as Camera$1, RepeatWrapping, SpotLight, AmbientLight, HemisphereLight, AdditiveBlending, LineSegments, EdgesGeometry, CircleGeometry, ExtrudeGeometry, InstancedMesh, Clock, AnimationMixer, AnimationClip, BufferAttribute, NoColorSpace, ArrowHelper as ArrowHelper$1, UVMapping, CubeReflectionMapping, CubeRefractionMapping, EquirectangularRefractionMapping, CubeUVReflectionMapping, NearestMipmapNearestFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipMapLinearFilter, LinearMipmapNearestFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipMapLinearFilter, AlphaFormat, RGBAFormat, DepthFormat, DepthStencilFormat, RedFormat, RedIntegerFormat, RGFormat, RGIntegerFormat, RGBAIntegerFormat, ByteType, ShortType, UnsignedShortType, IntType, UnsignedIntType, FloatType, HalfFloatType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedInt248Type, ClampToEdgeWrapping, MirroredRepeatWrapping, ZeroFactor, OneFactor, SrcColorFactor, OneMinusSrcColorFactor, SrcAlphaFactor, OneMinusSrcAlphaFactor, DstAlphaFactor, OneMinusDstAlphaFactor, DstColorFactor, OneMinusDstColorFactor, AddEquation, SubtractEquation, ReverseSubtractEquation, MinEquation, MaxEquation, NoBlending, NormalBlending, SubtractiveBlending, MultiplyBlending, CustomBlending, TangentSpaceNormalMap, ObjectSpaceNormalMap, ZeroStencilOp, KeepStencilOp, ReplaceStencilOp, IncrementStencilOp, DecrementStencilOp, IncrementWrapStencilOp, DecrementWrapStencilOp, InvertStencilOp, NeverStencilFunc, LessStencilFunc, EqualStencilFunc, LessEqualStencilFunc, GreaterStencilFunc, NotEqualStencilFunc, GreaterEqualStencilFunc, AlwaysStencilFunc, SpotLightHelper, DirectionalLightHelper, HemisphereLightHelper, PointLightHelper, GridHelper, PMREMGenerator, BoxHelper } from 'three';
|
|
5
|
-
import { BehaviorSubject, Subject, Observable, throwError, ReplaySubject, combineLatest, from } from 'rxjs';
|
|
5
|
+
import { BehaviorSubject, Subject, Observable, throwError, ReplaySubject, combineLatest, filter as filter$1, from } from 'rxjs';
|
|
6
6
|
import * as TWEEN from '@tweenjs/tween.js';
|
|
7
7
|
import { Selection } from '@colijnit/configuratorapi/build/model/selection';
|
|
8
8
|
import { HdecoPositioning } from '@colijnit/configuratorapi/build/enum/hdeco-positioning.enum';
|
|
@@ -41,7 +41,7 @@ import { TextGeometry } from 'three/examples/jsm/geometries/TextGeometry.js';
|
|
|
41
41
|
import { FontLoader } from 'three/examples/jsm/loaders/FontLoader.js';
|
|
42
42
|
import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js';
|
|
43
43
|
import { RGBFormat, LinearToneMapping, AgXToneMapping, LinearFilter as LinearFilter$1, LinearSRGBColorSpace as LinearSRGBColorSpace$1, SrcAlphaSaturateFactor, FloatType as FloatType$1 } from 'three/src/constants.js';
|
|
44
|
-
import
|
|
44
|
+
import md5 from 'md5';
|
|
45
45
|
import { NodeType } from '@colijnit/configuratorapi/build/enum/node-type.enum';
|
|
46
46
|
import { ConfiguratorStatisticsEnvironment } from '@colijnit/configuratorapi/build/model/configurator-statistics-environment';
|
|
47
47
|
import { Options } from '@colijnit/ioneconnector/build/model/options';
|
|
@@ -100,7 +100,6 @@ import * as i3$1 from '@angular/forms';
|
|
|
100
100
|
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
101
101
|
import * as i4 from '@angular/material/icon';
|
|
102
102
|
import { MatIconModule } from '@angular/material/icon';
|
|
103
|
-
import { HdecoType } from '@colijnit/configuratorapi/build/enum/hdeco-type.enum';
|
|
104
103
|
import Delaunator from 'delaunator';
|
|
105
104
|
import { VertexNormalsHelper } from 'three/examples/jsm/helpers/VertexNormalsHelper.js';
|
|
106
105
|
import { trigger, state, style, transition, animate, query, animateChild } from '@angular/animations';
|
|
@@ -4158,6 +4157,17 @@ class HomedecoratorConnectorAdapterService {
|
|
|
4158
4157
|
}
|
|
4159
4158
|
return 'nl'; // just to be safe
|
|
4160
4159
|
}
|
|
4160
|
+
async getPublicParams(url, upId) {
|
|
4161
|
+
const tempSettings = new HomedecoratorSettings();
|
|
4162
|
+
tempSettings.url = url;
|
|
4163
|
+
tempSettings.schema = upId.toString();
|
|
4164
|
+
// @ts-ignore
|
|
4165
|
+
const tempMainConnector = new MainApi(tempSettings);
|
|
4166
|
+
const response = await tempMainConnector.getPublicParams(upId);
|
|
4167
|
+
if (response) {
|
|
4168
|
+
return response;
|
|
4169
|
+
}
|
|
4170
|
+
}
|
|
4161
4171
|
async store3DModelCDN(filename, fileContents) {
|
|
4162
4172
|
try {
|
|
4163
4173
|
const response = await this.mainApi.uploadModelToCDN(filename, fileContents);
|
|
@@ -4315,6 +4325,10 @@ class HomedecoratorConnectorAdapterService {
|
|
|
4315
4325
|
}
|
|
4316
4326
|
}
|
|
4317
4327
|
}
|
|
4328
|
+
getCatalogDefinition(id) {
|
|
4329
|
+
return this._catalogDefinitions && this._catalogDefinitions.length > 0 ?
|
|
4330
|
+
this._catalogDefinitions.find(c => c.id === id) : null;
|
|
4331
|
+
}
|
|
4318
4332
|
async getArticleExtended(articleNumber) {
|
|
4319
4333
|
const requestObject = new ArticleExtendedRequest();
|
|
4320
4334
|
requestObject.articleNumber = articleNumber;
|
|
@@ -11111,7 +11125,7 @@ class Dimensioning {
|
|
|
11111
11125
|
}
|
|
11112
11126
|
}
|
|
11113
11127
|
|
|
11114
|
-
const minSize = 0.
|
|
11128
|
+
const minSize = 0.001;
|
|
11115
11129
|
const xDirection = new Vector3(1, 0, 0);
|
|
11116
11130
|
const yDirection$1 = new Vector3(0, 1, 0);
|
|
11117
11131
|
const zDirection$1 = new Vector3(0, 0, 1);
|
|
@@ -12620,7 +12634,10 @@ class PresetsService {
|
|
|
12620
12634
|
const json = await this._jsonUtils.readJsonFile(path, false);
|
|
12621
12635
|
preset.model = JSON.stringify(json);
|
|
12622
12636
|
}
|
|
12623
|
-
|
|
12637
|
+
let modelObj = JSON.parse(preset.model);
|
|
12638
|
+
if (typeof modelObj === 'string') { // multiple escapes...?
|
|
12639
|
+
modelObj = JSON.parse(modelObj);
|
|
12640
|
+
}
|
|
12624
12641
|
if (!modelObj.hasOwnProperty('version')) {
|
|
12625
12642
|
modelObj.version = 1.0;
|
|
12626
12643
|
}
|
|
@@ -13728,6 +13745,10 @@ class FloorService {
|
|
|
13728
13745
|
_updateFloorMaterial(floor, floorMaterial, texture) {
|
|
13729
13746
|
ObjectUtils.DisposeMaterial(floor.getMaterial());
|
|
13730
13747
|
floor.floorMaterial = floorMaterial;
|
|
13748
|
+
if (texture) {
|
|
13749
|
+
// Update the texture as well
|
|
13750
|
+
floor.floorTexture = texture;
|
|
13751
|
+
}
|
|
13731
13752
|
this._sceneService.needsRender = true;
|
|
13732
13753
|
this._sceneService.updatePathTracer();
|
|
13733
13754
|
}
|
|
@@ -19031,8 +19052,7 @@ class UtilsService {
|
|
|
19031
19052
|
// Now you can use the `imageData` URL for display or download
|
|
19032
19053
|
// this._downloadImage(`${object.name}_thumbnail.jpg`, imageData);
|
|
19033
19054
|
}
|
|
19034
|
-
|
|
19035
|
-
// Create a link and trigger the download
|
|
19055
|
+
downloadImage(fileName, imageData) {
|
|
19036
19056
|
const link = document.createElement('a');
|
|
19037
19057
|
link.href = imageData;
|
|
19038
19058
|
link.download = fileName;
|
|
@@ -19602,6 +19622,9 @@ class BluePrintService extends BluePrintFloorplanService {
|
|
|
19602
19622
|
}
|
|
19603
19623
|
await this.loadTheFloorplan(floorplan);
|
|
19604
19624
|
}
|
|
19625
|
+
getRoomCenter() {
|
|
19626
|
+
return this.roomService.getRoomCenter();
|
|
19627
|
+
}
|
|
19605
19628
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BluePrintService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19606
19629
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: BluePrintService, providedIn: 'root' }); }
|
|
19607
19630
|
}
|
|
@@ -21079,14 +21102,17 @@ class BoundingBoxMeasurement {
|
|
|
21079
21102
|
const widthMesh = createTextWithBackground(width, this._font, this.textSize, this.textColor, this.backgroundColor, this.backgroundOpacity, 1.2, widthText);
|
|
21080
21103
|
const depthMesh = createTextWithBackground(depth, this._font, this.textSize, this.textColor, this.backgroundColor, this.backgroundOpacity, 1.2, depthText);
|
|
21081
21104
|
// set positions for the meshes
|
|
21082
|
-
heightMesh.position.set(0, 0, 0);
|
|
21083
|
-
widthMesh.position.set(0,
|
|
21084
|
-
depthMesh.position.set(0, -0.
|
|
21105
|
+
heightMesh.position.set(0, 0.12, 0);
|
|
21106
|
+
widthMesh.position.set(0, 0, 0);
|
|
21107
|
+
depthMesh.position.set(0, -0.12, 0);
|
|
21085
21108
|
// Create one new mesh
|
|
21086
21109
|
const allMeasurementMeshes = new Mesh();
|
|
21087
21110
|
allMeasurementMeshes.add(heightMesh);
|
|
21088
21111
|
allMeasurementMeshes.add(widthMesh);
|
|
21089
21112
|
allMeasurementMeshes.add(depthMesh);
|
|
21113
|
+
const box = new Box3().setFromObject(allMeasurementMeshes);
|
|
21114
|
+
const heightBox = box.max.y - box.min.y;
|
|
21115
|
+
allMeasurementMeshes.children.forEach(c => c.translateY(heightBox / 2));
|
|
21090
21116
|
allMeasurements.textMesh = allMeasurementMeshes;
|
|
21091
21117
|
allMeasurements.positions = this._calculateAllMeasurementsPositions();
|
|
21092
21118
|
return allMeasurements;
|
|
@@ -22844,7 +22870,7 @@ class SceneEventService {
|
|
|
22844
22870
|
this._messageBusService.emit(MessageType.SaveState, { action: `3D ${action}` });
|
|
22845
22871
|
}), this._debouncedSaveState.pipe(debounceTime(200)).subscribe(() => {
|
|
22846
22872
|
this._hudService.updateLabelMeasurements();
|
|
22847
|
-
}), this._viewModeService.viewModeChanged.subscribe(mode => this.setExploreMode(mode === ViewMode.WalkThrough)), this._itemGroupService.objectAdded.subscribe((object) => this.setSelectedObject(object)), this._itemGroupService.grouped.subscribe((object) => this.setSelectedObject(object)), this._itemGroupService.ungrouped.subscribe(() => this.setSelectedObject(null)), this._messageBusService.subscribe(MessageType.ItemRemoved, () => this.setSelectedObject(null)), this._messageBusService.subscribe(MessageType.StartGroupObject, () => this._setGroupingMode(true)));
|
|
22873
|
+
}), this._viewModeService.viewModeChanged.subscribe(mode => this.setExploreMode(mode === ViewMode.WalkThrough)), this._itemGroupService.objectAdded.subscribe((object) => this.setSelectedObject(object)), this._itemGroupService.grouped.subscribe((object) => this.setSelectedObject(object)), this._itemGroupService.ungrouped.subscribe(() => this.setSelectedObject(null)), this._messageBusService.subscribe(MessageType.ItemRemoved, () => this.setSelectedObject(null)), this._messageBusService.subscribe(MessageType.StartGroupObject, () => this._setGroupingMode(true)), this._messageBusService.subscribe(MessageType.CancelGroupObject, () => this._setGroupingMode(false)));
|
|
22848
22874
|
}
|
|
22849
22875
|
setExploreMode(on = true) {
|
|
22850
22876
|
if (on) {
|
|
@@ -22989,7 +23015,9 @@ class SceneEventService {
|
|
|
22989
23015
|
let intersection = null;
|
|
22990
23016
|
if (isWallType(draggedData.type) || (isWallFloorType(draggedData.type) && this._intersectedWall)) {
|
|
22991
23017
|
intersection = this._intersectedWall;
|
|
22992
|
-
|
|
23018
|
+
if (this._intersectedWall.object) {
|
|
23019
|
+
position = this._intersectedWall.object.localToWorld(this._intersectedWall.point);
|
|
23020
|
+
}
|
|
22993
23021
|
// position = this._intersectedWall && this._intersectedWall.point;
|
|
22994
23022
|
}
|
|
22995
23023
|
else if (isFloorType(draggedData.type) || isFloorDecoration(draggedData.type) || (isWallFloorType(draggedData.type) && this._intersectedFloor)) {
|
|
@@ -23336,7 +23364,9 @@ class SceneEventService {
|
|
|
23336
23364
|
}
|
|
23337
23365
|
_setGroupingMode(enableGrouping) {
|
|
23338
23366
|
this._groupingMode = enableGrouping;
|
|
23339
|
-
|
|
23367
|
+
if (this._groupingMode) {
|
|
23368
|
+
this._addToItemGroup(this._intersectedObject, this._prevSelectedObject);
|
|
23369
|
+
}
|
|
23340
23370
|
}
|
|
23341
23371
|
_getDraggedData() {
|
|
23342
23372
|
return this._dragAndDropService.draggedData;
|
|
@@ -24823,7 +24853,7 @@ class BuildFurnitureBaseService {
|
|
|
24823
24853
|
item.canScaleZ = metadata.canScaleZ;
|
|
24824
24854
|
item.colorable = metadata.colorable;
|
|
24825
24855
|
item.canDelete = !this.standAlone;
|
|
24826
|
-
item.canCopy = !this.standAlone;
|
|
24856
|
+
item.canCopy = !this.standAlone && !metadata.thirdPartyModel;
|
|
24827
24857
|
item.allwaysConfigureMode = this.standAlone;
|
|
24828
24858
|
item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
24829
24859
|
item.tempObject = true;
|
|
@@ -25457,6 +25487,15 @@ class BuildFurnitureBaseService {
|
|
|
25457
25487
|
handleSelectionSelected(chosenOption) {
|
|
25458
25488
|
this._selectionsSelected.push(chosenOption.opvTreeNodeHierarchy);
|
|
25459
25489
|
}
|
|
25490
|
+
getActiveFurnitureByUuid(uuid) {
|
|
25491
|
+
const furniture = this.itemService.getFurniture();
|
|
25492
|
+
const len = furniture.length;
|
|
25493
|
+
for (let i = 0; i < len; i++) {
|
|
25494
|
+
if (furniture[i].metadata && furniture[i].metadata.objectUUID === uuid) {
|
|
25495
|
+
return furniture[i];
|
|
25496
|
+
}
|
|
25497
|
+
}
|
|
25498
|
+
}
|
|
25460
25499
|
getActiveFurniture(instanceId) {
|
|
25461
25500
|
const configurables = this.itemService.getConfigurables();
|
|
25462
25501
|
const len = configurables.length;
|
|
@@ -26165,41 +26204,34 @@ class BuildFurnitureService extends BuildFurnitureBaseService {
|
|
|
26165
26204
|
}
|
|
26166
26205
|
}
|
|
26167
26206
|
}
|
|
26168
|
-
createSimple3DModel(
|
|
26169
|
-
|
|
26170
|
-
|
|
26207
|
+
createSimple3DModel(metadata, object) {
|
|
26208
|
+
const existingModel = this.getActiveFurnitureByUuid(metadata.objectUUID);
|
|
26209
|
+
if (existingModel) {
|
|
26210
|
+
return existingModel;
|
|
26171
26211
|
}
|
|
26172
|
-
if (!
|
|
26173
|
-
|
|
26174
|
-
}
|
|
26175
|
-
// there are no selections or decos for simple articles, so empty lists for integration purposes
|
|
26176
|
-
this.iOne.emptySelections();
|
|
26177
|
-
this.full3DObjectToUse.children.forEach(c => c.visible = true);
|
|
26178
|
-
if (!result.metaData.position) {
|
|
26179
|
-
result.metaData.position = this.startPosition || this.defaultPosition;
|
|
26212
|
+
if (!metadata.position) {
|
|
26213
|
+
metadata.position = this.startPosition || this.defaultPosition;
|
|
26180
26214
|
}
|
|
26181
|
-
if (!
|
|
26182
|
-
|
|
26215
|
+
if (!metadata.rotation) {
|
|
26216
|
+
metadata.rotation = metadata.default180 ? this.defaultRotation : new Euler();
|
|
26183
26217
|
}
|
|
26184
|
-
const itemConstructor = Factory.getClass(
|
|
26185
|
-
const item = new itemConstructor(
|
|
26218
|
+
const itemConstructor = Factory.getClass(metadata.itemType);
|
|
26219
|
+
const item = new itemConstructor(metadata, object, {
|
|
26186
26220
|
showHideOutlineHandler: this.showHideOutline
|
|
26187
26221
|
});
|
|
26188
|
-
result.metaData.objectUUID = item.uuid;
|
|
26189
|
-
item.allowRotate = !this.standAlone;
|
|
26190
|
-
item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
26191
26222
|
this.itemService.addItem(item);
|
|
26192
26223
|
if (item.itemGroup) {
|
|
26193
26224
|
this.itemGroupService.reattachToItemGroup(item, item.itemGroup, item.position);
|
|
26194
26225
|
}
|
|
26195
26226
|
// For simple articles we use object uuid, because they don't have an instanceId
|
|
26196
|
-
this.upsertFurniture(item.uuid, { BrandIdentifier:
|
|
26227
|
+
this.upsertFurniture(item.uuid, { BrandIdentifier: metadata.itemIdentifier }, item);
|
|
26197
26228
|
this.handleIntegration(item.uuid, item);
|
|
26198
|
-
this.currentCustomFloorGroup = item;
|
|
26199
|
-
this.currentCustomFloorGroup.buildFinished();
|
|
26200
|
-
result.furniture = item;
|
|
26229
|
+
// this.currentCustomFloorGroup = item;
|
|
26230
|
+
// this.currentCustomFloorGroup.buildFinished();
|
|
26231
|
+
// result.furniture = item;
|
|
26232
|
+
item.buildFinished();
|
|
26201
26233
|
this.sceneService.updatePathTracer();
|
|
26202
|
-
return
|
|
26234
|
+
return item;
|
|
26203
26235
|
}
|
|
26204
26236
|
async createNonConfigurableFloor(result) {
|
|
26205
26237
|
const item = this.floorService.floorToConfigure;
|
|
@@ -26301,21 +26333,22 @@ class BuildFurnitureWithoutSceneService extends BuildFurnitureBaseService {
|
|
|
26301
26333
|
await this.getSelectionsAndDecos();
|
|
26302
26334
|
return await this.handlePrepareSelectionsDecos(result);
|
|
26303
26335
|
}
|
|
26304
|
-
createSimple3DModel(
|
|
26305
|
-
if (!isNill(standAlone)) {
|
|
26306
|
-
|
|
26307
|
-
}
|
|
26308
|
-
// there are no selections or decos for simple articles, so empty lists for integration purposes
|
|
26309
|
-
this.iOne.emptySelections();
|
|
26310
|
-
const itemConstructor = Factory.getClass(this.standAlone ? ItemType.FloorGroup :
|
|
26311
|
-
const item = new itemConstructor(
|
|
26336
|
+
createSimple3DModel(metadata, object) {
|
|
26337
|
+
// if (!isNill(standAlone)) {
|
|
26338
|
+
// this.standAlone = standAlone;
|
|
26339
|
+
// }
|
|
26340
|
+
// // there are no selections or decos for simple articles, so empty lists for integration purposes
|
|
26341
|
+
// this.iOne.emptySelections();
|
|
26342
|
+
const itemConstructor = Factory.getClass(this.standAlone ? ItemType.FloorGroup : metadata.itemType);
|
|
26343
|
+
const item = new itemConstructor(metadata, null, {
|
|
26312
26344
|
showHideOutlineHandler: this.showHideOutline
|
|
26313
26345
|
});
|
|
26314
|
-
result.metaData.objectUUID = item.uuid;
|
|
26315
|
-
item.allowRotate = !this.standAlone;
|
|
26316
|
-
item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
26317
|
-
result.furniture = item;
|
|
26318
|
-
return result;
|
|
26346
|
+
// result.metaData.objectUUID = item.uuid;
|
|
26347
|
+
// item.allowRotate = !this.standAlone;
|
|
26348
|
+
// item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
26349
|
+
// result.furniture = item;
|
|
26350
|
+
// return result;
|
|
26351
|
+
return item;
|
|
26319
26352
|
}
|
|
26320
26353
|
async createNonConfigurableFloor(result) {
|
|
26321
26354
|
// TODO Right now we do not need this, but we might need to render floors so we just prepared it like this.
|
|
@@ -27105,7 +27138,7 @@ class LoadFurnitureBaseService {
|
|
|
27105
27138
|
}
|
|
27106
27139
|
}
|
|
27107
27140
|
addToList(list, item) {
|
|
27108
|
-
if (!item || (!item.instanceId && !item.metaData.objectUUID)) {
|
|
27141
|
+
if (!item || (!item.metaData || (!item.instanceId && !item.metaData.objectUUID))) {
|
|
27109
27142
|
return;
|
|
27110
27143
|
}
|
|
27111
27144
|
if ((item.instanceId && !list.find(l => l.instanceId === item.instanceId)) ||
|
|
@@ -27269,60 +27302,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
27269
27302
|
}], ctorParameters: () => [{ type: HomedecoratorConnectorService }, { type: HomedecoratorConnectorAdapterService }, { type: ModelsService }, { type: ThreedselectorService }, { type: MessageBusService }, { type: SwitchBuildFurnitureService }, { type: PresetsService }, { type: HomedecoratorSettingsService }] });
|
|
27270
27303
|
|
|
27271
27304
|
class LoadFurnitureService extends LoadFurnitureBaseService {
|
|
27272
|
-
|
|
27273
|
-
|
|
27274
|
-
let modelExists = false;
|
|
27275
|
-
if (loadFromProject && furnitureData.modelUrl) {
|
|
27276
|
-
modelExists = await FileUtils.DoesFileExist(FileUtils.FixUrl(furnitureData.modelUrl));
|
|
27277
|
-
}
|
|
27278
|
-
if (!modelExists) {
|
|
27279
|
-
await this.tryLoadArticle(furnitureData, result, loadFromProject).catch((e) => {
|
|
27280
|
-
if (result.resultType === ResultType.Timeout) {
|
|
27281
|
-
return Promise.reject(result);
|
|
27282
|
-
}
|
|
27283
|
-
if (result.metaData.externalSettings.externalSourceId === null || result.metaData.externalSettings.externalSourceId === undefined) {
|
|
27284
|
-
result.errorMessages.push(new ErrorMessage(result.metaData.externalSettings.name + ' EXTERNAL_SOURCE_NOT_FOUND', ''));
|
|
27285
|
-
result.resultType = ResultType.ExternalSourceNotAvailable;
|
|
27286
|
-
return Promise.reject(result);
|
|
27287
|
-
}
|
|
27288
|
-
// no article found, we can continue if there is instanceId and modelUrl provided in metadata
|
|
27289
|
-
if (!this.needs3DModel(result.metaData)) {
|
|
27290
|
-
result.resultType = ResultType.No3DModel;
|
|
27291
|
-
}
|
|
27292
|
-
if (!result.metaData || !result.metaData.modelUrl && result.resultType !== ResultType.No3DModel) {
|
|
27293
|
-
// if (result.resultType !== ResultType.ConfigurationNotFixed) {
|
|
27294
|
-
result.errorMessages.push(new ErrorMessage('ARTICLE_NOT_FOUND', 'ARTICLE_NOT_FOUND_DESC'));
|
|
27295
|
-
result.resultType = ResultType.ArticleNotFound;
|
|
27296
|
-
// }
|
|
27297
|
-
return Promise.reject(result);
|
|
27298
|
-
}
|
|
27299
|
-
});
|
|
27300
|
-
}
|
|
27301
|
-
else {
|
|
27302
|
-
result.metaData = furnitureData;
|
|
27303
|
-
this.buildFurnitureService.currentActiveService.articleAssetPath = this.getAssetPathFromMetadata(result.metaData);
|
|
27304
|
-
}
|
|
27305
|
-
if (result.metaData.itemType === ItemType.FloorDecoration && result.metaData.hdecoType === HdecoType.Materials) {
|
|
27306
|
-
result.resultType = ResultType.No3DModel;
|
|
27307
|
-
}
|
|
27308
|
-
else {
|
|
27309
|
-
await this.initFull3DObject(result, fromPreset)
|
|
27310
|
-
.catch((e) => {
|
|
27311
|
-
if (!standAlone) {
|
|
27312
|
-
return Promise.reject(result);
|
|
27313
|
-
}
|
|
27314
|
-
});
|
|
27315
|
-
}
|
|
27316
|
-
if (!result.metaData.configurable && !isFloorDecoration(result.metaData.itemType)) { // simple 3d article, just load model
|
|
27317
|
-
return this.buildFurnitureService.currentActiveService.createSimple3DModel(result, standAlone);
|
|
27318
|
-
}
|
|
27319
|
-
else if (!result.metaData.configurable && isFloorDecoration(result.metaData.itemType)) {
|
|
27320
|
-
return this.buildFurnitureService.currentActiveService.createNonConfigurableFloor(result);
|
|
27321
|
-
}
|
|
27322
|
-
else {
|
|
27323
|
-
this.configurationDirty = true;
|
|
27324
|
-
return this.buildFurnitureService.currentActiveService.startToBuild(result, result.metaData, shouldCopyInstance, looseOriginalConfiguration, standAlone, true, fromPreset, loadFromProject);
|
|
27325
|
-
}
|
|
27305
|
+
loadFurniture(furnitureData, shouldCopyInstance, looseOriginalConfiguration, standAlone, fromScratch, fromPreset, loadFromProject) {
|
|
27306
|
+
throw new Error('Method not implemented.');
|
|
27326
27307
|
}
|
|
27327
27308
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27328
27309
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureService }); }
|
|
@@ -27346,7 +27327,7 @@ class DimensionsService {
|
|
|
27346
27327
|
this._itemService = _itemService;
|
|
27347
27328
|
this._sceneService = _sceneService;
|
|
27348
27329
|
this._fontService = _fontService;
|
|
27349
|
-
this._offSet = 0
|
|
27330
|
+
this._offSet = 0;
|
|
27350
27331
|
this._labelOffSet = 0.05;
|
|
27351
27332
|
this._nameHeightArrow = 'height_arrow';
|
|
27352
27333
|
this._nameWidthArrow = 'width_arrow';
|
|
@@ -27401,6 +27382,8 @@ class DimensionsService {
|
|
|
27401
27382
|
if (!object.hasOwnProperty('halfSize')) {
|
|
27402
27383
|
return;
|
|
27403
27384
|
}
|
|
27385
|
+
const yFlipped = Math.abs(object.rotation.y % (2 * Math.PI) - Math.PI) < 0.001;
|
|
27386
|
+
const direction = yFlipped ? -1 : 1;
|
|
27404
27387
|
const height = object.getHeight();
|
|
27405
27388
|
const halfHeight = height / 2;
|
|
27406
27389
|
const width = object.getWidth();
|
|
@@ -27412,7 +27395,7 @@ class DimensionsService {
|
|
|
27412
27395
|
const heightArrow = dimensionObject.getObjectByName(this._nameHeightArrow);
|
|
27413
27396
|
if (heightArrow) {
|
|
27414
27397
|
ObjectUtils.UpdateArrowLength(heightArrow, height, new Vector3(0, 1, 0), this._headLength, this._headWidth, true);
|
|
27415
|
-
heightArrow.position.set(-(halfWidth + this._offSet), 0, -(halfDepth + this._offSet));
|
|
27398
|
+
heightArrow.position.set(-direction * ((halfWidth + this._offSet)), 0, -direction * (halfDepth + this._offSet));
|
|
27416
27399
|
}
|
|
27417
27400
|
const heightLabel = dimensionObject.getObjectByName('height_label');
|
|
27418
27401
|
if (heightLabel) {
|
|
@@ -27422,33 +27405,36 @@ class DimensionsService {
|
|
|
27422
27405
|
// newHeightLabel.geometry.rotateX(object.rotation.x);
|
|
27423
27406
|
// newHeightLabel.geometry.rotateY(-object.rotation.y);
|
|
27424
27407
|
// newHeightLabel.geometry.rotateZ(object.rotation.z);
|
|
27425
|
-
|
|
27408
|
+
const size = this._getBoxSize(newHeightLabel);
|
|
27409
|
+
newHeightLabel.position.set(-direction * (halfWidth + (this._labelOffSet + size.x)), 0, -direction * (halfDepth + this._labelOffSet));
|
|
27426
27410
|
dimensionObject.add(newHeightLabel);
|
|
27427
27411
|
}
|
|
27428
27412
|
const widthArrow = dimensionObject.getObjectByName(this._nameWidthArrow);
|
|
27429
27413
|
if (widthArrow) {
|
|
27430
27414
|
ObjectUtils.UpdateArrowLength(widthArrow, width, new Vector3(1, 0, 0), this._headLength, this._headWidth, true);
|
|
27431
|
-
widthArrow.position.set(0, halfHeight + this._offSet, halfDepth + this._offSet);
|
|
27415
|
+
widthArrow.position.set(0, halfHeight + this._offSet, direction * (-halfDepth + this._offSet));
|
|
27432
27416
|
}
|
|
27433
27417
|
const widthLabel = dimensionObject.getObjectByName('width_label');
|
|
27434
27418
|
if (widthLabel) {
|
|
27435
27419
|
dimensionObject.remove(widthLabel);
|
|
27436
27420
|
const newWidthLabel = this._createLabel(Dimensioning.mToMeasure(width), 'width_label', object.rotation);
|
|
27437
27421
|
// newWidthLabel.rotation.set(-object.rotation.x, -object.rotation.y, -object.rotation.z);
|
|
27438
|
-
|
|
27422
|
+
const size = this._getBoxSize(newWidthLabel);
|
|
27423
|
+
newWidthLabel.position.set(-direction * (size.x / 2), halfHeight + this._labelOffSet, direction * (-halfDepth + this._labelOffSet));
|
|
27439
27424
|
dimensionObject.add(newWidthLabel);
|
|
27440
27425
|
}
|
|
27441
27426
|
const depthArrow = dimensionObject.getObjectByName(this._nameDepthArrow);
|
|
27442
27427
|
if (depthArrow) {
|
|
27443
27428
|
ObjectUtils.UpdateArrowLength(depthArrow, depth, new Vector3(0, 0, 1), this._headLength, this._headWidth, true);
|
|
27444
|
-
depthArrow.position.set(-(halfWidth + this._offSet), halfHeight + this._offSet, 0);
|
|
27429
|
+
depthArrow.position.set(-direction * (halfWidth + this._offSet), -halfHeight + this._offSet, 0);
|
|
27445
27430
|
}
|
|
27446
27431
|
const depthLabel = dimensionObject.getObjectByName('depth_label');
|
|
27447
27432
|
if (depthLabel) {
|
|
27448
27433
|
dimensionObject.remove(depthLabel);
|
|
27449
27434
|
const newDepthLabel = this._createLabel(Dimensioning.mToMeasure(depth), 'depth_label', object.rotation);
|
|
27450
27435
|
// newDepthLabel.rotation.set(-object.rotation.x, -object.rotation.y, -object.rotation.z);
|
|
27451
|
-
|
|
27436
|
+
const size = this._getBoxSize(newDepthLabel);
|
|
27437
|
+
newDepthLabel.position.set(-direction * (halfWidth + this._labelOffSet + size.x), -halfHeight + this._labelOffSet, 0);
|
|
27452
27438
|
dimensionObject.add(newDepthLabel);
|
|
27453
27439
|
}
|
|
27454
27440
|
}
|
|
@@ -27495,6 +27481,12 @@ class DimensionsService {
|
|
|
27495
27481
|
// label.quaternion.copy(new Quaternion().fromArray(new Vector4().setAxisAngleFromQuaternion(this._cameraService.camera.quaternion).negate().toArray()));
|
|
27496
27482
|
return label;
|
|
27497
27483
|
}
|
|
27484
|
+
_getBoxSize(mesh) {
|
|
27485
|
+
const box = new Box3().setFromObject(mesh);
|
|
27486
|
+
const size = new Vector3();
|
|
27487
|
+
box.getSize(size);
|
|
27488
|
+
return size;
|
|
27489
|
+
}
|
|
27498
27490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DimensionsService, deps: [{ token: ItemService }, { token: SceneService }, { token: FontService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27499
27491
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DimensionsService }); }
|
|
27500
27492
|
}
|
|
@@ -28924,33 +28916,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
28924
28916
|
}], ctorParameters: () => [{ type: HomedecoratorSettingsService }, { type: ExportService }, { type: CameraService }, { type: SceneService }, { type: ToastService }, { type: MessageBusService }, { type: GoogleTagManagerService }, { type: RoomService }, { type: FloorService }] });
|
|
28925
28917
|
|
|
28926
28918
|
class LoadFurnitureWithoutSceneService extends LoadFurnitureBaseService {
|
|
28927
|
-
|
|
28928
|
-
|
|
28929
|
-
await this.tryLoadArticle(furnitureData, result, loadFromProject).catch((e) => {
|
|
28930
|
-
if (result.resultType === ResultType.Timeout) {
|
|
28931
|
-
return Promise.reject(result);
|
|
28932
|
-
}
|
|
28933
|
-
if (result.metaData.externalSettings.externalSourceId === null || result.metaData.externalSettings.externalSourceId === undefined) {
|
|
28934
|
-
result.errorMessages.push(new ErrorMessage(result.metaData.externalSettings.name + ' EXTERNAL_SOURCE_NOT_FOUND', ''));
|
|
28935
|
-
result.resultType = ResultType.ExternalSourceNotAvailable;
|
|
28936
|
-
return Promise.reject(result);
|
|
28937
|
-
}
|
|
28938
|
-
if (!result.metaData) {
|
|
28939
|
-
result.errorMessages.push(new ErrorMessage('ARTICLE_NOT_FOUND', 'ARTICLE_NOT_FOUND_DESC'));
|
|
28940
|
-
result.resultType = ResultType.ArticleNotFound;
|
|
28941
|
-
return Promise.reject(result);
|
|
28942
|
-
}
|
|
28943
|
-
});
|
|
28944
|
-
if (!result.metaData.configurable && !isFloorDecoration(result.metaData.itemType)) { // simple 3d article, just load model
|
|
28945
|
-
return this.buildFurnitureService.currentActiveService.createSimple3DModel(result, standAlone);
|
|
28946
|
-
}
|
|
28947
|
-
else if (!result.metaData.configurable && isFloorDecoration(result.metaData.itemType)) {
|
|
28948
|
-
return this.buildFurnitureService.currentActiveService.createNonConfigurableFloor(result);
|
|
28949
|
-
}
|
|
28950
|
-
else {
|
|
28951
|
-
this.configurationDirty = true;
|
|
28952
|
-
return this.buildFurnitureService.currentActiveService.startToBuild(result, result.metaData, shouldCopyInstance, looseOriginalConfiguration, standAlone, true, fromPreset, loadFromProject);
|
|
28953
|
-
}
|
|
28919
|
+
loadFurniture(furnitureData, shouldCopyInstance, looseOriginalConfiguration, standAlone, fromScratch, fromPreset, loadFromProject) {
|
|
28920
|
+
throw new Error('Method not implemented.');
|
|
28954
28921
|
}
|
|
28955
28922
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureWithoutSceneService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28956
28923
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureWithoutSceneService }); }
|
|
@@ -29110,7 +29077,7 @@ class NewRenderService {
|
|
|
29110
29077
|
};
|
|
29111
29078
|
scene.name = 'mrp_room_' + scene.uuid;
|
|
29112
29079
|
const glb = await this._getGlbFromObject(scene, options);
|
|
29113
|
-
this._utilsService.downloadFile(scene.name + '.glb', new Blob([glb], {
|
|
29080
|
+
// this._utilsService.downloadFile(scene.name + '.glb', new Blob([glb], {type: 'model/gltf-binary'}));
|
|
29114
29081
|
ObjectUtils.DisposeObject(scene);
|
|
29115
29082
|
scene = null;
|
|
29116
29083
|
return glb;
|
|
@@ -29206,7 +29173,7 @@ class NewRenderService {
|
|
|
29206
29173
|
// }
|
|
29207
29174
|
// }
|
|
29208
29175
|
async _handleAjaxRender(data) {
|
|
29209
|
-
this.blenderRenderStarted.
|
|
29176
|
+
this.blenderRenderStarted.next(true);
|
|
29210
29177
|
const result = await axios({
|
|
29211
29178
|
headers: {
|
|
29212
29179
|
'Content-Type': 'application/json'
|
|
@@ -29230,7 +29197,7 @@ class NewRenderService {
|
|
|
29230
29197
|
}
|
|
29231
29198
|
}
|
|
29232
29199
|
async _handleAjaxGlbRender(data, preview = false) {
|
|
29233
|
-
this.blenderRenderStarted.
|
|
29200
|
+
this.blenderRenderStarted.next(true);
|
|
29234
29201
|
let host = this._settingsService.settings.renderParameters.host;
|
|
29235
29202
|
if (host) {
|
|
29236
29203
|
if (!host.endsWith('/')) {
|
|
@@ -29255,8 +29222,7 @@ class NewRenderService {
|
|
|
29255
29222
|
this.messageService.emit(MessageType.BlenderRenderPreviewReady, result.data.image);
|
|
29256
29223
|
}
|
|
29257
29224
|
else {
|
|
29258
|
-
|
|
29259
|
-
this._utilsService.downloadFile(`test.jpg`, file);
|
|
29225
|
+
this._utilsService.downloadImage(`render.jpg`, result.data.image);
|
|
29260
29226
|
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
29261
29227
|
}
|
|
29262
29228
|
}
|
|
@@ -29264,6 +29230,8 @@ class NewRenderService {
|
|
|
29264
29230
|
this.renderImageChanged.next('');
|
|
29265
29231
|
this.renderImageError.next(this._dictionaryService.get('BLENDER_PRODUCT_RENDER_ERROR'));
|
|
29266
29232
|
}
|
|
29233
|
+
// Remove the loading indicator.
|
|
29234
|
+
this._messageBusService.emit(MessageType.RenderUploadFinished, true);
|
|
29267
29235
|
}
|
|
29268
29236
|
}
|
|
29269
29237
|
}
|
|
@@ -29450,7 +29418,7 @@ class NewRenderService {
|
|
|
29450
29418
|
// Get the asset information from the BlenderRenderSettings
|
|
29451
29419
|
let renderScenes = [];
|
|
29452
29420
|
if (this._settingsService.settings.blenderSceneSettings && this._settingsService.settings.blenderSceneSettings.scenes) {
|
|
29453
|
-
renderScenes = this._settingsService.settings.blenderSceneSettings.scenes.filter(scene => scene.sceneType === BlenderSceneType.
|
|
29421
|
+
renderScenes = this._settingsService.settings.blenderSceneSettings.scenes.filter(scene => scene.sceneType === BlenderSceneType.Room
|
|
29454
29422
|
&& scene.name === assetId);
|
|
29455
29423
|
}
|
|
29456
29424
|
let renderScene;
|
|
@@ -29500,12 +29468,14 @@ class NewRenderService {
|
|
|
29500
29468
|
}
|
|
29501
29469
|
_getDataForRoomRender(settings) {
|
|
29502
29470
|
this._cameraService.camera.updateMatrixWorld(true);
|
|
29503
|
-
const sceneSettings = this._getSceneRenderSettings(
|
|
29471
|
+
const sceneSettings = this._getSceneRenderSettings(settings.sceneAsset.name);
|
|
29504
29472
|
const options = {
|
|
29505
29473
|
width: settings.width,
|
|
29506
29474
|
height: settings.height,
|
|
29507
29475
|
max_samples: this._settingsService.settings.renderParameters.iterations,
|
|
29508
29476
|
sceneSettings: sceneSettings,
|
|
29477
|
+
renderType: this._getRenderType(sceneSettings),
|
|
29478
|
+
transparency: false,
|
|
29509
29479
|
cameraOptions: {
|
|
29510
29480
|
fov: this._cameraService.camera.fov,
|
|
29511
29481
|
matrix: Array.from(this._cameraService.camera.matrixWorld.elements)
|
|
@@ -29513,7 +29483,8 @@ class NewRenderService {
|
|
|
29513
29483
|
environmentOptions: {
|
|
29514
29484
|
hdri: this._settingsService.settings.renderParameters.hdri,
|
|
29515
29485
|
hdriIntensity: settings.hdriIntensity
|
|
29516
|
-
}
|
|
29486
|
+
},
|
|
29487
|
+
colijnLegacy: true // this is the value to trigger culling.
|
|
29517
29488
|
};
|
|
29518
29489
|
const data = {
|
|
29519
29490
|
assetUrl: this._settingsService.settings.assetPath,
|
|
@@ -34281,7 +34252,7 @@ class RenderControlsComponent {
|
|
|
34281
34252
|
</div>
|
|
34282
34253
|
}
|
|
34283
34254
|
<rp-render-progress
|
|
34284
|
-
[title]="'
|
|
34255
|
+
[title]="'PREPARE_TO_RENDER' | localize"
|
|
34285
34256
|
[show]="startUploading"
|
|
34286
34257
|
>
|
|
34287
34258
|
</rp-render-progress>
|
|
@@ -34511,7 +34482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
34511
34482
|
</div>
|
|
34512
34483
|
}
|
|
34513
34484
|
<rp-render-progress
|
|
34514
|
-
[title]="'
|
|
34485
|
+
[title]="'PREPARE_TO_RENDER' | localize"
|
|
34515
34486
|
[show]="startUploading"
|
|
34516
34487
|
>
|
|
34517
34488
|
</rp-render-progress>
|
|
@@ -34852,11 +34823,11 @@ class SliderInputComponent {
|
|
|
34852
34823
|
this.onChange = new EventEmitter();
|
|
34853
34824
|
}
|
|
34854
34825
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34855
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SliderInputComponent, isStandalone: false, selector: "rp-slider-input", inputs: { title: "title", min: "min", max: "max", step: "step", value: "value" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"slider-group\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <mat-form-field class=\"slider-group-form-field\" fxFlex=\"20%\">\r\n <input\r\n matInput\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n type=\"number\"\r\n [placeholder]=\"title\"\r\n [ngModel]=\"value\"\r\n (change)=\"onChange.emit($event.target.value)\"\r\n >\r\n </mat-form-field>\r\n <mat-slider\r\n class=\"slider-group-slider\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n thumbLabel\r\n fxFlex=\"grow\" #ngSlider>\r\n <input matSliderThumb [value]=\"value\" (input)=\"onChange.emit({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value}.value)\" #ngSliderThumb=\"matSliderThumb\" />\r\n </mat-slider>\r\n</div>\r\n", styles: [".slider-group{padding:0 1em;box-sizing:border-box}.slider-group input{text-align:right;font-size:14px}.slider-group .mat-mdc-form-field-infix{width:auto}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label{transform:translateY(-1.34369em) scale(.75)}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label span{font-size:12px;color:#000}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-infix{padding:5px 0}\n"], dependencies: [{ kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3$1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i4$2.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
|
|
34826
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SliderInputComponent, isStandalone: false, selector: "rp-slider-input", inputs: { title: "title", min: "min", max: "max", step: "step", value: "value" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"slider-group\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <mat-form-field class=\"slider-group-form-field\" fxFlex=\"20%\">\r\n <mat-label [textContent]=\"title\"></mat-label>\r\n <input\r\n matInput\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n type=\"number\"\r\n [placeholder]=\"title\"\r\n [ngModel]=\"value\"\r\n (change)=\"onChange.emit($event.target.value)\"\r\n >\r\n </mat-form-field>\r\n <mat-slider\r\n class=\"slider-group-slider\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n thumbLabel\r\n fxFlex=\"grow\" #ngSlider>\r\n <input matSliderThumb [value]=\"value\" (input)=\"onChange.emit({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value}.value)\" #ngSliderThumb=\"matSliderThumb\" />\r\n </mat-slider>\r\n</div>\r\n", styles: [".slider-group{padding:0 1em;box-sizing:border-box}.slider-group input{text-align:right;font-size:14px}.slider-group .mat-mdc-form-field-infix{width:auto}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label{transform:translateY(-1.34369em) scale(.75)}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label span{font-size:12px;color:#000}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-infix{padding:5px 0}\n"], dependencies: [{ kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3$1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i4$2.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
|
|
34856
34827
|
}
|
|
34857
34828
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderInputComponent, decorators: [{
|
|
34858
34829
|
type: Component,
|
|
34859
|
-
args: [{ selector: 'rp-slider-input', standalone: false, template: "<div class=\"slider-group\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <mat-form-field class=\"slider-group-form-field\" fxFlex=\"20%\">\r\n <input\r\n matInput\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n type=\"number\"\r\n [placeholder]=\"title\"\r\n [ngModel]=\"value\"\r\n (change)=\"onChange.emit($event.target.value)\"\r\n >\r\n </mat-form-field>\r\n <mat-slider\r\n class=\"slider-group-slider\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n thumbLabel\r\n fxFlex=\"grow\" #ngSlider>\r\n <input matSliderThumb [value]=\"value\" (input)=\"onChange.emit({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value}.value)\" #ngSliderThumb=\"matSliderThumb\" />\r\n </mat-slider>\r\n</div>\r\n", styles: [".slider-group{padding:0 1em;box-sizing:border-box}.slider-group input{text-align:right;font-size:14px}.slider-group .mat-mdc-form-field-infix{width:auto}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label{transform:translateY(-1.34369em) scale(.75)}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label span{font-size:12px;color:#000}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-infix{padding:5px 0}\n"] }]
|
|
34830
|
+
args: [{ selector: 'rp-slider-input', standalone: false, template: "<div class=\"slider-group\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <mat-form-field class=\"slider-group-form-field\" fxFlex=\"20%\">\r\n <mat-label [textContent]=\"title\"></mat-label>\r\n <input\r\n matInput\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n type=\"number\"\r\n [placeholder]=\"title\"\r\n [ngModel]=\"value\"\r\n (change)=\"onChange.emit($event.target.value)\"\r\n >\r\n </mat-form-field>\r\n <mat-slider\r\n class=\"slider-group-slider\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n thumbLabel\r\n fxFlex=\"grow\" #ngSlider>\r\n <input matSliderThumb [value]=\"value\" (input)=\"onChange.emit({source: ngSliderThumb, parent: ngSlider, value: ngSliderThumb.value}.value)\" #ngSliderThumb=\"matSliderThumb\" />\r\n </mat-slider>\r\n</div>\r\n", styles: [".slider-group{padding:0 1em;box-sizing:border-box}.slider-group input{text-align:right;font-size:14px}.slider-group .mat-mdc-form-field-infix{width:auto}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label{transform:translateY(-1.34369em) scale(.75)}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-label-wrapper .mat-mdc-form-field-label span{font-size:12px;color:#000}.slider-group .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper .mat-mdc-form-field-infix{padding:5px 0}\n"] }]
|
|
34860
34831
|
}], ctorParameters: () => [], propDecorators: { title: [{
|
|
34861
34832
|
type: Input
|
|
34862
34833
|
}], min: [{
|
|
@@ -41723,6 +41694,10 @@ class RoomPlannerComponent {
|
|
|
41723
41694
|
this.unselectAll();
|
|
41724
41695
|
this.showGroupMenu = false;
|
|
41725
41696
|
this.showGroupEditMenuButtons = false;
|
|
41697
|
+
if (this.userIsGrouping) {
|
|
41698
|
+
// When the user was grouping, let everything know that we stopped with that aswell
|
|
41699
|
+
this._messageService.emit(MessageType.CancelGroupObject);
|
|
41700
|
+
}
|
|
41726
41701
|
}
|
|
41727
41702
|
updateSelectedObjectHud() {
|
|
41728
41703
|
this._hudService.updateSelectedItemHud();
|
|
@@ -44462,7 +44437,7 @@ class ThreedselectorComponent {
|
|
|
44462
44437
|
get loadConfigurator() {
|
|
44463
44438
|
return this._loadConfigurator;
|
|
44464
44439
|
}
|
|
44465
|
-
constructor(screenSizeService, _dialog, _appService, _iOne, _messageBus, _loadFurnitureService, _buildFurnitureService, _toastService, _messageService, _sceneService, _dialogService, _cameraService, _presetsService, _itemService, _settingsService, _appEventService, _bluePrintService, _wallService, _floorService, _iconCacheService, _googleTagManager, _appStateService, _progressService, _resizeService, _connectorAdapterService, _lightPresetService, _variationService, _configuringService) {
|
|
44440
|
+
constructor(screenSizeService, _dialog, _appService, _iOne, _messageBus, _loadFurnitureService, _buildFurnitureService, _toastService, _messageService, _sceneService, _dialogService, _cameraService, _presetsService, _itemService, _settingsService, _appEventService, _bluePrintService, _wallService, _floorService, _iconCacheService, _googleTagManager, _appStateService, _progressService, _resizeService, _connectorAdapterService, _lightPresetService, _variationService, _configuringService, _configuratorEventService, _changeDetector) {
|
|
44466
44441
|
this.screenSizeService = screenSizeService;
|
|
44467
44442
|
this._dialog = _dialog;
|
|
44468
44443
|
this._appService = _appService;
|
|
@@ -44491,6 +44466,8 @@ class ThreedselectorComponent {
|
|
|
44491
44466
|
this._lightPresetService = _lightPresetService;
|
|
44492
44467
|
this._variationService = _variationService;
|
|
44493
44468
|
this._configuringService = _configuringService;
|
|
44469
|
+
this._configuratorEventService = _configuratorEventService;
|
|
44470
|
+
this._changeDetector = _changeDetector;
|
|
44494
44471
|
this.iconName = IconName;
|
|
44495
44472
|
this.customizeButtonClicked = new EventEmitter();
|
|
44496
44473
|
this.selections = [];
|
|
@@ -44515,6 +44492,7 @@ class ThreedselectorComponent {
|
|
|
44515
44492
|
this.showProgressText = true; // Show/Hide progress text
|
|
44516
44493
|
this.showLoaderBar = false;
|
|
44517
44494
|
this.showFullConfiguration = false;
|
|
44495
|
+
this.firstBuild = false;
|
|
44518
44496
|
this._loadConfigurator = false;
|
|
44519
44497
|
this._skuAlreadySet = false;
|
|
44520
44498
|
this._itemsFromScratch = [];
|
|
@@ -44527,9 +44505,11 @@ class ThreedselectorComponent {
|
|
|
44527
44505
|
this._presetsService.register(this);
|
|
44528
44506
|
}
|
|
44529
44507
|
ngOnInit() {
|
|
44530
|
-
this._subs.push(this._appEventService.answerCountReceived.subscribe((answerCount) => this._handleAnswerCountReceived(answerCount)), this._messageBus.subscribe(MessageType.LoadIOneFurnitureIntoSceneBySKU, ({ sku, settings, position }) => this._handleLoadIOneFurnitureIntoSceneBySKU(sku, settings, position)), this._messageBus.subscribe(MessageType.CopyIOneFurnitureIntoSceneBySKU, (original) => this._handleCopyIOneFurnitureIntoSceneBySKU(original)), this.
|
|
44508
|
+
this._subs.push(this._appEventService.answerCountReceived.subscribe((answerCount) => this._handleAnswerCountReceived(answerCount)), this._messageBus.subscribe(MessageType.LoadIOneFurnitureIntoSceneBySKU, ({ sku, settings, position }) => this._handleLoadIOneFurnitureIntoSceneBySKU(sku, settings, position)), this._messageBus.subscribe(MessageType.CopyIOneFurnitureIntoSceneBySKU, (original) => this._handleCopyIOneFurnitureIntoSceneBySKU(original)), this._configuratorEventService.buildFinished.subscribe((result) => {
|
|
44509
|
+
this.handleBuildResult(result);
|
|
44510
|
+
}), this._buildFurnitureService.currentActiveService.configureModeChanged.subscribe(configuringModeChange => this._handleConfigureModeChange(configuringModeChange)), this._buildFurnitureService.currentActiveService.toggleSelectedElement.subscribe((element) => this._selectedElementToggle(element)), this._buildFurnitureService.currentActiveService.buildFinished.subscribe((result) => this._handleBuildFinished(result)), this._buildFurnitureService.currentActiveService.answerSelected.subscribe((result) => this._answerSelected(result)), this._sceneService.onAfterRender.subscribe(() => this._handleRender()),
|
|
44531
44511
|
// this._appService.skuSet.subscribe(sku => this._handleSkuSet(sku)),
|
|
44532
|
-
this._appService.materialPreviewSet.subscribe(material => this._handleMaterialSet(material)), this._appService.materialPreviewUpdate.subscribe(material => this._updateMaterialPreview(material)), this._appEventService.articleInfoReceived.subscribe(info => this._handleInfoClick(info)), this._messageService.subscribe(MessageType.UndefinedErrorOccured, () => this._handleUndefinedErrorOccured()), this._presetsService.afterLoad.subscribe(() => this._afterLoadFromPreset()), this._messageBus.subscribe(MessageType.Undo, () => this._clearItems()), this._messageBus.subscribe(MessageType.Redo, () => this._clearItems()), this._messageBus.subscribe(MessageType.StartWithEmptyRoom, () => this._clearItems()), this._messageBus.subscribe(MessageType.StartWithPreset, () => this._clearItems()), this._messageBus.subscribe(MessageType.LoadRoomFromPreset, () => this._clearItems()), this._messageBus.subscribe(MessageType.LoadRoomFromCloud, () => this._clearItems()), this._messageBus.subscribe(MessageType.NewRoom, () => this._clearItems()), this._messageBus.subscribe(MessageType.ResetRoomplan, () => this._clearItems()), this._messageBus.subscribe(MessageType.LoadScaledDiagram, () => this._clearItems()), this._presetsService.beforeLoad.subscribe(() => this._clearItems()), this._messageService.subscribe(MessageType.ItemSelected, (item) => this.objectSelected(item)), this._messageService.subscribe(MessageType.ItemUnselected, () => this._removeButtons()), this.screenSizeService.screenSizeChanged.subscribe((info) => {
|
|
44512
|
+
this._appService.materialPreviewSet.subscribe(material => this._handleMaterialSet(material)), this._appService.materialPreviewUpdate.subscribe(material => this._updateMaterialPreview(material)), this._appEventService.articleInfoReceived.subscribe(info => this._handleInfoClick(info)), this._messageService.subscribe(MessageType.UndefinedErrorOccured, () => this._handleUndefinedErrorOccured()), this._presetsService.afterLoad.subscribe(() => this._afterLoadFromPreset()), this._messageBus.subscribe(MessageType.Undo, () => this._clearItems()), this._messageBus.subscribe(MessageType.Redo, () => this._clearItems()), this._messageBus.subscribe(MessageType.StartWithEmptyRoom, () => this._clearItems()), this._messageBus.subscribe(MessageType.StartWithPreset, () => this._clearItems()), this._messageBus.subscribe(MessageType.LoadRoomFromPreset, () => this._clearItems()), this._messageBus.subscribe(MessageType.LoadRoomFromCloud, () => this._clearItems()), this._messageBus.subscribe(MessageType.NewRoom, () => this._clearItems()), this._messageBus.subscribe(MessageType.ResetRoomplan, () => this._clearItems()), this._messageBus.subscribe(MessageType.LoadScaledDiagram, () => this._clearItems()), this._presetsService.beforeLoad.subscribe(() => this._clearItems()), this._messageService.subscribe(MessageType.ItemSelected, (item) => this.objectSelected(item)), this._messageService.subscribe(MessageType.ItemUnselected, () => this._removeButtons()), this._messageService.subscribe(MessageType.UserModelUploaded, (data) => this._addUploadedItem(data)), this.screenSizeService.screenSizeChanged.subscribe((info) => {
|
|
44533
44513
|
this.shouldShowLabel = info.isPhoneSize;
|
|
44534
44514
|
}), this._messageService.subscribe(MessageType.ChangeArticleConfigurationType, (showFullConfig) => this._setTemplateType(showFullConfig)), this._settingsService.settingsLoaded.subscribe((loaded) => {
|
|
44535
44515
|
if (loaded) {
|
|
@@ -44605,6 +44585,9 @@ class ThreedselectorComponent {
|
|
|
44605
44585
|
getObjects() {
|
|
44606
44586
|
// return {furniture: this.threeService.model.saveFurniture()};
|
|
44607
44587
|
}
|
|
44588
|
+
async saveObjects() {
|
|
44589
|
+
return Promise.resolve();
|
|
44590
|
+
}
|
|
44608
44591
|
objectSelected(object) {
|
|
44609
44592
|
this._removeCustomButtons();
|
|
44610
44593
|
this.showCustomizeButtons = true;
|
|
@@ -44665,6 +44648,9 @@ class ThreedselectorComponent {
|
|
|
44665
44648
|
}
|
|
44666
44649
|
// NEW CONFIGURATOR
|
|
44667
44650
|
async handleBuildResult(result) {
|
|
44651
|
+
if (!result || this.firstBuild || !this._sceneService.scene) {
|
|
44652
|
+
return;
|
|
44653
|
+
}
|
|
44668
44654
|
const customFloorGroupResult = new CustomFloorGroupResult();
|
|
44669
44655
|
const metaData = this.setMetadateFromObject(result);
|
|
44670
44656
|
if (result && !isFloorDecoration(result.placement)) {
|
|
@@ -44675,14 +44661,20 @@ class ThreedselectorComponent {
|
|
|
44675
44661
|
metaData.externalSettings = this._externalSourceData;
|
|
44676
44662
|
this._externalSourceData = undefined; // clear it.
|
|
44677
44663
|
}
|
|
44678
|
-
|
|
44679
|
-
|
|
44664
|
+
let furnitureToAdd;
|
|
44665
|
+
if (!result.configurable) { // simple article
|
|
44666
|
+
furnitureToAdd = await this._buildFurnitureService.currentActiveService.createSimple3DModel(metaData, result.object);
|
|
44667
|
+
}
|
|
44668
|
+
else {
|
|
44669
|
+
const item = this._buildFurnitureService.currentActiveService.createConfigurableItemWithObject(result.instanceId, metaData, result.object);
|
|
44670
|
+
furnitureToAdd = await this._buildFurnitureService.currentActiveService.replaceCurrentItem(item, metaData, false);
|
|
44671
|
+
}
|
|
44680
44672
|
customFloorGroupResult.metaData = metaData;
|
|
44681
44673
|
customFloorGroupResult.instanceId = result.instanceId;
|
|
44682
44674
|
customFloorGroupResult.name = result.articleName;
|
|
44683
44675
|
customFloorGroupResult.sku = result.sku;
|
|
44684
44676
|
customFloorGroupResult.resultType = result.resultType;
|
|
44685
|
-
customFloorGroupResult.furniture =
|
|
44677
|
+
customFloorGroupResult.furniture = furnitureToAdd;
|
|
44686
44678
|
customFloorGroupResult.errorMessages = result.errorMessages;
|
|
44687
44679
|
customFloorGroupResult.showErrors = false;
|
|
44688
44680
|
customFloorGroupResult.toggle = false;
|
|
@@ -44693,10 +44685,12 @@ class ThreedselectorComponent {
|
|
|
44693
44685
|
if (customFloorGroupResult.furniture) {
|
|
44694
44686
|
const closestWall = this._wallService.getClosestWall(customFloorGroupResult.furniture.position.x, customFloorGroupResult.furniture.position.z);
|
|
44695
44687
|
if (customFloorGroupResult.furniture instanceof CustomWallFloorItem && customFloorGroupResult.furniture.onWall) {
|
|
44688
|
+
this._itemService.removeItem(customFloorGroupResult.furniture, false, false);
|
|
44696
44689
|
customFloorGroupResult.furniture.placeOnWall(closestWall);
|
|
44697
44690
|
customFloorGroupResult.furniture.moveFromFloorToWall();
|
|
44698
44691
|
}
|
|
44699
44692
|
else if (customFloorGroupResult.furniture instanceof WallItem && !(customFloorGroupResult.furniture instanceof CustomWallFloorItem)) {
|
|
44693
|
+
this._itemService.removeItem(customFloorGroupResult.furniture, false, false);
|
|
44700
44694
|
customFloorGroupResult.furniture.placeOnWall(closestWall);
|
|
44701
44695
|
}
|
|
44702
44696
|
if (customFloorGroupResult.metaData.configurable) {
|
|
@@ -44716,7 +44710,7 @@ class ThreedselectorComponent {
|
|
|
44716
44710
|
this._sceneService.needsRender = true;
|
|
44717
44711
|
}
|
|
44718
44712
|
else if (result.resultType === ResultType.NeedsUserInput) {
|
|
44719
|
-
this._configuringService.isConfiguring = true;
|
|
44713
|
+
// this._configuringService.isConfiguring = true;
|
|
44720
44714
|
}
|
|
44721
44715
|
else if (result.resultType === ResultType.BuildFromScratch) {
|
|
44722
44716
|
// if (this._loadedFromPreset) { // start configuring when loading is done
|
|
@@ -44766,7 +44760,7 @@ class ThreedselectorComponent {
|
|
|
44766
44760
|
this._messageBus.emit(MessageType.FinishedIOneFurnitureBuild);
|
|
44767
44761
|
}
|
|
44768
44762
|
setMetadateFromObject(result) {
|
|
44769
|
-
if (result.originalMetadata) {
|
|
44763
|
+
if (result && result.originalMetadata) {
|
|
44770
44764
|
const metadata = Object.assign({}, result.originalMetadata);
|
|
44771
44765
|
metadata.decos = result.decos;
|
|
44772
44766
|
metadata.selections = result.selections;
|
|
@@ -44804,10 +44798,10 @@ class ThreedselectorComponent {
|
|
|
44804
44798
|
}
|
|
44805
44799
|
}
|
|
44806
44800
|
showConfiguratorChange(show) {
|
|
44807
|
-
this._configuringService.isConfiguring = show;
|
|
44808
44801
|
this.loadConfigurator = show;
|
|
44809
44802
|
}
|
|
44810
44803
|
async loadFurnitureFromSku(position, sku, settings) {
|
|
44804
|
+
this.firstBuild = true;
|
|
44811
44805
|
const configuratorSettings = this._settingsService.settings.projectSettings ?
|
|
44812
44806
|
this._settingsService.settings.projectSettings : this._settingsService.settings;
|
|
44813
44807
|
const configuratorSettingsClone = Object.assign({}, configuratorSettings);
|
|
@@ -44815,27 +44809,33 @@ class ThreedselectorComponent {
|
|
|
44815
44809
|
if (configuratorExternalSourceId) {
|
|
44816
44810
|
if (settings.hasOwnProperty('settings')) {
|
|
44817
44811
|
const settingsInterface = settings['settings'];
|
|
44812
|
+
configuratorSettingsClone.externalSourceId = configuratorExternalSourceId;
|
|
44818
44813
|
configuratorSettingsClone.username = settingsInterface.username;
|
|
44819
|
-
configuratorSettingsClone.password = settingsInterface.password;
|
|
44820
44814
|
configuratorSettingsClone.url = settingsInterface.url;
|
|
44821
44815
|
configuratorSettingsClone.version = settingsInterface.version;
|
|
44822
44816
|
configuratorSettingsClone.schema = settingsInterface.schema;
|
|
44817
|
+
configuratorSettingsClone.mainUrl = settings.mainUrl;
|
|
44818
|
+
configuratorSettingsClone.mainSchema = settings.mainSchema;
|
|
44819
|
+
configuratorSettingsClone.mainVersion = settings.mainVersion;
|
|
44823
44820
|
// Set here to just save it, when it comes back from the configurator, we need to add it to the metadata.
|
|
44824
44821
|
this._externalSourceData = settings;
|
|
44825
44822
|
}
|
|
44826
44823
|
}
|
|
44827
44824
|
this._configuringService.scene = this._sceneService.scene;
|
|
44828
|
-
|
|
44829
|
-
|
|
44830
|
-
furnitureData
|
|
44831
|
-
|
|
44832
|
-
|
|
44825
|
+
this._initConfigurator(configuratorSettingsClone, sku, !!configuratorExternalSourceId);
|
|
44826
|
+
// await this._configuringService.init(configuratorSettingsClone);
|
|
44827
|
+
// const furnitureData: ConfigurationResultObject = new ConfigurationResultObject();
|
|
44828
|
+
// furnitureData.sku = sku;
|
|
44829
|
+
// this._configuringService.isConfiguring = false;
|
|
44830
|
+
// await this._configuringService.configure(furnitureData);
|
|
44833
44831
|
this._startPosition = position;
|
|
44834
44832
|
this.loadConfigurator = true;
|
|
44835
|
-
|
|
44833
|
+
this._changeDetector.detectChanges();
|
|
44834
|
+
return this._waitForBuildToFinish(); // handleBuildResult(this._configuringService.buildResult);
|
|
44836
44835
|
}
|
|
44837
44836
|
async configureFurniture(object) {
|
|
44838
44837
|
if (object instanceof Item) {
|
|
44838
|
+
this._resetConfigurator();
|
|
44839
44839
|
const configuratorExternalSourceId = object.metadata.externalSettings && object.metadata.externalSettings.externalSourceId ?
|
|
44840
44840
|
object.metadata.externalSettings.externalSourceId : undefined;
|
|
44841
44841
|
const configuratorSettingsClone = await this._setSourceSettings(configuratorExternalSourceId);
|
|
@@ -44843,16 +44843,47 @@ class ThreedselectorComponent {
|
|
|
44843
44843
|
this._externalSourceData = object.metadata.externalSettings; // set it so we can restore them with the new config.
|
|
44844
44844
|
}
|
|
44845
44845
|
// make sure that if the object contains metadata, we set from project true
|
|
44846
|
-
await this._configuringService.init(configuratorSettingsClone);
|
|
44847
|
-
|
|
44848
|
-
furnitureData
|
|
44849
|
-
furnitureData.
|
|
44850
|
-
|
|
44851
|
-
|
|
44846
|
+
// await this._configuringService.init(configuratorSettingsClone);
|
|
44847
|
+
this._initConfigurator(configuratorSettingsClone, object.metadata.itemIdentifier, !!configuratorExternalSourceId, object.metadata.itemId);
|
|
44848
|
+
// const furnitureData: ConfigurationResultObject = new ConfigurationResultObject();
|
|
44849
|
+
// furnitureData.sku = object.metadata.itemIdentifier;
|
|
44850
|
+
// furnitureData.instanceId = object.metadata.itemId;
|
|
44851
|
+
// this._configuringService.isConfiguring = true;
|
|
44852
|
+
// await this._configuringService.configure(furnitureData);
|
|
44852
44853
|
this._loadFurnitureService.currentActiveService.configurationDirty = true;
|
|
44853
44854
|
this.loadConfigurator = true;
|
|
44854
44855
|
}
|
|
44855
44856
|
}
|
|
44857
|
+
_initConfigurator(settings, sku, external, instanceId) {
|
|
44858
|
+
this.configuratorSettings = this._prepareSettings(settings, external);
|
|
44859
|
+
this.configuratorSku = sku;
|
|
44860
|
+
this.configuratorInstanceId = instanceId;
|
|
44861
|
+
}
|
|
44862
|
+
_prepareSettings(settings, external = false) {
|
|
44863
|
+
if (external) {
|
|
44864
|
+
// no pre-defined stuff for external sources
|
|
44865
|
+
settings.password = undefined;
|
|
44866
|
+
settings.dataSessionId = undefined;
|
|
44867
|
+
settings.sessionId = undefined;
|
|
44868
|
+
settings.getAccessTokenFunction = undefined;
|
|
44869
|
+
}
|
|
44870
|
+
return settings;
|
|
44871
|
+
}
|
|
44872
|
+
_resetConfigurator() {
|
|
44873
|
+
this.configuratorSettings = undefined;
|
|
44874
|
+
this.configuratorSku = undefined;
|
|
44875
|
+
this.configuratorInstanceId = undefined;
|
|
44876
|
+
this.loadConfigurator = false;
|
|
44877
|
+
this.firstBuild = false;
|
|
44878
|
+
}
|
|
44879
|
+
_waitForBuildToFinish() {
|
|
44880
|
+
return new Promise((resolve, reject) => {
|
|
44881
|
+
this._configuratorEventService.buildFinished.pipe(filter$1(value => value !== undefined && value !== null), take(1)).subscribe((result) => {
|
|
44882
|
+
this._resetConfigurator();
|
|
44883
|
+
resolve(this.handleBuildResult(result));
|
|
44884
|
+
});
|
|
44885
|
+
});
|
|
44886
|
+
}
|
|
44856
44887
|
async _setSourceSettings(configuratorExternalSourceId) {
|
|
44857
44888
|
const configuratorSettings = this._settingsService.settings.projectSettings ?
|
|
44858
44889
|
this._settingsService.settings.projectSettings : this._settingsService.settings;
|
|
@@ -44877,7 +44908,7 @@ class ThreedselectorComponent {
|
|
|
44877
44908
|
return configuratorSettingsClone;
|
|
44878
44909
|
}
|
|
44879
44910
|
_closeConfigurator() {
|
|
44880
|
-
this._configuringService.isConfiguring = false;
|
|
44911
|
+
// this._configuringService.isConfiguring = false;
|
|
44881
44912
|
this.loadConfigurator = false;
|
|
44882
44913
|
}
|
|
44883
44914
|
_clearItems() {
|
|
@@ -45322,9 +45353,7 @@ class ThreedselectorComponent {
|
|
|
45322
45353
|
}
|
|
45323
45354
|
this._prepareAddButtons();
|
|
45324
45355
|
}
|
|
45325
|
-
|
|
45326
|
-
this._callBackFnWhenBuildFinished(result.furniture);
|
|
45327
|
-
}
|
|
45356
|
+
// this.handleBuildResult(result);
|
|
45328
45357
|
}
|
|
45329
45358
|
_resetElementPosition() {
|
|
45330
45359
|
if (this.selectedElement && !this.standAlone) {
|
|
@@ -45534,6 +45563,38 @@ class ThreedselectorComponent {
|
|
|
45534
45563
|
}
|
|
45535
45564
|
}*/
|
|
45536
45565
|
}
|
|
45566
|
+
_addUploadedItem(data) {
|
|
45567
|
+
if (!data) {
|
|
45568
|
+
return;
|
|
45569
|
+
}
|
|
45570
|
+
const result = new ConfigurationResultObject();
|
|
45571
|
+
result.object = data.object;
|
|
45572
|
+
result.placement = data.placement;
|
|
45573
|
+
result.resultType = ResultType.Loaded;
|
|
45574
|
+
const type = itemTypeFromPlacement(result.placement);
|
|
45575
|
+
result.position = isFloorType(type) ? this._bluePrintService.getRoomCenter() : new Vector3();
|
|
45576
|
+
result.originalMetadata = {
|
|
45577
|
+
itemName: data.object.name,
|
|
45578
|
+
itemType: type,
|
|
45579
|
+
configurable: false,
|
|
45580
|
+
ione: false,
|
|
45581
|
+
// rotation?: number | Euler;
|
|
45582
|
+
// scale?: Vector3;
|
|
45583
|
+
// centerPivot?: boolean;
|
|
45584
|
+
thirdPartyModel: true,
|
|
45585
|
+
// canElevate?: boolean;
|
|
45586
|
+
// modelUrl?: string;
|
|
45587
|
+
// scalable?: boolean;
|
|
45588
|
+
// elevation?: number;
|
|
45589
|
+
// elevationFixed?: boolean;
|
|
45590
|
+
// elevationAdjustable?: boolean;
|
|
45591
|
+
canScaleX: true,
|
|
45592
|
+
canScaleY: true,
|
|
45593
|
+
canScaleZ: true,
|
|
45594
|
+
colorable: true
|
|
45595
|
+
};
|
|
45596
|
+
this.handleBuildResult(result);
|
|
45597
|
+
}
|
|
45537
45598
|
async _handleLoadIOneFurnitureIntoSceneBySKU(sku, settings, position) {
|
|
45538
45599
|
const toast = new Toast();
|
|
45539
45600
|
toast.message = 'MODEL_LOADING';
|
|
@@ -45544,6 +45605,32 @@ class ThreedselectorComponent {
|
|
|
45544
45605
|
if (article.placement === HdecoPlacement.FloorDecoration) {
|
|
45545
45606
|
this._floorService.selectedFloorArticle = article;
|
|
45546
45607
|
}
|
|
45608
|
+
if (article.externalCatalogId && article.externalSourceKey) {
|
|
45609
|
+
try {
|
|
45610
|
+
sku = article.externalSourceKey;
|
|
45611
|
+
const catalogDefinition = this._connectorAdapterService.getCatalogDefinition(article.externalCatalogId);
|
|
45612
|
+
const externalSource = this._connectorAdapterService.getExternalSourceFromId(catalogDefinition.externalSourceId);
|
|
45613
|
+
const params = await this._connectorAdapterService.getPublicParams(externalSource.url, parseInt(externalSource.schema));
|
|
45614
|
+
const homeDecoSettings = Object.assign(JSON.parse(params.homeDecoSettings ? params.homeDecoSettings : params.catalogSettings), new HomedecoratorSettings());
|
|
45615
|
+
settings = {
|
|
45616
|
+
name: catalogDefinition.name,
|
|
45617
|
+
settings: homeDecoSettings,
|
|
45618
|
+
externalSourceId: externalSource.sourceId,
|
|
45619
|
+
catalogDefinition: catalogDefinition,
|
|
45620
|
+
schema: externalSource.schema,
|
|
45621
|
+
mainUrl: this._settingsService.settings.url,
|
|
45622
|
+
mainSchema: this._settingsService.settings.schema,
|
|
45623
|
+
mainVersion: this._settingsService.settings.version
|
|
45624
|
+
};
|
|
45625
|
+
settings.settings.password = '';
|
|
45626
|
+
settings.settings.username = 'external';
|
|
45627
|
+
}
|
|
45628
|
+
catch (e) {
|
|
45629
|
+
console.error(e);
|
|
45630
|
+
this._messageBus.emit(MessageType.UndefinedErrorOccured);
|
|
45631
|
+
return;
|
|
45632
|
+
}
|
|
45633
|
+
}
|
|
45547
45634
|
const draggedData = {
|
|
45548
45635
|
name: sku,
|
|
45549
45636
|
constructFn: async (pos) => this.loadFurnitureFromSku(pos, sku, settings),
|
|
@@ -45570,7 +45657,8 @@ class ThreedselectorComponent {
|
|
|
45570
45657
|
async _loadIOneFurnitureFromOriginal(md, pos, rot) {
|
|
45571
45658
|
const newMetaData = { ...md };
|
|
45572
45659
|
newMetaData.rotation = new Euler().copy(rot);
|
|
45573
|
-
|
|
45660
|
+
await this._handleLoadAndBuildFurniture(newMetaData, true, false, false, false, false);
|
|
45661
|
+
return this.handleBuildResult(this._configuringService.buildResult);
|
|
45574
45662
|
}
|
|
45575
45663
|
_loadIOneFurnitureFromSku(pos, sku, settings, standAlone = false) {
|
|
45576
45664
|
const md = {
|
|
@@ -45666,17 +45754,18 @@ class ThreedselectorComponent {
|
|
|
45666
45754
|
(metadata.modelUrl && !metadata.configurable)) {
|
|
45667
45755
|
loadFromProject = true;
|
|
45668
45756
|
}
|
|
45669
|
-
|
|
45670
|
-
|
|
45671
|
-
|
|
45672
|
-
|
|
45673
|
-
|
|
45674
|
-
|
|
45675
|
-
|
|
45676
|
-
|
|
45677
|
-
|
|
45678
|
-
}
|
|
45679
|
-
|
|
45757
|
+
await this._handleLoadAndBuildFurniture(metadata, true, true, true, false, true, false, loadFromProject);
|
|
45758
|
+
// const result: any = await this._handleLoadAndBuildFurniture(
|
|
45759
|
+
// metadata, true, true, true, false, true, false, loadFromProject);
|
|
45760
|
+
// if (item.materialDiff) {
|
|
45761
|
+
// if (result.furniture) {
|
|
45762
|
+
// try {
|
|
45763
|
+
// await MaterialDiffUtils.ApplyMaterialDiff(result.furniture, item.materialDiff);
|
|
45764
|
+
// } catch (e) {
|
|
45765
|
+
// }
|
|
45766
|
+
// }
|
|
45767
|
+
// }
|
|
45768
|
+
// return result;
|
|
45680
45769
|
}
|
|
45681
45770
|
async _handleLoadAndBuildFurniture(furnitureData, shouldCopyInstance, looseOriginalConfiguration, fromPreset, standAlone, fromScratch, showErrorDialog = true, loadFromProject = false) {
|
|
45682
45771
|
this._loadedFromPreset = fromPreset; // Set the flag if it was loaded from a preset.
|
|
@@ -45694,7 +45783,7 @@ class ThreedselectorComponent {
|
|
|
45694
45783
|
this._externalSourceData = furnitureData.externalSettings; // set it so we can restore them with the new config.
|
|
45695
45784
|
}
|
|
45696
45785
|
this._configuringService.scene = this._sceneService.scene;
|
|
45697
|
-
await this._configuringService.init(configuratorSettingsClone);
|
|
45786
|
+
// await this._configuringService.init(configuratorSettingsClone);
|
|
45698
45787
|
const data = new ConfigurationResultObject();
|
|
45699
45788
|
data.sku = furnitureData.itemIdentifier;
|
|
45700
45789
|
data.articleName = furnitureData.itemName;
|
|
@@ -45714,7 +45803,7 @@ class ThreedselectorComponent {
|
|
|
45714
45803
|
data.rotation = furnitureData.rotation;
|
|
45715
45804
|
data.originalMetadata = furnitureData;
|
|
45716
45805
|
await this._configuringService.configure(data, shouldCopyInstance, looseOriginalConfiguration, standAlone, fromScratch, fromPreset, loadFromProject);
|
|
45717
|
-
this._configuringService.isConfiguring = false;
|
|
45806
|
+
// this._configuringService.isConfiguring = false;
|
|
45718
45807
|
this.loadConfigurator = true;
|
|
45719
45808
|
}
|
|
45720
45809
|
_answerSelected(result) {
|
|
@@ -45763,6 +45852,7 @@ class ThreedselectorComponent {
|
|
|
45763
45852
|
else {
|
|
45764
45853
|
this._appStateService.undoDisabled = false;
|
|
45765
45854
|
this._appStateService.redoDisabled = false;
|
|
45855
|
+
this.loadConfigurator = false;
|
|
45766
45856
|
}
|
|
45767
45857
|
this.showAnswers = false;
|
|
45768
45858
|
this.showSelections = configuringModeChange.configuring || this.standAlone;
|
|
@@ -45843,8 +45933,8 @@ class ThreedselectorComponent {
|
|
|
45843
45933
|
});
|
|
45844
45934
|
}
|
|
45845
45935
|
}
|
|
45846
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThreedselectorComponent, deps: [{ token: ScreenSizeAnalysisService }, { token: i1$2.MatDialog }, { token: HomedecoratorAppService }, { token: HomedecoratorConnectorService }, { token: MessageBusService }, { token: SwitchLoadFurnitureService }, { token: SwitchBuildFurnitureService }, { token: ToastService }, { token: MessageBusService }, { token: SceneService }, { token: DialogService }, { token: CameraService }, { token: PresetsService }, { token: ItemService }, { token: HomedecoratorSettingsService }, { token: HomedecoratorAppEventService }, { token: BluePrintService }, { token: WallService }, { token: FloorService }, { token: HomedecoratorIconCacheService }, { token: GoogleTagManagerService }, { token: AppStateService }, { token: ProgressService }, { token: ResizeService }, { token: HomedecoratorConnectorAdapterService }, { token: LightPresetsService }, { token: VariationService }, { token: i27.ConfiguringService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45847
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ThreedselectorComponent, isStandalone: false, selector: "rp-threedselector", inputs: { selections: "selections" }, outputs: { customizeButtonClicked: "customizeButtonClicked" }, viewQueries: [{ propertyName: "toolbarIconModels", first: true, predicate: ["toolbarIconModels"], descendants: true, static: true }, { propertyName: "selectedThreedObjectCustomizationSidebar", first: true, predicate: ["selectedThreedObjectCustomizationSidebar"], descendants: true, static: true }, { propertyName: "selectedThreedObjectAnimationSidebar", first: true, predicate: ["selectedThreedObjectAnimationSidebar"], descendants: true, static: true }, { propertyName: "customizeButtonClicked", first: true, predicate: ElementToolbarComponent, descendants: true, static: true }], ngImport: i0, template: "@if (
|
|
45936
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ThreedselectorComponent, deps: [{ token: ScreenSizeAnalysisService }, { token: i1$2.MatDialog }, { token: HomedecoratorAppService }, { token: HomedecoratorConnectorService }, { token: MessageBusService }, { token: SwitchLoadFurnitureService }, { token: SwitchBuildFurnitureService }, { token: ToastService }, { token: MessageBusService }, { token: SceneService }, { token: DialogService }, { token: CameraService }, { token: PresetsService }, { token: ItemService }, { token: HomedecoratorSettingsService }, { token: HomedecoratorAppEventService }, { token: BluePrintService }, { token: WallService }, { token: FloorService }, { token: HomedecoratorIconCacheService }, { token: GoogleTagManagerService }, { token: AppStateService }, { token: ProgressService }, { token: ResizeService }, { token: HomedecoratorConnectorAdapterService }, { token: LightPresetsService }, { token: VariationService }, { token: i27.ConfiguringService }, { token: i27.ConfiguratorEventService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45937
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ThreedselectorComponent, isStandalone: false, selector: "rp-threedselector", inputs: { selections: "selections" }, outputs: { customizeButtonClicked: "customizeButtonClicked" }, viewQueries: [{ propertyName: "toolbarIconModels", first: true, predicate: ["toolbarIconModels"], descendants: true, static: true }, { propertyName: "selectedThreedObjectCustomizationSidebar", first: true, predicate: ["selectedThreedObjectCustomizationSidebar"], descendants: true, static: true }, { propertyName: "selectedThreedObjectAnimationSidebar", first: true, predicate: ["selectedThreedObjectAnimationSidebar"], descendants: true, static: true }, { propertyName: "customizeButtonClicked", first: true, predicate: ElementToolbarComponent, descendants: true, static: true }], ngImport: i0, template: "@if (true) {\r\n <co-configurator\r\n class=\"floating\"\r\n [settings]=\"configuratorSettings\"\r\n [sku]=\"configuratorSku\"\r\n [instanceId]=\"configuratorInstanceId\"\r\n [show]=\"loadConfigurator && !firstBuild\"\r\n [showErrorMessages]=\"true\"\r\n [showLoader]=\"true\"\r\n [outputErrorMessages]=\"true\"\r\n (errorMessages)=\"handleErrorMessages($event)\"\r\n (showChange)=\"showConfiguratorChange($event)\">\r\n </co-configurator>\r\n}\r\n\r\n@if (showElementToolbar) {\r\n <rp-element-toolbar class=\"rp-element-toolbar floating\" [class.custom]=\"standAlone\" @showElementToolbar\r\n [editMenu]=\"editElementMenu\"\r\n [showSwap]=\"showSwapButton\"\r\n [showPointer]=\"selectedElementPosition !== undefined\"\r\n (swapClicked)=\"swapElement()\"\r\n (deleteClicked)=\"deleteElement()\"\r\n (animationClicked)=\"openAnimationSidebar()\"\r\n ></rp-element-toolbar>\r\n <rp-element-buttons class=\"rp-element-buttons floating\" [class.animate]=\"animateEditAddButtons\"\r\n [elementPointer]=\"elementToolbar?.elementPointer\"\r\n [addButtons]=\"editAddButtons\"\r\n [customizeButtons]=\"editCustomizeButton\"\r\n [resizeButtons]=\"resizeButtons\"\r\n [elementPosition]=\"selectedElementPosition\"\r\n (customizeButtonClicked)=\"handleCustomizeClick()\"\r\n ></rp-element-buttons>\r\n}\r\n\r\n@if (showCustomizeButtons) {\r\n <rp-element-buttons class=\"rp-element-buttons floating\" [class.animate]=\"animateEditAddButtons\"\r\n [elementPointer]=\"elementToolbar?.elementPointer\"\r\n [customizeButtons]=\"editCustomizeButton\"\r\n [elementPosition]=\"selectedElementPosition\"\r\n (customizeButtonClicked)=\"handleCustomizeClick()\"\r\n ></rp-element-buttons>\r\n}\r\n\r\n<ng-template #toolbarIconModels>\r\n <rp-toolbar-icon\r\n matIcon=\"list\"\r\n tooltip=\"{{iconName.Objects | localize}}\"\r\n (onClick)=\"setModelErrorDialog()\"\r\n [showLabel]=\"shouldShowLabel\"\r\n ></rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #selectedThreedObjectAnimationSidebar>\r\n <header class=\"drawer__header\">\r\n <h2 class=\"mat-headline-6\" [textContent]=\"'ANIMATE' | localize\"></h2>\r\n </header>\r\n</ng-template>\r\n\r\n<ng-template #selectedThreedObjectCustomizationSidebar>\r\n <header class=\"drawer__header\">\r\n <h2 class=\"mat-headline-6\" [textContent]=\"'CUSTOMIZE' | localize\"></h2>\r\n </header>\r\n</ng-template>\r\n\r\n<div class=\"slider-container\">\r\n <rp-element-slider class=\"rp-element-slider\"></rp-element-slider>\r\n</div>\r\n", styles: [":host{position:absolute;top:0;left:0;pointer-events:none;margin:0;padding:0;width:100%;height:100%;overflow:hidden}:host .rp-element-buttons.animate ::ng-deep .element-add-button{animation-name:pulse-add-buttons;animation-duration:.4s;animation-iteration-count:6;animation-direction:alternate}:host>*{pointer-events:all}.input-wrapper{display:flex;flex-direction:column}.flex-wrap{display:flex;flex-flow:column nowrap;height:100%}.logo-menu-5th{position:absolute;top:220px;left:84px}.logo-menu-5th.front .mat-mdc-raised-button{width:170px;text-align:left}.sidebar{position:absolute;left:0;top:0;height:100vh;max-width:30%;width:400px;background:#fff;padding:0 20px;box-shadow:0 0 20px #00000040}.on-top{z-index:3}.solid-background{fill:#fff;background:#fff}.solid-background>*{fill:#fff;background:#fff}.button-close{height:36px;width:36px;min-width:initial;padding:0;border:none;position:absolute;right:20px;top:15px;border-radius:50%}.remove-all{position:absolute;top:15px;right:71px}#loader{width:300px;position:fixed;top:25%;left:50%;margin-left:-200px;background-color:#fff;border-radius:15px;transform:translate(-50%,-50%);text-align:center;font-family:Public sans,serif;z-index:1000;box-sizing:border-box;padding:15px}#loader.full{width:100%;top:0;left:0;margin-left:0;border-radius:0;transform:none;z-index:auto;padding:0;position:absolute}#loader.full #progress-bar{width:100%;height:5px;border:none;margin-top:0;border-radius:0}#loader-text{font-family:Public sans,serif;font-size:15px}#progress-bar{width:270px;height:20px;border:1px solid transparent;background:#e0e0e0;position:relative;margin-top:10px;border-radius:15px;overflow:hidden}.circular-progress-wrapper{position:absolute;width:90px;height:90px;left:50%;top:50%;transform:translate(-50%,-50%)}.circular-progress{width:90px;height:90px;transform:rotate(-90deg)}.bg{fill:none;stroke:#d1cec5;stroke-width:2}.progress{fill:none;stroke:#979284;stroke-width:2;stroke-linecap:round;transition:stroke-dasharray .3s ease}.percentage{position:absolute;top:0;left:0;width:90px;height:90px;font-size:16px;font-weight:600;line-height:90px;text-align:center;color:#979284}#progress{height:100%;width:0;background:#da9803;transition:width .3s}@keyframes pulse-add-buttons{50%{box-shadow:0 0 20px #ff5c33}}\n"], dependencies: [{ kind: "component", type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { kind: "component", type: i27.ConfiguratorComponent, selector: "co-configurator", inputs: ["show", "sku", "instanceId", "settings", "scene", "showLoader", "showProgressBar", "showErrorMessages", "outputErrorMessages", "canCloseConfigurator", "animateSlideout", "showHeaderInformation"], outputs: ["isLoading", "updateProgressBar", "errorMessages", "showChange"] }, { kind: "component", type: ElementToolbarComponent, selector: "rp-element-toolbar", inputs: ["editMenu", "showPointer", "showSwap"], outputs: ["deleteClicked", "swapClicked", "animationClicked"] }, { kind: "component", type: ElementButtonsComponent, selector: "rp-element-buttons", inputs: ["addButtons", "customizeButtons", "resizeButtons", "elementPointer", "elementPosition"], outputs: ["customizeButtonClicked"] }, { kind: "component", type: ElementSliderComponent, selector: "rp-element-slider" }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
|
|
45848
45938
|
trigger('showElementToolbar', [
|
|
45849
45939
|
state('void', style({ opacity: 0 })),
|
|
45850
45940
|
state('*', style({ opacity: 1 })),
|
|
@@ -45862,8 +45952,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
45862
45952
|
transition('void => *', animate('500ms ease'))
|
|
45863
45953
|
])
|
|
45864
45954
|
] /*,
|
|
45865
|
-
changeDetection: ChangeDetectionStrategy.OnPush*/, standalone: false, template: "@if (
|
|
45866
|
-
}], ctorParameters: () => [{ type: ScreenSizeAnalysisService }, { type: i1$2.MatDialog }, { type: HomedecoratorAppService }, { type: HomedecoratorConnectorService }, { type: MessageBusService }, { type: SwitchLoadFurnitureService }, { type: SwitchBuildFurnitureService }, { type: ToastService }, { type: MessageBusService }, { type: SceneService }, { type: DialogService }, { type: CameraService }, { type: PresetsService }, { type: ItemService }, { type: HomedecoratorSettingsService }, { type: HomedecoratorAppEventService }, { type: BluePrintService }, { type: WallService }, { type: FloorService }, { type: HomedecoratorIconCacheService }, { type: GoogleTagManagerService }, { type: AppStateService }, { type: ProgressService }, { type: ResizeService }, { type: HomedecoratorConnectorAdapterService }, { type: LightPresetsService }, { type: VariationService }, { type: i27.ConfiguringService }], propDecorators: { toolbarIconModels: [{
|
|
45955
|
+
changeDetection: ChangeDetectionStrategy.OnPush*/, standalone: false, template: "@if (true) {\r\n <co-configurator\r\n class=\"floating\"\r\n [settings]=\"configuratorSettings\"\r\n [sku]=\"configuratorSku\"\r\n [instanceId]=\"configuratorInstanceId\"\r\n [show]=\"loadConfigurator && !firstBuild\"\r\n [showErrorMessages]=\"true\"\r\n [showLoader]=\"true\"\r\n [outputErrorMessages]=\"true\"\r\n (errorMessages)=\"handleErrorMessages($event)\"\r\n (showChange)=\"showConfiguratorChange($event)\">\r\n </co-configurator>\r\n}\r\n\r\n@if (showElementToolbar) {\r\n <rp-element-toolbar class=\"rp-element-toolbar floating\" [class.custom]=\"standAlone\" @showElementToolbar\r\n [editMenu]=\"editElementMenu\"\r\n [showSwap]=\"showSwapButton\"\r\n [showPointer]=\"selectedElementPosition !== undefined\"\r\n (swapClicked)=\"swapElement()\"\r\n (deleteClicked)=\"deleteElement()\"\r\n (animationClicked)=\"openAnimationSidebar()\"\r\n ></rp-element-toolbar>\r\n <rp-element-buttons class=\"rp-element-buttons floating\" [class.animate]=\"animateEditAddButtons\"\r\n [elementPointer]=\"elementToolbar?.elementPointer\"\r\n [addButtons]=\"editAddButtons\"\r\n [customizeButtons]=\"editCustomizeButton\"\r\n [resizeButtons]=\"resizeButtons\"\r\n [elementPosition]=\"selectedElementPosition\"\r\n (customizeButtonClicked)=\"handleCustomizeClick()\"\r\n ></rp-element-buttons>\r\n}\r\n\r\n@if (showCustomizeButtons) {\r\n <rp-element-buttons class=\"rp-element-buttons floating\" [class.animate]=\"animateEditAddButtons\"\r\n [elementPointer]=\"elementToolbar?.elementPointer\"\r\n [customizeButtons]=\"editCustomizeButton\"\r\n [elementPosition]=\"selectedElementPosition\"\r\n (customizeButtonClicked)=\"handleCustomizeClick()\"\r\n ></rp-element-buttons>\r\n}\r\n\r\n<ng-template #toolbarIconModels>\r\n <rp-toolbar-icon\r\n matIcon=\"list\"\r\n tooltip=\"{{iconName.Objects | localize}}\"\r\n (onClick)=\"setModelErrorDialog()\"\r\n [showLabel]=\"shouldShowLabel\"\r\n ></rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #selectedThreedObjectAnimationSidebar>\r\n <header class=\"drawer__header\">\r\n <h2 class=\"mat-headline-6\" [textContent]=\"'ANIMATE' | localize\"></h2>\r\n </header>\r\n</ng-template>\r\n\r\n<ng-template #selectedThreedObjectCustomizationSidebar>\r\n <header class=\"drawer__header\">\r\n <h2 class=\"mat-headline-6\" [textContent]=\"'CUSTOMIZE' | localize\"></h2>\r\n </header>\r\n</ng-template>\r\n\r\n<div class=\"slider-container\">\r\n <rp-element-slider class=\"rp-element-slider\"></rp-element-slider>\r\n</div>\r\n", styles: [":host{position:absolute;top:0;left:0;pointer-events:none;margin:0;padding:0;width:100%;height:100%;overflow:hidden}:host .rp-element-buttons.animate ::ng-deep .element-add-button{animation-name:pulse-add-buttons;animation-duration:.4s;animation-iteration-count:6;animation-direction:alternate}:host>*{pointer-events:all}.input-wrapper{display:flex;flex-direction:column}.flex-wrap{display:flex;flex-flow:column nowrap;height:100%}.logo-menu-5th{position:absolute;top:220px;left:84px}.logo-menu-5th.front .mat-mdc-raised-button{width:170px;text-align:left}.sidebar{position:absolute;left:0;top:0;height:100vh;max-width:30%;width:400px;background:#fff;padding:0 20px;box-shadow:0 0 20px #00000040}.on-top{z-index:3}.solid-background{fill:#fff;background:#fff}.solid-background>*{fill:#fff;background:#fff}.button-close{height:36px;width:36px;min-width:initial;padding:0;border:none;position:absolute;right:20px;top:15px;border-radius:50%}.remove-all{position:absolute;top:15px;right:71px}#loader{width:300px;position:fixed;top:25%;left:50%;margin-left:-200px;background-color:#fff;border-radius:15px;transform:translate(-50%,-50%);text-align:center;font-family:Public sans,serif;z-index:1000;box-sizing:border-box;padding:15px}#loader.full{width:100%;top:0;left:0;margin-left:0;border-radius:0;transform:none;z-index:auto;padding:0;position:absolute}#loader.full #progress-bar{width:100%;height:5px;border:none;margin-top:0;border-radius:0}#loader-text{font-family:Public sans,serif;font-size:15px}#progress-bar{width:270px;height:20px;border:1px solid transparent;background:#e0e0e0;position:relative;margin-top:10px;border-radius:15px;overflow:hidden}.circular-progress-wrapper{position:absolute;width:90px;height:90px;left:50%;top:50%;transform:translate(-50%,-50%)}.circular-progress{width:90px;height:90px;transform:rotate(-90deg)}.bg{fill:none;stroke:#d1cec5;stroke-width:2}.progress{fill:none;stroke:#979284;stroke-width:2;stroke-linecap:round;transition:stroke-dasharray .3s ease}.percentage{position:absolute;top:0;left:0;width:90px;height:90px;font-size:16px;font-weight:600;line-height:90px;text-align:center;color:#979284}#progress{height:100%;width:0;background:#da9803;transition:width .3s}@keyframes pulse-add-buttons{50%{box-shadow:0 0 20px #ff5c33}}\n"] }]
|
|
45956
|
+
}], ctorParameters: () => [{ type: ScreenSizeAnalysisService }, { type: i1$2.MatDialog }, { type: HomedecoratorAppService }, { type: HomedecoratorConnectorService }, { type: MessageBusService }, { type: SwitchLoadFurnitureService }, { type: SwitchBuildFurnitureService }, { type: ToastService }, { type: MessageBusService }, { type: SceneService }, { type: DialogService }, { type: CameraService }, { type: PresetsService }, { type: ItemService }, { type: HomedecoratorSettingsService }, { type: HomedecoratorAppEventService }, { type: BluePrintService }, { type: WallService }, { type: FloorService }, { type: HomedecoratorIconCacheService }, { type: GoogleTagManagerService }, { type: AppStateService }, { type: ProgressService }, { type: ResizeService }, { type: HomedecoratorConnectorAdapterService }, { type: LightPresetsService }, { type: VariationService }, { type: i27.ConfiguringService }, { type: i27.ConfiguratorEventService }, { type: i0.ChangeDetectorRef }], propDecorators: { toolbarIconModels: [{
|
|
45867
45957
|
type: ViewChild,
|
|
45868
45958
|
args: ['toolbarIconModels', { static: true }]
|
|
45869
45959
|
}], selectedThreedObjectCustomizationSidebar: [{
|
|
@@ -49559,84 +49649,82 @@ class HomedecoratorComponent {
|
|
|
49559
49649
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HomedecoratorComponent, deps: [{ token: HomedecoratorAppService }, { token: HomedecoratorConnectorService }, { token: AppStateService }, { token: PresetsService }, { token: ScreenSizeAnalysisService }, { token: i4.MatIconRegistry }, { token: i1$1.DomSanitizer }, { token: MessageBusService }, { token: HomedecoratorService }, { token: HomedecoratorAppEventService, optional: true, skipSelf: true }, { token: HomedecoratorAppEventService, optional: true, self: true }, { token: IntegrationService }, { token: SceneService }, { token: WebWorkerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49560
49650
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: HomedecoratorComponent, isStandalone: false, selector: "co-homedecorator", inputs: { generalFilterOrders: "generalFilterOrders", purchaseFilterOrders: "purchaseFilterOrders", logisticsFilterOrders: "logisticsFilterOrders", initCommunication: "initCommunication", projectToLoad: "projectToLoad", settings: "settings" }, host: { listeners: { "document:keyup": "keyup($event)" }, properties: { "class.co-homedecorator": "this.showClass" } }, providers: [
|
|
49561
49651
|
APPLICATION_SERVICES_PROVIDERS
|
|
49562
|
-
], ngImport: i0, template: `
|
|
49563
|
-
@if (loaded) {
|
|
49564
|
-
@if (loaded) {
|
|
49565
|
-
<div class="viewport">
|
|
49566
|
-
<progress-bar></progress-bar>
|
|
49567
|
-
<rp-loading-overlay>
|
|
49568
|
-
<rp-core3d></rp-core3d>
|
|
49569
|
-
<rp-room-planner></rp-room-planner>
|
|
49570
|
-
<rp-furniture-manager></rp-furniture-manager>
|
|
49571
|
-
<rp-presets [openNewRoomDialog]="!projectToLoad"></rp-presets>
|
|
49572
|
-
<rp-threedselector></rp-threedselector>
|
|
49573
|
-
<rp-toolbar (externalSave)="handleExternalSave()"></rp-toolbar>
|
|
49574
|
-
<rp-product-catalog
|
|
49575
|
-
[generalFilterOrders]="generalFilterOrders"
|
|
49576
|
-
[purchaseFilterOrders]="purchaseFilterOrders"
|
|
49577
|
-
[logisticsFilterOrders]="logisticsFilterOrders"
|
|
49578
|
-
></rp-product-catalog>
|
|
49579
|
-
<
|
|
49580
|
-
|
|
49581
|
-
|
|
49582
|
-
|
|
49583
|
-
|
|
49584
|
-
|
|
49585
|
-
|
|
49586
|
-
|
|
49587
|
-
|
|
49588
|
-
|
|
49589
|
-
|
|
49590
|
-
|
|
49591
|
-
|
|
49592
|
-
|
|
49593
|
-
|
|
49594
|
-
|
|
49595
|
-
|
|
49596
|
-
|
|
49597
|
-
}
|
|
49598
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ProgressBarComponent, selector: "progress-bar" }, { kind: "component", type: LoadingOverlayComponent, selector: "rp-loading-overlay" }, { kind: "component", type: HdLoaderComponent, selector: "rp-loader", inputs: ["show"] }, { kind: "component", type: Core3dComponent, selector: "rp-core3d" }, { kind: "component", type: RoomPlannerComponent, selector: "rp-room-planner", inputs: ["isLoading"], outputs: ["done", "showPlugin", "focusControls"] }, { kind: "component", type: FurnitureManagerComponent, selector: "rp-furniture-manager" }, { kind: "component", type: PresetsComponent, selector: "rp-presets", inputs: ["openNewRoomDialog"] }, { kind: "component", type: ThreedselectorComponent, selector: "rp-threedselector", inputs: ["selections"], outputs: ["customizeButtonClicked"] }, { kind: "component", type: ToolbarComponent, selector: "rp-toolbar", outputs: ["externalSave"] }, { kind: "component", type: ProductCatalogComponent, selector: "rp-product-catalog", inputs: ["generalFilterOrders", "purchaseFilterOrders", "logisticsFilterOrders"] }, { kind: "component", type: HelpComponent, selector: "rp-help" }, { kind: "component", type: i27.LiteSelectorComponent, selector: "co-lite-selector", inputs: ["showAnswers", "show", "showSelections", "showLabel", "canClose", "animateSlideout", "customDimensions"], outputs: ["showChange", "answerChosen"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
49652
|
+
], ngImport: i0, template: `
|
|
49653
|
+
@if (loaded) {
|
|
49654
|
+
@if (loaded) {
|
|
49655
|
+
<div class="viewport">
|
|
49656
|
+
<progress-bar></progress-bar>
|
|
49657
|
+
<rp-loading-overlay>
|
|
49658
|
+
<rp-core3d></rp-core3d>
|
|
49659
|
+
<rp-room-planner></rp-room-planner>
|
|
49660
|
+
<rp-furniture-manager></rp-furniture-manager>
|
|
49661
|
+
<rp-presets [openNewRoomDialog]="!projectToLoad"></rp-presets>
|
|
49662
|
+
<rp-threedselector></rp-threedselector>
|
|
49663
|
+
<rp-toolbar (externalSave)="handleExternalSave()"></rp-toolbar>
|
|
49664
|
+
<rp-product-catalog
|
|
49665
|
+
[generalFilterOrders]="generalFilterOrders"
|
|
49666
|
+
[purchaseFilterOrders]="purchaseFilterOrders"
|
|
49667
|
+
[logisticsFilterOrders]="logisticsFilterOrders"
|
|
49668
|
+
></rp-product-catalog>
|
|
49669
|
+
<rp-help></rp-help>
|
|
49670
|
+
</rp-loading-overlay>
|
|
49671
|
+
</div>
|
|
49672
|
+
}
|
|
49673
|
+
<rp-loader [show]="controllerService.shouldShowLoader"></rp-loader>
|
|
49674
|
+
@if (shouldShowLandscapeMessage) {
|
|
49675
|
+
<div class="mobile-portrait-overlay">
|
|
49676
|
+
<!--
|
|
49677
|
+
<mat-icon svgIcon="tilt-phone" class="tilt-phone-icon"></mat-icon>
|
|
49678
|
+
-->
|
|
49679
|
+
<div>
|
|
49680
|
+
<!--
|
|
49681
|
+
{{'PLEASE_USE_PHONE_IN_LANDSCAPE_MODE' | localize}}
|
|
49682
|
+
-->
|
|
49683
|
+
</div>
|
|
49684
|
+
</div>
|
|
49685
|
+
}
|
|
49686
|
+
}
|
|
49687
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ProgressBarComponent, selector: "progress-bar" }, { kind: "component", type: LoadingOverlayComponent, selector: "rp-loading-overlay" }, { kind: "component", type: HdLoaderComponent, selector: "rp-loader", inputs: ["show"] }, { kind: "component", type: Core3dComponent, selector: "rp-core3d" }, { kind: "component", type: RoomPlannerComponent, selector: "rp-room-planner", inputs: ["isLoading"], outputs: ["done", "showPlugin", "focusControls"] }, { kind: "component", type: FurnitureManagerComponent, selector: "rp-furniture-manager" }, { kind: "component", type: PresetsComponent, selector: "rp-presets", inputs: ["openNewRoomDialog"] }, { kind: "component", type: ThreedselectorComponent, selector: "rp-threedselector", inputs: ["selections"], outputs: ["customizeButtonClicked"] }, { kind: "component", type: ToolbarComponent, selector: "rp-toolbar", outputs: ["externalSave"] }, { kind: "component", type: ProductCatalogComponent, selector: "rp-product-catalog", inputs: ["generalFilterOrders", "purchaseFilterOrders", "logisticsFilterOrders"] }, { kind: "component", type: HelpComponent, selector: "rp-help" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
49599
49688
|
}
|
|
49600
49689
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HomedecoratorComponent, decorators: [{
|
|
49601
49690
|
type: Component,
|
|
49602
49691
|
args: [{
|
|
49603
49692
|
selector: 'co-homedecorator',
|
|
49604
|
-
template: `
|
|
49605
|
-
@if (loaded) {
|
|
49606
|
-
@if (loaded) {
|
|
49607
|
-
<div class="viewport">
|
|
49608
|
-
<progress-bar></progress-bar>
|
|
49609
|
-
<rp-loading-overlay>
|
|
49610
|
-
<rp-core3d></rp-core3d>
|
|
49611
|
-
<rp-room-planner></rp-room-planner>
|
|
49612
|
-
<rp-furniture-manager></rp-furniture-manager>
|
|
49613
|
-
<rp-presets [openNewRoomDialog]="!projectToLoad"></rp-presets>
|
|
49614
|
-
<rp-threedselector></rp-threedselector>
|
|
49615
|
-
<rp-toolbar (externalSave)="handleExternalSave()"></rp-toolbar>
|
|
49616
|
-
<rp-product-catalog
|
|
49617
|
-
[generalFilterOrders]="generalFilterOrders"
|
|
49618
|
-
[purchaseFilterOrders]="purchaseFilterOrders"
|
|
49619
|
-
[logisticsFilterOrders]="logisticsFilterOrders"
|
|
49620
|
-
></rp-product-catalog>
|
|
49621
|
-
<
|
|
49622
|
-
|
|
49623
|
-
|
|
49624
|
-
|
|
49625
|
-
|
|
49626
|
-
|
|
49627
|
-
|
|
49628
|
-
|
|
49629
|
-
|
|
49630
|
-
|
|
49631
|
-
|
|
49632
|
-
|
|
49633
|
-
|
|
49634
|
-
|
|
49635
|
-
|
|
49636
|
-
|
|
49637
|
-
|
|
49638
|
-
|
|
49639
|
-
}
|
|
49693
|
+
template: `
|
|
49694
|
+
@if (loaded) {
|
|
49695
|
+
@if (loaded) {
|
|
49696
|
+
<div class="viewport">
|
|
49697
|
+
<progress-bar></progress-bar>
|
|
49698
|
+
<rp-loading-overlay>
|
|
49699
|
+
<rp-core3d></rp-core3d>
|
|
49700
|
+
<rp-room-planner></rp-room-planner>
|
|
49701
|
+
<rp-furniture-manager></rp-furniture-manager>
|
|
49702
|
+
<rp-presets [openNewRoomDialog]="!projectToLoad"></rp-presets>
|
|
49703
|
+
<rp-threedselector></rp-threedselector>
|
|
49704
|
+
<rp-toolbar (externalSave)="handleExternalSave()"></rp-toolbar>
|
|
49705
|
+
<rp-product-catalog
|
|
49706
|
+
[generalFilterOrders]="generalFilterOrders"
|
|
49707
|
+
[purchaseFilterOrders]="purchaseFilterOrders"
|
|
49708
|
+
[logisticsFilterOrders]="logisticsFilterOrders"
|
|
49709
|
+
></rp-product-catalog>
|
|
49710
|
+
<rp-help></rp-help>
|
|
49711
|
+
</rp-loading-overlay>
|
|
49712
|
+
</div>
|
|
49713
|
+
}
|
|
49714
|
+
<rp-loader [show]="controllerService.shouldShowLoader"></rp-loader>
|
|
49715
|
+
@if (shouldShowLandscapeMessage) {
|
|
49716
|
+
<div class="mobile-portrait-overlay">
|
|
49717
|
+
<!--
|
|
49718
|
+
<mat-icon svgIcon="tilt-phone" class="tilt-phone-icon"></mat-icon>
|
|
49719
|
+
-->
|
|
49720
|
+
<div>
|
|
49721
|
+
<!--
|
|
49722
|
+
{{'PLEASE_USE_PHONE_IN_LANDSCAPE_MODE' | localize}}
|
|
49723
|
+
-->
|
|
49724
|
+
</div>
|
|
49725
|
+
</div>
|
|
49726
|
+
}
|
|
49727
|
+
}
|
|
49640
49728
|
`,
|
|
49641
49729
|
encapsulation: ViewEncapsulation.None,
|
|
49642
49730
|
providers: [
|