@colijnit/homedecorator 256.1.14 → 256.1.16

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.
@@ -14,5 +14,5 @@ export declare class CustomFloorGroupResult {
14
14
  showErrors: boolean;
15
15
  toggle: boolean;
16
16
  count: number;
17
- constructor(sku: string, name: string);
17
+ constructor(sku?: string, name?: string);
18
18
  }
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('textdiff-patch'), require('rxjs'), require('three'), require('three/examples/jsm/loaders/OBJLoader'), require('three/examples/jsm/loaders/MTLLoader'), require('three/examples/jsm/loaders/GLTFLoader'), require('three/examples/jsm/exporters/GLTFExporter'), require('three/examples/jsm/loaders/DRACOLoader'), require('three/examples/jsm/loaders/KTX2Loader'), require('three/examples/jsm/exporters/USDZExporter'), require('polygon-tools'), require('@angular/material/dialog'), require('@angular/material/list'), require('@angular/material/core'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('@colijnit/configuratorapi/build/enum/node-type.enum'), require('@colijnit/configuratorapi/build/model/configurator-statistics-environment'), require('@colijnit/ioneconnector/build/model/options'), require('@colijnit/ioneconnector/build/model/data-service-response-data'), require('@colijnit/configuratorapi/build/model/frozen-article'), require('@colijnit/configuratorapi/build/model/selection'), require('@colijnit/configuratorapi/build/model/answer-price'), require('@colijnit/configuratorapi/build/model/article'), require('@colijnit/configuratorapi/build/model/deco-node'), require('@colijnit/configuratorapi/build/model/skip-button-info'), require('@colijnit/configuratorapi'), require('@colijnit/mainapi'), require('@colijnit/articleapi/build/articles'), require('@colijnit/configuratorapi/build/model/article-text.bo'), require('@colijnit/ioneconnector/build/service/business-object-factory'), require('@colijnit/ioneconnector/build/utils/image-utils'), require('@colijnit/articleapi/build/model/external-catalog-startup-info'), require('@colijnit/articleapi/build/model/catalog-definition.bo'), require('@colijnit/articleapi/build/model/external-source.bo'), require('@colijnit/articleapi/build/model/article-full-object'), require('@colijnit/configuratorapi/build/model/article-category'), require('@colijnit/articleapi/build/model/article-flat.bo'), require('@colijnit/mainapi/build/model/co-domain-value.bo'), require('@colijnit/mainapi/build/enum/domain-name.enum'), require('@colijnit/ioneconnector/build/model/object-configuration'), require('@colijnit/articleapi/build/model/article-extended-request'), require('@colijnit/articleapi/build/model/article-extended.bo'), require('@colijnit/mainapi/build/enum/internal-param.enum'), require('@colijnit/configuratorapi/build/utils/image-utils'), require('@angular/common/http'), require('axios'), require('@colijnit/configuratorapi/build/enum/hdeco-positioning.enum'), require('three/examples/jsm/geometries/TextGeometry'), require('@colijnit/configuratorapi/build/enum/hdeco-placement.enum'), require('@tweenjs/tween.js'), require('three-gpu-pathtracer'), require('three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js'), require('three/examples/jsm/loaders/FontLoader'), require('three/examples/jsm/webxr/XRControllerModelFactory'), require('three/examples/jsm/postprocessing/OutlinePass'), require('three/examples/jsm/postprocessing/EffectComposer'), require('three/examples/jsm/postprocessing/RenderPass'), require('three/examples/jsm/postprocessing/OutputPass'), require('three/examples/jsm/libs/lil-gui.module.min'), require('n8ao'), require('three/examples/jsm/shaders/FXAAShader'), require('three/examples/jsm/postprocessing/ShaderPass'), require('three/examples/jsm/shaders/BlendShader'), require('three/examples/jsm/loaders/RGBELoader'), require('rxjs/internal/observable/fromEvent'), require('rxjs/operators'), require('rxjs/internal/observable/of'), require('three/examples/jsm/utils/BufferGeometryUtils.js'), require('three/examples/jsm/loaders/SVGLoader'), require('@angular/platform-browser'), require('@colijnit/configuratorapi/build/enum/deco-node-type.enum'), require('jszip'), require('@colijnit/configuratorapi/build/enum/deco-node-kind.enum'), require('@angular/material/checkbox'), require('@angular/material/button'), require('@angular/forms'), require('three/examples/jsm/utils/BufferGeometryUtils'), require('three-mesh-bvh'), require('@angular/material/icon'), require('@angular/common'), require('ngx-device-detector'), require('three/examples/jsm/geometries/DecalGeometry'), require('fabric'), require('delaunator'), require('three/examples/jsm/helpers/VertexNormalsHelper'), require('three/src/constants'), require('@angular/animations'), require('@colijnit/corecomponents'), require('@angular/material/form-field'), require('@angular/material/select'), require('@angular/material/tooltip'), require('@colijnit/corecomponents_v12'), require('@angular/material/slider'), require('@angular/material/input'), require('dat.gui'), require('@angular/flex-layout/flex'), require('@angular/material/progress-bar'), require('@angular/material/button-toggle'), require('@angular/material/snack-bar'), require('@angular/material/slide-toggle'), require('@angular/material/divider'), require('browser-image-compression'), require('@angular/material/tabs'), require('jspdf'), require('jspdf-autotable'), require('@angular/material/grid-list'), require('@angular/flex-layout/extended'), require('ngx-color/chrome'), require('@angular/router'), require('@angular/cdk/portal'), require('file-saver'), require('ng2-pdf-viewer'), require('html2canvas'), require('three/examples/jsm/controls/OrbitControls'), require('three/examples/jsm/loaders/FBXLoader'), require('three/examples/jsm/loaders/TDSLoader'), require('three/examples/jsm/loaders/STLLoader'), require('ngx-lightbox'), require('@angular/material/toolbar'), require('@angular/material/menu'), require('@angular/material/card'), require('@angular/material/sidenav'), require('@angular/material/badge'), require('@colijnit/articleapi/build/model/external-catalog-startup-info-request'), require('@colijnit/catalog'), require('@angular/material/progress-spinner'), require('@angular/flex-layout'), require('@angular/cdk/drag-drop'), require('@angular/material/radio'), require('@angular/cdk/a11y')) :
3
- typeof define === 'function' && define.amd ? define('@colijnit/homedecorator', ['exports', '@angular/core', 'textdiff-patch', 'rxjs', 'three', 'three/examples/jsm/loaders/OBJLoader', 'three/examples/jsm/loaders/MTLLoader', 'three/examples/jsm/loaders/GLTFLoader', 'three/examples/jsm/exporters/GLTFExporter', 'three/examples/jsm/loaders/DRACOLoader', 'three/examples/jsm/loaders/KTX2Loader', 'three/examples/jsm/exporters/USDZExporter', 'polygon-tools', '@angular/material/dialog', '@angular/material/list', '@angular/material/core', '@colijnit/ioneconnector/build/utils/string-utils', '@colijnit/configuratorapi/build/enum/node-type.enum', '@colijnit/configuratorapi/build/model/configurator-statistics-environment', '@colijnit/ioneconnector/build/model/options', '@colijnit/ioneconnector/build/model/data-service-response-data', '@colijnit/configuratorapi/build/model/frozen-article', '@colijnit/configuratorapi/build/model/selection', '@colijnit/configuratorapi/build/model/answer-price', '@colijnit/configuratorapi/build/model/article', '@colijnit/configuratorapi/build/model/deco-node', '@colijnit/configuratorapi/build/model/skip-button-info', '@colijnit/configuratorapi', '@colijnit/mainapi', '@colijnit/articleapi/build/articles', '@colijnit/configuratorapi/build/model/article-text.bo', '@colijnit/ioneconnector/build/service/business-object-factory', '@colijnit/ioneconnector/build/utils/image-utils', '@colijnit/articleapi/build/model/external-catalog-startup-info', '@colijnit/articleapi/build/model/catalog-definition.bo', '@colijnit/articleapi/build/model/external-source.bo', '@colijnit/articleapi/build/model/article-full-object', '@colijnit/configuratorapi/build/model/article-category', '@colijnit/articleapi/build/model/article-flat.bo', '@colijnit/mainapi/build/model/co-domain-value.bo', '@colijnit/mainapi/build/enum/domain-name.enum', '@colijnit/ioneconnector/build/model/object-configuration', '@colijnit/articleapi/build/model/article-extended-request', '@colijnit/articleapi/build/model/article-extended.bo', '@colijnit/mainapi/build/enum/internal-param.enum', '@colijnit/configuratorapi/build/utils/image-utils', '@angular/common/http', 'axios', '@colijnit/configuratorapi/build/enum/hdeco-positioning.enum', 'three/examples/jsm/geometries/TextGeometry', '@colijnit/configuratorapi/build/enum/hdeco-placement.enum', '@tweenjs/tween.js', 'three-gpu-pathtracer', 'three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js', 'three/examples/jsm/loaders/FontLoader', 'three/examples/jsm/webxr/XRControllerModelFactory', 'three/examples/jsm/postprocessing/OutlinePass', 'three/examples/jsm/postprocessing/EffectComposer', 'three/examples/jsm/postprocessing/RenderPass', 'three/examples/jsm/postprocessing/OutputPass', 'three/examples/jsm/libs/lil-gui.module.min', 'n8ao', 'three/examples/jsm/shaders/FXAAShader', 'three/examples/jsm/postprocessing/ShaderPass', 'three/examples/jsm/shaders/BlendShader', 'three/examples/jsm/loaders/RGBELoader', 'rxjs/internal/observable/fromEvent', 'rxjs/operators', 'rxjs/internal/observable/of', 'three/examples/jsm/utils/BufferGeometryUtils.js', 'three/examples/jsm/loaders/SVGLoader', '@angular/platform-browser', '@colijnit/configuratorapi/build/enum/deco-node-type.enum', 'jszip', '@colijnit/configuratorapi/build/enum/deco-node-kind.enum', '@angular/material/checkbox', '@angular/material/button', '@angular/forms', 'three/examples/jsm/utils/BufferGeometryUtils', 'three-mesh-bvh', '@angular/material/icon', '@angular/common', 'ngx-device-detector', 'three/examples/jsm/geometries/DecalGeometry', 'fabric', 'delaunator', 'three/examples/jsm/helpers/VertexNormalsHelper', 'three/src/constants', '@angular/animations', '@colijnit/corecomponents', '@angular/material/form-field', '@angular/material/select', '@angular/material/tooltip', '@colijnit/corecomponents_v12', '@angular/material/slider', '@angular/material/input', 'dat.gui', '@angular/flex-layout/flex', '@angular/material/progress-bar', '@angular/material/button-toggle', '@angular/material/snack-bar', '@angular/material/slide-toggle', '@angular/material/divider', 'browser-image-compression', '@angular/material/tabs', 'jspdf', 'jspdf-autotable', '@angular/material/grid-list', '@angular/flex-layout/extended', 'ngx-color/chrome', '@angular/router', '@angular/cdk/portal', 'file-saver', 'ng2-pdf-viewer', 'html2canvas', 'three/examples/jsm/controls/OrbitControls', 'three/examples/jsm/loaders/FBXLoader', 'three/examples/jsm/loaders/TDSLoader', 'three/examples/jsm/loaders/STLLoader', 'ngx-lightbox', '@angular/material/toolbar', '@angular/material/menu', '@angular/material/card', '@angular/material/sidenav', '@angular/material/badge', '@colijnit/articleapi/build/model/external-catalog-startup-info-request', '@colijnit/catalog', '@angular/material/progress-spinner', '@angular/flex-layout', '@angular/cdk/drag-drop', '@angular/material/radio', '@angular/cdk/a11y'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.homedecorator = {}), global.ng.core, global.applyPatch, global.rxjs, global.THREE, global.OBJLoader, global.MTLLoader, global.GLTFLoader, global.GLTFExporter, global.DRACOLoader, global.KTX2Loader, global.USDZExporter, global.PolygonTools, global.ng.material.dialog, global.ng.material.list, global.ng.material.core, global.stringUtils, global.nodeType_enum, global.configuratorStatisticsEnvironment, global.options, global.dataServiceResponseData, global.frozenArticle, global.selection, global.answerPrice, global.article, global.decoNode, global.skipButtonInfo, global.configuratorapi, global.mainapi, global.articles, global.articleText_bo, global.businessObjectFactory, global.imageUtils, global.externalCatalogStartupInfo, global.catalogDefinition_bo, global.externalSource_bo, global.articleFullObject, global.articleCategory, global.articleFlat_bo, global.coDomainValue_bo, global.domainName_enum, global.objectConfiguration, global.articleExtendedRequest, global.articleExtended_bo, global.internalParam_enum, global.imageUtils$1, global.ng.common.http, global.axios, global.hdecoPositioning_enum, global.TextGeometry, global.hdecoPlacement_enum, global.TWEEN, global.threeGpuPathtracer, global.ParallelMeshBVHWorker_js, global.FontLoader, global.XRControllerModelFactory, global.OutlinePass, global.EffectComposer, global.RenderPass, global.OutputPass, global.GUI, global.n8ao, global.FXAAShader, global.ShaderPass, global.BlendShader, global.RGBELoader, global.rxjs["internal/observable/fromEvent"], global.rxjs.operators, global.rxjs["internal/observable/of"], global.BufferGeometryUtils, global.SVGLoader, global.ng.platformBrowser, global.decoNodeType_enum, global.JSZip, global.decoNodeKind_enum, global.ng.material.checkbox, global.ng.material.button, global.ng.forms, global.BufferGeometryUtils$1, global.threeMeshBvh, global.ng.material.icon, global.ng.common, global.i2$2, global.DecalGeometry, global.fabric, global.Delaunator, global.VertexNormalsHelper, global.constants, global.ng.animations, global.i4, global.ng.material.formField, global.ng.material.select, global.ng.material.tooltip, global.i2$3, global.ng.material.slider, global.ng.material.input, global.dat, global.ng.flexLayout.flex, global.ng.material.progressBar, global.ng.material.buttonToggle, global.ng.material.snackBar, global.ng.material.slideToggle, global.ng.material.divider, global.imageCompression, global.ng.material.tabs, global.jspdf, global.autoTable, global.ng.material.gridList, global.ng.flexLayout.extended, global.i1$3, global.ng.router, global.ng.cdk.portal, global.fileSaver, global.i6$1, global.html2canvas, global.OrbitControls, global.FBXLoader, global.TDSLoader, global.STLLoader, global.i1$4, global.ng.material.toolbar, global.ng.material.menu, global.ng.material.card, global.ng.material.sidenav, global.ng.material.badge, global.externalCatalogStartupInfoRequest, global.i7$3, global.ng.material.progressSpinner, global.ng.flexLayout, global.ng.cdk.dragDrop, global.ng.material.radio, global.ng.cdk.a11y));
5
- })(this, (function (exports, i0, applyPatch, rxjs, THREE, OBJLoader, MTLLoader, GLTFLoader, GLTFExporter, DRACOLoader, KTX2Loader, USDZExporter, PolygonTools, i1, i2, i3, stringUtils, nodeType_enum, configuratorStatisticsEnvironment, options, dataServiceResponseData, frozenArticle, selection, answerPrice, article, decoNode, skipButtonInfo, configuratorapi, mainapi, articles, articleText_bo, businessObjectFactory, imageUtils, externalCatalogStartupInfo, catalogDefinition_bo, externalSource_bo, articleFullObject, articleCategory, articleFlat_bo, coDomainValue_bo, domainName_enum, objectConfiguration, articleExtendedRequest, articleExtended_bo, internalParam_enum, imageUtils$1, i2$1, axios, hdecoPositioning_enum, TextGeometry, hdecoPlacement_enum, TWEEN, threeGpuPathtracer, ParallelMeshBVHWorker_js, FontLoader, XRControllerModelFactory, OutlinePass, EffectComposer, RenderPass, OutputPass, GUI, n8ao, FXAAShader, ShaderPass, BlendShader, RGBELoader, fromEvent, operators, of, BufferGeometryUtils, SVGLoader, i1$1, decoNodeType_enum, JSZip, decoNodeKind_enum, i1$2, i3$1, i8, BufferGeometryUtils$1, threeMeshBvh, i5, i6, i2$2, DecalGeometry, fabric, Delaunator, VertexNormalsHelper, constants, animations, i4, i7, i9, i10, i2$3, i7$1, i16, dat, i15, i2$4, i4$1, i2$5, i10$1, i14, imageCompression, i3$3, jspdf, autoTable, i3$2, i7$2, i1$3, i5$1, i29, fileSaver, i6$1, html2canvas, OrbitControls, FBXLoader, TDSLoader, STLLoader, i1$4, i19, i22, i23, i27, i31, externalCatalogStartupInfoRequest, i7$3, i18, flexLayout, i10$2, radio, a11y) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('textdiff-patch'), require('rxjs'), require('three'), require('three/examples/jsm/loaders/OBJLoader'), require('three/examples/jsm/loaders/MTLLoader'), require('three/examples/jsm/loaders/GLTFLoader'), require('three/examples/jsm/exporters/GLTFExporter'), require('three/examples/jsm/loaders/DRACOLoader'), require('three/examples/jsm/loaders/KTX2Loader'), require('three/examples/jsm/exporters/USDZExporter'), require('polygon-tools'), require('@angular/material/dialog'), require('@angular/material/list'), require('@angular/material/core'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('three/examples/jsm/utils/BufferGeometryUtils'), require('@colijnit/configuratorapi/build/enum/node-type.enum'), require('@colijnit/configuratorapi/build/model/configurator-statistics-environment'), require('@colijnit/ioneconnector/build/model/options'), require('@colijnit/ioneconnector/build/model/data-service-response-data'), require('@colijnit/configuratorapi/build/model/frozen-article'), require('@colijnit/configuratorapi/build/model/selection'), require('@colijnit/configuratorapi/build/model/answer-price'), require('@colijnit/configuratorapi/build/model/article'), require('@colijnit/configuratorapi/build/model/deco-node'), require('@colijnit/configuratorapi/build/model/skip-button-info'), require('@colijnit/configuratorapi'), require('@colijnit/mainapi'), require('@colijnit/articleapi/build/articles'), require('@colijnit/configuratorapi/build/model/article-text.bo'), require('@colijnit/ioneconnector/build/service/business-object-factory'), require('@colijnit/ioneconnector/build/utils/image-utils'), require('@colijnit/articleapi/build/model/external-catalog-startup-info'), require('@colijnit/articleapi/build/model/catalog-definition.bo'), require('@colijnit/articleapi/build/model/external-source.bo'), require('@colijnit/articleapi/build/model/article-full-object'), require('@colijnit/configuratorapi/build/model/article-category'), require('@colijnit/articleapi/build/model/article-flat.bo'), require('@colijnit/mainapi/build/model/co-domain-value.bo'), require('@colijnit/mainapi/build/enum/domain-name.enum'), require('@colijnit/ioneconnector/build/model/object-configuration'), require('@colijnit/articleapi/build/model/article-extended-request'), require('@colijnit/articleapi/build/model/article-extended.bo'), require('@colijnit/mainapi/build/enum/internal-param.enum'), require('@colijnit/configuratorapi/build/utils/image-utils'), require('@angular/common/http'), require('axios'), require('@colijnit/configuratorapi/build/enum/hdeco-positioning.enum'), require('three/examples/jsm/geometries/TextGeometry'), require('@colijnit/configuratorapi/build/enum/hdeco-placement.enum'), require('@tweenjs/tween.js'), require('three-gpu-pathtracer'), require('three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js'), require('three/examples/jsm/loaders/FontLoader'), require('three/examples/jsm/webxr/XRControllerModelFactory'), require('three/examples/jsm/postprocessing/OutlinePass'), require('three/examples/jsm/postprocessing/EffectComposer'), require('three/examples/jsm/postprocessing/RenderPass'), require('three/examples/jsm/postprocessing/OutputPass'), require('three/examples/jsm/libs/lil-gui.module.min'), require('n8ao'), require('three/examples/jsm/shaders/FXAAShader'), require('three/examples/jsm/postprocessing/ShaderPass'), require('three/examples/jsm/shaders/BlendShader'), require('three/examples/jsm/loaders/RGBELoader'), require('rxjs/internal/observable/fromEvent'), require('rxjs/operators'), require('rxjs/internal/observable/of'), require('three/examples/jsm/utils/BufferGeometryUtils.js'), require('three/examples/jsm/loaders/SVGLoader'), require('@angular/platform-browser'), require('@colijnit/configuratorapi/build/enum/deco-node-type.enum'), require('jszip'), require('@colijnit/configuratorapi/build/enum/deco-node-kind.enum'), require('@angular/material/checkbox'), require('@angular/material/button'), require('@angular/forms'), require('three-mesh-bvh'), require('@angular/material/icon'), require('@angular/common'), require('ngx-device-detector'), require('three/examples/jsm/geometries/DecalGeometry'), require('fabric'), require('delaunator'), require('three/examples/jsm/helpers/VertexNormalsHelper'), require('three/src/constants'), require('@angular/animations'), require('@colijnit/corecomponents'), require('@angular/material/form-field'), require('@angular/material/select'), require('@angular/material/tooltip'), require('@colijnit/corecomponents_v12'), require('@angular/material/slider'), require('@angular/material/input'), require('dat.gui'), require('@angular/flex-layout/flex'), require('@angular/material/progress-bar'), require('@angular/material/button-toggle'), require('@angular/material/snack-bar'), require('@angular/material/slide-toggle'), require('@angular/material/divider'), require('browser-image-compression'), require('@angular/material/tabs'), require('jspdf'), require('jspdf-autotable'), require('@angular/material/grid-list'), require('@angular/flex-layout/extended'), require('ngx-color/chrome'), require('@angular/router'), require('@angular/cdk/portal'), require('file-saver'), require('ng2-pdf-viewer'), require('html2canvas'), require('three/examples/jsm/controls/OrbitControls'), require('three/examples/jsm/loaders/FBXLoader'), require('three/examples/jsm/loaders/TDSLoader'), require('three/examples/jsm/loaders/STLLoader'), require('ngx-lightbox'), require('@angular/material/toolbar'), require('@angular/material/menu'), require('@angular/material/card'), require('@angular/material/sidenav'), require('@angular/material/badge'), require('@colijnit/articleapi/build/model/external-catalog-startup-info-request'), require('@colijnit/catalog'), require('@angular/material/progress-spinner'), require('@angular/flex-layout'), require('@angular/cdk/drag-drop'), require('@angular/material/radio'), require('@angular/cdk/a11y')) :
3
+ typeof define === 'function' && define.amd ? define('@colijnit/homedecorator', ['exports', '@angular/core', 'textdiff-patch', 'rxjs', 'three', 'three/examples/jsm/loaders/OBJLoader', 'three/examples/jsm/loaders/MTLLoader', 'three/examples/jsm/loaders/GLTFLoader', 'three/examples/jsm/exporters/GLTFExporter', 'three/examples/jsm/loaders/DRACOLoader', 'three/examples/jsm/loaders/KTX2Loader', 'three/examples/jsm/exporters/USDZExporter', 'polygon-tools', '@angular/material/dialog', '@angular/material/list', '@angular/material/core', '@colijnit/ioneconnector/build/utils/string-utils', 'three/examples/jsm/utils/BufferGeometryUtils', '@colijnit/configuratorapi/build/enum/node-type.enum', '@colijnit/configuratorapi/build/model/configurator-statistics-environment', '@colijnit/ioneconnector/build/model/options', '@colijnit/ioneconnector/build/model/data-service-response-data', '@colijnit/configuratorapi/build/model/frozen-article', '@colijnit/configuratorapi/build/model/selection', '@colijnit/configuratorapi/build/model/answer-price', '@colijnit/configuratorapi/build/model/article', '@colijnit/configuratorapi/build/model/deco-node', '@colijnit/configuratorapi/build/model/skip-button-info', '@colijnit/configuratorapi', '@colijnit/mainapi', '@colijnit/articleapi/build/articles', '@colijnit/configuratorapi/build/model/article-text.bo', '@colijnit/ioneconnector/build/service/business-object-factory', '@colijnit/ioneconnector/build/utils/image-utils', '@colijnit/articleapi/build/model/external-catalog-startup-info', '@colijnit/articleapi/build/model/catalog-definition.bo', '@colijnit/articleapi/build/model/external-source.bo', '@colijnit/articleapi/build/model/article-full-object', '@colijnit/configuratorapi/build/model/article-category', '@colijnit/articleapi/build/model/article-flat.bo', '@colijnit/mainapi/build/model/co-domain-value.bo', '@colijnit/mainapi/build/enum/domain-name.enum', '@colijnit/ioneconnector/build/model/object-configuration', '@colijnit/articleapi/build/model/article-extended-request', '@colijnit/articleapi/build/model/article-extended.bo', '@colijnit/mainapi/build/enum/internal-param.enum', '@colijnit/configuratorapi/build/utils/image-utils', '@angular/common/http', 'axios', '@colijnit/configuratorapi/build/enum/hdeco-positioning.enum', 'three/examples/jsm/geometries/TextGeometry', '@colijnit/configuratorapi/build/enum/hdeco-placement.enum', '@tweenjs/tween.js', 'three-gpu-pathtracer', 'three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js', 'three/examples/jsm/loaders/FontLoader', 'three/examples/jsm/webxr/XRControllerModelFactory', 'three/examples/jsm/postprocessing/OutlinePass', 'three/examples/jsm/postprocessing/EffectComposer', 'three/examples/jsm/postprocessing/RenderPass', 'three/examples/jsm/postprocessing/OutputPass', 'three/examples/jsm/libs/lil-gui.module.min', 'n8ao', 'three/examples/jsm/shaders/FXAAShader', 'three/examples/jsm/postprocessing/ShaderPass', 'three/examples/jsm/shaders/BlendShader', 'three/examples/jsm/loaders/RGBELoader', 'rxjs/internal/observable/fromEvent', 'rxjs/operators', 'rxjs/internal/observable/of', 'three/examples/jsm/utils/BufferGeometryUtils.js', 'three/examples/jsm/loaders/SVGLoader', '@angular/platform-browser', '@colijnit/configuratorapi/build/enum/deco-node-type.enum', 'jszip', '@colijnit/configuratorapi/build/enum/deco-node-kind.enum', '@angular/material/checkbox', '@angular/material/button', '@angular/forms', 'three-mesh-bvh', '@angular/material/icon', '@angular/common', 'ngx-device-detector', 'three/examples/jsm/geometries/DecalGeometry', 'fabric', 'delaunator', 'three/examples/jsm/helpers/VertexNormalsHelper', 'three/src/constants', '@angular/animations', '@colijnit/corecomponents', '@angular/material/form-field', '@angular/material/select', '@angular/material/tooltip', '@colijnit/corecomponents_v12', '@angular/material/slider', '@angular/material/input', 'dat.gui', '@angular/flex-layout/flex', '@angular/material/progress-bar', '@angular/material/button-toggle', '@angular/material/snack-bar', '@angular/material/slide-toggle', '@angular/material/divider', 'browser-image-compression', '@angular/material/tabs', 'jspdf', 'jspdf-autotable', '@angular/material/grid-list', '@angular/flex-layout/extended', 'ngx-color/chrome', '@angular/router', '@angular/cdk/portal', 'file-saver', 'ng2-pdf-viewer', 'html2canvas', 'three/examples/jsm/controls/OrbitControls', 'three/examples/jsm/loaders/FBXLoader', 'three/examples/jsm/loaders/TDSLoader', 'three/examples/jsm/loaders/STLLoader', 'ngx-lightbox', '@angular/material/toolbar', '@angular/material/menu', '@angular/material/card', '@angular/material/sidenav', '@angular/material/badge', '@colijnit/articleapi/build/model/external-catalog-startup-info-request', '@colijnit/catalog', '@angular/material/progress-spinner', '@angular/flex-layout', '@angular/cdk/drag-drop', '@angular/material/radio', '@angular/cdk/a11y'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.homedecorator = {}), global.ng.core, global.applyPatch, global.rxjs, global.THREE, global.OBJLoader, global.MTLLoader, global.GLTFLoader, global.GLTFExporter, global.DRACOLoader, global.KTX2Loader, global.USDZExporter, global.PolygonTools, global.ng.material.dialog, global.ng.material.list, global.ng.material.core, global.stringUtils, global.BufferGeometryUtils, global.nodeType_enum, global.configuratorStatisticsEnvironment, global.options, global.dataServiceResponseData, global.frozenArticle, global.selection, global.answerPrice, global.article, global.decoNode, global.skipButtonInfo, global.configuratorapi, global.mainapi, global.articles, global.articleText_bo, global.businessObjectFactory, global.imageUtils, global.externalCatalogStartupInfo, global.catalogDefinition_bo, global.externalSource_bo, global.articleFullObject, global.articleCategory, global.articleFlat_bo, global.coDomainValue_bo, global.domainName_enum, global.objectConfiguration, global.articleExtendedRequest, global.articleExtended_bo, global.internalParam_enum, global.imageUtils$1, global.ng.common.http, global.axios, global.hdecoPositioning_enum, global.TextGeometry, global.hdecoPlacement_enum, global.TWEEN, global.threeGpuPathtracer, global.ParallelMeshBVHWorker_js, global.FontLoader, global.XRControllerModelFactory, global.OutlinePass, global.EffectComposer, global.RenderPass, global.OutputPass, global.GUI, global.n8ao, global.FXAAShader, global.ShaderPass, global.BlendShader, global.RGBELoader, global.rxjs["internal/observable/fromEvent"], global.rxjs.operators, global.rxjs["internal/observable/of"], global.BufferGeometryUtils$1, global.SVGLoader, global.ng.platformBrowser, global.decoNodeType_enum, global.JSZip, global.decoNodeKind_enum, global.ng.material.checkbox, global.ng.material.button, global.ng.forms, global.threeMeshBvh, global.ng.material.icon, global.ng.common, global.i2$2, global.DecalGeometry, global.fabric, global.Delaunator, global.VertexNormalsHelper, global.constants, global.ng.animations, global.i4, global.ng.material.formField, global.ng.material.select, global.ng.material.tooltip, global.i2$3, global.ng.material.slider, global.ng.material.input, global.dat, global.ng.flexLayout.flex, global.ng.material.progressBar, global.ng.material.buttonToggle, global.ng.material.snackBar, global.ng.material.slideToggle, global.ng.material.divider, global.imageCompression, global.ng.material.tabs, global.jspdf, global.autoTable, global.ng.material.gridList, global.ng.flexLayout.extended, global.i1$3, global.ng.router, global.ng.cdk.portal, global.fileSaver, global.i6$1, global.html2canvas, global.OrbitControls, global.FBXLoader, global.TDSLoader, global.STLLoader, global.i1$4, global.ng.material.toolbar, global.ng.material.menu, global.ng.material.card, global.ng.material.sidenav, global.ng.material.badge, global.externalCatalogStartupInfoRequest, global.i7$3, global.ng.material.progressSpinner, global.ng.flexLayout, global.ng.cdk.dragDrop, global.ng.material.radio, global.ng.cdk.a11y));
5
+ })(this, (function (exports, i0, applyPatch, rxjs, THREE, OBJLoader, MTLLoader, GLTFLoader, GLTFExporter, DRACOLoader, KTX2Loader, USDZExporter, PolygonTools, i1, i2, i3, stringUtils, BufferGeometryUtils, nodeType_enum, configuratorStatisticsEnvironment, options, dataServiceResponseData, frozenArticle, selection, answerPrice, article, decoNode, skipButtonInfo, configuratorapi, mainapi, articles, articleText_bo, businessObjectFactory, imageUtils, externalCatalogStartupInfo, catalogDefinition_bo, externalSource_bo, articleFullObject, articleCategory, articleFlat_bo, coDomainValue_bo, domainName_enum, objectConfiguration, articleExtendedRequest, articleExtended_bo, internalParam_enum, imageUtils$1, i2$1, axios, hdecoPositioning_enum, TextGeometry, hdecoPlacement_enum, TWEEN, threeGpuPathtracer, ParallelMeshBVHWorker_js, FontLoader, XRControllerModelFactory, OutlinePass, EffectComposer, RenderPass, OutputPass, GUI, n8ao, FXAAShader, ShaderPass, BlendShader, RGBELoader, fromEvent, operators, of, BufferGeometryUtils$1, SVGLoader, i1$1, decoNodeType_enum, JSZip, decoNodeKind_enum, i1$2, i3$1, i8, threeMeshBvh, i5, i6, i2$2, DecalGeometry, fabric, Delaunator, VertexNormalsHelper, constants, animations, i4, i7, i9, i10, i2$3, i7$1, i16, dat, i15, i2$4, i4$1, i2$5, i10$1, i14, imageCompression, i3$3, jspdf, autoTable, i3$2, i7$2, i1$3, i5$1, i29, fileSaver, i6$1, html2canvas, OrbitControls, FBXLoader, TDSLoader, STLLoader, i1$4, i19, i22, i23, i27, i31, externalCatalogStartupInfoRequest, i7$3, i18, flexLayout, i10$2, radio, a11y) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -31,17 +31,17 @@
31
31
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
32
32
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
33
33
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
34
+ var BufferGeometryUtils__namespace = /*#__PURE__*/_interopNamespace(BufferGeometryUtils);
34
35
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
35
36
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
36
37
  var TWEEN__namespace = /*#__PURE__*/_interopNamespace(TWEEN);
37
38
  var GUI__default = /*#__PURE__*/_interopDefaultLegacy(GUI);
38
- var BufferGeometryUtils__namespace = /*#__PURE__*/_interopNamespace(BufferGeometryUtils);
39
+ var BufferGeometryUtils__namespace$1 = /*#__PURE__*/_interopNamespace(BufferGeometryUtils$1);
39
40
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
40
41
  var JSZip__namespace = /*#__PURE__*/_interopNamespace(JSZip);
41
42
  var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
42
43
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
43
44
  var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
44
- var BufferGeometryUtils__namespace$1 = /*#__PURE__*/_interopNamespace(BufferGeometryUtils$1);
45
45
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
46
46
  var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
47
47
  var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
@@ -1555,6 +1555,19 @@
1555
1555
  ResultType["ExternalSourceNotAvailable"] = "ExternalSourceNotAvailable";
1556
1556
  })(ResultType || (ResultType = {}));
1557
1557
 
1558
+ var CustomFloorGroupResult = /** @class */ (function () {
1559
+ function CustomFloorGroupResult(sku, name) {
1560
+ this.errorMessages = [];
1561
+ this.showErrors = false;
1562
+ this.toggle = false;
1563
+ this.count = 1;
1564
+ this.sku = sku;
1565
+ this.name = name;
1566
+ this.resultType = ResultType.Loaded;
1567
+ }
1568
+ return CustomFloorGroupResult;
1569
+ }());
1570
+
1558
1571
  var ErrorMessage = /** @class */ (function () {
1559
1572
  function ErrorMessage(message, description) {
1560
1573
  this.message = message;
@@ -1967,7 +1980,7 @@
1967
1980
  switch (_a.label) {
1968
1981
  case 0:
1969
1982
  _a.trys.push([0, 2, , 3]);
1970
- return [4 /*yield*/, this.articleApi.getArticleQuickSel(goodId, branch)];
1983
+ return [4 /*yield*/, this.articleApi.getArticleQuickSel(goodId, branch, false, false)];
1971
1984
  case 1:
1972
1985
  response = _a.sent();
1973
1986
  if (response && response.validationResult && response.validationResult.success) {
@@ -4007,15 +4020,19 @@
4007
4020
  var copyInstanceResponse, newInstanceId;
4008
4021
  return __generator(this, function (_a) {
4009
4022
  switch (_a.label) {
4010
- case 0: return [4 /*yield*/, this._connector.copyInstance(originalInstanceId, shouldSaveCurrentInstanceId).catch(function (e) {
4011
- if (e === 'ECONNABORTED' || e === undefined) {
4012
- result.resultType = ResultType.Timeout;
4023
+ case 0:
4024
+ if (!result) {
4025
+ result = new CustomFloorGroupResult();
4026
+ }
4027
+ return [4 /*yield*/, this._connector.copyInstance(originalInstanceId, shouldSaveCurrentInstanceId).catch(function (e) {
4028
+ if (e === 'ECONNABORTED' || e === undefined) {
4029
+ result.resultType = ResultType.Timeout;
4030
+ return Promise.reject(result);
4031
+ }
4032
+ result.resultType = ResultType.Unknown;
4033
+ result.errorMessages.push(new ErrorMessage(copyInstanceResponse.resultObject.data));
4013
4034
  return Promise.reject(result);
4014
- }
4015
- result.resultType = ResultType.Unknown;
4016
- result.errorMessages.push(new ErrorMessage(copyInstanceResponse.resultObject.data));
4017
- return Promise.reject(result);
4018
- })];
4035
+ })];
4019
4036
  case 1:
4020
4037
  copyInstanceResponse = _a.sent();
4021
4038
  if (!copyInstanceResponse.validationResult.success) {
@@ -14790,6 +14807,8 @@
14790
14807
  });
14791
14808
  scene.name = 'mrp_room';
14792
14809
  this._download3DModelAsGLB(scene);
14810
+ Utils$1.DisposeObject(scene);
14811
+ scene = null;
14793
14812
  return [2 /*return*/];
14794
14813
  });
14795
14814
  });
@@ -14828,6 +14847,21 @@
14828
14847
  cc.material.depthTest = true;
14829
14848
  }
14830
14849
  }
14850
+ if (cc instanceof THREE.Mesh && cc.geometry) {
14851
+ if (!cc.geometry.index) {
14852
+ cc.geometry = BufferGeometryUtils__namespace.mergeVertices(cc.geometry);
14853
+ cc.geometry.computeVertexNormals();
14854
+ }
14855
+ Object.keys(cc.geometry.attributes).forEach(function (attrName) {
14856
+ var array = cc.geometry.attributes[attrName].array;
14857
+ for (var i = 0; i < array.length; i++) {
14858
+ if (!isFinite(array[i]) || isNaN(array[i])) {
14859
+ array[i] = 0; // Set it so some value
14860
+ }
14861
+ }
14862
+ cc.geometry.attributes[attrName].needsUpdate = true;
14863
+ });
14864
+ }
14831
14865
  });
14832
14866
  }
14833
14867
  });
@@ -14837,6 +14871,8 @@
14837
14871
  });
14838
14872
  scene.name = 'mrp_room_' + scene.uuid;
14839
14873
  this._createGLBForAPI(scene, camera, standalone, renderParameters, renderPreview);
14874
+ Utils$1.DisposeObject(scene);
14875
+ scene = null;
14840
14876
  return [2 /*return*/];
14841
14877
  });
14842
14878
  });
@@ -19669,7 +19705,7 @@
19669
19705
  IndicatorFactory.makeIndicatorMesh = function (radius, ringColor) {
19670
19706
  var outerCircle = this.makeTransparentRing(ringOpacity, radius * .9, radius, ringColor);
19671
19707
  var innerCircle = this.makeTransparentCircle(circleOpacity, ringColor, radius * .8);
19672
- var indicatorGeometry = BufferGeometryUtils__namespace.mergeGeometries([
19708
+ var indicatorGeometry = BufferGeometryUtils__namespace$1.mergeGeometries([
19673
19709
  innerCircle.geometry, outerCircle.geometry
19674
19710
  ]);
19675
19711
  return new THREE__namespace.Mesh(indicatorGeometry, outerCircle.material);
@@ -24779,19 +24815,6 @@
24779
24815
  type: i0.Injectable
24780
24816
  }], ctorParameters: function () { return [{ type: ThreedselectorService }, { type: ItemService }]; } });
24781
24817
 
24782
- var CustomFloorGroupResult = /** @class */ (function () {
24783
- function CustomFloorGroupResult(sku, name) {
24784
- this.errorMessages = [];
24785
- this.showErrors = false;
24786
- this.toggle = false;
24787
- this.count = 1;
24788
- this.sku = sku;
24789
- this.name = name;
24790
- this.resultType = ResultType.Loaded;
24791
- }
24792
- return CustomFloorGroupResult;
24793
- }());
24794
-
24795
24818
  var FurnitureIntegration = /** @class */ (function () {
24796
24819
  function FurnitureIntegration() {
24797
24820
  this.BrandIdentifier = '';
@@ -25466,7 +25489,7 @@
25466
25489
  child.geometry.computeBoundingBox();
25467
25490
  geo.translate(child.geometry.boundingBox.max.x - child.geometry.boundingBox.min.x, 0, 0); // extend over x-axis
25468
25491
  // geo.translate(0, child.geometry.boundingBox.max.y - child.geometry.boundingBox.min.y, 0); // extend over y-axis
25469
- child.geometry = BufferGeometryUtils__namespace$1.mergeGeometries([child.geometry, geo]);
25492
+ child.geometry = BufferGeometryUtils__namespace.mergeGeometries([child.geometry, geo]);
25470
25493
  child.geometry.computeBoundingBox();
25471
25494
  }
25472
25495
  }
@@ -41798,12 +41821,12 @@
41798
41821
  return RoomPlannerComponent;
41799
41822
  }());
41800
41823
  RoomPlannerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RoomPlannerComponent, deps: [{ token: HomedecoratorIconCacheService }, { token: ViewModeService }, { token: ModelsService }, { token: PresetsService }, { token: HomedecoratorAppService }, { token: ScreenSizeAnalysisService }, { token: i0__namespace.ChangeDetectorRef }, { token: UtilsService }, { token: MessageBusService }, { token: i1__namespace.MatDialog }, { token: ConfigurationService }, { token: FloorplanService }, { token: SceneService }, { token: HudService }, { token: RoomService }, { token: CameraService }, { token: ItemService }, { token: ItemSerializationService }, { token: LightsService }, { token: ArService }, { token: ItemService }, { token: HomedecoratorSettingsService }, { token: GoogleTagManagerService }, { token: PermanentStoreService }, { token: HomedecoratorAppEventService }, { token: HomedecoratorConnectorService }, { token: HomedecoratorConnectorAdapterService }], target: i0__namespace.ɵɵFactoryTarget.Component });
41801
- RoomPlannerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RoomPlannerComponent, selector: "rp-room-planner", inputs: { isLoading: "isLoading" }, outputs: { done: "done", showPlugin: "showPlugin", focusControls: "focusControls" }, host: { listeners: { "document:keydown": "handleDocKeyDown($event)" }, properties: { "class": "this.layerClass" } }, viewQueries: [{ propertyName: "floorplanner", first: true, predicate: FloorplannerComponent, descendants: true, static: true }, { propertyName: "toolbarIconLibrary", first: true, predicate: ["toolbarIconLibrary"], descendants: true, static: true }, { propertyName: "toolbarIconAccessoires", first: true, predicate: ["toolbarIconAccessoires"], descendants: true, static: true }, { propertyName: "toolbarIconSettings", first: true, predicate: ["toolbarIconSettings"], descendants: true, static: true }, { propertyName: "toolbarIcon2dView", first: true, predicate: ["toolbarIcon2dView"], descendants: true, static: true }, { propertyName: "toolbarShowDiagram", first: true, predicate: ["toolbarShowDiagram"], descendants: true, static: true }, { propertyName: "toolbarIcon3dView", first: true, predicate: ["toolbarIcon3dView"], descendants: true, static: true }, { propertyName: "categoriesSidebar", first: true, predicate: ["categoriesSidebar"], descendants: true, static: true }, { propertyName: "accessoiresCategoriesSidebar", first: true, predicate: ["accessoiresCategoriesSidebar"], descendants: true, static: true }, { propertyName: "customShapeCreatorSideBar", first: true, predicate: ["customShapeCreatorSideBar"], descendants: true, static: true }, { propertyName: "customCylinderCreatorSideBar", first: true, predicate: ["customCylinderCreatorSideBar"], descendants: true, static: true }, { propertyName: "settingsSidebar", first: true, predicate: ["settingsSidebar"], descendants: true, static: true }, { propertyName: "librarySidebar", first: true, predicate: ["librarySidebar"], descendants: true, static: true }, { propertyName: "selectedObjectSidebar", first: true, predicate: ["selectedObjectSidebar"], descendants: true, static: true }, { propertyName: "selectedWallSidebar", first: true, predicate: ["selectedWallSidebar"], descendants: true, static: true }, { propertyName: "selectedThreedObjectSidebar", first: true, predicate: ["selectedThreedObjectSidebar"], descendants: true, static: true }, { propertyName: "selectedFloorSidebar", first: true, predicate: ["selectedFloorSidebar"], descendants: true, static: true }, { propertyName: "toolbarIconFaq", first: true, predicate: ["toolbarIconFaq"], descendants: true, static: true }, { propertyName: "toolbarIconFeedback", first: true, predicate: ["toolbarIconFeedback"], descendants: true, static: true }, { propertyName: "toolbarIconCart", first: true, predicate: ["toolbarIconCart"], descendants: true, static: true }, { propertyName: "toolbarSnappingIcon", first: true, predicate: ["toolbarSnappingIcon"], descendants: true, static: true }], ngImport: i0__namespace, template: "\n <div class=\"RoomPlanner\">\n <floor-planner\n [class.hidden]=\"!viewModeService.is2dViewActive()\"\n (selectedWallChange)=\"selectWall($event)\"></floor-planner>\n </div>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedWall\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap \">\n <div (click)=\"showSelectedWallSidebar()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedFloor\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap\">\n <div (click)=\"showSelectedFloorSidebar()\" class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n <rp-item-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div class=\"rp-item-context-menu-close\" (click)=\"closeContextMenu()\">\n <span class=\"close-icon\"><co-icon [iconData]=\"iconService.getIcon(icon.XmarkLight)\"></co-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p *ngIf=\"this.selectedObject.name\">{{ this.selectedObject.name }}</p>\n <p *ngIf=\"!this.selectedObject.name\">{{ 'SELECTED_OBJECT' | localize }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n <ng-container *ngIf=\"showConfigurationButton\">\n <div *ngFor=\"let customButton of modelsService.customButtons\" (click)=\"handleConfigurationButtonClick(customButton)\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </ng-container>\n <div *ngIf=\"showCopyButton\" (click)=\"copySelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.CopyLight)\"></co-icon></span>\n <span class=\"label\">{{ 'COPY' | localize }}</span>\n </div>\n <div *ngIf=\"showDeleteButton\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n\n <div *ngIf=\"showConversionButton && settingsService.settings.showConversionButtons\"\n (click)=\"sendConversionToTagManager()\"\n class=\"rp-item-context-menu-item\"\n [ngClass]=\"addSelectedClass ? 'conversion-button-selected' : ''\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon></span>\n <span class=\"label\">{{ 'CONVERSION' | localize }}</span>\n <span class=\"icon icon-selected\"><mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon></span>\n </div>\n\n\n <div *ngIf=\"showARButton\" (click)=\"startARSession()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon></span>\n <span class=\"label\">{{ 'AR' | localize }}</span>\n </div>\n <button-elevation\n *ngIf=\"selectedObject && selectedObject.elevationAdjustable\"\n [item]=\"selectedObject\">\n </button-elevation>\n <ng-container *ngIf=\"salableObject\">\n <div class=\"toolbar__divider context-menu\"></div>\n <div (click)=\"addToCart(selectedObject)\" class=\"rp-item-context-menu-item add-to-cart-button\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" [svgIcon]=\"'cart-shopping-regular'\"></mat-icon></span>\n <span class=\"label\">{{ 'ADD_TO_CART' | localize }}</span>\n </div>\n </ng-container>\n </div>\n </rp-item-context-menu>\n\n <rp-item-context-menu *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && showGroupMenu && !userIsGrouping\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"onGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"onUnGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkSlashLight)\"></co-icon></span>\n <span class=\"label\">{{ 'UNGROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject && showGroupEditMenuButtons\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n <rp-right-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\">\n <div class=\"rp-right-context-menu-wrap\">\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{'SETTINGS' | localize}}\">\n <co-icon [iconData]=\"iconService.getIcon(icon.Settings)\"></co-icon>\n </span>\n </div>\n </div>\n </rp-right-context-menu>\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"house\"\n tooltip=\"{{iconName.Architecture | localize}}\"\n (onClick)=\"showLibraryCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconAccessoires>\n <rp-toolbar-icon\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"flower\"\n tooltip=\"{{iconName.Accessories | localize}}\"\n (onClick)=\"showAccessoireCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon2dView>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n matIcon=\"draw_square\"\n tooltip=\"{{iconName.TwodFloorplan | localize}}\"\n [disabled]=\"viewModeService.is2dViewActive() || !desktopSizeScreen\"\n (onClick)=\"updateMode(viewModes.FloorPlan2D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarShowDiagram>\n <rp-toolbar-icon\n *ngIf=\"diagramToggleAvailable\"\n matIcon=\"image_slash_regular\"\n tooltip=\"'Toggle achtergrond'\"\n (onClick)=\"toggleDiagram()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon3dView>\n <rp-toolbar-icon\n matIcon=\"cube\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive() || !threedIconAvailable\"\n (onClick)=\"updateMode(viewModes.RoomPlan3D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <rp-zoom-controls\n [visible]=\"viewModeService.is2dViewActive()\"\n (onZoomIn)=\"zoomIn()\"\n (onZoomReset)=\"zoomReset()\"\n (onZoomOut)=\"zoomOut()\"\n ></rp-zoom-controls>\n\n <ng-template #toolbarIconSettings>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n matIcon=\"settings\"\n tooltip=\"{{iconName.Settings | localize}}\"\n (onClick)=\"showSettings()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n <ng-template #toolbarIconCart>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon class=\"add-to-cart-button\"\n matIcon=\"cart-shopping-regular\"\n tooltip=\"{{'ADD_TO_CART' | localize}}\"\n (onClick)=\"addAllToCart()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n <span class=\"toolbar__divider\"></span>\n </ng-template>\n\n <ng-template #toolbarSnappingIcon>\n <rp-toolbar-icon\n *ngIf=\"this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_OFF' | localize}}\"\n ></rp-toolbar-icon>\n\n <rp-toolbar-icon\n *ngIf=\"!this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet_strikethrough\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_ON' | localize}}\"\n ></rp-toolbar-icon>\n </ng-template>\n\n\n <ng-template #settingsSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'SETTINGS' | localize }}</h2>\n </header>\n <rp-settings\n [placeCameraDisabled]=\"viewModeService.is2dViewActive() || itemService.getWalkthroughCamera()\"\n [minWallHeight]=\"getMinGlobalWallHeight()\"\n (onWallsHeightUpdate)=\"wallsHeightUpdated($event)\"\n >\n </rp-settings>\n </ng-template>\n\n <ng-template #categoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ARCHITECTURE' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"categories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #accessoiresCategoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ACCESSOIRES' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"accessoireCategories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #customShapeCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <rp-custom-shape-creator [shape]=\"selectedObject\"></rp-custom-shape-creator>\n </ng-template>\n\n <ng-template #customCylinderCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <custom-cylinder-creator [shape]=\"selectedObject\"></custom-cylinder-creator>\n </ng-template>\n\n <ng-template #librarySidebar>\n <div fxLayout=\"column\" class=\"with-scrollable-section\">\n <header class=\"drawer__header\">\n <button mat-icon-button (click)=\"showActiveCategorySidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back_ios</mat-icon>\n </button>\n <h2 class=\"mat-title\">{{ selectedCategory.name | localize }}</h2>\n </header>\n <p class=\"mat-body\" *ngIf=\"selectedCategory.description\">{{ selectedCategory.description | localize }}</p>\n <section fxFlex=\"grow\" *ngIf=\"libraryObjects?.length > 0 || hasCustomObjects()\">\n <ng-container *ngIf=\"hasCustomObjects()\">\n <h3 class=\"mat-subheading-2\">{{ 'CUSTOM' | localize }}</h3>\n <rp-object-library\n [objects]=\"customObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngIf=\"libraryObjects?.length > 0\">\n <h3 class=\"mat-subheading-2\">{{ 'LIBRARY' | localize }}</h3>\n <rp-object-library\n [objects]=\"libraryObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n </ng-container>\n </section>\n </div>\n </ng-template>\n\n <ng-template #selectedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'OBJECT' | localize }}</h2>\n </header>\n <rp-selected-object\n [object]=\"selectedObject\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-object>\n </ng-template>\n\n <ng-template #selectedWallSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'WALL'| localize }}</h2>\n </header>\n <rp-selected-wall\n [wall]=\"selectedWall\"\n [texturePlane]=\"selectedEdges[0]\"\n [minWallHeight]=\"getMinWallHeight(selectedWall)\"\n [maxWallHeight]=\"maxWallHeight\"\n [maxWallThickness]=\"maxWallThickness\"\n [maxWallLength]=\"maxWallLength\"\n [minWallLength]=\"minWallLength\"\n (remove)=\"removeWall($event)\"\n (setLength)=\"setWallLength($event)\"\n (setHeight)=\"setWallHeight($event)\"\n (setThickness)=\"setWallThickness($event)\"\n (selectCorner)=\"selectCorner($event)\"\n (setTexture)=\"setWallTexture($event)\"\n (setColor)=\"setWallColor($event)\"\n >\n </rp-selected-wall>\n </ng-template>\n\n <ng-template #selectedThreedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\" [textContent]=\"'SETTINGS' | localize\"></h2>\n </header>\n <rp-selected-threed-object\n [object]=\"selectedObject\"\n [showCopy]=\"showCopyButton\"\n [showDelete]=\"showDeleteButton\"\n [showLock]=\"showLockButton\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-threed-object>\n </ng-template>\n\n <ng-template #selectedFloorSidebar>\n <h2 class=\"mat-title\">{{ 'FLOOR' | localize }}</h2>\n <rp-selected-floor\n [floor]=\"selectedFloor\"\n [texturePlane]=\"selectedFloor\"\n (setTexture)=\"setFloorTexture($event)\"\n (setColor)=\"setFloorColor($event)\"\n (selectedFloorClosed)=\"selectedFloor = undefined\"\n >\n </rp-selected-floor>\n </ng-template>\n\n <ng-container *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-wrap mrp-save-grouping\" *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-item\" (click)=\"onGroupClick()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">check</mat-icon></span>\n <span class=\"label\">{{ 'GROUPING' | localize }}</span>\n </div>\n <div class=\"rp-item-context-menu-item\" (click)=\"cancelGroupSelection()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon></span>\n <span class=\"label\">{{ 'CANCEL' | localize }}</span>\n </div>\n </div>\n </ng-container>\n\n ", 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-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:white}.toolbar__divider{border-bottom:2px solid #c7c3c38a;width:70%;margin:5px 0}.toolbar__divider.context-menu{border-color:#c7c3c38a;width:100%}.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:rgba(220,220,220,.5)}.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 #c7c3c38a;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 #c7c3c38a}.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:rgba(220,220,220,.5)}.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-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#da9803}::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-bar .mat-slide-toggle-thumb-container .mat-slide-toggle-thumb{background-color:#fff}::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-bar:hover .mat-ripple-element{background-color:#da9803}::ng-deep .mat-slide-toggle .mat-slide-toggle-bar{width:40px;height:20px;border-radius:15px}::ng-deep .mat-slide-toggle .mat-slide-toggle-bar .mat-slide-toggle-thumb-container{width:17px;height:17px;top:2px;left:5px}::ng-deep .mat-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-list-item{border-bottom:1px solid #000}.mrp-save-grouping{pointer-events:all;position:absolute;bottom:10%;left:50%}\n"], components: [{ type: FloorplannerComponent, selector: "floor-planner", outputs: ["selectedWallChange"] }, { type: ContextMenuComponent, selector: "rp-context-menu", inputs: ["openMouseEvent"] }, { type: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: ItemContextMenuComponent, selector: "rp-item-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { type: i5__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ButtonElevationComponent, selector: "button-elevation", inputs: ["item"] }, { type: RightContextMenuComponent, selector: "rp-right-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { type: ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { type: SettingsComponent, selector: "rp-settings", inputs: ["minWallHeight", "placeCameraDisabled"], outputs: ["onWallsHeightUpdate"] }, { type: CategoryLibraryComponent, selector: "rp-category-library", inputs: ["categories"], outputs: ["categoryClick"] }, { type: CustomShapeCreatorComponent, selector: "rp-custom-shape-creator", inputs: ["shape"] }, { type: CustomCylinderCreatorComponent, selector: "custom-cylinder-creator", inputs: ["shape"] }, { type: i3__namespace$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: ObjectLibraryComponent, selector: "rp-object-library", inputs: ["objects"], outputs: ["setDragged", "releaseDragged", "onObjectClick"] }, { type: i14__namespace.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: SelectedObjectComponent, selector: "rp-selected-object", inputs: ["object"], outputs: ["onSelectedObjectChange"] }, { type: SelectedWallComponent, selector: "rp-selected-wall", inputs: ["wall", "texturePlane", "color", "minWallHeight", "maxWallHeight", "maxWallThickness", "maxWallLength", "minWallLength"], outputs: ["remove", "setLength", "setHeight", "setThickness", "selectCorner", "setTexture", "setColor"] }, { type: SelectedThreedObjectComponent, selector: "rp-selected-threed-object", inputs: ["object", "showCopy", "showDelete", "showLock"], outputs: ["onSelectedObjectChange"] }, { type: SelectedFloorComponent, selector: "rp-selected-floor", inputs: ["floor", "texturePlane", "color"], outputs: ["setTexture", "setColor"] }], directives: [{ type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7__namespace$2.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"] }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i15__namespace.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"] }, { type: i15__namespace.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"] }], pipes: { "localize": LocalizePipe } });
41824
+ RoomPlannerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RoomPlannerComponent, selector: "rp-room-planner", inputs: { isLoading: "isLoading" }, outputs: { done: "done", showPlugin: "showPlugin", focusControls: "focusControls" }, host: { listeners: { "document:keydown": "handleDocKeyDown($event)" }, properties: { "class": "this.layerClass" } }, viewQueries: [{ propertyName: "floorplanner", first: true, predicate: FloorplannerComponent, descendants: true, static: true }, { propertyName: "toolbarIconLibrary", first: true, predicate: ["toolbarIconLibrary"], descendants: true, static: true }, { propertyName: "toolbarIconAccessoires", first: true, predicate: ["toolbarIconAccessoires"], descendants: true, static: true }, { propertyName: "toolbarIconSettings", first: true, predicate: ["toolbarIconSettings"], descendants: true, static: true }, { propertyName: "toolbarIcon2dView", first: true, predicate: ["toolbarIcon2dView"], descendants: true, static: true }, { propertyName: "toolbarShowDiagram", first: true, predicate: ["toolbarShowDiagram"], descendants: true, static: true }, { propertyName: "toolbarIcon3dView", first: true, predicate: ["toolbarIcon3dView"], descendants: true, static: true }, { propertyName: "categoriesSidebar", first: true, predicate: ["categoriesSidebar"], descendants: true, static: true }, { propertyName: "accessoiresCategoriesSidebar", first: true, predicate: ["accessoiresCategoriesSidebar"], descendants: true, static: true }, { propertyName: "customShapeCreatorSideBar", first: true, predicate: ["customShapeCreatorSideBar"], descendants: true, static: true }, { propertyName: "customCylinderCreatorSideBar", first: true, predicate: ["customCylinderCreatorSideBar"], descendants: true, static: true }, { propertyName: "settingsSidebar", first: true, predicate: ["settingsSidebar"], descendants: true, static: true }, { propertyName: "librarySidebar", first: true, predicate: ["librarySidebar"], descendants: true, static: true }, { propertyName: "selectedObjectSidebar", first: true, predicate: ["selectedObjectSidebar"], descendants: true, static: true }, { propertyName: "selectedWallSidebar", first: true, predicate: ["selectedWallSidebar"], descendants: true, static: true }, { propertyName: "selectedThreedObjectSidebar", first: true, predicate: ["selectedThreedObjectSidebar"], descendants: true, static: true }, { propertyName: "selectedFloorSidebar", first: true, predicate: ["selectedFloorSidebar"], descendants: true, static: true }, { propertyName: "toolbarIconFaq", first: true, predicate: ["toolbarIconFaq"], descendants: true, static: true }, { propertyName: "toolbarIconFeedback", first: true, predicate: ["toolbarIconFeedback"], descendants: true, static: true }, { propertyName: "toolbarIconCart", first: true, predicate: ["toolbarIconCart"], descendants: true, static: true }, { propertyName: "toolbarSnappingIcon", first: true, predicate: ["toolbarSnappingIcon"], descendants: true, static: true }], ngImport: i0__namespace, template: "\n <div class=\"RoomPlanner\">\n <floor-planner\n [class.hidden]=\"!viewModeService.is2dViewActive()\"\n (selectedWallChange)=\"selectWall($event)\"></floor-planner>\n </div>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedWall\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap \">\n <div (click)=\"showSelectedWallSidebar()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedFloor\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap\">\n <div (click)=\"showSelectedFloorSidebar()\" class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n <rp-item-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div class=\"rp-item-context-menu-close\" (click)=\"closeContextMenu()\">\n <span class=\"close-icon\"><co-icon [iconData]=\"iconService.getIcon(icon.XmarkLight)\"></co-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p *ngIf=\"this.selectedObject.name\">{{ this.selectedObject.name }}</p>\n <p *ngIf=\"!this.selectedObject.name\">{{ 'SELECTED_OBJECT' | localize }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n <ng-container *ngIf=\"showConfigurationButton\">\n <div *ngFor=\"let customButton of modelsService.customButtons\" (click)=\"handleConfigurationButtonClick(customButton)\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </ng-container>\n <div *ngIf=\"showCopyButton\" (click)=\"copySelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.CopyLight)\"></co-icon></span>\n <span class=\"label\">{{ 'COPY' | localize }}</span>\n </div>\n <div *ngIf=\"showDeleteButton\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n\n <div *ngIf=\"showConversionButton && settingsService.settings.showConversionButtons\"\n (click)=\"sendConversionToTagManager()\"\n class=\"rp-item-context-menu-item\"\n [ngClass]=\"addSelectedClass ? 'conversion-button-selected' : ''\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon></span>\n <span class=\"label\">{{ 'CONVERSION' | localize }}</span>\n <span class=\"icon icon-selected\"><mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon></span>\n </div>\n\n\n <div *ngIf=\"showARButton\" (click)=\"startARSession()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon></span>\n <span class=\"label\">{{ 'AR' | localize }}</span>\n </div>\n <button-elevation\n *ngIf=\"selectedObject && selectedObject.elevationAdjustable\"\n [item]=\"selectedObject\">\n </button-elevation>\n <ng-container *ngIf=\"salableObject\">\n <div class=\"toolbar__divider context-menu\"></div>\n <div (click)=\"addToCart(selectedObject)\" class=\"rp-item-context-menu-item add-to-cart-button\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" [svgIcon]=\"'cart-shopping-regular'\"></mat-icon></span>\n <span class=\"label\">{{ 'ADD_TO_CART' | localize }}</span>\n </div>\n </ng-container>\n </div>\n </rp-item-context-menu>\n\n <rp-item-context-menu *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && showGroupMenu && !userIsGrouping\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"onGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"onUnGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkSlashLight)\"></co-icon></span>\n <span class=\"label\">{{ 'UNGROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject && showGroupEditMenuButtons\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n <rp-right-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\">\n <div class=\"rp-right-context-menu-wrap\">\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{'SETTINGS' | localize}}\">\n <co-icon [iconData]=\"iconService.getIcon(icon.Settings)\"></co-icon>\n </span>\n </div>\n </div>\n </rp-right-context-menu>\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"house\"\n tooltip=\"{{iconName.Architecture | localize}}\"\n (onClick)=\"showLibraryCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconAccessoires>\n <rp-toolbar-icon\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"flower\"\n tooltip=\"{{iconName.Accessories | localize}}\"\n (onClick)=\"showAccessoireCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon2dView>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n matIcon=\"draw_square\"\n tooltip=\"{{iconName.TwodFloorplan | localize}}\"\n [disabled]=\"viewModeService.is2dViewActive() || !desktopSizeScreen\"\n (onClick)=\"updateMode(viewModes.FloorPlan2D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarShowDiagram>\n <rp-toolbar-icon\n *ngIf=\"diagramToggleAvailable && viewModeService.is2dViewActive()\"\n matIcon=\"image_slash_regular\"\n tooltip=\"'Toggle achtergrond'\"\n (onClick)=\"toggleDiagram()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon3dView>\n <rp-toolbar-icon\n matIcon=\"cube\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive() || !threedIconAvailable\"\n (onClick)=\"updateMode(viewModes.RoomPlan3D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <rp-zoom-controls\n [visible]=\"viewModeService.is2dViewActive()\"\n (onZoomIn)=\"zoomIn()\"\n (onZoomReset)=\"zoomReset()\"\n (onZoomOut)=\"zoomOut()\"\n ></rp-zoom-controls>\n\n <ng-template #toolbarIconSettings>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n matIcon=\"settings\"\n tooltip=\"{{iconName.Settings | localize}}\"\n (onClick)=\"showSettings()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n <ng-template #toolbarIconCart>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon class=\"add-to-cart-button\"\n matIcon=\"cart-shopping-regular\"\n tooltip=\"{{'ADD_TO_CART' | localize}}\"\n (onClick)=\"addAllToCart()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n <span class=\"toolbar__divider\"></span>\n </ng-template>\n\n <ng-template #toolbarSnappingIcon>\n <rp-toolbar-icon\n *ngIf=\"this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_OFF' | localize}}\"\n ></rp-toolbar-icon>\n\n <rp-toolbar-icon\n *ngIf=\"!this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet_strikethrough\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_ON' | localize}}\"\n ></rp-toolbar-icon>\n </ng-template>\n\n\n <ng-template #settingsSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'SETTINGS' | localize }}</h2>\n </header>\n <rp-settings\n [placeCameraDisabled]=\"viewModeService.is2dViewActive() || itemService.getWalkthroughCamera()\"\n [minWallHeight]=\"getMinGlobalWallHeight()\"\n (onWallsHeightUpdate)=\"wallsHeightUpdated($event)\"\n >\n </rp-settings>\n </ng-template>\n\n <ng-template #categoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ARCHITECTURE' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"categories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #accessoiresCategoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ACCESSOIRES' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"accessoireCategories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #customShapeCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <rp-custom-shape-creator [shape]=\"selectedObject\"></rp-custom-shape-creator>\n </ng-template>\n\n <ng-template #customCylinderCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <custom-cylinder-creator [shape]=\"selectedObject\"></custom-cylinder-creator>\n </ng-template>\n\n <ng-template #librarySidebar>\n <div fxLayout=\"column\" class=\"with-scrollable-section\">\n <header class=\"drawer__header\">\n <button mat-icon-button (click)=\"showActiveCategorySidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back_ios</mat-icon>\n </button>\n <h2 class=\"mat-title\">{{ selectedCategory.name | localize }}</h2>\n </header>\n <p class=\"mat-body\" *ngIf=\"selectedCategory.description\">{{ selectedCategory.description | localize }}</p>\n <section fxFlex=\"grow\" *ngIf=\"libraryObjects?.length > 0 || hasCustomObjects()\">\n <ng-container *ngIf=\"hasCustomObjects()\">\n <h3 class=\"mat-subheading-2\">{{ 'CUSTOM' | localize }}</h3>\n <rp-object-library\n [objects]=\"customObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngIf=\"libraryObjects?.length > 0\">\n <h3 class=\"mat-subheading-2\">{{ 'LIBRARY' | localize }}</h3>\n <rp-object-library\n [objects]=\"libraryObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n </ng-container>\n </section>\n </div>\n </ng-template>\n\n <ng-template #selectedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'OBJECT' | localize }}</h2>\n </header>\n <rp-selected-object\n [object]=\"selectedObject\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-object>\n </ng-template>\n\n <ng-template #selectedWallSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'WALL'| localize }}</h2>\n </header>\n <rp-selected-wall\n [wall]=\"selectedWall\"\n [texturePlane]=\"selectedEdges[0]\"\n [minWallHeight]=\"getMinWallHeight(selectedWall)\"\n [maxWallHeight]=\"maxWallHeight\"\n [maxWallThickness]=\"maxWallThickness\"\n [maxWallLength]=\"maxWallLength\"\n [minWallLength]=\"minWallLength\"\n (remove)=\"removeWall($event)\"\n (setLength)=\"setWallLength($event)\"\n (setHeight)=\"setWallHeight($event)\"\n (setThickness)=\"setWallThickness($event)\"\n (selectCorner)=\"selectCorner($event)\"\n (setTexture)=\"setWallTexture($event)\"\n (setColor)=\"setWallColor($event)\"\n >\n </rp-selected-wall>\n </ng-template>\n\n <ng-template #selectedThreedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\" [textContent]=\"'SETTINGS' | localize\"></h2>\n </header>\n <rp-selected-threed-object\n [object]=\"selectedObject\"\n [showCopy]=\"showCopyButton\"\n [showDelete]=\"showDeleteButton\"\n [showLock]=\"showLockButton\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-threed-object>\n </ng-template>\n\n <ng-template #selectedFloorSidebar>\n <h2 class=\"mat-title\">{{ 'FLOOR' | localize }}</h2>\n <rp-selected-floor\n [floor]=\"selectedFloor\"\n [texturePlane]=\"selectedFloor\"\n (setTexture)=\"setFloorTexture($event)\"\n (setColor)=\"setFloorColor($event)\"\n (selectedFloorClosed)=\"selectedFloor = undefined\"\n >\n </rp-selected-floor>\n </ng-template>\n\n <ng-container *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-wrap mrp-save-grouping\" *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-item\" (click)=\"onGroupClick()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">check</mat-icon></span>\n <span class=\"label\">{{ 'GROUPING' | localize }}</span>\n </div>\n <div class=\"rp-item-context-menu-item\" (click)=\"cancelGroupSelection()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon></span>\n <span class=\"label\">{{ 'CANCEL' | localize }}</span>\n </div>\n </div>\n </ng-container>\n\n ", 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-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:white}.toolbar__divider{border-bottom:2px solid #c7c3c38a;width:70%;margin:5px 0}.toolbar__divider.context-menu{border-color:#c7c3c38a;width:100%}.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:rgba(220,220,220,.5)}.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 #c7c3c38a;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 #c7c3c38a}.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:rgba(220,220,220,.5)}.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-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#da9803}::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-bar .mat-slide-toggle-thumb-container .mat-slide-toggle-thumb{background-color:#fff}::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-bar:hover .mat-ripple-element{background-color:#da9803}::ng-deep .mat-slide-toggle .mat-slide-toggle-bar{width:40px;height:20px;border-radius:15px}::ng-deep .mat-slide-toggle .mat-slide-toggle-bar .mat-slide-toggle-thumb-container{width:17px;height:17px;top:2px;left:5px}::ng-deep .mat-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-list-item{border-bottom:1px solid #000}.mrp-save-grouping{pointer-events:all;position:absolute;bottom:10%;left:50%}\n"], components: [{ type: FloorplannerComponent, selector: "floor-planner", outputs: ["selectedWallChange"] }, { type: ContextMenuComponent, selector: "rp-context-menu", inputs: ["openMouseEvent"] }, { type: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: ItemContextMenuComponent, selector: "rp-item-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { type: i5__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ButtonElevationComponent, selector: "button-elevation", inputs: ["item"] }, { type: RightContextMenuComponent, selector: "rp-right-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { type: ToolbarIconComponent, selector: "rp-toolbar-icon", inputs: ["matIcon", "svgIcon", "tooltip", "disabled", "showLabel"], outputs: ["onClick"] }, { type: ZoomControlsComponent, selector: "rp-zoom-controls", inputs: ["visible"], outputs: ["onZoomIn", "onZoomReset", "onZoomOut"] }, { type: SettingsComponent, selector: "rp-settings", inputs: ["minWallHeight", "placeCameraDisabled"], outputs: ["onWallsHeightUpdate"] }, { type: CategoryLibraryComponent, selector: "rp-category-library", inputs: ["categories"], outputs: ["categoryClick"] }, { type: CustomShapeCreatorComponent, selector: "rp-custom-shape-creator", inputs: ["shape"] }, { type: CustomCylinderCreatorComponent, selector: "custom-cylinder-creator", inputs: ["shape"] }, { type: i3__namespace$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: ObjectLibraryComponent, selector: "rp-object-library", inputs: ["objects"], outputs: ["setDragged", "releaseDragged", "onObjectClick"] }, { type: i14__namespace.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: SelectedObjectComponent, selector: "rp-selected-object", inputs: ["object"], outputs: ["onSelectedObjectChange"] }, { type: SelectedWallComponent, selector: "rp-selected-wall", inputs: ["wall", "texturePlane", "color", "minWallHeight", "maxWallHeight", "maxWallThickness", "maxWallLength", "minWallLength"], outputs: ["remove", "setLength", "setHeight", "setThickness", "selectCorner", "setTexture", "setColor"] }, { type: SelectedThreedObjectComponent, selector: "rp-selected-threed-object", inputs: ["object", "showCopy", "showDelete", "showLock"], outputs: ["onSelectedObjectChange"] }, { type: SelectedFloorComponent, selector: "rp-selected-floor", inputs: ["floor", "texturePlane", "color"], outputs: ["setTexture", "setColor"] }], directives: [{ type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7__namespace$2.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"] }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i15__namespace.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"] }, { type: i15__namespace.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"] }], pipes: { "localize": LocalizePipe } });
41802
41825
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RoomPlannerComponent, decorators: [{
41803
41826
  type: i0.Component,
41804
41827
  args: [{
41805
41828
  selector: 'rp-room-planner',
41806
- template: "\n <div class=\"RoomPlanner\">\n <floor-planner\n [class.hidden]=\"!viewModeService.is2dViewActive()\"\n (selectedWallChange)=\"selectWall($event)\"></floor-planner>\n </div>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedWall\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap \">\n <div (click)=\"showSelectedWallSidebar()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedFloor\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap\">\n <div (click)=\"showSelectedFloorSidebar()\" class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n <rp-item-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div class=\"rp-item-context-menu-close\" (click)=\"closeContextMenu()\">\n <span class=\"close-icon\"><co-icon [iconData]=\"iconService.getIcon(icon.XmarkLight)\"></co-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p *ngIf=\"this.selectedObject.name\">{{ this.selectedObject.name }}</p>\n <p *ngIf=\"!this.selectedObject.name\">{{ 'SELECTED_OBJECT' | localize }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n <ng-container *ngIf=\"showConfigurationButton\">\n <div *ngFor=\"let customButton of modelsService.customButtons\" (click)=\"handleConfigurationButtonClick(customButton)\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </ng-container>\n <div *ngIf=\"showCopyButton\" (click)=\"copySelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.CopyLight)\"></co-icon></span>\n <span class=\"label\">{{ 'COPY' | localize }}</span>\n </div>\n <div *ngIf=\"showDeleteButton\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n\n <div *ngIf=\"showConversionButton && settingsService.settings.showConversionButtons\"\n (click)=\"sendConversionToTagManager()\"\n class=\"rp-item-context-menu-item\"\n [ngClass]=\"addSelectedClass ? 'conversion-button-selected' : ''\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon></span>\n <span class=\"label\">{{ 'CONVERSION' | localize }}</span>\n <span class=\"icon icon-selected\"><mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon></span>\n </div>\n\n\n <div *ngIf=\"showARButton\" (click)=\"startARSession()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon></span>\n <span class=\"label\">{{ 'AR' | localize }}</span>\n </div>\n <button-elevation\n *ngIf=\"selectedObject && selectedObject.elevationAdjustable\"\n [item]=\"selectedObject\">\n </button-elevation>\n <ng-container *ngIf=\"salableObject\">\n <div class=\"toolbar__divider context-menu\"></div>\n <div (click)=\"addToCart(selectedObject)\" class=\"rp-item-context-menu-item add-to-cart-button\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" [svgIcon]=\"'cart-shopping-regular'\"></mat-icon></span>\n <span class=\"label\">{{ 'ADD_TO_CART' | localize }}</span>\n </div>\n </ng-container>\n </div>\n </rp-item-context-menu>\n\n <rp-item-context-menu *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && showGroupMenu && !userIsGrouping\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"onGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"onUnGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkSlashLight)\"></co-icon></span>\n <span class=\"label\">{{ 'UNGROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject && showGroupEditMenuButtons\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n <rp-right-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\">\n <div class=\"rp-right-context-menu-wrap\">\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{'SETTINGS' | localize}}\">\n <co-icon [iconData]=\"iconService.getIcon(icon.Settings)\"></co-icon>\n </span>\n </div>\n </div>\n </rp-right-context-menu>\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"house\"\n tooltip=\"{{iconName.Architecture | localize}}\"\n (onClick)=\"showLibraryCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconAccessoires>\n <rp-toolbar-icon\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"flower\"\n tooltip=\"{{iconName.Accessories | localize}}\"\n (onClick)=\"showAccessoireCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon2dView>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n matIcon=\"draw_square\"\n tooltip=\"{{iconName.TwodFloorplan | localize}}\"\n [disabled]=\"viewModeService.is2dViewActive() || !desktopSizeScreen\"\n (onClick)=\"updateMode(viewModes.FloorPlan2D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarShowDiagram>\n <rp-toolbar-icon\n *ngIf=\"diagramToggleAvailable\"\n matIcon=\"image_slash_regular\"\n tooltip=\"'Toggle achtergrond'\"\n (onClick)=\"toggleDiagram()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon3dView>\n <rp-toolbar-icon\n matIcon=\"cube\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive() || !threedIconAvailable\"\n (onClick)=\"updateMode(viewModes.RoomPlan3D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <rp-zoom-controls\n [visible]=\"viewModeService.is2dViewActive()\"\n (onZoomIn)=\"zoomIn()\"\n (onZoomReset)=\"zoomReset()\"\n (onZoomOut)=\"zoomOut()\"\n ></rp-zoom-controls>\n\n <ng-template #toolbarIconSettings>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n matIcon=\"settings\"\n tooltip=\"{{iconName.Settings | localize}}\"\n (onClick)=\"showSettings()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n <ng-template #toolbarIconCart>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon class=\"add-to-cart-button\"\n matIcon=\"cart-shopping-regular\"\n tooltip=\"{{'ADD_TO_CART' | localize}}\"\n (onClick)=\"addAllToCart()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n <span class=\"toolbar__divider\"></span>\n </ng-template>\n\n <ng-template #toolbarSnappingIcon>\n <rp-toolbar-icon\n *ngIf=\"this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_OFF' | localize}}\"\n ></rp-toolbar-icon>\n\n <rp-toolbar-icon\n *ngIf=\"!this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet_strikethrough\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_ON' | localize}}\"\n ></rp-toolbar-icon>\n </ng-template>\n\n\n <ng-template #settingsSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'SETTINGS' | localize }}</h2>\n </header>\n <rp-settings\n [placeCameraDisabled]=\"viewModeService.is2dViewActive() || itemService.getWalkthroughCamera()\"\n [minWallHeight]=\"getMinGlobalWallHeight()\"\n (onWallsHeightUpdate)=\"wallsHeightUpdated($event)\"\n >\n </rp-settings>\n </ng-template>\n\n <ng-template #categoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ARCHITECTURE' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"categories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #accessoiresCategoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ACCESSOIRES' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"accessoireCategories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #customShapeCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <rp-custom-shape-creator [shape]=\"selectedObject\"></rp-custom-shape-creator>\n </ng-template>\n\n <ng-template #customCylinderCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <custom-cylinder-creator [shape]=\"selectedObject\"></custom-cylinder-creator>\n </ng-template>\n\n <ng-template #librarySidebar>\n <div fxLayout=\"column\" class=\"with-scrollable-section\">\n <header class=\"drawer__header\">\n <button mat-icon-button (click)=\"showActiveCategorySidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back_ios</mat-icon>\n </button>\n <h2 class=\"mat-title\">{{ selectedCategory.name | localize }}</h2>\n </header>\n <p class=\"mat-body\" *ngIf=\"selectedCategory.description\">{{ selectedCategory.description | localize }}</p>\n <section fxFlex=\"grow\" *ngIf=\"libraryObjects?.length > 0 || hasCustomObjects()\">\n <ng-container *ngIf=\"hasCustomObjects()\">\n <h3 class=\"mat-subheading-2\">{{ 'CUSTOM' | localize }}</h3>\n <rp-object-library\n [objects]=\"customObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngIf=\"libraryObjects?.length > 0\">\n <h3 class=\"mat-subheading-2\">{{ 'LIBRARY' | localize }}</h3>\n <rp-object-library\n [objects]=\"libraryObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n </ng-container>\n </section>\n </div>\n </ng-template>\n\n <ng-template #selectedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'OBJECT' | localize }}</h2>\n </header>\n <rp-selected-object\n [object]=\"selectedObject\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-object>\n </ng-template>\n\n <ng-template #selectedWallSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'WALL'| localize }}</h2>\n </header>\n <rp-selected-wall\n [wall]=\"selectedWall\"\n [texturePlane]=\"selectedEdges[0]\"\n [minWallHeight]=\"getMinWallHeight(selectedWall)\"\n [maxWallHeight]=\"maxWallHeight\"\n [maxWallThickness]=\"maxWallThickness\"\n [maxWallLength]=\"maxWallLength\"\n [minWallLength]=\"minWallLength\"\n (remove)=\"removeWall($event)\"\n (setLength)=\"setWallLength($event)\"\n (setHeight)=\"setWallHeight($event)\"\n (setThickness)=\"setWallThickness($event)\"\n (selectCorner)=\"selectCorner($event)\"\n (setTexture)=\"setWallTexture($event)\"\n (setColor)=\"setWallColor($event)\"\n >\n </rp-selected-wall>\n </ng-template>\n\n <ng-template #selectedThreedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\" [textContent]=\"'SETTINGS' | localize\"></h2>\n </header>\n <rp-selected-threed-object\n [object]=\"selectedObject\"\n [showCopy]=\"showCopyButton\"\n [showDelete]=\"showDeleteButton\"\n [showLock]=\"showLockButton\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-threed-object>\n </ng-template>\n\n <ng-template #selectedFloorSidebar>\n <h2 class=\"mat-title\">{{ 'FLOOR' | localize }}</h2>\n <rp-selected-floor\n [floor]=\"selectedFloor\"\n [texturePlane]=\"selectedFloor\"\n (setTexture)=\"setFloorTexture($event)\"\n (setColor)=\"setFloorColor($event)\"\n (selectedFloorClosed)=\"selectedFloor = undefined\"\n >\n </rp-selected-floor>\n </ng-template>\n\n <ng-container *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-wrap mrp-save-grouping\" *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-item\" (click)=\"onGroupClick()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">check</mat-icon></span>\n <span class=\"label\">{{ 'GROUPING' | localize }}</span>\n </div>\n <div class=\"rp-item-context-menu-item\" (click)=\"cancelGroupSelection()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon></span>\n <span class=\"label\">{{ 'CANCEL' | localize }}</span>\n </div>\n </div>\n </ng-container>\n\n ",
41829
+ template: "\n <div class=\"RoomPlanner\">\n <floor-planner\n [class.hidden]=\"!viewModeService.is2dViewActive()\"\n (selectedWallChange)=\"selectWall($event)\"></floor-planner>\n </div>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedWall\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap \">\n <div (click)=\"showSelectedWallSidebar()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\n <rp-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && selectedFloor\"\n [openMouseEvent]=\"contextMenuMouseEvent\">\n <div class=\"rp-item-context-menu-wrap\">\n <div (click)=\"showSelectedFloorSidebar()\" class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n <rp-item-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div class=\"rp-item-context-menu-close\" (click)=\"closeContextMenu()\">\n <span class=\"close-icon\"><co-icon [iconData]=\"iconService.getIcon(icon.XmarkLight)\"></co-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p *ngIf=\"this.selectedObject.name\">{{ this.selectedObject.name }}</p>\n <p *ngIf=\"!this.selectedObject.name\">{{ 'SELECTED_OBJECT' | localize }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n <ng-container *ngIf=\"showConfigurationButton\">\n <div *ngFor=\"let customButton of modelsService.customButtons\" (click)=\"handleConfigurationButtonClick(customButton)\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.WandMagicSparkles)\"></co-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </ng-container>\n <div *ngIf=\"showCopyButton\" (click)=\"copySelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.CopyLight)\"></co-icon></span>\n <span class=\"label\">{{ 'COPY' | localize }}</span>\n </div>\n <div *ngIf=\"showDeleteButton\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n\n <div *ngIf=\"showConversionButton && settingsService.settings.showConversionButtons\"\n (click)=\"sendConversionToTagManager()\"\n class=\"rp-item-context-menu-item\"\n [ngClass]=\"addSelectedClass ? 'conversion-button-selected' : ''\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon></span>\n <span class=\"label\">{{ 'CONVERSION' | localize }}</span>\n <span class=\"icon icon-selected\"><mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon></span>\n </div>\n\n\n <div *ngIf=\"showARButton\" (click)=\"startARSession()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon></span>\n <span class=\"label\">{{ 'AR' | localize }}</span>\n </div>\n <button-elevation\n *ngIf=\"selectedObject && selectedObject.elevationAdjustable\"\n [item]=\"selectedObject\">\n </button-elevation>\n <ng-container *ngIf=\"salableObject\">\n <div class=\"toolbar__divider context-menu\"></div>\n <div (click)=\"addToCart(selectedObject)\" class=\"rp-item-context-menu-item add-to-cart-button\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" [svgIcon]=\"'cart-shopping-regular'\"></mat-icon></span>\n <span class=\"label\">{{ 'ADD_TO_CART' | localize }}</span>\n </div>\n </ng-container>\n </div>\n </rp-item-context-menu>\n\n <rp-item-context-menu *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && showGroupMenu && !userIsGrouping\"\n [item]=\"selectedObject\"\n (deletePressed)=\"handleDeleteObject()\">\n <div class=\"rp-item-context-menu-wrap\">\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"onGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkLight)\"></co-icon></span>\n <span class=\"label\">{{ 'GROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"onUnGroupClick()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.LinkSlashLight)\"></co-icon></span>\n <span class=\"label\">{{ 'UNGROUP' | localize }}</span>\n </div>\n <div *ngIf=\"showGroupEditMenuButtons\" (click)=\"removeSelectedObject()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><co-icon [iconData]=\"iconService.getIcon(icon.TrashCanLight)\"></co-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject && showGroupEditMenuButtons\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n <rp-right-context-menu\n *ngIf=\"!viewModeService.is2dViewActive() && showContextMenu && !showGroupMenu\"\n [item]=\"selectedObject\">\n <div class=\"rp-right-context-menu-wrap\">\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}\">\n <co-icon *ngIf=\"selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockLight)\"></co-icon>\n <co-icon *ngIf=\"!selectedObject.locked\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"\n [iconData]=\"iconService.getIcon(icon.LockOpenLight)\"></co-icon>\n </span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-right-context-menu-item\">\n <span class=\"icon\" matTooltip=\"{{'SETTINGS' | localize}}\">\n <co-icon [iconData]=\"iconService.getIcon(icon.Settings)\"></co-icon>\n </span>\n </div>\n </div>\n </rp-right-context-menu>\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"house\"\n tooltip=\"{{iconName.Architecture | localize}}\"\n (onClick)=\"showLibraryCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconAccessoires>\n <rp-toolbar-icon\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"flower\"\n tooltip=\"{{iconName.Accessories | localize}}\"\n (onClick)=\"showAccessoireCategories()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon2dView>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n matIcon=\"draw_square\"\n tooltip=\"{{iconName.TwodFloorplan | localize}}\"\n [disabled]=\"viewModeService.is2dViewActive() || !desktopSizeScreen\"\n (onClick)=\"updateMode(viewModes.FloorPlan2D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarShowDiagram>\n <rp-toolbar-icon\n *ngIf=\"diagramToggleAvailable && viewModeService.is2dViewActive()\"\n matIcon=\"image_slash_regular\"\n tooltip=\"'Toggle achtergrond'\"\n (onClick)=\"toggleDiagram()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIcon3dView>\n <rp-toolbar-icon\n matIcon=\"cube\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive() || !threedIconAvailable\"\n (onClick)=\"updateMode(viewModes.RoomPlan3D, true)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <rp-zoom-controls\n [visible]=\"viewModeService.is2dViewActive()\"\n (onZoomIn)=\"zoomIn()\"\n (onZoomReset)=\"zoomReset()\"\n (onZoomOut)=\"zoomOut()\"\n ></rp-zoom-controls>\n\n <ng-template #toolbarIconSettings>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon\n matIcon=\"settings\"\n tooltip=\"{{iconName.Settings | localize}}\"\n (onClick)=\"showSettings()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n <ng-template #toolbarIconCart>\n <span class=\"toolbar__divider\"></span>\n <rp-toolbar-icon class=\"add-to-cart-button\"\n matIcon=\"cart-shopping-regular\"\n tooltip=\"{{'ADD_TO_CART' | localize}}\"\n (onClick)=\"addAllToCart()\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n <span class=\"toolbar__divider\"></span>\n </ng-template>\n\n <ng-template #toolbarSnappingIcon>\n <rp-toolbar-icon\n *ngIf=\"this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_OFF' | localize}}\"\n ></rp-toolbar-icon>\n\n <rp-toolbar-icon\n *ngIf=\"!this.settingsService.settings.options.usePlacementSnapping\"\n matIcon=\"magnet_strikethrough\"\n (onClick)=\"toggleObjectSnapping()\"\n [showLabel]=\"phoneSizeScreen\"\n tooltip=\"{{'TOGGLE_OBJECT_SNAPPING_ON' | localize}}\"\n ></rp-toolbar-icon>\n </ng-template>\n\n\n <ng-template #settingsSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'SETTINGS' | localize }}</h2>\n </header>\n <rp-settings\n [placeCameraDisabled]=\"viewModeService.is2dViewActive() || itemService.getWalkthroughCamera()\"\n [minWallHeight]=\"getMinGlobalWallHeight()\"\n (onWallsHeightUpdate)=\"wallsHeightUpdated($event)\"\n >\n </rp-settings>\n </ng-template>\n\n <ng-template #categoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ARCHITECTURE' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"categories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #accessoiresCategoriesSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'ACCESSOIRES' | localize }}</h2>\n </header>\n <rp-category-library\n [categories]=\"accessoireCategories\"\n (categoryClick)=\"showLibraryCategory($event)\"\n >\n </rp-category-library>\n </ng-template>\n\n <ng-template #customShapeCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <rp-custom-shape-creator [shape]=\"selectedObject\"></rp-custom-shape-creator>\n </ng-template>\n\n <ng-template #customCylinderCreatorSideBar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'CUSTOM_SHAPE_CREATOR' | localize }}</h2>\n </header>\n <custom-cylinder-creator [shape]=\"selectedObject\"></custom-cylinder-creator>\n </ng-template>\n\n <ng-template #librarySidebar>\n <div fxLayout=\"column\" class=\"with-scrollable-section\">\n <header class=\"drawer__header\">\n <button mat-icon-button (click)=\"showActiveCategorySidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back_ios</mat-icon>\n </button>\n <h2 class=\"mat-title\">{{ selectedCategory.name | localize }}</h2>\n </header>\n <p class=\"mat-body\" *ngIf=\"selectedCategory.description\">{{ selectedCategory.description | localize }}</p>\n <section fxFlex=\"grow\" *ngIf=\"libraryObjects?.length > 0 || hasCustomObjects()\">\n <ng-container *ngIf=\"hasCustomObjects()\">\n <h3 class=\"mat-subheading-2\">{{ 'CUSTOM' | localize }}</h3>\n <rp-object-library\n [objects]=\"customObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngIf=\"libraryObjects?.length > 0\">\n <h3 class=\"mat-subheading-2\">{{ 'LIBRARY' | localize }}</h3>\n <rp-object-library\n [objects]=\"libraryObjects\"\n (setDragged)=\"setDragged($event)\"\n (releaseDragged)=\"releaseDragged()\"\n (onObjectClick)=\"onObjectLibraryClick($event)\"\n >\n </rp-object-library>\n </ng-container>\n </section>\n </div>\n </ng-template>\n\n <ng-template #selectedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'OBJECT' | localize }}</h2>\n </header>\n <rp-selected-object\n [object]=\"selectedObject\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-object>\n </ng-template>\n\n <ng-template #selectedWallSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\">{{ 'WALL'| localize }}</h2>\n </header>\n <rp-selected-wall\n [wall]=\"selectedWall\"\n [texturePlane]=\"selectedEdges[0]\"\n [minWallHeight]=\"getMinWallHeight(selectedWall)\"\n [maxWallHeight]=\"maxWallHeight\"\n [maxWallThickness]=\"maxWallThickness\"\n [maxWallLength]=\"maxWallLength\"\n [minWallLength]=\"minWallLength\"\n (remove)=\"removeWall($event)\"\n (setLength)=\"setWallLength($event)\"\n (setHeight)=\"setWallHeight($event)\"\n (setThickness)=\"setWallThickness($event)\"\n (selectCorner)=\"selectCorner($event)\"\n (setTexture)=\"setWallTexture($event)\"\n (setColor)=\"setWallColor($event)\"\n >\n </rp-selected-wall>\n </ng-template>\n\n <ng-template #selectedThreedObjectSidebar>\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\" [textContent]=\"'SETTINGS' | localize\"></h2>\n </header>\n <rp-selected-threed-object\n [object]=\"selectedObject\"\n [showCopy]=\"showCopyButton\"\n [showDelete]=\"showDeleteButton\"\n [showLock]=\"showLockButton\"\n (onSelectedObjectChange)=\"updateSelectedObjectHud()\"\n >\n </rp-selected-threed-object>\n </ng-template>\n\n <ng-template #selectedFloorSidebar>\n <h2 class=\"mat-title\">{{ 'FLOOR' | localize }}</h2>\n <rp-selected-floor\n [floor]=\"selectedFloor\"\n [texturePlane]=\"selectedFloor\"\n (setTexture)=\"setFloorTexture($event)\"\n (setColor)=\"setFloorColor($event)\"\n (selectedFloorClosed)=\"selectedFloor = undefined\"\n >\n </rp-selected-floor>\n </ng-template>\n\n <ng-container *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-wrap mrp-save-grouping\" *ngIf=\"userIsGrouping\">\n <div class=\"rp-item-context-menu-item\" (click)=\"onGroupClick()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">check</mat-icon></span>\n <span class=\"label\">{{ 'GROUPING' | localize }}</span>\n </div>\n <div class=\"rp-item-context-menu-item\" (click)=\"cancelGroupSelection()\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon></span>\n <span class=\"label\">{{ 'CANCEL' | localize }}</span>\n </div>\n </div>\n </ng-container>\n\n ",
41807
41830
  styleUrls: ['./room-planner.component.scss'] /*,
41808
41831
  changeDetection: ChangeDetectionStrategy.OnPush*/
41809
41832
  }]