@colijnit/homedecorator 261.20.2 → 261.20.3
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 +169 -192
- package/fesm2022/colijnit-homedecorator.mjs.map +1 -1
- package/index.d.ts +20 -10
- package/package.json +1 -1
- 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';
|
|
@@ -11111,7 +11110,7 @@ class Dimensioning {
|
|
|
11111
11110
|
}
|
|
11112
11111
|
}
|
|
11113
11112
|
|
|
11114
|
-
const minSize = 0.
|
|
11113
|
+
const minSize = 0.001;
|
|
11115
11114
|
const xDirection = new Vector3(1, 0, 0);
|
|
11116
11115
|
const yDirection$1 = new Vector3(0, 1, 0);
|
|
11117
11116
|
const zDirection$1 = new Vector3(0, 0, 1);
|
|
@@ -12620,7 +12619,10 @@ class PresetsService {
|
|
|
12620
12619
|
const json = await this._jsonUtils.readJsonFile(path, false);
|
|
12621
12620
|
preset.model = JSON.stringify(json);
|
|
12622
12621
|
}
|
|
12623
|
-
|
|
12622
|
+
let modelObj = JSON.parse(preset.model);
|
|
12623
|
+
if (typeof modelObj === 'string') { // multiple escapes...?
|
|
12624
|
+
modelObj = JSON.parse(modelObj);
|
|
12625
|
+
}
|
|
12624
12626
|
if (!modelObj.hasOwnProperty('version')) {
|
|
12625
12627
|
modelObj.version = 1.0;
|
|
12626
12628
|
}
|
|
@@ -13728,6 +13730,10 @@ class FloorService {
|
|
|
13728
13730
|
_updateFloorMaterial(floor, floorMaterial, texture) {
|
|
13729
13731
|
ObjectUtils.DisposeMaterial(floor.getMaterial());
|
|
13730
13732
|
floor.floorMaterial = floorMaterial;
|
|
13733
|
+
if (texture) {
|
|
13734
|
+
// Update the texture as well
|
|
13735
|
+
floor.floorTexture = texture;
|
|
13736
|
+
}
|
|
13731
13737
|
this._sceneService.needsRender = true;
|
|
13732
13738
|
this._sceneService.updatePathTracer();
|
|
13733
13739
|
}
|
|
@@ -19031,8 +19037,7 @@ class UtilsService {
|
|
|
19031
19037
|
// Now you can use the `imageData` URL for display or download
|
|
19032
19038
|
// this._downloadImage(`${object.name}_thumbnail.jpg`, imageData);
|
|
19033
19039
|
}
|
|
19034
|
-
|
|
19035
|
-
// Create a link and trigger the download
|
|
19040
|
+
downloadImage(fileName, imageData) {
|
|
19036
19041
|
const link = document.createElement('a');
|
|
19037
19042
|
link.href = imageData;
|
|
19038
19043
|
link.download = fileName;
|
|
@@ -21079,14 +21084,17 @@ class BoundingBoxMeasurement {
|
|
|
21079
21084
|
const widthMesh = createTextWithBackground(width, this._font, this.textSize, this.textColor, this.backgroundColor, this.backgroundOpacity, 1.2, widthText);
|
|
21080
21085
|
const depthMesh = createTextWithBackground(depth, this._font, this.textSize, this.textColor, this.backgroundColor, this.backgroundOpacity, 1.2, depthText);
|
|
21081
21086
|
// set positions for the meshes
|
|
21082
|
-
heightMesh.position.set(0, 0, 0);
|
|
21083
|
-
widthMesh.position.set(0,
|
|
21084
|
-
depthMesh.position.set(0, -0.
|
|
21087
|
+
heightMesh.position.set(0, 0.12, 0);
|
|
21088
|
+
widthMesh.position.set(0, 0, 0);
|
|
21089
|
+
depthMesh.position.set(0, -0.12, 0);
|
|
21085
21090
|
// Create one new mesh
|
|
21086
21091
|
const allMeasurementMeshes = new Mesh();
|
|
21087
21092
|
allMeasurementMeshes.add(heightMesh);
|
|
21088
21093
|
allMeasurementMeshes.add(widthMesh);
|
|
21089
21094
|
allMeasurementMeshes.add(depthMesh);
|
|
21095
|
+
const box = new Box3().setFromObject(allMeasurementMeshes);
|
|
21096
|
+
const heightBox = box.max.y - box.min.y;
|
|
21097
|
+
allMeasurementMeshes.children.forEach(c => c.translateY(heightBox / 2));
|
|
21090
21098
|
allMeasurements.textMesh = allMeasurementMeshes;
|
|
21091
21099
|
allMeasurements.positions = this._calculateAllMeasurementsPositions();
|
|
21092
21100
|
return allMeasurements;
|
|
@@ -22844,7 +22852,7 @@ class SceneEventService {
|
|
|
22844
22852
|
this._messageBusService.emit(MessageType.SaveState, { action: `3D ${action}` });
|
|
22845
22853
|
}), this._debouncedSaveState.pipe(debounceTime(200)).subscribe(() => {
|
|
22846
22854
|
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)));
|
|
22855
|
+
}), 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
22856
|
}
|
|
22849
22857
|
setExploreMode(on = true) {
|
|
22850
22858
|
if (on) {
|
|
@@ -23336,7 +23344,9 @@ class SceneEventService {
|
|
|
23336
23344
|
}
|
|
23337
23345
|
_setGroupingMode(enableGrouping) {
|
|
23338
23346
|
this._groupingMode = enableGrouping;
|
|
23339
|
-
|
|
23347
|
+
if (this._groupingMode) {
|
|
23348
|
+
this._addToItemGroup(this._intersectedObject, this._prevSelectedObject);
|
|
23349
|
+
}
|
|
23340
23350
|
}
|
|
23341
23351
|
_getDraggedData() {
|
|
23342
23352
|
return this._dragAndDropService.draggedData;
|
|
@@ -24823,7 +24833,7 @@ class BuildFurnitureBaseService {
|
|
|
24823
24833
|
item.canScaleZ = metadata.canScaleZ;
|
|
24824
24834
|
item.colorable = metadata.colorable;
|
|
24825
24835
|
item.canDelete = !this.standAlone;
|
|
24826
|
-
item.canCopy = !this.standAlone;
|
|
24836
|
+
item.canCopy = !this.standAlone && !metadata.thirdPartyModel;
|
|
24827
24837
|
item.allwaysConfigureMode = this.standAlone;
|
|
24828
24838
|
item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
24829
24839
|
item.tempObject = true;
|
|
@@ -25457,6 +25467,15 @@ class BuildFurnitureBaseService {
|
|
|
25457
25467
|
handleSelectionSelected(chosenOption) {
|
|
25458
25468
|
this._selectionsSelected.push(chosenOption.opvTreeNodeHierarchy);
|
|
25459
25469
|
}
|
|
25470
|
+
getActiveFurnitureByUuid(uuid) {
|
|
25471
|
+
const furniture = this.itemService.getFurniture();
|
|
25472
|
+
const len = furniture.length;
|
|
25473
|
+
for (let i = 0; i < len; i++) {
|
|
25474
|
+
if (furniture[i].metadata && furniture[i].metadata.objectUUID === uuid) {
|
|
25475
|
+
return furniture[i];
|
|
25476
|
+
}
|
|
25477
|
+
}
|
|
25478
|
+
}
|
|
25460
25479
|
getActiveFurniture(instanceId) {
|
|
25461
25480
|
const configurables = this.itemService.getConfigurables();
|
|
25462
25481
|
const len = configurables.length;
|
|
@@ -26165,41 +26184,34 @@ class BuildFurnitureService extends BuildFurnitureBaseService {
|
|
|
26165
26184
|
}
|
|
26166
26185
|
}
|
|
26167
26186
|
}
|
|
26168
|
-
createSimple3DModel(
|
|
26169
|
-
|
|
26170
|
-
|
|
26187
|
+
createSimple3DModel(metadata, object) {
|
|
26188
|
+
const existingModel = this.getActiveFurnitureByUuid(metadata.objectUUID);
|
|
26189
|
+
if (existingModel) {
|
|
26190
|
+
return existingModel;
|
|
26171
26191
|
}
|
|
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;
|
|
26192
|
+
if (!metadata.position) {
|
|
26193
|
+
metadata.position = this.startPosition || this.defaultPosition;
|
|
26180
26194
|
}
|
|
26181
|
-
if (!
|
|
26182
|
-
|
|
26195
|
+
if (!metadata.rotation) {
|
|
26196
|
+
metadata.rotation = metadata.default180 ? this.defaultRotation : new Euler();
|
|
26183
26197
|
}
|
|
26184
|
-
const itemConstructor = Factory.getClass(
|
|
26185
|
-
const item = new itemConstructor(
|
|
26198
|
+
const itemConstructor = Factory.getClass(metadata.itemType);
|
|
26199
|
+
const item = new itemConstructor(metadata, object, {
|
|
26186
26200
|
showHideOutlineHandler: this.showHideOutline
|
|
26187
26201
|
});
|
|
26188
|
-
result.metaData.objectUUID = item.uuid;
|
|
26189
|
-
item.allowRotate = !this.standAlone;
|
|
26190
|
-
item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
26191
26202
|
this.itemService.addItem(item);
|
|
26192
26203
|
if (item.itemGroup) {
|
|
26193
26204
|
this.itemGroupService.reattachToItemGroup(item, item.itemGroup, item.position);
|
|
26194
26205
|
}
|
|
26195
26206
|
// For simple articles we use object uuid, because they don't have an instanceId
|
|
26196
|
-
this.upsertFurniture(item.uuid, { BrandIdentifier:
|
|
26207
|
+
this.upsertFurniture(item.uuid, { BrandIdentifier: metadata.itemIdentifier }, item);
|
|
26197
26208
|
this.handleIntegration(item.uuid, item);
|
|
26198
|
-
this.currentCustomFloorGroup = item;
|
|
26199
|
-
this.currentCustomFloorGroup.buildFinished();
|
|
26200
|
-
result.furniture = item;
|
|
26209
|
+
// this.currentCustomFloorGroup = item;
|
|
26210
|
+
// this.currentCustomFloorGroup.buildFinished();
|
|
26211
|
+
// result.furniture = item;
|
|
26212
|
+
item.buildFinished();
|
|
26201
26213
|
this.sceneService.updatePathTracer();
|
|
26202
|
-
return
|
|
26214
|
+
return item;
|
|
26203
26215
|
}
|
|
26204
26216
|
async createNonConfigurableFloor(result) {
|
|
26205
26217
|
const item = this.floorService.floorToConfigure;
|
|
@@ -26301,21 +26313,22 @@ class BuildFurnitureWithoutSceneService extends BuildFurnitureBaseService {
|
|
|
26301
26313
|
await this.getSelectionsAndDecos();
|
|
26302
26314
|
return await this.handlePrepareSelectionsDecos(result);
|
|
26303
26315
|
}
|
|
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(
|
|
26316
|
+
createSimple3DModel(metadata, object) {
|
|
26317
|
+
// if (!isNill(standAlone)) {
|
|
26318
|
+
// this.standAlone = standAlone;
|
|
26319
|
+
// }
|
|
26320
|
+
// // there are no selections or decos for simple articles, so empty lists for integration purposes
|
|
26321
|
+
// this.iOne.emptySelections();
|
|
26322
|
+
const itemConstructor = Factory.getClass(this.standAlone ? ItemType.FloorGroup : metadata.itemType);
|
|
26323
|
+
const item = new itemConstructor(metadata, null, {
|
|
26312
26324
|
showHideOutlineHandler: this.showHideOutline
|
|
26313
26325
|
});
|
|
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;
|
|
26326
|
+
// result.metaData.objectUUID = item.uuid;
|
|
26327
|
+
// item.allowRotate = !this.standAlone;
|
|
26328
|
+
// item.highLightDisabled = !this.settingsService.settings.options.useStandaloneHighLight;
|
|
26329
|
+
// result.furniture = item;
|
|
26330
|
+
// return result;
|
|
26331
|
+
return item;
|
|
26319
26332
|
}
|
|
26320
26333
|
async createNonConfigurableFloor(result) {
|
|
26321
26334
|
// TODO Right now we do not need this, but we might need to render floors so we just prepared it like this.
|
|
@@ -27105,7 +27118,7 @@ class LoadFurnitureBaseService {
|
|
|
27105
27118
|
}
|
|
27106
27119
|
}
|
|
27107
27120
|
addToList(list, item) {
|
|
27108
|
-
if (!item || (!item.instanceId && !item.metaData.objectUUID)) {
|
|
27121
|
+
if (!item || (!item.metaData || (!item.instanceId && !item.metaData.objectUUID))) {
|
|
27109
27122
|
return;
|
|
27110
27123
|
}
|
|
27111
27124
|
if ((item.instanceId && !list.find(l => l.instanceId === item.instanceId)) ||
|
|
@@ -27269,60 +27282,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
27269
27282
|
}], ctorParameters: () => [{ type: HomedecoratorConnectorService }, { type: HomedecoratorConnectorAdapterService }, { type: ModelsService }, { type: ThreedselectorService }, { type: MessageBusService }, { type: SwitchBuildFurnitureService }, { type: PresetsService }, { type: HomedecoratorSettingsService }] });
|
|
27270
27283
|
|
|
27271
27284
|
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
|
-
}
|
|
27285
|
+
loadFurniture(furnitureData, shouldCopyInstance, looseOriginalConfiguration, standAlone, fromScratch, fromPreset, loadFromProject) {
|
|
27286
|
+
throw new Error('Method not implemented.');
|
|
27326
27287
|
}
|
|
27327
27288
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27328
27289
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureService }); }
|
|
@@ -27346,7 +27307,7 @@ class DimensionsService {
|
|
|
27346
27307
|
this._itemService = _itemService;
|
|
27347
27308
|
this._sceneService = _sceneService;
|
|
27348
27309
|
this._fontService = _fontService;
|
|
27349
|
-
this._offSet = 0
|
|
27310
|
+
this._offSet = 0;
|
|
27350
27311
|
this._labelOffSet = 0.05;
|
|
27351
27312
|
this._nameHeightArrow = 'height_arrow';
|
|
27352
27313
|
this._nameWidthArrow = 'width_arrow';
|
|
@@ -27401,6 +27362,8 @@ class DimensionsService {
|
|
|
27401
27362
|
if (!object.hasOwnProperty('halfSize')) {
|
|
27402
27363
|
return;
|
|
27403
27364
|
}
|
|
27365
|
+
const yFlipped = Math.abs(object.rotation.y % (2 * Math.PI) - Math.PI) < 0.001;
|
|
27366
|
+
const direction = yFlipped ? -1 : 1;
|
|
27404
27367
|
const height = object.getHeight();
|
|
27405
27368
|
const halfHeight = height / 2;
|
|
27406
27369
|
const width = object.getWidth();
|
|
@@ -27412,7 +27375,7 @@ class DimensionsService {
|
|
|
27412
27375
|
const heightArrow = dimensionObject.getObjectByName(this._nameHeightArrow);
|
|
27413
27376
|
if (heightArrow) {
|
|
27414
27377
|
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));
|
|
27378
|
+
heightArrow.position.set(-direction * ((halfWidth + this._offSet)), 0, -direction * (halfDepth + this._offSet));
|
|
27416
27379
|
}
|
|
27417
27380
|
const heightLabel = dimensionObject.getObjectByName('height_label');
|
|
27418
27381
|
if (heightLabel) {
|
|
@@ -27422,33 +27385,36 @@ class DimensionsService {
|
|
|
27422
27385
|
// newHeightLabel.geometry.rotateX(object.rotation.x);
|
|
27423
27386
|
// newHeightLabel.geometry.rotateY(-object.rotation.y);
|
|
27424
27387
|
// newHeightLabel.geometry.rotateZ(object.rotation.z);
|
|
27425
|
-
|
|
27388
|
+
const size = this._getBoxSize(newHeightLabel);
|
|
27389
|
+
newHeightLabel.position.set(-direction * (halfWidth + (this._labelOffSet + size.x)), 0, -direction * (halfDepth + this._labelOffSet));
|
|
27426
27390
|
dimensionObject.add(newHeightLabel);
|
|
27427
27391
|
}
|
|
27428
27392
|
const widthArrow = dimensionObject.getObjectByName(this._nameWidthArrow);
|
|
27429
27393
|
if (widthArrow) {
|
|
27430
27394
|
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);
|
|
27395
|
+
widthArrow.position.set(0, halfHeight + this._offSet, direction * (-halfDepth + this._offSet));
|
|
27432
27396
|
}
|
|
27433
27397
|
const widthLabel = dimensionObject.getObjectByName('width_label');
|
|
27434
27398
|
if (widthLabel) {
|
|
27435
27399
|
dimensionObject.remove(widthLabel);
|
|
27436
27400
|
const newWidthLabel = this._createLabel(Dimensioning.mToMeasure(width), 'width_label', object.rotation);
|
|
27437
27401
|
// newWidthLabel.rotation.set(-object.rotation.x, -object.rotation.y, -object.rotation.z);
|
|
27438
|
-
|
|
27402
|
+
const size = this._getBoxSize(newWidthLabel);
|
|
27403
|
+
newWidthLabel.position.set(-direction * (size.x / 2), halfHeight + this._labelOffSet, direction * (-halfDepth + this._labelOffSet));
|
|
27439
27404
|
dimensionObject.add(newWidthLabel);
|
|
27440
27405
|
}
|
|
27441
27406
|
const depthArrow = dimensionObject.getObjectByName(this._nameDepthArrow);
|
|
27442
27407
|
if (depthArrow) {
|
|
27443
27408
|
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);
|
|
27409
|
+
depthArrow.position.set(-direction * (halfWidth + this._offSet), -halfHeight + this._offSet, 0);
|
|
27445
27410
|
}
|
|
27446
27411
|
const depthLabel = dimensionObject.getObjectByName('depth_label');
|
|
27447
27412
|
if (depthLabel) {
|
|
27448
27413
|
dimensionObject.remove(depthLabel);
|
|
27449
27414
|
const newDepthLabel = this._createLabel(Dimensioning.mToMeasure(depth), 'depth_label', object.rotation);
|
|
27450
27415
|
// newDepthLabel.rotation.set(-object.rotation.x, -object.rotation.y, -object.rotation.z);
|
|
27451
|
-
|
|
27416
|
+
const size = this._getBoxSize(newDepthLabel);
|
|
27417
|
+
newDepthLabel.position.set(-direction * (halfWidth + this._labelOffSet + size.x), -halfHeight + this._labelOffSet, 0);
|
|
27452
27418
|
dimensionObject.add(newDepthLabel);
|
|
27453
27419
|
}
|
|
27454
27420
|
}
|
|
@@ -27495,6 +27461,12 @@ class DimensionsService {
|
|
|
27495
27461
|
// label.quaternion.copy(new Quaternion().fromArray(new Vector4().setAxisAngleFromQuaternion(this._cameraService.camera.quaternion).negate().toArray()));
|
|
27496
27462
|
return label;
|
|
27497
27463
|
}
|
|
27464
|
+
_getBoxSize(mesh) {
|
|
27465
|
+
const box = new Box3().setFromObject(mesh);
|
|
27466
|
+
const size = new Vector3();
|
|
27467
|
+
box.getSize(size);
|
|
27468
|
+
return size;
|
|
27469
|
+
}
|
|
27498
27470
|
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
27471
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DimensionsService }); }
|
|
27500
27472
|
}
|
|
@@ -28924,33 +28896,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
28924
28896
|
}], ctorParameters: () => [{ type: HomedecoratorSettingsService }, { type: ExportService }, { type: CameraService }, { type: SceneService }, { type: ToastService }, { type: MessageBusService }, { type: GoogleTagManagerService }, { type: RoomService }, { type: FloorService }] });
|
|
28925
28897
|
|
|
28926
28898
|
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
|
-
}
|
|
28899
|
+
loadFurniture(furnitureData, shouldCopyInstance, looseOriginalConfiguration, standAlone, fromScratch, fromPreset, loadFromProject) {
|
|
28900
|
+
throw new Error('Method not implemented.');
|
|
28954
28901
|
}
|
|
28955
28902
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureWithoutSceneService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28956
28903
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoadFurnitureWithoutSceneService }); }
|
|
@@ -29110,7 +29057,7 @@ class NewRenderService {
|
|
|
29110
29057
|
};
|
|
29111
29058
|
scene.name = 'mrp_room_' + scene.uuid;
|
|
29112
29059
|
const glb = await this._getGlbFromObject(scene, options);
|
|
29113
|
-
this._utilsService.downloadFile(scene.name + '.glb', new Blob([glb], {
|
|
29060
|
+
// this._utilsService.downloadFile(scene.name + '.glb', new Blob([glb], {type: 'model/gltf-binary'}));
|
|
29114
29061
|
ObjectUtils.DisposeObject(scene);
|
|
29115
29062
|
scene = null;
|
|
29116
29063
|
return glb;
|
|
@@ -29206,7 +29153,7 @@ class NewRenderService {
|
|
|
29206
29153
|
// }
|
|
29207
29154
|
// }
|
|
29208
29155
|
async _handleAjaxRender(data) {
|
|
29209
|
-
this.blenderRenderStarted.
|
|
29156
|
+
this.blenderRenderStarted.next(true);
|
|
29210
29157
|
const result = await axios({
|
|
29211
29158
|
headers: {
|
|
29212
29159
|
'Content-Type': 'application/json'
|
|
@@ -29230,7 +29177,7 @@ class NewRenderService {
|
|
|
29230
29177
|
}
|
|
29231
29178
|
}
|
|
29232
29179
|
async _handleAjaxGlbRender(data, preview = false) {
|
|
29233
|
-
this.blenderRenderStarted.
|
|
29180
|
+
this.blenderRenderStarted.next(true);
|
|
29234
29181
|
let host = this._settingsService.settings.renderParameters.host;
|
|
29235
29182
|
if (host) {
|
|
29236
29183
|
if (!host.endsWith('/')) {
|
|
@@ -29255,8 +29202,7 @@ class NewRenderService {
|
|
|
29255
29202
|
this.messageService.emit(MessageType.BlenderRenderPreviewReady, result.data.image);
|
|
29256
29203
|
}
|
|
29257
29204
|
else {
|
|
29258
|
-
|
|
29259
|
-
this._utilsService.downloadFile(`test.jpg`, file);
|
|
29205
|
+
this._utilsService.downloadImage(`render.jpg`, result.data.image);
|
|
29260
29206
|
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
29261
29207
|
}
|
|
29262
29208
|
}
|
|
@@ -29264,6 +29210,8 @@ class NewRenderService {
|
|
|
29264
29210
|
this.renderImageChanged.next('');
|
|
29265
29211
|
this.renderImageError.next(this._dictionaryService.get('BLENDER_PRODUCT_RENDER_ERROR'));
|
|
29266
29212
|
}
|
|
29213
|
+
// Remove the loading indicator.
|
|
29214
|
+
this._messageBusService.emit(MessageType.RenderUploadFinished, true);
|
|
29267
29215
|
}
|
|
29268
29216
|
}
|
|
29269
29217
|
}
|
|
@@ -29450,7 +29398,7 @@ class NewRenderService {
|
|
|
29450
29398
|
// Get the asset information from the BlenderRenderSettings
|
|
29451
29399
|
let renderScenes = [];
|
|
29452
29400
|
if (this._settingsService.settings.blenderSceneSettings && this._settingsService.settings.blenderSceneSettings.scenes) {
|
|
29453
|
-
renderScenes = this._settingsService.settings.blenderSceneSettings.scenes.filter(scene => scene.sceneType === BlenderSceneType.
|
|
29401
|
+
renderScenes = this._settingsService.settings.blenderSceneSettings.scenes.filter(scene => scene.sceneType === BlenderSceneType.Room
|
|
29454
29402
|
&& scene.name === assetId);
|
|
29455
29403
|
}
|
|
29456
29404
|
let renderScene;
|
|
@@ -29500,12 +29448,14 @@ class NewRenderService {
|
|
|
29500
29448
|
}
|
|
29501
29449
|
_getDataForRoomRender(settings) {
|
|
29502
29450
|
this._cameraService.camera.updateMatrixWorld(true);
|
|
29503
|
-
const sceneSettings = this._getSceneRenderSettings(
|
|
29451
|
+
const sceneSettings = this._getSceneRenderSettings(settings.sceneAsset.name);
|
|
29504
29452
|
const options = {
|
|
29505
29453
|
width: settings.width,
|
|
29506
29454
|
height: settings.height,
|
|
29507
29455
|
max_samples: this._settingsService.settings.renderParameters.iterations,
|
|
29508
29456
|
sceneSettings: sceneSettings,
|
|
29457
|
+
renderType: this._getRenderType(sceneSettings),
|
|
29458
|
+
transparency: false,
|
|
29509
29459
|
cameraOptions: {
|
|
29510
29460
|
fov: this._cameraService.camera.fov,
|
|
29511
29461
|
matrix: Array.from(this._cameraService.camera.matrixWorld.elements)
|
|
@@ -29513,7 +29463,8 @@ class NewRenderService {
|
|
|
29513
29463
|
environmentOptions: {
|
|
29514
29464
|
hdri: this._settingsService.settings.renderParameters.hdri,
|
|
29515
29465
|
hdriIntensity: settings.hdriIntensity
|
|
29516
|
-
}
|
|
29466
|
+
},
|
|
29467
|
+
colijnLegacy: true // this is the value to trigger culling.
|
|
29517
29468
|
};
|
|
29518
29469
|
const data = {
|
|
29519
29470
|
assetUrl: this._settingsService.settings.assetPath,
|
|
@@ -34281,7 +34232,7 @@ class RenderControlsComponent {
|
|
|
34281
34232
|
</div>
|
|
34282
34233
|
}
|
|
34283
34234
|
<rp-render-progress
|
|
34284
|
-
[title]="'
|
|
34235
|
+
[title]="'PREPARE_TO_RENDER' | localize"
|
|
34285
34236
|
[show]="startUploading"
|
|
34286
34237
|
>
|
|
34287
34238
|
</rp-render-progress>
|
|
@@ -34511,7 +34462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
34511
34462
|
</div>
|
|
34512
34463
|
}
|
|
34513
34464
|
<rp-render-progress
|
|
34514
|
-
[title]="'
|
|
34465
|
+
[title]="'PREPARE_TO_RENDER' | localize"
|
|
34515
34466
|
[show]="startUploading"
|
|
34516
34467
|
>
|
|
34517
34468
|
</rp-render-progress>
|
|
@@ -34852,11 +34803,11 @@ class SliderInputComponent {
|
|
|
34852
34803
|
this.onChange = new EventEmitter();
|
|
34853
34804
|
}
|
|
34854
34805
|
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"] }] }); }
|
|
34806
|
+
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
34807
|
}
|
|
34857
34808
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderInputComponent, decorators: [{
|
|
34858
34809
|
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"] }]
|
|
34810
|
+
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
34811
|
}], ctorParameters: () => [], propDecorators: { title: [{
|
|
34861
34812
|
type: Input
|
|
34862
34813
|
}], min: [{
|
|
@@ -41723,6 +41674,10 @@ class RoomPlannerComponent {
|
|
|
41723
41674
|
this.unselectAll();
|
|
41724
41675
|
this.showGroupMenu = false;
|
|
41725
41676
|
this.showGroupEditMenuButtons = false;
|
|
41677
|
+
if (this.userIsGrouping) {
|
|
41678
|
+
// When the user was grouping, let everything know that we stopped with that aswell
|
|
41679
|
+
this._messageService.emit(MessageType.CancelGroupObject);
|
|
41680
|
+
}
|
|
41726
41681
|
}
|
|
41727
41682
|
updateSelectedObjectHud() {
|
|
41728
41683
|
this._hudService.updateSelectedItemHud();
|
|
@@ -44462,7 +44417,7 @@ class ThreedselectorComponent {
|
|
|
44462
44417
|
get loadConfigurator() {
|
|
44463
44418
|
return this._loadConfigurator;
|
|
44464
44419
|
}
|
|
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) {
|
|
44420
|
+
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
44421
|
this.screenSizeService = screenSizeService;
|
|
44467
44422
|
this._dialog = _dialog;
|
|
44468
44423
|
this._appService = _appService;
|
|
@@ -44491,6 +44446,8 @@ class ThreedselectorComponent {
|
|
|
44491
44446
|
this._lightPresetService = _lightPresetService;
|
|
44492
44447
|
this._variationService = _variationService;
|
|
44493
44448
|
this._configuringService = _configuringService;
|
|
44449
|
+
this._configuratorEventService = _configuratorEventService;
|
|
44450
|
+
this._changeDetector = _changeDetector;
|
|
44494
44451
|
this.iconName = IconName;
|
|
44495
44452
|
this.customizeButtonClicked = new EventEmitter();
|
|
44496
44453
|
this.selections = [];
|
|
@@ -44515,6 +44472,7 @@ class ThreedselectorComponent {
|
|
|
44515
44472
|
this.showProgressText = true; // Show/Hide progress text
|
|
44516
44473
|
this.showLoaderBar = false;
|
|
44517
44474
|
this.showFullConfiguration = false;
|
|
44475
|
+
this.firstBuild = false;
|
|
44518
44476
|
this._loadConfigurator = false;
|
|
44519
44477
|
this._skuAlreadySet = false;
|
|
44520
44478
|
this._itemsFromScratch = [];
|
|
@@ -44527,7 +44485,9 @@ class ThreedselectorComponent {
|
|
|
44527
44485
|
this._presetsService.register(this);
|
|
44528
44486
|
}
|
|
44529
44487
|
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.
|
|
44488
|
+
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) => {
|
|
44489
|
+
this.handleBuildResult(result);
|
|
44490
|
+
}), 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
44491
|
// this._appService.skuSet.subscribe(sku => this._handleSkuSet(sku)),
|
|
44532
44492
|
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) => {
|
|
44533
44493
|
this.shouldShowLabel = info.isPhoneSize;
|
|
@@ -44665,6 +44625,9 @@ class ThreedselectorComponent {
|
|
|
44665
44625
|
}
|
|
44666
44626
|
// NEW CONFIGURATOR
|
|
44667
44627
|
async handleBuildResult(result) {
|
|
44628
|
+
if (!result || this.firstBuild) {
|
|
44629
|
+
return;
|
|
44630
|
+
}
|
|
44668
44631
|
const customFloorGroupResult = new CustomFloorGroupResult();
|
|
44669
44632
|
const metaData = this.setMetadateFromObject(result);
|
|
44670
44633
|
if (result && !isFloorDecoration(result.placement)) {
|
|
@@ -44675,14 +44638,20 @@ class ThreedselectorComponent {
|
|
|
44675
44638
|
metaData.externalSettings = this._externalSourceData;
|
|
44676
44639
|
this._externalSourceData = undefined; // clear it.
|
|
44677
44640
|
}
|
|
44678
|
-
|
|
44679
|
-
|
|
44641
|
+
let furnitureToAdd;
|
|
44642
|
+
if (!result.configurable) { // simple article
|
|
44643
|
+
furnitureToAdd = await this._buildFurnitureService.currentActiveService.createSimple3DModel(metaData, result.object);
|
|
44644
|
+
}
|
|
44645
|
+
else {
|
|
44646
|
+
const item = this._buildFurnitureService.currentActiveService.createConfigurableItemWithObject(result.instanceId, metaData, result.object);
|
|
44647
|
+
furnitureToAdd = await this._buildFurnitureService.currentActiveService.replaceCurrentItem(item, metaData, false);
|
|
44648
|
+
}
|
|
44680
44649
|
customFloorGroupResult.metaData = metaData;
|
|
44681
44650
|
customFloorGroupResult.instanceId = result.instanceId;
|
|
44682
44651
|
customFloorGroupResult.name = result.articleName;
|
|
44683
44652
|
customFloorGroupResult.sku = result.sku;
|
|
44684
44653
|
customFloorGroupResult.resultType = result.resultType;
|
|
44685
|
-
customFloorGroupResult.furniture =
|
|
44654
|
+
customFloorGroupResult.furniture = furnitureToAdd;
|
|
44686
44655
|
customFloorGroupResult.errorMessages = result.errorMessages;
|
|
44687
44656
|
customFloorGroupResult.showErrors = false;
|
|
44688
44657
|
customFloorGroupResult.toggle = false;
|
|
@@ -44716,7 +44685,7 @@ class ThreedselectorComponent {
|
|
|
44716
44685
|
this._sceneService.needsRender = true;
|
|
44717
44686
|
}
|
|
44718
44687
|
else if (result.resultType === ResultType.NeedsUserInput) {
|
|
44719
|
-
this._configuringService.isConfiguring = true;
|
|
44688
|
+
// this._configuringService.isConfiguring = true;
|
|
44720
44689
|
}
|
|
44721
44690
|
else if (result.resultType === ResultType.BuildFromScratch) {
|
|
44722
44691
|
// if (this._loadedFromPreset) { // start configuring when loading is done
|
|
@@ -44804,10 +44773,10 @@ class ThreedselectorComponent {
|
|
|
44804
44773
|
}
|
|
44805
44774
|
}
|
|
44806
44775
|
showConfiguratorChange(show) {
|
|
44807
|
-
this._configuringService.isConfiguring = show;
|
|
44808
44776
|
this.loadConfigurator = show;
|
|
44809
44777
|
}
|
|
44810
44778
|
async loadFurnitureFromSku(position, sku, settings) {
|
|
44779
|
+
this.firstBuild = true;
|
|
44811
44780
|
const configuratorSettings = this._settingsService.settings.projectSettings ?
|
|
44812
44781
|
this._settingsService.settings.projectSettings : this._settingsService.settings;
|
|
44813
44782
|
const configuratorSettingsClone = Object.assign({}, configuratorSettings);
|
|
@@ -44825,34 +44794,46 @@ class ThreedselectorComponent {
|
|
|
44825
44794
|
}
|
|
44826
44795
|
}
|
|
44827
44796
|
this._configuringService.scene = this._sceneService.scene;
|
|
44828
|
-
|
|
44829
|
-
const furnitureData = new ConfigurationResultObject();
|
|
44830
|
-
furnitureData.sku = sku;
|
|
44831
|
-
this._configuringService.isConfiguring = false;
|
|
44832
|
-
await this._configuringService.configure(furnitureData);
|
|
44797
|
+
this._initConfigurator(configuratorSettingsClone, sku);
|
|
44833
44798
|
this._startPosition = position;
|
|
44834
44799
|
this.loadConfigurator = true;
|
|
44835
|
-
|
|
44800
|
+
this._changeDetector.detectChanges();
|
|
44801
|
+
return this._waitForBuildToFinish();
|
|
44836
44802
|
}
|
|
44837
44803
|
async configureFurniture(object) {
|
|
44838
44804
|
if (object instanceof Item) {
|
|
44805
|
+
this._resetConfigurator();
|
|
44839
44806
|
const configuratorExternalSourceId = object.metadata.externalSettings && object.metadata.externalSettings.externalSourceId ?
|
|
44840
44807
|
object.metadata.externalSettings.externalSourceId : undefined;
|
|
44841
44808
|
const configuratorSettingsClone = await this._setSourceSettings(configuratorExternalSourceId);
|
|
44842
44809
|
if (configuratorExternalSourceId) {
|
|
44843
44810
|
this._externalSourceData = object.metadata.externalSettings; // set it so we can restore them with the new config.
|
|
44844
44811
|
}
|
|
44845
|
-
|
|
44846
|
-
await this._configuringService.init(configuratorSettingsClone);
|
|
44847
|
-
const furnitureData = new ConfigurationResultObject();
|
|
44848
|
-
furnitureData.sku = object.metadata.itemIdentifier;
|
|
44849
|
-
furnitureData.instanceId = object.metadata.itemId;
|
|
44850
|
-
this._configuringService.isConfiguring = true;
|
|
44851
|
-
await this._configuringService.configure(furnitureData);
|
|
44812
|
+
this._initConfigurator(configuratorSettingsClone, object.metadata.itemIdentifier, object.metadata.itemId);
|
|
44852
44813
|
this._loadFurnitureService.currentActiveService.configurationDirty = true;
|
|
44853
44814
|
this.loadConfigurator = true;
|
|
44854
44815
|
}
|
|
44855
44816
|
}
|
|
44817
|
+
_initConfigurator(settings, sku, instanceId) {
|
|
44818
|
+
this.configuratorSettings = settings;
|
|
44819
|
+
this.configuratorSku = sku;
|
|
44820
|
+
this.configuratorInstanceId = instanceId;
|
|
44821
|
+
}
|
|
44822
|
+
_resetConfigurator() {
|
|
44823
|
+
this.configuratorSettings = undefined;
|
|
44824
|
+
this.configuratorSku = undefined;
|
|
44825
|
+
this.configuratorInstanceId = undefined;
|
|
44826
|
+
this.loadConfigurator = false;
|
|
44827
|
+
this.firstBuild = false;
|
|
44828
|
+
}
|
|
44829
|
+
_waitForBuildToFinish() {
|
|
44830
|
+
return new Promise((resolve, reject) => {
|
|
44831
|
+
this._configuratorEventService.buildFinished.pipe(filter$1(value => value !== undefined && value !== null), take(1)).subscribe((result) => {
|
|
44832
|
+
this._resetConfigurator();
|
|
44833
|
+
resolve(this.handleBuildResult(result));
|
|
44834
|
+
});
|
|
44835
|
+
});
|
|
44836
|
+
}
|
|
44856
44837
|
async _setSourceSettings(configuratorExternalSourceId) {
|
|
44857
44838
|
const configuratorSettings = this._settingsService.settings.projectSettings ?
|
|
44858
44839
|
this._settingsService.settings.projectSettings : this._settingsService.settings;
|
|
@@ -44877,7 +44858,6 @@ class ThreedselectorComponent {
|
|
|
44877
44858
|
return configuratorSettingsClone;
|
|
44878
44859
|
}
|
|
44879
44860
|
_closeConfigurator() {
|
|
44880
|
-
this._configuringService.isConfiguring = false;
|
|
44881
44861
|
this.loadConfigurator = false;
|
|
44882
44862
|
}
|
|
44883
44863
|
_clearItems() {
|
|
@@ -45322,9 +45302,6 @@ class ThreedselectorComponent {
|
|
|
45322
45302
|
}
|
|
45323
45303
|
this._prepareAddButtons();
|
|
45324
45304
|
}
|
|
45325
|
-
if (this._callBackFnWhenBuildFinished && this.standAlone) {
|
|
45326
|
-
this._callBackFnWhenBuildFinished(result.furniture);
|
|
45327
|
-
}
|
|
45328
45305
|
}
|
|
45329
45306
|
_resetElementPosition() {
|
|
45330
45307
|
if (this.selectedElement && !this.standAlone) {
|
|
@@ -45666,17 +45643,18 @@ class ThreedselectorComponent {
|
|
|
45666
45643
|
(metadata.modelUrl && !metadata.configurable)) {
|
|
45667
45644
|
loadFromProject = true;
|
|
45668
45645
|
}
|
|
45669
|
-
|
|
45670
|
-
|
|
45671
|
-
|
|
45672
|
-
|
|
45673
|
-
|
|
45674
|
-
|
|
45675
|
-
|
|
45676
|
-
|
|
45677
|
-
|
|
45678
|
-
}
|
|
45679
|
-
|
|
45646
|
+
await this._handleLoadAndBuildFurniture(metadata, true, true, true, false, true, false, loadFromProject);
|
|
45647
|
+
// const result: any = await this._handleLoadAndBuildFurniture(
|
|
45648
|
+
// metadata, true, true, true, false, true, false, loadFromProject);
|
|
45649
|
+
// if (item.materialDiff) {
|
|
45650
|
+
// if (result.furniture) {
|
|
45651
|
+
// try {
|
|
45652
|
+
// await MaterialDiffUtils.ApplyMaterialDiff(result.furniture, item.materialDiff);
|
|
45653
|
+
// } catch (e) {
|
|
45654
|
+
// }
|
|
45655
|
+
// }
|
|
45656
|
+
// }
|
|
45657
|
+
// return result;
|
|
45680
45658
|
}
|
|
45681
45659
|
async _handleLoadAndBuildFurniture(furnitureData, shouldCopyInstance, looseOriginalConfiguration, fromPreset, standAlone, fromScratch, showErrorDialog = true, loadFromProject = false) {
|
|
45682
45660
|
this._loadedFromPreset = fromPreset; // Set the flag if it was loaded from a preset.
|
|
@@ -45694,7 +45672,6 @@ class ThreedselectorComponent {
|
|
|
45694
45672
|
this._externalSourceData = furnitureData.externalSettings; // set it so we can restore them with the new config.
|
|
45695
45673
|
}
|
|
45696
45674
|
this._configuringService.scene = this._sceneService.scene;
|
|
45697
|
-
await this._configuringService.init(configuratorSettingsClone);
|
|
45698
45675
|
const data = new ConfigurationResultObject();
|
|
45699
45676
|
data.sku = furnitureData.itemIdentifier;
|
|
45700
45677
|
data.articleName = furnitureData.itemName;
|
|
@@ -45714,7 +45691,6 @@ class ThreedselectorComponent {
|
|
|
45714
45691
|
data.rotation = furnitureData.rotation;
|
|
45715
45692
|
data.originalMetadata = furnitureData;
|
|
45716
45693
|
await this._configuringService.configure(data, shouldCopyInstance, looseOriginalConfiguration, standAlone, fromScratch, fromPreset, loadFromProject);
|
|
45717
|
-
this._configuringService.isConfiguring = false;
|
|
45718
45694
|
this.loadConfigurator = true;
|
|
45719
45695
|
}
|
|
45720
45696
|
_answerSelected(result) {
|
|
@@ -45763,6 +45739,7 @@ class ThreedselectorComponent {
|
|
|
45763
45739
|
else {
|
|
45764
45740
|
this._appStateService.undoDisabled = false;
|
|
45765
45741
|
this._appStateService.redoDisabled = false;
|
|
45742
|
+
this.loadConfigurator = false;
|
|
45766
45743
|
}
|
|
45767
45744
|
this.showAnswers = false;
|
|
45768
45745
|
this.showSelections = configuringModeChange.configuring || this.standAlone;
|
|
@@ -45843,8 +45820,8 @@ class ThreedselectorComponent {
|
|
|
45843
45820
|
});
|
|
45844
45821
|
}
|
|
45845
45822
|
}
|
|
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 (
|
|
45823
|
+
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 }); }
|
|
45824
|
+
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
45825
|
trigger('showElementToolbar', [
|
|
45849
45826
|
state('void', style({ opacity: 0 })),
|
|
45850
45827
|
state('*', style({ opacity: 1 })),
|
|
@@ -45862,8 +45839,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
45862
45839
|
transition('void => *', animate('500ms ease'))
|
|
45863
45840
|
])
|
|
45864
45841
|
] /*,
|
|
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: [{
|
|
45842
|
+
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"] }]
|
|
45843
|
+
}], 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
45844
|
type: ViewChild,
|
|
45868
45845
|
args: ['toolbarIconModels', { static: true }]
|
|
45869
45846
|
}], selectedThreedObjectCustomizationSidebar: [{
|
|
@@ -49595,7 +49572,7 @@ class HomedecoratorComponent {
|
|
|
49595
49572
|
</div>
|
|
49596
49573
|
}
|
|
49597
49574
|
}
|
|
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: ["
|
|
49575
|
+
`, 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: ["show", "showLabel", "canClose", "animateSlideout", "customDimensions"], outputs: ["showChange", "answerChosen"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
49599
49576
|
}
|
|
49600
49577
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HomedecoratorComponent, decorators: [{
|
|
49601
49578
|
type: Component,
|