@colijnit/homedecorator 261.20.5 → 261.20.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/plugins/render/render-controls/input-slider/input-slider.component.scss +117 -0
- package/app/plugins/render/render-controls/render-controls.component.scss +4 -40
- package/colijnit-homedecorator-261.20.7.tgz +0 -0
- package/fesm2022/colijnit-homedecorator.mjs +512 -426
- package/fesm2022/colijnit-homedecorator.mjs.map +1 -1
- package/index.d.ts +47 -23
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Pipe, Component, Inject, Input, HostBinding, Optional, ViewChild, EventEmitter, ElementRef, Output, Directive, ChangeDetectionStrategy,
|
|
2
|
+
import { Injectable, Pipe, Component, Inject, Input, HostBinding, Optional, ViewChild, EventEmitter, ElementRef, Output, Directive, ChangeDetectionStrategy, ViewEncapsulation, HostListener, 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
5
|
import { BehaviorSubject, Subject, Observable, throwError, ReplaySubject, combineLatest, filter as filter$1, from } from 'rxjs';
|
|
@@ -43,9 +43,7 @@ import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerM
|
|
|
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
44
|
import md5 from 'md5';
|
|
45
45
|
import { NodeType } from '@colijnit/configuratorapi/build/enum/node-type.enum';
|
|
46
|
-
import { ConfiguratorStatisticsEnvironment } from '@colijnit/configuratorapi/build/model/configurator-statistics-environment';
|
|
47
46
|
import { Options } from '@colijnit/ioneconnector/build/model/options';
|
|
48
|
-
import { FrozenArticle } from '@colijnit/configuratorapi/build/model/frozen-article';
|
|
49
47
|
import { SelectorWithOptions } from '@colijnit/configuratorapi/build/model/selector-with-options';
|
|
50
48
|
import { ImageUtils } from '@colijnit/configuratorapi/build/utils/image-utils';
|
|
51
49
|
import * as i1 from '@angular/common/http';
|
|
@@ -106,7 +104,7 @@ import { trigger, state, style, transition, animate, query, animateChild } from
|
|
|
106
104
|
import * as i2$2 from '@angular/common';
|
|
107
105
|
import { CommonModule } from '@angular/common';
|
|
108
106
|
import * as i5 from '@colijnit/corecomponents_v12';
|
|
109
|
-
import { LoaderModule as LoaderModule$1, IconModule, TooltipDirectiveModule, ListOfValuesModule, ButtonModule,
|
|
107
|
+
import { LoaderModule as LoaderModule$1, IconModule, InputTextModule, InputNumberPickerModule, TooltipDirectiveModule, ListOfValuesModule, ButtonModule, ImageModule, CoreComponentsTranslationModule } from '@colijnit/corecomponents_v12';
|
|
110
108
|
import * as i2$3 from '@angular/material/form-field';
|
|
111
109
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
112
110
|
import * as i13 from '@angular/material/select';
|
|
@@ -115,11 +113,11 @@ import * as i4$1 from '@angular/material/tooltip';
|
|
|
115
113
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
116
114
|
import * as i1$4 from 'ngx-color/sketch';
|
|
117
115
|
import { ColorSketchModule } from 'ngx-color/sketch';
|
|
116
|
+
import * as dat from 'dat.gui';
|
|
118
117
|
import * as i3$2 from '@angular/material/input';
|
|
119
118
|
import { MatInputModule } from '@angular/material/input';
|
|
120
119
|
import * as i4$2 from '@angular/material/slider';
|
|
121
120
|
import { MatSliderModule } from '@angular/material/slider';
|
|
122
|
-
import * as dat from 'dat.gui';
|
|
123
121
|
import * as i6 from '@angular/flex-layout/flex';
|
|
124
122
|
import * as i2$4 from '@angular/material/progress-bar';
|
|
125
123
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
@@ -3986,6 +3984,18 @@ class HomedecoratorConnectorAdapterService {
|
|
|
3986
3984
|
// public getJsonMatchTableArticles(): Promise<void> {
|
|
3987
3985
|
// return this.connector.getJsonMatchTableArticles();
|
|
3988
3986
|
// }
|
|
3987
|
+
async prepareArticleForCart(goodId, quantity = 1, shouldGetArticleTree = false, showLoader = true, instanceId = undefined) {
|
|
3988
|
+
const response = await this.articleApi.prepareArticleForCart('Homedecorator', 'Sales', 'Homedecorator', goodId, shouldGetArticleTree, quantity, instanceId, showLoader);
|
|
3989
|
+
if (response && response.validationResult && response.validationResult.success) {
|
|
3990
|
+
if (typeof response.resultObject !== 'string') {
|
|
3991
|
+
return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject);
|
|
3992
|
+
}
|
|
3993
|
+
return response.resultObject;
|
|
3994
|
+
}
|
|
3995
|
+
else {
|
|
3996
|
+
return null;
|
|
3997
|
+
}
|
|
3998
|
+
}
|
|
3989
3999
|
async setInstanceToConfigure(id) {
|
|
3990
4000
|
try {
|
|
3991
4001
|
if (id !== null) {
|
|
@@ -6843,8 +6853,8 @@ class HomedecoratorConnectorService {
|
|
|
6843
6853
|
googleTranslateEnabled() {
|
|
6844
6854
|
return this._connector.googleTranslateEnabled();
|
|
6845
6855
|
}
|
|
6846
|
-
|
|
6847
|
-
return this._connector.
|
|
6856
|
+
prepareArticleForCart(goodId, quantity, externalSource = false, showLoader = true, instanceId) {
|
|
6857
|
+
return this._connector.prepareArticleForCart(goodId, quantity, !!externalSource, showLoader, instanceId);
|
|
6848
6858
|
}
|
|
6849
6859
|
// public getJsonMatchTableArticles(): Promise<any> {
|
|
6850
6860
|
// return this._connector.getJsonMatchTableArticles();
|
|
@@ -7163,23 +7173,21 @@ class HomedecoratorConnectorService {
|
|
|
7163
7173
|
});
|
|
7164
7174
|
}
|
|
7165
7175
|
async addToCart(goodId, goodType, quantity, instanceId, externalSource) {
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
json = await this.getJsonConfiguredArticles(goodId, goodType, quantity, externalSource, true, instanceId, statistics);
|
|
7175
|
-
const frozenArticle = JSON.parse(json);
|
|
7176
|
+
const response = await this.prepareArticleForCart(goodId, quantity, externalSource, true, instanceId);
|
|
7177
|
+
let article;
|
|
7178
|
+
if (typeof response === 'string') {
|
|
7179
|
+
article = JSON.parse(response);
|
|
7180
|
+
}
|
|
7181
|
+
else {
|
|
7182
|
+
article = response;
|
|
7183
|
+
}
|
|
7176
7184
|
this._googleTagManager.sendEvent(GoogleTagManagerEvent.AddToCart, {
|
|
7177
|
-
'articleNr':
|
|
7178
|
-
'product':
|
|
7179
|
-
'composition':
|
|
7185
|
+
'articleNr': article.selectorData ? article.selectorData.articleNr : article.articleNr,
|
|
7186
|
+
'product': article.selectorData ? article.selectorData.articleName : article.name,
|
|
7187
|
+
'composition': article.selectorData ? article.selectorData.configurationText : article.configuration
|
|
7180
7188
|
});
|
|
7181
|
-
this._messageService.emit(MessageType.ArticleCreated,
|
|
7182
|
-
return
|
|
7189
|
+
this._messageService.emit(MessageType.ArticleCreated, article);
|
|
7190
|
+
return article;
|
|
7183
7191
|
}
|
|
7184
7192
|
handleAnswersReceived() {
|
|
7185
7193
|
this._preloadCachedImages(this.activeAnswers);
|
|
@@ -24734,8 +24742,8 @@ class FloorTileIntersectionService {
|
|
|
24734
24742
|
floorHits: new Array(),
|
|
24735
24743
|
edgeHits: new Array()
|
|
24736
24744
|
};
|
|
24737
|
-
const bvhLeft = new MeshBVH(geometryLeft);
|
|
24738
|
-
const bvhRight = (geometryRight !== null) ? new MeshBVH(geometryRight) : null;
|
|
24745
|
+
const bvhLeft = new MeshBVH(geometryLeft, { maxLeafSize: 10 });
|
|
24746
|
+
const bvhRight = (geometryRight !== null) ? new MeshBVH(geometryRight, { maxLeafSize: 10 }) : null;
|
|
24739
24747
|
const positionReference = new Object3D();
|
|
24740
24748
|
for (const floorItem of floorPattern) {
|
|
24741
24749
|
const bvh = (floorItem.isLeft) ? bvhLeft : bvhRight;
|
|
@@ -29087,7 +29095,15 @@ class RenderService {
|
|
|
29087
29095
|
};
|
|
29088
29096
|
}
|
|
29089
29097
|
}
|
|
29090
|
-
_getSceneRenderSettings(assetId) {
|
|
29098
|
+
_getSceneRenderSettings(assetId, settings) {
|
|
29099
|
+
let hdriIntensityOverwrite;
|
|
29100
|
+
if (settings && settings.hdriIntensity) {
|
|
29101
|
+
hdriIntensityOverwrite = settings.hdriIntensity;
|
|
29102
|
+
}
|
|
29103
|
+
let hdriRotationOverwrite;
|
|
29104
|
+
if (settings && settings.hdriRotation) {
|
|
29105
|
+
hdriRotationOverwrite = settings.hdriRotation;
|
|
29106
|
+
}
|
|
29091
29107
|
// Get the asset information from the BlenderRenderSettings
|
|
29092
29108
|
let renderScenes = [];
|
|
29093
29109
|
if (this._settingsService.settings.blenderSceneSettings && this._settingsService.settings.blenderSceneSettings.scenes) {
|
|
@@ -29117,16 +29133,18 @@ class RenderService {
|
|
|
29117
29133
|
compositeScene.sceneAssetId = renderScene.primarySceneName;
|
|
29118
29134
|
compositeScene.activeCameraId = 1;
|
|
29119
29135
|
compositeScene.default = true;
|
|
29120
|
-
compositeScene.hdriRotation =
|
|
29121
|
-
|
|
29136
|
+
compositeScene.hdriRotation =
|
|
29137
|
+
hdriRotationOverwrite ? this._apiServiceModule.degreesToVector3(hdriRotationOverwrite) : this._apiServiceModule.degreesToVector3(renderScene.hdriRotation);
|
|
29138
|
+
compositeScene.hdriIntensity = hdriIntensityOverwrite ? hdriIntensityOverwrite : renderScene.hdriIntensity;
|
|
29122
29139
|
compositeScene.id = 600;
|
|
29123
29140
|
if (renderScene.multiSceneRender) {
|
|
29124
29141
|
const additionalScene = new SceneSettings();
|
|
29125
29142
|
additionalScene.sceneAssetId = renderScene.secondarySceneName;
|
|
29126
29143
|
additionalScene.activeCameraId = 1;
|
|
29127
29144
|
additionalScene.default = false;
|
|
29128
|
-
additionalScene.hdriRotation =
|
|
29129
|
-
|
|
29145
|
+
additionalScene.hdriRotation =
|
|
29146
|
+
hdriRotationOverwrite ? this._apiServiceModule.degreesToVector3(hdriRotationOverwrite) : this._apiServiceModule.degreesToVector3(renderScene.hdriRotation);
|
|
29147
|
+
additionalScene.hdriIntensity = hdriIntensityOverwrite ? hdriIntensityOverwrite : renderScene.hdriIntensity;
|
|
29130
29148
|
additionalScene.id = 601;
|
|
29131
29149
|
scenes = [compositeScene, additionalScene];
|
|
29132
29150
|
}
|
|
@@ -29141,7 +29159,7 @@ class RenderService {
|
|
|
29141
29159
|
}
|
|
29142
29160
|
_getDataForRoomRender(settings) {
|
|
29143
29161
|
this._cameraService.camera.updateMatrixWorld(true);
|
|
29144
|
-
const sceneSettings = this._getSceneRenderSettings(settings.sceneAsset.name);
|
|
29162
|
+
const sceneSettings = this._getSceneRenderSettings(settings.sceneAsset.name, settings);
|
|
29145
29163
|
const options = {
|
|
29146
29164
|
width: settings.width,
|
|
29147
29165
|
height: settings.height,
|
|
@@ -33448,6 +33466,126 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
33448
33466
|
class BlenderRenderSettings {
|
|
33449
33467
|
}
|
|
33450
33468
|
|
|
33469
|
+
class InputSliderComponent {
|
|
33470
|
+
constructor(iconService) {
|
|
33471
|
+
this.iconService = iconService;
|
|
33472
|
+
// TODO we might need to change the inputs to core components ones, but then we need to change the way homedeco looks.
|
|
33473
|
+
// For now just html inputs are fine.
|
|
33474
|
+
this.icons = IconEnum;
|
|
33475
|
+
this.label = '';
|
|
33476
|
+
this.min = 0;
|
|
33477
|
+
this.max = 1000;
|
|
33478
|
+
this.step = 1;
|
|
33479
|
+
this.value = 0;
|
|
33480
|
+
this.valueChange = new EventEmitter();
|
|
33481
|
+
}
|
|
33482
|
+
onValueChange(newValue) {
|
|
33483
|
+
const numeric = +newValue;
|
|
33484
|
+
this.value = numeric;
|
|
33485
|
+
this.valueChange.emit(numeric);
|
|
33486
|
+
}
|
|
33487
|
+
increment() {
|
|
33488
|
+
this.onValueChange(this.value + this.step);
|
|
33489
|
+
}
|
|
33490
|
+
decrement() {
|
|
33491
|
+
this.onValueChange(this.value - this.step);
|
|
33492
|
+
}
|
|
33493
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InputSliderComponent, deps: [{ token: HomedecoratorIconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33494
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: InputSliderComponent, isStandalone: false, selector: "co-input-slider", inputs: { label: "label", min: "min", max: "max", step: "step", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: `
|
|
33495
|
+
<div class="setting-part-container">
|
|
33496
|
+
<div class="form-field third-width">
|
|
33497
|
+
@if (label) {
|
|
33498
|
+
<label [for]="label" class="form-field-label" [textContent]="label"></label>
|
|
33499
|
+
}
|
|
33500
|
+
|
|
33501
|
+
<input
|
|
33502
|
+
[id]="label"
|
|
33503
|
+
type="number"
|
|
33504
|
+
class="form-field-input"
|
|
33505
|
+
[min]="min"
|
|
33506
|
+
[max]="max"
|
|
33507
|
+
[step]="step"
|
|
33508
|
+
[ngModel]="value"
|
|
33509
|
+
(ngModelChange)="onValueChange($event)">
|
|
33510
|
+
</div>
|
|
33511
|
+
|
|
33512
|
+
<div class="setting-part-buttons">
|
|
33513
|
+
<button class="amount-button" (click)="decrement()">
|
|
33514
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
33515
|
+
</button>
|
|
33516
|
+
<button class="amount-button" (click)="increment()">
|
|
33517
|
+
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
33518
|
+
</button>
|
|
33519
|
+
</div>
|
|
33520
|
+
|
|
33521
|
+
<div class="setting-part-slider">
|
|
33522
|
+
<input
|
|
33523
|
+
type="range"
|
|
33524
|
+
class="value-slider"
|
|
33525
|
+
[min]="min"
|
|
33526
|
+
[max]="max"
|
|
33527
|
+
[step]="step"
|
|
33528
|
+
[ngModel]="value"
|
|
33529
|
+
(ngModelChange)="onValueChange($event)">
|
|
33530
|
+
</div>
|
|
33531
|
+
</div>
|
|
33532
|
+
`, isInline: true, styles: [".setting-part-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.setting-part-container .form-field{position:relative;display:flex;flex-direction:column}.setting-part-container .form-field-label{font-size:10px;color:#171721;margin-bottom:5px}.setting-part-container .form-field-input{border:none;border-bottom:1px solid rgba(0,0,0,.42);background:transparent;font-size:16px;padding:4px 0;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s ease}.setting-part-container .form-field-input:focus{border-bottom:2px solid #da9803;margin-bottom:-1px}.setting-part-container .form-field-input::-webkit-outer-spin-button,.setting-part-container .form-field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.setting-part-container .form-field-input[type=number]{-moz-appearance:textfield}.setting-part-container .third-width{width:32%}.setting-part-container .setting-part-buttons .amount-button{float:none;box-sizing:border-box;padding:2px;background:none;cursor:pointer;border:none;width:25px;height:25px;margin:0 5px}.setting-part-container .setting-part-buttons .amount-button co-icon{display:block;width:25px;height:25px}.setting-part-container .setting-part-buttons .amount-button co-icon svg{fill:#171721}.setting-part-container .setting-part-slider .value-slider{width:100%;appearance:none;height:2px;background:#da98034d;outline:none;cursor:pointer}.setting-part-container .setting-part-slider .value-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#da9803;cursor:pointer}.setting-part-container .setting-part-slider .value-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#da9803;border:none;cursor:pointer}.setting-part-container .setting-part-slider .value-slider::-moz-range-track{height:2px;background:#da98034d}\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.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][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: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
33533
|
+
}
|
|
33534
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InputSliderComponent, decorators: [{
|
|
33535
|
+
type: Component,
|
|
33536
|
+
args: [{ selector: 'co-input-slider', template: `
|
|
33537
|
+
<div class="setting-part-container">
|
|
33538
|
+
<div class="form-field third-width">
|
|
33539
|
+
@if (label) {
|
|
33540
|
+
<label [for]="label" class="form-field-label" [textContent]="label"></label>
|
|
33541
|
+
}
|
|
33542
|
+
|
|
33543
|
+
<input
|
|
33544
|
+
[id]="label"
|
|
33545
|
+
type="number"
|
|
33546
|
+
class="form-field-input"
|
|
33547
|
+
[min]="min"
|
|
33548
|
+
[max]="max"
|
|
33549
|
+
[step]="step"
|
|
33550
|
+
[ngModel]="value"
|
|
33551
|
+
(ngModelChange)="onValueChange($event)">
|
|
33552
|
+
</div>
|
|
33553
|
+
|
|
33554
|
+
<div class="setting-part-buttons">
|
|
33555
|
+
<button class="amount-button" (click)="decrement()">
|
|
33556
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
33557
|
+
</button>
|
|
33558
|
+
<button class="amount-button" (click)="increment()">
|
|
33559
|
+
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
33560
|
+
</button>
|
|
33561
|
+
</div>
|
|
33562
|
+
|
|
33563
|
+
<div class="setting-part-slider">
|
|
33564
|
+
<input
|
|
33565
|
+
type="range"
|
|
33566
|
+
class="value-slider"
|
|
33567
|
+
[min]="min"
|
|
33568
|
+
[max]="max"
|
|
33569
|
+
[step]="step"
|
|
33570
|
+
[ngModel]="value"
|
|
33571
|
+
(ngModelChange)="onValueChange($event)">
|
|
33572
|
+
</div>
|
|
33573
|
+
</div>
|
|
33574
|
+
`, standalone: false, encapsulation: ViewEncapsulation.None, styles: [".setting-part-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.setting-part-container .form-field{position:relative;display:flex;flex-direction:column}.setting-part-container .form-field-label{font-size:10px;color:#171721;margin-bottom:5px}.setting-part-container .form-field-input{border:none;border-bottom:1px solid rgba(0,0,0,.42);background:transparent;font-size:16px;padding:4px 0;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s ease}.setting-part-container .form-field-input:focus{border-bottom:2px solid #da9803;margin-bottom:-1px}.setting-part-container .form-field-input::-webkit-outer-spin-button,.setting-part-container .form-field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.setting-part-container .form-field-input[type=number]{-moz-appearance:textfield}.setting-part-container .third-width{width:32%}.setting-part-container .setting-part-buttons .amount-button{float:none;box-sizing:border-box;padding:2px;background:none;cursor:pointer;border:none;width:25px;height:25px;margin:0 5px}.setting-part-container .setting-part-buttons .amount-button co-icon{display:block;width:25px;height:25px}.setting-part-container .setting-part-buttons .amount-button co-icon svg{fill:#171721}.setting-part-container .setting-part-slider .value-slider{width:100%;appearance:none;height:2px;background:#da98034d;outline:none;cursor:pointer}.setting-part-container .setting-part-slider .value-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#da9803;cursor:pointer}.setting-part-container .setting-part-slider .value-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#da9803;border:none;cursor:pointer}.setting-part-container .setting-part-slider .value-slider::-moz-range-track{height:2px;background:#da98034d}\n"] }]
|
|
33575
|
+
}], ctorParameters: () => [{ type: HomedecoratorIconCacheService }], propDecorators: { label: [{
|
|
33576
|
+
type: Input
|
|
33577
|
+
}], min: [{
|
|
33578
|
+
type: Input
|
|
33579
|
+
}], max: [{
|
|
33580
|
+
type: Input
|
|
33581
|
+
}], step: [{
|
|
33582
|
+
type: Input
|
|
33583
|
+
}], value: [{
|
|
33584
|
+
type: Input
|
|
33585
|
+
}], valueChange: [{
|
|
33586
|
+
type: Output
|
|
33587
|
+
}] } });
|
|
33588
|
+
|
|
33451
33589
|
// A pipe for appending strings to other strings in view templates.
|
|
33452
33590
|
class AppendPipe {
|
|
33453
33591
|
transform(value, append) {
|
|
@@ -33762,410 +33900,326 @@ class RenderControlsComponent {
|
|
|
33762
33900
|
}
|
|
33763
33901
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderControlsComponent, deps: [{ token: MessageBusService }, { token: ViewModeService }, { token: HomedecoratorSettingsService }, { token: HomedecoratorIconCacheService }, { token: RenderService }, { token: i1$2.MatDialog }, { token: SceneService }, { token: CameraService }, { token: ConfigurationService }, { token: HomedecoratorSettingsService }, { token: UtilsService }, { token: RoomService }, { token: WallMeasurementsService }, { token: ConnectionHeathService }, { token: HomedecoratorDictionaryService }, { token: DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33764
33902
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: RenderControlsComponent, isStandalone: false, selector: "rp-render-controls", viewQueries: [{ propertyName: "renderButton", first: true, predicate: ["renderButton"], descendants: true }], ngImport: i0, template: `
|
|
33765
|
-
|
|
33766
|
-
|
|
33767
|
-
|
|
33768
|
-
|
|
33769
|
-
|
|
33770
|
-
|
|
33771
|
-
|
|
33772
|
-
|
|
33773
|
-
|
|
33774
|
-
|
|
33775
|
-
|
|
33903
|
+
<div class="render-container">
|
|
33904
|
+
@if (startUploading) {
|
|
33905
|
+
<rp-render-progress></rp-render-progress>
|
|
33906
|
+
}
|
|
33907
|
+
<!-- the Yellow render indicators -->
|
|
33908
|
+
@if (inPictureMode) {
|
|
33909
|
+
<div class="render-indicators">
|
|
33910
|
+
<div class="render-indicator-top-left"></div>
|
|
33911
|
+
<div class="render-indicator-top-right"></div>
|
|
33912
|
+
<div class="render-indicator-bottom-left"></div>
|
|
33913
|
+
<div class="render-indicator-bottom-right"></div>
|
|
33914
|
+
</div>
|
|
33915
|
+
<div class="render-popup-container">
|
|
33916
|
+
<div class="render-popup-header">
|
|
33917
|
+
<h3>
|
|
33918
|
+
<span>{{ 'PICTURE_MODE' | localize }}</span>
|
|
33919
|
+
@if (hasError) {
|
|
33920
|
+
<co-icon class="renderErrorIcon" [iconData]="iconService.getIcon(icons.TriangleExclamation)"
|
|
33921
|
+
[matTooltip]="'BLENDER_RENDER_ERROR' | localize"></co-icon>
|
|
33922
|
+
}
|
|
33923
|
+
</h3>
|
|
33924
|
+
<button
|
|
33925
|
+
class="close-popup-container"
|
|
33926
|
+
(click)="resetBlenderRenderScene()">
|
|
33927
|
+
<co-icon [iconData]="iconService.getIcon(icons.Cross)"></co-icon>
|
|
33928
|
+
</button>
|
|
33929
|
+
</div>
|
|
33930
|
+
<div class="render-popup-preview">
|
|
33931
|
+
@if (blenderPreviewRender) {
|
|
33932
|
+
<img [src]="blenderPreviewRender" alt="">
|
|
33933
|
+
}
|
|
33934
|
+
@if (!blenderPreviewRender) {
|
|
33935
|
+
<div class="render-popup-preview-placeholder">
|
|
33936
|
+
<span>{{ 'PREVIEW' | localize }}</span>
|
|
33776
33937
|
</div>
|
|
33777
|
-
|
|
33778
|
-
|
|
33779
|
-
|
|
33780
|
-
|
|
33781
|
-
|
|
33782
|
-
|
|
33783
|
-
|
|
33784
|
-
|
|
33785
|
-
|
|
33786
|
-
|
|
33787
|
-
|
|
33788
|
-
(click)="resetBlenderRenderScene()">
|
|
33789
|
-
<co-icon [iconData]="iconService.getIcon(icons.Cross)"></co-icon>
|
|
33790
|
-
</button>
|
|
33791
|
-
</div>
|
|
33792
|
-
<div class="render-popup-preview">
|
|
33793
|
-
@if (blenderPreviewRender) {
|
|
33794
|
-
<img [src]="blenderPreviewRender" alt="">
|
|
33795
|
-
}
|
|
33796
|
-
@if (!blenderPreviewRender) {
|
|
33797
|
-
<div class="render-popup-preview-placeholder">
|
|
33798
|
-
<span>{{ 'PREVIEW' | localize }}</span>
|
|
33799
|
-
</div>
|
|
33800
|
-
}
|
|
33801
|
-
<button class="render-popup-refresh-preview" (click)="createBlenderRender(true)">
|
|
33802
|
-
<co-icon [iconData]="iconService.getIcon(icons.RetryButton)"></co-icon>
|
|
33803
|
-
</button>
|
|
33804
|
-
</div>
|
|
33805
|
-
@if (renderService.blendFilesRender) {
|
|
33806
|
-
<div class="render-popup-dropdown">
|
|
33807
|
-
<div class="toggleable" (click)="toggleRenderSettings()">
|
|
33808
|
-
<p>
|
|
33809
|
-
@if (!showRenderSettings) {
|
|
33810
|
-
<span [textContent]="'RENDER_ADVANCED_SETTINGS_SHOW' | localize"></span>
|
|
33811
|
-
}
|
|
33812
|
-
@if (showRenderSettings) {
|
|
33813
|
-
<span [textContent]="'RENDER_ADVANCED_SETTINGS_HIDE' | localize"></span>
|
|
33814
|
-
}
|
|
33815
|
-
</p>
|
|
33816
|
-
<co-icon [ngClass]="{'icon-rotate': showRenderSettings}"
|
|
33817
|
-
[iconData]="iconService.getIcon(icons.ArrowPointDown)"></co-icon>
|
|
33818
|
-
</div>
|
|
33819
|
-
@if (showRenderSettings) {
|
|
33820
|
-
<div class="advanced-render-settings">
|
|
33821
|
-
<div class="setting-part-container">
|
|
33822
|
-
<mat-form-field
|
|
33823
|
-
class="face-select-form"
|
|
33824
|
-
>
|
|
33825
|
-
<mat-label>{{ "ENVIRONMENT" | localize }}</mat-label>
|
|
33826
|
-
<mat-select [(ngModel)]="selectedRenderScene" (selectionChange)="updateBlenderSceneSettings($event)">
|
|
33827
|
-
@for (scene of sceneList; track scene) {
|
|
33828
|
-
<mat-option
|
|
33829
|
-
[value]="scene">{{ scene.name }}
|
|
33830
|
-
</mat-option>
|
|
33831
|
-
}
|
|
33832
|
-
</mat-select>
|
|
33833
|
-
</mat-form-field>
|
|
33834
|
-
</div>
|
|
33835
|
-
<div class="setting-part-container">
|
|
33836
|
-
<mat-form-field class="third-width">
|
|
33837
|
-
<mat-label [textContent]="'ENVIRONMENT_LIGHT' | localize"></mat-label>
|
|
33838
|
-
<input
|
|
33839
|
-
[type]="'number'"
|
|
33840
|
-
matInput
|
|
33841
|
-
[(ngModel)]="hdriIntensity"
|
|
33842
|
-
(ngModelChange)="hdriIntensity = +$event">
|
|
33843
|
-
</mat-form-field>
|
|
33844
|
-
<div class="setting-part-buttons">
|
|
33845
|
-
<button class="amount-button" (click)="hdriIntensity = +hdriIntensity - 1">
|
|
33846
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
33847
|
-
</button>
|
|
33848
|
-
<button class="amount-button" (click)="hdriIntensity = +hdriIntensity + 1">
|
|
33849
|
-
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
33850
|
-
</button>
|
|
33851
|
-
</div>
|
|
33852
|
-
<div class="setting-part-slider">
|
|
33853
|
-
<mat-slider class="value" min="1" max="20" step="1" [(ngModel)]="hdriIntensity"></mat-slider>
|
|
33854
|
-
</div>
|
|
33855
|
-
</div>
|
|
33856
|
-
<div class="setting-part-container">
|
|
33857
|
-
<mat-form-field class="third-width">
|
|
33858
|
-
<mat-label [textContent]="'ROTATION' | localize"></mat-label>
|
|
33859
|
-
<input
|
|
33860
|
-
[type]="'number'"
|
|
33861
|
-
matInput
|
|
33862
|
-
[(ngModel)]="hdriRotation"
|
|
33863
|
-
(ngModelChange)="hdriRotation = +$event">
|
|
33864
|
-
</mat-form-field>
|
|
33865
|
-
<div class="setting-part-buttons">
|
|
33866
|
-
<button class="amount-button" (click)="hdriRotation = +hdriRotation - 1">
|
|
33867
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
33868
|
-
</button>
|
|
33869
|
-
<button class="amount-button" (click)="hdriRotation = +hdriRotation + 1">
|
|
33870
|
-
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
33871
|
-
</button>
|
|
33872
|
-
</div>
|
|
33873
|
-
<div class="setting-part-slider">
|
|
33874
|
-
<mat-slider class="value" min="0" max="360" step="1" [(ngModel)]="hdriRotation"></mat-slider>
|
|
33875
|
-
</div>
|
|
33876
|
-
</div>
|
|
33877
|
-
<div class="setting-part-container">
|
|
33878
|
-
<mat-form-field class="third-width">
|
|
33879
|
-
<mat-label [textContent]="'LIGHTS' | localize"></mat-label>
|
|
33880
|
-
<input
|
|
33881
|
-
[type]="'number'"
|
|
33882
|
-
matInput
|
|
33883
|
-
[(ngModel)]="lightingExposure"
|
|
33884
|
-
(ngModelChange)="lightingExposure = +$event">
|
|
33885
|
-
</mat-form-field>
|
|
33886
|
-
<div class="setting-part-buttons">
|
|
33887
|
-
<button class="amount-button" (click)="lightingExposure = +lightingExposure - 1">
|
|
33888
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
33889
|
-
</button>
|
|
33890
|
-
<button class="amount-button" (click)="lightingExposure = +lightingExposure + 1">
|
|
33891
|
-
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
33892
|
-
</button>
|
|
33893
|
-
</div>
|
|
33894
|
-
<div class="setting-part-slider">
|
|
33895
|
-
<mat-slider class="value" min="1" max="10" step="1" [(ngModel)]="lightingExposure"></mat-slider>
|
|
33896
|
-
</div>
|
|
33897
|
-
</div>
|
|
33898
|
-
</div>
|
|
33899
|
-
}
|
|
33900
|
-
</div>
|
|
33938
|
+
}
|
|
33939
|
+
<button class="render-popup-refresh-preview" (click)="createBlenderRender(true)">
|
|
33940
|
+
<co-icon [iconData]="iconService.getIcon(icons.RetryButton)"></co-icon>
|
|
33941
|
+
</button>
|
|
33942
|
+
</div>
|
|
33943
|
+
@if (renderService.blendFilesRender) {
|
|
33944
|
+
<div class="render-popup-dropdown">
|
|
33945
|
+
<div class="toggleable" (click)="toggleRenderSettings()">
|
|
33946
|
+
<p>
|
|
33947
|
+
@if (!showRenderSettings) {
|
|
33948
|
+
<span [textContent]="'RENDER_ADVANCED_SETTINGS_SHOW' | localize"></span>
|
|
33901
33949
|
}
|
|
33902
|
-
|
|
33903
|
-
|
|
33904
|
-
|
|
33905
|
-
|
|
33906
|
-
|
|
33907
|
-
|
|
33908
|
-
x{{ size.height }}
|
|
33909
|
-
</mat-option>
|
|
33910
|
-
}
|
|
33911
|
-
</mat-select>
|
|
33912
|
-
</mat-form-field>
|
|
33913
|
-
</div>
|
|
33914
|
-
<div class="render-popup-button-container">
|
|
33915
|
-
<button class="render-popup-button photo-button"
|
|
33916
|
-
(click)="createBlenderRender()"
|
|
33917
|
-
title="{{'MAKE_A_PICTURE' | localize}}"
|
|
33918
|
-
[disabled]="disablePictureButton">
|
|
33919
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleCheck)"></co-icon>
|
|
33920
|
-
{{ 'MAKE_A_PICTURE' | localize }}
|
|
33921
|
-
</button>
|
|
33922
|
-
<button
|
|
33923
|
-
class="render-popup-button cancel-button"
|
|
33924
|
-
(click)="resetBlenderRenderScene()">
|
|
33925
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
33926
|
-
{{ 'CLOSE_PHOTO_MODE' | localize }}
|
|
33927
|
-
</button>
|
|
33928
|
-
</div>
|
|
33950
|
+
@if (showRenderSettings) {
|
|
33951
|
+
<span [textContent]="'RENDER_ADVANCED_SETTINGS_HIDE' | localize"></span>
|
|
33952
|
+
}
|
|
33953
|
+
</p>
|
|
33954
|
+
<co-icon [ngClass]="{'icon-rotate': showRenderSettings}"
|
|
33955
|
+
[iconData]="iconService.getIcon(icons.ArrowPointDown)"></co-icon>
|
|
33929
33956
|
</div>
|
|
33930
|
-
|
|
33931
|
-
|
|
33932
|
-
|
|
33933
|
-
|
|
33934
|
-
|
|
33935
|
-
|
|
33936
|
-
|
|
33937
|
-
|
|
33938
|
-
|
|
33939
|
-
|
|
33940
|
-
|
|
33941
|
-
|
|
33942
|
-
|
|
33943
|
-
|
|
33944
|
-
|
|
33945
|
-
(click)="showCullingErrorDialog = false">
|
|
33946
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
33947
|
-
{{ 'CLOSE' | localize }}
|
|
33948
|
-
</button>
|
|
33957
|
+
@if (showRenderSettings) {
|
|
33958
|
+
<div class="advanced-render-settings">
|
|
33959
|
+
<div class="setting-part-container">
|
|
33960
|
+
<mat-form-field
|
|
33961
|
+
class="face-select-form"
|
|
33962
|
+
>
|
|
33963
|
+
<mat-label>{{ "ENVIRONMENT" | localize }}</mat-label>
|
|
33964
|
+
<mat-select [(ngModel)]="selectedRenderScene" (selectionChange)="updateBlenderSceneSettings($event)">
|
|
33965
|
+
@for (scene of sceneList; track scene) {
|
|
33966
|
+
<mat-option
|
|
33967
|
+
[value]="scene">{{ scene.name }}
|
|
33968
|
+
</mat-option>
|
|
33969
|
+
}
|
|
33970
|
+
</mat-select>
|
|
33971
|
+
</mat-form-field>
|
|
33949
33972
|
</div>
|
|
33950
|
-
|
|
33973
|
+
|
|
33974
|
+
<co-input-slider
|
|
33975
|
+
[label]="'ENVIRONMENT_LIGHT' | localize"
|
|
33976
|
+
[min]="1"
|
|
33977
|
+
[max]="20"
|
|
33978
|
+
[(value)]="hdriIntensity">
|
|
33979
|
+
</co-input-slider>
|
|
33980
|
+
|
|
33981
|
+
<co-input-slider
|
|
33982
|
+
[label]="'ROTATION' | localize"
|
|
33983
|
+
[min]="1"
|
|
33984
|
+
[max]="360"
|
|
33985
|
+
[(value)]="hdriRotation">
|
|
33986
|
+
</co-input-slider>
|
|
33987
|
+
|
|
33988
|
+
<co-input-slider
|
|
33989
|
+
[label]="'LIGHTS' | localize"
|
|
33990
|
+
[min]="1"
|
|
33991
|
+
[max]="10"
|
|
33992
|
+
[(value)]="lightingExposure">
|
|
33993
|
+
</co-input-slider>
|
|
33994
|
+
</div>
|
|
33995
|
+
}
|
|
33996
|
+
</div>
|
|
33951
33997
|
}
|
|
33952
|
-
<
|
|
33953
|
-
|
|
33954
|
-
|
|
33955
|
-
|
|
33956
|
-
|
|
33957
|
-
[
|
|
33958
|
-
|
|
33959
|
-
|
|
33960
|
-
|
|
33961
|
-
</mat-
|
|
33962
|
-
|
|
33963
|
-
|
|
33964
|
-
`, isInline: true, styles: [".render-container{position:relative}.render-container .render-popup-container{background:#ffffffb3;padding:10px 25px 25px;border-radius:5px;box-shadow:0 1px 5px #0000001f}.render-container .render-popup-container .render-popup-header{display:flex;justify-content:space-between;font-family:inherit}.render-container .render-popup-container .render-popup-header h3{display:flex;justify-content:space-between}.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon{width:20px;height:20px;margin-left:20px}.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon svg,.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon svg polygon{fill:#dc143c}.render-container .render-popup-container .render-popup-header .close-popup-container{cursor:pointer;border:none;background:none;float:none;height:auto;width:auto}.render-container .render-popup-container .render-popup-button-container{display:flex;justify-content:space-between;font-family:inherit}.render-container .render-popup-container .render-popup-button-container .render-popup-button{float:none;width:100%;max-width:130px;border-radius:3px;cursor:pointer;border:none;display:flex;height:40px;align-items:center;justify-content:space-evenly}.render-container .render-popup-container .render-popup-button-container .render-popup-button ::ng-deep co-icon{display:inline-block;height:18px;width:18px}.render-container .render-popup-container .render-popup-button-container .render-popup-button ::ng-deep co-icon svg path{fill:#fff}.render-container .render-popup-container .render-popup-button-container .photo-button{color:#fff;background-color:#dda73f}.render-container .render-popup-container .render-popup-button-container .cancel-button{color:#fff;background-color:#5b6875}.render-container .render-popup-container .render-popup-preview{background-color:#fff;min-height:150px;min-width:275px;margin:5px 0;position:relative;width:275px;height:150px}.render-container .render-popup-container .render-popup-preview .render-popup-preview-placeholder{background-color:#fff;display:flex;justify-content:space-around;align-items:center;vertical-align:middle;min-height:150px;border:1px solid #ddd;color:#ddd;font-size:14px}.render-container .render-popup-container .render-popup-preview .render-popup-refresh-preview{position:absolute;bottom:0;right:0;cursor:pointer;border-radius:0;border:none;height:30px;width:30px;background-color:#dda73f;color:#fff;margin:0}.render-container .render-popup-container .render-popup-preview .render-popup-refresh-preview ::ng-deep co-icon svg path{fill:#fff}.render-container .render-popup-container .render-popup-dropdown{margin:5px 0;width:100%}.render-container .render-popup-container .render-popup-dropdown .toggleable{cursor:pointer;display:flex;justify-content:right;align-content:center}.render-container .render-popup-container .render-popup-dropdown .toggleable p{padding:0;margin:0;font-size:12px;line-height:30px}.render-container .render-popup-container .render-popup-dropdown .toggleable .icon-rotate{transform:rotate(180deg)}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field{width:100%;font-size:14px}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-flex{background-color:#fff;color:#000;padding:3px 6px;border:1px solid #ddd}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-underline{display:none}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper{padding-bottom:0}.render-container .render-popup-container .render-popup-dropdown .setting-part-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.render-container .render-popup-container .render-popup-dropdown .setting-part-container .third-width{width:32%}.render-container .render-popup-container .render-popup-dropdown .setting-part-container .setting-part-buttons .amount-button{float:none;box-sizing:border-box;padding:2px;background:none;cursor:pointer;border:none;width:25px;height:25px;margin:0 5px}.render-container .render-popup-container .render-popup-dropdown .setting-part-container .setting-part-buttons .amount-button co-icon{display:block;width:25px;height:25px}.render-container .render-popup-container .render-popup-dropdown .setting-part-container .setting-part-buttons .amount-button co-icon ::ng-deep svg{fill:#5b6875}.render-container .render-popup-container .render-popup-dropdown .setting-part-container .setting-part-slider .mat-slider-horizontal{min-width:110px;height:28px}.render-container .render-progress{float:left;min-width:50px;border-radius:25px;line-height:50px;text-align:center;padding:0 60px 0 20px;background:#fff;color:#74b77f;font-weight:700;margin:0 -50px 0 0}.render-container .render-input-container{float:right}.render-container .render-input-container input{width:100px;height:24px;margin:5px 0;padding:0 10px;font-size:14px}.render-container button{pointer-events:all;width:50px;height:50px;float:right;border-radius:100%;position:relative;z-index:2;margin-bottom:10px}.render-container button.active{background:#74b77f;color:#fff}.render-container button>*{pointer-events:none}.render-indicators div{position:fixed;width:100px;height:100px}.render-indicators .render-indicator-top-left{left:5vw;top:10vh;border-left:10px solid #dda73f;border-top:10px solid #dda73f;border-top-left-radius:20px}.render-indicators .render-indicator-top-right{right:5vw;top:10vh;border-right:10px solid #dda73f;border-top:10px solid #dda73f;border-top-right-radius:20px}.render-indicators .render-indicator-bottom-left{left:5vw;bottom:5vh;border-left:10px solid #dda73f;border-bottom:10px solid #dda73f;border-bottom-left-radius:20px}.render-indicators .render-indicator-bottom-right{right:5vw;bottom:5vh;border-right:10px solid #dda73f;border-bottom:10px solid #dda73f;border-bottom-right-radius:20px}.render-warning{width:500px;position:fixed;top:20%;left:calc(50% - 250px);border-radius:15px;box-sizing:border-box;background-color:#fff;box-shadow:1px 0 20px #0000001f}.render-warning .render-warming-header{display:flex;justify-content:space-between;border-bottom:1px solid #c5c3c6;padding:20px 20px 10px;align-items:center}.render-warning .render-warming-header h2{padding:0;margin:0}.render-warning .render-warming-header .render-warning-close mat-icon{fill:#c5c3c6;color:#c5c3c6;cursor:pointer;transition:all .2s ease}.render-warning .render-warming-header .render-warning-close:hover mat-icon{fill:#46494c;color:#46494c}.render-warning .render-warning-body{padding:10px 20px}.render-warning .render-warning-footer{display:flex;justify-content:center;padding:0 20px 10px}.render-warning .render-warning-footer .render-popup-button{float:none;width:110px;border-radius:3px;cursor:pointer;border:none;display:flex;height:40px;align-items:center;justify-content:space-evenly;color:#fff;background-color:#5b6875}.render-warning .render-warning-footer .render-popup-button ::ng-deep co-icon{display:inline-block;height:18px;width:18px}.render-warning .render-warning-footer .render-popup-button ::ng-deep co-icon svg path{fill:#fff}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { 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: 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: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: i4$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "component", type: RenderProgressComponent, selector: "rp-render-progress" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
|
|
33998
|
+
<div class="render-popup-dropdown">
|
|
33999
|
+
<mat-form-field class="face-select-form">
|
|
34000
|
+
<mat-label>{{ "IMAGE_SIZE" | localize }}</mat-label>
|
|
34001
|
+
<mat-select [(value)]="selectedImageSize">
|
|
34002
|
+
@for (size of imageSizes; track size) {
|
|
34003
|
+
<mat-option [value]="size">{{ size.name }} {{ size.width }}
|
|
34004
|
+
x{{ size.height }}
|
|
34005
|
+
</mat-option>
|
|
34006
|
+
}
|
|
34007
|
+
</mat-select>
|
|
34008
|
+
</mat-form-field>
|
|
34009
|
+
</div>
|
|
34010
|
+
<div class="render-popup-button-container">
|
|
34011
|
+
<button class="render-popup-button photo-button"
|
|
34012
|
+
(click)="createBlenderRender()"
|
|
34013
|
+
title="{{'MAKE_A_PICTURE' | localize}}"
|
|
34014
|
+
[disabled]="disablePictureButton">
|
|
34015
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleCheck)"></co-icon>
|
|
34016
|
+
{{ 'MAKE_A_PICTURE' | localize }}
|
|
34017
|
+
</button>
|
|
34018
|
+
<button
|
|
34019
|
+
class="render-popup-button cancel-button"
|
|
34020
|
+
(click)="resetBlenderRenderScene()">
|
|
34021
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
34022
|
+
{{ 'CLOSE_PHOTO_MODE' | localize }}
|
|
34023
|
+
</button>
|
|
34024
|
+
</div>
|
|
34025
|
+
</div>
|
|
34026
|
+
}
|
|
34027
|
+
@if (showCullingErrorDialog) {
|
|
34028
|
+
<div class="render-warning">
|
|
34029
|
+
<div class="render-warming-header">
|
|
34030
|
+
<h2>{{ 'BLENDER_RENDER_ERROR_TITLE' | localize }}</h2>
|
|
34031
|
+
<div class="render-warning-close" (click)="showCullingErrorDialog = false">
|
|
34032
|
+
<mat-icon class="homedecorator-material-icons">cancel</mat-icon>
|
|
34033
|
+
</div>
|
|
34034
|
+
</div>
|
|
34035
|
+
<div class="render-warning-body">
|
|
34036
|
+
<p>{{ 'BLENDER_RENDER_WARNING_CULLING' | localize }}</p>
|
|
34037
|
+
</div>
|
|
34038
|
+
<div class="render-warning-footer">
|
|
34039
|
+
<button
|
|
34040
|
+
class="render-popup-button cancel-button"
|
|
34041
|
+
(click)="showCullingErrorDialog = false">
|
|
34042
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
34043
|
+
{{ 'CLOSE' | localize }}
|
|
34044
|
+
</button>
|
|
34045
|
+
</div>
|
|
34046
|
+
</div>
|
|
34047
|
+
}
|
|
34048
|
+
<button
|
|
34049
|
+
#renderButton
|
|
34050
|
+
mat-raised-button
|
|
34051
|
+
matTooltip="{{'RENDER_TAKE_A_PICTURE' | localize}}"
|
|
34052
|
+
[id]="'standalone_render_picture'"
|
|
34053
|
+
[class.active]="viewModeService.viewMode === viewModes.WalkThrough"
|
|
34054
|
+
(click)="showRenderForm($event)">
|
|
34055
|
+
<mat-icon class="icon homedecorator-material-icons"
|
|
34056
|
+
aria-hidden="true">{{ 'photo_camera' }}
|
|
34057
|
+
</mat-icon>
|
|
34058
|
+
</button>
|
|
34059
|
+
</div>
|
|
34060
|
+
`, isInline: true, styles: [".render-container{position:relative;min-width:375px}.render-container .render-popup-container{box-sizing:border-box;background:#ffffffb3;padding:10px 25px 25px;border-radius:5px;box-shadow:0 1px 5px #0000001f}.render-container .render-popup-container .render-popup-header{display:flex;justify-content:space-between;font-family:inherit}.render-container .render-popup-container .render-popup-header h3{display:flex;justify-content:space-between}.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon{width:20px;height:20px;margin-left:20px}.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon svg,.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon svg polygon{fill:#dc143c}.render-container .render-popup-container .render-popup-header .close-popup-container{cursor:pointer;border:none;background:none;float:none;height:auto;width:auto}.render-container .render-popup-container .render-popup-button-container{display:flex;justify-content:space-between;font-family:inherit}.render-container .render-popup-container .render-popup-button-container .render-popup-button{float:none;width:100%;max-width:130px;border-radius:3px;cursor:pointer;border:none;display:flex;height:40px;align-items:center;justify-content:space-evenly}.render-container .render-popup-container .render-popup-button-container .render-popup-button ::ng-deep co-icon{display:inline-block;height:18px;width:18px}.render-container .render-popup-container .render-popup-button-container .render-popup-button ::ng-deep co-icon svg path{fill:#fff}.render-container .render-popup-container .render-popup-button-container .photo-button{color:#fff;background-color:#dda73f}.render-container .render-popup-container .render-popup-button-container .cancel-button{color:#fff;background-color:#5b6875}.render-container .render-popup-container .render-popup-preview{background-color:#fff;min-height:150px;min-width:275px;margin:5px auto;position:relative;width:340px;height:150px}.render-container .render-popup-container .render-popup-preview .render-popup-preview-placeholder{background-color:#fff;display:flex;justify-content:space-around;align-items:center;vertical-align:middle;min-height:150px;border:1px solid #ddd;color:#ddd;font-size:14px}.render-container .render-popup-container .render-popup-preview .render-popup-refresh-preview{position:absolute;bottom:0;right:0;cursor:pointer;border-radius:0;border:none;height:30px;width:30px;background-color:#dda73f;color:#fff;margin:0}.render-container .render-popup-container .render-popup-preview .render-popup-refresh-preview ::ng-deep co-icon svg path{fill:#fff}.render-container .render-popup-container .render-popup-dropdown{margin:5px 0;width:100%}.render-container .render-popup-container .render-popup-dropdown .toggleable{cursor:pointer;display:flex;justify-content:right;align-content:center}.render-container .render-popup-container .render-popup-dropdown .toggleable p{padding:0;margin:0;font-size:12px;line-height:30px}.render-container .render-popup-container .render-popup-dropdown .toggleable .icon-rotate{transform:rotate(180deg)}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field{width:100%;font-size:14px}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-flex{background-color:#fff;color:#000;padding:3px 6px;border:1px solid #ddd}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-underline{display:none}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper{padding-bottom:0}.render-container .render-progress{float:left;min-width:50px;border-radius:25px;line-height:50px;text-align:center;padding:0 60px 0 20px;background:#fff;color:#74b77f;font-weight:700;margin:0 -50px 0 0}.render-container .render-input-container{float:right}.render-container .render-input-container input{width:100px;height:24px;margin:5px 0;padding:0 10px;font-size:14px}.render-container button{pointer-events:all;width:50px;height:50px;float:right;border-radius:100%;position:relative;z-index:2;margin-bottom:10px}.render-container button.active{background:#74b77f;color:#fff}.render-container button>*{pointer-events:none}.render-indicators div{position:fixed;width:100px;height:100px}.render-indicators .render-indicator-top-left{left:5vw;top:10vh;border-left:10px solid #dda73f;border-top:10px solid #dda73f;border-top-left-radius:20px}.render-indicators .render-indicator-top-right{right:5vw;top:10vh;border-right:10px solid #dda73f;border-top:10px solid #dda73f;border-top-right-radius:20px}.render-indicators .render-indicator-bottom-left{left:5vw;bottom:5vh;border-left:10px solid #dda73f;border-bottom:10px solid #dda73f;border-bottom-left-radius:20px}.render-indicators .render-indicator-bottom-right{right:5vw;bottom:5vh;border-right:10px solid #dda73f;border-bottom:10px solid #dda73f;border-bottom-right-radius:20px}.render-warning{width:500px;position:fixed;top:20%;left:calc(50% - 250px);border-radius:15px;box-sizing:border-box;background-color:#fff;box-shadow:1px 0 20px #0000001f}.render-warning .render-warming-header{display:flex;justify-content:space-between;border-bottom:1px solid #c5c3c6;padding:20px 20px 10px;align-items:center}.render-warning .render-warming-header h2{padding:0;margin:0}.render-warning .render-warming-header .render-warning-close mat-icon{fill:#c5c3c6;color:#c5c3c6;cursor:pointer;transition:all .2s ease}.render-warning .render-warming-header .render-warning-close:hover mat-icon{fill:#46494c;color:#46494c}.render-warning .render-warning-body{padding:10px 20px}.render-warning .render-warning-footer{display:flex;justify-content:center;padding:0 20px 10px}.render-warning .render-warning-footer .render-popup-button{float:none;width:110px;border-radius:3px;cursor:pointer;border:none;display:flex;height:40px;align-items:center;justify-content:space-evenly;color:#fff;background-color:#5b6875}.render-warning .render-warning-footer .render-popup-button ::ng-deep co-icon{display:inline-block;height:18px;width:18px}.render-warning .render-warning-footer .render-popup-button ::ng-deep co-icon svg path{fill:#fff}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { 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: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: InputSliderComponent, selector: "co-input-slider", inputs: ["label", "min", "max", "step", "value"], outputs: ["valueChange"] }, { kind: "component", type: RenderProgressComponent, selector: "rp-render-progress" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
|
|
33965
34061
|
}
|
|
33966
34062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderControlsComponent, decorators: [{
|
|
33967
34063
|
type: Component,
|
|
33968
34064
|
args: [{ selector: 'rp-render-controls', template: `
|
|
33969
|
-
|
|
33970
|
-
|
|
33971
|
-
|
|
33972
|
-
|
|
33973
|
-
|
|
33974
|
-
|
|
33975
|
-
|
|
33976
|
-
|
|
33977
|
-
|
|
33978
|
-
|
|
33979
|
-
|
|
34065
|
+
<div class="render-container">
|
|
34066
|
+
@if (startUploading) {
|
|
34067
|
+
<rp-render-progress></rp-render-progress>
|
|
34068
|
+
}
|
|
34069
|
+
<!-- the Yellow render indicators -->
|
|
34070
|
+
@if (inPictureMode) {
|
|
34071
|
+
<div class="render-indicators">
|
|
34072
|
+
<div class="render-indicator-top-left"></div>
|
|
34073
|
+
<div class="render-indicator-top-right"></div>
|
|
34074
|
+
<div class="render-indicator-bottom-left"></div>
|
|
34075
|
+
<div class="render-indicator-bottom-right"></div>
|
|
34076
|
+
</div>
|
|
34077
|
+
<div class="render-popup-container">
|
|
34078
|
+
<div class="render-popup-header">
|
|
34079
|
+
<h3>
|
|
34080
|
+
<span>{{ 'PICTURE_MODE' | localize }}</span>
|
|
34081
|
+
@if (hasError) {
|
|
34082
|
+
<co-icon class="renderErrorIcon" [iconData]="iconService.getIcon(icons.TriangleExclamation)"
|
|
34083
|
+
[matTooltip]="'BLENDER_RENDER_ERROR' | localize"></co-icon>
|
|
34084
|
+
}
|
|
34085
|
+
</h3>
|
|
34086
|
+
<button
|
|
34087
|
+
class="close-popup-container"
|
|
34088
|
+
(click)="resetBlenderRenderScene()">
|
|
34089
|
+
<co-icon [iconData]="iconService.getIcon(icons.Cross)"></co-icon>
|
|
34090
|
+
</button>
|
|
34091
|
+
</div>
|
|
34092
|
+
<div class="render-popup-preview">
|
|
34093
|
+
@if (blenderPreviewRender) {
|
|
34094
|
+
<img [src]="blenderPreviewRender" alt="">
|
|
34095
|
+
}
|
|
34096
|
+
@if (!blenderPreviewRender) {
|
|
34097
|
+
<div class="render-popup-preview-placeholder">
|
|
34098
|
+
<span>{{ 'PREVIEW' | localize }}</span>
|
|
33980
34099
|
</div>
|
|
33981
|
-
|
|
33982
|
-
|
|
33983
|
-
|
|
33984
|
-
|
|
33985
|
-
|
|
33986
|
-
|
|
33987
|
-
|
|
33988
|
-
|
|
33989
|
-
|
|
33990
|
-
|
|
33991
|
-
|
|
33992
|
-
(click)="resetBlenderRenderScene()">
|
|
33993
|
-
<co-icon [iconData]="iconService.getIcon(icons.Cross)"></co-icon>
|
|
33994
|
-
</button>
|
|
33995
|
-
</div>
|
|
33996
|
-
<div class="render-popup-preview">
|
|
33997
|
-
@if (blenderPreviewRender) {
|
|
33998
|
-
<img [src]="blenderPreviewRender" alt="">
|
|
33999
|
-
}
|
|
34000
|
-
@if (!blenderPreviewRender) {
|
|
34001
|
-
<div class="render-popup-preview-placeholder">
|
|
34002
|
-
<span>{{ 'PREVIEW' | localize }}</span>
|
|
34003
|
-
</div>
|
|
34004
|
-
}
|
|
34005
|
-
<button class="render-popup-refresh-preview" (click)="createBlenderRender(true)">
|
|
34006
|
-
<co-icon [iconData]="iconService.getIcon(icons.RetryButton)"></co-icon>
|
|
34007
|
-
</button>
|
|
34008
|
-
</div>
|
|
34009
|
-
@if (renderService.blendFilesRender) {
|
|
34010
|
-
<div class="render-popup-dropdown">
|
|
34011
|
-
<div class="toggleable" (click)="toggleRenderSettings()">
|
|
34012
|
-
<p>
|
|
34013
|
-
@if (!showRenderSettings) {
|
|
34014
|
-
<span [textContent]="'RENDER_ADVANCED_SETTINGS_SHOW' | localize"></span>
|
|
34015
|
-
}
|
|
34016
|
-
@if (showRenderSettings) {
|
|
34017
|
-
<span [textContent]="'RENDER_ADVANCED_SETTINGS_HIDE' | localize"></span>
|
|
34018
|
-
}
|
|
34019
|
-
</p>
|
|
34020
|
-
<co-icon [ngClass]="{'icon-rotate': showRenderSettings}"
|
|
34021
|
-
[iconData]="iconService.getIcon(icons.ArrowPointDown)"></co-icon>
|
|
34022
|
-
</div>
|
|
34023
|
-
@if (showRenderSettings) {
|
|
34024
|
-
<div class="advanced-render-settings">
|
|
34025
|
-
<div class="setting-part-container">
|
|
34026
|
-
<mat-form-field
|
|
34027
|
-
class="face-select-form"
|
|
34028
|
-
>
|
|
34029
|
-
<mat-label>{{ "ENVIRONMENT" | localize }}</mat-label>
|
|
34030
|
-
<mat-select [(ngModel)]="selectedRenderScene" (selectionChange)="updateBlenderSceneSettings($event)">
|
|
34031
|
-
@for (scene of sceneList; track scene) {
|
|
34032
|
-
<mat-option
|
|
34033
|
-
[value]="scene">{{ scene.name }}
|
|
34034
|
-
</mat-option>
|
|
34035
|
-
}
|
|
34036
|
-
</mat-select>
|
|
34037
|
-
</mat-form-field>
|
|
34038
|
-
</div>
|
|
34039
|
-
<div class="setting-part-container">
|
|
34040
|
-
<mat-form-field class="third-width">
|
|
34041
|
-
<mat-label [textContent]="'ENVIRONMENT_LIGHT' | localize"></mat-label>
|
|
34042
|
-
<input
|
|
34043
|
-
[type]="'number'"
|
|
34044
|
-
matInput
|
|
34045
|
-
[(ngModel)]="hdriIntensity"
|
|
34046
|
-
(ngModelChange)="hdriIntensity = +$event">
|
|
34047
|
-
</mat-form-field>
|
|
34048
|
-
<div class="setting-part-buttons">
|
|
34049
|
-
<button class="amount-button" (click)="hdriIntensity = +hdriIntensity - 1">
|
|
34050
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
34051
|
-
</button>
|
|
34052
|
-
<button class="amount-button" (click)="hdriIntensity = +hdriIntensity + 1">
|
|
34053
|
-
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
34054
|
-
</button>
|
|
34055
|
-
</div>
|
|
34056
|
-
<div class="setting-part-slider">
|
|
34057
|
-
<mat-slider class="value" min="1" max="20" step="1" [(ngModel)]="hdriIntensity"></mat-slider>
|
|
34058
|
-
</div>
|
|
34059
|
-
</div>
|
|
34060
|
-
<div class="setting-part-container">
|
|
34061
|
-
<mat-form-field class="third-width">
|
|
34062
|
-
<mat-label [textContent]="'ROTATION' | localize"></mat-label>
|
|
34063
|
-
<input
|
|
34064
|
-
[type]="'number'"
|
|
34065
|
-
matInput
|
|
34066
|
-
[(ngModel)]="hdriRotation"
|
|
34067
|
-
(ngModelChange)="hdriRotation = +$event">
|
|
34068
|
-
</mat-form-field>
|
|
34069
|
-
<div class="setting-part-buttons">
|
|
34070
|
-
<button class="amount-button" (click)="hdriRotation = +hdriRotation - 1">
|
|
34071
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
34072
|
-
</button>
|
|
34073
|
-
<button class="amount-button" (click)="hdriRotation = +hdriRotation + 1">
|
|
34074
|
-
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
34075
|
-
</button>
|
|
34076
|
-
</div>
|
|
34077
|
-
<div class="setting-part-slider">
|
|
34078
|
-
<mat-slider class="value" min="0" max="360" step="1" [(ngModel)]="hdriRotation"></mat-slider>
|
|
34079
|
-
</div>
|
|
34080
|
-
</div>
|
|
34081
|
-
<div class="setting-part-container">
|
|
34082
|
-
<mat-form-field class="third-width">
|
|
34083
|
-
<mat-label [textContent]="'LIGHTS' | localize"></mat-label>
|
|
34084
|
-
<input
|
|
34085
|
-
[type]="'number'"
|
|
34086
|
-
matInput
|
|
34087
|
-
[(ngModel)]="lightingExposure"
|
|
34088
|
-
(ngModelChange)="lightingExposure = +$event">
|
|
34089
|
-
</mat-form-field>
|
|
34090
|
-
<div class="setting-part-buttons">
|
|
34091
|
-
<button class="amount-button" (click)="lightingExposure = +lightingExposure - 1">
|
|
34092
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleMinusLight)"></co-icon>
|
|
34093
|
-
</button>
|
|
34094
|
-
<button class="amount-button" (click)="lightingExposure = +lightingExposure + 1">
|
|
34095
|
-
<co-icon [iconData]="iconService.getIcon(icons.CirclePlusLight)"></co-icon>
|
|
34096
|
-
</button>
|
|
34097
|
-
</div>
|
|
34098
|
-
<div class="setting-part-slider">
|
|
34099
|
-
<mat-slider class="value" min="1" max="10" step="1" [(ngModel)]="lightingExposure"></mat-slider>
|
|
34100
|
-
</div>
|
|
34101
|
-
</div>
|
|
34102
|
-
</div>
|
|
34103
|
-
}
|
|
34104
|
-
</div>
|
|
34100
|
+
}
|
|
34101
|
+
<button class="render-popup-refresh-preview" (click)="createBlenderRender(true)">
|
|
34102
|
+
<co-icon [iconData]="iconService.getIcon(icons.RetryButton)"></co-icon>
|
|
34103
|
+
</button>
|
|
34104
|
+
</div>
|
|
34105
|
+
@if (renderService.blendFilesRender) {
|
|
34106
|
+
<div class="render-popup-dropdown">
|
|
34107
|
+
<div class="toggleable" (click)="toggleRenderSettings()">
|
|
34108
|
+
<p>
|
|
34109
|
+
@if (!showRenderSettings) {
|
|
34110
|
+
<span [textContent]="'RENDER_ADVANCED_SETTINGS_SHOW' | localize"></span>
|
|
34105
34111
|
}
|
|
34106
|
-
|
|
34107
|
-
|
|
34108
|
-
|
|
34109
|
-
|
|
34110
|
-
|
|
34111
|
-
|
|
34112
|
-
x{{ size.height }}
|
|
34113
|
-
</mat-option>
|
|
34114
|
-
}
|
|
34115
|
-
</mat-select>
|
|
34116
|
-
</mat-form-field>
|
|
34117
|
-
</div>
|
|
34118
|
-
<div class="render-popup-button-container">
|
|
34119
|
-
<button class="render-popup-button photo-button"
|
|
34120
|
-
(click)="createBlenderRender()"
|
|
34121
|
-
title="{{'MAKE_A_PICTURE' | localize}}"
|
|
34122
|
-
[disabled]="disablePictureButton">
|
|
34123
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleCheck)"></co-icon>
|
|
34124
|
-
{{ 'MAKE_A_PICTURE' | localize }}
|
|
34125
|
-
</button>
|
|
34126
|
-
<button
|
|
34127
|
-
class="render-popup-button cancel-button"
|
|
34128
|
-
(click)="resetBlenderRenderScene()">
|
|
34129
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
34130
|
-
{{ 'CLOSE_PHOTO_MODE' | localize }}
|
|
34131
|
-
</button>
|
|
34132
|
-
</div>
|
|
34112
|
+
@if (showRenderSettings) {
|
|
34113
|
+
<span [textContent]="'RENDER_ADVANCED_SETTINGS_HIDE' | localize"></span>
|
|
34114
|
+
}
|
|
34115
|
+
</p>
|
|
34116
|
+
<co-icon [ngClass]="{'icon-rotate': showRenderSettings}"
|
|
34117
|
+
[iconData]="iconService.getIcon(icons.ArrowPointDown)"></co-icon>
|
|
34133
34118
|
</div>
|
|
34134
|
-
|
|
34135
|
-
|
|
34136
|
-
|
|
34137
|
-
|
|
34138
|
-
|
|
34139
|
-
|
|
34140
|
-
|
|
34141
|
-
|
|
34142
|
-
|
|
34143
|
-
|
|
34144
|
-
|
|
34145
|
-
|
|
34146
|
-
|
|
34147
|
-
|
|
34148
|
-
|
|
34149
|
-
(click)="showCullingErrorDialog = false">
|
|
34150
|
-
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
34151
|
-
{{ 'CLOSE' | localize }}
|
|
34152
|
-
</button>
|
|
34119
|
+
@if (showRenderSettings) {
|
|
34120
|
+
<div class="advanced-render-settings">
|
|
34121
|
+
<div class="setting-part-container">
|
|
34122
|
+
<mat-form-field
|
|
34123
|
+
class="face-select-form"
|
|
34124
|
+
>
|
|
34125
|
+
<mat-label>{{ "ENVIRONMENT" | localize }}</mat-label>
|
|
34126
|
+
<mat-select [(ngModel)]="selectedRenderScene" (selectionChange)="updateBlenderSceneSettings($event)">
|
|
34127
|
+
@for (scene of sceneList; track scene) {
|
|
34128
|
+
<mat-option
|
|
34129
|
+
[value]="scene">{{ scene.name }}
|
|
34130
|
+
</mat-option>
|
|
34131
|
+
}
|
|
34132
|
+
</mat-select>
|
|
34133
|
+
</mat-form-field>
|
|
34153
34134
|
</div>
|
|
34154
|
-
|
|
34135
|
+
|
|
34136
|
+
<co-input-slider
|
|
34137
|
+
[label]="'ENVIRONMENT_LIGHT' | localize"
|
|
34138
|
+
[min]="1"
|
|
34139
|
+
[max]="20"
|
|
34140
|
+
[(value)]="hdriIntensity">
|
|
34141
|
+
</co-input-slider>
|
|
34142
|
+
|
|
34143
|
+
<co-input-slider
|
|
34144
|
+
[label]="'ROTATION' | localize"
|
|
34145
|
+
[min]="1"
|
|
34146
|
+
[max]="360"
|
|
34147
|
+
[(value)]="hdriRotation">
|
|
34148
|
+
</co-input-slider>
|
|
34149
|
+
|
|
34150
|
+
<co-input-slider
|
|
34151
|
+
[label]="'LIGHTS' | localize"
|
|
34152
|
+
[min]="1"
|
|
34153
|
+
[max]="10"
|
|
34154
|
+
[(value)]="lightingExposure">
|
|
34155
|
+
</co-input-slider>
|
|
34156
|
+
</div>
|
|
34157
|
+
}
|
|
34158
|
+
</div>
|
|
34155
34159
|
}
|
|
34156
|
-
<
|
|
34157
|
-
|
|
34158
|
-
|
|
34159
|
-
|
|
34160
|
-
|
|
34161
|
-
[
|
|
34162
|
-
|
|
34163
|
-
|
|
34164
|
-
|
|
34165
|
-
</mat-
|
|
34166
|
-
|
|
34167
|
-
|
|
34168
|
-
|
|
34160
|
+
<div class="render-popup-dropdown">
|
|
34161
|
+
<mat-form-field class="face-select-form">
|
|
34162
|
+
<mat-label>{{ "IMAGE_SIZE" | localize }}</mat-label>
|
|
34163
|
+
<mat-select [(value)]="selectedImageSize">
|
|
34164
|
+
@for (size of imageSizes; track size) {
|
|
34165
|
+
<mat-option [value]="size">{{ size.name }} {{ size.width }}
|
|
34166
|
+
x{{ size.height }}
|
|
34167
|
+
</mat-option>
|
|
34168
|
+
}
|
|
34169
|
+
</mat-select>
|
|
34170
|
+
</mat-form-field>
|
|
34171
|
+
</div>
|
|
34172
|
+
<div class="render-popup-button-container">
|
|
34173
|
+
<button class="render-popup-button photo-button"
|
|
34174
|
+
(click)="createBlenderRender()"
|
|
34175
|
+
title="{{'MAKE_A_PICTURE' | localize}}"
|
|
34176
|
+
[disabled]="disablePictureButton">
|
|
34177
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleCheck)"></co-icon>
|
|
34178
|
+
{{ 'MAKE_A_PICTURE' | localize }}
|
|
34179
|
+
</button>
|
|
34180
|
+
<button
|
|
34181
|
+
class="render-popup-button cancel-button"
|
|
34182
|
+
(click)="resetBlenderRenderScene()">
|
|
34183
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
34184
|
+
{{ 'CLOSE_PHOTO_MODE' | localize }}
|
|
34185
|
+
</button>
|
|
34186
|
+
</div>
|
|
34187
|
+
</div>
|
|
34188
|
+
}
|
|
34189
|
+
@if (showCullingErrorDialog) {
|
|
34190
|
+
<div class="render-warning">
|
|
34191
|
+
<div class="render-warming-header">
|
|
34192
|
+
<h2>{{ 'BLENDER_RENDER_ERROR_TITLE' | localize }}</h2>
|
|
34193
|
+
<div class="render-warning-close" (click)="showCullingErrorDialog = false">
|
|
34194
|
+
<mat-icon class="homedecorator-material-icons">cancel</mat-icon>
|
|
34195
|
+
</div>
|
|
34196
|
+
</div>
|
|
34197
|
+
<div class="render-warning-body">
|
|
34198
|
+
<p>{{ 'BLENDER_RENDER_WARNING_CULLING' | localize }}</p>
|
|
34199
|
+
</div>
|
|
34200
|
+
<div class="render-warning-footer">
|
|
34201
|
+
<button
|
|
34202
|
+
class="render-popup-button cancel-button"
|
|
34203
|
+
(click)="showCullingErrorDialog = false">
|
|
34204
|
+
<co-icon [iconData]="iconService.getIcon(icons.CircleXmark)"></co-icon>
|
|
34205
|
+
{{ 'CLOSE' | localize }}
|
|
34206
|
+
</button>
|
|
34207
|
+
</div>
|
|
34208
|
+
</div>
|
|
34209
|
+
}
|
|
34210
|
+
<button
|
|
34211
|
+
#renderButton
|
|
34212
|
+
mat-raised-button
|
|
34213
|
+
matTooltip="{{'RENDER_TAKE_A_PICTURE' | localize}}"
|
|
34214
|
+
[id]="'standalone_render_picture'"
|
|
34215
|
+
[class.active]="viewModeService.viewMode === viewModes.WalkThrough"
|
|
34216
|
+
(click)="showRenderForm($event)">
|
|
34217
|
+
<mat-icon class="icon homedecorator-material-icons"
|
|
34218
|
+
aria-hidden="true">{{ 'photo_camera' }}
|
|
34219
|
+
</mat-icon>
|
|
34220
|
+
</button>
|
|
34221
|
+
</div>
|
|
34222
|
+
`, standalone: false, styles: [".render-container{position:relative;min-width:375px}.render-container .render-popup-container{box-sizing:border-box;background:#ffffffb3;padding:10px 25px 25px;border-radius:5px;box-shadow:0 1px 5px #0000001f}.render-container .render-popup-container .render-popup-header{display:flex;justify-content:space-between;font-family:inherit}.render-container .render-popup-container .render-popup-header h3{display:flex;justify-content:space-between}.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon{width:20px;height:20px;margin-left:20px}.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon svg,.render-container .render-popup-container .render-popup-header h3 ::ng-deep .renderErrorIcon svg polygon{fill:#dc143c}.render-container .render-popup-container .render-popup-header .close-popup-container{cursor:pointer;border:none;background:none;float:none;height:auto;width:auto}.render-container .render-popup-container .render-popup-button-container{display:flex;justify-content:space-between;font-family:inherit}.render-container .render-popup-container .render-popup-button-container .render-popup-button{float:none;width:100%;max-width:130px;border-radius:3px;cursor:pointer;border:none;display:flex;height:40px;align-items:center;justify-content:space-evenly}.render-container .render-popup-container .render-popup-button-container .render-popup-button ::ng-deep co-icon{display:inline-block;height:18px;width:18px}.render-container .render-popup-container .render-popup-button-container .render-popup-button ::ng-deep co-icon svg path{fill:#fff}.render-container .render-popup-container .render-popup-button-container .photo-button{color:#fff;background-color:#dda73f}.render-container .render-popup-container .render-popup-button-container .cancel-button{color:#fff;background-color:#5b6875}.render-container .render-popup-container .render-popup-preview{background-color:#fff;min-height:150px;min-width:275px;margin:5px auto;position:relative;width:340px;height:150px}.render-container .render-popup-container .render-popup-preview .render-popup-preview-placeholder{background-color:#fff;display:flex;justify-content:space-around;align-items:center;vertical-align:middle;min-height:150px;border:1px solid #ddd;color:#ddd;font-size:14px}.render-container .render-popup-container .render-popup-preview .render-popup-refresh-preview{position:absolute;bottom:0;right:0;cursor:pointer;border-radius:0;border:none;height:30px;width:30px;background-color:#dda73f;color:#fff;margin:0}.render-container .render-popup-container .render-popup-preview .render-popup-refresh-preview ::ng-deep co-icon svg path{fill:#fff}.render-container .render-popup-container .render-popup-dropdown{margin:5px 0;width:100%}.render-container .render-popup-container .render-popup-dropdown .toggleable{cursor:pointer;display:flex;justify-content:right;align-content:center}.render-container .render-popup-container .render-popup-dropdown .toggleable p{padding:0;margin:0;font-size:12px;line-height:30px}.render-container .render-popup-container .render-popup-dropdown .toggleable .icon-rotate{transform:rotate(180deg)}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field{width:100%;font-size:14px}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-flex{background-color:#fff;color:#000;padding:3px 6px;border:1px solid #ddd}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-underline{display:none}.render-container .render-popup-container .render-popup-dropdown .mat-mdc-form-field ::ng-deep .mat-mdc-form-field-wrapper{padding-bottom:0}.render-container .render-progress{float:left;min-width:50px;border-radius:25px;line-height:50px;text-align:center;padding:0 60px 0 20px;background:#fff;color:#74b77f;font-weight:700;margin:0 -50px 0 0}.render-container .render-input-container{float:right}.render-container .render-input-container input{width:100px;height:24px;margin:5px 0;padding:0 10px;font-size:14px}.render-container button{pointer-events:all;width:50px;height:50px;float:right;border-radius:100%;position:relative;z-index:2;margin-bottom:10px}.render-container button.active{background:#74b77f;color:#fff}.render-container button>*{pointer-events:none}.render-indicators div{position:fixed;width:100px;height:100px}.render-indicators .render-indicator-top-left{left:5vw;top:10vh;border-left:10px solid #dda73f;border-top:10px solid #dda73f;border-top-left-radius:20px}.render-indicators .render-indicator-top-right{right:5vw;top:10vh;border-right:10px solid #dda73f;border-top:10px solid #dda73f;border-top-right-radius:20px}.render-indicators .render-indicator-bottom-left{left:5vw;bottom:5vh;border-left:10px solid #dda73f;border-bottom:10px solid #dda73f;border-bottom-left-radius:20px}.render-indicators .render-indicator-bottom-right{right:5vw;bottom:5vh;border-right:10px solid #dda73f;border-bottom:10px solid #dda73f;border-bottom-right-radius:20px}.render-warning{width:500px;position:fixed;top:20%;left:calc(50% - 250px);border-radius:15px;box-sizing:border-box;background-color:#fff;box-shadow:1px 0 20px #0000001f}.render-warning .render-warming-header{display:flex;justify-content:space-between;border-bottom:1px solid #c5c3c6;padding:20px 20px 10px;align-items:center}.render-warning .render-warming-header h2{padding:0;margin:0}.render-warning .render-warming-header .render-warning-close mat-icon{fill:#c5c3c6;color:#c5c3c6;cursor:pointer;transition:all .2s ease}.render-warning .render-warming-header .render-warning-close:hover mat-icon{fill:#46494c;color:#46494c}.render-warning .render-warning-body{padding:10px 20px}.render-warning .render-warning-footer{display:flex;justify-content:center;padding:0 20px 10px}.render-warning .render-warning-footer .render-popup-button{float:none;width:110px;border-radius:3px;cursor:pointer;border:none;display:flex;height:40px;align-items:center;justify-content:space-evenly;color:#fff;background-color:#5b6875}.render-warning .render-warning-footer .render-popup-button ::ng-deep co-icon{display:inline-block;height:18px;width:18px}.render-warning .render-warning-footer .render-popup-button ::ng-deep co-icon svg path{fill:#fff}\n"] }]
|
|
34169
34223
|
}], ctorParameters: () => [{ type: MessageBusService }, { type: ViewModeService }, { type: HomedecoratorSettingsService }, { type: HomedecoratorIconCacheService }, { type: RenderService }, { type: i1$2.MatDialog }, { type: SceneService }, { type: CameraService }, { type: ConfigurationService }, { type: HomedecoratorSettingsService }, { type: UtilsService }, { type: RoomService }, { type: WallMeasurementsService }, { type: ConnectionHeathService }, { type: HomedecoratorDictionaryService }, { type: DialogService }], propDecorators: { renderButton: [{
|
|
34170
34224
|
type: ViewChild,
|
|
34171
34225
|
args: ['renderButton']
|
|
@@ -41693,10 +41747,10 @@ class RoomPlannerComponent {
|
|
|
41693
41747
|
if (object.metadata) {
|
|
41694
41748
|
this.showContextMenu = false;
|
|
41695
41749
|
await this._connectorAdapterService.initConnector(object.metadata.externalSettings ? object.metadata.externalSettings.settings : this.settingsService.settings, object.metadata.externalSettings ? object.metadata.externalSettings.name : undefined, false, object.metadata.externalSettings && object.metadata.externalSettings.externalSourceId ? object.metadata.externalSettings.externalSourceId : null);
|
|
41696
|
-
const
|
|
41750
|
+
const article = await this._connectorService.addToCart(+object.metadata.goodId, object.metadata.goodType, 1, object.metadata.itemId, !!(object.metadata.externalSettings && object.metadata.externalSettings.externalSourceId));
|
|
41697
41751
|
if (object.metadata.externalSettings) {
|
|
41698
41752
|
const externalSource = {
|
|
41699
|
-
article:
|
|
41753
|
+
article: article,
|
|
41700
41754
|
quantity: 1,
|
|
41701
41755
|
catalogDefinition: object.metadata.externalSettings.catalogDefinition,
|
|
41702
41756
|
externalSource: this._connectorAdapterService.getExternalSourceFromId(object.metadata.externalSettings.externalSourceId)
|
|
@@ -41704,7 +41758,7 @@ class RoomPlannerComponent {
|
|
|
41704
41758
|
this._appEventService.addExternalSourceToCart.next(externalSource);
|
|
41705
41759
|
}
|
|
41706
41760
|
else {
|
|
41707
|
-
this._appEventService.addToCart.next({ article:
|
|
41761
|
+
this._appEventService.addToCart.next({ article: article, quantity: 1 });
|
|
41708
41762
|
}
|
|
41709
41763
|
}
|
|
41710
41764
|
}
|
|
@@ -50017,6 +50071,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
50017
50071
|
}]
|
|
50018
50072
|
}] });
|
|
50019
50073
|
|
|
50074
|
+
class InputSliderModule {
|
|
50075
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InputSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
50076
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: InputSliderModule, declarations: [InputSliderComponent], imports: [FormsModule,
|
|
50077
|
+
IconModule,
|
|
50078
|
+
InputTextModule,
|
|
50079
|
+
InputNumberPickerModule], exports: [InputSliderComponent] }); }
|
|
50080
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InputSliderModule, imports: [FormsModule,
|
|
50081
|
+
IconModule,
|
|
50082
|
+
InputTextModule,
|
|
50083
|
+
InputNumberPickerModule] }); }
|
|
50084
|
+
}
|
|
50085
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: InputSliderModule, decorators: [{
|
|
50086
|
+
type: NgModule,
|
|
50087
|
+
args: [{
|
|
50088
|
+
imports: [
|
|
50089
|
+
FormsModule,
|
|
50090
|
+
IconModule,
|
|
50091
|
+
InputTextModule,
|
|
50092
|
+
InputNumberPickerModule
|
|
50093
|
+
],
|
|
50094
|
+
exports: [
|
|
50095
|
+
InputSliderComponent
|
|
50096
|
+
],
|
|
50097
|
+
declarations: [
|
|
50098
|
+
InputSliderComponent
|
|
50099
|
+
]
|
|
50100
|
+
}]
|
|
50101
|
+
}] });
|
|
50102
|
+
|
|
50020
50103
|
class RenderModule {
|
|
50021
50104
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
50022
50105
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: RenderModule, declarations: [RenderControlsComponent,
|
|
@@ -50035,7 +50118,8 @@ class RenderModule {
|
|
|
50035
50118
|
IconModule,
|
|
50036
50119
|
MatSliderModule,
|
|
50037
50120
|
TooltipDirectiveModule,
|
|
50038
|
-
ProgressBarModule
|
|
50121
|
+
ProgressBarModule,
|
|
50122
|
+
InputSliderModule], exports: [RenderControlsComponent,
|
|
50039
50123
|
RenderProgressComponent] }); }
|
|
50040
50124
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderModule, providers: [
|
|
50041
50125
|
HomedecoratorIconCacheService
|
|
@@ -50054,7 +50138,8 @@ class RenderModule {
|
|
|
50054
50138
|
IconModule,
|
|
50055
50139
|
MatSliderModule,
|
|
50056
50140
|
TooltipDirectiveModule,
|
|
50057
|
-
ProgressBarModule
|
|
50141
|
+
ProgressBarModule,
|
|
50142
|
+
InputSliderModule] }); }
|
|
50058
50143
|
}
|
|
50059
50144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderModule, decorators: [{
|
|
50060
50145
|
type: NgModule,
|
|
@@ -50075,7 +50160,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
50075
50160
|
IconModule,
|
|
50076
50161
|
MatSliderModule,
|
|
50077
50162
|
TooltipDirectiveModule,
|
|
50078
|
-
ProgressBarModule
|
|
50163
|
+
ProgressBarModule,
|
|
50164
|
+
InputSliderModule
|
|
50079
50165
|
],
|
|
50080
50166
|
declarations: [
|
|
50081
50167
|
RenderControlsComponent,
|