@colijnit/homedecorator 262.1.3 → 262.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -98,7 +98,7 @@ import * as i3 from '@angular/material/button';
98
98
  import { MatButtonModule } from '@angular/material/button';
99
99
  import * as i3$1 from '@angular/forms';
100
100
  import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
101
- import * as i3$2 from '@angular/material/icon';
101
+ import * as i5 from '@angular/material/icon';
102
102
  import { MatIconModule, MatIcon } from '@angular/material/icon';
103
103
  import Delaunator from 'delaunator';
104
104
  import { VertexNormalsHelper } from 'three/examples/jsm/helpers/VertexNormalsHelper.js';
@@ -106,7 +106,7 @@ import { FileUtils as FileUtils$1 } from '@colijnit/mainapi/build/utils/file-uti
106
106
  import { trigger, state, style, transition, animate, query, animateChild } from '@angular/animations';
107
107
  import * as i2$2 from '@angular/common';
108
108
  import { CommonModule } from '@angular/common';
109
- import * as i5 from '@colijnit/corecomponents_v12';
109
+ import * as i5$1 from '@colijnit/corecomponents_v12';
110
110
  import { LoaderModule as LoaderModule$1, IconModule, TooltipDirectiveModule, ListOfValuesModule, ButtonModule, InputTextModule, ImageModule, CoreComponentsTranslationModule } from '@colijnit/corecomponents_v12';
111
111
  import * as i2$3 from '@angular/material/input';
112
112
  import { MatInputModule, MatFormField } from '@angular/material/input';
@@ -116,7 +116,7 @@ import * as i4 from '@angular/material/tooltip';
116
116
  import { MatTooltipModule } from '@angular/material/tooltip';
117
117
  import * as i1$4 from 'ngx-color/sketch';
118
118
  import { ColorSketchModule } from 'ngx-color/sketch';
119
- import * as i3$3 from '@angular/material/slider';
119
+ import * as i3$2 from '@angular/material/slider';
120
120
  import { MatSliderModule } from '@angular/material/slider';
121
121
  import * as dat from 'dat.gui';
122
122
  import * as i14 from '@angular/flex-layout/flex';
@@ -135,7 +135,7 @@ import { STLLoader } from 'three/examples/jsm/loaders/STLLoader.js';
135
135
  import * as i10$1 from '@angular/material/slide-toggle';
136
136
  import { MatSlideToggleModule, MatSlideToggle } from '@angular/material/slide-toggle';
137
137
  import * as i7$1 from '@angular/flex-layout/extended';
138
- import * as i3$4 from '@angular/material/grid-list';
138
+ import * as i3$3 from '@angular/material/grid-list';
139
139
  import { MatGridListModule } from '@angular/material/grid-list';
140
140
  import imageCompression from 'browser-image-compression';
141
141
  import * as i4$1 from '@angular/material/tabs';
@@ -146,7 +146,7 @@ import { jsPDF } from 'jspdf';
146
146
  import autoTable from 'jspdf-autotable';
147
147
  import * as i2$5 from '@angular/material/snack-bar';
148
148
  import { MatSnackBarModule } from '@angular/material/snack-bar';
149
- import * as i3$5 from '@angular/router';
149
+ import * as i3$4 from '@angular/router';
150
150
  import * as i27 from '@colijnit/configurator';
151
151
  import { ConfigurationResultObject, ProductConfiguratorModule, ConfiguratorModule, LiteSelectorModule } from '@colijnit/configurator';
152
152
  import * as i31$1 from '@angular/cdk/portal';
@@ -3448,6 +3448,8 @@ const roomColor = '#ffecc147'; // '#f9f9f9';
3448
3448
  const selectedRoomColor = '#f9f9f9'; // same as roomColor for now
3449
3449
  const roomPolygonOffset = -0.3; // negative is offset to the inside
3450
3450
  const cornerTolerance = 0.2;
3451
+ // two walls count as collinear when the angle at the shared corner is within this margin of 180°
3452
+ const collinearAngleTolerance = Math.PI / 180; // ~1 degree
3451
3453
  const defaultWallColor = 0xffffff;
3452
3454
  const defaultEdgeColor = 0xcccccc;
3453
3455
  // wall config
@@ -15359,14 +15361,50 @@ class WallService {
15359
15361
  if (!wall || !corner) {
15360
15362
  return;
15361
15363
  }
15362
- this.createNewWall(corner, wall.getEnd(), wall.height, wall.thickness);
15364
+ // Capture items + world position before the split: afterwards they must be
15365
+ // distributed across the correct wall segment (otherwise they all stay on the
15366
+ // shortened wall and shift along as its center moves).
15367
+ const itemWorldPositions = [];
15368
+ [...wall.items, ...wall.onItems].forEach((item) => {
15369
+ if (item instanceof WallItem) {
15370
+ const worldPosition = new Vector3();
15371
+ item.getWorldPosition(worldPosition);
15372
+ itemWorldPositions.push({ item, x: worldPosition.x, z: worldPosition.z });
15373
+ }
15374
+ });
15375
+ const newWall = this.createNewWall(corner, wall.getEnd(), wall.height, wall.thickness);
15363
15376
  const prevCorner = wall.getEnd();
15364
15377
  wall.setEnd(corner);
15378
+ // setEnd only swaps the corner reference; rebuild the 3D geometry of the shortened wall
15379
+ wall.cornerMoved();
15365
15380
  corner.removeDuplicateWalls();
15366
15381
  prevCorner.removeDuplicateWalls();
15382
+ // Re-place each item on the wall segment it falls on, at its original world position.
15383
+ itemWorldPositions.forEach(({ item, x, z }) => {
15384
+ const candidates = [wall, newWall].filter((w) => this.walls.indexOf(w) !== -1);
15385
+ if (candidates.length === 0) {
15386
+ return;
15387
+ }
15388
+ const target = candidates.length === 1 ? candidates[0] : this._closestWallForPoint(candidates, x, z);
15389
+ item.moveTo2dPosition(x, z, target);
15390
+ });
15367
15391
  this._updatePrevAndNextWalls();
15368
15392
  this._prepareOrphanWalls();
15369
15393
  }
15394
+ /** Picks the wall whose closest point (clamped to the segment) is nearest to (x, z). */
15395
+ _closestWallForPoint(walls, x, z) {
15396
+ let best = walls[0];
15397
+ let bestDistance = Number.POSITIVE_INFINITY;
15398
+ walls.forEach((w) => {
15399
+ const closest = w.closestPointTo(x, z);
15400
+ const distance = Utils$1.Distance(x, z, closest.x, closest.y);
15401
+ if (distance < bestDistance) {
15402
+ bestDistance = distance;
15403
+ best = w;
15404
+ }
15405
+ });
15406
+ return best;
15407
+ }
15370
15408
  updatePrevWall(wallId, prevWallId) {
15371
15409
  if (wallId && prevWallId) {
15372
15410
  const wall = this.walls.find(w => w.wallId === wallId);
@@ -15448,6 +15486,56 @@ class WallService {
15448
15486
  Utils$1.RemoveValue(this.walls, wall);
15449
15487
  wall.removeWall();
15450
15488
  }
15489
+ /** Merges two collinear walls around a degree-2 corner into a single wall. */
15490
+ joinCollinearWallsAt(corner) {
15491
+ const attached = [...corner.wallStarts, ...corner.wallEnds];
15492
+ if (attached.length !== 2) {
15493
+ return;
15494
+ }
15495
+ const keep = attached[0];
15496
+ const absorb = attached[1];
15497
+ const farKeep = keep.getStart() === corner ? keep.getEnd() : keep.getStart();
15498
+ const farAbsorb = absorb.getStart() === corner ? absorb.getEnd() : absorb.getStart();
15499
+ if (farKeep === farAbsorb) {
15500
+ return; // safety: degenerate case
15501
+ }
15502
+ if (!this._areCollinearThroughCorner(farKeep, corner, farAbsorb)) {
15503
+ return; // not in line with each other -> leave as is
15504
+ }
15505
+ // Capture the world position of all items on BOTH walls before the structural change.
15506
+ // Items already on 'keep' must be re-placed too: extending 'keep' shifts its center, so
15507
+ // their (fixed) local position would otherwise map to a different world position.
15508
+ const itemWorldPositions = [];
15509
+ [...keep.items, ...keep.onItems, ...absorb.items, ...absorb.onItems].forEach((item) => {
15510
+ if (item instanceof WallItem) {
15511
+ const worldPosition = new Vector3();
15512
+ item.getWorldPosition(worldPosition);
15513
+ itemWorldPositions.push({ item, x: worldPosition.x, z: worldPosition.z });
15514
+ }
15515
+ });
15516
+ // extend 'keep' so it spans from farKeep to farAbsorb
15517
+ if (keep.getEnd() === corner) {
15518
+ keep.setEnd(farAbsorb);
15519
+ }
15520
+ else {
15521
+ keep.setStart(farAbsorb);
15522
+ }
15523
+ // setStart/setEnd only swaps the corner reference; rebuild the 3D geometry and
15524
+ // transform for the new span (otherwise the old mesh stays in place).
15525
+ keep.cornerMoved();
15526
+ // Re-place each item on the merged wall at its original world position.
15527
+ // moveTo2dPosition sets currentWall to 'keep', detaches the item from 'absorb' and
15528
+ // bounds the position within the wall (doors/windows get their opening re-cut).
15529
+ itemWorldPositions.forEach(({ item, x, z }) => item.moveTo2dPosition(x, z, keep));
15530
+ this.removeWall(absorb); // also detaches from corner -> corner becomes orphan
15531
+ this._updatePrevAndNextWalls();
15532
+ this._prepareOrphanWalls();
15533
+ }
15534
+ /** True when the two walls are in line through 'corner' (angle ~180°). */
15535
+ _areCollinearThroughCorner(a, corner, b) {
15536
+ const angle = Utils$1.Angle(a.x - corner.x, a.y - corner.y, b.x - corner.x, b.y - corner.y);
15537
+ return Math.abs(Math.abs(angle) - Math.PI) < collinearAngleTolerance;
15538
+ }
15451
15539
  updateWallHeights(newHeight) {
15452
15540
  this.walls.forEach(wall => {
15453
15541
  wall.height = newHeight / 100;
@@ -18284,6 +18372,15 @@ class ItemService {
18284
18372
  }
18285
18373
  // todo: fix the any
18286
18374
  addItem(obj, addToScene = true) {
18375
+ // Wall-only custom shapes/cylinders live exclusively on their wall (wall.onItems) and are added to
18376
+ // the scene graph by placeOnWall() via Wall.addOnItem(). They must NOT also be tracked here: keeping
18377
+ // them in `items` double-lists them on save (getFurniture/getNonFurniture read items + wall.onItems)
18378
+ // and the scene.add() below would re-parent them off the wall, breaking their world position. They
18379
+ // are disposed together with their wall and surfaced for save/selection through wall.onItems.
18380
+ // (Detected via itemType rather than instanceof to avoid an item.service <-> wall-item-class import cycle.)
18381
+ if (obj && obj.metadata && (isCustomShapeWallType(obj.metadata.itemType) || isCustomCylinderWallType(obj.metadata.itemType))) {
18382
+ return;
18383
+ }
18287
18384
  this.items.push(obj);
18288
18385
  if (addToScene) {
18289
18386
  this._sceneService.addObject(obj);
@@ -18317,7 +18414,7 @@ class ItemService {
18317
18414
  getFurniture() {
18318
18415
  const allItems = this.items.concat(...this.items.map(i => {
18319
18416
  if (i instanceof Wall) {
18320
- return i.items.filter(wi => !wi.configurable).concat(i.onItems.filter(woi => !woi.configurable));
18417
+ return i.items.concat(i.onItems);
18321
18418
  }
18322
18419
  })).filter(i => i !== undefined);
18323
18420
  return allItems
@@ -19705,7 +19802,11 @@ class BluePrintFloorplanService extends BaseBluePrintService {
19705
19802
  return this.wallService.createWall(start, end, height, thickness);
19706
19803
  }
19707
19804
  removeWall(wall) {
19805
+ const corner1 = wall.getStart();
19806
+ const corner2 = wall.getEnd();
19708
19807
  this.roomService.removeWall(wall);
19808
+ this.wallService.joinCollinearWallsAt(corner1);
19809
+ this.wallService.joinCollinearWallsAt(corner2);
19709
19810
  this.cornerService.removeOrphanCorners();
19710
19811
  this.update();
19711
19812
  }
@@ -26968,7 +27069,7 @@ class DialogComponent {
26968
27069
  <button mat-raised-button color="primary" (click)="onConfirm()">{{ 'YES' | localize }}</button>
26969
27070
  </div>
26970
27071
  }
26971
- `, isInline: true, styles: [":host .title-wrapper{display:flex;flex-direction:row;align-items:center}:host .title-wrapper .mat-icon{margin-right:10px}:host .dialog-content{max-height:400px;overflow:auto}:host.info ::ng-deep .error-message:before{content:\"\"}\n"], dependencies: [{ kind: "component", type: ErrorMessageComponent, selector: "error-messages", inputs: ["messages"] }, { 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: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
27072
+ `, isInline: true, styles: [":host .title-wrapper{display:flex;flex-direction:row;align-items:center}:host .title-wrapper .mat-icon{margin-right:10px}:host .dialog-content{max-height:400px;overflow:auto}:host.info ::ng-deep .error-message:before{content:\"\"}\n"], dependencies: [{ kind: "component", type: ErrorMessageComponent, selector: "error-messages", inputs: ["messages"] }, { 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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
26972
27073
  }
26973
27074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DialogComponent, decorators: [{
26974
27075
  type: Component,
@@ -28352,7 +28453,7 @@ class UploadImageComponent {
28352
28453
  Upload Image
28353
28454
  </button>
28354
28455
  </div>
28355
- `, isInline: true, styles: [":host .file-select-button{display:inline-block;margin:8px;width:335px}\n"], dependencies: [{ 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: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
28456
+ `, isInline: true, styles: [":host .file-select-button{display:inline-block;margin:8px;width:335px}\n"], dependencies: [{ 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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
28356
28457
  }
28357
28458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: UploadImageComponent, decorators: [{
28358
28459
  type: Component,
@@ -30510,9 +30611,9 @@ class FloorplanRenderService {
30510
30611
  }
30511
30612
  this._clear();
30512
30613
  this._drawGrid();
30513
- // if (this.diagramBackground && this.showDiagramBackground) {
30514
- // this._drawBackground();
30515
- // }
30614
+ if (this.diagramBackground && this.showDiagramBackground) {
30615
+ this._drawBackground();
30616
+ }
30516
30617
  this._drawRooms();
30517
30618
  this._drawWallsWithNoRoom();
30518
30619
  if (this._state.showWallItemMeasurements && this._state.activeItem) {
@@ -30552,6 +30653,24 @@ class FloorplanRenderService {
30552
30653
  ContextUtils.DrawLine(context, 0, gridSpacing * y + offsetY, canvas.width, gridSpacing * y + offsetY, gridWidth, gridColor);
30553
30654
  }
30554
30655
  }
30656
+ _drawBackground() {
30657
+ const context = this._state.context;
30658
+ if (this.diagramBackgroundActiveZoom) {
30659
+ if (this.diagramBackgroundCurrentScale <= this._coordinatesService.viewScale) {
30660
+ this.diagramBackgroundWidth = this.diagramBackgroundWidth * this._coordinatesService.scalingFactor;
30661
+ this.diagramBackgroundHeight = this.diagramBackgroundHeight * this._coordinatesService.scalingFactor;
30662
+ }
30663
+ else {
30664
+ this.diagramBackgroundWidth = this.diagramBackgroundWidth * (1 / this._coordinatesService.scalingFactor);
30665
+ this.diagramBackgroundHeight = this.diagramBackgroundHeight * (1 / this._coordinatesService.scalingFactor);
30666
+ }
30667
+ this.diagramBackgroundActiveZoom = false;
30668
+ }
30669
+ this.diagramBackgroundCurrentScale = this._coordinatesService.viewScale;
30670
+ context.globalAlpha = this.diagramBackgroundAlpha;
30671
+ context.drawImage(this.diagramBackground, Math.abs(this._coordinatesService.originX) - (this.diagramBackgroundWidth * this.diagramBackgroundScale / 2), Math.abs(this._coordinatesService.originY) - (this.diagramBackgroundHeight * this.diagramBackgroundScale / 2), this.diagramBackgroundWidth * this.diagramBackgroundScale, this.diagramBackgroundHeight * this.diagramBackgroundScale);
30672
+ context.globalAlpha = 1;
30673
+ }
30555
30674
  _drawRooms() {
30556
30675
  const rooms = this._state.rooms;
30557
30676
  rooms.forEach(room => {
@@ -31423,7 +31542,7 @@ class HdLoaderComponent {
31423
31542
  this.show = false;
31424
31543
  }
31425
31544
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HdLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: HdLoaderComponent, isStandalone: false, selector: "rp-loader", inputs: { show: "show" }, host: { properties: { "class.show": "this.show" } }, ngImport: i0, template: "<div class=\"loader-wrapper\">\r\n <co-loader></co-loader>\r\n</div>\r\n", styles: [":host{-webkit-user-select:none;user-select:none;pointer-events:none}:host .loader-wrapper{z-index:1100;display:none;align-items:center;justify-content:center;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:100px;height:100px}:host .loader-wrapper svg{width:100%;height:100%}:host .loader-wrapper svg .ripple1{transform-origin:center;animation:ripple 1.5s infinite}:host .loader-wrapper svg .ripple2{transform-origin:center;animation:ripple 1.5s infinite .4s}:host.show .loader-wrapper{display:flex}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}\n"], dependencies: [{ kind: "component", type: i5.LoaderComponent, selector: "co-loader" }] }); }
31545
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: HdLoaderComponent, isStandalone: false, selector: "rp-loader", inputs: { show: "show" }, host: { properties: { "class.show": "this.show" } }, ngImport: i0, template: "<div class=\"loader-wrapper\">\r\n <co-loader></co-loader>\r\n</div>\r\n", styles: [":host{-webkit-user-select:none;user-select:none;pointer-events:none}:host .loader-wrapper{z-index:1100;display:none;align-items:center;justify-content:center;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:100px;height:100px}:host .loader-wrapper svg{width:100%;height:100%}:host .loader-wrapper svg .ripple1{transform-origin:center;animation:ripple 1.5s infinite}:host .loader-wrapper svg .ripple2{transform-origin:center;animation:ripple 1.5s infinite .4s}:host.show .loader-wrapper{display:flex}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}\n"], dependencies: [{ kind: "component", type: i5$1.LoaderComponent, selector: "co-loader" }] }); }
31427
31546
  }
31428
31547
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HdLoaderComponent, decorators: [{
31429
31548
  type: Component,
@@ -32148,7 +32267,7 @@ class SelectedChildMaterialTextureComponent {
32148
32267
  </div>
32149
32268
  }
32150
32269
  <input #inputFile [accept]="'image/*'" (change)="handleFileChange($event)" type="file" hidden/>
32151
- `, isInline: true, styles: [".map-title-wrapper{display:flex;flex-direction:row;justify-content:space-between;height:30px}.map-title-wrapper .map-title{display:flex;align-items:center;font-size:12px}.map-title-wrapper .map-title img{height:30px;width:30px}.map-title-wrapper .collapse-wrapper{display:flex;flex-direction:row;column-gap:10px}.map-title-wrapper .collapse-wrapper .collapse-handle.expanded{transition:all .2s}.map-title-wrapper .collapse-wrapper .collapse-handle.expanded .collapse-handle-icon{transform:rotate(180deg)}.map-title-wrapper img{height:30px;width:30px}.map-title-wrapper .color-image,.map-title-wrapper .no-image,.map-title-wrapper img{cursor:pointer;display:flex;height:30px;width:30px;border:1px solid;position:relative;border-radius:5px}.map-title-wrapper .no-image:before,.map-title-wrapper .no-image:after,.map-title-wrapper img:before,.map-title-wrapper img:after{content:\"\";position:absolute;width:42px;height:42px}.map-title-wrapper .no-image:after,.map-title-wrapper img:after{border-bottom:1px solid;transform:rotate(135deg);top:8px;left:9px}.map-title-wrapper .no-image:before,.map-title-wrapper img:before{border-top:1px solid;transform:rotate(45deg);top:8px;left:-21px}.map-content{display:grid;grid-template-areas:\"label value\";grid-template-columns:175px 1fr;margin-left:10px;font-size:12px}.map-content .label{grid-area:label;grid-row:auto;display:flex;align-items:center;border-bottom:1px solid #d3d3d3}.map-content .value{grid-area:value;grid-row:auto;display:flex;height:35px;align-items:center;border-bottom:1px solid #d3d3d3}.map-content .value>*{display:flex;flex-basis:auto;flex-grow:1;flex-shrink:1;width:100%}.map-content .no-image,.map-content img{height:50px;width:50px;border:1px solid}.large-image-viewer{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}.large-image-viewer .large-image-viewer-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-height:100vh;max-width:100vw}.large-image-viewer .large-image-viewer-content img{border:1px solid white}.large-image-viewer .large-image-viewer-content .large-image-viewer-close{cursor:pointer;position:absolute;top:0;right:0;background:#ffffff80}.child-material-color-picker{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000}\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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][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: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ColorPickerDialogComponent, selector: "color-picker-dialog", inputs: ["color"], outputs: ["colorSelected"] }], animations: [
32270
+ `, isInline: true, styles: [".map-title-wrapper{display:flex;flex-direction:row;justify-content:space-between;height:30px}.map-title-wrapper .map-title{display:flex;align-items:center;font-size:12px}.map-title-wrapper .map-title img{height:30px;width:30px}.map-title-wrapper .collapse-wrapper{display:flex;flex-direction:row;column-gap:10px}.map-title-wrapper .collapse-wrapper .collapse-handle.expanded{transition:all .2s}.map-title-wrapper .collapse-wrapper .collapse-handle.expanded .collapse-handle-icon{transform:rotate(180deg)}.map-title-wrapper img{height:30px;width:30px}.map-title-wrapper .color-image,.map-title-wrapper .no-image,.map-title-wrapper img{cursor:pointer;display:flex;height:30px;width:30px;border:1px solid;position:relative;border-radius:5px}.map-title-wrapper .no-image:before,.map-title-wrapper .no-image:after,.map-title-wrapper img:before,.map-title-wrapper img:after{content:\"\";position:absolute;width:42px;height:42px}.map-title-wrapper .no-image:after,.map-title-wrapper img:after{border-bottom:1px solid;transform:rotate(135deg);top:8px;left:9px}.map-title-wrapper .no-image:before,.map-title-wrapper img:before{border-top:1px solid;transform:rotate(45deg);top:8px;left:-21px}.map-content{display:grid;grid-template-areas:\"label value\";grid-template-columns:175px 1fr;margin-left:10px;font-size:12px}.map-content .label{grid-area:label;grid-row:auto;display:flex;align-items:center;border-bottom:1px solid #d3d3d3}.map-content .value{grid-area:value;grid-row:auto;display:flex;height:35px;align-items:center;border-bottom:1px solid #d3d3d3}.map-content .value>*{display:flex;flex-basis:auto;flex-grow:1;flex-shrink:1;width:100%}.map-content .no-image,.map-content img{height:50px;width:50px;border:1px solid}.large-image-viewer{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}.large-image-viewer .large-image-viewer-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-height:100vh;max-width:100vw}.large-image-viewer .large-image-viewer-content img{border:1px solid white}.large-image-viewer .large-image-viewer-content .large-image-viewer-close{cursor:pointer;position:absolute;top:0;right:0;background:#ffffff80}.child-material-color-picker{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000}\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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][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: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ColorPickerDialogComponent, selector: "color-picker-dialog", inputs: ["color"], outputs: ["colorSelected"] }], animations: [
32152
32271
  trigger('showHideMapContent', [
32153
32272
  state('void', style({ 'height': '0', opacity: 0 })),
32154
32273
  state('*', style({ 'height': '*', opacity: 1 })),
@@ -32910,7 +33029,7 @@ class SelectedChildMaterialComponent {
32910
33029
  </div>
32911
33030
  </div>
32912
33031
  }
32913
- `, isInline: true, styles: [".development-selected-child-material-wrapper{font-size:12px;position:fixed;right:0;top:65px;width:400px;height:100%;background:#fff;box-shadow:0 0 4px #01010180;z-index:10}.development-selected-child-material-wrapper .material-map-wrapper{padding:10px;height:calc(100% - 85px);overflow-y:auto;overflow-x:hidden}.development-selected-child-material-wrapper .selected-child-material-content{display:grid;grid-template-areas:\"label value\";grid-template-columns:175px 1fr}.development-selected-child-material-wrapper .title{font-size:14px;font-weight:700;margin-bottom:10px}.development-selected-child-material-wrapper .label{grid-area:label;grid-row:auto;display:flex;align-items:center;height:30px;border-bottom:1px solid #9bb0d0;background-color:#e4edf4}.development-selected-child-material-wrapper .value{grid-area:value;grid-row:auto;display:flex;align-items:center;height:30px;border-bottom:1px solid #9bb0d0;background-color:#e4edf4}\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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][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: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: SelectedChildMaterialTexturesComponent, selector: "selected-child-material-textures", inputs: ["material"], outputs: ["mapChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
33032
+ `, isInline: true, styles: [".development-selected-child-material-wrapper{font-size:12px;position:fixed;right:0;top:65px;width:400px;height:100%;background:#fff;box-shadow:0 0 4px #01010180;z-index:10}.development-selected-child-material-wrapper .material-map-wrapper{padding:10px;height:calc(100% - 85px);overflow-y:auto;overflow-x:hidden}.development-selected-child-material-wrapper .selected-child-material-content{display:grid;grid-template-areas:\"label value\";grid-template-columns:175px 1fr}.development-selected-child-material-wrapper .title{font-size:14px;font-weight:700;margin-bottom:10px}.development-selected-child-material-wrapper .label{grid-area:label;grid-row:auto;display:flex;align-items:center;height:30px;border-bottom:1px solid #9bb0d0;background-color:#e4edf4}.development-selected-child-material-wrapper .value{grid-area:value;grid-row:auto;display:flex;align-items:center;height:30px;border-bottom:1px solid #9bb0d0;background-color:#e4edf4}\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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][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: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: SelectedChildMaterialTexturesComponent, selector: "selected-child-material-textures", inputs: ["material"], outputs: ["mapChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
32914
33033
  }
32915
33034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedChildMaterialComponent, decorators: [{
32916
33035
  type: Component,
@@ -33467,7 +33586,7 @@ class ToolbarIconComponent {
33467
33586
  <co-icon [iconData]="iconService.getIcon(matIcon)"></co-icon>
33468
33587
  }
33469
33588
  </ng-template>
33470
- `, isInline: true, styles: [".toolbar-button{display:flex;width:30px;height:30px;justify-content:center;align-items:center;cursor:pointer}.toolbar-button co-icon ::ng-deep{width:20px;height:20px}.toolbar-button co-icon ::ng-deep svg{fill:#fff}.toolbar-button co-icon ::ng-deep [fill]{fill:#fff}.toolbar-button.disabled{cursor:default}.toolbar-button.disabled co-icon ::ng-deep svg{fill:#00000073}.toolbar-button.disabled co-icon ::ng-deep [fill]{fill:#00000073}.toolbar-button .toolbar-icon-label{padding-left:20px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33589
+ `, isInline: true, styles: [".toolbar-button{display:flex;width:30px;height:30px;justify-content:center;align-items:center;cursor:pointer}.toolbar-button co-icon ::ng-deep{width:20px;height:20px}.toolbar-button co-icon ::ng-deep svg{fill:#fff}.toolbar-button co-icon ::ng-deep [fill]{fill:#fff}.toolbar-button.disabled{cursor:default}.toolbar-button.disabled co-icon ::ng-deep svg{fill:#00000073}.toolbar-button.disabled co-icon ::ng-deep [fill]{fill:#00000073}.toolbar-button .toolbar-icon-label{padding-left:20px}\n"], dependencies: [{ kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33471
33590
  }
33472
33591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ToolbarIconComponent, decorators: [{
33473
33592
  type: Component,
@@ -34064,7 +34183,7 @@ class RenderControlsComponent {
34064
34183
  </mat-icon>
34065
34184
  </button>
34066
34185
  </div>
34067
- `, 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.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i2$3.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: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.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: i3$3.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" }] }); }
34186
+ `, 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.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i2$3.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.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$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: i3$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" }] }); }
34068
34187
  }
34069
34188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RenderControlsComponent, decorators: [{
34070
34189
  type: Component,
@@ -34588,7 +34707,7 @@ class SliderInputComponent {
34588
34707
  this.onChange = new EventEmitter();
34589
34708
  }
34590
34709
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34591
- 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 type=\"number\"\r\n [min]=\"min\"\r\n [max]=\"max\"\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: i2$3.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: i3$3.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$3.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "directive", type: i14.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: i14.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: i14.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"] }] }); }
34710
+ 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 type=\"number\"\r\n [min]=\"min\"\r\n [max]=\"max\"\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: i2$3.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: i3$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$2.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "directive", type: i14.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: i14.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: i14.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"] }] }); }
34592
34711
  }
34593
34712
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SliderInputComponent, decorators: [{
34594
34713
  type: Component,
@@ -34787,7 +34906,7 @@ class EditLightComponent {
34787
34906
  this._helper = undefined;
34788
34907
  }
34789
34908
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EditLightComponent, deps: [{ token: SceneService }, { token: LightsService }], target: i0.ɵɵFactoryTarget.Component }); }
34790
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EditLightComponent, isStandalone: false, selector: "edit-light", inputs: { light: "light" }, outputs: { okClick: "okClick", cancelClick: "cancelClick" }, host: { listeners: { "document:mousemove": "moveDialog($event)", "document:mouseup": "cancelMoveDialog($event)" } }, viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"edit-popup\" #dialog @showHideDialog [style.top.px]=\"top\" [style.left.px]=\"left\">\r\n <div class=\"title-bar\">\r\n <div class=\"title-bar-move\" (mousedown)=\"handleTitleMouseMove($event)\">\r\n <div class=\"title-description\" [textContent]=\"'EDIT' | localize\"></div>\r\n </div>\r\n <button mat-icon-button class=\"hide-dialog\" (click)=\"hidePopup()\">\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"edit-popup-wrapper\">\r\n <mat-form-field class=\"full-width\">\r\n <mat-label [textContent]=\"'NAME' | localize\"></mat-label>\r\n <input matInput [(ngModel)]=\"light.name\">\r\n </mat-form-field>\r\n <div class=\"key-value-grid\">\r\n <span class=\"key\" [textContent]=\"'VISIBLE' | localize\"></span>\r\n <mat-checkbox class=\"value\" [(ngModel)]=\"light.visible\" (ngModelChange)=\"render()\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n\r\n @if (light.type === 'DirectionalLight') {\r\n <span class=\"key\" [textContent]=\"'TOP-DOWN-DIRECTIONAL' | localize\"></span>\r\n <mat-checkbox class=\"value\" [(ngModel)]=\"light.userData.topDownDirectional\" (ngModelChange)=\"this.updateOffsets(light)\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n }\r\n\r\n @if (hasPosition && !light.userData.topDownDirectional) {\r\n <span class=\"key\" [textContent]=\"'WALL-OFFSET'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.userData.wallOffset\" (ngModelChange)=\"this.updateOffsets(light)\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.userData.wallOffset\" (ngModelChange)=\"render()\">\r\n <span class=\"key\" [textContent]=\"'ROTATION-OFFSET'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"359\" step=\"1\" [(ngModel)]=\"light.userData.rotationOffset\" (ngModelChange)=\"this.updateOffsets(light)\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.userData.rotationOffset\" (ngModelChange)=\"render()\">\r\n <span class=\"key\" [textContent]=\"'Y'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.position.y\" (ngModelChange)=\"render()\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.position.y\" (ngModelChange)=\"render()\">\r\n }\r\n\r\n @if (light.hasOwnProperty('color')) {\r\n <span class=\"key\" [textContent]=\"'COLOR' | localize\"></span>\r\n <input class=\"value\" type=\"color\" matInput [ngModel]=\"lightColor\" (ngModelChange)=\"changeLightColor($event)\">\r\n <span class=\"value-readonly\" [textContent]=\"lightColor\"></span>\r\n }\r\n @if (light.hasOwnProperty('groundColor')) {\r\n <span class=\"key\" [textContent]=\"'GROUND_COLOR' | localize\"></span>\r\n <input class=\"value\" type=\"color\" matInput [ngModel]=\"lightGroundColor\" (ngModelChange)=\"changeGroundLightColor($event)\">\r\n <span class=\"value-readonly\" [textContent]=\"lightGroundColor\"></span>\r\n }\r\n\r\n @if (light.hasOwnProperty('intensity')) {\r\n <span class=\"key\" [textContent]=\"'INTENSITY' | localize\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.intensity\" (ngModelChange)=\"render()\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.intensity\" (ngModelChange)=\"render()\">\r\n }\r\n\r\n <!-- <ng-container *ngIf=\"light.hasOwnProperty('angle')\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'ANGLE' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.angle\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.angle\" (ngModelChange)=\"render()\">-->\r\n <!-- </ng-container>-->\r\n\r\n <!-- <ng-container *ngIf=\"light.hasOwnProperty('power')\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'POWER' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.power\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.power\" (ngModelChange)=\"render()\">-->\r\n <!-- </ng-container>-->\r\n\r\n <!-- <ng-container *ngIf=\"light.hasOwnProperty('decay')\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'DECAY' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"4\" step=\"0.001\" [(ngModel)]=\"light.decay\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.decay\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('distance')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'DISTANCE' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.distance\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.distance\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('penumbra')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'PENUMBRA' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"1\" step=\"0.01\" [(ngModel)]=\"light.penumbra\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.penumbra\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('bias')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'BIAS' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.bias\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.bias\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('radius')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'RADIUS' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.radius\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"!light.radius ? 0 : light.radius\" [(ngModel)]=\"light.radius\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n@if (light.hasOwnProperty('castShadow')) {\r\n <span class=\"key\" [textContent]=\"'CAST_SHADOW' | localize\"></span>\r\n <mat-checkbox class=\"value\" [(ngModel)]=\"light.castShadow\" (ngModelChange)=\"render()\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n}\r\n\r\n@if (light.hasOwnProperty('shadow')) {\r\n <span class=\"key\" [textContent]=\"'NEAR' | localize\"></span>\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.shadow.near\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"light.shadow.near\" [(ngModel)]=\"light.shadow.near\" (ngModelChange)=\"render()\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'FAR' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.shadow.far\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"light.shadow.far\" [(ngModel)]=\"light.shadow.far\" (ngModelChange)=\"render()\">-->\r\n <span class=\"key\" [textContent]=\"'SHADOW_MAPSIZE' | localize\"></span>\r\n <mat-select class=\"dropdown-container\" [value]=\"light.shadow.mapSize.x\">\r\n @for (mapSize of mapSizes; track mapSize) {\r\n <mat-option [value]=\"mapSize\" (click)=\"updateShadowMapSize(mapSize)\">\r\n {{ mapSize }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <span class=\"value-readonly\"></span>\r\n <span class=\"key\" [textContent]=\"'SHADOW_MAP_RADIUS' | localize\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"5\" step=\"0.1\" [(ngModel)]=\"light.shadow.radius\" (ngModelChange)=\"updateShadowMap()\"></mat-slider>\r\n <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"light.shadow.radius\" [(ngModel)]=\"light.shadow.radius\" (ngModelChange)=\"updateShadowMap()\">\r\n}\r\n\r\n@if (hasHelper) {\r\n <span class=\"key\" [textContent]=\"'HELPER' | localize\"></span>\r\n <mat-checkbox class=\"value\" [ngModel]=\"lightHelper\" (ngModelChange)=\"showHideHelper($event)\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n}\r\n</div>\r\n</div>\r\n<div class=\"button-wrapper\">\r\n <button mat-button class=\"custom-button\" (click)=\"cancel()\">\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">cancel</mat-icon>\r\n {{ 'CANCEL' | localize}}\r\n </button>\r\n <button mat-button class=\"custom-button\" (click)=\"save()\">\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">save</mat-icon>\r\n {{ 'SAVE' | localize}}\r\n </button>\r\n</div>\r\n</div>\r\n", styles: [":host .edit-wrapper{display:flex;flex-direction:row;align-items:center}:host .custom-button{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .edit-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;background:#fff;min-height:400px;min-width:500px;display:flex;flex-direction:column;z-index:905}:host .edit-popup .title-bar{display:flex;justify-content:space-between;background:#3760a1;color:#fff;padding-left:10px}:host .edit-popup .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .edit-popup .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .edit-popup .title-bar mat-icon{color:#fff}:host .edit-popup .edit-popup-wrapper{padding:15px;font-size:14px;overflow-y:auto}:host .edit-popup .button-wrapper{display:flex;align-items:center;justify-content:flex-end;height:60px;padding:10px;bottom:0;right:0}:host .edit-popup .button-wrapper .custom-button:not(last-child){margin-right:10px}:host .edit-popup .full-width{width:100%}:host .edit-popup .key-value-grid{display:grid;grid-template-columns:30% 60% 10%;grid-auto-rows:30px}:host .edit-popup .key-value-grid .key,:host .edit-popup .key-value-grid .value,:host .edit-popup .key-value-grid .value-readonly{align-self:center}:host .edit-popup .key-value-grid mat-slider{height:30px}:host .edit-popup .key-value-grid ::ng-deep .mat-slider-horizontal .mat-slider-wrapper{top:50%}:host .dropdown-container{display:flex;flex-direction:column;justify-content:center}\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$3.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: 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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3$3.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
34909
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EditLightComponent, isStandalone: false, selector: "edit-light", inputs: { light: "light" }, outputs: { okClick: "okClick", cancelClick: "cancelClick" }, host: { listeners: { "document:mousemove": "moveDialog($event)", "document:mouseup": "cancelMoveDialog($event)" } }, viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"edit-popup\" #dialog @showHideDialog [style.top.px]=\"top\" [style.left.px]=\"left\">\r\n <div class=\"title-bar\">\r\n <div class=\"title-bar-move\" (mousedown)=\"handleTitleMouseMove($event)\">\r\n <div class=\"title-description\" [textContent]=\"'EDIT' | localize\"></div>\r\n </div>\r\n <button mat-icon-button class=\"hide-dialog\" (click)=\"hidePopup()\">\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"edit-popup-wrapper\">\r\n <mat-form-field class=\"full-width\">\r\n <mat-label [textContent]=\"'NAME' | localize\"></mat-label>\r\n <input matInput [(ngModel)]=\"light.name\">\r\n </mat-form-field>\r\n <div class=\"key-value-grid\">\r\n <span class=\"key\" [textContent]=\"'VISIBLE' | localize\"></span>\r\n <mat-checkbox class=\"value\" [(ngModel)]=\"light.visible\" (ngModelChange)=\"render()\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n\r\n @if (light.type === 'DirectionalLight') {\r\n <span class=\"key\" [textContent]=\"'TOP-DOWN-DIRECTIONAL' | localize\"></span>\r\n <mat-checkbox class=\"value\" [(ngModel)]=\"light.userData.topDownDirectional\" (ngModelChange)=\"this.updateOffsets(light)\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n }\r\n\r\n @if (hasPosition && !light.userData.topDownDirectional) {\r\n <span class=\"key\" [textContent]=\"'WALL-OFFSET'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.userData.wallOffset\" (ngModelChange)=\"this.updateOffsets(light)\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.userData.wallOffset\" (ngModelChange)=\"render()\">\r\n <span class=\"key\" [textContent]=\"'ROTATION-OFFSET'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"359\" step=\"1\" [(ngModel)]=\"light.userData.rotationOffset\" (ngModelChange)=\"this.updateOffsets(light)\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.userData.rotationOffset\" (ngModelChange)=\"render()\">\r\n <span class=\"key\" [textContent]=\"'Y'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.position.y\" (ngModelChange)=\"render()\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.position.y\" (ngModelChange)=\"render()\">\r\n }\r\n\r\n @if (light.hasOwnProperty('color')) {\r\n <span class=\"key\" [textContent]=\"'COLOR' | localize\"></span>\r\n <input class=\"value\" type=\"color\" matInput [ngModel]=\"lightColor\" (ngModelChange)=\"changeLightColor($event)\">\r\n <span class=\"value-readonly\" [textContent]=\"lightColor\"></span>\r\n }\r\n @if (light.hasOwnProperty('groundColor')) {\r\n <span class=\"key\" [textContent]=\"'GROUND_COLOR' | localize\"></span>\r\n <input class=\"value\" type=\"color\" matInput [ngModel]=\"lightGroundColor\" (ngModelChange)=\"changeGroundLightColor($event)\">\r\n <span class=\"value-readonly\" [textContent]=\"lightGroundColor\"></span>\r\n }\r\n\r\n @if (light.hasOwnProperty('intensity')) {\r\n <span class=\"key\" [textContent]=\"'INTENSITY' | localize\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.intensity\" (ngModelChange)=\"render()\"></mat-slider>\r\n <input matInput type=\"number\" [(ngModel)]=\"light.intensity\" (ngModelChange)=\"render()\">\r\n }\r\n\r\n <!-- <ng-container *ngIf=\"light.hasOwnProperty('angle')\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'ANGLE' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.angle\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.angle\" (ngModelChange)=\"render()\">-->\r\n <!-- </ng-container>-->\r\n\r\n <!-- <ng-container *ngIf=\"light.hasOwnProperty('power')\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'POWER' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.power\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.power\" (ngModelChange)=\"render()\">-->\r\n <!-- </ng-container>-->\r\n\r\n <!-- <ng-container *ngIf=\"light.hasOwnProperty('decay')\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'DECAY' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"4\" step=\"0.001\" [(ngModel)]=\"light.decay\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.decay\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('distance')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'DISTANCE' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.distance\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.distance\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('penumbra')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'PENUMBRA' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"1\" step=\"0.01\" [(ngModel)]=\"light.penumbra\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.penumbra\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('bias')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'BIAS' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.bias\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [(ngModel)]=\"light.bias\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n<!-- <ng-container *ngIf=\"light.hasOwnProperty('radius')\">-->\r\n<!-- <span class=\"key\" [textContent]=\"'RADIUS' | localize\"></span>-->\r\n<!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"20\" step=\"0.01\" [(ngModel)]=\"light.radius\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n<!-- <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"!light.radius ? 0 : light.radius\" [(ngModel)]=\"light.radius\" (ngModelChange)=\"render()\">-->\r\n<!-- </ng-container>-->\r\n\r\n@if (light.hasOwnProperty('castShadow')) {\r\n <span class=\"key\" [textContent]=\"'CAST_SHADOW' | localize\"></span>\r\n <mat-checkbox class=\"value\" [(ngModel)]=\"light.castShadow\" (ngModelChange)=\"render()\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n}\r\n\r\n@if (light.hasOwnProperty('shadow')) {\r\n <span class=\"key\" [textContent]=\"'NEAR' | localize\"></span>\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.shadow.near\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"light.shadow.near\" [(ngModel)]=\"light.shadow.near\" (ngModelChange)=\"render()\">-->\r\n <!-- <span class=\"key\" [textContent]=\"'FAR' | localize\"></span>-->\r\n <!-- <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"50\" step=\"1\" [(ngModel)]=\"light.shadow.far\" (ngModelChange)=\"render()\"></mat-slider>-->\r\n <!-- <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"light.shadow.far\" [(ngModel)]=\"light.shadow.far\" (ngModelChange)=\"render()\">-->\r\n <span class=\"key\" [textContent]=\"'SHADOW_MAPSIZE' | localize\"></span>\r\n <mat-select class=\"dropdown-container\" [value]=\"light.shadow.mapSize.x\">\r\n @for (mapSize of mapSizes; track mapSize) {\r\n <mat-option [value]=\"mapSize\" (click)=\"updateShadowMapSize(mapSize)\">\r\n {{ mapSize }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <span class=\"value-readonly\"></span>\r\n <span class=\"key\" [textContent]=\"'SHADOW_MAP_RADIUS' | localize\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"0\" max=\"5\" step=\"0.1\" [(ngModel)]=\"light.shadow.radius\" (ngModelChange)=\"updateShadowMap()\"></mat-slider>\r\n <input matInput type=\"number\" [placeholder]=\"0\" [value]=\"light.shadow.radius\" [(ngModel)]=\"light.shadow.radius\" (ngModelChange)=\"updateShadowMap()\">\r\n}\r\n\r\n@if (hasHelper) {\r\n <span class=\"key\" [textContent]=\"'HELPER' | localize\"></span>\r\n <mat-checkbox class=\"value\" [ngModel]=\"lightHelper\" (ngModelChange)=\"showHideHelper($event)\"></mat-checkbox>\r\n <span class=\"value-readonly\"></span>\r\n}\r\n</div>\r\n</div>\r\n<div class=\"button-wrapper\">\r\n <button mat-button class=\"custom-button\" (click)=\"cancel()\">\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">cancel</mat-icon>\r\n {{ 'CANCEL' | localize}}\r\n </button>\r\n <button mat-button class=\"custom-button\" (click)=\"save()\">\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">save</mat-icon>\r\n {{ 'SAVE' | localize}}\r\n </button>\r\n</div>\r\n</div>\r\n", styles: [":host .edit-wrapper{display:flex;flex-direction:row;align-items:center}:host .custom-button{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .edit-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;background:#fff;min-height:400px;min-width:500px;display:flex;flex-direction:column;z-index:905}:host .edit-popup .title-bar{display:flex;justify-content:space-between;background:#3760a1;color:#fff;padding-left:10px}:host .edit-popup .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .edit-popup .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .edit-popup .title-bar mat-icon{color:#fff}:host .edit-popup .edit-popup-wrapper{padding:15px;font-size:14px;overflow-y:auto}:host .edit-popup .button-wrapper{display:flex;align-items:center;justify-content:flex-end;height:60px;padding:10px;bottom:0;right:0}:host .edit-popup .button-wrapper .custom-button:not(last-child){margin-right:10px}:host .edit-popup .full-width{width:100%}:host .edit-popup .key-value-grid{display:grid;grid-template-columns:30% 60% 10%;grid-auto-rows:30px}:host .edit-popup .key-value-grid .key,:host .edit-popup .key-value-grid .value,:host .edit-popup .key-value-grid .value-readonly{align-self:center}:host .edit-popup .key-value-grid mat-slider{height:30px}:host .edit-popup .key-value-grid ::ng-deep .mat-slider-horizontal .mat-slider-wrapper{top:50%}:host .dropdown-container{display:flex;flex-direction:column;justify-content:center}\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$3.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: 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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
34791
34910
  trigger('showHideDialog', [
34792
34911
  state('void', style({ opacity: 0 })),
34793
34912
  state('*', style({ opacity: 1 })),
@@ -34871,156 +34990,156 @@ class EditLightplanComponent {
34871
34990
  }
34872
34991
  }
34873
34992
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EditLightplanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34874
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EditLightplanComponent, isStandalone: false, selector: "edit-lightplan", inputs: { lightPreset: "lightPreset" }, outputs: { saveClick: "saveClick", cancelClick: "cancelClick" }, ngImport: i0, template: `
34875
- <div class="edit-popup">
34876
- <div class="title-bar">
34877
- <div class="title-description" [textContent]="'EDIT' | localize"></div>
34878
- </div>
34879
- <div class="edit-popup-wrapper">
34880
- <mat-form-field class="full-width">
34881
- <mat-label [textContent]="'NAME' | localize"></mat-label>
34882
- <input matInput [(ngModel)]="lightPresetClone.name">
34883
- </mat-form-field>
34884
- <mat-form-field class="full-width">
34885
- <mat-label [textContent]="'GROUP' | localize"></mat-label>
34886
- <input matInput [(ngModel)]="lightPresetClone.group">
34887
- </mat-form-field>
34888
- <div class="key-value-grid">
34889
- <span class="key" [textContent]="'NAVIGATOR_TYPE' | localize"></span>
34890
- <mat-select class="dropdown-container" [value]="lightPresetClone.navigatorType" (keydown)="handleSelectKeyDown($event, 'navigatorType')">
34891
- @for (navigatorType of navigatorTypes | keys; track navigatorType) {
34892
- <mat-option [value]="navigatorType.key" (click)="lightPresetClone.navigatorType = navigatorType.value">
34893
- {{ navigatorType.key }}
34894
- </mat-option>
34895
- }
34896
- </mat-select>
34897
- <span class="value-readonly"></span>
34898
-
34899
- <span class="key" [textContent]="'SHADOW_MAP_TYPE' | localize"></span>
34900
- <mat-select class="dropdown-container" [value]="lightPresetClone.shadowMapType">
34901
- @for (mapType of shadowMapTypes | keys; track mapType) {
34902
- <mat-option [value]="mapType.key" (click)="lightPresetClone.shadowMapType = mapType.value">
34903
- {{ mapType.key }}
34904
- </mat-option>
34905
- }
34906
- </mat-select>
34907
- <span class="value-readonly"></span>
34908
-
34909
- <span class="key" [textContent]="'OUTPUT_ENCODING' | localize"></span>
34910
- <mat-select class="dropdown-container" [value]="lightPresetClone.outputEncoding">
34911
- @for (encoding of encodings | keys; track encoding) {
34912
- <mat-option [value]="encoding.key" (click)="lightPresetClone.outputEncoding = encoding.value">
34913
- {{ encoding.key }}
34914
- </mat-option>
34915
- }
34916
- </mat-select>
34917
- <span class="value-readonly"></span>
34918
-
34919
- <span class="key" [textContent]="'TONE_MAPPING_EXPOSURE' | localize"></span>
34920
- <mat-slider class="value" thumbLabel min="0" max="3" step="0.1" [(ngModel)]="lightPresetClone.toneMappingExposure"><input matSliderThumb [value]="lightPresetClone.toneMappingExposure" /></mat-slider>
34921
- <input matInput type="number" [step]="0.1" [placeholder]="1" [value]="lightPresetClone.toneMappingExposure" [(ngModel)]="lightPresetClone.toneMappingExposure">
34922
-
34923
- <span class="key" [textContent]="'PHYSICALLY_CORRECT_LIGHTS' | localize"></span>
34924
- <mat-checkbox class="value" [(ngModel)]="lightPresetClone.physicallyCorrectLights"></mat-checkbox>
34925
- <span class="value-readonly"></span>
34926
-
34927
- <span class="key" [textContent]="'DEFAULT' | localize"></span>
34928
- <mat-checkbox class="value" [(ngModel)]="lightPresetClone.default"></mat-checkbox>
34929
- <span class="value-readonly"></span>
34930
-
34931
- <span class="key" [textContent]="'STANDALONE' | localize"></span>
34932
- <mat-checkbox class="value" [(ngModel)]="lightPresetClone.standalone"></mat-checkbox>
34933
- <span class="value-readonly"></span>
34934
- </div>
34935
- </div>
34936
- <div class="button-wrapper">
34937
- <button mat-button class="custom-button" (click)="cancel()">
34938
- <mat-icon class="homedecorator-material-icons" aria-hidden="true">cancel</mat-icon>
34939
- {{ 'CANCEL' | localize}}
34940
- </button>
34941
- <button mat-button class="custom-button" (click)="save()">
34942
- <mat-icon class="homedecorator-material-icons" aria-hidden="true">save</mat-icon>
34943
- {{ 'SAVE' | localize}}
34944
- </button>
34945
- </div>
34946
- </div>
34947
- `, isInline: true, styles: [":host .edit-wrapper{display:flex;flex-direction:row;align-items:center}:host .custom-button{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .edit-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;background:#fff;display:flex;flex-direction:column;z-index:905}:host .edit-popup .title-bar{display:flex;justify-content:space-between;align-items:center;height:40px;background:#3760a1;color:#fff;padding-left:10px}:host .edit-popup .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .edit-popup .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .edit-popup .title-bar mat-icon{color:#fff}:host .edit-popup .edit-popup-wrapper{padding:10px;font-size:12px;overflow-y:auto}:host .edit-popup .button-wrapper{display:flex;align-items:center;justify-content:flex-end;height:60px;padding:10px;bottom:0;right:0}:host .edit-popup .button-wrapper .custom-button:not(last-child){margin-right:10px}:host .edit-popup .full-width{width:100%}:host .edit-popup .key-value-grid{display:grid;grid-template-columns:40% 50% 10%;grid-auto-rows:30px}:host .edit-popup .key-value-grid .key,:host .edit-popup .key-value-grid .value,:host .edit-popup .key-value-grid .value-readonly{align-self:center}:host .edit-popup .key-value-grid mat-slider{height:30px}:host .edit-popup .key-value-grid ::ng-deep .mat-slider-horizontal .mat-slider-wrapper{top:50%}:host .dropdown-container{display:flex;flex-direction:column;justify-content:center}\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$3.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: 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: "component", type: i1$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3$3.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$3.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: KeysPipe, name: "keys" }] }); }
34993
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EditLightplanComponent, isStandalone: false, selector: "edit-lightplan", inputs: { lightPreset: "lightPreset" }, outputs: { saveClick: "saveClick", cancelClick: "cancelClick" }, ngImport: i0, template: `
34994
+ <div class="edit-popup">
34995
+ <div class="title-bar">
34996
+ <div class="title-description" [textContent]="'EDIT' | localize"></div>
34997
+ </div>
34998
+ <div class="edit-popup-wrapper">
34999
+ <mat-form-field class="full-width">
35000
+ <mat-label [textContent]="'NAME' | localize"></mat-label>
35001
+ <input matInput [(ngModel)]="lightPresetClone.name">
35002
+ </mat-form-field>
35003
+ <mat-form-field class="full-width">
35004
+ <mat-label [textContent]="'GROUP' | localize"></mat-label>
35005
+ <input matInput [(ngModel)]="lightPresetClone.group">
35006
+ </mat-form-field>
35007
+ <div class="key-value-grid">
35008
+ <span class="key" [textContent]="'NAVIGATOR_TYPE' | localize"></span>
35009
+ <mat-select class="dropdown-container" [value]="lightPresetClone.navigatorType" (keydown)="handleSelectKeyDown($event, 'navigatorType')">
35010
+ @for (navigatorType of navigatorTypes | keys; track navigatorType) {
35011
+ <mat-option [value]="navigatorType.key" (click)="lightPresetClone.navigatorType = navigatorType.value">
35012
+ {{ navigatorType.key }}
35013
+ </mat-option>
35014
+ }
35015
+ </mat-select>
35016
+ <span class="value-readonly"></span>
35017
+
35018
+ <span class="key" [textContent]="'SHADOW_MAP_TYPE' | localize"></span>
35019
+ <mat-select class="dropdown-container" [value]="lightPresetClone.shadowMapType">
35020
+ @for (mapType of shadowMapTypes | keys; track mapType) {
35021
+ <mat-option [value]="mapType.key" (click)="lightPresetClone.shadowMapType = mapType.value">
35022
+ {{ mapType.key }}
35023
+ </mat-option>
35024
+ }
35025
+ </mat-select>
35026
+ <span class="value-readonly"></span>
35027
+
35028
+ <span class="key" [textContent]="'OUTPUT_ENCODING' | localize"></span>
35029
+ <mat-select class="dropdown-container" [value]="lightPresetClone.outputEncoding">
35030
+ @for (encoding of encodings | keys; track encoding) {
35031
+ <mat-option [value]="encoding.key" (click)="lightPresetClone.outputEncoding = encoding.value">
35032
+ {{ encoding.key }}
35033
+ </mat-option>
35034
+ }
35035
+ </mat-select>
35036
+ <span class="value-readonly"></span>
35037
+
35038
+ <span class="key" [textContent]="'TONE_MAPPING_EXPOSURE' | localize"></span>
35039
+ <mat-slider class="value" thumbLabel min="0" max="3" step="0.1" [(ngModel)]="lightPresetClone.toneMappingExposure"><input matSliderThumb [value]="lightPresetClone.toneMappingExposure" /></mat-slider>
35040
+ <input matInput type="number" [step]="0.1" [placeholder]="1" [value]="lightPresetClone.toneMappingExposure" [(ngModel)]="lightPresetClone.toneMappingExposure">
35041
+
35042
+ <span class="key" [textContent]="'PHYSICALLY_CORRECT_LIGHTS' | localize"></span>
35043
+ <mat-checkbox class="value" [(ngModel)]="lightPresetClone.physicallyCorrectLights"></mat-checkbox>
35044
+ <span class="value-readonly"></span>
35045
+
35046
+ <span class="key" [textContent]="'DEFAULT' | localize"></span>
35047
+ <mat-checkbox class="value" [(ngModel)]="lightPresetClone.default"></mat-checkbox>
35048
+ <span class="value-readonly"></span>
35049
+
35050
+ <span class="key" [textContent]="'STANDALONE' | localize"></span>
35051
+ <mat-checkbox class="value" [(ngModel)]="lightPresetClone.standalone"></mat-checkbox>
35052
+ <span class="value-readonly"></span>
35053
+ </div>
35054
+ </div>
35055
+ <div class="button-wrapper">
35056
+ <button mat-button class="custom-button" (click)="cancel()">
35057
+ <mat-icon class="homedecorator-material-icons" aria-hidden="true">cancel</mat-icon>
35058
+ {{ 'CANCEL' | localize}}
35059
+ </button>
35060
+ <button mat-button class="custom-button" (click)="save()">
35061
+ <mat-icon class="homedecorator-material-icons" aria-hidden="true">save</mat-icon>
35062
+ {{ 'SAVE' | localize}}
35063
+ </button>
35064
+ </div>
35065
+ </div>
35066
+ `, isInline: true, styles: [":host .edit-wrapper{display:flex;flex-direction:row;align-items:center}:host .custom-button{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .edit-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;background:#fff;display:flex;flex-direction:column;z-index:905}:host .edit-popup .title-bar{display:flex;justify-content:space-between;align-items:center;height:40px;background:#3760a1;color:#fff;padding-left:10px}:host .edit-popup .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .edit-popup .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .edit-popup .title-bar mat-icon{color:#fff}:host .edit-popup .edit-popup-wrapper{padding:10px;font-size:12px;overflow-y:auto}:host .edit-popup .button-wrapper{display:flex;align-items:center;justify-content:flex-end;height:60px;padding:10px;bottom:0;right:0}:host .edit-popup .button-wrapper .custom-button:not(last-child){margin-right:10px}:host .edit-popup .full-width{width:100%}:host .edit-popup .key-value-grid{display:grid;grid-template-columns:40% 50% 10%;grid-auto-rows:30px}:host .edit-popup .key-value-grid .key,:host .edit-popup .key-value-grid .value,:host .edit-popup .key-value-grid .value-readonly{align-self:center}:host .edit-popup .key-value-grid mat-slider{height:30px}:host .edit-popup .key-value-grid ::ng-deep .mat-slider-horizontal .mat-slider-wrapper{top:50%}:host .dropdown-container{display:flex;flex-direction:column;justify-content:center}\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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$3.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: 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: "component", type: i1$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$2.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: KeysPipe, name: "keys" }] }); }
34948
35067
  }
34949
35068
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EditLightplanComponent, decorators: [{
34950
35069
  type: Component,
34951
- args: [{ selector: 'edit-lightplan', template: `
34952
- <div class="edit-popup">
34953
- <div class="title-bar">
34954
- <div class="title-description" [textContent]="'EDIT' | localize"></div>
34955
- </div>
34956
- <div class="edit-popup-wrapper">
34957
- <mat-form-field class="full-width">
34958
- <mat-label [textContent]="'NAME' | localize"></mat-label>
34959
- <input matInput [(ngModel)]="lightPresetClone.name">
34960
- </mat-form-field>
34961
- <mat-form-field class="full-width">
34962
- <mat-label [textContent]="'GROUP' | localize"></mat-label>
34963
- <input matInput [(ngModel)]="lightPresetClone.group">
34964
- </mat-form-field>
34965
- <div class="key-value-grid">
34966
- <span class="key" [textContent]="'NAVIGATOR_TYPE' | localize"></span>
34967
- <mat-select class="dropdown-container" [value]="lightPresetClone.navigatorType" (keydown)="handleSelectKeyDown($event, 'navigatorType')">
34968
- @for (navigatorType of navigatorTypes | keys; track navigatorType) {
34969
- <mat-option [value]="navigatorType.key" (click)="lightPresetClone.navigatorType = navigatorType.value">
34970
- {{ navigatorType.key }}
34971
- </mat-option>
34972
- }
34973
- </mat-select>
34974
- <span class="value-readonly"></span>
34975
-
34976
- <span class="key" [textContent]="'SHADOW_MAP_TYPE' | localize"></span>
34977
- <mat-select class="dropdown-container" [value]="lightPresetClone.shadowMapType">
34978
- @for (mapType of shadowMapTypes | keys; track mapType) {
34979
- <mat-option [value]="mapType.key" (click)="lightPresetClone.shadowMapType = mapType.value">
34980
- {{ mapType.key }}
34981
- </mat-option>
34982
- }
34983
- </mat-select>
34984
- <span class="value-readonly"></span>
34985
-
34986
- <span class="key" [textContent]="'OUTPUT_ENCODING' | localize"></span>
34987
- <mat-select class="dropdown-container" [value]="lightPresetClone.outputEncoding">
34988
- @for (encoding of encodings | keys; track encoding) {
34989
- <mat-option [value]="encoding.key" (click)="lightPresetClone.outputEncoding = encoding.value">
34990
- {{ encoding.key }}
34991
- </mat-option>
34992
- }
34993
- </mat-select>
34994
- <span class="value-readonly"></span>
34995
-
34996
- <span class="key" [textContent]="'TONE_MAPPING_EXPOSURE' | localize"></span>
34997
- <mat-slider class="value" thumbLabel min="0" max="3" step="0.1" [(ngModel)]="lightPresetClone.toneMappingExposure"><input matSliderThumb [value]="lightPresetClone.toneMappingExposure" /></mat-slider>
34998
- <input matInput type="number" [step]="0.1" [placeholder]="1" [value]="lightPresetClone.toneMappingExposure" [(ngModel)]="lightPresetClone.toneMappingExposure">
34999
-
35000
- <span class="key" [textContent]="'PHYSICALLY_CORRECT_LIGHTS' | localize"></span>
35001
- <mat-checkbox class="value" [(ngModel)]="lightPresetClone.physicallyCorrectLights"></mat-checkbox>
35002
- <span class="value-readonly"></span>
35003
-
35004
- <span class="key" [textContent]="'DEFAULT' | localize"></span>
35005
- <mat-checkbox class="value" [(ngModel)]="lightPresetClone.default"></mat-checkbox>
35006
- <span class="value-readonly"></span>
35007
-
35008
- <span class="key" [textContent]="'STANDALONE' | localize"></span>
35009
- <mat-checkbox class="value" [(ngModel)]="lightPresetClone.standalone"></mat-checkbox>
35010
- <span class="value-readonly"></span>
35011
- </div>
35012
- </div>
35013
- <div class="button-wrapper">
35014
- <button mat-button class="custom-button" (click)="cancel()">
35015
- <mat-icon class="homedecorator-material-icons" aria-hidden="true">cancel</mat-icon>
35016
- {{ 'CANCEL' | localize}}
35017
- </button>
35018
- <button mat-button class="custom-button" (click)="save()">
35019
- <mat-icon class="homedecorator-material-icons" aria-hidden="true">save</mat-icon>
35020
- {{ 'SAVE' | localize}}
35021
- </button>
35022
- </div>
35023
- </div>
35070
+ args: [{ selector: 'edit-lightplan', template: `
35071
+ <div class="edit-popup">
35072
+ <div class="title-bar">
35073
+ <div class="title-description" [textContent]="'EDIT' | localize"></div>
35074
+ </div>
35075
+ <div class="edit-popup-wrapper">
35076
+ <mat-form-field class="full-width">
35077
+ <mat-label [textContent]="'NAME' | localize"></mat-label>
35078
+ <input matInput [(ngModel)]="lightPresetClone.name">
35079
+ </mat-form-field>
35080
+ <mat-form-field class="full-width">
35081
+ <mat-label [textContent]="'GROUP' | localize"></mat-label>
35082
+ <input matInput [(ngModel)]="lightPresetClone.group">
35083
+ </mat-form-field>
35084
+ <div class="key-value-grid">
35085
+ <span class="key" [textContent]="'NAVIGATOR_TYPE' | localize"></span>
35086
+ <mat-select class="dropdown-container" [value]="lightPresetClone.navigatorType" (keydown)="handleSelectKeyDown($event, 'navigatorType')">
35087
+ @for (navigatorType of navigatorTypes | keys; track navigatorType) {
35088
+ <mat-option [value]="navigatorType.key" (click)="lightPresetClone.navigatorType = navigatorType.value">
35089
+ {{ navigatorType.key }}
35090
+ </mat-option>
35091
+ }
35092
+ </mat-select>
35093
+ <span class="value-readonly"></span>
35094
+
35095
+ <span class="key" [textContent]="'SHADOW_MAP_TYPE' | localize"></span>
35096
+ <mat-select class="dropdown-container" [value]="lightPresetClone.shadowMapType">
35097
+ @for (mapType of shadowMapTypes | keys; track mapType) {
35098
+ <mat-option [value]="mapType.key" (click)="lightPresetClone.shadowMapType = mapType.value">
35099
+ {{ mapType.key }}
35100
+ </mat-option>
35101
+ }
35102
+ </mat-select>
35103
+ <span class="value-readonly"></span>
35104
+
35105
+ <span class="key" [textContent]="'OUTPUT_ENCODING' | localize"></span>
35106
+ <mat-select class="dropdown-container" [value]="lightPresetClone.outputEncoding">
35107
+ @for (encoding of encodings | keys; track encoding) {
35108
+ <mat-option [value]="encoding.key" (click)="lightPresetClone.outputEncoding = encoding.value">
35109
+ {{ encoding.key }}
35110
+ </mat-option>
35111
+ }
35112
+ </mat-select>
35113
+ <span class="value-readonly"></span>
35114
+
35115
+ <span class="key" [textContent]="'TONE_MAPPING_EXPOSURE' | localize"></span>
35116
+ <mat-slider class="value" thumbLabel min="0" max="3" step="0.1" [(ngModel)]="lightPresetClone.toneMappingExposure"><input matSliderThumb [value]="lightPresetClone.toneMappingExposure" /></mat-slider>
35117
+ <input matInput type="number" [step]="0.1" [placeholder]="1" [value]="lightPresetClone.toneMappingExposure" [(ngModel)]="lightPresetClone.toneMappingExposure">
35118
+
35119
+ <span class="key" [textContent]="'PHYSICALLY_CORRECT_LIGHTS' | localize"></span>
35120
+ <mat-checkbox class="value" [(ngModel)]="lightPresetClone.physicallyCorrectLights"></mat-checkbox>
35121
+ <span class="value-readonly"></span>
35122
+
35123
+ <span class="key" [textContent]="'DEFAULT' | localize"></span>
35124
+ <mat-checkbox class="value" [(ngModel)]="lightPresetClone.default"></mat-checkbox>
35125
+ <span class="value-readonly"></span>
35126
+
35127
+ <span class="key" [textContent]="'STANDALONE' | localize"></span>
35128
+ <mat-checkbox class="value" [(ngModel)]="lightPresetClone.standalone"></mat-checkbox>
35129
+ <span class="value-readonly"></span>
35130
+ </div>
35131
+ </div>
35132
+ <div class="button-wrapper">
35133
+ <button mat-button class="custom-button" (click)="cancel()">
35134
+ <mat-icon class="homedecorator-material-icons" aria-hidden="true">cancel</mat-icon>
35135
+ {{ 'CANCEL' | localize}}
35136
+ </button>
35137
+ <button mat-button class="custom-button" (click)="save()">
35138
+ <mat-icon class="homedecorator-material-icons" aria-hidden="true">save</mat-icon>
35139
+ {{ 'SAVE' | localize}}
35140
+ </button>
35141
+ </div>
35142
+ </div>
35024
35143
  `, standalone: false, styles: [":host .edit-wrapper{display:flex;flex-direction:row;align-items:center}:host .custom-button{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .edit-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;background:#fff;display:flex;flex-direction:column;z-index:905}:host .edit-popup .title-bar{display:flex;justify-content:space-between;align-items:center;height:40px;background:#3760a1;color:#fff;padding-left:10px}:host .edit-popup .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .edit-popup .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .edit-popup .title-bar mat-icon{color:#fff}:host .edit-popup .edit-popup-wrapper{padding:10px;font-size:12px;overflow-y:auto}:host .edit-popup .button-wrapper{display:flex;align-items:center;justify-content:flex-end;height:60px;padding:10px;bottom:0;right:0}:host .edit-popup .button-wrapper .custom-button:not(last-child){margin-right:10px}:host .edit-popup .full-width{width:100%}:host .edit-popup .key-value-grid{display:grid;grid-template-columns:40% 50% 10%;grid-auto-rows:30px}:host .edit-popup .key-value-grid .key,:host .edit-popup .key-value-grid .value,:host .edit-popup .key-value-grid .value-readonly{align-self:center}:host .edit-popup .key-value-grid mat-slider{height:30px}:host .edit-popup .key-value-grid ::ng-deep .mat-slider-horizontal .mat-slider-wrapper{top:50%}:host .dropdown-container{display:flex;flex-direction:column;justify-content:center}\n"] }]
35025
35144
  }], ctorParameters: () => [], propDecorators: { lightPreset: [{
35026
35145
  type: Input
@@ -35330,7 +35449,7 @@ class LightplanComponent {
35330
35449
  (cancelClick)="showPlanEditPopup = false"
35331
35450
  ></edit-lightplan>
35332
35451
  }
35333
- `, isInline: true, styles: [":host.popup-showing .lightplan-wrapper{opacity:.1!important}:host.show{display:flex}:host .lightplan-wrapper{opacity:1;position:fixed;background:#fff;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;z-index:904}:host .lightplan-wrapper .scene-lights{max-height:300px;overflow-y:auto}:host .title-bar{display:flex;justify-content:flex-end;background:#3760a1}:host .title-bar mat-icon{color:#fff}:host .title-bar .title-bar-move{display:flex;flex-basis:100%}:host .content-wrapper{font-size:14px;padding:15px;background:#fff;min-height:400px;min-width:500px;display:flex;flex-direction:column;max-height:500px;overflow-y:auto}:host .section:not(last-child){margin-bottom:20px}:host .button-wrapper{display:flex;height:60px;align-items:center;justify-content:flex-end}:host .edit-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between}:host .edit-button-wrapper{display:flex}:host h4{margin:10px 0}:host .edit-lightplan-wrapper{display:flex}:host .light-preset-selection{display:flex}:host .button-row{display:flex}:host .add-light{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .add-light:not(last-child){margin-right:5px}:host .dropdown-container{align-self:center}:host .section-row{display:flex;flex-direction:row;justify-content:space-between}::ng-deep .cdk-overlay-container .mat-mdc-select-panel .mat-option-text{display:flex;justify-content:space-between;align-items:center}\n"], dependencies: [{ 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: 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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i12.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: "directive", type: i12.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: EditLightComponent, selector: "edit-light", inputs: ["light"], outputs: ["okClick", "cancelClick"] }, { kind: "component", type: EditLightplanComponent, selector: "edit-lightplan", inputs: ["lightPreset"], outputs: ["saveClick", "cancelClick"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
35452
+ `, isInline: true, styles: [":host.popup-showing .lightplan-wrapper{opacity:.1!important}:host.show{display:flex}:host .lightplan-wrapper{opacity:1;position:fixed;background:#fff;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;z-index:904}:host .lightplan-wrapper .scene-lights{max-height:300px;overflow-y:auto}:host .title-bar{display:flex;justify-content:flex-end;background:#3760a1}:host .title-bar mat-icon{color:#fff}:host .title-bar .title-bar-move{display:flex;flex-basis:100%}:host .content-wrapper{font-size:14px;padding:15px;background:#fff;min-height:400px;min-width:500px;display:flex;flex-direction:column;max-height:500px;overflow-y:auto}:host .section:not(last-child){margin-bottom:20px}:host .button-wrapper{display:flex;height:60px;align-items:center;justify-content:flex-end}:host .edit-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between}:host .edit-button-wrapper{display:flex}:host h4{margin:10px 0}:host .edit-lightplan-wrapper{display:flex}:host .light-preset-selection{display:flex}:host .button-row{display:flex}:host .add-light{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .add-light:not(last-child){margin-right:5px}:host .dropdown-container{align-self:center}:host .section-row{display:flex;flex-direction:row;justify-content:space-between}::ng-deep .cdk-overlay-container .mat-mdc-select-panel .mat-option-text{display:flex;justify-content:space-between;align-items:center}\n"], dependencies: [{ 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: 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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i12.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: "directive", type: i12.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: EditLightComponent, selector: "edit-light", inputs: ["light"], outputs: ["okClick", "cancelClick"] }, { kind: "component", type: EditLightplanComponent, selector: "edit-lightplan", inputs: ["lightPreset"], outputs: ["saveClick", "cancelClick"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
35334
35453
  trigger('showHideDialog', [
35335
35454
  state('void', style({ opacity: 0 })),
35336
35455
  state('*', style({ opacity: 1 })),
@@ -35634,7 +35753,7 @@ class SceneOptionsComponent {
35634
35753
  </div>
35635
35754
  }
35636
35755
  </div>
35637
- `, isInline: true, styles: [":host{margin:0 5px}:host .buttons-wrapper{display:flex;flex-direction:row;align-items:center;column-gap:5px}:host .button-wrapper{position:relative}:host .children-wrapper{display:flex;flex-direction:column;position:absolute;transform:translateY(calc(-100% - 50px));z-index:999}:host button{z-index:1}:host button img{pointer-events:none;width:100%;height:100%}:host button.active{box-shadow:none}:host button.circle{width:50px;height:50px;border-radius:50%}:host button.circle img{border-radius:50%}\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.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
35756
+ `, isInline: true, styles: [":host{margin:0 5px}:host .buttons-wrapper{display:flex;flex-direction:row;align-items:center;column-gap:5px}:host .button-wrapper{position:relative}:host .children-wrapper{display:flex;flex-direction:column;position:absolute;transform:translateY(calc(-100% - 50px));z-index:999}:host button{z-index:1}:host button img{pointer-events:none;width:100%;height:100%}:host button.active{box-shadow:none}:host button.circle{width:50px;height:50px;border-radius:50%}:host button.circle img{border-radius:50%}\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.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
35638
35757
  trigger('showHideChild', [
35639
35758
  state('true', style({ 'opacity': '1', 'visibility': 'visible' })),
35640
35759
  state('false', style({ 'opacity': '0', 'visibility': 'hidden' })),
@@ -35715,7 +35834,7 @@ class ArGuiButtonsComponent {
35715
35834
  this._arService.resetPlaneDetection();
35716
35835
  }
35717
35836
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ArGuiButtonsComponent, deps: [{ token: HomedecoratorIconCacheService }, { token: ArService }], target: i0.ɵɵFactoryTarget.Component }); }
35718
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ArGuiButtonsComponent, isStandalone: false, selector: "ar-gui-buttons", ngImport: i0, template: "<div class=\"buttons-container\">\r\n <div class=\"button-container\" xmlns=\"http://www.w3.org/1999/html\">\r\n <button mat-mini-fab class=\"button-icon back\" (click)=\"endSession()\">\r\n <co-icon class=\"icon rotated\" [iconData]=\"iconService.getIcon(icon.Cross)\"></co-icon>\r\n </button>\r\n </div>\r\n\r\n <!--div class=\"button-container\" xmlns=\"http://www.w3.org/1999/html\">\r\n <button class=\"button-icon\" mat-mini-fab (click)=\"showConfigurator()\">\r\n <co-icon class=\"icon\" [iconData]=\"iconService.getIcon(icon.MagicWand)\"></co-icon>\r\n </button>\r\n </div-->\r\n</div>\r\n", styles: [".buttons-container{position:absolute;display:flex;right:15px;top:15px}.button-container{padding:20px}.button-icon{text-align:-webkit-center}.back{padding-right:3px}.icon{width:65%;height:65%;fill:#fff}.rotated{transform:rotate(90deg)}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }] }); }
35837
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: ArGuiButtonsComponent, isStandalone: false, selector: "ar-gui-buttons", ngImport: i0, template: "<div class=\"buttons-container\">\r\n <div class=\"button-container\" xmlns=\"http://www.w3.org/1999/html\">\r\n <button mat-mini-fab class=\"button-icon back\" (click)=\"endSession()\">\r\n <co-icon class=\"icon rotated\" [iconData]=\"iconService.getIcon(icon.Cross)\"></co-icon>\r\n </button>\r\n </div>\r\n\r\n <!--div class=\"button-container\" xmlns=\"http://www.w3.org/1999/html\">\r\n <button class=\"button-icon\" mat-mini-fab (click)=\"showConfigurator()\">\r\n <co-icon class=\"icon\" [iconData]=\"iconService.getIcon(icon.MagicWand)\"></co-icon>\r\n </button>\r\n </div-->\r\n</div>\r\n", styles: [".buttons-container{position:absolute;display:flex;right:15px;top:15px}.button-container{padding:20px}.button-icon{text-align:-webkit-center}.back{padding-right:3px}.icon{width:65%;height:65%;fill:#fff}.rotated{transform:rotate(90deg)}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }] }); }
35719
35838
  }
35720
35839
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ArGuiButtonsComponent, decorators: [{
35721
35840
  type: Component,
@@ -35865,7 +35984,7 @@ class ArGuiRootComponent {
35865
35984
  return this._arService.showMovePhoneAnimation();
35866
35985
  }
35867
35986
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ArGuiRootComponent, deps: [{ token: ViewModeService }, { token: ArService }], target: i0.ɵɵFactoryTarget.Component }); }
35868
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ArGuiRootComponent, isStandalone: false, selector: "ar-gui-root", ngImport: i0, template: "<div id=\"ar-root\">\r\n @if (inARViewMode()) {\r\n <div>\r\n <!-- TODO fix this icon -->\r\n <!-- <div *ngIf=\"showMovePhoneAnimation()\" class=\"icon-wrapper\">-->\r\n <!-- <mat-icon class=\"homedecorator-material-icons\" svgIcon=\"move-phone-ar\" class=\"move-phone-icon\"></mat-icon>-->\r\n <!-- </div>-->\r\n <ar-gui-buttons></ar-gui-buttons>\r\n <ar-gui-notifications></ar-gui-notifications>\r\n <ar-gui-configurator></ar-gui-configurator>\r\n @if (showContextMenu()) {\r\n <ar-gui-context-menu>\r\n <button mat-mini-fab (click)=\"showConfigurator()\"\r\n matTooltip=\"{{'CONFIGURE' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-icon>\r\n </button>\r\n </ar-gui-context-menu>\r\n }\r\n </div>\r\n}\r\n</div>\r\n", styles: [":host .icon-wrapper{display:flex;width:100vw;height:100vh;justify-content:center}:host .move-phone-icon{filter:invert(1);align-self:center;padding-top:20px;animation:myAnimation 5s infinite}@keyframes myAnimation{0%{transform:scale(3) translate(0)}25%{transform:scale(3) translate(50%)}50%{transform:scale(3) translate(0)}75%{transform:scale(3) translate(-50%)}to{transform:scale(3) translate(0)}}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ArGuiButtonsComponent, selector: "ar-gui-buttons" }, { kind: "component", type: ArGuiConfiguratorComponent, selector: "ar-gui-configurator" }, { kind: "component", type: ArGuiContextMenuComponent, selector: "ar-gui-context-menu" }, { kind: "component", type: ArGuiNotificationsComponent, selector: "ar-gui-notifications" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
35987
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ArGuiRootComponent, isStandalone: false, selector: "ar-gui-root", ngImport: i0, template: "<div id=\"ar-root\">\r\n @if (inARViewMode()) {\r\n <div>\r\n <!-- TODO fix this icon -->\r\n <!-- <div *ngIf=\"showMovePhoneAnimation()\" class=\"icon-wrapper\">-->\r\n <!-- <mat-icon class=\"homedecorator-material-icons\" svgIcon=\"move-phone-ar\" class=\"move-phone-icon\"></mat-icon>-->\r\n <!-- </div>-->\r\n <ar-gui-buttons></ar-gui-buttons>\r\n <ar-gui-notifications></ar-gui-notifications>\r\n <ar-gui-configurator></ar-gui-configurator>\r\n @if (showContextMenu()) {\r\n <ar-gui-context-menu>\r\n <button mat-mini-fab (click)=\"showConfigurator()\"\r\n matTooltip=\"{{'CONFIGURE' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-icon>\r\n </button>\r\n </ar-gui-context-menu>\r\n }\r\n </div>\r\n}\r\n</div>\r\n", styles: [":host .icon-wrapper{display:flex;width:100vw;height:100vh;justify-content:center}:host .move-phone-icon{filter:invert(1);align-self:center;padding-top:20px;animation:myAnimation 5s infinite}@keyframes myAnimation{0%{transform:scale(3) translate(0)}25%{transform:scale(3) translate(50%)}50%{transform:scale(3) translate(0)}75%{transform:scale(3) translate(-50%)}to{transform:scale(3) translate(0)}}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ArGuiButtonsComponent, selector: "ar-gui-buttons" }, { kind: "component", type: ArGuiConfiguratorComponent, selector: "ar-gui-configurator" }, { kind: "component", type: ArGuiContextMenuComponent, selector: "ar-gui-context-menu" }, { kind: "component", type: ArGuiNotificationsComponent, selector: "ar-gui-notifications" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
35869
35988
  }
35870
35989
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ArGuiRootComponent, decorators: [{
35871
35990
  type: Component,
@@ -36043,7 +36162,7 @@ class Core3dComponent {
36043
36162
  }
36044
36163
  }
36045
36164
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: Core3dComponent, deps: [{ token: ViewModeService }, { token: HomedecoratorSettingsService }, { token: XrService }, { token: VrService }, { token: PresetsService }, { token: MessageBusService }, { token: ConfigurationService }, { token: CameraService }, { token: BluePrintService }, { token: RoomService }, { token: ItemService }, { token: i1$2.MatDialog }, { token: HomedecoratorIconCacheService }, { token: ScreenSizeAnalysisService }, { token: WallMeasurementsService }], target: i0.ɵɵFactoryTarget.Component }); }
36046
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: Core3dComponent, isStandalone: false, selector: "rp-core3d", host: { listeners: { "document:mouseup": "handledocumentMouseUp($event)", "document:mousemove": "handleDocumentMouseDown($event)" }, properties: { "class": "this.layerClass", "class.disable-mouse": "this._disableMouse" } }, viewQueries: [{ propertyName: "toolbarIconTopView", first: true, predicate: ["toolbarIconTopView"], descendants: true, static: true }, { propertyName: "toolbarIconWalkThrough", first: true, predicate: ["toolbarIconWalkThrough"], descendants: true, static: true }, { propertyName: "toolbarIconVR", first: true, predicate: ["toolbarIconVR"], descendants: true, static: true }], ngImport: i0, template: "<development-selected-object></development-selected-object>\r\n@if (!settingsService.settings.options.development) {\r\n <div class=\"viewer\" scene></div>\r\n}\r\n@if (settingsService.settings.options.development) {\r\n <div class=\"viewer\" scene development></div>\r\n}\r\n@if (show3DWaterMark) {\r\n <div class=\"powered-by-wrapper\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.CitPoweredWhite)\"></co-icon>\r\n </div>\r\n}\r\n@if (showLightplan) {\r\n <lightplan></lightplan>\r\n}\r\n@if (showSceneControls) {\r\n <rp-scene-control></rp-scene-control>\r\n}\r\n<ng-template #toolbarIconTopView>\r\n <rp-toolbar-icon\r\n matIcon=\"camera_topdown\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.TopView || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeTopView()\"\r\n tooltip=\"{{iconName.TopView | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconWalkThrough>\r\n <rp-toolbar-icon\r\n matIcon=\"street_view\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.WalkThrough || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeWalkThrough()\"\r\n tooltip=\"{{iconName.WalkThrough | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconVR>\r\n @if (xrService.vrSupported) {\r\n <rp-toolbar-icon\r\n svgIcon=\"google-cardboard-orange\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.VR\"\r\n (onClick)=\"setViewModeVr()\"\r\n tooltip=\"{{iconName.VR | localize}}\">\r\n </rp-toolbar-icon>\r\n }\r\n</ng-template>\r\n\r\n<rp-zoom-controls\r\n [visible]=\"viewModeService.viewMode === viewModes.RoomPlan3D\"\r\n (onZoomIn)=\"cameraZoomIn($event)\"\r\n (onZoomReset)=\"cameraCenter($event)\"\r\n (onZoomOut)=\"cameraZoomOut($event)\"\r\n></rp-zoom-controls>\r\n\r\n<div id=\"controls\" class=\"controls-bottom\">\r\n\r\n @if (viewModeService.viewMode === viewModes.RoomPlan3D ||\r\n viewModeService.viewMode === viewModes.WalkThrough ||\r\n viewModeService.viewMode === viewModes.TopView) {\r\n <rp-render-controls\r\n >\r\n </rp-render-controls>\r\n }\r\n <scene-options></scene-options>\r\n\r\n @if (showCameraControlButtons && viewModeService.viewMode !== viewModes.FloorPlan2D) {\r\n <div class=\"controls-directions desktop\">\r\n <button class=\"control-left\" mat-raised-button (click)=\"cameraPanLeft($event)\" title=\"{{'LEFT' | localize}}\"\r\n #controls>\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\r\n </button>\r\n <button class=\"control-right\" mat-raised-button (click)=\"cameraPanRight($event)\" title=\"{{'RIGHT' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_forward</mat-icon>\r\n </button>\r\n <button class=\"control-up\" mat-raised-button (click)=\"cameraPanUp($event)\" title=\"{{'UP' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_upward</mat-icon>\r\n </button>\r\n <button class=\"control-down\" mat-raised-button (click)=\"cameraPanDown($event)\" title=\"{{'DOWN' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_downward</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n@if (viewModeService.viewMode === viewModes.WalkThrough && showCameraControls) {\r\n <div\r\n class=\"full-screen\"\r\n >\r\n <rp-walkthrough-camera-controls></rp-walkthrough-camera-controls>\r\n </div>\r\n}\r\n\r\n<ar-gui-root></ar-gui-root>\r\n", styles: [":host{display:block}:host.disable-mouse #controls{pointer-events:none}:host .powered-by-wrapper{pointer-events:none;position:absolute;bottom:0;left:50%;transform:translate(-50%);width:30%;height:30px;background:#0000001a;border-radius:10px;padding:10px;opacity:.4}:host .powered-by-wrapper ::ng-deep co-icon{width:100%;height:100%}:host .powered-by-wrapper ::ng-deep co-icon svg{height:100%;width:100%}\n"], dependencies: [{ 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: "component", type: SelectedObjectComponent$1, selector: "development-selected-object" }, { kind: "directive", type: DevelopmentDirective, selector: "[development]" }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { kind: "component", type: ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { kind: "component", type: RenderControlsComponent, selector: "rp-render-controls" }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: SceneDirective, selector: "[scene]" }, { kind: "component", type: SceneControlComponent, selector: "rp-scene-control" }, { kind: "component", type: WalkthroughCameraControlsComponent, selector: "rp-walkthrough-camera-controls", inputs: ["fov", "aspect", "focus"] }, { kind: "component", type: LightplanComponent, selector: "lightplan" }, { kind: "component", type: SceneOptionsComponent, selector: "scene-options" }, { kind: "component", type: ArGuiRootComponent, selector: "ar-gui-root" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
36165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: Core3dComponent, isStandalone: false, selector: "rp-core3d", host: { listeners: { "document:mouseup": "handledocumentMouseUp($event)", "document:mousemove": "handleDocumentMouseDown($event)" }, properties: { "class": "this.layerClass", "class.disable-mouse": "this._disableMouse" } }, viewQueries: [{ propertyName: "toolbarIconTopView", first: true, predicate: ["toolbarIconTopView"], descendants: true, static: true }, { propertyName: "toolbarIconWalkThrough", first: true, predicate: ["toolbarIconWalkThrough"], descendants: true, static: true }, { propertyName: "toolbarIconVR", first: true, predicate: ["toolbarIconVR"], descendants: true, static: true }], ngImport: i0, template: "<development-selected-object></development-selected-object>\r\n@if (!settingsService.settings.options.development) {\r\n <div class=\"viewer\" scene></div>\r\n}\r\n@if (settingsService.settings.options.development) {\r\n <div class=\"viewer\" scene development></div>\r\n}\r\n@if (show3DWaterMark) {\r\n <div class=\"powered-by-wrapper\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.CitPoweredWhite)\"></co-icon>\r\n </div>\r\n}\r\n@if (showLightplan) {\r\n <lightplan></lightplan>\r\n}\r\n@if (showSceneControls) {\r\n <rp-scene-control></rp-scene-control>\r\n}\r\n<ng-template #toolbarIconTopView>\r\n <rp-toolbar-icon\r\n matIcon=\"camera_topdown\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.TopView || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeTopView()\"\r\n tooltip=\"{{iconName.TopView | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconWalkThrough>\r\n <rp-toolbar-icon\r\n matIcon=\"street_view\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.WalkThrough || !threedOptionsAvailable\"\r\n (onClick)=\"setViewModeWalkThrough()\"\r\n tooltip=\"{{iconName.WalkThrough | localize}}\"\r\n [showLabel]=\"phoneSizeScreen\">\r\n </rp-toolbar-icon>\r\n</ng-template>\r\n\r\n<ng-template #toolbarIconVR>\r\n @if (xrService.vrSupported) {\r\n <rp-toolbar-icon\r\n svgIcon=\"google-cardboard-orange\"\r\n [disabled]=\"!hasRooms() || viewModeService.viewMode === viewModes.VR\"\r\n (onClick)=\"setViewModeVr()\"\r\n tooltip=\"{{iconName.VR | localize}}\">\r\n </rp-toolbar-icon>\r\n }\r\n</ng-template>\r\n\r\n<rp-zoom-controls\r\n [visible]=\"viewModeService.viewMode === viewModes.RoomPlan3D\"\r\n (onZoomIn)=\"cameraZoomIn($event)\"\r\n (onZoomReset)=\"cameraCenter($event)\"\r\n (onZoomOut)=\"cameraZoomOut($event)\"\r\n></rp-zoom-controls>\r\n\r\n<div id=\"controls\" class=\"controls-bottom\">\r\n\r\n @if (viewModeService.viewMode === viewModes.RoomPlan3D ||\r\n viewModeService.viewMode === viewModes.WalkThrough ||\r\n viewModeService.viewMode === viewModes.TopView) {\r\n <rp-render-controls\r\n >\r\n </rp-render-controls>\r\n }\r\n <scene-options></scene-options>\r\n\r\n @if (showCameraControlButtons && viewModeService.viewMode !== viewModes.FloorPlan2D) {\r\n <div class=\"controls-directions desktop\">\r\n <button class=\"control-left\" mat-raised-button (click)=\"cameraPanLeft($event)\" title=\"{{'LEFT' | localize}}\"\r\n #controls>\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\r\n </button>\r\n <button class=\"control-right\" mat-raised-button (click)=\"cameraPanRight($event)\" title=\"{{'RIGHT' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_forward</mat-icon>\r\n </button>\r\n <button class=\"control-up\" mat-raised-button (click)=\"cameraPanUp($event)\" title=\"{{'UP' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_upward</mat-icon>\r\n </button>\r\n <button class=\"control-down\" mat-raised-button (click)=\"cameraPanDown($event)\" title=\"{{'DOWN' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">arrow_downward</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n@if (viewModeService.viewMode === viewModes.WalkThrough && showCameraControls) {\r\n <div\r\n class=\"full-screen\"\r\n >\r\n <rp-walkthrough-camera-controls></rp-walkthrough-camera-controls>\r\n </div>\r\n}\r\n\r\n<ar-gui-root></ar-gui-root>\r\n", styles: [":host{display:block}:host.disable-mouse #controls{pointer-events:none}:host .powered-by-wrapper{pointer-events:none;position:absolute;bottom:0;left:50%;transform:translate(-50%);width:30%;height:30px;background:#0000001a;border-radius:10px;padding:10px;opacity:.4}:host .powered-by-wrapper ::ng-deep co-icon{width:100%;height:100%}:host .powered-by-wrapper ::ng-deep co-icon svg{height:100%;width:100%}\n"], dependencies: [{ 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: "component", type: SelectedObjectComponent$1, selector: "development-selected-object" }, { kind: "directive", type: DevelopmentDirective, selector: "[development]" }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { kind: "component", type: ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { kind: "component", type: RenderControlsComponent, selector: "rp-render-controls" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: SceneDirective, selector: "[scene]" }, { kind: "component", type: SceneControlComponent, selector: "rp-scene-control" }, { kind: "component", type: WalkthroughCameraControlsComponent, selector: "rp-walkthrough-camera-controls", inputs: ["fov", "aspect", "focus"] }, { kind: "component", type: LightplanComponent, selector: "lightplan" }, { kind: "component", type: SceneOptionsComponent, selector: "scene-options" }, { kind: "component", type: ArGuiRootComponent, selector: "ar-gui-root" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
36047
36166
  }
36048
36167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: Core3dComponent, decorators: [{
36049
36168
  type: Component,
@@ -36136,7 +36255,7 @@ class WallLengthInputComponent {
36136
36255
  this._messageService.emit(MessageType.WallLengthInputValueChanged, this.length);
36137
36256
  }
36138
36257
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WallLengthInputComponent, deps: [{ token: MessageBusService }], target: i0.ɵɵFactoryTarget.Component }); }
36139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: WallLengthInputComponent, isStandalone: false, selector: "wall-length-input", ngImport: i0, template: "@if (show) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input\r\n matInput\r\n type=\"number\"\r\n [placeholder]=\"'LENGTH' | localize\"\r\n [inputAutofocus]=\"show\"\r\n [(ngModel)]=\"length\"\r\n (keydown.enter)=\"onOkButtonClick()\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"!length\"\r\n (click)=\"onOkButtonClick()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"!length\"\r\n (click)=\"onCancelButtonClick()\"\r\n (dragover)=\"onCancelButtonClick()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n", styles: [":host{position:absolute;top:80px;left:100px}\n"], dependencies: [{ kind: "directive", type: AutofocusDirective, selector: "[inputAutofocus]", inputs: ["inputAutofocus"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.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: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
36258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: WallLengthInputComponent, isStandalone: false, selector: "wall-length-input", ngImport: i0, template: "@if (show) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input\r\n matInput\r\n type=\"number\"\r\n [placeholder]=\"'LENGTH' | localize\"\r\n [inputAutofocus]=\"show\"\r\n [(ngModel)]=\"length\"\r\n (keydown.enter)=\"onOkButtonClick()\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"!length\"\r\n (click)=\"onOkButtonClick()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"!length\"\r\n (click)=\"onCancelButtonClick()\"\r\n (dragover)=\"onCancelButtonClick()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n", styles: [":host{position:absolute;top:80px;left:100px}\n"], dependencies: [{ kind: "directive", type: AutofocusDirective, selector: "[inputAutofocus]", inputs: ["inputAutofocus"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
36140
36259
  }
36141
36260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: WallLengthInputComponent, decorators: [{
36142
36261
  type: Component,
@@ -36240,11 +36359,6 @@ class FloorplannerComponent {
36240
36359
  this._lastNode = null;
36241
36360
  this._subs = [];
36242
36361
  this._selectedFloor = null;
36243
- this._diagramBackgroundScale = 1;
36244
- this._diagramBackgroundCurrentScale = 100;
36245
- this._diagramBackgroundActiveZoom = false;
36246
- this._diagramBackgroundAlpha = 0.5;
36247
- this._showDiagramBackground = true;
36248
36362
  this._readyToDraw = false;
36249
36363
  this._needsRedraw = false;
36250
36364
  Object.keys(this._configToSync).forEach((key) => {
@@ -36277,7 +36391,7 @@ class FloorplannerComponent {
36277
36391
  const dataUrl = this._canvas.toDataURL('image/jpeg');
36278
36392
  FileUtils.DownloadFromDataUri(dataUrl, `MyRoomplan${new Date().toISOString()}.jpeg`);
36279
36393
  }
36280
- }), this._messageBusService.subscribe(MessageType.StartWithEmptyRoom, () => this.showStartMessage()), this._messageBusService.subscribe(MessageType.LoadScaledDiagram, (input) => this.setDiagramSettings(input)), this._messageBusService.subscribe(MessageType.ToggleDiagram, () => this.toggleDiagram()));
36394
+ }), this._messageBusService.subscribe(MessageType.StartWithPreset, () => this._clearBackground()), this._messageBusService.subscribe(MessageType.LoadRoomFromPreset, () => this._clearBackground()), this._messageBusService.subscribe(MessageType.LoadRoomFromCloud, () => this._clearBackground()), this._messageBusService.subscribe(MessageType.NewRoom, () => this._clearBackground()), this._messageBusService.subscribe(MessageType.ResetRoomplan, () => this._clearBackground()), this._messageBusService.subscribe(MessageType.LoadScaledDiagram, () => this._clearBackground()), this._messageBusService.subscribe(MessageType.StartWithEmptyRoom, () => this.showStartMessage()), this._messageBusService.subscribe(MessageType.LoadScaledDiagram, (input) => this.setDiagramSettings(input)), this._messageBusService.subscribe(MessageType.ToggleDiagram, () => this.toggleDiagram()));
36281
36395
  this.touchMode = this._configurationService.getValue(ConfigurationKey.EnableTouch);
36282
36396
  this.currentDimensioning = this._configurationService.getValue(ConfigurationKey.DimensioningUnit);
36283
36397
  this.currentRoundingDecimals = this._configurationService.getValue(ConfigurationKey.RoundingDecimals);
@@ -36341,10 +36455,13 @@ class FloorplannerComponent {
36341
36455
  this._draw();
36342
36456
  });
36343
36457
  }
36344
- showStartMessage() {
36345
- if (this._diagramBackground) {
36346
- this._diagramBackground.src = '';
36458
+ _clearBackground() {
36459
+ if (this._renderService.diagramBackground) {
36460
+ this._renderService.diagramBackground = undefined;
36347
36461
  }
36462
+ }
36463
+ showStartMessage() {
36464
+ this._clearBackground();
36348
36465
  this._bluePrintService.reset();
36349
36466
  this.showStartingMessages = true;
36350
36467
  this._requestDraw();
@@ -36370,10 +36487,9 @@ class FloorplannerComponent {
36370
36487
  if (!this._coordinatesService.canZoomIn) {
36371
36488
  return;
36372
36489
  }
36373
- this._clear();
36374
36490
  this._coordinatesService.zoomIn();
36375
- this._diagramBackgroundScale *= this._coordinatesService.scalingFactor;
36376
- this._diagramBackgroundActiveZoom = true;
36491
+ this._renderService.diagramBackgroundScale *= this._coordinatesService.scalingFactor;
36492
+ this._renderService.diagramBackgroundActiveZoom = true;
36377
36493
  this._scale(this._coordinatesService.scalingFactor, this._coordinatesService.scalingFactor);
36378
36494
  this.resizeView();
36379
36495
  this._requestDraw();
@@ -36382,16 +36498,14 @@ class FloorplannerComponent {
36382
36498
  if (!this._coordinatesService.canZoomOut) {
36383
36499
  return;
36384
36500
  }
36385
- this._clear();
36386
36501
  this._coordinatesService.zoomOut();
36387
- this._diagramBackgroundScale *= (1 / this._coordinatesService.scalingFactor);
36388
- this._diagramBackgroundActiveZoom = true;
36502
+ this._renderService.diagramBackgroundScale *= (1 / this._coordinatesService.scalingFactor);
36503
+ this._renderService.diagramBackgroundActiveZoom = true;
36389
36504
  this._scale(1 / this._coordinatesService.scalingFactor, 1 / this._coordinatesService.scalingFactor);
36390
36505
  this.resizeView();
36391
36506
  this._requestDraw();
36392
36507
  }
36393
36508
  zoomReset() {
36394
- this._clear();
36395
36509
  this._scale(1 / this._viewScale, 1 / this._viewScale);
36396
36510
  this.reset();
36397
36511
  }
@@ -36736,15 +36850,15 @@ class FloorplannerComponent {
36736
36850
  this._coordinatesService.resetOrigin();
36737
36851
  this._viewScale = 100;
36738
36852
  this._bluePrintService.reset();
36739
- this._diagramBackground = input.background;
36740
- this._diagramBackgroundHeight = input.backgroundHeight;
36741
- this._diagramBackgroundWidth = input.backgroundWidth;
36742
- this._diagramScale = input.scale;
36853
+ this._renderService.diagramBackground = input.background;
36854
+ this._renderService.diagramBackgroundHeight = input.backgroundHeight;
36855
+ this._renderService.diagramBackgroundWidth = input.backgroundWidth;
36856
+ this._renderService.diagramBackgroundScale = input.scale;
36743
36857
  this._cameraZoom = input.cameraZoom;
36744
36858
  this._requestDraw();
36745
36859
  }
36746
36860
  toggleDiagram() {
36747
- this._showDiagramBackground = !this._showDiagramBackground;
36861
+ this._renderService.showDiagramBackground = !this._renderService.showDiagramBackground;
36748
36862
  this._requestDraw();
36749
36863
  }
36750
36864
  _removeWall() {
@@ -36818,23 +36932,6 @@ class FloorplannerComponent {
36818
36932
  await this._bluePrintService.update();
36819
36933
  this._requestDraw();
36820
36934
  }
36821
- _drawBackground() {
36822
- if (this._diagramBackgroundActiveZoom) {
36823
- if (this._diagramBackgroundCurrentScale <= this._viewScale) {
36824
- this._diagramBackgroundWidth = this._diagramBackgroundWidth * this._coordinatesService.scalingFactor;
36825
- this._diagramBackgroundHeight = this._diagramBackgroundHeight * this._coordinatesService.scalingFactor;
36826
- }
36827
- else {
36828
- this._diagramBackgroundWidth = this._diagramBackgroundWidth * (1 / this._coordinatesService.scalingFactor);
36829
- this._diagramBackgroundHeight = this._diagramBackgroundHeight * (1 / this._coordinatesService.scalingFactor);
36830
- }
36831
- this._diagramBackgroundActiveZoom = false;
36832
- }
36833
- this._diagramBackgroundCurrentScale = this._viewScale;
36834
- this._context.globalAlpha = this._diagramBackgroundAlpha;
36835
- this._context.drawImage(this._diagramBackground, Math.abs(this._coordinatesService.originX) - (this._diagramBackgroundWidth * this._diagramScale / 2), Math.abs(this._coordinatesService.originY) - (this._diagramBackgroundHeight * this._diagramScale / 2), this._diagramBackgroundWidth * this._diagramScale, this._diagramBackgroundHeight * this._diagramScale);
36836
- this._context.globalAlpha = 1;
36837
- }
36838
36935
  _handleWindowResize() {
36839
36936
  if (this._canvas) {
36840
36937
  const parent = this._canvas.parentElement;
@@ -36847,11 +36944,6 @@ class FloorplannerComponent {
36847
36944
  this._requestDraw();
36848
36945
  }
36849
36946
  }
36850
- _clear() {
36851
- if (this._context && this._canvas) {
36852
- this._context.clearRect(0, 0, this._canvas.width, this._canvas.height);
36853
- }
36854
- }
36855
36947
  _updateWallPosition() {
36856
36948
  if (this._wallLength) {
36857
36949
  const startPoint = this._lastNode;
@@ -37193,7 +37285,7 @@ class FloorplannerComponent {
37193
37285
  {{ 'TAB_ANYWHERE_TO_START' | localize }}
37194
37286
  </div>
37195
37287
  }
37196
- `, isInline: true, styles: [":host{display:flex;height:100%;width:100%;background:#fff}:host.hidden{visibility:hidden}canvas{width:inherit;height:inherit}.controls-top{pointer-events:none;position:absolute;top:80px;width:100%;display:flex;align-items:center;justify-content:center}.controls-top:not(.disable-mouse)>*{pointer-events:all;margin:0 3px}.controls-top:not(.disable-mouse)>* .mdc-floating-label,.controls-top:not(.disable-mouse)>*.dimensioning-select,.controls-top:not(.disable-mouse)>*.round-select{pointer-events:all}.controls-top .mat-mdc-floating-label.mdc-floating-label{pointer-events:none!important}.controls-top .dimensioning-select,.controls-top .round-select{pointer-events:none;height:38px;width:70px;padding:5px;border:solid 1px rgba(0,0,0,.12);border-radius:3px;background:#fff}.hint{position:absolute;bottom:20px;left:50%;margin-left:-200px;padding:10px 20px;background:#74b77f;border:1px solid #cccccc;border-radius:3px;text-align:center}.mat-button-toggle-checked{color:#fff;background-color:#da9803}.mat-button-toggle-checked co-icon ::ng-deep svg{fill:#fff}.mat-button-toggle-checked co-icon ::ng-deep [fill]{fill:#fff}.mat-button-toggle ::ng-deep .mat-button-toggle-label-content{width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0}.mat-button-toggle ::ng-deep co-icon ::ng-deep{width:24px;height:24px}\n"], dependencies: [{ kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { 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: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: WallLengthInputComponent, selector: "wall-length-input" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
37288
+ `, isInline: true, styles: [":host{display:flex;height:100%;width:100%;background:#fff}:host.hidden{visibility:hidden}canvas{width:inherit;height:inherit}.controls-top{pointer-events:none;position:absolute;top:80px;width:100%;display:flex;align-items:center;justify-content:center}.controls-top:not(.disable-mouse)>*{pointer-events:all;margin:0 3px}.controls-top:not(.disable-mouse)>* .mdc-floating-label,.controls-top:not(.disable-mouse)>*.dimensioning-select,.controls-top:not(.disable-mouse)>*.round-select{pointer-events:all}.controls-top .mat-mdc-floating-label.mdc-floating-label{pointer-events:none!important}.controls-top .dimensioning-select,.controls-top .round-select{pointer-events:none;height:38px;width:70px;padding:5px;border:solid 1px rgba(0,0,0,.12);border-radius:3px;background:#fff}.hint{position:absolute;bottom:20px;left:50%;margin-left:-200px;padding:10px 20px;background:#74b77f;border:1px solid #cccccc;border-radius:3px;text-align:center}.mat-button-toggle-checked{color:#fff;background-color:#da9803}.mat-button-toggle-checked co-icon ::ng-deep svg{fill:#fff}.mat-button-toggle-checked co-icon ::ng-deep [fill]{fill:#fff}.mat-button-toggle ::ng-deep .mat-button-toggle-label-content{width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0}.mat-button-toggle ::ng-deep co-icon ::ng-deep{width:24px;height:24px}\n"], dependencies: [{ kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { 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: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: WallLengthInputComponent, selector: "wall-length-input" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
37197
37289
  }
37198
37290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FloorplannerComponent, decorators: [{
37199
37291
  type: Component,
@@ -37437,7 +37529,7 @@ class MaterialDialogComponent {
37437
37529
  </div>
37438
37530
  }
37439
37531
  </div>
37440
- `, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}:host .material-textures{padding:20px 0}\n"], dependencies: [{ kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "component", type: SelectedChildMaterialTexturesComponent, selector: "selected-child-material-textures", inputs: ["material"], outputs: ["mapChange"] }, { kind: "component", type: SelectedChildMaterialColorComponent, selector: "selected-child-material-color", inputs: ["material"], outputs: ["colorChange"] }, { kind: "component", type: i5.ListOfValuesComponent, selector: "co-list-of-values", inputs: ["model", "multiselect", "showToggleAll", "largeCollection", "displayField", "optionIcon", "collection", "collectionLoadFn", "collectionLoadFnProp", "leftIconData", "searchPlaceholder", "searchDisabled", "showChips"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
37532
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}:host .material-textures{padding:20px 0}\n"], dependencies: [{ kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "component", type: SelectedChildMaterialTexturesComponent, selector: "selected-child-material-textures", inputs: ["material"], outputs: ["mapChange"] }, { kind: "component", type: SelectedChildMaterialColorComponent, selector: "selected-child-material-color", inputs: ["material"], outputs: ["colorChange"] }, { kind: "component", type: i5$1.ListOfValuesComponent, selector: "co-list-of-values", inputs: ["model", "multiselect", "showToggleAll", "largeCollection", "displayField", "optionIcon", "collection", "collectionLoadFn", "collectionLoadFnProp", "leftIconData", "searchPlaceholder", "searchDisabled", "showChips"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
37441
37533
  }
37442
37534
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MaterialDialogComponent, decorators: [{
37443
37535
  type: Component,
@@ -37482,9 +37574,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
37482
37574
  }] }] });
37483
37575
 
37484
37576
  class ModelUploaderComponent {
37485
- constructor(settingsService, _messageService) {
37486
- this.settingsService = settingsService;
37487
- this._messageService = _messageService;
37577
+ constructor() {
37488
37578
  this.fileUploaded = new EventEmitter();
37489
37579
  this.file = null;
37490
37580
  this.fileMaxSize = 30; // file size in mb
@@ -37545,7 +37635,7 @@ class ModelUploaderComponent {
37545
37635
  reader.readAsArrayBuffer(file);
37546
37636
  });
37547
37637
  }
37548
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModelUploaderComponent, deps: [{ token: HomedecoratorSettingsService }, { token: MessageBusService }], target: i0.ɵɵFactoryTarget.Component }); }
37638
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModelUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37549
37639
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ModelUploaderComponent, isStandalone: false, selector: "rp-model-uploader", outputs: { fileUploaded: "fileUploaded" }, viewQueries: [{ propertyName: "fileUploadInput", first: true, predicate: ["fileUpload"], descendants: true }], ngImport: i0, template: `
37550
37640
  <div class="model-upload-container" (click)="fileUpload.click()">
37551
37641
  <div class="header-container">
@@ -37565,7 +37655,7 @@ class ModelUploaderComponent {
37565
37655
  }
37566
37656
  <input style="display: none;" type="file" id="fileUpload" class="file-input" (change)="onChange($event)" #fileUpload/>
37567
37657
  </div>
37568
- `, isInline: true, styles: [".model-upload-container{border:1px solid #5b6875;box-sizing:border-box;padding:10px;width:100%;max-width:400px;border-radius:4px;cursor:pointer}.model-upload-container .header-container{display:flex;justify-content:space-between}.model-upload-container .header-container h3{font-weight:bolder;font-size:18px;padding:0;margin:0}.model-upload-container .header-container .description{font-size:12px;margin:0;padding:0}.modelSupport{display:block;font-size:12px;font-style:italic}.upload-error-container{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border-radius:.25rem;color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
37658
+ `, isInline: true, styles: [".model-upload-container{border:1px solid #5b6875;box-sizing:border-box;padding:10px;width:100%;max-width:400px;border-radius:4px;cursor:pointer}.model-upload-container .header-container{display:flex;justify-content:space-between}.model-upload-container .header-container h3{font-weight:bolder;font-size:18px;padding:0;margin:0}.model-upload-container .header-container .description{font-size:12px;margin:0;padding:0}.modelSupport{display:block;font-size:12px;font-style:italic}.upload-error-container{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border-radius:.25rem;color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
37569
37659
  }
37570
37660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModelUploaderComponent, decorators: [{
37571
37661
  type: Component,
@@ -37589,7 +37679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
37589
37679
  <input style="display: none;" type="file" id="fileUpload" class="file-input" (change)="onChange($event)" #fileUpload/>
37590
37680
  </div>
37591
37681
  `, standalone: false, styles: [".model-upload-container{border:1px solid #5b6875;box-sizing:border-box;padding:10px;width:100%;max-width:400px;border-radius:4px;cursor:pointer}.model-upload-container .header-container{display:flex;justify-content:space-between}.model-upload-container .header-container h3{font-weight:bolder;font-size:18px;padding:0;margin:0}.model-upload-container .header-container .description{font-size:12px;margin:0;padding:0}.modelSupport{display:block;font-size:12px;font-style:italic}.upload-error-container{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border-radius:.25rem;color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}\n"] }]
37592
- }], ctorParameters: () => [{ type: HomedecoratorSettingsService }, { type: MessageBusService }], propDecorators: { fileUploadInput: [{
37682
+ }], propDecorators: { fileUploadInput: [{
37593
37683
  type: ViewChild,
37594
37684
  args: ['fileUpload']
37595
37685
  }], fileUploaded: [{
@@ -38405,7 +38495,7 @@ class ModelPreviewComponent {
38405
38495
 
38406
38496
  </div>
38407
38497
  </div>
38408
- `, isInline: true, styles: [".model-preview{display:flex;flex-direction:row;font-size:14px;position:relative}.model-preview .model-preview-window .model-preview-window-bottom{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.model-preview .model-preview-window .model-preview-window-bottom .disclaimer-text-container{padding-right:20px;text-align:right;font-style:italic;font-size:12px}.model-preview .model-preview-actions{min-width:350px;box-sizing:border-box;padding:10px 20px;border-left:1px solid #5b6875}.model-preview .model-preview-actions #heightArticle{max-width:160px}.model-preview .model-preview-actions .units-select-form{width:80px;margin:0 5px}.model-preview .model-preview-actions .model-preview-info-container{margin-bottom:10px}.model-preview .model-preview-actions .model-preview-info-container .model-preview-info-left{font-weight:bolder}.model-preview .model-preview-actions .model-preview-info{margin-top:80px}.model-preview .exportButton{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}.model-preview .exportButton:hover{background:#da9803;color:#fff}.model-preview input{border:1px solid #5b6875;box-sizing:border-box;padding:3px 10px;border-radius:3px;line-height:30px;width:100%}.mat-radio-wrapper{margin:10px 0}mat-radio-group mat-radio-button{display:block}.base-button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:4px 10px;line-height:30px}.base-button:hover{background:#da9803;color:#fff}.model-placement-container div{display:flex;justify-content:space-between;margin:5px 0;align-items:center}.rotation-button-container div{display:flex;justify-content:space-between;margin-bottom:5px}.rotation-button-container div p{margin:0;padding:0}.rotation-button-container div button{display:flex;justify-content:center;align-items:center;margin:0 0 0 10px;cursor:pointer;color:#5b6875;background:#fff;border:2px solid #5b6875;border-radius:50%;box-sizing:border-box;padding:0;height:22px;width:22px;font-size:18px}.rotation-button-container div button svg [fill]{fill:#5b6875}.rotation-button-container div button:hover{background:#da9803;color:#fff}.rotation-button-container div .button-as-link{color:#da9803;border:none;width:100%;height:100%;font-size:14px;position:relative;top:-15px}.rotation-button-container div .button-as-link ::ng-deep mat-icon{width:25px;height:25px;position:relative;top:8px}.rotation-button-container div .button-as-link ::ng-deep mat-icon svg path{fill:#da9803}.rotation-button-container div .button-as-link:hover{background:none;color:#da9803}.error-container{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid #f5c6cb;border-radius:.25rem;color:#721c24;background-color:#f8d7da;max-width:190px}.exportButton,.exportButtonDark{display:inline-block!important;margin-right:10px}.exportButtonDark{background:#5b6875;border-color:#5b6875}.exportButtonDark:hover{background:#5b6875;color:#fff}.model-close-preview{text-align:right;cursor:pointer}.model-error-background{position:absolute;inset:-52px -24px -24px;z-index:99;background:#0009}.model-error-container{position:relative;background:#fff;box-sizing:border-box;padding:10px 25px;border:1px solid #5b6875;top:30%;left:50%;width:400px;margin-left:-200px}.model-error-container .model-error-header{display:flex;justify-content:space-between}:host ::ng-deep .mat-mdc-form-field-wrapper{padding-bottom:0;border:1px solid #5b6875;border-radius:4px}:host ::ng-deep .mat-mdc-form-field-appearance-legacy .mat-mdc-form-field-infix{padding:0;border:none}:host ::ng-deep .mat-select-value{padding-left:5px}:host ::ng-deep .mat-mdc-form-field-appearance-legacy .mat-mdc-form-field-underline{height:0}:host ::ng-deep .mat-select-trigger{line-height:36px}:host ::ng-deep mat-icon{width:18px;height:18px}:host ::ng-deep mat-icon svg path{fill:#5b6875}:host ::ng-deep .mat-slide-toggle-content{width:calc(100% - 36px);min-width:300px}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoaderComponent, selector: "rp-loader", inputs: ["show"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i12.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: i12.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"] }], encapsulation: i0.ViewEncapsulation.None }); }
38498
+ `, isInline: true, styles: [".model-preview{display:flex;flex-direction:row;font-size:14px;position:relative}.model-preview .model-preview-window .model-preview-window-bottom{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.model-preview .model-preview-window .model-preview-window-bottom .disclaimer-text-container{padding-right:20px;text-align:right;font-style:italic;font-size:12px}.model-preview .model-preview-actions{min-width:350px;box-sizing:border-box;padding:10px 20px;border-left:1px solid #5b6875}.model-preview .model-preview-actions #heightArticle{max-width:160px}.model-preview .model-preview-actions .units-select-form{width:80px;margin:0 5px}.model-preview .model-preview-actions .model-preview-info-container{margin-bottom:10px}.model-preview .model-preview-actions .model-preview-info-container .model-preview-info-left{font-weight:bolder}.model-preview .model-preview-actions .model-preview-info{margin-top:80px}.model-preview .exportButton{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}.model-preview .exportButton:hover{background:#da9803;color:#fff}.model-preview input{border:1px solid #5b6875;box-sizing:border-box;padding:3px 10px;border-radius:3px;line-height:30px;width:100%}.mat-radio-wrapper{margin:10px 0}mat-radio-group mat-radio-button{display:block}.base-button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:4px 10px;line-height:30px}.base-button:hover{background:#da9803;color:#fff}.model-placement-container div{display:flex;justify-content:space-between;margin:5px 0;align-items:center}.rotation-button-container div{display:flex;justify-content:space-between;margin-bottom:5px}.rotation-button-container div p{margin:0;padding:0}.rotation-button-container div button{display:flex;justify-content:center;align-items:center;margin:0 0 0 10px;cursor:pointer;color:#5b6875;background:#fff;border:2px solid #5b6875;border-radius:50%;box-sizing:border-box;padding:0;height:22px;width:22px;font-size:18px}.rotation-button-container div button svg [fill]{fill:#5b6875}.rotation-button-container div button:hover{background:#da9803;color:#fff}.rotation-button-container div .button-as-link{color:#da9803;border:none;width:100%;height:100%;font-size:14px;position:relative;top:-15px}.rotation-button-container div .button-as-link ::ng-deep mat-icon{width:25px;height:25px;position:relative;top:8px}.rotation-button-container div .button-as-link ::ng-deep mat-icon svg path{fill:#da9803}.rotation-button-container div .button-as-link:hover{background:none;color:#da9803}.error-container{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid #f5c6cb;border-radius:.25rem;color:#721c24;background-color:#f8d7da;max-width:190px}.exportButton,.exportButtonDark{display:inline-block!important;margin-right:10px}.exportButtonDark{background:#5b6875;border-color:#5b6875}.exportButtonDark:hover{background:#5b6875;color:#fff}.model-close-preview{text-align:right;cursor:pointer}.model-error-background{position:absolute;inset:-52px -24px -24px;z-index:99;background:#0009}.model-error-container{position:relative;background:#fff;box-sizing:border-box;padding:10px 25px;border:1px solid #5b6875;top:30%;left:50%;width:400px;margin-left:-200px}.model-error-container .model-error-header{display:flex;justify-content:space-between}:host ::ng-deep .mat-mdc-form-field-wrapper{padding-bottom:0;border:1px solid #5b6875;border-radius:4px}:host ::ng-deep .mat-mdc-form-field-appearance-legacy .mat-mdc-form-field-infix{padding:0;border:none}:host ::ng-deep .mat-select-value{padding-left:5px}:host ::ng-deep .mat-mdc-form-field-appearance-legacy .mat-mdc-form-field-underline{height:0}:host ::ng-deep .mat-select-trigger{line-height:36px}:host ::ng-deep mat-icon{width:18px;height:18px}:host ::ng-deep mat-icon svg path{fill:#5b6875}:host ::ng-deep .mat-slide-toggle-content{width:calc(100% - 36px);min-width:300px}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoaderComponent, selector: "rp-loader", inputs: ["show"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i12.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: i12.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"] }], encapsulation: i0.ViewEncapsulation.None }); }
38409
38499
  }
38410
38500
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModelPreviewComponent, decorators: [{
38411
38501
  type: Component,
@@ -39170,7 +39260,7 @@ class ButtonElevationComponent {
39170
39260
  </button>
39171
39261
  </div>
39172
39262
  }
39173
- `, isInline: true, styles: [":host{position:relative}:host button ::ng-deep co-icon svg [fill]{fill:#fff}:host .main-button{z-index:1}:host .extended-wrapper .extended-wrapper-flex{display:flex;width:calc(100% - 10px);margin-left:10px}:host .extended-wrapper .extended-button{cursor:pointer;background:transparent;border:none;color:#fff}:host .extended-wrapper .extended-lock-button{box-shadow:none;display:block;margin:0 auto}:host .extended-wrapper #up_button,:host .extended-wrapper #down_button{flex:0 0 20%;align-items:center;justify-content:center;width:35px;height:35px}:host .extended-wrapper .label-wrapper{flex:0 0 60%;align-items:center;justify-content:center;background:none;border-radius:15px}:host .extended-wrapper .label-wrapper label{display:none;font-weight:700;font-size:12px;text-align:center;line-height:35px}:host .extended-wrapper .label-wrapper label.show{display:block;color:#fff}:host .extended-wrapper .label-wrapper input{display:none;width:100%;font-weight:700;font-size:12px;text-align:center;line-height:35px}:host .extended-wrapper .label-wrapper input.show{display:block}:host,button-elevation{color:#fff}:host .rp-item-context-menu-item,button-elevation .rp-item-context-menu-item{cursor:pointer;padding:5px 15px 5px 0;border-radius:5px}:host .rp-item-context-menu-item span,:host .rp-item-context-menu-item label,button-elevation .rp-item-context-menu-item span,button-elevation .rp-item-context-menu-item label{display:inline-block;width:auto;line-height:24px;font-size:12px;font-weight:lighter;vertical-align:middle}:host .rp-item-context-menu-item .icon,button-elevation .rp-item-context-menu-item .icon{margin-right:10px}:host .rp-item-context-menu-item .icon svg,button-elevation .rp-item-context-menu-item .icon svg{height:15px;width:15px}:host .rp-item-context-menu-item:hover,button-elevation .rp-item-context-menu-item:hover{background:#dcdcdc80}:host .rp-item-context-menu-header,button-elevation .rp-item-context-menu-header{border-bottom:1px solid #808080;margin-bottom:10px;padding-left:15px}:host .rp-item-context-menu-header p,button-elevation .rp-item-context-menu-header p{color:#da9803;font-size:14px}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { 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.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { 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: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: MToMeasurePipe, name: "mToMeasure" }], animations: [
39263
+ `, isInline: true, styles: [":host{position:relative}:host button ::ng-deep co-icon svg [fill]{fill:#fff}:host .main-button{z-index:1}:host .extended-wrapper .extended-wrapper-flex{display:flex;width:calc(100% - 10px);margin-left:10px}:host .extended-wrapper .extended-button{cursor:pointer;background:transparent;border:none;color:#fff}:host .extended-wrapper .extended-lock-button{box-shadow:none;display:block;margin:0 auto}:host .extended-wrapper #up_button,:host .extended-wrapper #down_button{flex:0 0 20%;align-items:center;justify-content:center;width:35px;height:35px}:host .extended-wrapper .label-wrapper{flex:0 0 60%;align-items:center;justify-content:center;background:none;border-radius:15px}:host .extended-wrapper .label-wrapper label{display:none;font-weight:700;font-size:12px;text-align:center;line-height:35px}:host .extended-wrapper .label-wrapper label.show{display:block;color:#fff}:host .extended-wrapper .label-wrapper input{display:none;width:100%;font-weight:700;font-size:12px;text-align:center;line-height:35px}:host .extended-wrapper .label-wrapper input.show{display:block}:host,button-elevation{color:#fff}:host .rp-item-context-menu-item,button-elevation .rp-item-context-menu-item{cursor:pointer;padding:5px 15px 5px 0;border-radius:5px}:host .rp-item-context-menu-item span,:host .rp-item-context-menu-item label,button-elevation .rp-item-context-menu-item span,button-elevation .rp-item-context-menu-item label{display:inline-block;width:auto;line-height:24px;font-size:12px;font-weight:lighter;vertical-align:middle}:host .rp-item-context-menu-item .icon,button-elevation .rp-item-context-menu-item .icon{margin-right:10px}:host .rp-item-context-menu-item .icon svg,button-elevation .rp-item-context-menu-item .icon svg{height:15px;width:15px}:host .rp-item-context-menu-item:hover,button-elevation .rp-item-context-menu-item:hover{background:#dcdcdc80}:host .rp-item-context-menu-header,button-elevation .rp-item-context-menu-header{border-bottom:1px solid #808080;margin-bottom:10px;padding-left:15px}:host .rp-item-context-menu-header p,button-elevation .rp-item-context-menu-header p{color:#da9803;font-size:14px}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { 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.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { 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$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: MToMeasurePipe, name: "mToMeasure" }], animations: [
39174
39264
  trigger('showHideExtended', [
39175
39265
  transition('void <=> *', [
39176
39266
  query('@*', animateChild(), { optional: true })
@@ -39322,7 +39412,7 @@ class ObjectLibraryComponent {
39322
39412
  this.setDragged.emit(object);
39323
39413
  }
39324
39414
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ObjectLibraryComponent, deps: [{ token: MessageBusService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
39325
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ObjectLibraryComponent, isStandalone: false, selector: "rp-object-library", inputs: { objects: "objects" }, outputs: { setDragged: "setDragged", releaseDragged: "releaseDragged", onObjectClick: "onObjectClick" }, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"150px\">\r\n @for (object of objects; track object) {\r\n <mat-grid-tile (click)=\"onObjectClick.emit(object)\">\r\n <mat-grid-tile-header\r\n draggable=\"true\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, object)\"\r\n (dragstart)=\"dragstart($event, object)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n >\r\n {{object.name | localize}}\r\n </mat-grid-tile-header>\r\n <img\r\n [src]=\"assetPath + object.thumbnailUrl\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, object)\"\r\n (dragstart)=\"dragstart($event, object)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n />\r\n <co-button [label]=\"'LOOKAT' | localize\" class=\"lookat\"></co-button>\r\n @if (object.description) {\r\n <div class=\"description-wrapper\">\r\n @if (object.description) {\r\n <span class=\"description\" [textContent]=\"object.description | localize\"></span>\r\n }\r\n </div>\r\n }\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n", styles: [":host{overflow-y:auto}:host .description-wrapper{display:flex;align-items:center;justify-content:center;position:absolute;bottom:0;width:100%;background:#ffffff80}:host .description{margin:5px;font-size:11px;word-break:break-word;white-space:normal}:host .co-button{background-color:#da9803;border-radius:20px}:host .co-button:hover{filter:none}.lookat{position:absolute;display:none}mat-grid-tile:hover{cursor:pointer}mat-grid-tile:hover .lookat{display:flex}button.close{height:36px;width:36px;min-width:initial;padding:0;border:none;position:absolute;right:0;top:10px;border-radius:50%}\n"], dependencies: [{ kind: "component", type: i3$4.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$4.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$4.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$4.MatGridTileHeaderCssMatStyler, selector: "mat-grid-tile-header" }, { kind: "component", type: i5.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
39415
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ObjectLibraryComponent, isStandalone: false, selector: "rp-object-library", inputs: { objects: "objects" }, outputs: { setDragged: "setDragged", releaseDragged: "releaseDragged", onObjectClick: "onObjectClick" }, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"150px\">\r\n @for (object of objects; track object) {\r\n <mat-grid-tile (click)=\"onObjectClick.emit(object)\">\r\n <mat-grid-tile-header\r\n draggable=\"true\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, object)\"\r\n (dragstart)=\"dragstart($event, object)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n >\r\n {{object.name | localize}}\r\n </mat-grid-tile-header>\r\n <img\r\n [src]=\"assetPath + object.thumbnailUrl\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, object)\"\r\n (dragstart)=\"dragstart($event, object)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n />\r\n <co-button [label]=\"'LOOKAT' | localize\" class=\"lookat\"></co-button>\r\n @if (object.description) {\r\n <div class=\"description-wrapper\">\r\n @if (object.description) {\r\n <span class=\"description\" [textContent]=\"object.description | localize\"></span>\r\n }\r\n </div>\r\n }\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n", styles: [":host{overflow-y:auto}:host .description-wrapper{display:flex;align-items:center;justify-content:center;position:absolute;bottom:0;width:100%;background:#ffffff80}:host .description{margin:5px;font-size:11px;word-break:break-word;white-space:normal}:host .co-button{background-color:#da9803;border-radius:20px}:host .co-button:hover{filter:none}.lookat{position:absolute;display:none}mat-grid-tile:hover{cursor:pointer}mat-grid-tile:hover .lookat{display:flex}button.close{height:36px;width:36px;min-width:initial;padding:0;border:none;position:absolute;right:0;top:10px;border-radius:50%}\n"], dependencies: [{ kind: "component", type: i3$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$3.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$3.MatGridTileHeaderCssMatStyler, selector: "mat-grid-tile-header" }, { kind: "component", type: i5$1.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
39326
39416
  }
39327
39417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ObjectLibraryComponent, decorators: [{
39328
39418
  type: Component,
@@ -39398,7 +39488,7 @@ class FileDropComponent {
39398
39488
  return imageElement.src;
39399
39489
  }
39400
39490
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39401
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FileDropComponent, isStandalone: false, selector: "rp-file-drop", inputs: { showDragDrop: "showDragDrop", showRemove: "showRemove" }, outputs: { fileContentChanged: "fileContentChanged", removeClick: "removeClick" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"FileDrop\" [class.small]=\"!showDragDrop\"\r\n (drop)=\"onDrop($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n @if (showDragDrop) {\r\n <mat-icon class=\"homedecorator-material-icons\">cloud_upload</mat-icon>\r\n <p>\r\n {{'DRAG_DROP_FILES_HERE' | localize}}\r\n </p>\r\n <span>{{'OR' | localize}}</span>\r\n }\r\n <button mat-button (click)=\"fileInput.click()\">{{'BROWSE_FILES' | localize}}</button>\r\n @if (showRemove) {\r\n <button mat-button (click)=\"removeClick.emit($event)\">{{'REMOVE_FILE' | localize}}</button>\r\n }\r\n <input type=\"file\" (change)=\"readPhoto($event.target.files[0])\" style=\"display: none\" #fileInput>\r\n</div>\r\n", styles: [".FileDrop{box-sizing:border-box;margin:0 auto 15px 0;position:relative}.FileDrop:not(.small){height:200px}.FileDrop:before{content:\" \";border:2px dashed rgba(78,82,89,.45);display:block;height:87%;left:50%;opacity:.75;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:95%}.FileDrop p{margin:.5em 0}.FileDrop button{color:#53c0f9;font-size:12px}\n"], dependencies: [{ 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: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i14.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: i14.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: "pipe", type: LocalizePipe, name: "localize" }] }); }
39491
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FileDropComponent, isStandalone: false, selector: "rp-file-drop", inputs: { showDragDrop: "showDragDrop", showRemove: "showRemove" }, outputs: { fileContentChanged: "fileContentChanged", removeClick: "removeClick" }, viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"FileDrop\" [class.small]=\"!showDragDrop\"\r\n (drop)=\"onDrop($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n @if (showDragDrop) {\r\n <mat-icon class=\"homedecorator-material-icons\">cloud_upload</mat-icon>\r\n <p>\r\n {{'DRAG_DROP_FILES_HERE' | localize}}\r\n </p>\r\n <span>{{'OR' | localize}}</span>\r\n }\r\n <button mat-button (click)=\"fileInput.click()\">{{'BROWSE_FILES' | localize}}</button>\r\n @if (showRemove) {\r\n <button mat-button (click)=\"removeClick.emit($event)\">{{'REMOVE_FILE' | localize}}</button>\r\n }\r\n <input type=\"file\" (change)=\"readPhoto($event.target.files[0])\" style=\"display: none\" #fileInput>\r\n</div>\r\n", styles: [".FileDrop{box-sizing:border-box;margin:0 auto 15px 0;position:relative}.FileDrop:not(.small){height:200px}.FileDrop:before{content:\" \";border:2px dashed rgba(78,82,89,.45);display:block;height:87%;left:50%;opacity:.75;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:95%}.FileDrop p{margin:.5em 0}.FileDrop button{color:#53c0f9;font-size:12px}\n"], dependencies: [{ 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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i14.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: i14.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: "pipe", type: LocalizePipe, name: "localize" }] }); }
39402
39492
  }
39403
39493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FileDropComponent, decorators: [{
39404
39494
  type: Component,
@@ -39967,7 +40057,7 @@ class TextureEditorComponent {
39967
40057
  return destCanvas;
39968
40058
  }
39969
40059
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextureEditorComponent, deps: [{ token: MessageBusService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
39970
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TextureEditorComponent, isStandalone: false, selector: "rp-texture-editor", inputs: { width: "width", height: "height", texturePlane: "texturePlane", plainTexture: "plainTexture", changedTexture: "changedTexture", tiled: "tiled", options: "options", dragNDropEnforced: "dragNDropEnforced" }, outputs: { setTexture: "setTexture", removeTexture: "removeTexture" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }, { propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<rp-file-drop\r\n [showDragDrop]=\"((!changedTexture || texture?.type === textureType.Basic) && options !== Options.None) || dragNDropEnforced\"\r\n [showRemove]=\"changedTexture\"\r\n (fileContentChanged)=\"onPhotoDataChange($event)\"\r\n (removeClick)=\"handleRemoveTextureClick($event)\"\r\n >\r\n</rp-file-drop>\r\n\r\n@if (imageHasBeenResized) {\r\n <div class=\"resize-message-wrapper\">\r\n <span class=\"resize-message\" [textContent]=\"'IMAGE_RESIZED' | localize\"></span>\r\n </div>\r\n}\r\n<div class=\"picture-editor\" [hidden]=\"!texture || !changedTexture || dragNDropEnforced\">\r\n <div class=\"picture-editor-canvas\"\r\n [hidden]=\"options === Options.None || (texture?.type === textureType.Basic)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <div\r\n class=\"canvas-wrapper\"\r\n fxLayout=\"column inline\"\r\n fxLayoutAlign=\"center center\">\r\n <canvas [hidden]=\"texture && texture.stretch\" #canvas></canvas>\r\n @if (options === Options.Both) {\r\n <mat-button-toggle-group\r\n (change)=\"tiledChanged($event.value === 'texture')\"\r\n [value]=\"tiled ? 'texture' : 'stretch'\"\r\n >\r\n <mat-button-toggle\r\n value=\"stretch\"\r\n title=\"{{'PICTURE' | localize}}\"\r\n [checked]=\"!tiled\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">photo_size_select_large</mat-icon>\r\n {{'SKIN_FULL_WALL' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n <mat-button-toggle\r\n value=\"texture\"\r\n title=\"{{'TILE' | localize}}\"\r\n [checked]=\"tiled\"\r\n >\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">texture</mat-icon>\r\n {{'CREATE_TEXTURE' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (texture?.type === textureType.CustomPattern\r\n || ((texture?.type === textureType.Basic || texture?.type === textureType.PBR)\r\n && options === Options.None)) {\r\n <div class=\"sliders\">\r\n <rp-slider-input\r\n title=\"{{'TILE_ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"tileRotationDeg\"\r\n (onChange)=\"onTileRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'TILE_SIZE' | localize}}\"\r\n [min]=\"tileSizeMin\"\r\n [max]=\"tileSizeMax\"\r\n step=\"0.1\"\r\n [value]=\"tileSize\"\r\n (onChange)=\"onTileSizeChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n }\r\n\r\n @if (!isBasic(texture) && !isPBR(texture)) {\r\n <div class=\"sliders\">\r\n <rp-slider-input\r\n title=\"{{'ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"textureRotationDeg\"\r\n (onChange)=\"onRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'ZOOM' | localize}}\"\r\n [min]=\"-zoomSliderMax\"\r\n [max]=\"zoomSliderMax\"\r\n step=\"0.1\"\r\n [value]=\"textureScaleSlider\"\r\n (onChange)=\"onScaleChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n }\r\n\r\n <!--\r\n <footer class=\"picture-editor-footer\">\r\n <button *ngIf=\"texture?.type !== TextureType.Basic || options === Options.None\"\r\n mat-stroked-button color=\"warn\"\r\n (click)=\"resetTexture()\"\r\n >\r\n {{ 'Remove' | localize }}\r\n </button>\r\n </footer>\r\n -->\r\n</div>\r\n", styles: ["rp-texture-editor{display:block;width:100%}.picture-editor-footer{margin-bottom:16px}.picture-editor-canvas{margin-top:.75em;margin-bottom:1.5em;text-align:center}.canvas-wrapper{position:relative}.canvas-wrapper mat-button-toggle-group{text-align:center;width:320px}.canvas-wrapper mat-button-toggle{flex-basis:50%;padding:4px 0}.resize-message-wrapper{margin:10px 3px 3px;text-align:-webkit-center}.resize-message-wrapper .resize-message{color:red;font-style:italic;font-weight:700;font-size:.9em}:host ::ng-deep .mat-slider-ticks-container{background-color:transparent}:host ::ng-deep .mat-slider-track-wrapper{overflow:visible}:host ::ng-deep .mat-slider-track-background{background-color:#ccc}:host ::ng-deep .mat-slider-track-fill{background-color:#da9803}:host ::ng-deep .mat-slider-thumb-label{background-color:#da9803}:host ::ng-deep .mat-slider-thumb{background-color:#da9803}\n"], dependencies: [{ kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SliderInputComponent, selector: "rp-slider-input", inputs: ["title", "min", "max", "step", "value"], outputs: ["onChange"] }, { kind: "directive", type: i14.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: i14.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: "component", type: FileDropComponent, selector: "rp-file-drop", inputs: ["showDragDrop", "showRemove"], outputs: ["fileContentChanged", "removeClick"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
40060
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TextureEditorComponent, isStandalone: false, selector: "rp-texture-editor", inputs: { width: "width", height: "height", texturePlane: "texturePlane", plainTexture: "plainTexture", changedTexture: "changedTexture", tiled: "tiled", options: "options", dragNDropEnforced: "dragNDropEnforced" }, outputs: { setTexture: "setTexture", removeTexture: "removeTexture" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }, { propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<rp-file-drop\r\n [showDragDrop]=\"((!changedTexture || texture?.type === textureType.Basic) && options !== Options.None) || dragNDropEnforced\"\r\n [showRemove]=\"changedTexture\"\r\n (fileContentChanged)=\"onPhotoDataChange($event)\"\r\n (removeClick)=\"handleRemoveTextureClick($event)\"\r\n >\r\n</rp-file-drop>\r\n\r\n@if (imageHasBeenResized) {\r\n <div class=\"resize-message-wrapper\">\r\n <span class=\"resize-message\" [textContent]=\"'IMAGE_RESIZED' | localize\"></span>\r\n </div>\r\n}\r\n<div class=\"picture-editor\" [hidden]=\"!texture || !changedTexture || dragNDropEnforced\">\r\n <div class=\"picture-editor-canvas\"\r\n [hidden]=\"options === Options.None || (texture?.type === textureType.Basic)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\">\r\n <div\r\n class=\"canvas-wrapper\"\r\n fxLayout=\"column inline\"\r\n fxLayoutAlign=\"center center\">\r\n <canvas [hidden]=\"texture && texture.stretch\" #canvas></canvas>\r\n @if (options === Options.Both) {\r\n <mat-button-toggle-group\r\n (change)=\"tiledChanged($event.value === 'texture')\"\r\n [value]=\"tiled ? 'texture' : 'stretch'\"\r\n >\r\n <mat-button-toggle\r\n value=\"stretch\"\r\n title=\"{{'PICTURE' | localize}}\"\r\n [checked]=\"!tiled\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">photo_size_select_large</mat-icon>\r\n {{'SKIN_FULL_WALL' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n <mat-button-toggle\r\n value=\"texture\"\r\n title=\"{{'TILE' | localize}}\"\r\n [checked]=\"tiled\"\r\n >\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">texture</mat-icon>\r\n {{'CREATE_TEXTURE' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (texture?.type === textureType.CustomPattern\r\n || ((texture?.type === textureType.Basic || texture?.type === textureType.PBR)\r\n && options === Options.None)) {\r\n <div class=\"sliders\">\r\n <rp-slider-input\r\n title=\"{{'TILE_ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"tileRotationDeg\"\r\n (onChange)=\"onTileRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'TILE_SIZE' | localize}}\"\r\n [min]=\"tileSizeMin\"\r\n [max]=\"tileSizeMax\"\r\n step=\"0.1\"\r\n [value]=\"tileSize\"\r\n (onChange)=\"onTileSizeChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n }\r\n\r\n @if (!isBasic(texture) && !isPBR(texture)) {\r\n <div class=\"sliders\">\r\n <rp-slider-input\r\n title=\"{{'ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"textureRotationDeg\"\r\n (onChange)=\"onRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'ZOOM' | localize}}\"\r\n [min]=\"-zoomSliderMax\"\r\n [max]=\"zoomSliderMax\"\r\n step=\"0.1\"\r\n [value]=\"textureScaleSlider\"\r\n (onChange)=\"onScaleChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n }\r\n\r\n <!--\r\n <footer class=\"picture-editor-footer\">\r\n <button *ngIf=\"texture?.type !== TextureType.Basic || options === Options.None\"\r\n mat-stroked-button color=\"warn\"\r\n (click)=\"resetTexture()\"\r\n >\r\n {{ 'Remove' | localize }}\r\n </button>\r\n </footer>\r\n -->\r\n</div>\r\n", styles: ["rp-texture-editor{display:block;width:100%}.picture-editor-footer{margin-bottom:16px}.picture-editor-canvas{margin-top:.75em;margin-bottom:1.5em;text-align:center}.canvas-wrapper{position:relative}.canvas-wrapper mat-button-toggle-group{text-align:center;width:320px}.canvas-wrapper mat-button-toggle{flex-basis:50%;padding:4px 0}.resize-message-wrapper{margin:10px 3px 3px;text-align:-webkit-center}.resize-message-wrapper .resize-message{color:red;font-style:italic;font-weight:700;font-size:.9em}:host ::ng-deep .mat-slider-ticks-container{background-color:transparent}:host ::ng-deep .mat-slider-track-wrapper{overflow:visible}:host ::ng-deep .mat-slider-track-background{background-color:#ccc}:host ::ng-deep .mat-slider-track-fill{background-color:#da9803}:host ::ng-deep .mat-slider-thumb-label{background-color:#da9803}:host ::ng-deep .mat-slider-thumb{background-color:#da9803}\n"], dependencies: [{ kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: SliderInputComponent, selector: "rp-slider-input", inputs: ["title", "min", "max", "step", "value"], outputs: ["onChange"] }, { kind: "directive", type: i14.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: i14.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: "component", type: FileDropComponent, selector: "rp-file-drop", inputs: ["showDragDrop", "showRemove"], outputs: ["fileContentChanged", "removeClick"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
39971
40061
  }
39972
40062
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TextureEditorComponent, decorators: [{
39973
40063
  type: Component,
@@ -40112,7 +40202,7 @@ class RalColorPickerComponent {
40112
40202
  }
40113
40203
  </mat-grid-list>
40114
40204
  }
40115
- `, isInline: true, styles: [".color-small-cell{width:70px;height:70px;margin:0 5px}.ral-info{width:calc(100% - 70px);padding:0 10px;overflow:hidden}.ral-color-ral{font-weight:700}.ral-color-name{font-size:small;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}mat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}mat-icon.color-variants{left:24px;top:29px;transform:none}.mat-grid-list{padding:10px 0}.mat-grid-tile .mat-grid-tile-header.color-header{display:block;padding:0;width:24px;height:24px;line-height:24px;top:8px;left:8px;text-align:center;background:transparent}\n"], dependencies: [{ kind: "component", type: i3$4.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$4.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$4.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$4.MatGridTileHeaderCssMatStyler, selector: "mat-grid-tile-header" }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
40205
+ `, isInline: true, styles: [".color-small-cell{width:70px;height:70px;margin:0 5px}.ral-info{width:calc(100% - 70px);padding:0 10px;overflow:hidden}.ral-color-ral{font-weight:700}.ral-color-name{font-size:small;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}mat-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}mat-icon.color-variants{left:24px;top:29px;transform:none}.mat-grid-list{padding:10px 0}.mat-grid-tile .mat-grid-tile-header.color-header{display:block;padding:0;width:24px;height:24px;line-height:24px;top:8px;left:8px;text-align:center;background:transparent}\n"], dependencies: [{ kind: "component", type: i3$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$3.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$3.MatGridTileHeaderCssMatStyler, selector: "mat-grid-tile-header" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
40116
40206
  }
40117
40207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RalColorPickerComponent, decorators: [{
40118
40208
  type: Component,
@@ -40233,7 +40323,7 @@ class TexturePickerComponent {
40233
40323
  return this.textures.find((t) => t.name === currentName);
40234
40324
  }
40235
40325
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TexturePickerComponent, deps: [{ token: HomedecoratorIconCacheService }, { token: HomedecoratorAppService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
40236
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TexturePickerComponent, isStandalone: false, selector: "rp-texture-picker", inputs: { allowedTextureType: "allowedTextureType", current: "current" }, outputs: { textureSelected: "textureSelected" }, usesOnChanges: true, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"150px\">\r\n @for (texture of textures | filter:'show':true; track texture) {\r\n <mat-grid-tile [ngClass]=\"{'is-selected': current === texture.name}\">\r\n <img [src]=\"assetPath + texture.url\" (click)=\"textureSelected.emit(texture)\">\r\n <mat-grid-tile-footer fxLayoutAlign=\"{{(current === texture.name) ? 'space-between center' : 'start center'}}\">\r\n <span class=\"texture-name\">\r\n {{texture.name | localize}}\r\n </span>\r\n @if (current === texture.name) {\r\n <co-icon [iconData]=\"iconService.getIcon(icon.CircleCheck)\"></co-icon>\r\n }\r\n </mat-grid-tile-footer>\r\n </mat-grid-tile>\r\n }\r\n</mat-grid-list>\r\n", styles: [":host ::ng-deep .mat-grid-tile{cursor:pointer}:host ::ng-deep .mat-grid-tile:after{content:\" \";border:4px solid transparent;position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;pointer-events:none;transition:all .2s ease-in}:host ::ng-deep .mat-grid-tile.is-selected:after{border:4px solid #da9803}:host ::ng-deep .mat-grid-tile.is-selected .mat-grid-tile-footer{background-color:#da98035e}:host ::ng-deep .mat-grid-tile:hover:after{border:4px solid rgba(218,152,3,.5294117647)}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer{background-color:#7880887d;padding:0 8px}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer span{overflow:hidden;padding-right:4px;text-overflow:ellipsis}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer co-icon ::ng-deep{height:20px;width:20px}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer co-icon ::ng-deep svg{fill:#fff}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3$4.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$4.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$4.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$4.MatGridTileFooterCssMatStyler, selector: "mat-grid-tile-footer" }, { kind: "directive", type: i14.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: i7$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: FilterPipe, name: "filter" }] }); }
40326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: TexturePickerComponent, isStandalone: false, selector: "rp-texture-picker", inputs: { allowedTextureType: "allowedTextureType", current: "current" }, outputs: { textureSelected: "textureSelected" }, usesOnChanges: true, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"150px\">\r\n @for (texture of textures | filter:'show':true; track texture) {\r\n <mat-grid-tile [ngClass]=\"{'is-selected': current === texture.name}\">\r\n <img [src]=\"assetPath + texture.url\" (click)=\"textureSelected.emit(texture)\">\r\n <mat-grid-tile-footer fxLayoutAlign=\"{{(current === texture.name) ? 'space-between center' : 'start center'}}\">\r\n <span class=\"texture-name\">\r\n {{texture.name | localize}}\r\n </span>\r\n @if (current === texture.name) {\r\n <co-icon [iconData]=\"iconService.getIcon(icon.CircleCheck)\"></co-icon>\r\n }\r\n </mat-grid-tile-footer>\r\n </mat-grid-tile>\r\n }\r\n</mat-grid-list>\r\n", styles: [":host ::ng-deep .mat-grid-tile{cursor:pointer}:host ::ng-deep .mat-grid-tile:after{content:\" \";border:4px solid transparent;position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;pointer-events:none;transition:all .2s ease-in}:host ::ng-deep .mat-grid-tile.is-selected:after{border:4px solid #da9803}:host ::ng-deep .mat-grid-tile.is-selected .mat-grid-tile-footer{background-color:#da98035e}:host ::ng-deep .mat-grid-tile:hover:after{border:4px solid rgba(218,152,3,.5294117647)}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer{background-color:#7880887d;padding:0 8px}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer span{overflow:hidden;padding-right:4px;text-overflow:ellipsis}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer co-icon ::ng-deep{height:20px;width:20px}:host ::ng-deep .mat-grid-tile .mat-grid-tile-footer co-icon ::ng-deep svg{fill:#fff}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$3.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$3.MatGridTileFooterCssMatStyler, selector: "mat-grid-tile-footer" }, { kind: "directive", type: i14.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: i7$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: FilterPipe, name: "filter" }] }); }
40237
40327
  }
40238
40328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TexturePickerComponent, decorators: [{
40239
40329
  type: Component,
@@ -40727,7 +40817,7 @@ class FloorCatalogComponent {
40727
40817
  </div>
40728
40818
  </div>
40729
40819
 
40730
- `, isInline: true, styles: [".base-button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:4px 10px;line-height:30px;width:100%}.base-button:hover{background:#da9803;color:#fff}.floor-catalog-wrap .floor-catalog-selected-floor{background:#eee;display:flex;box-sizing:border-box;padding:15px;margin:5px 0 15px}.floor-catalog-wrap .floor-catalog-selected-floor .selected-floor-thumbnail{min-width:105px;max-width:160px;margin-right:10px;justify-content:center;align-items:center;vertical-align:middle;display:flex;height:auto}.floor-catalog-wrap .floor-catalog-selected-floor .selected-floor-thumbnail img{display:block;max-width:100%;height:max-content}.floor-catalog-wrap .selected-floor-info{display:flex;flex-direction:column;gap:10px}.floor-catalog-wrap .selected-floor-info p{margin:0;font-size:14px}.floor-catalog-wrap .floor-catalog-standard-floor{background:#eee;box-sizing:border-box;padding:15px;margin:5px 0 15px}.floor-catalog-wrap .floor-catalog-standard-floor .selected-floor-info p{margin:0;font-size:14px}.selected-floor-properties p{font-weight:700;margin:0 0 10px;padding:0;font-size:14px}.selected-floor-properties .selected-floor-scale,.selected-floor-properties .floor-installation{display:flex;gap:10px;margin-bottom:20px;align-items:center}.selected-floor-properties .selected-floor-scale .up-down-input-wrapper,.selected-floor-properties .floor-installation .up-down-input-wrapper{position:relative}.selected-floor-properties .selected-floor-scale .up-down-input-wrapper label,.selected-floor-properties .floor-installation .up-down-input-wrapper label{position:absolute;font-size:12px;padding:5px}.selected-floor-properties .selected-floor-scale .selected-floor-input,.selected-floor-properties .floor-installation .selected-floor-input{border:1px solid #9FA9B4;box-sizing:border-box;padding:15px 10px 0;border-radius:3px;line-height:30px;width:100%}.selected-floor-properties .selected-floor-scale .placement-input,.selected-floor-properties .floor-installation .placement-input{min-width:300px}.selected-floor-properties .selected-floor-scale .scale-input,.selected-floor-properties .floor-installation .scale-input{min-width:100px}.selected-floor-properties .selected-floor-scale .range-slider,.selected-floor-properties .floor-installation .range-slider{color:#da9803;min-width:180px}.selected-floor-properties .up-down-buttons{display:flex;gap:10px;align-items:center;justify-content:center}.selected-floor-properties button{margin:0;cursor:pointer;border:none;box-sizing:border-box;padding:0;height:22px;width:22px;background:transparent;border-radius:100%}.selected-floor-properties button ::ng-deep co-icon{display:block;width:22px;height:22px}.selected-floor-properties button:hover ::ng-deep co-icon svg{fill:#da9803}:host ::ng-deep mat-icon{width:18px;height:18px}:host ::ng-deep mat-icon svg path{fill:#5b6875}.placeholderimage{height:90px;width:150px;background-color:#5b6875}.floor-detail-item{display:flex;justify-content:space-between}.floor-detail-item p{font-weight:300;font-size:14px}.floor-detail-download{display:flex;justify-content:flex-end}.floor-detail-download button{max-width:150px}\n"], dependencies: [{ kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ExportPdfComponent, selector: "rp-pdf-export", inputs: ["labelPlanksLeft", "labelPlanksRight", "labelPlanksTotal", "labelPlanksAngle"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
40820
+ `, isInline: true, styles: [".base-button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:4px 10px;line-height:30px;width:100%}.base-button:hover{background:#da9803;color:#fff}.floor-catalog-wrap .floor-catalog-selected-floor{background:#eee;display:flex;box-sizing:border-box;padding:15px;margin:5px 0 15px}.floor-catalog-wrap .floor-catalog-selected-floor .selected-floor-thumbnail{min-width:105px;max-width:160px;margin-right:10px;justify-content:center;align-items:center;vertical-align:middle;display:flex;height:auto}.floor-catalog-wrap .floor-catalog-selected-floor .selected-floor-thumbnail img{display:block;max-width:100%;height:max-content}.floor-catalog-wrap .selected-floor-info{display:flex;flex-direction:column;gap:10px}.floor-catalog-wrap .selected-floor-info p{margin:0;font-size:14px}.floor-catalog-wrap .floor-catalog-standard-floor{background:#eee;box-sizing:border-box;padding:15px;margin:5px 0 15px}.floor-catalog-wrap .floor-catalog-standard-floor .selected-floor-info p{margin:0;font-size:14px}.selected-floor-properties p{font-weight:700;margin:0 0 10px;padding:0;font-size:14px}.selected-floor-properties .selected-floor-scale,.selected-floor-properties .floor-installation{display:flex;gap:10px;margin-bottom:20px;align-items:center}.selected-floor-properties .selected-floor-scale .up-down-input-wrapper,.selected-floor-properties .floor-installation .up-down-input-wrapper{position:relative}.selected-floor-properties .selected-floor-scale .up-down-input-wrapper label,.selected-floor-properties .floor-installation .up-down-input-wrapper label{position:absolute;font-size:12px;padding:5px}.selected-floor-properties .selected-floor-scale .selected-floor-input,.selected-floor-properties .floor-installation .selected-floor-input{border:1px solid #9FA9B4;box-sizing:border-box;padding:15px 10px 0;border-radius:3px;line-height:30px;width:100%}.selected-floor-properties .selected-floor-scale .placement-input,.selected-floor-properties .floor-installation .placement-input{min-width:300px}.selected-floor-properties .selected-floor-scale .scale-input,.selected-floor-properties .floor-installation .scale-input{min-width:100px}.selected-floor-properties .selected-floor-scale .range-slider,.selected-floor-properties .floor-installation .range-slider{color:#da9803;min-width:180px}.selected-floor-properties .up-down-buttons{display:flex;gap:10px;align-items:center;justify-content:center}.selected-floor-properties button{margin:0;cursor:pointer;border:none;box-sizing:border-box;padding:0;height:22px;width:22px;background:transparent;border-radius:100%}.selected-floor-properties button ::ng-deep co-icon{display:block;width:22px;height:22px}.selected-floor-properties button:hover ::ng-deep co-icon svg{fill:#da9803}:host ::ng-deep mat-icon{width:18px;height:18px}:host ::ng-deep mat-icon svg path{fill:#5b6875}.placeholderimage{height:90px;width:150px;background-color:#5b6875}.floor-detail-item{display:flex;justify-content:space-between}.floor-detail-item p{font-weight:300;font-size:14px}.floor-detail-download{display:flex;justify-content:flex-end}.floor-detail-download button{max-width:150px}\n"], dependencies: [{ kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ExportPdfComponent, selector: "rp-pdf-export", inputs: ["labelPlanksLeft", "labelPlanksRight", "labelPlanksTotal", "labelPlanksAngle"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
40731
40821
  }
40732
40822
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FloorCatalogComponent, decorators: [{
40733
40823
  type: Component,
@@ -41112,7 +41202,7 @@ class AppearanceSectionComponent {
41112
41202
  }
41113
41203
  }
41114
41204
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppearanceSectionComponent, deps: [{ token: HomedecoratorIconCacheService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
41115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AppearanceSectionComponent, isStandalone: false, selector: "rp-appearance-section", inputs: { type: "type", hideTextureTab: "hideTextureTab", hideColorTab: "hideColorTab", hidePhotoTab: "hidePhotoTab", showGlassOption: "showGlassOption", texturePlane: "texturePlane", plainTexture: "plainTexture", color: "color", textureWidth: "textureWidth", textureHeight: "textureHeight", photoOptions: "photoOptions", glassMaterial: "glassMaterial" }, outputs: { setTexture: "setTexture", setColor: "setColor", setMaterial: "setMaterial" }, usesOnChanges: true, ngImport: i0, template: "<mat-tab-group\r\n mat-stretch-tabs\r\n class=\"tab tab--skin\"\r\n [selectedIndex]=\"selectedTabIndex\"\r\n (selectedIndexChange)=\"updateSelectedTabIndex($event)\"\r\n >\r\n @if (showProductTab) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.GridLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'PRODUCT' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n <div>\r\n @if (type === 'floor') {\r\n <rp-floor-catalog\r\n [type]=\"type\"\r\n [currentTexture]=\"texture\"\r\n [texturePlane]=\"texturePlane\"\r\n [plainTexture]=\"plainTexture\"\r\n >\r\n </rp-floor-catalog>\r\n }\r\n </div>\r\n </mat-tab>\r\n }\r\n @if (!hideTextureTab) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.PaintRollerLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'TEXTURE' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n <div>\r\n @if (texture?.type === textureType.Basic || texture?.type === textureType.PBR) {\r\n <rp-texture-editor\r\n [width]=\"textureWidth || texture?.tileSize\"\r\n [height]=\"textureHeight || texture?.tileSize\"\r\n [changedTexture]=\"texture\"\r\n (setTexture)=\"newTexture($event)\"\r\n [texturePlane]=\"texturePlane\"\r\n [plainTexture]=\"plainTexture\"\r\n [options]=\"options.None\"\r\n [tiled]=\"type === 'floor'\"\r\n >\r\n </rp-texture-editor>\r\n }\r\n <rp-texture-picker\r\n (textureSelected)=\"loadBasicTexture($event)\"\r\n [allowedTextureType]=\"type\"\r\n [current]=\"texture?.name\"\r\n >\r\n </rp-texture-picker>\r\n </div>\r\n </mat-tab>\r\n }\r\n @if (!hideColorTab) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.FillDripLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'COLOR' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n @if (!hidePhotoTab && showGlassOption) {\r\n <div class=\"sliders-wrapper\">\r\n <mat-slide-toggle\r\n [checked]=\"glassMaterial\"\r\n (change)=\"newTexture('GLASS')\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'GLASS' | localize }}\r\n </mat-slide-toggle>\r\n <mat-divider></mat-divider>\r\n </div>\r\n }\r\n <div>\r\n @if (!glassMaterial) {\r\n <rp-color-picker\r\n [color]=\"texture ? null : color\"\r\n (colorSelected)=\"updateColor($event)\"\r\n [selectedTabIndex]=\"selectedTabIndex\"\r\n >\r\n </rp-color-picker>\r\n }\r\n </div>\r\n </mat-tab>\r\n }\r\n @if (!hidePhotoTab && !glassMaterial) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.ImageLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'IMAGE' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n <div>\r\n <rp-texture-editor\r\n [width]=\"textureWidth || texture?.tileSize\"\r\n [height]=\"textureHeight || texture?.tileSize\"\r\n [changedTexture]=\"texture\"\r\n (setTexture)=\"newTexture($event)\"\r\n (removeTexture)=\"removeTexture()\"\r\n [texturePlane]=\"texturePlane\"\r\n [plainTexture]=\"plainTexture\"\r\n [options]=\"photoOptions\"\r\n [tiled]=\"type === 'floor'\"\r\n ></rp-texture-editor>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>\r\n", styles: [":host{flex:1;overflow-y:auto}mat-tab-group mat-icon{margin-bottom:4px}mat-tab-group ::ng-deep .mat-mdc-tab-header .mat-ink-bar{background-color:#da9803}mat-tab-group ::ng-deep .mat-mdc-tab-header .mat-tab-label{height:60px;padding:0 15px;min-width:auto;opacity:1}mat-tab-group ::ng-deep .appearance-tile{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px}mat-tab-group ::ng-deep .appearance-tile co-icon ::ng-deep{width:20px;height:20px}\n"], dependencies: [{ kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i4$1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i4$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i4$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ColorPickerComponent, selector: "rp-color-picker", inputs: ["color", "selectedTabIndex"], outputs: ["colorSelected"] }, { kind: "component", type: TexturePickerComponent, selector: "rp-texture-picker", inputs: ["allowedTextureType", "current"], outputs: ["textureSelected"] }, { kind: "component", type: TextureEditorComponent, selector: "rp-texture-editor", inputs: ["width", "height", "texturePlane", "plainTexture", "changedTexture", "tiled", "options", "dragNDropEnforced"], outputs: ["setTexture", "removeTexture"] }, { kind: "component", type: FloorCatalogComponent, selector: "rp-floor-catalog", inputs: ["type", "currentTexture", "texturePlane", "plainTexture"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
41205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: AppearanceSectionComponent, isStandalone: false, selector: "rp-appearance-section", inputs: { type: "type", hideTextureTab: "hideTextureTab", hideColorTab: "hideColorTab", hidePhotoTab: "hidePhotoTab", showGlassOption: "showGlassOption", texturePlane: "texturePlane", plainTexture: "plainTexture", color: "color", textureWidth: "textureWidth", textureHeight: "textureHeight", photoOptions: "photoOptions", glassMaterial: "glassMaterial" }, outputs: { setTexture: "setTexture", setColor: "setColor", setMaterial: "setMaterial" }, usesOnChanges: true, ngImport: i0, template: "<mat-tab-group\r\n mat-stretch-tabs\r\n class=\"tab tab--skin\"\r\n [selectedIndex]=\"selectedTabIndex\"\r\n (selectedIndexChange)=\"updateSelectedTabIndex($event)\"\r\n >\r\n @if (showProductTab) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.GridLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'PRODUCT' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n <div>\r\n @if (type === 'floor') {\r\n <rp-floor-catalog\r\n [type]=\"type\"\r\n [currentTexture]=\"texture\"\r\n [texturePlane]=\"texturePlane\"\r\n [plainTexture]=\"plainTexture\"\r\n >\r\n </rp-floor-catalog>\r\n }\r\n </div>\r\n </mat-tab>\r\n }\r\n @if (!hideTextureTab) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.PaintRollerLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'TEXTURE' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n <div>\r\n @if (texture?.type === textureType.Basic || texture?.type === textureType.PBR) {\r\n <rp-texture-editor\r\n [width]=\"textureWidth || texture?.tileSize\"\r\n [height]=\"textureHeight || texture?.tileSize\"\r\n [changedTexture]=\"texture\"\r\n (setTexture)=\"newTexture($event)\"\r\n [texturePlane]=\"texturePlane\"\r\n [plainTexture]=\"plainTexture\"\r\n [options]=\"options.None\"\r\n [tiled]=\"type === 'floor'\"\r\n >\r\n </rp-texture-editor>\r\n }\r\n <rp-texture-picker\r\n (textureSelected)=\"loadBasicTexture($event)\"\r\n [allowedTextureType]=\"type\"\r\n [current]=\"texture?.name\"\r\n >\r\n </rp-texture-picker>\r\n </div>\r\n </mat-tab>\r\n }\r\n @if (!hideColorTab) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.FillDripLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'COLOR' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n @if (!hidePhotoTab && showGlassOption) {\r\n <div class=\"sliders-wrapper\">\r\n <mat-slide-toggle\r\n [checked]=\"glassMaterial\"\r\n (change)=\"newTexture('GLASS')\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'GLASS' | localize }}\r\n </mat-slide-toggle>\r\n <mat-divider></mat-divider>\r\n </div>\r\n }\r\n <div>\r\n @if (!glassMaterial) {\r\n <rp-color-picker\r\n [color]=\"texture ? null : color\"\r\n (colorSelected)=\"updateColor($event)\"\r\n [selectedTabIndex]=\"selectedTabIndex\"\r\n >\r\n </rp-color-picker>\r\n }\r\n </div>\r\n </mat-tab>\r\n }\r\n @if (!hidePhotoTab && !glassMaterial) {\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div class=\"appearance-tile\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.ImageLight)\"></co-icon>\r\n <span class=\"appearance-label\">{{ 'IMAGE' | localize }}</span>\r\n </div>\r\n </ng-template>\r\n <div>\r\n <rp-texture-editor\r\n [width]=\"textureWidth || texture?.tileSize\"\r\n [height]=\"textureHeight || texture?.tileSize\"\r\n [changedTexture]=\"texture\"\r\n (setTexture)=\"newTexture($event)\"\r\n (removeTexture)=\"removeTexture()\"\r\n [texturePlane]=\"texturePlane\"\r\n [plainTexture]=\"plainTexture\"\r\n [options]=\"photoOptions\"\r\n [tiled]=\"type === 'floor'\"\r\n ></rp-texture-editor>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>\r\n", styles: [":host{flex:1;overflow-y:auto}mat-tab-group mat-icon{margin-bottom:4px}mat-tab-group ::ng-deep .mat-mdc-tab-header .mat-ink-bar{background-color:#da9803}mat-tab-group ::ng-deep .mat-mdc-tab-header .mat-tab-label{height:60px;padding:0 15px;min-width:auto;opacity:1}mat-tab-group ::ng-deep .appearance-tile{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px}mat-tab-group ::ng-deep .appearance-tile co-icon ::ng-deep{width:20px;height:20px}\n"], dependencies: [{ kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i4$1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i4$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i4$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ColorPickerComponent, selector: "rp-color-picker", inputs: ["color", "selectedTabIndex"], outputs: ["colorSelected"] }, { kind: "component", type: TexturePickerComponent, selector: "rp-texture-picker", inputs: ["allowedTextureType", "current"], outputs: ["textureSelected"] }, { kind: "component", type: TextureEditorComponent, selector: "rp-texture-editor", inputs: ["width", "height", "texturePlane", "plainTexture", "changedTexture", "tiled", "options", "dragNDropEnforced"], outputs: ["setTexture", "removeTexture"] }, { kind: "component", type: FloorCatalogComponent, selector: "rp-floor-catalog", inputs: ["type", "currentTexture", "texturePlane", "plainTexture"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
41116
41206
  }
41117
41207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AppearanceSectionComponent, decorators: [{
41118
41208
  type: Component,
@@ -41248,7 +41338,7 @@ class DimensionInputComponent {
41248
41338
  }
41249
41339
  }
41250
41340
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DimensionInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DimensionInputComponent, isStandalone: false, selector: "rp-dimension-input", inputs: { minValue: "minValue", maxValue: "maxValue", sourceValue: "sourceValue", title: "title" }, outputs: { dimensionChanged: "dimensionChanged", focus: "focus", blur: "blur" }, ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <mat-label [textContent]=\"title\"></mat-label>\r\n <input matInput\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n type=\"number\"\r\n [ngModel]=\"dimension\"\r\n (ngModelChange)=\"handleDimensionChange($event)\"\r\n (keydown.enter)=\"handleSave()\"\r\n (focus)=\"focus.emit($event)\"\r\n (blur)=\"blur.emit($event)\"\r\n >\r\n<!--\r\n <input\r\n matInput\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n type=\"number\"\r\n [placeholder]=\"title\"\r\n [ngModel]=\"dimension\"\r\n (ngModelChange)=\"handleDimensionChange($event)\"\r\n (keydown.enter)=\"handleSave()\"\r\n (focus)=\"focus.emit($event)\"\r\n (blur)=\"blur.emit($event)\"\r\n >\r\n-->\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"!valid\"\r\n (click)=\"applyChange(dimension)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"same\"\r\n (click)=\"handleCancel()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host{flex:1;overflow-y:auto}mat-icon.size-16{width:16px;height:16px;line-height:16px}mat-form-field input{text-align:right}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: i2$3.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: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "directive", type: i14.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: i14.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: i14.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"] }] }); }
41341
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DimensionInputComponent, isStandalone: false, selector: "rp-dimension-input", inputs: { minValue: "minValue", maxValue: "maxValue", sourceValue: "sourceValue", title: "title" }, outputs: { dimensionChanged: "dimensionChanged", focus: "focus", blur: "blur" }, ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <mat-label [textContent]=\"title\"></mat-label>\r\n <input matInput\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n type=\"number\"\r\n [ngModel]=\"dimension\"\r\n (ngModelChange)=\"handleDimensionChange($event)\"\r\n (keydown.enter)=\"handleSave()\"\r\n (focus)=\"focus.emit($event)\"\r\n (blur)=\"blur.emit($event)\"\r\n >\r\n<!--\r\n <input\r\n matInput\r\n [min]=\"minValue\"\r\n [max]=\"maxValue\"\r\n type=\"number\"\r\n [placeholder]=\"title\"\r\n [ngModel]=\"dimension\"\r\n (ngModelChange)=\"handleDimensionChange($event)\"\r\n (keydown.enter)=\"handleSave()\"\r\n (focus)=\"focus.emit($event)\"\r\n (blur)=\"blur.emit($event)\"\r\n >\r\n-->\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"!valid\"\r\n (click)=\"applyChange(dimension)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"same\"\r\n (click)=\"handleCancel()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host{flex:1;overflow-y:auto}mat-icon.size-16{width:16px;height:16px;line-height:16px}mat-form-field input{text-align:right}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: i2$3.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "directive", type: i14.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: i14.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: i14.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"] }] }); }
41252
41342
  }
41253
41343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DimensionInputComponent, decorators: [{
41254
41344
  type: Component,
@@ -41427,7 +41517,7 @@ class SelectedObjectComponent {
41427
41517
  this._hudService.updateSelectedItemHud();
41428
41518
  }
41429
41519
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedObjectComponent, deps: [{ token: MessageBusService }, { token: SceneService }, { token: HudService }, { token: HomedecoratorIconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
41430
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectedObjectComponent, isStandalone: false, selector: "rp-selected-object", inputs: { object: "object" }, outputs: { onSelectedObjectChange: "onSelectedObjectChange" }, usesOnChanges: true, ngImport: i0, template: "@if (object) {\r\n <section>\r\n <h3 class=\"mat-subheading-2\">{{object.name | localize}}</h3>\r\n @if (object.description) {\r\n <p class=\"mat-body\">{{object.description | localize}}</p>\r\n }\r\n @if (object.isCustom) {\r\n <div>\r\n <h3 class=\"mat-subheading-2\">{{'MEASUREMENTS' | localize}}</h3>\r\n <rp-dimension-input\r\n [sourceValue]=\"object.getWidth() * 100\"\r\n [minValue]=\"minWidth\"\r\n title=\"{{'WIDTH' | localize}}\"\r\n (dimensionChanged)=\"applyWidth($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n <rp-dimension-input\r\n [sourceValue]=\"object.getHeight() * 100\"\r\n [minValue]=\"minHeight\"\r\n title=\"{{'HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"applyHeight($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n <mat-divider></mat-divider>\r\n </div>\r\n }\r\n @if (object.opening && !object.doorpost) {\r\n <div class=\"sliders-wrapper\">\r\n <h3 class=\"mat-subheading-2\">{{'OPENING_INDICATIONS' | localize}}</h3>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.show\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('show', $event)\"\r\n >\r\n {{'SHOW' | localize}}:\r\n </mat-slide-toggle>\r\n @if (object.opening.show) {\r\n <div>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.double\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('double', $event)\"\r\n >\r\n {{'DOUBLE' | localize}}:\r\n </mat-slide-toggle>\r\n </div>\r\n <div>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.invertDirection\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('invertDirection', $event)\"\r\n >\r\n {{'OPENING_DIRECTION_FRONT_BACK' | localize}}:\r\n </mat-slide-toggle>\r\n </div>\r\n @if (!object.opening.double) {\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.invertSide\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('invertSide', $event)\"\r\n >\r\n {{'OPENING_SIDE_LEFT_RIGHT' | localize}}:\r\n </mat-slide-toggle>\r\n }\r\n }\r\n <mat-divider></mat-divider>\r\n </div>\r\n }\r\n @if (object.scalable) {\r\n <div>\r\n <rp-slider-input\r\n title=\"{{'SCALE_PERCENTAGE' | localize}}\"\r\n min=\"50\"\r\n max=\"200\"\r\n step=\"1\"\r\n [value]=\"object.scalePercentage\"\r\n (onChange)=\"updateObjectScale($event)\">\r\n </rp-slider-input>\r\n </div>\r\n }\r\n @if (object.isCustom) {\r\n <div>\r\n <h3 class=\"mat-subheading-2\">{{'APPEARANCE' | localize}}</h3>\r\n <ng-template #color_content>\r\n <rp-appearance-section\r\n type=\"wallFloor\"\r\n [hideTextureTab]=\"true\"\r\n [hidePhotoTab]=\"true\"\r\n [color]=\"object.frameColor\"\r\n (setColor)=\"updateFrameColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </ng-template>\r\n @if (object.doorpost) {\r\n <ng-container [ngTemplateOutlet]=\"color_content\"></ng-container>\r\n } @else {\r\n <mat-tab-group mat-stretch-tabs\r\n class=\"tab tab--skin\"\r\n [selectedIndex]=\"selectedTabIndex\"\r\n (selectedIndexChange)=\"updateSelectedTabIndex($event)\"\r\n >\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.ConfFrame)\"></co-icon>\r\n {{object.frameTitle | localize}}\r\n </div>\r\n </ng-template>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"color_content\"></ng-container>\r\n </div>\r\n </mat-tab>\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.ConfPlane)\"></co-icon>\r\n {{object.customMeshTitle | localize}}\r\n </div>\r\n </ng-template>\r\n <div>\r\n <rp-appearance-section\r\n type=\"wallFloor\"\r\n [showGlassOption]=\"true\"\r\n [plainTexture]=\"object.texture\"\r\n [textureWidth]=\"object.getWidth() * 100\"\r\n [textureHeight]=\"object.getHeight() * 100\"\r\n [hideTextureTab]=\"true\"\r\n [hideColorTab]=\"!object.canChangeCustomMeshColor\"\r\n [color]=\"object.doorColor\"\r\n [glassMaterial]=\"object.isGlass\"\r\n [photoOptions]=\"Options.Image\"\r\n (setTexture)=\"updateTexture($event)\"\r\n (setColor)=\"updateColor($event)\"\r\n (setMaterial)=\"updateMaterial($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n </mat-tab>\r\n </mat-tab-group>\r\n }\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}.sliders-wrapper{margin-bottom:8px}:host ::ng-deep .mat-mdc-slide-toggle{width:100%;height:32px;margin-bottom:8px}:host ::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-label{justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i4$1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i4$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i4$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: SliderInputComponent, selector: "rp-slider-input", inputs: ["title", "min", "max", "step", "value"], outputs: ["onChange"] }, { kind: "directive", type: i14.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: i14.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: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
41520
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectedObjectComponent, isStandalone: false, selector: "rp-selected-object", inputs: { object: "object" }, outputs: { onSelectedObjectChange: "onSelectedObjectChange" }, usesOnChanges: true, ngImport: i0, template: "@if (object) {\r\n <section>\r\n <h3 class=\"mat-subheading-2\">{{object.name | localize}}</h3>\r\n @if (object.description) {\r\n <p class=\"mat-body\">{{object.description | localize}}</p>\r\n }\r\n @if (object.isCustom) {\r\n <div>\r\n <h3 class=\"mat-subheading-2\">{{'MEASUREMENTS' | localize}}</h3>\r\n <rp-dimension-input\r\n [sourceValue]=\"object.getWidth() * 100\"\r\n [minValue]=\"minWidth\"\r\n title=\"{{'WIDTH' | localize}}\"\r\n (dimensionChanged)=\"applyWidth($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n <rp-dimension-input\r\n [sourceValue]=\"object.getHeight() * 100\"\r\n [minValue]=\"minHeight\"\r\n title=\"{{'HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"applyHeight($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n <mat-divider></mat-divider>\r\n </div>\r\n }\r\n @if (object.opening && !object.doorpost) {\r\n <div class=\"sliders-wrapper\">\r\n <h3 class=\"mat-subheading-2\">{{'OPENING_INDICATIONS' | localize}}</h3>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.show\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('show', $event)\"\r\n >\r\n {{'SHOW' | localize}}:\r\n </mat-slide-toggle>\r\n @if (object.opening.show) {\r\n <div>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.double\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('double', $event)\"\r\n >\r\n {{'DOUBLE' | localize}}:\r\n </mat-slide-toggle>\r\n </div>\r\n <div>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.invertDirection\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('invertDirection', $event)\"\r\n >\r\n {{'OPENING_DIRECTION_FRONT_BACK' | localize}}:\r\n </mat-slide-toggle>\r\n </div>\r\n @if (!object.opening.double) {\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"object.opening.invertSide\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"openingDirectionChange('invertSide', $event)\"\r\n >\r\n {{'OPENING_SIDE_LEFT_RIGHT' | localize}}:\r\n </mat-slide-toggle>\r\n }\r\n }\r\n <mat-divider></mat-divider>\r\n </div>\r\n }\r\n @if (object.scalable) {\r\n <div>\r\n <rp-slider-input\r\n title=\"{{'SCALE_PERCENTAGE' | localize}}\"\r\n min=\"50\"\r\n max=\"200\"\r\n step=\"1\"\r\n [value]=\"object.scalePercentage\"\r\n (onChange)=\"updateObjectScale($event)\">\r\n </rp-slider-input>\r\n </div>\r\n }\r\n @if (object.isCustom) {\r\n <div>\r\n <h3 class=\"mat-subheading-2\">{{'APPEARANCE' | localize}}</h3>\r\n <ng-template #color_content>\r\n <rp-appearance-section\r\n type=\"wallFloor\"\r\n [hideTextureTab]=\"true\"\r\n [hidePhotoTab]=\"true\"\r\n [color]=\"object.frameColor\"\r\n (setColor)=\"updateFrameColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </ng-template>\r\n @if (object.doorpost) {\r\n <ng-container [ngTemplateOutlet]=\"color_content\"></ng-container>\r\n } @else {\r\n <mat-tab-group mat-stretch-tabs\r\n class=\"tab tab--skin\"\r\n [selectedIndex]=\"selectedTabIndex\"\r\n (selectedIndexChange)=\"updateSelectedTabIndex($event)\"\r\n >\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.ConfFrame)\"></co-icon>\r\n {{object.frameTitle | localize}}\r\n </div>\r\n </ng-template>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"color_content\"></ng-container>\r\n </div>\r\n </mat-tab>\r\n <mat-tab>\r\n <ng-template mat-tab-label>\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <co-icon [iconData]=\"iconService.getIcon(icon.ConfPlane)\"></co-icon>\r\n {{object.customMeshTitle | localize}}\r\n </div>\r\n </ng-template>\r\n <div>\r\n <rp-appearance-section\r\n type=\"wallFloor\"\r\n [showGlassOption]=\"true\"\r\n [plainTexture]=\"object.texture\"\r\n [textureWidth]=\"object.getWidth() * 100\"\r\n [textureHeight]=\"object.getHeight() * 100\"\r\n [hideTextureTab]=\"true\"\r\n [hideColorTab]=\"!object.canChangeCustomMeshColor\"\r\n [color]=\"object.doorColor\"\r\n [glassMaterial]=\"object.isGlass\"\r\n [photoOptions]=\"Options.Image\"\r\n (setTexture)=\"updateTexture($event)\"\r\n (setColor)=\"updateColor($event)\"\r\n (setMaterial)=\"updateMaterial($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n </mat-tab>\r\n </mat-tab-group>\r\n }\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}.sliders-wrapper{margin-bottom:8px}:host ::ng-deep .mat-mdc-slide-toggle{width:100%;height:32px;margin-bottom:8px}:host ::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-label{justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i4$1.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i4$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i4$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: SliderInputComponent, selector: "rp-slider-input", inputs: ["title", "min", "max", "step", "value"], outputs: ["onChange"] }, { kind: "directive", type: i14.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: i14.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: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
41431
41521
  }
41432
41522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedObjectComponent, decorators: [{
41433
41523
  type: Component,
@@ -41535,7 +41625,7 @@ class SelectedThreedObjectComponent {
41535
41625
  return degrees;
41536
41626
  }
41537
41627
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedThreedObjectComponent, deps: [{ token: MessageBusService }, { token: ItemService }, { token: SceneService }, { token: HudService }, { token: RotationService }, { token: ConfigurationService }, { token: HomedecoratorIconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
41538
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectedThreedObjectComponent, isStandalone: false, selector: "rp-selected-threed-object", inputs: { object: "object", showCopy: "showCopy", showDelete: "showDelete", showLock: "showLock" }, outputs: { onSelectedObjectChange: "onSelectedObjectChange" }, ngImport: i0, template: "@if (object) {\r\n <section>\r\n <h3 class=\"mat-subheading-2\">{{object.name | localize}}</h3>\r\n @if (object.description) {\r\n <p class=\"mat-body\">{{object.description | localize}}</p>\r\n }\r\n <div>\r\n <h3 class=\"mat-subheading-2\">{{'ROTATION' | localize}}</h3>\r\n @if (object.canRotateX) {\r\n <div class=\"rotation-wrapper\">\r\n <span [textContent]=\"'x'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationX\"\r\n [disabled]=\"object.locked\"\r\n (input)=\"handleUpdateRotationX($event)\"></mat-slider>\r\n <input matInput type=\"number\" min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationX\"\r\n [disabled]=\"object.locked\"\r\n (ngModelChange)=\"handleUpdateRotationXValue($event)\">\r\n <button mat-mini-fab primary (click)=\"resetRotationX()\" matTooltip=\"{{'RESET' | localize}}\" [disabled]=\"object.locked\">\r\n <mat-icon class=\"homedecorator-material-icons\">cached</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n @if (object.canRotateY) {\r\n <div class=\"rotation-wrapper\">\r\n <span [textContent]=\"'y'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationY\"\r\n [disabled]=\"object.locked\"\r\n (input)=\"handleUpdateRotationY($event)\"></mat-slider>\r\n <input matInput type=\"number\" min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationY\"\r\n [disabled]=\"object.locked\"\r\n (ngModelChange)=\"handleUpdateRotationYValue($event)\">\r\n <button mat-mini-fab primary (click)=\"resetRotationY()\" matTooltip=\"{{'RESET' | localize}}\" [disabled]=\"object.locked\">\r\n <mat-icon class=\"homedecorator-material-icons\">cached</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n @if (object.canRotateZ) {\r\n <div class=\"rotation-wrapper\">\r\n <span [textContent]=\"'z'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationZ\"\r\n [disabled]=\"object.locked\"\r\n (input)=\"handleUpdateRotationZ($event)\"></mat-slider>\r\n <input matInput type=\"number\" min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationZ\"\r\n [disabled]=\"object.locked\"\r\n (ngModelChange)=\"handleUpdateRotationZValue($event)\">\r\n <button mat-mini-fab primary (click)=\"resetRotationZ()\" matTooltip=\"{{'RESET' | localize}}\" [disabled]=\"object.locked\">\r\n <mat-icon class=\"homedecorator-material-icons\">cached</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <mat-divider></mat-divider>\r\n <div class=\"button-wrapper\">\r\n @if (showCopy) {\r\n <button mat-mini-fab primary (click)=\"copyObject()\" matTooltip=\"{{'COPY' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">file_copy</mat-icon>\r\n </button>\r\n }\r\n @if (showDelete) {\r\n <button mat-mini-fab (click)=\"removeObject()\" matTooltip=\"{{'REMOVE' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\r\n </button>\r\n }\r\n @if (showLock) {\r\n <button mat-mini-fab (click)=\"toggleLockObject()\" matTooltip=\"{{(object.locked ? 'UNLOCK' : 'LOCK') | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\" [textContent]=\"object.locked ? 'lock' : 'lock_open'\"></mat-icon>\r\n </button>\r\n }\r\n </div>\r\n <mat-divider></mat-divider>\r\n </div>\r\n </section>\r\n }\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}:host .rotation-wrapper{display:flex;align-items:center}:host .rotation-wrapper mat-slider{width:72%}:host .rotation-wrapper input{width:15%}:host .rotation-wrapper button{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background-color:#fff;color:#000}:host .button-wrapper{padding:0 100px;display:flex;justify-content:space-between}:host .button-wrapper button{background-color:#fff;color:#000}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i2$3.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: i3$3.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { 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: "pipe", type: LocalizePipe, name: "localize" }] }); }
41628
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectedThreedObjectComponent, isStandalone: false, selector: "rp-selected-threed-object", inputs: { object: "object", showCopy: "showCopy", showDelete: "showDelete", showLock: "showLock" }, outputs: { onSelectedObjectChange: "onSelectedObjectChange" }, ngImport: i0, template: "@if (object) {\r\n <section>\r\n <h3 class=\"mat-subheading-2\">{{object.name | localize}}</h3>\r\n @if (object.description) {\r\n <p class=\"mat-body\">{{object.description | localize}}</p>\r\n }\r\n <div>\r\n <h3 class=\"mat-subheading-2\">{{'ROTATION' | localize}}</h3>\r\n @if (object.canRotateX) {\r\n <div class=\"rotation-wrapper\">\r\n <span [textContent]=\"'x'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationX\"\r\n [disabled]=\"object.locked\"\r\n (input)=\"handleUpdateRotationX($event)\"></mat-slider>\r\n <input matInput type=\"number\" min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationX\"\r\n [disabled]=\"object.locked\"\r\n (ngModelChange)=\"handleUpdateRotationXValue($event)\">\r\n <button mat-mini-fab primary (click)=\"resetRotationX()\" matTooltip=\"{{'RESET' | localize}}\" [disabled]=\"object.locked\">\r\n <mat-icon class=\"homedecorator-material-icons\">cached</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n @if (object.canRotateY) {\r\n <div class=\"rotation-wrapper\">\r\n <span [textContent]=\"'y'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationY\"\r\n [disabled]=\"object.locked\"\r\n (input)=\"handleUpdateRotationY($event)\"></mat-slider>\r\n <input matInput type=\"number\" min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationY\"\r\n [disabled]=\"object.locked\"\r\n (ngModelChange)=\"handleUpdateRotationYValue($event)\">\r\n <button mat-mini-fab primary (click)=\"resetRotationY()\" matTooltip=\"{{'RESET' | localize}}\" [disabled]=\"object.locked\">\r\n <mat-icon class=\"homedecorator-material-icons\">cached</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n @if (object.canRotateZ) {\r\n <div class=\"rotation-wrapper\">\r\n <span [textContent]=\"'z'\"></span>\r\n <mat-slider class=\"value\" thumbLabel min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationZ\"\r\n [disabled]=\"object.locked\"\r\n (input)=\"handleUpdateRotationZ($event)\"></mat-slider>\r\n <input matInput type=\"number\" min=\"-180\" max=\"180\"\r\n [step]=\"step\"\r\n [ngModel]=\"rotationZ\"\r\n [disabled]=\"object.locked\"\r\n (ngModelChange)=\"handleUpdateRotationZValue($event)\">\r\n <button mat-mini-fab primary (click)=\"resetRotationZ()\" matTooltip=\"{{'RESET' | localize}}\" [disabled]=\"object.locked\">\r\n <mat-icon class=\"homedecorator-material-icons\">cached</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <mat-divider></mat-divider>\r\n <div class=\"button-wrapper\">\r\n @if (showCopy) {\r\n <button mat-mini-fab primary (click)=\"copyObject()\" matTooltip=\"{{'COPY' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">file_copy</mat-icon>\r\n </button>\r\n }\r\n @if (showDelete) {\r\n <button mat-mini-fab (click)=\"removeObject()\" matTooltip=\"{{'REMOVE' | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\r\n </button>\r\n }\r\n @if (showLock) {\r\n <button mat-mini-fab (click)=\"toggleLockObject()\" matTooltip=\"{{(object.locked ? 'UNLOCK' : 'LOCK') | localize}}\">\r\n <mat-icon class=\"homedecorator-material-icons\" [textContent]=\"object.locked ? 'lock' : 'lock_open'\"></mat-icon>\r\n </button>\r\n }\r\n </div>\r\n <mat-divider></mat-divider>\r\n </div>\r\n </section>\r\n }\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}:host .rotation-wrapper{display:flex;align-items:center}:host .rotation-wrapper mat-slider{width:72%}:host .rotation-wrapper input{width:15%}:host .rotation-wrapper button{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background-color:#fff;color:#000}:host .button-wrapper{padding:0 100px;display:flex;justify-content:space-between}:host .button-wrapper button{background-color:#fff;color:#000}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i2$3.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: i3$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { 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: "pipe", type: LocalizePipe, name: "localize" }] }); }
41539
41629
  }
41540
41630
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedThreedObjectComponent, decorators: [{
41541
41631
  type: Component,
@@ -41595,7 +41685,7 @@ class SelectedWallComponent {
41595
41685
  this.deselectCorner();
41596
41686
  }
41597
41687
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedWallComponent, deps: [{ token: MessageBusService }, { token: ConfigurationService }, { token: ViewModeService }], target: i0.ɵɵFactoryTarget.Component }); }
41598
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectedWallComponent, isStandalone: false, selector: "rp-selected-wall", inputs: { wall: "wall", texturePlane: "texturePlane", color: "color", minWallHeight: "minWallHeight", maxWallHeight: "maxWallHeight", maxWallThickness: "maxWallThickness", maxWallLength: "maxWallLength", minWallLength: "minWallLength" }, outputs: { remove: "remove", setLength: "setLength", setHeight: "setHeight", setThickness: "setThickness", selectCorner: "selectCorner", setTexture: "setTexture", setColor: "setColor" }, ngImport: i0, template: "@if (wall) {\r\n <section>\r\n @if (viewModeService.viewMode === viewModes.FloorPlan2D) {\r\n <button\r\n mat-raised-button\r\n class=\"remove\"\r\n (click)=\"remove.emit(wall)\">\r\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\r\n {{'REMOVE' | localize}}\r\n </button>\r\n }\r\n <h3 class=\"mat-subheading-2\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n @if (!detailedWallMeasurementsMode) {\r\n <rp-dimension-input\r\n [sourceValue]=\"wall.innerLength * 100\"\r\n [maxValue]=\"maxWallLength\"\r\n [minValue]=\"minWallLength\"\r\n title=\"{{'LENGTH' | localize}}\"\r\n (focus)=\"markCorner()\"\r\n (blur)=\"deselectCorner()\"\r\n (dimensionChanged)=\"lengthChanged($event)\"\r\n >\r\n </rp-dimension-input>\r\n }\r\n <div class=\"wall-direction-toggle\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <span class=\"mat-body-2\">{{'REVERSE_WALL_DIRECTION' | localize}}</span>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"wallDirectionReversed\"\r\n (focusout)=\"deselectCorner()\"\r\n (change)=\"reverseWallDirection($event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <rp-dimension-input\r\n [sourceValue]=\"wall.height * 100\"\r\n [minValue]=\"minWallHeight\"\r\n [maxValue]=\"maxWallHeight\"\r\n title=\"{{'HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"setHeight.emit($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n <rp-dimension-input\r\n [sourceValue]=\"wall.thickness * 100\"\r\n [maxValue]=\"maxWallThickness\"\r\n title=\"{{'THICKNESS' | localize}}\"\r\n (dimensionChanged)=\"setThickness.emit($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n </div>\r\n @if (viewModeService.viewMode === viewModes.RoomPlan3D || viewModes.FloorPlan2D) {\r\n <div>\r\n <mat-divider></mat-divider>\r\n <h3 class=\"mat-subheading-2\">{{'APPEARANCE' | localize}}</h3>\r\n <rp-appearance-section\r\n type=\"wall\"\r\n [texturePlane]=\"texturePlane\"\r\n [color]=\"color\"\r\n [textureWidth]=\"wall.length * 100\"\r\n [textureHeight]=\"wall.height * 100\"\r\n [photoOptions]=\"editorOptions.Both\"\r\n (setTexture)=\"setTexture.emit($event)\"\r\n (setColor)=\"setColor.emit($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}h1{margin-bottom:.25em}mat-icon.size-16{width:16px;height:16px;line-height:16px}button.remove{position:absolute;top:15px;right:70px}.wall-direction-toggle{margin:5px 7px 20px 0}mat-form-field input{text-align:right}\n"], dependencies: [{ 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: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i14.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: i14.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: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
41688
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SelectedWallComponent, isStandalone: false, selector: "rp-selected-wall", inputs: { wall: "wall", texturePlane: "texturePlane", color: "color", minWallHeight: "minWallHeight", maxWallHeight: "maxWallHeight", maxWallThickness: "maxWallThickness", maxWallLength: "maxWallLength", minWallLength: "minWallLength" }, outputs: { remove: "remove", setLength: "setLength", setHeight: "setHeight", setThickness: "setThickness", selectCorner: "selectCorner", setTexture: "setTexture", setColor: "setColor" }, ngImport: i0, template: "@if (wall) {\r\n <section>\r\n @if (viewModeService.viewMode === viewModes.FloorPlan2D) {\r\n <button\r\n mat-raised-button\r\n class=\"remove\"\r\n (click)=\"remove.emit(wall)\">\r\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\r\n {{'REMOVE' | localize}}\r\n </button>\r\n }\r\n <h3 class=\"mat-subheading-2\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n @if (!detailedWallMeasurementsMode) {\r\n <rp-dimension-input\r\n [sourceValue]=\"wall.innerLength * 100\"\r\n [maxValue]=\"maxWallLength\"\r\n [minValue]=\"minWallLength\"\r\n title=\"{{'LENGTH' | localize}}\"\r\n (focus)=\"markCorner()\"\r\n (blur)=\"deselectCorner()\"\r\n (dimensionChanged)=\"lengthChanged($event)\"\r\n >\r\n </rp-dimension-input>\r\n }\r\n <div class=\"wall-direction-toggle\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <span class=\"mat-body-2\">{{'REVERSE_WALL_DIRECTION' | localize}}</span>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"wallDirectionReversed\"\r\n (focusout)=\"deselectCorner()\"\r\n (change)=\"reverseWallDirection($event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <rp-dimension-input\r\n [sourceValue]=\"wall.height * 100\"\r\n [minValue]=\"minWallHeight\"\r\n [maxValue]=\"maxWallHeight\"\r\n title=\"{{'HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"setHeight.emit($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n <rp-dimension-input\r\n [sourceValue]=\"wall.thickness * 100\"\r\n [maxValue]=\"maxWallThickness\"\r\n title=\"{{'THICKNESS' | localize}}\"\r\n (dimensionChanged)=\"setThickness.emit($event / 100)\"\r\n >\r\n </rp-dimension-input>\r\n </div>\r\n @if (viewModeService.viewMode === viewModes.RoomPlan3D || viewModes.FloorPlan2D) {\r\n <div>\r\n <mat-divider></mat-divider>\r\n <h3 class=\"mat-subheading-2\">{{'APPEARANCE' | localize}}</h3>\r\n <rp-appearance-section\r\n type=\"wall\"\r\n [texturePlane]=\"texturePlane\"\r\n [color]=\"color\"\r\n [textureWidth]=\"wall.length * 100\"\r\n [textureHeight]=\"wall.height * 100\"\r\n [photoOptions]=\"editorOptions.Both\"\r\n (setTexture)=\"setTexture.emit($event)\"\r\n (setColor)=\"setColor.emit($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n }\r\n </section>\r\n}\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}h1{margin-bottom:.25em}mat-icon.size-16{width:16px;height:16px;line-height:16px}button.remove{position:absolute;top:15px;right:70px}.wall-direction-toggle{margin:5px 7px 20px 0}mat-form-field input{text-align:right}\n"], dependencies: [{ 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: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i14.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: i14.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: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
41599
41689
  }
41600
41690
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SelectedWallComponent, decorators: [{
41601
41691
  type: Component,
@@ -41661,46 +41751,46 @@ class SettingsOptionsComponent {
41661
41751
  this.onclose.emit();
41662
41752
  }
41663
41753
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsOptionsComponent, deps: [{ token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
41664
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SettingsOptionsComponent, isStandalone: false, selector: "settings-options", outputs: { onclose: "onclose" }, host: { listeners: { "document:mousemove": "moveDialog($event)", "document:mouseup": "cancelMoveDialog($event)" } }, viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
41665
- <div class="edit-popup" #dialog @showHideDialog [style.top.px]="top" [style.left.px]="left">
41666
- <div class="title-bar">
41667
- <div class="title-bar-move" (mousedown)="handleTitleMouseDown($event)">
41668
- <div class="title-description" [textContent]="'OPTIONS' | localize"></div>
41669
- </div>
41670
- <button mat-icon-button class="hide-dialog" (click)="hidePopup()">
41671
- <mat-icon class="homedecorator-material-icons" aria-hidden="true">close</mat-icon>
41672
- </button>
41673
- </div>
41674
- <div class="popup-content">
41675
- <span class="section-title" [textContent]="'GENERAL' | localize"></span>
41676
- <div class="section-content">
41677
- <span class="option-label key" [textContent]="'VR_ENABLED' | localize"></span>
41678
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.vrEnabled"
41679
- (change)="settingsService.settings.options.vrEnabled = $event.checked"
41680
- ></mat-slide-toggle>
41681
- <span class="option-label key" [textContent]="'AR_ENABLED' | localize"></span>
41682
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.arEnabled"
41683
- (change)="settingsService.settings.options.arEnabled = $event.checked"
41684
- ></mat-slide-toggle>
41685
- <span class="option-label key" [textContent]="'SHOW_DOWNLOAD_BUTTON' | localize"></span>
41686
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.showDownloadButton"
41687
- (change)="settingsService.settings.options.showDownloadButton = $event.checked"
41688
- ></mat-slide-toggle>
41689
- </div>
41690
- <span class="section-title" [textContent]="'CONFIGURATOR' | localize"></span>
41691
- <div class="section-content">
41692
- <span class="option-label key" [textContent]="'INLINE_ANSWERS' | localize"></span>
41693
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.inlineAnswers"
41694
- (change)="settingsService.settings.options.inlineAnswers = $event.checked"
41695
- ></mat-slide-toggle>
41696
- <span class="option-label key" [textContent]="'INSTANT_EDIT_MENU' | localize"></span>
41697
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.instantEditMenu"
41698
- (change)="settingsService.settings.options.instantEditMenu = $event.checked"
41699
- ></mat-slide-toggle>
41700
- </div>
41701
- </div>
41702
- </div>
41703
- `, isInline: true, styles: [":host .edit-popup{position:fixed;min-height:200px;min-width:400px;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;box-shadow:0 0 5px 1px #00000080}:host .title-bar{display:flex;justify-content:space-between;background:#3760a1;color:#fff;padding-left:10px}:host .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .title-bar mat-icon{color:#fff}:host .popup-content{padding:20px}:host .section-title{font-size:12px;font-weight:700}:host .section-content{margin-top:10px;font-size:12px;display:grid;grid-template-columns:80% 20%}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
41754
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: SettingsOptionsComponent, isStandalone: false, selector: "settings-options", outputs: { onclose: "onclose" }, host: { listeners: { "document:mousemove": "moveDialog($event)", "document:mouseup": "cancelMoveDialog($event)" } }, viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
41755
+ <div class="edit-popup" #dialog @showHideDialog [style.top.px]="top" [style.left.px]="left">
41756
+ <div class="title-bar">
41757
+ <div class="title-bar-move" (mousedown)="handleTitleMouseDown($event)">
41758
+ <div class="title-description" [textContent]="'OPTIONS' | localize"></div>
41759
+ </div>
41760
+ <button mat-icon-button class="hide-dialog" (click)="hidePopup()">
41761
+ <mat-icon class="homedecorator-material-icons" aria-hidden="true">close</mat-icon>
41762
+ </button>
41763
+ </div>
41764
+ <div class="popup-content">
41765
+ <span class="section-title" [textContent]="'GENERAL' | localize"></span>
41766
+ <div class="section-content">
41767
+ <span class="option-label key" [textContent]="'VR_ENABLED' | localize"></span>
41768
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.vrEnabled"
41769
+ (change)="settingsService.settings.options.vrEnabled = $event.checked"
41770
+ ></mat-slide-toggle>
41771
+ <span class="option-label key" [textContent]="'AR_ENABLED' | localize"></span>
41772
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.arEnabled"
41773
+ (change)="settingsService.settings.options.arEnabled = $event.checked"
41774
+ ></mat-slide-toggle>
41775
+ <span class="option-label key" [textContent]="'SHOW_DOWNLOAD_BUTTON' | localize"></span>
41776
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.showDownloadButton"
41777
+ (change)="settingsService.settings.options.showDownloadButton = $event.checked"
41778
+ ></mat-slide-toggle>
41779
+ </div>
41780
+ <span class="section-title" [textContent]="'CONFIGURATOR' | localize"></span>
41781
+ <div class="section-content">
41782
+ <span class="option-label key" [textContent]="'INLINE_ANSWERS' | localize"></span>
41783
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.inlineAnswers"
41784
+ (change)="settingsService.settings.options.inlineAnswers = $event.checked"
41785
+ ></mat-slide-toggle>
41786
+ <span class="option-label key" [textContent]="'INSTANT_EDIT_MENU' | localize"></span>
41787
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.instantEditMenu"
41788
+ (change)="settingsService.settings.options.instantEditMenu = $event.checked"
41789
+ ></mat-slide-toggle>
41790
+ </div>
41791
+ </div>
41792
+ </div>
41793
+ `, isInline: true, styles: [":host .edit-popup{position:fixed;min-height:200px;min-width:400px;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;box-shadow:0 0 5px 1px #00000080}:host .title-bar{display:flex;justify-content:space-between;background:#3760a1;color:#fff;padding-left:10px}:host .title-bar .title-bar-move{display:flex;flex-basis:100%;align-items:center}:host .title-bar .title-bar-move .title-description{-webkit-user-select:none;user-select:none}:host .title-bar mat-icon{color:#fff}:host .popup-content{padding:20px}:host .section-title{font-size:12px;font-weight:700}:host .section-content{margin-top:10px;font-size:12px;display:grid;grid-template-columns:80% 20%}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
41704
41794
  trigger('showHideDialog', [
41705
41795
  state('void', style({ opacity: 0 })),
41706
41796
  state('*', style({ opacity: 1 })),
@@ -41710,45 +41800,45 @@ class SettingsOptionsComponent {
41710
41800
  }
41711
41801
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsOptionsComponent, decorators: [{
41712
41802
  type: Component,
41713
- args: [{ selector: 'settings-options', template: `
41714
- <div class="edit-popup" #dialog @showHideDialog [style.top.px]="top" [style.left.px]="left">
41715
- <div class="title-bar">
41716
- <div class="title-bar-move" (mousedown)="handleTitleMouseDown($event)">
41717
- <div class="title-description" [textContent]="'OPTIONS' | localize"></div>
41718
- </div>
41719
- <button mat-icon-button class="hide-dialog" (click)="hidePopup()">
41720
- <mat-icon class="homedecorator-material-icons" aria-hidden="true">close</mat-icon>
41721
- </button>
41722
- </div>
41723
- <div class="popup-content">
41724
- <span class="section-title" [textContent]="'GENERAL' | localize"></span>
41725
- <div class="section-content">
41726
- <span class="option-label key" [textContent]="'VR_ENABLED' | localize"></span>
41727
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.vrEnabled"
41728
- (change)="settingsService.settings.options.vrEnabled = $event.checked"
41729
- ></mat-slide-toggle>
41730
- <span class="option-label key" [textContent]="'AR_ENABLED' | localize"></span>
41731
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.arEnabled"
41732
- (change)="settingsService.settings.options.arEnabled = $event.checked"
41733
- ></mat-slide-toggle>
41734
- <span class="option-label key" [textContent]="'SHOW_DOWNLOAD_BUTTON' | localize"></span>
41735
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.showDownloadButton"
41736
- (change)="settingsService.settings.options.showDownloadButton = $event.checked"
41737
- ></mat-slide-toggle>
41738
- </div>
41739
- <span class="section-title" [textContent]="'CONFIGURATOR' | localize"></span>
41740
- <div class="section-content">
41741
- <span class="option-label key" [textContent]="'INLINE_ANSWERS' | localize"></span>
41742
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.inlineAnswers"
41743
- (change)="settingsService.settings.options.inlineAnswers = $event.checked"
41744
- ></mat-slide-toggle>
41745
- <span class="option-label key" [textContent]="'INSTANT_EDIT_MENU' | localize"></span>
41746
- <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.instantEditMenu"
41747
- (change)="settingsService.settings.options.instantEditMenu = $event.checked"
41748
- ></mat-slide-toggle>
41749
- </div>
41750
- </div>
41751
- </div>
41803
+ args: [{ selector: 'settings-options', template: `
41804
+ <div class="edit-popup" #dialog @showHideDialog [style.top.px]="top" [style.left.px]="left">
41805
+ <div class="title-bar">
41806
+ <div class="title-bar-move" (mousedown)="handleTitleMouseDown($event)">
41807
+ <div class="title-description" [textContent]="'OPTIONS' | localize"></div>
41808
+ </div>
41809
+ <button mat-icon-button class="hide-dialog" (click)="hidePopup()">
41810
+ <mat-icon class="homedecorator-material-icons" aria-hidden="true">close</mat-icon>
41811
+ </button>
41812
+ </div>
41813
+ <div class="popup-content">
41814
+ <span class="section-title" [textContent]="'GENERAL' | localize"></span>
41815
+ <div class="section-content">
41816
+ <span class="option-label key" [textContent]="'VR_ENABLED' | localize"></span>
41817
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.vrEnabled"
41818
+ (change)="settingsService.settings.options.vrEnabled = $event.checked"
41819
+ ></mat-slide-toggle>
41820
+ <span class="option-label key" [textContent]="'AR_ENABLED' | localize"></span>
41821
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.arEnabled"
41822
+ (change)="settingsService.settings.options.arEnabled = $event.checked"
41823
+ ></mat-slide-toggle>
41824
+ <span class="option-label key" [textContent]="'SHOW_DOWNLOAD_BUTTON' | localize"></span>
41825
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.showDownloadButton"
41826
+ (change)="settingsService.settings.options.showDownloadButton = $event.checked"
41827
+ ></mat-slide-toggle>
41828
+ </div>
41829
+ <span class="section-title" [textContent]="'CONFIGURATOR' | localize"></span>
41830
+ <div class="section-content">
41831
+ <span class="option-label key" [textContent]="'INLINE_ANSWERS' | localize"></span>
41832
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.inlineAnswers"
41833
+ (change)="settingsService.settings.options.inlineAnswers = $event.checked"
41834
+ ></mat-slide-toggle>
41835
+ <span class="option-label key" [textContent]="'INSTANT_EDIT_MENU' | localize"></span>
41836
+ <mat-slide-toggle class="value" min="0" max="1" [checked]="settingsService.settings.options.instantEditMenu"
41837
+ (change)="settingsService.settings.options.instantEditMenu = $event.checked"
41838
+ ></mat-slide-toggle>
41839
+ </div>
41840
+ </div>
41841
+ </div>
41752
41842
  `, animations: [
41753
41843
  trigger('showHideDialog', [
41754
41844
  state('void', style({ opacity: 0 })),
@@ -41928,7 +42018,7 @@ class SettingsComponent {
41928
42018
  });
41929
42019
  }
41930
42020
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsComponent, deps: [{ token: HomedecoratorSettingsService }, { token: i2$5.MatSnackBar }, { token: MessageBusService }, { token: ConfigurationService }, { token: SceneService }, { token: ItemService }, { token: HomedecoratorAppService }, { token: FontService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
41931
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SettingsComponent, isStandalone: false, selector: "rp-settings", inputs: { minWallHeight: "minWallHeight", placeCameraDisabled: "placeCameraDisabled" }, outputs: { onWallsHeightUpdate: "onWallsHeightUpdate" }, viewQueries: [{ propertyName: "versionFieldRef", first: true, predicate: ["versionField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_TOUCH' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"enableTouch\"\r\n (change)=\"toggle(configurationKey.EnableTouch, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'WALLS' | localize }}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <rp-dimension-input\r\n [sourceValue]=\"wallHeight\"\r\n [minValue]=\"minWallHeight\"\r\n title=\"{{'DEFAULT_HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"applyNewHeight($event)\"\r\n >\r\n </rp-dimension-input>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'DEFAULT_THICKNESS' | localize }}:</b>\r\n <span class=\"mat-body-2\">{{ wallThickness }}</span>\r\n</div>\r\n@if (showDetailedWallMeasurements) {\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_DETAILED_WALL_MEASUREMENTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showDetailedWallMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowDetailedWallMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n}\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_DISTANCES_OF_WALL_ITEMS_IN_2D' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWallItemMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowWallItemMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_SNAPPING_OF_WALLS_TO_BASIC_ANGLES' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"wallSnapping\"\r\n (change)=\"toggle(configurationKey.WallSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_SNAPPING_TO_WALL_JOINTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"cornerSnapping\"\r\n (change)=\"toggle(configurationKey.CornerSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'OBJECTS' | localize }}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_DISTANCES' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectDistances\"\r\n (change)=\"toggle(configurationKey.ShowObjectDistances, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_MEASUREMENTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowObjectMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_ROTATION_SNAPPING' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"rotationSnappingEnabled\"\r\n (change)=\"toggle(configurationKey.RotationSnappingEnabled, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'DISPLAY_CUSTOM_SHAPE_NAMES' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"displayCustomShapeNames\"\r\n (change)=\"toggle(configurationKey.DisplayCustomShapeNames, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'UNIT_INFO' | localize }}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SELECT_DIMENSION' | localize }}:</b>\r\n <mat-select [value]=\"currentDimensioning\">\r\n @for (dimensioning of dimensioningOptions; track dimensioning) {\r\n <mat-option\r\n [value]=\"dimensioning\"\r\n [textContent]=\"dimensioning\"\r\n (click)=\"handleDimensioningChoice(dimensioning)\">\r\n </mat-option>\r\n }\r\n </mat-select>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SELECT_DECIMALS' | localize }}:</b>\r\n <mat-select [value]=\"currentRoundingDecimals\">\r\n <mat-option [value]=\"0\" (click)=\"handleDecimalsChoice(0)\" [textContent]=\"'0'\"></mat-option>\r\n <mat-option [value]=\"1\" (click)=\"handleDecimalsChoice(1)\" [textContent]=\"'1'\"></mat-option>\r\n <mat-option [value]=\"2\" (click)=\"handleDecimalsChoice(2)\" [textContent]=\"'2'\"></mat-option>\r\n </mat-select>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ANGLES' | localize }}:</b>\r\n <span class=\"mat-body-2\">{{ angleUnit }}</span>\r\n</div>\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'CAMERA' | localize }}</h3>\r\n<b class=\"mat-subtitle-2\">{{ 'SET_START_POSITION_FOR_WALK_THROUGH_MODE' | localize }}</b>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n [disabled]=\"placeCameraDisabled\"\r\n class=\"place-camera\"\r\n (click)=\"placeCamera()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\r\n {{ 'PLACE_CAMERA' | localize }}\r\n </button>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_CAMERA_CONFIGURATION' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCameraControls\"\r\n (change)=\"toggle(configurationKey.ShowWalkThroughCameraControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n@if (settingsService.settings.options.development) {\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">Camera FOV</b>\r\n <mat-slider class=\"slider-group-slider\" showTickMarks discrete\r\n [min]=\"1\"\r\n [max]=\"125\"\r\n [step]=\"1\">\r\n <input matSliderThumb [value]=\"cameraFOV\" (valueChange)=\"setCameraFOV($event)\">\r\n </mat-slider>\r\n <span class=\"mat-body-2\">{{ cameraFOV }}</span>\r\n </div>\r\n}\r\n<div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subtitle-1\">{{ 'CLEAR_ROOM' | localize }}</h3>\r\n <b class=\"mat-subtitle-2\">{{ 'CLEAR_ALL_FURNITURE_FROM_ROOM' | localize }}</b>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n class=\"remove-all\"\r\n (click)=\"removeAll()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">delete_sweep</mat-icon>\r\n {{ 'CLEAR_FURNITURE' | localize }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n@if (settingsService.settings.options.development) {\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subheading-2\">{{ 'LIGHTS' | localize }}</h3>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_LIGHTING_CONFIGURATION' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showLightControls\"\r\n (change)=\"toggle(configurationKey.ShowLightingControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"toggle(configurationKey.ShowLightplansDialog, true)\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">wb_incandescent</mat-icon>\r\n {{ 'MANAGE_LIGHTPLANS' | localize }}\r\n </button>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_INTERIOR_LIGHTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showInteriorLights\"\r\n (change)=\"toggle(configurationKey.ShowInteriorLights, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'INTERIOR_LIGHT_INTENSITY' | localize }}</b>\r\n <mat-slider class=\"slider-group-slider\" showTickMarks discrete\r\n [min]=\"1\"\r\n [max]=\"1600\"\r\n [step]=\"1\">\r\n <input matSliderThumb [value]=\"interiorLightIntensity\" (valueChange)=\"setInteriorLightIntensity($event)\">\r\n </mat-slider>\r\n <span class=\"mat-body-2\">{{ interiorLightIntensity }}</span>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_POST_PROCESSING_SETTINGS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showPostProcessingSettings\"\r\n (change)=\"toggle(configurationKey.ShowPostProcessingSettings, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_WALLS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWalls\"\r\n (change)=\"toggle(configurationKey.ShowWalls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_CEILING' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCeiling\"\r\n (change)=\"toggle(configurationKey.ShowCeiling, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"hideMaterials()\">{{ 'HIDE_MATERIALS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"showConnectors()\">{{ 'SHOW_CONNECTORS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"showSettingsOptions = true\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">settings</mat-icon>\r\n {{ 'SHOW_SETTINGS_OPTIONS' | localize }}\r\n </button>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{ 'APP_VERSION' | localize }}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #versionField\r\n type=\"text\"\r\n readonly=\"true\"\r\n [value]=\"version\"\r\n (click)=\"selectVersionFieldContent()\"\r\n />\r\n <mat-icon matSuffix (click)=\"copyToClipboard()\">file_copy</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n <h3 class=\"mat-subheading-2\">{{ 'CONNECTION' | localize }}</h3>\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{ 'iONE backend url' | localize }}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #ioneBackendUrl\r\n type=\"text\"\r\n [value]=\"settingsService.settings?.url\"\r\n (keydown)=\"handleBackendUrlChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n}\r\n<div class=\"powered-by-wrapper\">\r\n <span>MyRoomPlans is powered by</span>\r\n <span class=\"powered-logo-wrapper\">\r\n <a href=\"https://www.colijn-it.nl\" target=\"_blank\" alt=\"Colijn IT\" class=\"colijn-it-logo\"><img\r\n src=\"assets/images/colijn-logo.webp\"/></a>\r\n <a href=\"https://ione360.com\" target=\"_blank\" alt=\"iONE360\" class=\"ione-360-logo\"><img\r\n src=\"assets/images/ione360-logo.webp\"/></a>\r\n </span>\r\n <span>Copyright Colijn IT 2021</span>\r\n</div>\r\n@if (showSettingsOptions) {\r\n <settings-options (onclose)=\"showSettingsOptions = false\"></settings-options>\r\n}\r\n", styles: [":host{overflow-y:auto;overflow-x:hidden}:host .powered-by-wrapper{margin-top:20px;font-size:12px}:host .powered-by-wrapper .powered-logo-wrapper{display:flex;align-items:center;justify-content:space-between}:host .powered-by-wrapper .colijn-it-logo{margin:0 5px}:host .powered-by-wrapper .colijn-it-logo img{width:100px}:host .powered-by-wrapper .ione-360-logo{margin:5px}:host .powered-by-wrapper .ione-360-logo img{width:134px}.panel-item{min-height:40px}.panel-item+h3{margin-top:16px;font-weight:600}mat-form-field{width:100%}mat-select{width:70px}::ng-deep .mat-drawer-content{overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ 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: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i2$3.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: i3$3.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$3.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i14.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: i14.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: "component", type: SettingsOptionsComponent, selector: "settings-options", outputs: ["onclose"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42021
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SettingsComponent, isStandalone: false, selector: "rp-settings", inputs: { minWallHeight: "minWallHeight", placeCameraDisabled: "placeCameraDisabled" }, outputs: { onWallsHeightUpdate: "onWallsHeightUpdate" }, viewQueries: [{ propertyName: "versionFieldRef", first: true, predicate: ["versionField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_TOUCH' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"enableTouch\"\r\n (change)=\"toggle(configurationKey.EnableTouch, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'WALLS' | localize }}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <rp-dimension-input\r\n [sourceValue]=\"wallHeight\"\r\n [minValue]=\"minWallHeight\"\r\n title=\"{{'DEFAULT_HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"applyNewHeight($event)\"\r\n >\r\n </rp-dimension-input>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'DEFAULT_THICKNESS' | localize }}:</b>\r\n <span class=\"mat-body-2\">{{ wallThickness }}</span>\r\n</div>\r\n@if (showDetailedWallMeasurements) {\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_DETAILED_WALL_MEASUREMENTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showDetailedWallMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowDetailedWallMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n}\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_DISTANCES_OF_WALL_ITEMS_IN_2D' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWallItemMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowWallItemMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_SNAPPING_OF_WALLS_TO_BASIC_ANGLES' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"wallSnapping\"\r\n (change)=\"toggle(configurationKey.WallSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_SNAPPING_TO_WALL_JOINTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"cornerSnapping\"\r\n (change)=\"toggle(configurationKey.CornerSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'OBJECTS' | localize }}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_DISTANCES' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectDistances\"\r\n (change)=\"toggle(configurationKey.ShowObjectDistances, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_MEASUREMENTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowObjectMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ENABLE_ROTATION_SNAPPING' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"rotationSnappingEnabled\"\r\n (change)=\"toggle(configurationKey.RotationSnappingEnabled, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'DISPLAY_CUSTOM_SHAPE_NAMES' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"displayCustomShapeNames\"\r\n (change)=\"toggle(configurationKey.DisplayCustomShapeNames, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'UNIT_INFO' | localize }}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SELECT_DIMENSION' | localize }}:</b>\r\n <mat-select [value]=\"currentDimensioning\">\r\n @for (dimensioning of dimensioningOptions; track dimensioning) {\r\n <mat-option\r\n [value]=\"dimensioning\"\r\n [textContent]=\"dimensioning\"\r\n (click)=\"handleDimensioningChoice(dimensioning)\">\r\n </mat-option>\r\n }\r\n </mat-select>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SELECT_DECIMALS' | localize }}:</b>\r\n <mat-select [value]=\"currentRoundingDecimals\">\r\n <mat-option [value]=\"0\" (click)=\"handleDecimalsChoice(0)\" [textContent]=\"'0'\"></mat-option>\r\n <mat-option [value]=\"1\" (click)=\"handleDecimalsChoice(1)\" [textContent]=\"'1'\"></mat-option>\r\n <mat-option [value]=\"2\" (click)=\"handleDecimalsChoice(2)\" [textContent]=\"'2'\"></mat-option>\r\n </mat-select>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'ANGLES' | localize }}:</b>\r\n <span class=\"mat-body-2\">{{ angleUnit }}</span>\r\n</div>\r\n\r\n<h3 class=\"mat-subtitle-1\">{{ 'CAMERA' | localize }}</h3>\r\n<b class=\"mat-subtitle-2\">{{ 'SET_START_POSITION_FOR_WALK_THROUGH_MODE' | localize }}</b>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n [disabled]=\"placeCameraDisabled\"\r\n class=\"place-camera\"\r\n (click)=\"placeCamera()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\r\n {{ 'PLACE_CAMERA' | localize }}\r\n </button>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-subtitle-2\">{{ 'SHOW_CAMERA_CONFIGURATION' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCameraControls\"\r\n (change)=\"toggle(configurationKey.ShowWalkThroughCameraControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n@if (settingsService.settings.options.development) {\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">Camera FOV</b>\r\n <mat-slider class=\"slider-group-slider\" showTickMarks discrete\r\n [min]=\"1\"\r\n [max]=\"125\"\r\n [step]=\"1\">\r\n <input matSliderThumb [value]=\"cameraFOV\" (valueChange)=\"setCameraFOV($event)\">\r\n </mat-slider>\r\n <span class=\"mat-body-2\">{{ cameraFOV }}</span>\r\n </div>\r\n}\r\n<div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subtitle-1\">{{ 'CLEAR_ROOM' | localize }}</h3>\r\n <b class=\"mat-subtitle-2\">{{ 'CLEAR_ALL_FURNITURE_FROM_ROOM' | localize }}</b>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n class=\"remove-all\"\r\n (click)=\"removeAll()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">delete_sweep</mat-icon>\r\n {{ 'CLEAR_FURNITURE' | localize }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n@if (settingsService.settings.options.development) {\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subheading-2\">{{ 'LIGHTS' | localize }}</h3>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_LIGHTING_CONFIGURATION' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showLightControls\"\r\n (change)=\"toggle(configurationKey.ShowLightingControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"toggle(configurationKey.ShowLightplansDialog, true)\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">wb_incandescent</mat-icon>\r\n {{ 'MANAGE_LIGHTPLANS' | localize }}\r\n </button>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_INTERIOR_LIGHTS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showInteriorLights\"\r\n (change)=\"toggle(configurationKey.ShowInteriorLights, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'INTERIOR_LIGHT_INTENSITY' | localize }}</b>\r\n <mat-slider class=\"slider-group-slider\" showTickMarks discrete\r\n [min]=\"1\"\r\n [max]=\"1600\"\r\n [step]=\"1\">\r\n <input matSliderThumb [value]=\"interiorLightIntensity\" (valueChange)=\"setInteriorLightIntensity($event)\">\r\n </mat-slider>\r\n <span class=\"mat-body-2\">{{ interiorLightIntensity }}</span>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_POST_PROCESSING_SETTINGS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showPostProcessingSettings\"\r\n (change)=\"toggle(configurationKey.ShowPostProcessingSettings, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_WALLS' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWalls\"\r\n (change)=\"toggle(configurationKey.ShowWalls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{ 'SHOW_CEILING' | localize }}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCeiling\"\r\n (change)=\"toggle(configurationKey.ShowCeiling, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"hideMaterials()\">{{ 'HIDE_MATERIALS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"showConnectors()\">{{ 'SHOW_CONNECTORS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"showSettingsOptions = true\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">settings</mat-icon>\r\n {{ 'SHOW_SETTINGS_OPTIONS' | localize }}\r\n </button>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{ 'APP_VERSION' | localize }}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #versionField\r\n type=\"text\"\r\n readonly=\"true\"\r\n [value]=\"version\"\r\n (click)=\"selectVersionFieldContent()\"\r\n />\r\n <mat-icon matSuffix (click)=\"copyToClipboard()\">file_copy</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n <h3 class=\"mat-subheading-2\">{{ 'CONNECTION' | localize }}</h3>\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{ 'iONE backend url' | localize }}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #ioneBackendUrl\r\n type=\"text\"\r\n [value]=\"settingsService.settings?.url\"\r\n (keydown)=\"handleBackendUrlChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n}\r\n<div class=\"powered-by-wrapper\">\r\n <span>MyRoomPlans is powered by</span>\r\n <span class=\"powered-logo-wrapper\">\r\n <a href=\"https://www.colijn-it.nl\" target=\"_blank\" alt=\"Colijn IT\" class=\"colijn-it-logo\"><img\r\n src=\"assets/images/colijn-logo.webp\"/></a>\r\n <a href=\"https://ione360.com\" target=\"_blank\" alt=\"iONE360\" class=\"ione-360-logo\"><img\r\n src=\"assets/images/ione360-logo.webp\"/></a>\r\n </span>\r\n <span>Copyright Colijn IT 2021</span>\r\n</div>\r\n@if (showSettingsOptions) {\r\n <settings-options (onclose)=\"showSettingsOptions = false\"></settings-options>\r\n}\r\n", styles: [":host{overflow-y:auto;overflow-x:hidden}:host .powered-by-wrapper{margin-top:20px;font-size:12px}:host .powered-by-wrapper .powered-logo-wrapper{display:flex;align-items:center;justify-content:space-between}:host .powered-by-wrapper .colijn-it-logo{margin:0 5px}:host .powered-by-wrapper .colijn-it-logo img{width:100px}:host .powered-by-wrapper .ione-360-logo{margin:5px}:host .powered-by-wrapper .ione-360-logo img{width:134px}.panel-item{min-height:40px}.panel-item+h3{margin-top:16px;font-weight:600}mat-form-field{width:100%}mat-select{width:70px}::ng-deep .mat-drawer-content{overflow-y:auto;overflow-x:hidden}\n"], dependencies: [{ 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: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i2$3.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: i3$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i3$2.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "component", type: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i14.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: i14.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: "component", type: SettingsOptionsComponent, selector: "settings-options", outputs: ["onclose"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41932
42022
  }
41933
42023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsComponent, decorators: [{
41934
42024
  type: Component,
@@ -42155,7 +42245,7 @@ class CustomShapeCreatorComponent {
42155
42245
  }
42156
42246
  }
42157
42247
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomShapeCreatorComponent, deps: [{ token: HudService }, { token: SceneService }, { token: RoomService }, { token: ItemService }, { token: SceneEventService }, { token: MessageBusService }, { token: WallService }], target: i0.ɵɵFactoryTarget.Component }); }
42158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomShapeCreatorComponent, isStandalone: false, selector: "rp-custom-shape-creator", inputs: { shape: "shape" }, ngImport: i0, template: "<section>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input matInput #nameInputRef\r\n type=\"text\"\r\n placeholder=\"{{'SHAPES_NAME' | localize}}\"\r\n [value]=\"name\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"setName(nameInputRef.value)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"nameInputRef.value = name\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"switcher\">\r\n <h2 class=\"mat-subtitle-2\">{{isFloorType ? ('FLOOR' | localize) : ('WALL' | localize)}}</h2>\r\n <mat-slide-toggle\r\n [checked]=\"isFloorType\"\r\n (change)=\"toggleItemType()\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <h3 class=\"mat-subtitle-1\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n <rp-dimension-input\r\n title=\"{{'HEIGHT' | localize}}\"\r\n [sourceValue]=\"height * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setHeight($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'WIDTH' | localize}}\"\r\n [sourceValue]=\"width * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setWidth($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'DEPTH' | localize}}\"\r\n [sourceValue]=\"depth * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setDepth($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'ELEVATION' | localize}}\"\r\n [sourceValue]=\"elevation * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setElevation($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n </div>\r\n\r\n <div>\r\n <h3 class=\"mat-subtitle-1\"> {{ 'TEXTURES' | localize}}</h3>\r\n <mat-form-field id=\"face-select-form\">\r\n <mat-label>{{\"SELECT_FACE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedFace\">\r\n <mat-option [value]=\"faceRef.All\">{{ 'ALL' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Top\">{{ 'TOP' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Bottom\">{{ 'BOTTOM' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Front\">{{ 'FRONT' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Back\">{{ 'BACK' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Left\">{{ 'LEFT' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Right\">{{ 'RIGHT' | localize }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <rp-appearance-section\r\n type=\"shape\"\r\n [hideTextureTab]=\"true\"\r\n [color]=\"skin[selectedFace].color\"\r\n [plainTexture]=\"skin[selectedFace].texture\"\r\n [textureWidth]=\"skin[selectedFace].width() * 100\"\r\n [textureHeight]=\"skin[selectedFace].height() * 100\"\r\n [photoOptions]=\"textureOptions.Tiles\"\r\n (setTexture)=\"setTexture($event)\"\r\n (setColor)=\"setColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n</section>\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}#face-select-form{width:100%}#create-button{color:#fff;background:#3760a1}::ng-deep .mat-mdc-select-panel{max-height:80vh!important}.switcher{margin-right:10px}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: i2$3.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: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.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: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
42248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: CustomShapeCreatorComponent, isStandalone: false, selector: "rp-custom-shape-creator", inputs: { shape: "shape" }, ngImport: i0, template: "<section>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input matInput #nameInputRef\r\n type=\"text\"\r\n placeholder=\"{{'SHAPES_NAME' | localize}}\"\r\n [value]=\"name\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"setName(nameInputRef.value)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"nameInputRef.value = name\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"switcher\">\r\n <h2 class=\"mat-subtitle-2\">{{isFloorType ? ('FLOOR' | localize) : ('WALL' | localize)}}</h2>\r\n <mat-slide-toggle\r\n [checked]=\"isFloorType\"\r\n (change)=\"toggleItemType()\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <h3 class=\"mat-subtitle-1\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n <rp-dimension-input\r\n title=\"{{'HEIGHT' | localize}}\"\r\n [sourceValue]=\"height * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setHeight($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'WIDTH' | localize}}\"\r\n [sourceValue]=\"width * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setWidth($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'DEPTH' | localize}}\"\r\n [sourceValue]=\"depth * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setDepth($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'ELEVATION' | localize}}\"\r\n [sourceValue]=\"elevation * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setElevation($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n </div>\r\n\r\n <div>\r\n <h3 class=\"mat-subtitle-1\"> {{ 'TEXTURES' | localize}}</h3>\r\n <mat-form-field id=\"face-select-form\">\r\n <mat-label>{{\"SELECT_FACE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedFace\">\r\n <mat-option [value]=\"faceRef.All\">{{ 'ALL' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Top\">{{ 'TOP' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Bottom\">{{ 'BOTTOM' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Front\">{{ 'FRONT' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Back\">{{ 'BACK' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Left\">{{ 'LEFT' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Right\">{{ 'RIGHT' | localize }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <rp-appearance-section\r\n type=\"shape\"\r\n [hideTextureTab]=\"true\"\r\n [color]=\"skin[selectedFace].color\"\r\n [plainTexture]=\"skin[selectedFace].texture\"\r\n [textureWidth]=\"skin[selectedFace].width() * 100\"\r\n [textureHeight]=\"skin[selectedFace].height() * 100\"\r\n [photoOptions]=\"textureOptions.Tiles\"\r\n (setTexture)=\"setTexture($event)\"\r\n (setColor)=\"setColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n</section>\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}#face-select-form{width:100%}#create-button{color:#fff;background:#3760a1}::ng-deep .mat-mdc-select-panel{max-height:80vh!important}.switcher{margin-right:10px}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: i2$3.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: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.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: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
42159
42249
  }
42160
42250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomShapeCreatorComponent, decorators: [{
42161
42251
  type: Component,
@@ -42332,7 +42422,7 @@ class CustomCylinderCreatorComponent {
42332
42422
  this._sceneService.needsRender = true;
42333
42423
  }
42334
42424
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomCylinderCreatorComponent, deps: [{ token: HudService }, { token: SceneService }, { token: ItemService }, { token: RoomService }, { token: SceneEventService }, { token: MessageBusService }, { token: WallService }], target: i0.ɵɵFactoryTarget.Component }); }
42335
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CustomCylinderCreatorComponent, isStandalone: false, selector: "custom-cylinder-creator", inputs: { shape: "shape" }, ngImport: i0, template: "<section>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input matInput #nameInputRef\r\n type=\"text\"\r\n placeholder=\"{{'SHAPES_NAME' | localize}}\"\r\n [value]=\"name\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"setName(nameInputRef.value)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"nameInputRef.value = name\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"switcher\">\r\n <h2 class=\"mat-subtitle-2\">{{isFloorType ? ('FLOOR' | localize) : ('WALL' | localize)}}</h2>\r\n <mat-slide-toggle\r\n [checked]=\"isFloorType\"\r\n (change)=\"toggleItemType()\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <h3 class=\"mat-subtitle-1\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n <rp-dimension-input\r\n title=\"{{'RADIUS' | localize}}\"\r\n [sourceValue]=\"radius * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setRadius($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'HEIGHT' | localize}}\"\r\n [sourceValue]=\"height * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setHeight($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n @if (isFloorType) {\r\n <rp-dimension-input\r\n title=\"{{'ELEVATION' | localize}}\"\r\n [sourceValue]=\"elevation * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setElevation($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n }\r\n </div>\r\n\r\n <div>\r\n <h3 class=\"mat-subtitle-1\"> {{ 'TEXTURES' | localize}}</h3>\r\n <mat-form-field class=\"face-select-form\">\r\n <mat-label>{{\"SELECT_FACE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedFace\">\r\n <mat-option [value]=\"faceRef.All\">{{ 'ALL' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Top\">{{ 'TOP' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Bottom\">{{ 'BOTTOM' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Front\">{{ 'FRONT' | localize }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <rp-appearance-section\r\n [hideTextureTab]=\"true\"\r\n [color]=\"skin[selectedFace].color\"\r\n [plainTexture]=\"skin[selectedFace].texture\"\r\n [photoOptions]=\"textureOptions.Tiles\"\r\n [textureWidth]=\"skin[selectedFace].width() * 100\"\r\n [textureHeight]=\"skin[selectedFace].height() * 100\"\r\n (setTexture)=\"setTexture($event)\"\r\n (setColor)=\"setColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n </section>\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}.face-select-form{width:100%}::ng-deep .mat-mdc-select-panel{max-height:80vh!important}.switcher{margin-right:10px}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: i2$3.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: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.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: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
42425
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: CustomCylinderCreatorComponent, isStandalone: false, selector: "custom-cylinder-creator", inputs: { shape: "shape" }, ngImport: i0, template: "<section>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input matInput #nameInputRef\r\n type=\"text\"\r\n placeholder=\"{{'SHAPES_NAME' | localize}}\"\r\n [value]=\"name\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"setName(nameInputRef.value)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"nameInputRef.value = name\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"switcher\">\r\n <h2 class=\"mat-subtitle-2\">{{isFloorType ? ('FLOOR' | localize) : ('WALL' | localize)}}</h2>\r\n <mat-slide-toggle\r\n [checked]=\"isFloorType\"\r\n (change)=\"toggleItemType()\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <h3 class=\"mat-subtitle-1\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n <rp-dimension-input\r\n title=\"{{'RADIUS' | localize}}\"\r\n [sourceValue]=\"radius * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setRadius($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'HEIGHT' | localize}}\"\r\n [sourceValue]=\"height * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setHeight($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n @if (isFloorType) {\r\n <rp-dimension-input\r\n title=\"{{'ELEVATION' | localize}}\"\r\n [sourceValue]=\"elevation * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setElevation($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n }\r\n </div>\r\n\r\n <div>\r\n <h3 class=\"mat-subtitle-1\"> {{ 'TEXTURES' | localize}}</h3>\r\n <mat-form-field class=\"face-select-form\">\r\n <mat-label>{{\"SELECT_FACE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedFace\">\r\n <mat-option [value]=\"faceRef.All\">{{ 'ALL' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Top\">{{ 'TOP' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Bottom\">{{ 'BOTTOM' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Front\">{{ 'FRONT' | localize }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <rp-appearance-section\r\n [hideTextureTab]=\"true\"\r\n [color]=\"skin[selectedFace].color\"\r\n [plainTexture]=\"skin[selectedFace].texture\"\r\n [photoOptions]=\"textureOptions.Tiles\"\r\n [textureWidth]=\"skin[selectedFace].width() * 100\"\r\n [textureHeight]=\"skin[selectedFace].height() * 100\"\r\n (setTexture)=\"setTexture($event)\"\r\n (setColor)=\"setColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n </section>\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}.face-select-form{width:100%}::ng-deep .mat-mdc-select-panel{max-height:80vh!important}.switcher{margin-right:10px}\n"], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: i2$3.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: i10$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.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: i12.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: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "component", type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { kind: "component", type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
42336
42426
  }
42337
42427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CustomCylinderCreatorComponent, decorators: [{
42338
42428
  type: Component,
@@ -42535,7 +42625,7 @@ class ConfigurationPresetLoaderComponent {
42535
42625
  </div>
42536
42626
  }
42537
42627
 
42538
- `, isInline: true, styles: [".co-configurator-preset-loader .configurator-preset-loader-container{position:fixed;background:#fff;right:50px;bottom:50px;width:100%;max-width:400px;min-height:40px;box-sizing:border-box;padding:15px 5px;display:flex;justify-content:space-between;align-items:center;border-radius:15px;box-shadow:1px 1px 4px #0003;pointer-events:all;z-index:102}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-icon{background:#4e9b7e;border-radius:50%;width:30px;height:30px}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-icon .co-icon svg polygon{fill:#fff}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-head{text-transform:uppercase;font-size:12px}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-sku{font-size:18px;font-weight:700;margin:5px 0 15px}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-text-link{font-size:14px;cursor:pointer;color:#4e9b7e;text-align:center}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-text-link:hover{text-decoration:underline}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-close .co-button{background:none}\n"], dependencies: [{ kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: i5.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], encapsulation: i0.ViewEncapsulation.None }); }
42628
+ `, isInline: true, styles: [".co-configurator-preset-loader .configurator-preset-loader-container{position:fixed;background:#fff;right:50px;bottom:50px;width:100%;max-width:400px;min-height:40px;box-sizing:border-box;padding:15px 5px;display:flex;justify-content:space-between;align-items:center;border-radius:15px;box-shadow:1px 1px 4px #0003;pointer-events:all;z-index:102}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-icon{background:#4e9b7e;border-radius:50%;width:30px;height:30px}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-icon .co-icon svg polygon{fill:#fff}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-head{text-transform:uppercase;font-size:12px}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-sku{font-size:18px;font-weight:700;margin:5px 0 15px}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-text-link{font-size:14px;cursor:pointer;color:#4e9b7e;text-align:center}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-info .preset-text-link:hover{text-decoration:underline}.co-configurator-preset-loader .configurator-preset-loader-container .configurator-preset-close .co-button{background:none}\n"], dependencies: [{ kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: i5$1.ButtonComponent, selector: "co-button", inputs: ["label", "iconData", "iconDataRight", "isToggleButton", "isToggled", "hidden", "disabled"], outputs: ["onClick", "clickedWhileDisabled", "isToggledChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], encapsulation: i0.ViewEncapsulation.None }); }
42539
42629
  }
42540
42630
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfigurationPresetLoaderComponent, decorators: [{
42541
42631
  type: Component,
@@ -43926,7 +44016,7 @@ class RoomPlannerComponent {
43926
44016
  }
43927
44017
  }
43928
44018
 
43929
- `, isInline: true, styles: [".with-scrollable-section{overflow:hidden;height:100%}.with-scrollable-section section{overflow-y:auto}.RoomPlanner{width:inherit;height:inherit;pointer-events:none}.RoomPlanner>*{pointer-events:all}.sidebar-toggles .mat-mdc-raised-button{width:110px;text-align:left}.logo-menu{position:absolute;top:20px;left:20px;z-index:2}.logo-menu-2nd{position:absolute;top:140px;left:84px}.logo-menu-4th{position:absolute;top:180px;left:84px}.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}.flex-wrap{display:flex;flex-flow:column nowrap;height:100%}.solid-background>canvas{fill:#fff;background:#fff}.toolbar__divider{border-bottom:2px solid rgba(199,195,195,.5411764706);width:70%;margin:5px 0}.toolbar__divider.context-menu{border-color:#c7c3c38a;width:100%}.show-inner-wall-measurement-button ::ng-deep .co-icon{transform:rotate(180deg)}.on-top{z-index:3}.rp-item-context-menu-wrap{color:#fff;background:#17253391;border-radius:5px;box-sizing:border-box;padding:10px;position:relative}.rp-item-context-menu-wrap .rp-item-context-menu-item{cursor:pointer;flex-direction:row;display:flex;padding:5px;border-radius:5px}.rp-item-context-menu-wrap .rp-item-context-menu-item span,.rp-item-context-menu-wrap .rp-item-context-menu-item label{display:flex;flex-direction:column;line-height:20px;font-size:12px;font-weight:lighter;vertical-align:middle}.rp-item-context-menu-wrap .rp-item-context-menu-item .label{width:150px}.rp-item-context-menu-wrap .rp-item-context-menu-item .icon{width:20px;margin-right:10px}.rp-item-context-menu-wrap .rp-item-context-menu-item .icon svg,.rp-item-context-menu-wrap .rp-item-context-menu-item .icon co-icon,.rp-item-context-menu-wrap .rp-item-context-menu-item .icon .mat-icon{height:15px;width:15px;font-size:18px}.rp-item-context-menu-wrap .rp-item-context-menu-item:hover{background:#dcdcdc80}.rp-item-context-menu-wrap .rp-item-context-menu-item-highlight{color:#da9803}.rp-item-context-menu-wrap .rp-item-context-menu-item-highlight svg{fill:#da9803}.rp-item-context-menu-wrap .conversion-button-selected .icon-selected{color:#009a6d}.rp-item-context-menu-wrap .rp-item-context-menu-header{border-bottom:2px solid rgba(199,195,195,.5411764706);margin-bottom:10px;padding-left:5px;padding-right:25px;max-width:160px;overflow:hidden}.rp-item-context-menu-wrap .rp-item-context-menu-header p{color:#da9803;font-size:13px;margin:0;padding:5px 0 10px}.rp-item-context-menu-wrap .rp-item-context-menu-close{position:absolute;right:7px;top:5px;z-index:2;cursor:pointer;width:15px;height:15px}.rp-item-context-menu-wrap .rp-item-context-menu-close .close-icon co-icon{height:15px;width:15px;font-size:18px}.rp-right-context-menu-wrap{color:#fff;background:#17253391;border-radius:5px 0 0 5px;box-sizing:border-box;padding:5px;position:relative}.rp-right-context-menu-wrap .rp-right-context-menu-item{cursor:pointer;flex-direction:row;display:flex;padding:10px;justify-content:center;border-bottom:2px solid rgba(199,195,195,.5411764706)}.rp-right-context-menu-wrap .rp-right-context-menu-item:last-child{border-bottom:none}.rp-right-context-menu-wrap .rp-right-context-menu-item span,.rp-right-context-menu-wrap .rp-right-context-menu-item label{display:flex;flex-direction:column;font-weight:lighter;vertical-align:middle}.rp-right-context-menu-wrap .rp-right-context-menu-item .icon{width:auto;margin-right:0}.rp-right-context-menu-wrap .rp-right-context-menu-item .icon svg,.rp-right-context-menu-wrap .rp-right-context-menu-item .icon co-icon,.rp-right-context-menu-wrap .rp-right-context-menu-item .icon .mat-icon{height:20px;width:20px;font-size:20px}.rp-right-context-menu-wrap .rp-right-context-menu-item:hover{background:#dcdcdc80}.rp-right-context-menu-wrap .rp-right-context-menu-item-highlight{color:#da9803}.rp-right-context-menu-wrap .rp-right-context-menu-item-highlight svg{fill:#da9803}.rp-right-context-menu-wrap .conversion-button-selected .icon-selected{color:#009a6d}::ng-deep .mat-mdc-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#da9803}::ng-deep .mat-mdc-slide-toggle.mat-checked .mat-slide-toggle-bar .mat-slide-toggle-thumb-container .mat-slide-toggle-thumb{background-color:#fff}::ng-deep .mat-mdc-slide-toggle.mat-checked .mat-slide-toggle-bar:hover .mat-ripple-element{background-color:#da9803}::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-bar{width:40px;height:20px;border-radius:15px}::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-bar .mat-slide-toggle-thumb-container{width:17px;height:17px;top:2px;left:5px}::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-bar .mat-slide-toggle-thumb-container .mat-slide-toggle-thumb{height:16px;width:16px}::ng-deep mat-slider{height:24px}::ng-deep mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{overflow:visible}::ng-deep mat-slider .mat-slider-wrapper .mat-slider-track-fill{background-color:#da9803}::ng-deep mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb,::ng-deep mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb-label{background-color:#da9803}::ng-deep mat-list .mat-mdc-list-item{border-bottom:1px solid #9bb0d0}.mrp-save-grouping{pointer-events:all;position:absolute;bottom:10%;left:50%}\n"], dependencies: [{ kind: "component", type: CategoryLibraryComponent, selector: "rp-category-library", inputs: ["categories"], outputs: ["categoryClick"] }, { kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ContextMenuComponent, selector: "rp-context-menu", inputs: ["openMouseEvent"] }, { kind: "component", type: ItemContextMenuComponent, selector: "rp-item-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { kind: "component", type: RightContextMenuComponent, selector: "rp-right-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { kind: "component", type: ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { kind: "directive", type: i14.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: i14.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"] }, { kind: "directive", type: i7$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ButtonElevationComponent, selector: "button-elevation", inputs: ["item"] }, { kind: "component", type: ObjectLibraryComponent, selector: "rp-object-library", inputs: ["objects"], outputs: ["setDragged", "releaseDragged", "onObjectClick"] }, { kind: "component", type: FloorplannerComponent, selector: "floor-planner", outputs: ["selectedWallChange"] }, { kind: "component", type: SelectedFloorComponent, selector: "rp-selected-floor", inputs: ["floor", "texturePlane", "color"], outputs: ["setTexture", "setColor"] }, { kind: "component", type: SelectedObjectComponent, selector: "rp-selected-object", inputs: ["object"], outputs: ["onSelectedObjectChange"] }, { kind: "component", type: SelectedThreedObjectComponent, selector: "rp-selected-threed-object", inputs: ["object", "showCopy", "showDelete", "showLock"], outputs: ["onSelectedObjectChange"] }, { kind: "component", type: SelectedWallComponent, selector: "rp-selected-wall", inputs: ["wall", "texturePlane", "color", "minWallHeight", "maxWallHeight", "maxWallThickness", "maxWallLength", "minWallLength"], outputs: ["remove", "setLength", "setHeight", "setThickness", "selectCorner", "setTexture", "setColor"] }, { kind: "component", type: SettingsComponent, selector: "rp-settings", inputs: ["minWallHeight", "placeCameraDisabled"], outputs: ["onWallsHeightUpdate"] }, { kind: "component", type: CustomShapeCreatorComponent, selector: "rp-custom-shape-creator", inputs: ["shape"] }, { kind: "component", type: CustomCylinderCreatorComponent, selector: "custom-cylinder-creator", inputs: ["shape"] }, { kind: "component", type: SelectedObjectScaleComponent, selector: "rp-selected-object-scale", inputs: ["object"], outputs: ["objectChange"] }, { kind: "component", type: ConfigurationPresetLoaderComponent, selector: "co-configurator-preset-loader" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
44019
+ `, isInline: true, styles: [".with-scrollable-section{overflow:hidden;height:100%}.with-scrollable-section section{overflow-y:auto}.RoomPlanner{width:inherit;height:inherit;pointer-events:none}.RoomPlanner>*{pointer-events:all}.sidebar-toggles .mat-mdc-raised-button{width:110px;text-align:left}.logo-menu{position:absolute;top:20px;left:20px;z-index:2}.logo-menu-2nd{position:absolute;top:140px;left:84px}.logo-menu-4th{position:absolute;top:180px;left:84px}.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}.flex-wrap{display:flex;flex-flow:column nowrap;height:100%}.solid-background>canvas{fill:#fff;background:#fff}.toolbar__divider{border-bottom:2px solid rgba(199,195,195,.5411764706);width:70%;margin:5px 0}.toolbar__divider.context-menu{border-color:#c7c3c38a;width:100%}.show-inner-wall-measurement-button ::ng-deep .co-icon{transform:rotate(180deg)}.on-top{z-index:3}.rp-item-context-menu-wrap{color:#fff;background:#17253391;border-radius:5px;box-sizing:border-box;padding:10px;position:relative}.rp-item-context-menu-wrap .rp-item-context-menu-item{cursor:pointer;flex-direction:row;display:flex;padding:5px;border-radius:5px}.rp-item-context-menu-wrap .rp-item-context-menu-item span,.rp-item-context-menu-wrap .rp-item-context-menu-item label{display:flex;flex-direction:column;line-height:20px;font-size:12px;font-weight:lighter;vertical-align:middle}.rp-item-context-menu-wrap .rp-item-context-menu-item .label{width:150px}.rp-item-context-menu-wrap .rp-item-context-menu-item .icon{width:20px;margin-right:10px}.rp-item-context-menu-wrap .rp-item-context-menu-item .icon svg,.rp-item-context-menu-wrap .rp-item-context-menu-item .icon co-icon,.rp-item-context-menu-wrap .rp-item-context-menu-item .icon .mat-icon{height:15px;width:15px;font-size:18px}.rp-item-context-menu-wrap .rp-item-context-menu-item:hover{background:#dcdcdc80}.rp-item-context-menu-wrap .rp-item-context-menu-item-highlight{color:#da9803}.rp-item-context-menu-wrap .rp-item-context-menu-item-highlight svg{fill:#da9803}.rp-item-context-menu-wrap .conversion-button-selected .icon-selected{color:#009a6d}.rp-item-context-menu-wrap .rp-item-context-menu-header{border-bottom:2px solid rgba(199,195,195,.5411764706);margin-bottom:10px;padding-left:5px;padding-right:25px;max-width:160px;overflow:hidden}.rp-item-context-menu-wrap .rp-item-context-menu-header p{color:#da9803;font-size:13px;margin:0;padding:5px 0 10px}.rp-item-context-menu-wrap .rp-item-context-menu-close{position:absolute;right:7px;top:5px;z-index:2;cursor:pointer;width:15px;height:15px}.rp-item-context-menu-wrap .rp-item-context-menu-close .close-icon co-icon{height:15px;width:15px;font-size:18px}.rp-right-context-menu-wrap{color:#fff;background:#17253391;border-radius:5px 0 0 5px;box-sizing:border-box;padding:5px;position:relative}.rp-right-context-menu-wrap .rp-right-context-menu-item{cursor:pointer;flex-direction:row;display:flex;padding:10px;justify-content:center;border-bottom:2px solid rgba(199,195,195,.5411764706)}.rp-right-context-menu-wrap .rp-right-context-menu-item:last-child{border-bottom:none}.rp-right-context-menu-wrap .rp-right-context-menu-item span,.rp-right-context-menu-wrap .rp-right-context-menu-item label{display:flex;flex-direction:column;font-weight:lighter;vertical-align:middle}.rp-right-context-menu-wrap .rp-right-context-menu-item .icon{width:auto;margin-right:0}.rp-right-context-menu-wrap .rp-right-context-menu-item .icon svg,.rp-right-context-menu-wrap .rp-right-context-menu-item .icon co-icon,.rp-right-context-menu-wrap .rp-right-context-menu-item .icon .mat-icon{height:20px;width:20px;font-size:20px}.rp-right-context-menu-wrap .rp-right-context-menu-item:hover{background:#dcdcdc80}.rp-right-context-menu-wrap .rp-right-context-menu-item-highlight{color:#da9803}.rp-right-context-menu-wrap .rp-right-context-menu-item-highlight svg{fill:#da9803}.rp-right-context-menu-wrap .conversion-button-selected .icon-selected{color:#009a6d}::ng-deep .mat-mdc-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#da9803}::ng-deep .mat-mdc-slide-toggle.mat-checked .mat-slide-toggle-bar .mat-slide-toggle-thumb-container .mat-slide-toggle-thumb{background-color:#fff}::ng-deep .mat-mdc-slide-toggle.mat-checked .mat-slide-toggle-bar:hover .mat-ripple-element{background-color:#da9803}::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-bar{width:40px;height:20px;border-radius:15px}::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-bar .mat-slide-toggle-thumb-container{width:17px;height:17px;top:2px;left:5px}::ng-deep .mat-mdc-slide-toggle .mat-slide-toggle-bar .mat-slide-toggle-thumb-container .mat-slide-toggle-thumb{height:16px;width:16px}::ng-deep mat-slider{height:24px}::ng-deep mat-slider .mat-slider-wrapper .mat-slider-track-wrapper{overflow:visible}::ng-deep mat-slider .mat-slider-wrapper .mat-slider-track-fill{background-color:#da9803}::ng-deep mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb,::ng-deep mat-slider .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb-label{background-color:#da9803}::ng-deep mat-list .mat-mdc-list-item{border-bottom:1px solid #9bb0d0}.mrp-save-grouping{pointer-events:all;position:absolute;bottom:10%;left:50%}\n"], dependencies: [{ kind: "component", type: CategoryLibraryComponent, selector: "rp-category-library", inputs: ["categories"], outputs: ["categoryClick"] }, { kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ContextMenuComponent, selector: "rp-context-menu", inputs: ["openMouseEvent"] }, { kind: "component", type: ItemContextMenuComponent, selector: "rp-item-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { kind: "component", type: RightContextMenuComponent, selector: "rp-right-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { kind: "component", type: ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { kind: "directive", type: i14.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: i14.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"] }, { kind: "directive", type: i7$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ButtonElevationComponent, selector: "button-elevation", inputs: ["item"] }, { kind: "component", type: ObjectLibraryComponent, selector: "rp-object-library", inputs: ["objects"], outputs: ["setDragged", "releaseDragged", "onObjectClick"] }, { kind: "component", type: FloorplannerComponent, selector: "floor-planner", outputs: ["selectedWallChange"] }, { kind: "component", type: SelectedFloorComponent, selector: "rp-selected-floor", inputs: ["floor", "texturePlane", "color"], outputs: ["setTexture", "setColor"] }, { kind: "component", type: SelectedObjectComponent, selector: "rp-selected-object", inputs: ["object"], outputs: ["onSelectedObjectChange"] }, { kind: "component", type: SelectedThreedObjectComponent, selector: "rp-selected-threed-object", inputs: ["object", "showCopy", "showDelete", "showLock"], outputs: ["onSelectedObjectChange"] }, { kind: "component", type: SelectedWallComponent, selector: "rp-selected-wall", inputs: ["wall", "texturePlane", "color", "minWallHeight", "maxWallHeight", "maxWallThickness", "maxWallLength", "minWallLength"], outputs: ["remove", "setLength", "setHeight", "setThickness", "selectCorner", "setTexture", "setColor"] }, { kind: "component", type: SettingsComponent, selector: "rp-settings", inputs: ["minWallHeight", "placeCameraDisabled"], outputs: ["onWallsHeightUpdate"] }, { kind: "component", type: CustomShapeCreatorComponent, selector: "rp-custom-shape-creator", inputs: ["shape"] }, { kind: "component", type: CustomCylinderCreatorComponent, selector: "custom-cylinder-creator", inputs: ["shape"] }, { kind: "component", type: SelectedObjectScaleComponent, selector: "rp-selected-object-scale", inputs: ["object"], outputs: ["objectChange"] }, { kind: "component", type: ConfigurationPresetLoaderComponent, selector: "co-configurator-preset-loader" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
43930
44020
  }
43931
44021
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: RoomPlannerComponent, decorators: [{
43932
44022
  type: Component,
@@ -44562,7 +44652,7 @@ class FurnitureLibraryComponent {
44562
44652
  return this.constructFn({ name, options });
44563
44653
  }
44564
44654
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FurnitureLibraryComponent, deps: [{ token: MessageBusService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
44565
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FurnitureLibraryComponent, isStandalone: false, selector: "rp-furniture-library", inputs: { furnitures: "furnitures", constructFn: "constructFn" }, outputs: { close: "close", setDragged: "setDragged", releaseDragged: "releaseDragged" }, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"200px\">\r\n @for (furniture of furnitures | filter:'show':true; track furniture; let idx = $index) {\r\n <mat-grid-tile>\r\n <mat-grid-tile-header\r\n draggable=\"true\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, furniture)\"\r\n (dragstart)=\"dragstart($event, furniture)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n >\r\n {{furniture.name | localize}}\r\n </mat-grid-tile-header>\r\n <img\r\n [src]=\"assetPath + furniture.thumbnailUrl\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, furniture)\"\r\n (dragstart)=\"dragstart($event, furniture)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n >\r\n @if (furniture.isCopy) {\r\n <mat-grid-tile-footer>\r\n Copy #{{idx + 1}}\r\n </mat-grid-tile-footer>\r\n }\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n", styles: [":host{flex:1;overflow-y:auto}mat-grid-tile:hover{cursor:pointer}button.close{height:36px;width:36px;min-width:initial;padding:0;border:none;position:absolute;right:0;top:10px;border-radius:50%}\n"], dependencies: [{ kind: "component", type: i3$4.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$4.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$4.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$4.MatGridTileHeaderCssMatStyler, selector: "mat-grid-tile-header" }, { kind: "directive", type: i3$4.MatGridTileFooterCssMatStyler, selector: "mat-grid-tile-footer" }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: FilterPipe, name: "filter" }] }); }
44655
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: FurnitureLibraryComponent, isStandalone: false, selector: "rp-furniture-library", inputs: { furnitures: "furnitures", constructFn: "constructFn" }, outputs: { close: "close", setDragged: "setDragged", releaseDragged: "releaseDragged" }, ngImport: i0, template: "<mat-grid-list cols=\"2\" rowHeight=\"200px\">\r\n @for (furniture of furnitures | filter:'show':true; track furniture; let idx = $index) {\r\n <mat-grid-tile>\r\n <mat-grid-tile-header\r\n draggable=\"true\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, furniture)\"\r\n (dragstart)=\"dragstart($event, furniture)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n >\r\n {{furniture.name | localize}}\r\n </mat-grid-tile-header>\r\n <img\r\n [src]=\"assetPath + furniture.thumbnailUrl\"\r\n (touchmove)=\"touchMove()\"\r\n (touchend)=\"touchEnd($event, furniture)\"\r\n (dragstart)=\"dragstart($event, furniture)\"\r\n (dragend)=\"releaseDragged.emit()\"\r\n >\r\n @if (furniture.isCopy) {\r\n <mat-grid-tile-footer>\r\n Copy #{{idx + 1}}\r\n </mat-grid-tile-footer>\r\n }\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n", styles: [":host{flex:1;overflow-y:auto}mat-grid-tile:hover{cursor:pointer}button.close{height:36px;width:36px;min-width:initial;padding:0;border:none;position:absolute;right:0;top:10px;border-radius:50%}\n"], dependencies: [{ kind: "component", type: i3$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i3$3.MatGridTileText, selector: "mat-grid-tile-header, mat-grid-tile-footer" }, { kind: "directive", type: i3$3.MatGridTileHeaderCssMatStyler, selector: "mat-grid-tile-header" }, { kind: "directive", type: i3$3.MatGridTileFooterCssMatStyler, selector: "mat-grid-tile-footer" }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: FilterPipe, name: "filter" }] }); }
44566
44656
  }
44567
44657
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: FurnitureLibraryComponent, decorators: [{
44568
44658
  type: Component,
@@ -45068,13 +45158,13 @@ class PresetsComponent {
45068
45158
  });
45069
45159
  }
45070
45160
  }
45071
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetsComponent, deps: [{ token: i1$2.MatDialog }, { token: MessageBusService }, { token: i3$5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
45161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetsComponent, deps: [{ token: i1$2.MatDialog }, { token: MessageBusService }, { token: i3$4.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
45072
45162
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: PresetsComponent, isStandalone: false, selector: "rp-presets", inputs: { openNewRoomDialog: "openNewRoomDialog" }, host: { properties: { "class": "this.layerClass" } }, ngImport: i0, template: "", styles: [""] }); }
45073
45163
  }
45074
45164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PresetsComponent, decorators: [{
45075
45165
  type: Component,
45076
45166
  args: [{ selector: 'rp-presets', standalone: false, template: "" }]
45077
- }], ctorParameters: () => [{ type: i1$2.MatDialog }, { type: MessageBusService }, { type: i3$5.ActivatedRoute }], propDecorators: { openNewRoomDialog: [{
45167
+ }], ctorParameters: () => [{ type: i1$2.MatDialog }, { type: MessageBusService }, { type: i3$4.ActivatedRoute }], propDecorators: { openNewRoomDialog: [{
45078
45168
  type: Input
45079
45169
  }], layerClass: [{
45080
45170
  type: HostBinding,
@@ -45105,7 +45195,7 @@ class ElementToolbarComponent {
45105
45195
  this.showEditMenu = !this.showEditMenu;
45106
45196
  }
45107
45197
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ElementToolbarComponent, deps: [{ token: HomedecoratorSettingsService }, { token: HomedecoratorIconCacheService }], target: i0.ɵɵFactoryTarget.Component }); }
45108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ElementToolbarComponent, isStandalone: false, selector: "rp-element-toolbar", inputs: { editMenu: "editMenu", showPointer: "showPointer", showSwap: "showSwap" }, outputs: { deleteClicked: "deleteClicked", swapClicked: "swapClicked", animationClicked: "animationClicked" }, host: { properties: { "class.rp-element-toolbar": "this.hostClass", "class.custom-menu": "this.instantMenu" } }, viewQueries: [{ propertyName: "elementPointer", first: true, predicate: ["elementPointer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"toolbar-wrapper\">\r\n @if (settingsService.settings.options.instantEditMenu) {\r\n <span class=\"toolbar-label\" [textContent]=\"'SELECTION_OPTIONS' | localize\"></span>\r\n }\r\n @if (!settingsService.settings.options.instantEditMenu && editMenu && editMenu.length > 0) {\r\n <div class=\"toolbar-button\" (click)=\"handleEditClick()\">\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.PencilLight)\"></co-icon>\r\n </button>\r\n </div>\r\n }\r\n\r\n <div class=\"toolbar-button\" (click)=\"deleteClicked.emit()\">\r\n @if (settingsService.settings.options.instantEditMenu) {\r\n <div class=\"instant-edit-button\">\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.TrashCanLight)\"></co-icon>\r\n <span class=\"toolbar-label\" [textContent]=\"'DELETE' | localize\"></span>\r\n </div>\r\n }\r\n\r\n @if (!settingsService.settings.options.instantEditMenu) {\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.TrashCanLight)\"></co-icon>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showSwap) {\r\n <div class=\"toolbar-button\" (click)=\"swapClicked.emit()\">\r\n @if (settingsService.settings.options.instantEditMenu) {\r\n <div class=\"instant-edit-button\">\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.RotateLight)\"></co-icon>\r\n <span class=\"toolbar-label\" [textContent]=\"'REPLACE' | localize\"></span>\r\n </div>\r\n }\r\n @if (!settingsService.settings.options.instantEditMenu) {\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.RotateLight)\"></co-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (settingsService.settings.options.animationButton) {\r\n <div class=\"toolbar-button\" (click)=\"animationClicked.emit()\">\r\n <!--div class=\"instant-edit-button\" *ngIf=\"settingsService.settings.options.instantEditMenu\">\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.Check)\"></co-icon>\r\n <span class=\"toolbar-label\" [textContent]=\"'ANIMATE' | localize\"></span>\r\n </div-->\r\n @if (!settingsService.settings.options.instantEditMenu) {\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.Check)\"></co-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n\r\n</div>\r\n@if (showEditMenu || settingsService.settings.options.instantEditMenu) {\r\n <div class=\"edit-menu-wrapper\" @showHideEditMenu>\r\n @for (item of editMenu; track item) {\r\n <div class=\"edit-menu\" (click)=\"item.handler()\">\r\n <span [textContent]=\"item.caption\"></span>\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">chevron_right</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{position:absolute;display:block;height:50px;top:64px;left:50%;width:150px;transform:translate(-50%)}:host.custom-menu{top:90px;left:80px;height:auto;transform:translate(0)}:host.custom-menu .toolbar-wrapper{column-gap:10px}:host.custom-menu .toolbar-button{cursor:pointer;display:flex;align-items:center}:host.custom-menu .toolbar-button .instant-edit-button{display:flex;align-items:center}:host.custom-menu .toolbar-button .instant-edit-button ::ng-deep co-icon{margin-right:7px;border:none;width:16px;height:16px;border-radius:10px}:host.custom-menu .toolbar-button .instant-edit-button ::ng-deep co-icon svg g polygon{fill:#000}:host.custom-menu .toolbar-button .instant-edit-button ::ng-deep co-icon svg g path{fill:#000}:host.custom-menu .toolbar-button button{box-shadow:none;border:1px solid rgba(0,0,0,.1);height:30px;width:30px}:host.custom-menu .toolbar-button button .mat-icon{height:30px;width:30px}:host.custom-menu .toolbar-label{font-size:12px;font-weight:700;margin-right:22px}:host.custom-menu .edit-menu-wrapper{left:0;transform:translate(0)}@media screen and (max-width: 768px){:host.custom-menu{top:18px;left:5%}}.toolbar-wrapper{display:flex;align-items:center;gap:2px}.toolbar-wrapper button:not(:last-child){margin-right:5px}:host ::ng-deep .mat-mdc-mini-fab .mat-button-wrapper{padding:0;display:flex;line-height:0px;align-items:center;justify-content:center}:host ::ng-deep .mat-mdc-unelevated-button.mat-accent,:host ::ng-deep .mat-mdc-raised-button.mat-accent,:host ::ng-deep .mat-mdc-fab.mat-accent,:host ::ng-deep .mat-mdc-mini-fab.mat-accent{background-color:#17253391;width:36px;height:36px;border-radius:4px}:host ::ng-deep .mat-mdc-unelevated-button.mat-accent co-icon,:host ::ng-deep .mat-mdc-raised-button.mat-accent co-icon,:host ::ng-deep .mat-mdc-fab.mat-accent co-icon,:host ::ng-deep .mat-mdc-mini-fab.mat-accent co-icon{width:16px;height:16px}:host ::ng-deep .mat-mdc-unelevated-button.mat-accent co-icon svg,:host ::ng-deep .mat-mdc-raised-button.mat-accent co-icon svg,:host ::ng-deep .mat-mdc-fab.mat-accent co-icon svg,:host ::ng-deep .mat-mdc-mini-fab.mat-accent co-icon svg{fill:#fff}:host ::ng-deep .mat.mat-mdc-mini-fab{margin-right:200px}:host ::ng-deep .mat-icon{height:40px;width:40px}.element-pointer{pointer-events:none;position:absolute;width:0px;border-left:2px dashed #2c67ff;transform-origin:top center;top:45px;left:50%;margin-left:20px}.edit-menu-wrapper{position:absolute;margin-top:10px;min-width:175px;left:25px;transform:translate(-50%);overflow:hidden}.edit-menu-wrapper .edit-menu:not(:last-child){margin-bottom:5px}.edit-menu{font-size:12px;background:#fff;color:#41403d;height:30px;align-items:center;padding:5px;cursor:pointer;white-space:nowrap;display:flex;justify-content:space-between}.edit-menu span{margin-right:50px}.edit-menu mat-icon{width:20px;height:20px}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
45198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ElementToolbarComponent, isStandalone: false, selector: "rp-element-toolbar", inputs: { editMenu: "editMenu", showPointer: "showPointer", showSwap: "showSwap" }, outputs: { deleteClicked: "deleteClicked", swapClicked: "swapClicked", animationClicked: "animationClicked" }, host: { properties: { "class.rp-element-toolbar": "this.hostClass", "class.custom-menu": "this.instantMenu" } }, viewQueries: [{ propertyName: "elementPointer", first: true, predicate: ["elementPointer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"toolbar-wrapper\">\r\n @if (settingsService.settings.options.instantEditMenu) {\r\n <span class=\"toolbar-label\" [textContent]=\"'SELECTION_OPTIONS' | localize\"></span>\r\n }\r\n @if (!settingsService.settings.options.instantEditMenu && editMenu && editMenu.length > 0) {\r\n <div class=\"toolbar-button\" (click)=\"handleEditClick()\">\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.PencilLight)\"></co-icon>\r\n </button>\r\n </div>\r\n }\r\n\r\n <div class=\"toolbar-button\" (click)=\"deleteClicked.emit()\">\r\n @if (settingsService.settings.options.instantEditMenu) {\r\n <div class=\"instant-edit-button\">\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.TrashCanLight)\"></co-icon>\r\n <span class=\"toolbar-label\" [textContent]=\"'DELETE' | localize\"></span>\r\n </div>\r\n }\r\n\r\n @if (!settingsService.settings.options.instantEditMenu) {\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.TrashCanLight)\"></co-icon>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (showSwap) {\r\n <div class=\"toolbar-button\" (click)=\"swapClicked.emit()\">\r\n @if (settingsService.settings.options.instantEditMenu) {\r\n <div class=\"instant-edit-button\">\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.RotateLight)\"></co-icon>\r\n <span class=\"toolbar-label\" [textContent]=\"'REPLACE' | localize\"></span>\r\n </div>\r\n }\r\n @if (!settingsService.settings.options.instantEditMenu) {\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.RotateLight)\"></co-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (settingsService.settings.options.animationButton) {\r\n <div class=\"toolbar-button\" (click)=\"animationClicked.emit()\">\r\n <!--div class=\"instant-edit-button\" *ngIf=\"settingsService.settings.options.instantEditMenu\">\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.Check)\"></co-icon>\r\n <span class=\"toolbar-label\" [textContent]=\"'ANIMATE' | localize\"></span>\r\n </div-->\r\n @if (!settingsService.settings.options.instantEditMenu) {\r\n <button mat-mini-fab>\r\n <co-icon class=\"button-icon\" [iconData]=\"iconCache.getIcon(icon.Check)\"></co-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n\r\n</div>\r\n@if (showEditMenu || settingsService.settings.options.instantEditMenu) {\r\n <div class=\"edit-menu-wrapper\" @showHideEditMenu>\r\n @for (item of editMenu; track item) {\r\n <div class=\"edit-menu\" (click)=\"item.handler()\">\r\n <span [textContent]=\"item.caption\"></span>\r\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">chevron_right</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{position:absolute;display:block;height:50px;top:64px;left:50%;width:150px;transform:translate(-50%)}:host.custom-menu{top:90px;left:80px;height:auto;transform:translate(0)}:host.custom-menu .toolbar-wrapper{column-gap:10px}:host.custom-menu .toolbar-button{cursor:pointer;display:flex;align-items:center}:host.custom-menu .toolbar-button .instant-edit-button{display:flex;align-items:center}:host.custom-menu .toolbar-button .instant-edit-button ::ng-deep co-icon{margin-right:7px;border:none;width:16px;height:16px;border-radius:10px}:host.custom-menu .toolbar-button .instant-edit-button ::ng-deep co-icon svg g polygon{fill:#000}:host.custom-menu .toolbar-button .instant-edit-button ::ng-deep co-icon svg g path{fill:#000}:host.custom-menu .toolbar-button button{box-shadow:none;border:1px solid rgba(0,0,0,.1);height:30px;width:30px}:host.custom-menu .toolbar-button button .mat-icon{height:30px;width:30px}:host.custom-menu .toolbar-label{font-size:12px;font-weight:700;margin-right:22px}:host.custom-menu .edit-menu-wrapper{left:0;transform:translate(0)}@media screen and (max-width: 768px){:host.custom-menu{top:18px;left:5%}}.toolbar-wrapper{display:flex;align-items:center;gap:2px}.toolbar-wrapper button:not(:last-child){margin-right:5px}:host ::ng-deep .mat-mdc-mini-fab .mat-button-wrapper{padding:0;display:flex;line-height:0px;align-items:center;justify-content:center}:host ::ng-deep .mat-mdc-unelevated-button.mat-accent,:host ::ng-deep .mat-mdc-raised-button.mat-accent,:host ::ng-deep .mat-mdc-fab.mat-accent,:host ::ng-deep .mat-mdc-mini-fab.mat-accent{background-color:#17253391;width:36px;height:36px;border-radius:4px}:host ::ng-deep .mat-mdc-unelevated-button.mat-accent co-icon,:host ::ng-deep .mat-mdc-raised-button.mat-accent co-icon,:host ::ng-deep .mat-mdc-fab.mat-accent co-icon,:host ::ng-deep .mat-mdc-mini-fab.mat-accent co-icon{width:16px;height:16px}:host ::ng-deep .mat-mdc-unelevated-button.mat-accent co-icon svg,:host ::ng-deep .mat-mdc-raised-button.mat-accent co-icon svg,:host ::ng-deep .mat-mdc-fab.mat-accent co-icon svg,:host ::ng-deep .mat-mdc-mini-fab.mat-accent co-icon svg{fill:#fff}:host ::ng-deep .mat.mat-mdc-mini-fab{margin-right:200px}:host ::ng-deep .mat-icon{height:40px;width:40px}.element-pointer{pointer-events:none;position:absolute;width:0px;border-left:2px dashed #2c67ff;transform-origin:top center;top:45px;left:50%;margin-left:20px}.edit-menu-wrapper{position:absolute;margin-top:10px;min-width:175px;left:25px;transform:translate(-50%);overflow:hidden}.edit-menu-wrapper .edit-menu:not(:last-child){margin-bottom:5px}.edit-menu{font-size:12px;background:#fff;color:#41403d;height:30px;align-items:center;padding:5px;cursor:pointer;white-space:nowrap;display:flex;justify-content:space-between}.edit-menu span{margin-right:50px}.edit-menu mat-icon{width:20px;height:20px}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
45109
45199
  trigger('showHideEditMenu', [
45110
45200
  state('void', style({ 'height': '0', opacity: 0 })),
45111
45201
  state('*', style({ 'height': '*', opacity: 1 })),
@@ -45326,7 +45416,7 @@ class ModelDialogFurnitureListComponent {
45326
45416
  </div>
45327
45417
 
45328
45418
  </ng-container>
45329
- `, isInline: true, styles: [".title{margin-bottom:10px}.label{margin:0}.sub-label{font-size:12px;font-style:italic;margin:0}.furniture-item-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-item-button .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;margin:0 0 10px}.furniture-list .furniture-item{display:flex;align-items:flex-start;width:100%;margin:2px 0 0;overflow:hidden}.furniture-list .furniture-item.furniture-model .furniture-item-left{padding-right:10px}.furniture-list .furniture-item .furniture-item-wrapper{display:flex;align-items:center}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle{cursor:pointer;transform:rotate(0);height:40px;width:40px}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle.expanded{transform:rotate(180deg);transition:.3s ease-in-out}.furniture-list .furniture-item .furniture-item-wrap{border:1px solid #dce4ea;padding:4px 0 4px 10px;display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left{display:flex;flex-direction:column;width:80%;font-size:13px;margin:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-title{display:flex;flex-direction:column;justify-content:center;width:100%;min-height:32px}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy{float:right;border:none;padding:0 15px;margin:0 0 0 10px;line-height:32px;font-size:12px;text-transform:uppercase;background:transparent;color:#dce4ea;font-weight:600;cursor:pointer}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:focus{outline:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:hover{color:#000000de}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right{display:flex;padding-top:4px;width:20%;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list .furniture-item .furniture-item-conversion-wrap{display:flex;flex-direction:row;flex-wrap:wrap;padding-top:9px;box-sizing:border-box}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-row{display:flex;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-button-wrap{width:30%}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap{width:70%;position:relative}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input{width:90%;border:1px solid #e8eceb;border-radius:3px;box-sizing:border-box;padding:10px 5px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input:disabled{background:#eee}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .furniture-item-conversion-input-label{font-size:8px;position:absolute;top:2px;left:10px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button{background:none;border:none;cursor:pointer;position:absolute;right:0;top:10px;color:#000}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button .mat-icon{height:14px;width:14px;font-size:14px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button-highlight{color:#009a6d}.furniture-item-conversion-highlight{background:#009a6d}.furniture-item-conversion-highlight svg{fill:#fff}::ng-deep error-messages .error-message{font-weight:700;font-size:12px}::ng-deep error-messages .error-description{font-size:11px}.furniture-item-totals{display:flex;flex-direction:row;justify-content:right;align-items:center}.furniture-item-totals .furniture-item-total-row{display:flex;flex-direction:column;margin-left:15px}.furniture-item-totals .furniture-item-total-button-highlight{background:#009a6d;color:#fff}\n"], dependencies: [{ kind: "component", type: ErrorMessageComponent, selector: "error-messages", inputs: ["messages"] }, { kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
45419
+ `, isInline: true, styles: [".title{margin-bottom:10px}.label{margin:0}.sub-label{font-size:12px;font-style:italic;margin:0}.furniture-item-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-item-button .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;margin:0 0 10px}.furniture-list .furniture-item{display:flex;align-items:flex-start;width:100%;margin:2px 0 0;overflow:hidden}.furniture-list .furniture-item.furniture-model .furniture-item-left{padding-right:10px}.furniture-list .furniture-item .furniture-item-wrapper{display:flex;align-items:center}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle{cursor:pointer;transform:rotate(0);height:40px;width:40px}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle.expanded{transform:rotate(180deg);transition:.3s ease-in-out}.furniture-list .furniture-item .furniture-item-wrap{border:1px solid #dce4ea;padding:4px 0 4px 10px;display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left{display:flex;flex-direction:column;width:80%;font-size:13px;margin:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-title{display:flex;flex-direction:column;justify-content:center;width:100%;min-height:32px}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy{float:right;border:none;padding:0 15px;margin:0 0 0 10px;line-height:32px;font-size:12px;text-transform:uppercase;background:transparent;color:#dce4ea;font-weight:600;cursor:pointer}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:focus{outline:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:hover{color:#000000de}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right{display:flex;padding-top:4px;width:20%;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list .furniture-item .furniture-item-conversion-wrap{display:flex;flex-direction:row;flex-wrap:wrap;padding-top:9px;box-sizing:border-box}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-row{display:flex;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-button-wrap{width:30%}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap{width:70%;position:relative}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input{width:90%;border:1px solid #e8eceb;border-radius:3px;box-sizing:border-box;padding:10px 5px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input:disabled{background:#eee}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .furniture-item-conversion-input-label{font-size:8px;position:absolute;top:2px;left:10px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button{background:none;border:none;cursor:pointer;position:absolute;right:0;top:10px;color:#000}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button .mat-icon{height:14px;width:14px;font-size:14px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button-highlight{color:#009a6d}.furniture-item-conversion-highlight{background:#009a6d}.furniture-item-conversion-highlight svg{fill:#fff}::ng-deep error-messages .error-message{font-weight:700;font-size:12px}::ng-deep error-messages .error-description{font-size:11px}.furniture-item-totals{display:flex;flex-direction:row;justify-content:right;align-items:center}.furniture-item-totals .furniture-item-total-row{display:flex;flex-direction:column;margin-left:15px}.furniture-item-totals .furniture-item-total-button-highlight{background:#009a6d;color:#fff}\n"], dependencies: [{ kind: "component", type: ErrorMessageComponent, selector: "error-messages", inputs: ["messages"] }, { kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
45330
45420
  trigger('slideInOut', [
45331
45421
  transition(':leave', [
45332
45422
  style({ transform: 'translateY(0%)', opacity: '1' }),
@@ -45516,7 +45606,7 @@ class ModelDialogComponent {
45516
45606
  });
45517
45607
  }
45518
45608
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ModelDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
45519
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ModelDialogComponent, isStandalone: false, selector: "rp-error-dialog", ngImport: i0, template: "<div @slideInOut>\r\n <div mat-dialog-content>\r\n @if (!noProductsLoaded) {\r\n @if (furniture.length > 0 || furnitureFixed.length > 0 || obsoleteFurniture.length > 0 || simpleFurniture.length > 0) {\r\n <div class=\"content-wrapper\">\r\n <div class=\"title-wrapper\" (click)=\"showLoaded = !showLoaded\">\r\n <co-icon class=\"expand-icon\" [class.expanded]=\"showLoaded\"\r\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\"></co-icon>\r\n <h3 [textContent]=\"'LOADED_PRODUCTS' | localize\"></h3>\r\n </div>\r\n @if (showLoaded) {\r\n <div class=\"content\" @showHideContent>\r\n @if (furniture.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"furniture\" [showDelete]=\"true\" [showCopy]=\"false\"\r\n [showTotals]=\"true\"></dialog-furniture-list>\r\n }\r\n @if (furnitureFixed.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"furnitureFixed\" [label]=\"'LOADED_FIXED'\" [subLabel]=\"'LOADED_FIXED_DESC'\"\r\n [showDelete]=\"true\" [showCopy]=\"false\"></dialog-furniture-list>\r\n }\r\n @if (obsoleteFurniture.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"obsoleteFurniture\" [label]=\"'OBSOLETE'\" [subLabel]=\"'OBSOLETE_DESC'\"\r\n [showDelete]=\"true\" [showCopy]=\"false\"></dialog-furniture-list>\r\n }\r\n @if (simpleFurniture.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"simpleFurniture\" [showDelete]=\"true\"\r\n [showCopy]=\"false\"></dialog-furniture-list>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (notLoaded.length > 0 || notFixedFurniture.length > 0) {\r\n <div class=\"content-wrapper\">\r\n <div class=\"title-wrapper\" (click)=\"showNotLoaded = !showNotLoaded\">\r\n <co-icon class=\"expand-icon\" [class.expanded]=\"showLoaded\"\r\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\"></co-icon>\r\n <h3 [textContent]=\"'NOT_LOADED_PRODUCTS' | localize\"></h3>\r\n </div>\r\n @if (showNotLoaded) {\r\n <div class=\"content\" @showHideContent>\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"notLoaded\" [label]=\"'UNFIXED_PRODUCTS'\" [subLabel]=\"'UNFIXED_PRODUCTS_DESC'\" [showDelete]=\"false\"\r\n [showCopy]=\"true\"></dialog-furniture-list>\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"notFixedFurniture\" [label]=\"'MODEL_CANNOT_BE_LOADED'\" [subLabel]=\"'MODEL_CANNOT_BE_LOADED_DESC'\"\r\n [showDelete]=\"false\" [showCopy]=\"true\"></dialog-furniture-list>\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n @if (noProductsLoaded) {\r\n @if (furniture.length === 0 && obsoleteFurniture.length === 0 && simpleFurniture.length === 0) {\r\n <p\r\n [textContent]=\"'NO_PRODUCTS_LOADED' | localize\"></p>\r\n }\r\n }\r\n\r\n </div>\r\n <button mat-button mat-dialog-close>OK</button>\r\n</div>\r\n", styles: [":host{display:block;max-width:100%;width:600px}:host .title-wrapper{display:flex;align-items:center;cursor:pointer}:host .content-wrapper{border:1px solid rgba(1,1,1,.1);padding:10px;overflow:hidden}:host p{font-size:14px;line-height:160%}\n"], dependencies: [{ 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: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ModelDialogFurnitureListComponent, selector: "dialog-furniture-list", inputs: ["list", "label", "subLabel", "showCopy", "showDelete", "showTotals", "iconCacheService", "settingsService", "googleTagManagerService", "messagesService"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
45609
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ModelDialogComponent, isStandalone: false, selector: "rp-error-dialog", ngImport: i0, template: "<div @slideInOut>\r\n <div mat-dialog-content>\r\n @if (!noProductsLoaded) {\r\n @if (furniture.length > 0 || furnitureFixed.length > 0 || obsoleteFurniture.length > 0 || simpleFurniture.length > 0) {\r\n <div class=\"content-wrapper\">\r\n <div class=\"title-wrapper\" (click)=\"showLoaded = !showLoaded\">\r\n <co-icon class=\"expand-icon\" [class.expanded]=\"showLoaded\"\r\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\"></co-icon>\r\n <h3 [textContent]=\"'LOADED_PRODUCTS' | localize\"></h3>\r\n </div>\r\n @if (showLoaded) {\r\n <div class=\"content\" @showHideContent>\r\n @if (furniture.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"furniture\" [showDelete]=\"true\" [showCopy]=\"false\"\r\n [showTotals]=\"true\"></dialog-furniture-list>\r\n }\r\n @if (furnitureFixed.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"furnitureFixed\" [label]=\"'LOADED_FIXED'\" [subLabel]=\"'LOADED_FIXED_DESC'\"\r\n [showDelete]=\"true\" [showCopy]=\"false\"></dialog-furniture-list>\r\n }\r\n @if (obsoleteFurniture.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"obsoleteFurniture\" [label]=\"'OBSOLETE'\" [subLabel]=\"'OBSOLETE_DESC'\"\r\n [showDelete]=\"true\" [showCopy]=\"false\"></dialog-furniture-list>\r\n }\r\n @if (simpleFurniture.length > 0) {\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"simpleFurniture\" [showDelete]=\"true\"\r\n [showCopy]=\"false\"></dialog-furniture-list>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (notLoaded.length > 0 || notFixedFurniture.length > 0) {\r\n <div class=\"content-wrapper\">\r\n <div class=\"title-wrapper\" (click)=\"showNotLoaded = !showNotLoaded\">\r\n <co-icon class=\"expand-icon\" [class.expanded]=\"showLoaded\"\r\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\"></co-icon>\r\n <h3 [textContent]=\"'NOT_LOADED_PRODUCTS' | localize\"></h3>\r\n </div>\r\n @if (showNotLoaded) {\r\n <div class=\"content\" @showHideContent>\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"notLoaded\" [label]=\"'UNFIXED_PRODUCTS'\" [subLabel]=\"'UNFIXED_PRODUCTS_DESC'\" [showDelete]=\"false\"\r\n [showCopy]=\"true\"></dialog-furniture-list>\r\n <dialog-furniture-list\r\n [iconCacheService]=\"iconService\"\r\n [settingsService]=\"settingsService\"\r\n [googleTagManagerService]=\"googleTagManagerService\"\r\n [messagesService]=\"messagesService\"\r\n [list]=\"notFixedFurniture\" [label]=\"'MODEL_CANNOT_BE_LOADED'\" [subLabel]=\"'MODEL_CANNOT_BE_LOADED_DESC'\"\r\n [showDelete]=\"false\" [showCopy]=\"true\"></dialog-furniture-list>\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n @if (noProductsLoaded) {\r\n @if (furniture.length === 0 && obsoleteFurniture.length === 0 && simpleFurniture.length === 0) {\r\n <p\r\n [textContent]=\"'NO_PRODUCTS_LOADED' | localize\"></p>\r\n }\r\n }\r\n\r\n </div>\r\n <button mat-button mat-dialog-close>OK</button>\r\n</div>\r\n", styles: [":host{display:block;max-width:100%;width:600px}:host .title-wrapper{display:flex;align-items:center;cursor:pointer}:host .content-wrapper{border:1px solid rgba(1,1,1,.1);padding:10px;overflow:hidden}:host p{font-size:14px;line-height:160%}\n"], dependencies: [{ 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: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "component", type: ModelDialogFurnitureListComponent, selector: "dialog-furniture-list", inputs: ["list", "label", "subLabel", "showCopy", "showDelete", "showTotals", "iconCacheService", "settingsService", "googleTagManagerService", "messagesService"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
45520
45610
  trigger('slideInOut', [
45521
45611
  transition(':leave', [
45522
45612
  style({ transform: 'translateY(0%)', opacity: '1' }),
@@ -45603,7 +45693,7 @@ class ElementButtonsComponent {
45603
45693
  }
45604
45694
  }
45605
45695
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ElementButtonsComponent, deps: [{ token: HomedecoratorIconCacheService }, { token: i0.ElementRef }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
45606
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ElementButtonsComponent, isStandalone: false, selector: "rp-element-buttons", inputs: { addButtons: "addButtons", customizeButtons: "customizeButtons", resizeButtons: "resizeButtons", elementPointer: "elementPointer", elementPosition: "elementPosition" }, outputs: { customizeButtonClicked: "customizeButtonClicked" }, host: { listeners: { "document:mouseup": "handledocumentMouseUp($event)", "document:mousemove": "handleDocumentMouseDown($event)" }, properties: { "class.disable-mouse": "this._disableMouse" } }, ngImport: i0, template: "@for (button of addButtons; track button) {\r\n <div class=\"add-button-wrapper\" (click)=\"button.handler()\"\r\n [style.left.px]=\"button.xPos\"\r\n [style.top.px]=\"button.yPos\"\r\n [style.opacity]=\"button.opacity\">\r\n @if (showCaptionAddButton) {\r\n <div class=\"add-button-label\" [textContent]=\"button.caption\"></div>\r\n }\r\n <button mat-mini-fab class=\"element-add-button\"\r\n [style.width.px]=\"button.size\"\r\n [style.height.px]=\"button.size\"\r\n >\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.PlusRegular)\"></co-icon>\r\n </button>\r\n </div>\r\n}\r\n@for (button of customizeButtons; track button) {\r\n <button mat-mini-fab (click)=\"customizeButtonClicked.emit()\"\r\n class=\"element-add-button\"\r\n [style.left.px]=\"button.xPos\"\r\n [style.top.px]=\"button.yPos\"\r\n [style.width.px]=\"button.size\"\r\n [style.height.px]=\"button.size\"\r\n [style.opacity]=\"button.opacity\"\r\n >\r\n <co-icon class=\"icon-color\" [iconData]=\"iconCache.getIcon(icon.Brush)\"></co-icon>\r\n </button>\r\n}\r\n@for (button of resizeButtons; track button) {\r\n <button mat-mini-fab (click)=\"button.handler()\"\r\n class=\"element-add-button\"\r\n [style.left.px]=\"button.xPos\"\r\n [style.top.px]=\"button.yPos\"\r\n [style.width.px]=\"button.size\"\r\n [style.height.px]=\"button.size\"\r\n [style.opacity]=\"button.opacity\"\r\n >\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.Brush)\"></co-icon>\r\n </button>\r\n}\r\n", styles: [":host{pointer-events:all}:host.disable-mouse{pointer-events:none}.add-button-wrapper{display:flex;flex-direction:column;position:absolute;cursor:pointer}.add-button-label{color:#fff;transform:translate(-50%,-35px);text-shadow:-1px 0 2px black,0 1px 2px black,1px 0 2px black,0 -1px 2px black}.element-add-button{border-radius:50%;cursor:pointer;flex-shrink:0;position:absolute;min-height:30px;min-width:30px;height:35px;width:35px;max-height:30px;max-width:30px;background:#17253391;transform:translate(-15px,-15px);box-shadow:0 0 0 5px #00000012}.element-add-button ::ng-deep co-icon{width:16px;height:16px}.element-add-button ::ng-deep co-icon svg{fill:#fff}.element-bullet{pointer-events:none;position:absolute;border-radius:50%;height:10px;width:10px;cursor:default;background:#2c67ff;transform:translate(-5px,-5px)}:host ::ng-deep .mat-mdc-mini-fab .mat-button-wrapper{padding:0;display:flex;line-height:0px;align-items:center;justify-content:center}:host ::ng-deep .mat-icon{height:30px;width:30px}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }] }); }
45696
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ElementButtonsComponent, isStandalone: false, selector: "rp-element-buttons", inputs: { addButtons: "addButtons", customizeButtons: "customizeButtons", resizeButtons: "resizeButtons", elementPointer: "elementPointer", elementPosition: "elementPosition" }, outputs: { customizeButtonClicked: "customizeButtonClicked" }, host: { listeners: { "document:mouseup": "handledocumentMouseUp($event)", "document:mousemove": "handleDocumentMouseDown($event)" }, properties: { "class.disable-mouse": "this._disableMouse" } }, ngImport: i0, template: "@for (button of addButtons; track button) {\r\n <div class=\"add-button-wrapper\" (click)=\"button.handler()\"\r\n [style.left.px]=\"button.xPos\"\r\n [style.top.px]=\"button.yPos\"\r\n [style.opacity]=\"button.opacity\">\r\n @if (showCaptionAddButton) {\r\n <div class=\"add-button-label\" [textContent]=\"button.caption\"></div>\r\n }\r\n <button mat-mini-fab class=\"element-add-button\"\r\n [style.width.px]=\"button.size\"\r\n [style.height.px]=\"button.size\"\r\n >\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.PlusRegular)\"></co-icon>\r\n </button>\r\n </div>\r\n}\r\n@for (button of customizeButtons; track button) {\r\n <button mat-mini-fab (click)=\"customizeButtonClicked.emit()\"\r\n class=\"element-add-button\"\r\n [style.left.px]=\"button.xPos\"\r\n [style.top.px]=\"button.yPos\"\r\n [style.width.px]=\"button.size\"\r\n [style.height.px]=\"button.size\"\r\n [style.opacity]=\"button.opacity\"\r\n >\r\n <co-icon class=\"icon-color\" [iconData]=\"iconCache.getIcon(icon.Brush)\"></co-icon>\r\n </button>\r\n}\r\n@for (button of resizeButtons; track button) {\r\n <button mat-mini-fab (click)=\"button.handler()\"\r\n class=\"element-add-button\"\r\n [style.left.px]=\"button.xPos\"\r\n [style.top.px]=\"button.yPos\"\r\n [style.width.px]=\"button.size\"\r\n [style.height.px]=\"button.size\"\r\n [style.opacity]=\"button.opacity\"\r\n >\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.Brush)\"></co-icon>\r\n </button>\r\n}\r\n", styles: [":host{pointer-events:all}:host.disable-mouse{pointer-events:none}.add-button-wrapper{display:flex;flex-direction:column;position:absolute;cursor:pointer}.add-button-label{color:#fff;transform:translate(-50%,-35px);text-shadow:-1px 0 2px black,0 1px 2px black,1px 0 2px black,0 -1px 2px black}.element-add-button{border-radius:50%;cursor:pointer;flex-shrink:0;position:absolute;min-height:30px;min-width:30px;height:35px;width:35px;max-height:30px;max-width:30px;background:#17253391;transform:translate(-15px,-15px);box-shadow:0 0 0 5px #00000012}.element-add-button ::ng-deep co-icon{width:16px;height:16px}.element-add-button ::ng-deep co-icon svg{fill:#fff}.element-bullet{pointer-events:none;position:absolute;border-radius:50%;height:10px;width:10px;cursor:default;background:#2c67ff;transform:translate(-5px,-5px)}:host ::ng-deep .mat-mdc-mini-fab .mat-button-wrapper{padding:0;display:flex;line-height:0px;align-items:center;justify-content:center}:host ::ng-deep .mat-icon{height:30px;width:30px}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }] }); }
45607
45697
  }
45608
45698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ElementButtonsComponent, decorators: [{
45609
45699
  type: Component,
@@ -45642,7 +45732,7 @@ class ElementSliderComponent {
45642
45732
  return this._rotationService.sliderValue = event.value;
45643
45733
  }
45644
45734
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ElementSliderComponent, deps: [{ token: RotationService }, { token: HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component }); }
45645
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ElementSliderComponent, isStandalone: false, selector: "rp-element-slider", ngImport: i0, template: "@if (settingsService.settings.options.cameraPositionFixedAndScrollbar) {\r\n <div class=\"slidecontainer\">\r\n <mat-slider class=\"slider\" min=\"-180\" max=\"180\" [(ngModel)]=\"sliderValue\" [step]=\"step\" (input)=\"getSliderValue($event)\"></mat-slider>\r\n </div>\r\n}\r\n", styles: [".slidecontainer{width:40%;position:absolute;left:30%;top:85%;z-index:99}.slider{appearance:none;width:100%;height:25px;background:#d3d3d3;outline:none;opacity:.7;transition:opacity .2s;border-radius:25px}.slider:hover{opacity:1}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:25px;height:25px;background:#0094ff;cursor:pointer;border-radius:25px}::ng-deep .mat-mdc-slider.mat-slider-horizontal .mat-slider-wrapper{top:12px}::ng-deep .mat-mdc-slider.mat-slider-horizontal .mat-slider-track-wrapper{height:0;border-radius:0}::ng-deep .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{background:#0094ff}\n"], dependencies: [{ 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: i3$3.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }] }); }
45735
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: ElementSliderComponent, isStandalone: false, selector: "rp-element-slider", ngImport: i0, template: "@if (settingsService.settings.options.cameraPositionFixedAndScrollbar) {\r\n <div class=\"slidecontainer\">\r\n <mat-slider class=\"slider\" min=\"-180\" max=\"180\" [(ngModel)]=\"sliderValue\" [step]=\"step\" (input)=\"getSliderValue($event)\"></mat-slider>\r\n </div>\r\n}\r\n", styles: [".slidecontainer{width:40%;position:absolute;left:30%;top:85%;z-index:99}.slider{appearance:none;width:100%;height:25px;background:#d3d3d3;outline:none;opacity:.7;transition:opacity .2s;border-radius:25px}.slider:hover{opacity:1}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:25px;height:25px;background:#0094ff;cursor:pointer;border-radius:25px}::ng-deep .mat-mdc-slider.mat-slider-horizontal .mat-slider-wrapper{top:12px}::ng-deep .mat-mdc-slider.mat-slider-horizontal .mat-slider-track-wrapper{height:0;border-radius:0}::ng-deep .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{background:#0094ff}\n"], dependencies: [{ 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: i3$2.MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }] }); }
45646
45736
  }
45647
45737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ElementSliderComponent, decorators: [{
45648
45738
  type: Component,
@@ -47318,7 +47408,7 @@ class LandingScreenModalComponent {
47318
47408
  });
47319
47409
  }
47320
47410
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LandingScreenModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }, { token: MessageBusService }, { token: ScreenSizeAnalysisService }], target: i0.ɵɵFactoryTarget.Component }); }
47321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: LandingScreenModalComponent, isStandalone: false, selector: "rp-landing-screen-modal", ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-headline-5\">{{ 'HOMEDECOHUB' | localize | uppercase }}</h1>\r\n\r\n<div mat-dialog-content class=\"dialog-content\" fxLayout=\"column\" cdkTrapFocus>\r\n <div class=\"actions\" fxLayout=\"row\" fxLayoutAlign=\"space-around flex-start\">\r\n\r\n @if (desktopSizeScreen) {\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"startFromScratch()\">\r\n <span class=\"icon-wrapper\"><co-icon [iconData]=\"iconService.getIcon(icons.PencilLight)\"></co-icon></span>\r\n <span>{{ 'CREATE_NEW_PLAN_FROM_SCRATCH' | localize }}</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (desktopSizeScreen && showUploadDiagram) {\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"fileInput.click()\">\r\n <span class=\"icon-wrapper\"><co-icon [iconData]=\"iconService.getIcon(icons.UploadLight)\"></co-icon></span>\r\n <span>{{ 'CREATE_FROM_DIAGRAM' | localize }}</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"openOpenDialog()\">\r\n <span class=\"icon-wrapper\"><co-icon [iconData]=\"iconService.getIcon(icons.CloudArrowUp)\"></co-icon></span>\r\n <span>{{ 'OPEN_SAVED_ROOM_PLAN' | localize }}</span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"library\" fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\r\n @if (desktopSizeScreen) {\r\n <div class=\"col left\" fxFlex=\"grow\">\r\n <h2 class=\"mat-subtitle-1\" [textContent]=\"'START_WITH_A_ROOM_SHAPE' | localize\"></h2>\r\n <mat-grid-list cols=\"2\" rowHeight=\"115px\">\r\n @for (room of floorPlans | filter:'show':true; track room) {\r\n <mat-grid-tile>\r\n <button mat-button (click)=\"startWithRoom(room, true)\">\r\n <img [src]=\"assetPath + room.thumbnail\">\r\n </button>\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n </div>\r\n }\r\n <div class=\"col\" [class.right]=\"desktopSizeScreen\" fxFlex=\"grow\">\r\n <h2 class=\"mat-subtitle-1\">\r\n {{ 'OPEN_A_COMPLETE_ROOM' | localize }}\r\n </h2>\r\n <mat-grid-list [cols]=\"desktopSizeScreen ? 2 : 3\" rowHeight=\"115px\">\r\n @for (preset of presets | filter:'show':true; track preset) {\r\n <mat-grid-tile>\r\n <button mat-button (click)=\"startWithRoom(preset)\">\r\n <img [src]=\"assetPath + preset.thumbnail\">\r\n </button>\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<input\r\n type=\"file\"\r\n id=\"fileInput\"\r\n (change)=\"validateImportFile($event)\"\r\n style=\"display: none\"\r\n #fileInput\r\n >\r\n", styles: [":host{width:inherit;height:inherit;background:#fff;display:flex;flex-direction:column}.mat-headline-5{text-align:center;line-height:1;font-weight:600;margin:0 0 16px}.mat-mdc-dialog-content{padding:0 15px;margin:0}:host img{max-width:100%}.col{height:100%;width:33%}.icon-wrapper{display:inline-block;margin-right:10px}.actions{margin-top:8px;margin-bottom:24px;min-height:50px;gap:10px}.actions>.col{height:100%}.actions ::ng-deep button{height:50px;width:100%;background:#da9803;padding:0 10px}.actions ::ng-deep button span{font-size:13px}.actions ::ng-deep button co-icon ::ng-deep{width:20px;height:20px}.actions ::ng-deep button co-icon ::ng-deep svg{fill:#fff}.library ::ng-deep button{height:100%;width:100%}.library .mat-subtitle-1{text-align:center}\n"], dependencies: [{ 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: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3$4.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$4.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: FilterPipe, name: "filter" }, { kind: "pipe", type: i2$2.UpperCasePipe, name: "uppercase" }] }); }
47411
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: LandingScreenModalComponent, isStandalone: false, selector: "rp-landing-screen-modal", ngImport: i0, template: "<h1 mat-dialog-title class=\"mat-headline-5\">{{ 'HOMEDECOHUB' | localize | uppercase }}</h1>\r\n\r\n<div mat-dialog-content class=\"dialog-content\" fxLayout=\"column\" cdkTrapFocus>\r\n <div class=\"actions\" fxLayout=\"row\" fxLayoutAlign=\"space-around flex-start\">\r\n\r\n @if (desktopSizeScreen) {\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"startFromScratch()\">\r\n <span class=\"icon-wrapper\"><co-icon [iconData]=\"iconService.getIcon(icons.PencilLight)\"></co-icon></span>\r\n <span>{{ 'CREATE_NEW_PLAN_FROM_SCRATCH' | localize }}</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n @if (desktopSizeScreen && showUploadDiagram) {\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"fileInput.click()\">\r\n <span class=\"icon-wrapper\"><co-icon [iconData]=\"iconService.getIcon(icons.UploadLight)\"></co-icon></span>\r\n <span>{{ 'CREATE_FROM_DIAGRAM' | localize }}</span>\r\n </button>\r\n </div>\r\n }\r\n\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"openOpenDialog()\">\r\n <span class=\"icon-wrapper\"><co-icon [iconData]=\"iconService.getIcon(icons.CloudArrowUp)\"></co-icon></span>\r\n <span>{{ 'OPEN_SAVED_ROOM_PLAN' | localize }}</span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"library\" fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\r\n @if (desktopSizeScreen) {\r\n <div class=\"col left\" fxFlex=\"grow\">\r\n <h2 class=\"mat-subtitle-1\" [textContent]=\"'START_WITH_A_ROOM_SHAPE' | localize\"></h2>\r\n <mat-grid-list cols=\"2\" rowHeight=\"115px\">\r\n @for (room of floorPlans | filter:'show':true; track room) {\r\n <mat-grid-tile>\r\n <button mat-button (click)=\"startWithRoom(room, true)\">\r\n <img [src]=\"assetPath + room.thumbnail\">\r\n </button>\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n </div>\r\n }\r\n <div class=\"col\" [class.right]=\"desktopSizeScreen\" fxFlex=\"grow\">\r\n <h2 class=\"mat-subtitle-1\">\r\n {{ 'OPEN_A_COMPLETE_ROOM' | localize }}\r\n </h2>\r\n <mat-grid-list [cols]=\"desktopSizeScreen ? 2 : 3\" rowHeight=\"115px\">\r\n @for (preset of presets | filter:'show':true; track preset) {\r\n <mat-grid-tile>\r\n <button mat-button (click)=\"startWithRoom(preset)\">\r\n <img [src]=\"assetPath + preset.thumbnail\">\r\n </button>\r\n </mat-grid-tile>\r\n }\r\n </mat-grid-list>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<input\r\n type=\"file\"\r\n id=\"fileInput\"\r\n (change)=\"validateImportFile($event)\"\r\n style=\"display: none\"\r\n #fileInput\r\n >\r\n", styles: [":host{width:inherit;height:inherit;background:#fff;display:flex;flex-direction:column}.mat-headline-5{text-align:center;line-height:1;font-weight:600;margin:0 0 16px}.mat-mdc-dialog-content{padding:0 15px;margin:0}:host img{max-width:100%}.col{height:100%;width:33%}.icon-wrapper{display:inline-block;margin-right:10px}.actions{margin-top:8px;margin-bottom:24px;min-height:50px;gap:10px}.actions>.col{height:100%}.actions ::ng-deep button{height:50px;width:100%;background:#da9803;padding:0 10px}.actions ::ng-deep button span{font-size:13px}.actions ::ng-deep button co-icon ::ng-deep{width:20px;height:20px}.actions ::ng-deep button co-icon ::ng-deep svg{fill:#fff}.library ::ng-deep button{height:100%;width:100%}.library .mat-subtitle-1{text-align:center}\n"], dependencies: [{ 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: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i3$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "directive", type: i14.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: i14.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: i14.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"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: FilterPipe, name: "filter" }, { kind: "pipe", type: i2$2.UpperCasePipe, name: "uppercase" }] }); }
47322
47412
  }
47323
47413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LandingScreenModalComponent, decorators: [{
47324
47414
  type: Component,
@@ -47511,7 +47601,7 @@ class OpenDialogComponent {
47511
47601
  this._dialogRef.close();
47512
47602
  }
47513
47603
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OpenDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: LocalStorageService }, { token: i1$2.MatDialogRef }, { token: i1$2.MatDialog }, { token: MessageBusService }], target: i0.ɵɵFactoryTarget.Component }); }
47514
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: OpenDialogComponent, isStandalone: false, selector: "rp-open-dialog", viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{'OPEN_A_PLAN' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"loadFromCloud()\">\r\n <h4 mat-line><strong>{{'LOAD_FROM_CLOUD' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'ENTER_AN_ID_TO_LOAD_A_PLAN_STORED_ON_CLOUD' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"fileInput.click()\">\r\n <h4 mat-line><strong>{{'LOAD_FROM_DISK' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'LOAD_A_PLAN_STORED_ON_YOUR_COMPUTER' | localize}}</p>\r\n </mat-list-item>\r\n @if (storageService.saveStateExists) {\r\n <mat-list-item (click)=\"openLastState()\">\r\n <h4 mat-line><strong>{{'RECOVER_LAST_PROJECT' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'RECOVER_LAST_PROJECT_DESC' | localize}}</p>\r\n </mat-list-item>\r\n }\r\n </mat-nav-list>\r\n</div>\r\n<input\r\n type=\"file\"\r\n (change)=\"readSchema($event)\"\r\n style=\"display: none\"\r\n #fileInput\r\n >\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47604
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: OpenDialogComponent, isStandalone: false, selector: "rp-open-dialog", viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{'OPEN_A_PLAN' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"loadFromCloud()\">\r\n <h4 mat-line><strong>{{'LOAD_FROM_CLOUD' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'ENTER_AN_ID_TO_LOAD_A_PLAN_STORED_ON_CLOUD' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"fileInput.click()\">\r\n <h4 mat-line><strong>{{'LOAD_FROM_DISK' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'LOAD_A_PLAN_STORED_ON_YOUR_COMPUTER' | localize}}</p>\r\n </mat-list-item>\r\n @if (storageService.saveStateExists) {\r\n <mat-list-item (click)=\"openLastState()\">\r\n <h4 mat-line><strong>{{'RECOVER_LAST_PROJECT' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'RECOVER_LAST_PROJECT_DESC' | localize}}</p>\r\n </mat-list-item>\r\n }\r\n </mat-nav-list>\r\n</div>\r\n<input\r\n type=\"file\"\r\n (change)=\"readSchema($event)\"\r\n style=\"display: none\"\r\n #fileInput\r\n >\r\n\r\n", styles: [""], dependencies: [{ kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$3.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47515
47605
  }
47516
47606
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: OpenDialogComponent, decorators: [{
47517
47607
  type: Component,
@@ -47540,7 +47630,7 @@ class DownloadDialogComponent {
47540
47630
  this._dialogRef.close(DownloadType.DownloadNew);
47541
47631
  }
47542
47632
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DownloadDialogComponent, deps: [{ token: i1$2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
47543
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DownloadDialogComponent, isStandalone: false, selector: "rp-download-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{'DOWNLOAD' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"download()\">\r\n <h4 mat-line><strong>{{'DOWNLOAD_A_COPY' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'DOWNLOAD_THE_PLAN_TO_YOUR_DEVICE' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"downloadNew()\">\r\n <h4 mat-line><strong>{{'DOWNLOAD_A_COPY_COPY' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'DOWNLOAD_THE_PLAN_TO_YOUR_DEVICE_COPY' | localize}}</p>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n</div>\r\n", styles: [":host .mat-mdc-dialog-content{margin:0;overflow:hidden}:host .mat-mdc-nav-list{display:flex;flex-direction:column}:host .mat-mdc-nav-list .mat-mdc-list-item:not(:last-child){margin-bottom:30px}.mat-mdc-dialog-actions{margin-bottom:0}.item-description{white-space:inherit!important}\n"], dependencies: [{ kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DownloadDialogComponent, isStandalone: false, selector: "rp-download-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{'DOWNLOAD' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"download()\">\r\n <h4 mat-line><strong>{{'DOWNLOAD_A_COPY' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'DOWNLOAD_THE_PLAN_TO_YOUR_DEVICE' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"downloadNew()\">\r\n <h4 mat-line><strong>{{'DOWNLOAD_A_COPY_COPY' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'DOWNLOAD_THE_PLAN_TO_YOUR_DEVICE_COPY' | localize}}</p>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n</div>\r\n", styles: [":host .mat-mdc-dialog-content{margin:0;overflow:hidden}:host .mat-mdc-nav-list{display:flex;flex-direction:column}:host .mat-mdc-nav-list .mat-mdc-list-item:not(:last-child){margin-bottom:30px}.mat-mdc-dialog-actions{margin-bottom:0}.item-description{white-space:inherit!important}\n"], dependencies: [{ kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$3.MatLine, selector: "[mat-line], [matLine]" }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47544
47634
  }
47545
47635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DownloadDialogComponent, decorators: [{
47546
47636
  type: Component,
@@ -47701,7 +47791,7 @@ class SaveDialogComponent {
47701
47791
  }
47702
47792
  </mat-nav-list>
47703
47793
  </div>
47704
- `, isInline: true, styles: [":host .mat-mdc-dialog-content{margin:0;overflow:hidden}:host .mat-mdc-nav-list{display:flex;flex-direction:column}:host .mat-mdc-nav-list .mat-mdc-list-item:not(:last-child){margin-bottom:30px}:host .download-button{box-shadow:none;background-color:#3760a1;display:flex;align-items:center;justify-content:center;align-self:flex-end}:host .download-button ::ng-deep co-icon [fill]{fill:#fff}.mat-mdc-dialog-actions{margin-bottom:0}.item-description{white-space:inherit!important}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47794
+ `, isInline: true, styles: [":host .mat-mdc-dialog-content{margin:0;overflow:hidden}:host .mat-mdc-nav-list{display:flex;flex-direction:column}:host .mat-mdc-nav-list .mat-mdc-list-item:not(:last-child){margin-bottom:30px}:host .download-button{box-shadow:none;background-color:#3760a1;display:flex;align-items:center;justify-content:center;align-self:flex-end}:host .download-button ::ng-deep co-icon [fill]{fill:#fff}.mat-mdc-dialog-actions{margin-bottom:0}.item-description{white-space:inherit!important}\n"], dependencies: [{ kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3$3.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47705
47795
  }
47706
47796
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SaveDialogComponent, decorators: [{
47707
47797
  type: Component,
@@ -47831,7 +47921,7 @@ class DrawDialogComponent {
47831
47921
  this.customerInputLenght = this.inputLength.nativeElement.value;
47832
47922
  }
47833
47923
  handleMouseDown(event) {
47834
- if (this.draftingMode === 'movement') {
47924
+ if (event.button === 2) { // right mouse button -> drag
47835
47925
  this.isDragging = true;
47836
47926
  this.dragStart.x = this.getEventLocation(event).x / this.cameraZoom - this.cameraOffset.x;
47837
47927
  this.dragStart.y = this.getEventLocation(event).y / this.cameraZoom - this.cameraOffset.y;
@@ -47844,11 +47934,9 @@ class DrawDialogComponent {
47844
47934
  }
47845
47935
  }
47846
47936
  handleMouseMove(event) {
47847
- if (this.draftingMode === 'movement') {
47848
- if (this.isDragging) {
47849
- this.cameraOffset.x = this.getEventLocation(event).x / this.cameraZoom - this.dragStart.x;
47850
- this.cameraOffset.y = this.getEventLocation(event).y / this.cameraZoom - this.dragStart.y;
47851
- }
47937
+ if (this.isDragging) {
47938
+ this.cameraOffset.x = this.getEventLocation(event).x / this.cameraZoom - this.dragStart.x;
47939
+ this.cameraOffset.y = this.getEventLocation(event).y / this.cameraZoom - this.dragStart.y;
47852
47940
  }
47853
47941
  }
47854
47942
  handleMouseUp(event) {
@@ -47858,22 +47946,6 @@ class DrawDialogComponent {
47858
47946
  }
47859
47947
  handleMouseLeave(event) {
47860
47948
  }
47861
- clickingZoom(option) {
47862
- const zoomIn = -0.5;
47863
- const zoomOut = 0.5;
47864
- const zoomReset = 1;
47865
- if (option === 'in') {
47866
- this.cameraZoom -= zoomIn;
47867
- }
47868
- else if (option === 'out') {
47869
- this.cameraZoom -= zoomOut;
47870
- }
47871
- else if (option === 'reset') {
47872
- this.cameraZoom = zoomReset;
47873
- }
47874
- this.cameraZoom = Math.min(this.cameraZoom, this.maxZoom);
47875
- this.cameraZoom = Math.max(this.cameraZoom, this.minZoom);
47876
- }
47877
47949
  handleMouseWheel(event) {
47878
47950
  const zoomAmount = event.deltaY * this.scrollSensitivity;
47879
47951
  if (!this.isDragging) {
@@ -47884,6 +47956,9 @@ class DrawDialogComponent {
47884
47956
  this.cameraZoom = Math.max(this.cameraZoom, this.minZoom);
47885
47957
  }
47886
47958
  }
47959
+ handleContextMenu(event) {
47960
+ return false;
47961
+ }
47887
47962
  getEventLocation(e) {
47888
47963
  if (e.touches && e.touches.length === 1) {
47889
47964
  return { x: e.touches[0].clientX, y: e.touches[0].clientY };
@@ -47967,11 +48042,11 @@ class DrawDialogComponent {
47967
48042
  return new Vector2(canvasX, canvasY);
47968
48043
  }
47969
48044
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }, { token: i1$2.MatDialog }, { token: MessageBusService }], target: i0.ɵɵFactoryTarget.Component }); }
47970
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DrawDialogComponent, isStandalone: false, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["drawCanvas"], descendants: true, read: ElementRef, static: true }, { propertyName: "inputLength", first: true, predicate: ["inputLength"], descendants: true }, { propertyName: "hiddenImage", first: true, predicate: ["hiddenImage"], descendants: true }], ngImport: i0, template: "<div class=\"model-header\">\r\n <h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n <button (click)=\"cancelAndReset()\" class=\"close-button\">\r\n <mat-icon class=\"homedecorator-material-icons\">close</mat-icon>\r\n </button>\r\n</div>\r\n<div class=\"top-bar-container\">\r\n @if (draftingMode === 'movement') {\r\n <div class=\"zoom-button-containers\">\r\n <button (click)=\"clickingZoom('in')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_in</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('reset')\">\r\n <mat-icon class=\"homedecorator-material-icons\">all_out</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('out')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_out</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n<div class=\"main-button-container\">\r\n <mat-button-toggle-group\r\n class=\"mode-toggle\"\r\n (change)=\"setModus($event.value)\"\r\n [value]=\"draftingMode\">\r\n <mat-button-toggle [value]=\"'movement'\" [matTooltip]=\"'Zoom / verplaats modus'\">\r\n <mat-icon svgIcon=\"hand-pointer\"></mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'scaling'\" [matTooltip]=\"'Maak referentie meting'\">\r\n <mat-icon svgIcon=\"pen-ruler\"></mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div class=\"canvas-wrapper\">\r\n <canvas\r\n #drawCanvas\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n ></canvas>\r\n</div>\r\n\r\n<div class=\"modal-footer\">\r\n @if (draftingMode === 'scaling') {\r\n <div class=\"reference-input-container\">\r\n <div class=\"input-button-container\">\r\n <input\r\n (change)=\"updateUserValue()\"\r\n [value]=\"customerInputLenght\"\r\n #inputLength\r\n type=\"number\"\r\n placeholder=\"{{ 'PDF_REFERENCE_PLACEHOLDER' | localize}}\"\r\n [attr.disabled]=\"this.measurePoints.length === 0 ? '' : null\"\r\n >\r\n <button (click)=\"resetPoints()\" title=\"Reset referentie meting\">\r\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\r\n </button>\r\n </div>\r\n <p class=\"helper-text\">{{ 'PDF_REFERENCE_HELPER' | localize }}</p>\r\n </div>\r\n }\r\n\r\n <div class=\"save-cancel-button-container\">\r\n @if (draftingMode === 'scaling') {\r\n <button (click)=\"submitLength()\" title=\"Opslaan\">\r\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\r\n <span>{{'NEXT' | localize}}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <img #hiddenImage src=\"\" style=\"display: none;\">\r\n", styles: ["canvas{position:relative}button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}button:hover{background:#da9803;color:#fff}.main-button-container{display:flex;justify-content:center;margin-bottom:15px}.main-button-container .mat-button-toggle-checked{background:#da9803;color:#fff}.model-header{display:flex;justify-content:space-between;align-items:start}.model-header .close-button{background:none;color:#333;border:none;padding:0}.modal-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px}.reference-input-container .input-button-container{display:flex;align-items:center}.reference-input-container .input-button-container input{min-width:285px;border:1px solid #f7f7f9;border-radius:3px;height:35px;line-height:35px;box-sizing:border-box;padding:10px}.reference-input-container .input-button-container input:disabled{background:#f7f7f9;cursor:default}.reference-input-container .input-button-container button{border:none;display:inline-block}.reference-input-container .helper-text{font-size:13px;font-style:italic;margin:0;padding:0;display:block}.zoom-button-containers{display:flex;justify-items:center;justify-content:right}.zoom-button-containers button{margin:0 5px}.save-cancel-button-container{display:flex;justify-content:center;justify-items:center}.save-cancel-button-container button{margin:3px 10px;padding:8px 15px}.save-cancel-button-container button .homedecorator-material-icons{font-size:18px}.save-cancel-button-container button span{line-height:18px;font-size:15px}.canvas-wrapper{overflow:hidden;max-height:60vh;max-width:80vw}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
48045
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DrawDialogComponent, isStandalone: false, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["drawCanvas"], descendants: true, read: ElementRef, static: true }, { propertyName: "inputLength", first: true, predicate: ["inputLength"], descendants: true }, { propertyName: "hiddenImage", first: true, predicate: ["hiddenImage"], descendants: true }], ngImport: i0, template: "<div class=\"model-header\">\r\n <h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n <button (click)=\"cancelAndReset()\" class=\"close-button\">\r\n <mat-icon class=\"homedecorator-material-icons\">close</mat-icon>\r\n </button>\r\n</div>\r\n<div class=\"canvas-wrapper\">\r\n <canvas\r\n #drawCanvas\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n (contextmenu)=\"handleContextMenu($event)\"\r\n ></canvas>\r\n</div>\r\n\r\n<div class=\"modal-footer\">\r\n @if (draftingMode === 'scaling') {\r\n <div class=\"reference-input-container\">\r\n <div class=\"input-button-container\">\r\n <input\r\n (change)=\"updateUserValue()\"\r\n [value]=\"customerInputLenght\"\r\n #inputLength\r\n type=\"number\"\r\n placeholder=\"{{ 'PDF_REFERENCE_PLACEHOLDER' | localize}}\"\r\n [attr.disabled]=\"this.measurePoints.length === 0 ? '' : null\"\r\n >\r\n <button (click)=\"resetPoints()\" title=\"Reset referentie meting\">\r\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\r\n </button>\r\n </div>\r\n <p class=\"helper-text\">{{ 'PDF_REFERENCE_HELPER' | localize }}</p>\r\n </div>\r\n }\r\n\r\n <div class=\"save-cancel-button-container\">\r\n @if (draftingMode === 'scaling') {\r\n <button (click)=\"submitLength()\" title=\"Opslaan\">\r\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\r\n <span>{{'NEXT' | localize}}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <img #hiddenImage src=\"\" style=\"display: none;\">\r\n", styles: ["canvas{position:relative}button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}button:hover{background:#da9803;color:#fff}.main-button-container{display:flex;justify-content:center;margin-bottom:15px}.main-button-container .mat-button-toggle-checked{background:#da9803;color:#fff}.model-header{display:flex;justify-content:space-between;align-items:start}.model-header .close-button{background:none;color:#333;border:none;padding:0}.modal-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px}.reference-input-container .input-button-container{display:flex;align-items:center}.reference-input-container .input-button-container input{min-width:285px;border:1px solid #f7f7f9;border-radius:3px;height:35px;line-height:35px;box-sizing:border-box;padding:10px}.reference-input-container .input-button-container input:disabled{background:#f7f7f9;cursor:default}.reference-input-container .input-button-container button{border:none;display:inline-block}.reference-input-container .helper-text{font-size:13px;font-style:italic;margin:0;padding:0;display:block}.zoom-button-containers{display:flex;justify-items:center;justify-content:right}.zoom-button-containers button{margin:0 5px}.save-cancel-button-container{display:flex;justify-content:center;justify-items:center}.save-cancel-button-container button{margin:3px 10px;padding:8px 15px}.save-cancel-button-container button .homedecorator-material-icons{font-size:18px}.save-cancel-button-container button span{line-height:18px;font-size:15px}.canvas-wrapper{overflow:hidden;max-height:60vh;max-width:80vw}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
47971
48046
  }
47972
48047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DrawDialogComponent, decorators: [{
47973
48048
  type: Component,
47974
- args: [{ selector: 'rp-draw-dialog', standalone: false, template: "<div class=\"model-header\">\r\n <h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n <button (click)=\"cancelAndReset()\" class=\"close-button\">\r\n <mat-icon class=\"homedecorator-material-icons\">close</mat-icon>\r\n </button>\r\n</div>\r\n<div class=\"top-bar-container\">\r\n @if (draftingMode === 'movement') {\r\n <div class=\"zoom-button-containers\">\r\n <button (click)=\"clickingZoom('in')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_in</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('reset')\">\r\n <mat-icon class=\"homedecorator-material-icons\">all_out</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('out')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_out</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n<div class=\"main-button-container\">\r\n <mat-button-toggle-group\r\n class=\"mode-toggle\"\r\n (change)=\"setModus($event.value)\"\r\n [value]=\"draftingMode\">\r\n <mat-button-toggle [value]=\"'movement'\" [matTooltip]=\"'Zoom / verplaats modus'\">\r\n <mat-icon svgIcon=\"hand-pointer\"></mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'scaling'\" [matTooltip]=\"'Maak referentie meting'\">\r\n <mat-icon svgIcon=\"pen-ruler\"></mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div class=\"canvas-wrapper\">\r\n <canvas\r\n #drawCanvas\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n ></canvas>\r\n</div>\r\n\r\n<div class=\"modal-footer\">\r\n @if (draftingMode === 'scaling') {\r\n <div class=\"reference-input-container\">\r\n <div class=\"input-button-container\">\r\n <input\r\n (change)=\"updateUserValue()\"\r\n [value]=\"customerInputLenght\"\r\n #inputLength\r\n type=\"number\"\r\n placeholder=\"{{ 'PDF_REFERENCE_PLACEHOLDER' | localize}}\"\r\n [attr.disabled]=\"this.measurePoints.length === 0 ? '' : null\"\r\n >\r\n <button (click)=\"resetPoints()\" title=\"Reset referentie meting\">\r\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\r\n </button>\r\n </div>\r\n <p class=\"helper-text\">{{ 'PDF_REFERENCE_HELPER' | localize }}</p>\r\n </div>\r\n }\r\n\r\n <div class=\"save-cancel-button-container\">\r\n @if (draftingMode === 'scaling') {\r\n <button (click)=\"submitLength()\" title=\"Opslaan\">\r\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\r\n <span>{{'NEXT' | localize}}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <img #hiddenImage src=\"\" style=\"display: none;\">\r\n", styles: ["canvas{position:relative}button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}button:hover{background:#da9803;color:#fff}.main-button-container{display:flex;justify-content:center;margin-bottom:15px}.main-button-container .mat-button-toggle-checked{background:#da9803;color:#fff}.model-header{display:flex;justify-content:space-between;align-items:start}.model-header .close-button{background:none;color:#333;border:none;padding:0}.modal-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px}.reference-input-container .input-button-container{display:flex;align-items:center}.reference-input-container .input-button-container input{min-width:285px;border:1px solid #f7f7f9;border-radius:3px;height:35px;line-height:35px;box-sizing:border-box;padding:10px}.reference-input-container .input-button-container input:disabled{background:#f7f7f9;cursor:default}.reference-input-container .input-button-container button{border:none;display:inline-block}.reference-input-container .helper-text{font-size:13px;font-style:italic;margin:0;padding:0;display:block}.zoom-button-containers{display:flex;justify-items:center;justify-content:right}.zoom-button-containers button{margin:0 5px}.save-cancel-button-container{display:flex;justify-content:center;justify-items:center}.save-cancel-button-container button{margin:3px 10px;padding:8px 15px}.save-cancel-button-container button .homedecorator-material-icons{font-size:18px}.save-cancel-button-container button span{line-height:18px;font-size:15px}.canvas-wrapper{overflow:hidden;max-height:60vh;max-width:80vw}\n"] }]
48049
+ args: [{ selector: 'rp-draw-dialog', standalone: false, template: "<div class=\"model-header\">\r\n <h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n <button (click)=\"cancelAndReset()\" class=\"close-button\">\r\n <mat-icon class=\"homedecorator-material-icons\">close</mat-icon>\r\n </button>\r\n</div>\r\n<div class=\"canvas-wrapper\">\r\n <canvas\r\n #drawCanvas\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n (contextmenu)=\"handleContextMenu($event)\"\r\n ></canvas>\r\n</div>\r\n\r\n<div class=\"modal-footer\">\r\n @if (draftingMode === 'scaling') {\r\n <div class=\"reference-input-container\">\r\n <div class=\"input-button-container\">\r\n <input\r\n (change)=\"updateUserValue()\"\r\n [value]=\"customerInputLenght\"\r\n #inputLength\r\n type=\"number\"\r\n placeholder=\"{{ 'PDF_REFERENCE_PLACEHOLDER' | localize}}\"\r\n [attr.disabled]=\"this.measurePoints.length === 0 ? '' : null\"\r\n >\r\n <button (click)=\"resetPoints()\" title=\"Reset referentie meting\">\r\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\r\n </button>\r\n </div>\r\n <p class=\"helper-text\">{{ 'PDF_REFERENCE_HELPER' | localize }}</p>\r\n </div>\r\n }\r\n\r\n <div class=\"save-cancel-button-container\">\r\n @if (draftingMode === 'scaling') {\r\n <button (click)=\"submitLength()\" title=\"Opslaan\">\r\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\r\n <span>{{'NEXT' | localize}}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <img #hiddenImage src=\"\" style=\"display: none;\">\r\n", styles: ["canvas{position:relative}button{cursor:pointer;color:#fff;background:#da9803;border:1px solid #da9803;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}button:hover{background:#da9803;color:#fff}.main-button-container{display:flex;justify-content:center;margin-bottom:15px}.main-button-container .mat-button-toggle-checked{background:#da9803;color:#fff}.model-header{display:flex;justify-content:space-between;align-items:start}.model-header .close-button{background:none;color:#333;border:none;padding:0}.modal-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px}.reference-input-container .input-button-container{display:flex;align-items:center}.reference-input-container .input-button-container input{min-width:285px;border:1px solid #f7f7f9;border-radius:3px;height:35px;line-height:35px;box-sizing:border-box;padding:10px}.reference-input-container .input-button-container input:disabled{background:#f7f7f9;cursor:default}.reference-input-container .input-button-container button{border:none;display:inline-block}.reference-input-container .helper-text{font-size:13px;font-style:italic;margin:0;padding:0;display:block}.zoom-button-containers{display:flex;justify-items:center;justify-content:right}.zoom-button-containers button{margin:0 5px}.save-cancel-button-container{display:flex;justify-content:center;justify-items:center}.save-cancel-button-container button{margin:3px 10px;padding:8px 15px}.save-cancel-button-container button .homedecorator-material-icons{font-size:18px}.save-cancel-button-container button span{line-height:18px;font-size:15px}.canvas-wrapper{overflow:hidden;max-height:60vh;max-width:80vw}\n"] }]
47975
48050
  }], ctorParameters: () => [{ type: undefined, decorators: [{
47976
48051
  type: Inject,
47977
48052
  args: [MAT_DIALOG_DATA]
@@ -48027,7 +48102,7 @@ class PdfCropDialogComponent {
48027
48102
  });
48028
48103
  }
48029
48104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PdfCropDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }, { token: i1$2.MatDialog }, { token: MessageBusService }], target: i0.ɵɵFactoryTarget.Component }); }
48030
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: PdfCropDialogComponent, isStandalone: false, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "pdfComponent", first: true, predicate: ["pdf"], descendants: true, read: PdfViewerComponent }, { propertyName: "pdfContainer", first: true, predicate: ["pdfcontainer"], descendants: true, read: HTMLElement }, { propertyName: "hiddenImage", first: true, predicate: ["image"], descendants: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <div class=\"model-header-container\">\r\n <button (click)=\"crop()\" title=\"Continue\">\r\n <mat-icon class=\"homedecorator-material-icons\">check</mat-icon>\r\n </button>\r\n </div>\r\n\r\n\r\n <div #pdfcontainer class=\"pdf-container top-margin\">\r\n <pdf-viewer\r\n #pdf\r\n [(src)]=\"pdfSrc\"\r\n [render-text]=\"true\"\r\n [autoresize]=\"true\"\r\n (page-rendered)=\"pageRendered()\"\r\n style=\"position: relative; min-height: 80vh; min-width: 80vw; display: block\">\r\n </pdf-viewer>\r\n </div>\r\n</div>\r\n", styles: [".model-header-container{display:flex;justify-content:center}.model-header-container button{cursor:pointer;color:#000;background:#fff;border:1px solid #dddddd;border-radius:3px;box-sizing:border-box;padding:5px}.model-header-container button:hover{background:#da9803;color:#fff}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4$2.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
48105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: PdfCropDialogComponent, isStandalone: false, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "pdfComponent", first: true, predicate: ["pdf"], descendants: true, read: PdfViewerComponent }, { propertyName: "pdfContainer", first: true, predicate: ["pdfcontainer"], descendants: true, read: HTMLElement }, { propertyName: "hiddenImage", first: true, predicate: ["image"], descendants: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <div class=\"model-header-container\">\r\n <button (click)=\"crop()\" title=\"Continue\">\r\n <mat-icon class=\"homedecorator-material-icons\">check</mat-icon>\r\n </button>\r\n </div>\r\n\r\n\r\n <div #pdfcontainer class=\"pdf-container top-margin\">\r\n <pdf-viewer\r\n #pdf\r\n [(src)]=\"pdfSrc\"\r\n [render-text]=\"true\"\r\n [autoresize]=\"true\"\r\n (page-rendered)=\"pageRendered()\"\r\n style=\"position: relative; min-height: 80vh; min-width: 80vw; display: block\">\r\n </pdf-viewer>\r\n </div>\r\n</div>\r\n", styles: [".model-header-container{display:flex;justify-content:center}.model-header-container button{cursor:pointer;color:#000;background:#fff;border:1px solid #dddddd;border-radius:3px;box-sizing:border-box;padding:5px}.model-header-container button:hover{background:#da9803;color:#fff}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4$2.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
48031
48106
  }
48032
48107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: PdfCropDialogComponent, decorators: [{
48033
48108
  type: Component,
@@ -48076,7 +48151,7 @@ class LightboxComponent {
48076
48151
  </div>
48077
48152
  </div>
48078
48153
 
48079
- `, isInline: true, dependencies: [{ kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], encapsulation: i0.ViewEncapsulation.None }); }
48154
+ `, isInline: true, dependencies: [{ kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], encapsulation: i0.ViewEncapsulation.None }); }
48080
48155
  }
48081
48156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LightboxComponent, decorators: [{
48082
48157
  type: Component,
@@ -48172,7 +48247,7 @@ class HelpDialogComponent {
48172
48247
  (closeClick)="showLightbox = false"
48173
48248
  ></co-lightbox>
48174
48249
  }
48175
- `, isInline: true, styles: [".mat-headline-5{text-align:center;line-height:1;margin:0 0 16px}.help-button{height:100%;width:100%;pointer-events:all}.help-button ::ng-deep .mat-button-wrapper{display:flex;flex-direction:column;white-space:normal}.help-button ::ng-deep .mat-button-wrapper>*{max-width:100%;max-height:100%}.help-button ::ng-deep .mat-button-wrapper .help-image-label{font-size:12px;line-height:1.5;min-height:36px;margin-top:10px}.help-image{display:block;max-width:100%;max-height:100%}\n"], dependencies: [{ kind: "component", type: i3$4.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$4.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: LightboxComponent, selector: "co-lightbox", inputs: ["content", "title"], outputs: ["closeClick"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: i2$2.UpperCasePipe, name: "uppercase" }] }); }
48250
+ `, isInline: true, styles: [".mat-headline-5{text-align:center;line-height:1;margin:0 0 16px}.help-button{height:100%;width:100%;pointer-events:all}.help-button ::ng-deep .mat-button-wrapper{display:flex;flex-direction:column;white-space:normal}.help-button ::ng-deep .mat-button-wrapper>*{max-width:100%;max-height:100%}.help-button ::ng-deep .mat-button-wrapper .help-image-label{font-size:12px;line-height:1.5;min-height:36px;margin-top:10px}.help-image{display:block;max-width:100%;max-height:100%}\n"], dependencies: [{ kind: "component", type: i3$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i3$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: LightboxComponent, selector: "co-lightbox", inputs: ["content", "title"], outputs: ["closeClick"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: i2$2.UpperCasePipe, name: "uppercase" }] }); }
48176
48251
  }
48177
48252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HelpDialogComponent, decorators: [{
48178
48253
  type: Component,
@@ -48213,7 +48288,7 @@ class LimitedModeMessageComponent {
48213
48288
  this.closeClicked.emit();
48214
48289
  }
48215
48290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LimitedModeMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LimitedModeMessageComponent, isStandalone: false, selector: "limited-mode-message", outputs: { closeClicked: "closeClicked" }, ngImport: i0, template: "<span [textContent]=\"'APPLICATION_RUNS_LIMITED_MODE' | localize\"></span>\r\n<button mat-icon-button (click)=\"onCloseClick()\">\r\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:center;align-items:center;background:#fe4400;color:#fff;height:25px;font-size:small;z-index:1}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
48291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LimitedModeMessageComponent, isStandalone: false, selector: "limited-mode-message", outputs: { closeClicked: "closeClicked" }, ngImport: i0, template: "<span [textContent]=\"'APPLICATION_RUNS_LIMITED_MODE' | localize\"></span>\r\n<button mat-icon-button (click)=\"onCloseClick()\">\r\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:center;align-items:center;background:#fe4400;color:#fff;height:25px;font-size:small;z-index:1}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
48217
48292
  }
48218
48293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LimitedModeMessageComponent, decorators: [{
48219
48294
  type: Component,
@@ -48225,7 +48300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
48225
48300
  class ToolbarComponent {
48226
48301
  handleKeyDown(event) {
48227
48302
  if (event.ctrlKey && event.shiftKey && event.key === 'S') {
48228
- this.handleSave();
48303
+ this.handleSave(false);
48229
48304
  }
48230
48305
  }
48231
48306
  get fullscreen() {
@@ -48328,7 +48403,7 @@ class ToolbarComponent {
48328
48403
  this.handleExternalSave();
48329
48404
  }
48330
48405
  else {
48331
- this.openSaveDialog();
48406
+ this.openSaveDialog(saveOnOpen);
48332
48407
  }
48333
48408
  }
48334
48409
  async handleExternalSave() {
@@ -48853,7 +48928,7 @@ class ToolbarComponent {
48853
48928
  <!--
48854
48929
  </div>
48855
48930
  -->
48856
- `, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;top:0;z-index:100;height:100%;width:100%;pointer-events:none}:host h2{font-weight:600}:host h3{font-weight:600}:host .mat-toolbar.mat-primary{box-shadow:none;padding:0;background:transparent;height:40px;justify-content:space-between}:host .mat-toolbar .mat-icon{height:20px;width:20px;font-size:20px;line-height:20px}:host .hd-toolbar-spacer{display:flex;flex-basis:100%}:host .toast-wrapper{height:auto;position:absolute;top:0;left:50%;-webkit-user-select:none;user-select:none;pointer-events:none;background:#74b77f;padding:30px;border-radius:0 0 10px 10px;min-width:150px;max-width:90%;color:#fff;text-align:center;transform:translate(-50%,-100%)}:host .toast-wrapper.warning{background:#f17300}:host .toast-wrapper.error{background:#cc2936}:host ::ng-deep .drawer__header{display:flex;align-items:center;min-height:40px;margin-bottom:16px}:host ::ng-deep .drawer__header h2{margin:0 auto 0 0;font-weight:600}:host ::ng-deep .mat-headline-6{font-weight:600}:host ::ng-deep .mat-subtitle-1{font-weight:600}:host ::ng-deep mat-tab-header,:host ::ng-deep .FileDrop{margin-bottom:16px}:host ::ng-deep .tab--skin ::ng-deep .mat-tab-label{height:52px;min-width:auto}:host ::ng-deep .drawer p{white-space:pre-wrap}:host ::ng-deep .mat-divider{margin:16px 0 24px}:host ::ng-deep .mat-drawer-backdrop{display:none}.storage-error{min-width:30px;height:30px;display:flex;align-items:center;align-self:center;border-radius:50%;justify-content:center;background:#fff;color:#c00;font-size:25px;font-weight:700}.layer--toolbar{display:flex;flex-direction:column}.toolbar{display:flex;z-index:101;flex-wrap:nowrap}.toolbar .menu-icon{min-width:50px;display:flex;justify-content:center;margin-left:-16px}.toolbar .left-toolbar,.toolbar .right-toolbar{display:flex;align-items:center;background:#da9803;border-radius:0 0 10px;padding:0 20px 0 10px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b;height:100%;gap:12px}.toolbar .right-toolbar{border-radius:0 0 0 10px;padding:0 5px 0 10px}.toolbar .right-toolbar.modified{padding:0 5px 0 0}.toolbar .share-button{height:100%;padding:0 15px;border-radius:0 0 0 10px;border:none;color:#fff;background-color:#2c67ff;cursor:pointer}.toolbar .toolbar-icon-list{display:flex;align-items:center;justify-content:center}.toolbar .toolbar-icon-sub{display:flex;align-items:center;justify-content:center;padding:0 10px;gap:5px;border-right:1px solid rgba(255,255,255,.3803921569)}.toolbar .toolbar-icon-sub:last-child{border-right:none}.toolbar .toolbar-icon-sub:first-child{border-left:1px solid rgba(255,255,255,.3803921569);margin-left:10px}.toolbar .toolbar-icon{height:30px;width:30px;display:flex;align-items:center;justify-content:center;cursor:pointer}.toolbar .toolbar-icon co-icon ::ng-deep{width:20px;height:20px}.toolbar .toolbar-icon co-icon ::ng-deep svg,.toolbar .toolbar-icon co-icon ::ng-deep path{fill:#fff}.toolbar .toolbar-icon co-icon.loading-green ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-green ::ng-deep path{fill:#74b77f}.toolbar .toolbar-icon co-icon.loading-orange ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-orange ::ng-deep path{fill:#f17300}.toolbar .toolbar-icon co-icon.loading-yellow ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-yellow ::ng-deep path{fill:#cc2936}.toolbar .toolbar-icon co-icon.loading-red ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-red ::ng-deep path{fill:#cc2936}.toolbar .toolbar-icon.search co-icon{height:30px;width:30px}.toolbar .toolbar-icon.disabled{cursor:default}.toolbar .toolbar-icon.disabled co-icon ::ng-deep svg{fill:#00000042}.toolbar-logo{height:20px}.secondary-logo{margin-left:20px}.toolbar__nav{display:flex;flex-direction:row;padding-top:0}.toolbar__nav .mat-mdc-list-item{color:#fff;height:40px}.toolbar-row{flex:auto;display:flex;flex-direction:column;padding:0;pointer-events:none;position:relative;align-items:baseline;height:100%}::ng-deep mat-toolbar-row .toolbar--secondary{width:50px;padding:15px 0;flex-direction:column;background:#17253391;height:100%;gap:5px}::ng-deep mat-toolbar-row .toolbar--secondary button ::ng-deep{width:30px;height:30px;line-height:30px;color:#fff;display:flex;justify-content:center}::ng-deep mat-toolbar-row .toolbar--secondary .add-to-cart-button button ::ng-deep{color:#da9803}.toolbar--secondary .drawer{flex:auto;pointer-events:none;background:transparent}.wip-card{margin-left:5px;padding:0 10px;color:#fff;background-color:#7a828a}.wip-card .mat-mdc-card-content{font-size:12px}.drawer-container{position:static;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.drawer{width:420px;padding:16px;display:flex;flex-direction:column;left:50px}::ng-deep rp-category-library .mat-mdc-list-item ::ng-deep{border-color:#747c84}::ng-deep rp-category-library .mdc-list-item__primary-text{color:#000}::ng-deep rp-category-library .mdc-list-item:hover .mdc-list-item__primary-text{color:#000}.toolbar,.toolbar--secondary>*,.drawer-container>*,.drawer>*{pointer-events:all}.drawer__button{min-width:initial;padding:0;border:none;position:absolute;top:0;right:0;border-radius:50%}.blinker{animation:blinker 1s linear infinite}.badge-tooltip{position:relative}.badge-tooltip .mat-badge{position:absolute;margin:0;display:flex;align-items:center;justify-content:center;right:-2px;bottom:13px}.badge-tooltip .mat-badge .mat-badge-content{background-color:transparent;color:#b71c1c;border:1px solid #b71c1c;animation:bounce 2s ease-out;animation-iteration-count:infinite;right:initial;left:initial;position:relative;height:12px;width:12px;line-height:12px;font-size:10px;bottom:initial}::ng-deep .tooltip-red{background:#b71c1c}@keyframes bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-20px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes blinker{50%{opacity:0}}::ng-deep .mat-mdc-menu-panel{width:256px!important}::ng-deep .mat-mdc-menu-panel .mat-mdc-menu-content{display:flex;flex-direction:column;padding-left:10px;padding-right:10px}::ng-deep mat-drawer-content.mat-drawer-content{display:flex;height:100%;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i23.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i23.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i27$1.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i27$1.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i27$1.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i29.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i29.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i30.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i30.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i31$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "directive", type: i33.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: LimitedModeMessageComponent, selector: "limited-mode-message", outputs: ["closeClicked"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
48931
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;top:0;z-index:100;height:100%;width:100%;pointer-events:none}:host h2{font-weight:600}:host h3{font-weight:600}:host .mat-toolbar.mat-primary{box-shadow:none;padding:0;background:transparent;height:40px;justify-content:space-between}:host .mat-toolbar .mat-icon{height:20px;width:20px;font-size:20px;line-height:20px}:host .hd-toolbar-spacer{display:flex;flex-basis:100%}:host .toast-wrapper{height:auto;position:absolute;top:0;left:50%;-webkit-user-select:none;user-select:none;pointer-events:none;background:#74b77f;padding:30px;border-radius:0 0 10px 10px;min-width:150px;max-width:90%;color:#fff;text-align:center;transform:translate(-50%,-100%)}:host .toast-wrapper.warning{background:#f17300}:host .toast-wrapper.error{background:#cc2936}:host ::ng-deep .drawer__header{display:flex;align-items:center;min-height:40px;margin-bottom:16px}:host ::ng-deep .drawer__header h2{margin:0 auto 0 0;font-weight:600}:host ::ng-deep .mat-headline-6{font-weight:600}:host ::ng-deep .mat-subtitle-1{font-weight:600}:host ::ng-deep mat-tab-header,:host ::ng-deep .FileDrop{margin-bottom:16px}:host ::ng-deep .tab--skin ::ng-deep .mat-tab-label{height:52px;min-width:auto}:host ::ng-deep .drawer p{white-space:pre-wrap}:host ::ng-deep .mat-divider{margin:16px 0 24px}:host ::ng-deep .mat-drawer-backdrop{display:none}.storage-error{min-width:30px;height:30px;display:flex;align-items:center;align-self:center;border-radius:50%;justify-content:center;background:#fff;color:#c00;font-size:25px;font-weight:700}.layer--toolbar{display:flex;flex-direction:column}.toolbar{display:flex;z-index:101;flex-wrap:nowrap}.toolbar .menu-icon{min-width:50px;display:flex;justify-content:center;margin-left:-16px}.toolbar .left-toolbar,.toolbar .right-toolbar{display:flex;align-items:center;background:#da9803;border-radius:0 0 10px;padding:0 20px 0 10px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b;height:100%;gap:12px}.toolbar .right-toolbar{border-radius:0 0 0 10px;padding:0 5px 0 10px}.toolbar .right-toolbar.modified{padding:0 5px 0 0}.toolbar .share-button{height:100%;padding:0 15px;border-radius:0 0 0 10px;border:none;color:#fff;background-color:#2c67ff;cursor:pointer}.toolbar .toolbar-icon-list{display:flex;align-items:center;justify-content:center}.toolbar .toolbar-icon-sub{display:flex;align-items:center;justify-content:center;padding:0 10px;gap:5px;border-right:1px solid rgba(255,255,255,.3803921569)}.toolbar .toolbar-icon-sub:last-child{border-right:none}.toolbar .toolbar-icon-sub:first-child{border-left:1px solid rgba(255,255,255,.3803921569);margin-left:10px}.toolbar .toolbar-icon{height:30px;width:30px;display:flex;align-items:center;justify-content:center;cursor:pointer}.toolbar .toolbar-icon co-icon ::ng-deep{width:20px;height:20px}.toolbar .toolbar-icon co-icon ::ng-deep svg,.toolbar .toolbar-icon co-icon ::ng-deep path{fill:#fff}.toolbar .toolbar-icon co-icon.loading-green ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-green ::ng-deep path{fill:#74b77f}.toolbar .toolbar-icon co-icon.loading-orange ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-orange ::ng-deep path{fill:#f17300}.toolbar .toolbar-icon co-icon.loading-yellow ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-yellow ::ng-deep path{fill:#cc2936}.toolbar .toolbar-icon co-icon.loading-red ::ng-deep svg,.toolbar .toolbar-icon co-icon.loading-red ::ng-deep path{fill:#cc2936}.toolbar .toolbar-icon.search co-icon{height:30px;width:30px}.toolbar .toolbar-icon.disabled{cursor:default}.toolbar .toolbar-icon.disabled co-icon ::ng-deep svg{fill:#00000042}.toolbar-logo{height:20px}.secondary-logo{margin-left:20px}.toolbar__nav{display:flex;flex-direction:row;padding-top:0}.toolbar__nav .mat-mdc-list-item{color:#fff;height:40px}.toolbar-row{flex:auto;display:flex;flex-direction:column;padding:0;pointer-events:none;position:relative;align-items:baseline;height:100%}::ng-deep mat-toolbar-row .toolbar--secondary{width:50px;padding:15px 0;flex-direction:column;background:#17253391;height:100%;gap:5px}::ng-deep mat-toolbar-row .toolbar--secondary button ::ng-deep{width:30px;height:30px;line-height:30px;color:#fff;display:flex;justify-content:center}::ng-deep mat-toolbar-row .toolbar--secondary .add-to-cart-button button ::ng-deep{color:#da9803}.toolbar--secondary .drawer{flex:auto;pointer-events:none;background:transparent}.wip-card{margin-left:5px;padding:0 10px;color:#fff;background-color:#7a828a}.wip-card .mat-mdc-card-content{font-size:12px}.drawer-container{position:static;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.drawer{width:420px;padding:16px;display:flex;flex-direction:column;left:50px}::ng-deep rp-category-library .mat-mdc-list-item ::ng-deep{border-color:#747c84}::ng-deep rp-category-library .mdc-list-item__primary-text{color:#000}::ng-deep rp-category-library .mdc-list-item:hover .mdc-list-item__primary-text{color:#000}.toolbar,.toolbar--secondary>*,.drawer-container>*,.drawer>*{pointer-events:all}.drawer__button{min-width:initial;padding:0;border:none;position:absolute;top:0;right:0;border-radius:50%}.blinker{animation:blinker 1s linear infinite}.badge-tooltip{position:relative}.badge-tooltip .mat-badge{position:absolute;margin:0;display:flex;align-items:center;justify-content:center;right:-2px;bottom:13px}.badge-tooltip .mat-badge .mat-badge-content{background-color:transparent;color:#b71c1c;border:1px solid #b71c1c;animation:bounce 2s ease-out;animation-iteration-count:infinite;right:initial;left:initial;position:relative;height:12px;width:12px;line-height:12px;font-size:10px;bottom:initial}::ng-deep .tooltip-red{background:#b71c1c}@keyframes bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-20px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes blinker{50%{opacity:0}}::ng-deep .mat-mdc-menu-panel{width:256px!important}::ng-deep .mat-mdc-menu-panel .mat-mdc-menu-content{display:flex;flex-direction:column;padding-left:10px;padding-right:10px}::ng-deep mat-drawer-content.mat-drawer-content{display:flex;height:100%;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i23.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i23.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i27$1.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i27$1.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i27$1.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i2$1.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i29.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i29.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i30.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i30.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i31$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i5$1.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { kind: "directive", type: i33.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: LimitedModeMessageComponent, selector: "limited-mode-message", outputs: ["closeClicked"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
48857
48932
  trigger('showToast', [
48858
48933
  state('void', style({ 'transform-origin': 'top center', transform: 'translate(-50%, -100%)' })),
48859
48934
  state('*', style({ 'transform-origin': 'top center', transform: 'translate(-50%, 0)' })),
@@ -49458,7 +49533,7 @@ class ProductCatalogComponent {
49458
49533
  </button>
49459
49534
  </div>
49460
49535
  }
49461
- `, isInline: true, styles: [":host{display:none;z-index:99;overflow:hidden}:host .layer{pointer-events:all!important;overflow-y:hidden;display:flex;flex-direction:column}:host .product-catalog-wrapper{display:flex;flex-direction:column;height:100%;padding:60px 30px 30px;width:100%;box-sizing:border-box}:host .product-catalog-wrapper .catalog-button-wrapper{font-size:16px;margin-bottom:20px}:host .product-catalog-wrapper .co-catalog-external-source{display:flex;flex-basis:100%}:host .own-collection-button-wrapper{cursor:pointer}:host .own-collection-button-wrapper .own-collection-description{font-size:12px;font-weight:700;text-shadow:none;text-transform:capitalize;margin:10px 0}:host .own-collection-button-wrapper .co-image{padding:25px;background:#3760a1;border-radius:10px}:host.shown{display:inline-block;position:relative;top:0;left:50px;width:calc(100% - 50px);height:calc(100vh + -0px);background-color:#fff}:host.no-offset{left:0;width:100%;z-index:100}:host .ione-catalog{display:block;overflow:hidden}:host .ione-catalog ::ng-deep app-catalog{overflow:hidden}:host .catalog-button-wrapper .back-button,:host .catalog-button-wrapper .refresh-button{cursor:pointer;display:inline-block;font-weight:700}:host .catalog-button-wrapper .back-button .refresh-button-span,:host .catalog-button-wrapper .back-button .back-button-span,:host .catalog-button-wrapper .refresh-button .refresh-button-span,:host .catalog-button-wrapper .refresh-button .back-button-span{vertical-align:top;line-height:25px;margin:10px 5px 0}:host .catalog-button-wrapper .button-spacer{display:inline-block;margin:0 10px}:host .product-catalog-wrapper{overflow:auto}:host .hide-catalog{position:absolute;top:50px;right:15px;z-index:100}.co-catalog-external-sources .external-source-item .co-image img{object-fit:cover}::ng-deep .co-catalog-navigation{position:relative}::ng-deep .co-catalog-navigation .navigation-overlay-wrapper{position:absolute!important;left:-40px!important;padding:20px 40px;grid-column-gap:60px}::ng-deep co-pagination-bar .pagination{box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.ImageComponent, selector: "co-image", inputs: ["source", "placeHolder"] }, { kind: "component", type: i7.CatalogExternalSourcesComponent, selector: "co-catalog-external-sources", inputs: ["isStandalone", "embedded", "currentTransactionBranchId"], outputs: ["externalSourceClick", "catalogsLoaded"] }, { kind: "component", type: ProductOwnCollectionComponent, selector: "rp-product-own-collection", inputs: ["settings", "generalFilterOrders", "purchaseFilterOrders", "logisticsFilterOrders"], outputs: ["articleClick", "arButtonClick"] }, { kind: "component", type: i7.CatalogExternalSourceComponent, selector: "co-catalog-external-source", inputs: ["catalogDefinition", "user", "externalCatalogStartupInfo", "title", "subTitle", "searchPlaceholder", "tempFilter", "showNavigation", "options", "embedded", "languageCode", "name"], outputs: ["articleClick", "addArticleClick", "lookAtArticleClick", "iFrameFeedbackReceived"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: AppendPipe, name: "append" }] }); }
49536
+ `, isInline: true, styles: [":host{display:none;z-index:99;overflow:hidden}:host .layer{pointer-events:all!important;overflow-y:hidden;display:flex;flex-direction:column}:host .product-catalog-wrapper{display:flex;flex-direction:column;height:100%;padding:60px 30px 30px;width:100%;box-sizing:border-box}:host .product-catalog-wrapper .catalog-button-wrapper{font-size:16px;margin-bottom:20px}:host .product-catalog-wrapper .co-catalog-external-source{display:flex;flex-basis:100%}:host .own-collection-button-wrapper{cursor:pointer}:host .own-collection-button-wrapper .own-collection-description{font-size:12px;font-weight:700;text-shadow:none;text-transform:capitalize;margin:10px 0}:host .own-collection-button-wrapper .co-image{padding:25px;background:#3760a1;border-radius:10px}:host.shown{display:inline-block;position:relative;top:0;left:50px;width:calc(100% - 50px);height:calc(100vh + -0px);background-color:#fff}:host.no-offset{left:0;width:100%;z-index:100}:host .ione-catalog{display:block;overflow:hidden}:host .ione-catalog ::ng-deep app-catalog{overflow:hidden}:host .catalog-button-wrapper .back-button,:host .catalog-button-wrapper .refresh-button{cursor:pointer;display:inline-block;font-weight:700}:host .catalog-button-wrapper .back-button .refresh-button-span,:host .catalog-button-wrapper .back-button .back-button-span,:host .catalog-button-wrapper .refresh-button .refresh-button-span,:host .catalog-button-wrapper .refresh-button .back-button-span{vertical-align:top;line-height:25px;margin:10px 5px 0}:host .catalog-button-wrapper .button-spacer{display:inline-block;margin:0 10px}:host .product-catalog-wrapper{overflow:auto}:host .hide-catalog{position:absolute;top:50px;right:15px;z-index:100}.co-catalog-external-sources .external-source-item .co-image img{object-fit:cover}::ng-deep .co-catalog-navigation{position:relative}::ng-deep .co-catalog-navigation .navigation-overlay-wrapper{position:absolute!important;left:-40px!important;padding:20px 40px;grid-column-gap:60px}::ng-deep co-pagination-bar .pagination{box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5$1.ImageComponent, selector: "co-image", inputs: ["source", "placeHolder"] }, { kind: "component", type: i7.CatalogExternalSourcesComponent, selector: "co-catalog-external-sources", inputs: ["isStandalone", "embedded", "currentTransactionBranchId"], outputs: ["externalSourceClick", "catalogsLoaded"] }, { kind: "component", type: ProductOwnCollectionComponent, selector: "rp-product-own-collection", inputs: ["settings", "generalFilterOrders", "purchaseFilterOrders", "logisticsFilterOrders"], outputs: ["articleClick", "arButtonClick"] }, { kind: "component", type: i7.CatalogExternalSourceComponent, selector: "co-catalog-external-source", inputs: ["catalogDefinition", "user", "externalCatalogStartupInfo", "title", "subTitle", "searchPlaceholder", "tempFilter", "showNavigation", "options", "embedded", "languageCode", "name"], outputs: ["articleClick", "addArticleClick", "lookAtArticleClick", "iFrameFeedbackReceived"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: AppendPipe, name: "append" }] }); }
49462
49537
  }
49463
49538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ProductCatalogComponent, decorators: [{
49464
49539
  type: Component,
@@ -49856,7 +49931,7 @@ class HomedecoratorComponent {
49856
49931
  _initConnection() {
49857
49932
  this._homedecoratorService.init(this._settings);
49858
49933
  }
49859
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HomedecoratorComponent, deps: [{ token: HomedecoratorAppService }, { token: HomedecoratorConnectorService }, { token: AppStateService }, { token: PresetsService }, { token: ScreenSizeAnalysisService }, { token: i3$2.MatIconRegistry }, { token: i1$1.DomSanitizer }, { token: MessageBusService }, { token: HomedecoratorService }, { token: HomedecoratorAppEventService, optional: true, skipSelf: true }, { token: HomedecoratorAppEventService, optional: true, self: true }, { token: IntegrationService }, { token: SceneService }, { token: WebWorkerService }, { token: ConfigurationPresetLoadService }], target: i0.ɵɵFactoryTarget.Component }); }
49934
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HomedecoratorComponent, deps: [{ token: HomedecoratorAppService }, { token: HomedecoratorConnectorService }, { token: AppStateService }, { token: PresetsService }, { token: ScreenSizeAnalysisService }, { token: i5.MatIconRegistry }, { token: i1$1.DomSanitizer }, { token: MessageBusService }, { token: HomedecoratorService }, { token: HomedecoratorAppEventService, optional: true, skipSelf: true }, { token: HomedecoratorAppEventService, optional: true, self: true }, { token: IntegrationService }, { token: SceneService }, { token: WebWorkerService }, { token: ConfigurationPresetLoadService }], target: i0.ɵɵFactoryTarget.Component }); }
49860
49935
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: HomedecoratorComponent, isStandalone: false, selector: "co-homedecorator", inputs: { generalFilterOrders: "generalFilterOrders", purchaseFilterOrders: "purchaseFilterOrders", logisticsFilterOrders: "logisticsFilterOrders", initCommunication: "initCommunication", projectToLoad: "projectToLoad", shareButton: "shareButton", loadWithConfigurationPreset: "loadWithConfigurationPreset", settings: "settings" }, host: { listeners: { "document:keyup": "keyup($event)" }, properties: { "class.co-homedecorator": "this.showClass" } }, providers: [
49861
49936
  APPLICATION_SERVICES_PROVIDERS
49862
49937
  ], ngImport: i0, template: `
@@ -49950,7 +50025,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
49950
50025
  ],
49951
50026
  standalone: false
49952
50027
  }]
49953
- }], ctorParameters: () => [{ type: HomedecoratorAppService }, { type: HomedecoratorConnectorService }, { type: AppStateService }, { type: PresetsService }, { type: ScreenSizeAnalysisService }, { type: i3$2.MatIconRegistry }, { type: i1$1.DomSanitizer }, { type: MessageBusService }, { type: HomedecoratorService }, { type: HomedecoratorAppEventService, decorators: [{
50028
+ }], ctorParameters: () => [{ type: HomedecoratorAppService }, { type: HomedecoratorConnectorService }, { type: AppStateService }, { type: PresetsService }, { type: ScreenSizeAnalysisService }, { type: i5.MatIconRegistry }, { type: i1$1.DomSanitizer }, { type: MessageBusService }, { type: HomedecoratorService }, { type: HomedecoratorAppEventService, decorators: [{
49954
50029
  type: Optional
49955
50030
  }, {
49956
50031
  type: SkipSelf
@@ -50005,7 +50080,7 @@ class DebugComponent {
50005
50080
  return this.debugService.getFramesMeasuredAmount();
50006
50081
  }
50007
50082
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DebugComponent, deps: [{ token: HomedecoratorSettingsService }, { token: DebugService }], target: i0.ɵɵFactoryTarget.Component }); }
50008
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DebugComponent, isStandalone: false, selector: "rp-debug", ngImport: i0, template: "@if (settingsService.settings?.options?.xrDebug) {\r\n @if (debugService.debugMessages.length > 0) {\r\n <div class=\"debug-window-wrapper\" @showMessages>\r\n <h3 [textContent]=\"'Debug messages'\"></h3>\r\n <ul>\r\n @for (message of debugService.debugMessages; track message) {\r\n <li>\r\n <span [textContent]=\"message\"></span>\r\n </li>\r\n }\r\n </ul>\r\n <div class=\"button-wrapper\">\r\n <button mat-icon-button\r\n (click)=\"clearMessages()\"\r\n matTooltip=\"{{'DELETE' | localize}}\"\r\n [disabled]=\"debugService.debugMessages.length < 1\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"debug-window-wrapper fps\">\r\n <button (click)=\"startToggle()\">START/PAUSE</button>\r\n <button (click)=\"resetMeasurements()\">RESET</button>\r\n <h5>Avg frame render time: {{getAverageRenderTime()}}ms ({{getFramesMeasuredAmount()}} frames)</h5>\r\n </div>\r\n}\r\n", styles: [":host{z-index:2}.debug-window-wrapper{padding:10px;position:absolute;top:64px;right:0;background:#0101011a;width:300px;overflow-y:auto}.debug-window-wrapper ul{margin:0;padding:0}.debug-window-wrapper li{list-style:none}.debug-window-wrapper li:before{content:\"-\"}.fps{top:245px}\n"], dependencies: [{ kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
50083
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DebugComponent, isStandalone: false, selector: "rp-debug", ngImport: i0, template: "@if (settingsService.settings?.options?.xrDebug) {\r\n @if (debugService.debugMessages.length > 0) {\r\n <div class=\"debug-window-wrapper\" @showMessages>\r\n <h3 [textContent]=\"'Debug messages'\"></h3>\r\n <ul>\r\n @for (message of debugService.debugMessages; track message) {\r\n <li>\r\n <span [textContent]=\"message\"></span>\r\n </li>\r\n }\r\n </ul>\r\n <div class=\"button-wrapper\">\r\n <button mat-icon-button\r\n (click)=\"clearMessages()\"\r\n matTooltip=\"{{'DELETE' | localize}}\"\r\n [disabled]=\"debugService.debugMessages.length < 1\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"debug-window-wrapper fps\">\r\n <button (click)=\"startToggle()\">START/PAUSE</button>\r\n <button (click)=\"resetMeasurements()\">RESET</button>\r\n <h5>Avg frame render time: {{getAverageRenderTime()}}ms ({{getFramesMeasuredAmount()}} frames)</h5>\r\n </div>\r\n}\r\n", styles: [":host{z-index:2}.debug-window-wrapper{padding:10px;position:absolute;top:64px;right:0;background:#0101011a;width:300px;overflow-y:auto}.debug-window-wrapper ul{margin:0;padding:0}.debug-window-wrapper li{list-style:none}.debug-window-wrapper li:before{content:\"-\"}.fps{top:245px}\n"], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], animations: [
50009
50084
  trigger('showMessages', [
50010
50085
  state('void', style({ 'right': '-100%' })),
50011
50086
  state('*', style({ 'right': '0' })),
@@ -50885,7 +50960,7 @@ class EditApplyComponent {
50885
50960
  this.toggleChange.emit(event);
50886
50961
  }
50887
50962
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EditApplyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EditApplyComponent, isStandalone: false, selector: "rp-edit-apply", inputs: { watched: "watched", disable: "disable" }, outputs: { cancel: "cancel", apply: "apply", toggleChange: "toggleChange" }, ngImport: i0, template: "@if (!checked) {\r\n <mat-button-toggle\r\n (change)=\"toggle($event)\">\r\n <mat-icon class=\"homedecorator-material-icons\">mode_edit</mat-icon>\r\n <span>{{'EDIT' | localize}}</span>\r\n </mat-button-toggle>\r\n}\r\n@if (checked) {\r\n <article>\r\n <button mat-raised-button (click)=\"onCancel()\">\r\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\r\n </button>\r\n <button mat-raised-button\r\n [disabled]=\"!watched || disable\"\r\n (click)=\"onApply()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">done</mat-icon>\r\n </button>\r\n </article>\r\n}\r\n", styles: [""], dependencies: [{ 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: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
50963
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: EditApplyComponent, isStandalone: false, selector: "rp-edit-apply", inputs: { watched: "watched", disable: "disable" }, outputs: { cancel: "cancel", apply: "apply", toggleChange: "toggleChange" }, ngImport: i0, template: "@if (!checked) {\r\n <mat-button-toggle\r\n (change)=\"toggle($event)\">\r\n <mat-icon class=\"homedecorator-material-icons\">mode_edit</mat-icon>\r\n <span>{{'EDIT' | localize}}</span>\r\n </mat-button-toggle>\r\n}\r\n@if (checked) {\r\n <article>\r\n <button mat-raised-button (click)=\"onCancel()\">\r\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\r\n </button>\r\n <button mat-raised-button\r\n [disabled]=\"!watched || disable\"\r\n (click)=\"onApply()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">done</mat-icon>\r\n </button>\r\n </article>\r\n}\r\n", styles: [""], dependencies: [{ 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: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
50889
50964
  }
50890
50965
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: EditApplyComponent, decorators: [{
50891
50966
  type: Component,
@@ -51737,7 +51812,7 @@ class CameraSettingsDialogComponent {
51737
51812
  <button mat-raised-button color="primary" (click)="exportSettings()">{{'EXPORT_SETTINGS' | localize}}</button>
51738
51813
  </div>
51739
51814
  </div>
51740
- `, isInline: true, styles: [":host .dialog-form-wrapper{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr 1fr 1fr;gap:0 15px;grid-template-areas:\". .\" \". .\" \". .\" \". .\" \". .\"}:host .input-button-wrapper{display:flex;align-items:center;justify-content:space-between}:host .input-button-wrapper button{margin-bottom:21.5px;margin-right:10px}:host .input-button-wrapper .mat-mdc-form-field{width:200px}\n"], dependencies: [{ kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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: i2$3.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: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
51815
+ `, isInline: true, styles: [":host .dialog-form-wrapper{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr 1fr 1fr;gap:0 15px;grid-template-areas:\". .\" \". .\" \". .\" \". .\" \". .\"}:host .input-button-wrapper{display:flex;align-items:center;justify-content:space-between}:host .input-button-wrapper button{margin-bottom:21.5px;margin-right:10px}:host .input-button-wrapper .mat-mdc-form-field{width:200px}\n"], dependencies: [{ kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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: i2$3.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: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }] }); }
51741
51816
  }
51742
51817
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: CameraSettingsDialogComponent, decorators: [{
51743
51818
  type: Component,
@@ -52642,7 +52717,7 @@ class HomedecoratorModule {
52642
52717
  PluginsModule,
52643
52718
  DialogModule,
52644
52719
  A11yModule,
52645
- ProductConfiguratorModule, i5.CoreComponentsTranslationModule, LiteSelectorModule], exports: [HomedecoratorComponent] }); }
52720
+ ProductConfiguratorModule, i5$1.CoreComponentsTranslationModule, LiteSelectorModule], exports: [HomedecoratorComponent] }); }
52646
52721
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: HomedecoratorModule, imports: [CommonModule,
52647
52722
  ProgressBarModule,
52648
52723
  LoadingOverlayModule,