@colijnit/homedecorator 255.1.4 → 255.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/core/enum/message-type.enum.d.ts +3 -1
- package/app/core/interface/message-with-payload.interface.d.ts +6 -0
- package/app/core/model/homedecorator-settings-options.d.ts +2 -0
- package/app/core/service/homedecorator-app-event.service.d.ts +1 -0
- package/app/core/service/homedecorator-connector-adapter.service.d.ts +2 -0
- package/app/core/service/homedecorator-connector.service.d.ts +5 -4
- package/app/core/service/homedecorator-settings.service.d.ts +2 -1
- package/app/core/service/presets.service.d.ts +3 -1
- package/app/homedecorator.component.d.ts +3 -1
- package/app/homedecorator.module.d.ts +2 -1
- package/app/plugins/core3d/service/floor-pattern.service.d.ts +1 -1
- package/app/plugins/core3d/service/floor-tile-intersection.service.d.ts +2 -1
- package/app/plugins/core3d/service/floor.service.d.ts +3 -1
- package/app/plugins/core3d/service/post-processing.service.d.ts +21 -7
- package/app/plugins/core3d/service/scene.service.d.ts +1 -1
- package/app/plugins/core3d/service/ssr.service.d.ts +0 -1
- package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +11 -2
- package/app/plugins/model-uploader/model-previewer/model-preview.component.scss +185 -15
- package/app/plugins/model-uploader/model-uploader.module.d.ts +5 -1
- package/app/plugins/render/render-dialog/render-dialog.component.d.ts +4 -1
- package/app/plugins/render/render-dialog/render-dialog.component.scss +5 -5
- package/app/plugins/room-planner/components/floorplanner/floorplanner.component.d.ts +3 -1
- package/app/plugins/room-planner/components/floorplanner/service/room.service.d.ts +1 -0
- package/app/plugins/room-planner/components/settings/settings.component.d.ts +5 -1
- package/app/plugins/room-planner/components/texture-editor/texture-editor.component.d.ts +4 -1
- package/app/plugins/room-planner/room-planner/room-planner.component.scss +1 -0
- package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +1 -3
- package/app/plugins/toolbar/draw-dialog/draw-dialog.component.d.ts +2 -0
- package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
- package/app/plugins/toolbar/toolbar/toolbar.component.d.ts +2 -0
- package/assets/icons/dash-button.svg +7 -0
- package/assets/icons/pen-ruler.svg +1 -0
- package/assets/icons/retry-button.svg +7 -0
- package/bundles/colijnit-homedecorator.umd.js +822 -601
- package/bundles/colijnit-homedecorator.umd.js.map +1 -1
- package/esm2015/app/app.version.js +3 -3
- package/esm2015/app/core/enum/message-type.enum.js +3 -1
- package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
- package/esm2015/app/core/model/homedecorator-settings-options.js +3 -1
- package/esm2015/app/core/service/3dm-api.js +4 -4
- package/esm2015/app/core/service/homedecorator-app-event.service.js +2 -1
- package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +25 -2
- package/esm2015/app/core/service/homedecorator-connector.service.js +25 -22
- package/esm2015/app/core/service/homedecorator-settings.service.js +3 -2
- package/esm2015/app/core/service/presets.service.js +13 -5
- package/esm2015/app/core/utils/material.utils.js +3 -3
- package/esm2015/app/homedecorator.component.js +26 -19
- package/esm2015/app/homedecorator.module.js +8 -4
- package/esm2015/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.js +5 -5
- package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -2
- package/esm2015/app/plugins/core3d/items/factory.js +3 -2
- package/esm2015/app/plugins/core3d/service/ar.service.js +2 -1
- package/esm2015/app/plugins/core3d/service/floor-pattern.service.js +24 -18
- package/esm2015/app/plugins/core3d/service/floor-tile-intersection.service.js +13 -8
- package/esm2015/app/plugins/core3d/service/floor.service.js +9 -4
- package/esm2015/app/plugins/core3d/service/light-presets.service.js +10 -8
- package/esm2015/app/plugins/core3d/service/lights.service.js +8 -1
- package/esm2015/app/plugins/core3d/service/outline.service.js +4 -6
- package/esm2015/app/plugins/core3d/service/post-processing.service.js +148 -51
- package/esm2015/app/plugins/core3d/service/scene-event.service.js +14 -7
- package/esm2015/app/plugins/core3d/service/scene.service.js +84 -74
- package/esm2015/app/plugins/core3d/service/ssr.service.js +2 -53
- package/esm2015/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.js +10 -5
- package/esm2015/app/plugins/lite-selector/lite-selector/lite-selector.component.js +2 -2
- package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +281 -166
- package/esm2015/app/plugins/model-uploader/model-uploader.module.js +22 -3
- package/esm2015/app/plugins/render/render-controls/render-controls.component.js +3 -2
- package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +19 -14
- package/esm2015/app/plugins/render/service/new-render.service.js +4 -2
- package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +4 -2
- package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +2 -2
- package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner.component.js +29 -15
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +5 -2
- package/esm2015/app/plugins/room-planner/components/settings/settings.component.js +12 -5
- package/esm2015/app/plugins/room-planner/components/texture-editor/texture-editor.component.js +31 -15
- package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +691 -683
- package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +43 -41
- package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +1 -1
- package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +26 -20
- package/esm2015/app/plugins/toolbar/save-dialog/save-dialog.component.js +2 -2
- package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +15 -8
- package/esm2015/app/shared/loading-overlay/loading-overlay.component.js +4 -2
- package/esm2015/app/shared/model-dialog/model-dialog-furniture-list.component.js +3 -3
- package/fesm2015/colijnit-homedecorator.js +1656 -1322
- package/fesm2015/colijnit-homedecorator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), 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/enum/internal-param.enum'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('@colijnit/configuratorapi/build/utils/image-utils'), require('@angular/common/http'), require('axios'), require('textdiff-patch'), require('three'), require('@tweenjs/tween.js'), require('polygon-tools'), require('three-gpu-pathtracer'), require('three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js'), require('three/examples/jsm/geometries/TextGeometry'), require('three/examples/jsm/loaders/FontLoader'), require('three/examples/jsm/webxr/XRControllerModelFactory'), require('@colijnit/configuratorapi/build/enum/hdeco-positioning.enum'), require('three/examples/jsm/postprocessing/OutlinePass'), require('three/examples/jsm/postprocessing/EffectComposer'), require('three/examples/jsm/postprocessing/RenderPass'), require('three/examples/jsm/postprocessing/
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@colijnit/homedecorator', ['exports', '@angular/core', 'rxjs', '@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/enum/internal-param.enum', '@colijnit/ioneconnector/build/utils/string-utils', '@colijnit/configuratorapi/build/utils/image-utils', '@angular/common/http', 'axios', 'textdiff-patch', 'three', '@tweenjs/tween.js', 'polygon-tools', 'three-gpu-pathtracer', 'three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js', 'three/examples/jsm/geometries/TextGeometry', 'three/examples/jsm/loaders/FontLoader', 'three/examples/jsm/webxr/XRControllerModelFactory', '@colijnit/configuratorapi/build/enum/hdeco-positioning.enum', 'three/examples/jsm/postprocessing/OutlinePass', 'three/examples/jsm/postprocessing/EffectComposer', 'three/examples/jsm/postprocessing/RenderPass', 'three/examples/jsm/postprocessing/
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.homedecorator = {}), global.ng.core, global.rxjs, 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.internalParam_enum, global.stringUtils, global.imageUtils$1, global.ng.common.http, global.axios, global.applyPatch, global.THREE, global.TWEEN, global.PolygonTools, global.threeGpuPathtracer, global.ParallelMeshBVHWorker_js, global.TextGeometry, global.FontLoader, global.XRControllerModelFactory, global.hdecoPositioning_enum, global.OutlinePass, global.EffectComposer, global.RenderPass, global.
|
|
5
|
-
})(this, (function (exports, i0, rxjs, 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, internalParam_enum, stringUtils, imageUtils$1, i2, axios, applyPatch, THREE, TWEEN, PolygonTools, threeGpuPathtracer, ParallelMeshBVHWorker_js, TextGeometry, FontLoader, XRControllerModelFactory, hdecoPositioning_enum, OutlinePass, EffectComposer, RenderPass,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), 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/mainapi/build/enum/internal-param.enum'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('@colijnit/configuratorapi/build/utils/image-utils'), require('@angular/common/http'), require('axios'), require('textdiff-patch'), require('three'), require('@tweenjs/tween.js'), require('polygon-tools'), require('three-gpu-pathtracer'), require('three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js'), require('three/examples/jsm/geometries/TextGeometry'), require('three/examples/jsm/loaders/FontLoader'), require('three/examples/jsm/webxr/XRControllerModelFactory'), require('@colijnit/configuratorapi/build/enum/hdeco-positioning.enum'), 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('@angular/platform-browser'), require('ngx-device-detector'), require('@angular/material/icon'), require('@angular/animations'), require('@angular/common'), require('@angular/material/dialog'), require('three/examples/jsm/loaders/RGBELoader'), require('@colijnit/configuratorapi/build/enum/hdeco-placement.enum'), 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/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('@angular/material/list'), require('@angular/material/core'), 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('three/src/constants'), 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('@migenius/realityserver-client'), require('@angular/material/grid-list'), require('@angular/material/progress-spinner'), require('@angular/flex-layout/flex'), require('@angular/material/progress-bar'), require('three/examples/jsm/geometries/DecalGeometry'), require('fabric'), 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('@angular/flex-layout/extended'), require('ngx-color/chrome'), require('@angular/router'), require('delaunator'), require('three/examples/jsm/helpers/VertexNormalsHelper'), 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('@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('ngx-lightbox'), require('@angular/flex-layout'), require('@angular/cdk/drag-drop'), require('jspdf'), require('jspdf-autotable'), require('@angular/material/radio')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@colijnit/homedecorator', ['exports', '@angular/core', 'rxjs', '@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/mainapi/build/enum/internal-param.enum', '@colijnit/ioneconnector/build/utils/string-utils', '@colijnit/configuratorapi/build/utils/image-utils', '@angular/common/http', 'axios', 'textdiff-patch', 'three', '@tweenjs/tween.js', 'polygon-tools', 'three-gpu-pathtracer', 'three-mesh-bvh/src/workers/ParallelMeshBVHWorker.js', 'three/examples/jsm/geometries/TextGeometry', 'three/examples/jsm/loaders/FontLoader', 'three/examples/jsm/webxr/XRControllerModelFactory', '@colijnit/configuratorapi/build/enum/hdeco-positioning.enum', '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', '@angular/platform-browser', 'ngx-device-detector', '@angular/material/icon', '@angular/animations', '@angular/common', '@angular/material/dialog', 'three/examples/jsm/loaders/RGBELoader', '@colijnit/configuratorapi/build/enum/hdeco-placement.enum', 'rxjs/internal/observable/fromEvent', 'rxjs/operators', 'rxjs/internal/observable/of', 'three/examples/jsm/utils/BufferGeometryUtils.js', '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', '@angular/material/list', '@angular/material/core', '@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', 'three/src/constants', '@colijnit/corecomponents', '@angular/material/form-field', '@angular/material/select', '@angular/material/tooltip', '@colijnit/corecomponents_v12', '@angular/material/slider', '@angular/material/input', 'dat.gui', '@migenius/realityserver-client', '@angular/material/grid-list', '@angular/material/progress-spinner', '@angular/flex-layout/flex', '@angular/material/progress-bar', 'three/examples/jsm/geometries/DecalGeometry', 'fabric', '@angular/material/button-toggle', '@angular/material/snack-bar', '@angular/material/slide-toggle', '@angular/material/divider', 'browser-image-compression', '@angular/material/tabs', '@angular/flex-layout/extended', 'ngx-color/chrome', '@angular/router', 'delaunator', 'three/examples/jsm/helpers/VertexNormalsHelper', '@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', '@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', 'ngx-lightbox', '@angular/flex-layout', '@angular/cdk/drag-drop', 'jspdf', 'jspdf-autotable', '@angular/material/radio'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.homedecorator = {}), global.ng.core, global.rxjs, 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.internalParam_enum, global.stringUtils, global.imageUtils$1, global.ng.common.http, global.axios, global.applyPatch, global.THREE, global.TWEEN, global.PolygonTools, global.threeGpuPathtracer, global.ParallelMeshBVHWorker_js, global.TextGeometry, global.FontLoader, global.XRControllerModelFactory, global.hdecoPositioning_enum, global.OutlinePass, global.EffectComposer, global.RenderPass, global.OutputPass, global.GUI, global.n8ao, global.FXAAShader, global.ShaderPass, global.BlendShader, global.ng.platformBrowser, global.i2$1, global.ng.material.icon, global.ng.animations, global.ng.common, global.ng.material.dialog, global.RGBELoader, global.hdecoPlacement_enum, global.rxjs["internal/observable/fromEvent"], global.rxjs.operators, global.rxjs["internal/observable/of"], global.BufferGeometryUtils, global.OBJLoader, global.MTLLoader, global.GLTFLoader, global.GLTFExporter, global.DRACOLoader, global.KTX2Loader, global.USDZExporter, global.ng.material.list, global.ng.material.core, 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.constants, global.i4, global.ng.material.formField, global.ng.material.select, global.ng.material.tooltip, global.i4$1, global.ng.material.slider, global.ng.material.input, global.dat, global.realityserverClient, global.ng.material.gridList, global.ng.material.progressSpinner, global.ng.flexLayout.flex, global.ng.material.progressBar, global.DecalGeometry, global.fabric, global.ng.material.buttonToggle, global.ng.material.snackBar, global.ng.material.slideToggle, global.ng.material.divider, global.imageCompression, global.ng.material.tabs, global.ng.flexLayout.extended, global.i1$3, global.ng.router, global.Delaunator, global.VertexNormalsHelper, global.ng.cdk.portal, global.fileSaver, global.i6$2, global.html2canvas, global.OrbitControls, global.FBXLoader, global.TDSLoader, global.STLLoader, global.ng.material.toolbar, global.ng.material.menu, global.ng.material.card, global.ng.material.sidenav, global.ng.material.badge, global.externalCatalogStartupInfoRequest, global.i7$2, global.i1$5, global.ng.flexLayout, global.ng.cdk.dragDrop, global.jspdf, global.autoTable, global.ng.material.radio));
|
|
5
|
+
})(this, (function (exports, i0, rxjs, 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, internalParam_enum, stringUtils, imageUtils$1, i2, axios, applyPatch, THREE, TWEEN, PolygonTools, threeGpuPathtracer, ParallelMeshBVHWorker_js, TextGeometry, FontLoader, XRControllerModelFactory, hdecoPositioning_enum, OutlinePass, EffectComposer, RenderPass, OutputPass, GUI, n8ao, FXAAShader, ShaderPass, BlendShader, i1, i2$1, i5$1, animations, i5, i1$1, RGBELoader, hdecoPlacement_enum, fromEvent, operators, of, BufferGeometryUtils, OBJLoader, MTLLoader, GLTFLoader, GLTFExporter, DRACOLoader, KTX2Loader, USDZExporter, i2$2, i3, decoNodeType_enum, JSZip, decoNodeKind_enum, i1$2, i3$1, i8, BufferGeometryUtils$1, threeMeshBvh, constants, i4, i7, i9, i10, i4$1, i7$1, i19, dat, realityserverClient, i3$2, i16, i3$3, i2$3, DecalGeometry, fabric, i8$1, i2$4, i10$1, i6, imageCompression, i1$4, i6$1, i1$3, i5$2, Delaunator, VertexNormalsHelper, i28, fileSaver, i6$2, html2canvas, OrbitControls, FBXLoader, TDSLoader, STLLoader, i19$1, i22, i23, i26, i30, externalCatalogStartupInfoRequest, i7$2, i1$5, flexLayout, i10$2, jspdf, autoTable, radio) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
var THREE__namespace = /*#__PURE__*/_interopNamespace(THREE);
|
|
32
32
|
var TWEEN__namespace = /*#__PURE__*/_interopNamespace(TWEEN);
|
|
33
33
|
var PolygonTools__namespace = /*#__PURE__*/_interopNamespace(PolygonTools);
|
|
34
|
-
var md5__namespace = /*#__PURE__*/_interopNamespace(md5);
|
|
35
34
|
var GUI__default = /*#__PURE__*/_interopDefaultLegacy(GUI);
|
|
36
35
|
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
|
|
37
36
|
var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
|
|
@@ -55,10 +54,10 @@
|
|
|
55
54
|
var i19__namespace = /*#__PURE__*/_interopNamespace(i19);
|
|
56
55
|
var dat__namespace = /*#__PURE__*/_interopNamespace(dat);
|
|
57
56
|
var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
|
|
58
|
-
var
|
|
57
|
+
var i16__namespace = /*#__PURE__*/_interopNamespace(i16);
|
|
59
58
|
var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3$3);
|
|
60
59
|
var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
|
|
61
|
-
var
|
|
60
|
+
var i8__namespace$1 = /*#__PURE__*/_interopNamespace(i8$1);
|
|
62
61
|
var i2__namespace$4 = /*#__PURE__*/_interopNamespace(i2$4);
|
|
63
62
|
var i10__namespace$1 = /*#__PURE__*/_interopNamespace(i10$1);
|
|
64
63
|
var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
|
|
@@ -71,13 +70,12 @@
|
|
|
71
70
|
var i28__namespace = /*#__PURE__*/_interopNamespace(i28);
|
|
72
71
|
var i6__namespace$2 = /*#__PURE__*/_interopNamespace(i6$2);
|
|
73
72
|
var html2canvas__default = /*#__PURE__*/_interopDefaultLegacy(html2canvas);
|
|
74
|
-
var i9__namespace$1 = /*#__PURE__*/_interopNamespace(i9$1);
|
|
75
73
|
var i19__namespace$1 = /*#__PURE__*/_interopNamespace(i19$1);
|
|
76
74
|
var i22__namespace = /*#__PURE__*/_interopNamespace(i22);
|
|
77
75
|
var i23__namespace = /*#__PURE__*/_interopNamespace(i23);
|
|
78
76
|
var i26__namespace = /*#__PURE__*/_interopNamespace(i26);
|
|
79
77
|
var i30__namespace = /*#__PURE__*/_interopNamespace(i30);
|
|
80
|
-
var i7__namespace$
|
|
78
|
+
var i7__namespace$2 = /*#__PURE__*/_interopNamespace(i7$2);
|
|
81
79
|
var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$5);
|
|
82
80
|
var i10__namespace$2 = /*#__PURE__*/_interopNamespace(i10$2);
|
|
83
81
|
var autoTable__default = /*#__PURE__*/_interopDefaultLegacy(autoTable);
|
|
@@ -211,7 +209,7 @@
|
|
|
211
209
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
212
210
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
213
211
|
}
|
|
214
|
-
function __awaiter$
|
|
212
|
+
function __awaiter$1n(thisArg, _arguments, P, generator) {
|
|
215
213
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
216
214
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
217
215
|
function fulfilled(value) { try {
|
|
@@ -536,7 +534,7 @@
|
|
|
536
534
|
__decorate: __decorate,
|
|
537
535
|
__param: __param,
|
|
538
536
|
__metadata: __metadata,
|
|
539
|
-
__awaiter: __awaiter$
|
|
537
|
+
__awaiter: __awaiter$1n,
|
|
540
538
|
__generator: __generator,
|
|
541
539
|
__createBinding: __createBinding,
|
|
542
540
|
__exportStar: __exportStar,
|
|
@@ -628,6 +626,8 @@
|
|
|
628
626
|
MessageType["StartCroppingPDF"] = "StartCroppingPDF";
|
|
629
627
|
MessageType["BlenderRenderFileReady"] = "BlenderRenderFileReady";
|
|
630
628
|
MessageType["UserModelUploaded"] = "UserModelUploaded";
|
|
629
|
+
MessageType["ChangeTexture"] = "ChangeTexture";
|
|
630
|
+
MessageType["RenderError"] = "RenderError";
|
|
631
631
|
})(MessageType || (MessageType = {}));
|
|
632
632
|
|
|
633
633
|
var Preset = /** @class */ (function () {
|
|
@@ -734,6 +734,7 @@
|
|
|
734
734
|
this.objectMovingOrRotating = new rxjs.Subject();
|
|
735
735
|
this.addToCart = new rxjs.Subject();
|
|
736
736
|
this.addExternalSourceToCart = new rxjs.Subject();
|
|
737
|
+
this.dirty = new rxjs.Subject();
|
|
737
738
|
}
|
|
738
739
|
return HomedecoratorAppEventService;
|
|
739
740
|
}());
|
|
@@ -746,7 +747,7 @@
|
|
|
746
747
|
}]
|
|
747
748
|
}] });
|
|
748
749
|
|
|
749
|
-
var __awaiter$
|
|
750
|
+
var __awaiter$1m = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
750
751
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
751
752
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
752
753
|
function fulfilled(value) { try {
|
|
@@ -822,7 +823,7 @@
|
|
|
822
823
|
configurable: true
|
|
823
824
|
});
|
|
824
825
|
HomedecoratorConnectorAdapterService.prototype.initConnector = function (options, externalSource, forceReload, externalSourceId) {
|
|
825
|
-
return __awaiter$
|
|
826
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
826
827
|
var renewConnector, _a, externalSourceData, externalMainApi, externalVersion, catalogSettings, externalConfigurator, loginResponse, externalArticleApi, externalConnector;
|
|
827
828
|
var _this = this;
|
|
828
829
|
return __generator(this, function (_b) {
|
|
@@ -851,6 +852,8 @@
|
|
|
851
852
|
case 3:
|
|
852
853
|
if (!!this.connectors.hasOwnProperty(externalSource)) return [3 /*break*/, 8];
|
|
853
854
|
if (!(externalSourceId !== null)) return [3 /*break*/, 5];
|
|
855
|
+
// make sure to set this.externalSource = undefined to get the data of the HOST and not the previous external source
|
|
856
|
+
this.externalSource = undefined;
|
|
854
857
|
return [4 /*yield*/, this.getExternalSource(externalSourceId)];
|
|
855
858
|
case 4:
|
|
856
859
|
externalSourceData = _b.sent();
|
|
@@ -899,7 +902,7 @@
|
|
|
899
902
|
});
|
|
900
903
|
};
|
|
901
904
|
HomedecoratorConnectorAdapterService.prototype.logOut = function () {
|
|
902
|
-
return __awaiter$
|
|
905
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
903
906
|
return __generator(this, function (_a) {
|
|
904
907
|
switch (_a.label) {
|
|
905
908
|
case 0: return [4 /*yield*/, this.connector.logOut()];
|
|
@@ -934,7 +937,7 @@
|
|
|
934
937
|
return 2;
|
|
935
938
|
};
|
|
936
939
|
HomedecoratorConnectorAdapterService.prototype.getWebViewStartupInfo = function (request) {
|
|
937
|
-
return __awaiter$
|
|
940
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
938
941
|
var response;
|
|
939
942
|
return __generator(this, function (_a) {
|
|
940
943
|
switch (_a.label) {
|
|
@@ -953,7 +956,7 @@
|
|
|
953
956
|
});
|
|
954
957
|
};
|
|
955
958
|
HomedecoratorConnectorAdapterService.prototype.getGoodIdFromArticleNr = function (sku) {
|
|
956
|
-
return __awaiter$
|
|
959
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
957
960
|
var response;
|
|
958
961
|
return __generator(this, function (_a) {
|
|
959
962
|
switch (_a.label) {
|
|
@@ -981,7 +984,7 @@
|
|
|
981
984
|
return this.connector.copyInstance(instanceId, shouldSaveCurrentInstanceId);
|
|
982
985
|
};
|
|
983
986
|
HomedecoratorConnectorAdapterService.prototype.saveConfigurations = function () {
|
|
984
|
-
return __awaiter$
|
|
987
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
985
988
|
var _a, _b, _i, key, connector;
|
|
986
989
|
return __generator(this, function (_c) {
|
|
987
990
|
switch (_c.label) {
|
|
@@ -1016,7 +1019,7 @@
|
|
|
1016
1019
|
};
|
|
1017
1020
|
// @returns The initial article
|
|
1018
1021
|
HomedecoratorConnectorAdapterService.prototype.getArticle = function (sku, branch) {
|
|
1019
|
-
return __awaiter$
|
|
1022
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1020
1023
|
var goodId;
|
|
1021
1024
|
return __generator(this, function (_a) {
|
|
1022
1025
|
switch (_a.label) {
|
|
@@ -1032,7 +1035,7 @@
|
|
|
1032
1035
|
});
|
|
1033
1036
|
};
|
|
1034
1037
|
HomedecoratorConnectorAdapterService.prototype.getArticleQuickSel = function (goodId, branch) {
|
|
1035
|
-
return __awaiter$
|
|
1038
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1036
1039
|
var response;
|
|
1037
1040
|
return __generator(this, function (_a) {
|
|
1038
1041
|
switch (_a.label) {
|
|
@@ -1057,7 +1060,7 @@
|
|
|
1057
1060
|
return this.connector.getQuestionAndAnswers();
|
|
1058
1061
|
};
|
|
1059
1062
|
HomedecoratorConnectorAdapterService.prototype.getSelectionsAsync = function () {
|
|
1060
|
-
return __awaiter$
|
|
1063
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1061
1064
|
var response;
|
|
1062
1065
|
return __generator(this, function (_a) {
|
|
1063
1066
|
switch (_a.label) {
|
|
@@ -1073,7 +1076,7 @@
|
|
|
1073
1076
|
});
|
|
1074
1077
|
};
|
|
1075
1078
|
HomedecoratorConnectorAdapterService.prototype.getDecosAsync = function () {
|
|
1076
|
-
return __awaiter$
|
|
1079
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1077
1080
|
var response;
|
|
1078
1081
|
return __generator(this, function (_a) {
|
|
1079
1082
|
switch (_a.label) {
|
|
@@ -1089,7 +1092,7 @@
|
|
|
1089
1092
|
});
|
|
1090
1093
|
};
|
|
1091
1094
|
HomedecoratorConnectorAdapterService.prototype.getAnswerPrices = function () {
|
|
1092
|
-
return __awaiter$
|
|
1095
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1093
1096
|
var response;
|
|
1094
1097
|
return __generator(this, function (_a) {
|
|
1095
1098
|
switch (_a.label) {
|
|
@@ -1107,13 +1110,14 @@
|
|
|
1107
1110
|
HomedecoratorConnectorAdapterService.prototype.getJsonConfiguredArticles = function (goodId, goodType, quantity, externalSource, showLoader, instanceId, configuratorStatistics) {
|
|
1108
1111
|
if (externalSource === void 0) { externalSource = false; }
|
|
1109
1112
|
if (showLoader === void 0) { showLoader = true; }
|
|
1110
|
-
|
|
1113
|
+
// @ts-ignore
|
|
1114
|
+
return this.articleApi.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, instanceId.toString(), configuratorStatistics);
|
|
1111
1115
|
};
|
|
1112
1116
|
// public getJsonMatchTableArticles(): Promise<void> {
|
|
1113
1117
|
// return this.connector.getJsonMatchTableArticles();
|
|
1114
1118
|
// }
|
|
1115
1119
|
HomedecoratorConnectorAdapterService.prototype.setInstanceToConfigure = function (id) {
|
|
1116
|
-
return __awaiter$
|
|
1120
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1117
1121
|
return __generator(this, function (_a) {
|
|
1118
1122
|
if (id !== null) {
|
|
1119
1123
|
return [2 /*return*/, this.connector.setInstanceToConfigure(id)];
|
|
@@ -1126,7 +1130,7 @@
|
|
|
1126
1130
|
});
|
|
1127
1131
|
};
|
|
1128
1132
|
HomedecoratorConnectorAdapterService.prototype.selectAnswer = function (answer, userInput) {
|
|
1129
|
-
return __awaiter$
|
|
1133
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1130
1134
|
return __generator(this, function (_a) {
|
|
1131
1135
|
return [2 /*return*/, this.connector.selectAnswer(answer, false, userInput)];
|
|
1132
1136
|
});
|
|
@@ -1148,7 +1152,7 @@
|
|
|
1148
1152
|
HomedecoratorConnectorAdapterService.prototype.getImageForAnswerOrSelection = function (answerOrSelection, publication, thumbNail, showLoader) {
|
|
1149
1153
|
if (thumbNail === void 0) { thumbNail = true; }
|
|
1150
1154
|
if (showLoader === void 0) { showLoader = true; }
|
|
1151
|
-
return __awaiter$
|
|
1155
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1152
1156
|
var response;
|
|
1153
1157
|
return __generator(this, function (_a) {
|
|
1154
1158
|
switch (_a.label) {
|
|
@@ -1172,7 +1176,7 @@
|
|
|
1172
1176
|
});
|
|
1173
1177
|
};
|
|
1174
1178
|
HomedecoratorConnectorAdapterService.prototype.getSkipButtonImageAndText = function (goodId) {
|
|
1175
|
-
return __awaiter$
|
|
1179
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1176
1180
|
var response;
|
|
1177
1181
|
return __generator(this, function (_a) {
|
|
1178
1182
|
switch (_a.label) {
|
|
@@ -1192,7 +1196,7 @@
|
|
|
1192
1196
|
return this.getImageForAnswerOrSelection(answerOrSelection, 32);
|
|
1193
1197
|
};
|
|
1194
1198
|
HomedecoratorConnectorAdapterService.prototype.getAnswerInfo = function (answer) {
|
|
1195
|
-
return __awaiter$
|
|
1199
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1196
1200
|
var response;
|
|
1197
1201
|
return __generator(this, function (_a) {
|
|
1198
1202
|
switch (_a.label) {
|
|
@@ -1208,7 +1212,7 @@
|
|
|
1208
1212
|
});
|
|
1209
1213
|
};
|
|
1210
1214
|
HomedecoratorConnectorAdapterService.prototype.getInternalParameter = function (parameter) {
|
|
1211
|
-
return __awaiter$
|
|
1215
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1212
1216
|
var response;
|
|
1213
1217
|
return __generator(this, function (_a) {
|
|
1214
1218
|
switch (_a.label) {
|
|
@@ -1227,7 +1231,7 @@
|
|
|
1227
1231
|
});
|
|
1228
1232
|
};
|
|
1229
1233
|
HomedecoratorConnectorAdapterService.prototype.store3DModelCDN = function (filename, fileContents) {
|
|
1230
|
-
return __awaiter$
|
|
1234
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1231
1235
|
var response;
|
|
1232
1236
|
return __generator(this, function (_a) {
|
|
1233
1237
|
switch (_a.label) {
|
|
@@ -1237,6 +1241,9 @@
|
|
|
1237
1241
|
if (response && response.validationResult && response.validationResult.success) {
|
|
1238
1242
|
return [2 /*return*/, response.resultObject];
|
|
1239
1243
|
}
|
|
1244
|
+
else if (!response.validationResult.success) {
|
|
1245
|
+
return [2 /*return*/, Promise.reject(response.validationResult.messages[0].message)];
|
|
1246
|
+
}
|
|
1240
1247
|
else {
|
|
1241
1248
|
return [2 /*return*/, ''];
|
|
1242
1249
|
}
|
|
@@ -1246,13 +1253,17 @@
|
|
|
1246
1253
|
});
|
|
1247
1254
|
};
|
|
1248
1255
|
HomedecoratorConnectorAdapterService.prototype.getCatalogDefinitionsList = function () {
|
|
1249
|
-
return __awaiter$
|
|
1256
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1250
1257
|
var response;
|
|
1251
1258
|
return __generator(this, function (_a) {
|
|
1252
1259
|
switch (_a.label) {
|
|
1253
|
-
case 0:
|
|
1254
|
-
|
|
1255
|
-
|
|
1260
|
+
case 0:
|
|
1261
|
+
if (!this.articleApi) {
|
|
1262
|
+
return [2 /*return*/];
|
|
1263
|
+
}
|
|
1264
|
+
return [4 /*yield*/, this.articleApi.getCatalogDefinitions().catch(function (e) {
|
|
1265
|
+
return new dataServiceResponseData.DataServiceResponseData();
|
|
1266
|
+
})];
|
|
1256
1267
|
case 1:
|
|
1257
1268
|
response = _a.sent();
|
|
1258
1269
|
if (response && response.validationResult && response.validationResult.success) {
|
|
@@ -1267,7 +1278,7 @@
|
|
|
1267
1278
|
});
|
|
1268
1279
|
};
|
|
1269
1280
|
HomedecoratorConnectorAdapterService.prototype.getExternalSource = function (externalSourceId) {
|
|
1270
|
-
return __awaiter$
|
|
1281
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1271
1282
|
var response;
|
|
1272
1283
|
return __generator(this, function (_a) {
|
|
1273
1284
|
switch (_a.label) {
|
|
@@ -1295,7 +1306,7 @@
|
|
|
1295
1306
|
});
|
|
1296
1307
|
};
|
|
1297
1308
|
HomedecoratorConnectorAdapterService.prototype.getArticleFullObject = function (goodId) {
|
|
1298
|
-
return __awaiter$
|
|
1309
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1299
1310
|
var result;
|
|
1300
1311
|
return __generator(this, function (_a) {
|
|
1301
1312
|
switch (_a.label) {
|
|
@@ -1314,7 +1325,7 @@
|
|
|
1314
1325
|
});
|
|
1315
1326
|
};
|
|
1316
1327
|
HomedecoratorConnectorAdapterService.prototype.getArticleCategories = function (publicationCode) {
|
|
1317
|
-
return __awaiter$
|
|
1328
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1318
1329
|
var result;
|
|
1319
1330
|
return __generator(this, function (_a) {
|
|
1320
1331
|
switch (_a.label) {
|
|
@@ -1334,7 +1345,7 @@
|
|
|
1334
1345
|
};
|
|
1335
1346
|
//
|
|
1336
1347
|
HomedecoratorConnectorAdapterService.prototype.getArticleFlat = function (sku) {
|
|
1337
|
-
return __awaiter$
|
|
1348
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1338
1349
|
var result;
|
|
1339
1350
|
return __generator(this, function (_a) {
|
|
1340
1351
|
switch (_a.label) {
|
|
@@ -1352,6 +1363,25 @@
|
|
|
1352
1363
|
});
|
|
1353
1364
|
});
|
|
1354
1365
|
};
|
|
1366
|
+
HomedecoratorConnectorAdapterService.prototype.getModelPlacementOptions = function () {
|
|
1367
|
+
return __awaiter$1m(this, void 0, void 0, function () {
|
|
1368
|
+
var result;
|
|
1369
|
+
return __generator(this, function (_a) {
|
|
1370
|
+
switch (_a.label) {
|
|
1371
|
+
case 0: return [4 /*yield*/, this.mainApi.getDomainCollection('NL', domainName_enum.DomainName.Dom3DPlacement)];
|
|
1372
|
+
case 1:
|
|
1373
|
+
result = _a.sent();
|
|
1374
|
+
if (result.validationResult && result.validationResult.success) {
|
|
1375
|
+
return [2 /*return*/, this._boFactory.makeBOArrayFromRawBackendDataArray(coDomainValue_bo.CoDomainValue, result.resultObjects)];
|
|
1376
|
+
}
|
|
1377
|
+
else {
|
|
1378
|
+
console.error(result.validationMessagesAsString);
|
|
1379
|
+
}
|
|
1380
|
+
return [2 /*return*/];
|
|
1381
|
+
}
|
|
1382
|
+
});
|
|
1383
|
+
});
|
|
1384
|
+
};
|
|
1355
1385
|
// public async addToCart(goodId: number, goodType: GoodType, instanceId: number, sessionId: string, quantity: number = 1): Promise<void> {
|
|
1356
1386
|
// const json: string = await this._getJSONFromArticleObject(goodId, goodType, instanceId, sessionId, quantity);
|
|
1357
1387
|
// this._appEventService.addToCart.next({article: json, quantity: 1});
|
|
@@ -1384,7 +1414,7 @@
|
|
|
1384
1414
|
}]
|
|
1385
1415
|
}], ctorParameters: function () { return [{ type: HomedecoratorAppEventService }]; } });
|
|
1386
1416
|
|
|
1387
|
-
var __awaiter$
|
|
1417
|
+
var __awaiter$1l = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
1388
1418
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
1389
1419
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
1390
1420
|
function fulfilled(value) { try {
|
|
@@ -1408,10 +1438,10 @@
|
|
|
1408
1438
|
}
|
|
1409
1439
|
JsonUtilsService.prototype.readJsonFile = function (filePath, includeBaseUrl) {
|
|
1410
1440
|
if (includeBaseUrl === void 0) { includeBaseUrl = true; }
|
|
1411
|
-
return __awaiter$
|
|
1441
|
+
return __awaiter$1l(this, void 0, void 0, function () {
|
|
1412
1442
|
var _this = this;
|
|
1413
1443
|
return __generator(this, function (_a) {
|
|
1414
|
-
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter$
|
|
1444
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter$1l(_this, void 0, void 0, function () {
|
|
1415
1445
|
var response, empty_1, e_1;
|
|
1416
1446
|
return __generator(this, function (_a) {
|
|
1417
1447
|
switch (_a.label) {
|
|
@@ -1514,6 +1544,8 @@
|
|
|
1514
1544
|
this.pathTracer = false;
|
|
1515
1545
|
this.ssrEnabled = false;
|
|
1516
1546
|
this.maxRenderSamples = 100;
|
|
1547
|
+
this.aoEnabled = true;
|
|
1548
|
+
this.aaEnabled = true;
|
|
1517
1549
|
}
|
|
1518
1550
|
return HomedecoratorSettingsOptions;
|
|
1519
1551
|
}());
|
|
@@ -1595,7 +1627,7 @@
|
|
|
1595
1627
|
return value === null || value === undefined || value === '';
|
|
1596
1628
|
}
|
|
1597
1629
|
|
|
1598
|
-
var __awaiter$
|
|
1630
|
+
var __awaiter$1k = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
1599
1631
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
1600
1632
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
1601
1633
|
function fulfilled(value) { try {
|
|
@@ -1641,7 +1673,7 @@
|
|
|
1641
1673
|
return text ? text : key;
|
|
1642
1674
|
};
|
|
1643
1675
|
HomedecoratorDictionaryService.prototype.setDictionary = function (path, client, languageCode, additionalTranslationFile) {
|
|
1644
|
-
return __awaiter$
|
|
1676
|
+
return __awaiter$1k(this, void 0, void 0, function () {
|
|
1645
1677
|
var dictionaryData, fileName, fileName;
|
|
1646
1678
|
return __generator(this, function (_a) {
|
|
1647
1679
|
switch (_a.label) {
|
|
@@ -1677,7 +1709,7 @@
|
|
|
1677
1709
|
});
|
|
1678
1710
|
};
|
|
1679
1711
|
HomedecoratorDictionaryService.prototype._getDictionaryData = function (path) {
|
|
1680
|
-
return __awaiter$
|
|
1712
|
+
return __awaiter$1k(this, void 0, void 0, function () {
|
|
1681
1713
|
return __generator(this, function (_a) {
|
|
1682
1714
|
switch (_a.label) {
|
|
1683
1715
|
case 0: return [4 /*yield*/, this._jsonUtilsService.readJsonFile(path, false)
|
|
@@ -1700,7 +1732,7 @@
|
|
|
1700
1732
|
}]
|
|
1701
1733
|
}], ctorParameters: function () { return [{ type: JsonUtilsService }]; } });
|
|
1702
1734
|
|
|
1703
|
-
var __awaiter$
|
|
1735
|
+
var __awaiter$1j = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
1704
1736
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
1705
1737
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
1706
1738
|
function fulfilled(value) { try {
|
|
@@ -1725,6 +1757,7 @@
|
|
|
1725
1757
|
this._dictionaryService = _dictionaryService;
|
|
1726
1758
|
this._connectorService = _connectorService;
|
|
1727
1759
|
this.settingsLoaded = new rxjs.BehaviorSubject(false);
|
|
1760
|
+
this.settingsChanged = new rxjs.Subject();
|
|
1728
1761
|
this._settings = new HomedecoratorSettings();
|
|
1729
1762
|
// this._initializeSettings();
|
|
1730
1763
|
}
|
|
@@ -1786,7 +1819,7 @@
|
|
|
1786
1819
|
}
|
|
1787
1820
|
};
|
|
1788
1821
|
HomedecoratorSettingsService.prototype.initializeSettings = function () {
|
|
1789
|
-
return __awaiter$
|
|
1822
|
+
return __awaiter$1j(this, void 0, void 0, function () {
|
|
1790
1823
|
var jsonSettings;
|
|
1791
1824
|
return __generator(this, function (_a) {
|
|
1792
1825
|
switch (_a.label) {
|
|
@@ -1810,7 +1843,7 @@
|
|
|
1810
1843
|
});
|
|
1811
1844
|
};
|
|
1812
1845
|
HomedecoratorSettingsService.prototype.initialize = function (settings) {
|
|
1813
|
-
return __awaiter$
|
|
1846
|
+
return __awaiter$1j(this, void 0, void 0, function () {
|
|
1814
1847
|
var path, e_1, path, uploadSetting;
|
|
1815
1848
|
return __generator(this, function (_a) {
|
|
1816
1849
|
switch (_a.label) {
|
|
@@ -1865,7 +1898,7 @@
|
|
|
1865
1898
|
});
|
|
1866
1899
|
};
|
|
1867
1900
|
HomedecoratorSettingsService.prototype._checkUrlParameters = function () {
|
|
1868
|
-
return __awaiter$
|
|
1901
|
+
return __awaiter$1j(this, void 0, void 0, function () {
|
|
1869
1902
|
var urlParams, client, jsonSettings;
|
|
1870
1903
|
return __generator(this, function (_a) {
|
|
1871
1904
|
switch (_a.label) {
|
|
@@ -1896,7 +1929,7 @@
|
|
|
1896
1929
|
}]
|
|
1897
1930
|
}], ctorParameters: function () { return [{ type: JsonUtilsService }, { type: HomedecoratorDictionaryService }, { type: HomedecoratorConnectorAdapterService }]; } });
|
|
1898
1931
|
|
|
1899
|
-
var __awaiter$
|
|
1932
|
+
var __awaiter$1i = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
1900
1933
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
1901
1934
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
1902
1935
|
function fulfilled(value) { try {
|
|
@@ -1940,7 +1973,7 @@
|
|
|
1940
1973
|
configurable: true
|
|
1941
1974
|
});
|
|
1942
1975
|
SkipButtonInfoService.prototype.getSkipButtonImageAndText = function (goodId) {
|
|
1943
|
-
return __awaiter$
|
|
1976
|
+
return __awaiter$1i(this, void 0, void 0, function () {
|
|
1944
1977
|
var skipButtonInfo, image;
|
|
1945
1978
|
return __generator(this, function (_a) {
|
|
1946
1979
|
switch (_a.label) {
|
|
@@ -2031,7 +2064,7 @@
|
|
|
2031
2064
|
}]
|
|
2032
2065
|
}] });
|
|
2033
2066
|
|
|
2034
|
-
var __awaiter$
|
|
2067
|
+
var __awaiter$1h = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2035
2068
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
2036
2069
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
2037
2070
|
function fulfilled(value) { try {
|
|
@@ -2138,7 +2171,7 @@
|
|
|
2138
2171
|
configurable: true
|
|
2139
2172
|
});
|
|
2140
2173
|
PermanentStoreService.prototype.updateRegisterForm = function (furniture) {
|
|
2141
|
-
return __awaiter$
|
|
2174
|
+
return __awaiter$1h(this, void 0, void 0, function () {
|
|
2142
2175
|
var collectiveSheetKey, collectiveSheetScriptURL, customSheetScriptURL, sheetKey, postUrl, hostUrl, payLoad;
|
|
2143
2176
|
var _this = this;
|
|
2144
2177
|
return __generator(this, function (_a) {
|
|
@@ -2270,7 +2303,7 @@
|
|
|
2270
2303
|
}]
|
|
2271
2304
|
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: PermanentStoreService }]; } });
|
|
2272
2305
|
|
|
2273
|
-
var __awaiter$
|
|
2306
|
+
var __awaiter$1g = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2274
2307
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
2275
2308
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
2276
2309
|
function fulfilled(value) { try {
|
|
@@ -2303,7 +2336,6 @@
|
|
|
2303
2336
|
this.articleReceived = new rxjs.Subject();
|
|
2304
2337
|
this.selectionsReceived = new rxjs.Subject();
|
|
2305
2338
|
// public readonly decoNodesReceived: Subject<DecoNode[]> = new Subject<DecoNode[]>();
|
|
2306
|
-
this.answerCountReceived = new rxjs.Subject();
|
|
2307
2339
|
this.answersReceived = new rxjs.Subject();
|
|
2308
2340
|
this.extraAnswerDataLoaded = new rxjs.Subject();
|
|
2309
2341
|
// public readonly moodImagesReceived: Subject<{ answerOrSelection: Answer | Selection, imageData: string }> =
|
|
@@ -2311,12 +2343,11 @@
|
|
|
2311
2343
|
this.selectionsAndDecosLinked = new rxjs.Subject();
|
|
2312
2344
|
this.connectionReset = new rxjs.Subject();
|
|
2313
2345
|
this.selectionsToDisplay = [];
|
|
2346
|
+
this.activeAnswers = [];
|
|
2314
2347
|
this._hideLoaderTimerTimeout = 500;
|
|
2315
2348
|
this._selections = [];
|
|
2316
2349
|
this._currentSelections = [];
|
|
2317
2350
|
this._decoNodes = [];
|
|
2318
|
-
// private _activeQuestion: Question;
|
|
2319
|
-
this._activeAnswers = [];
|
|
2320
2351
|
this._articlePrice = 0;
|
|
2321
2352
|
this._connectorOptions = new options.Options();
|
|
2322
2353
|
this._subs = [];
|
|
@@ -2362,16 +2393,6 @@
|
|
|
2362
2393
|
enumerable: false,
|
|
2363
2394
|
configurable: true
|
|
2364
2395
|
});
|
|
2365
|
-
Object.defineProperty(HomedecoratorConnectorService.prototype, "activeAnswers", {
|
|
2366
|
-
// public get activeQuestion(): Question {
|
|
2367
|
-
// return this._activeQuestion;
|
|
2368
|
-
// }
|
|
2369
|
-
get: function () {
|
|
2370
|
-
return this._activeAnswers;
|
|
2371
|
-
},
|
|
2372
|
-
enumerable: false,
|
|
2373
|
-
configurable: true
|
|
2374
|
-
});
|
|
2375
2396
|
Object.defineProperty(HomedecoratorConnectorService.prototype, "activeSelection", {
|
|
2376
2397
|
get: function () {
|
|
2377
2398
|
return this._activeSelection;
|
|
@@ -2410,14 +2431,14 @@
|
|
|
2410
2431
|
this._imageCache.clear();
|
|
2411
2432
|
};
|
|
2412
2433
|
HomedecoratorConnectorService.prototype.getWebViewStartupInfo = function (request) {
|
|
2413
|
-
return __awaiter$
|
|
2434
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2414
2435
|
return __generator(this, function (_a) {
|
|
2415
2436
|
return [2 /*return*/, this._connector.getWebViewStartupInfo(request)];
|
|
2416
2437
|
});
|
|
2417
2438
|
});
|
|
2418
2439
|
};
|
|
2419
2440
|
HomedecoratorConnectorService.prototype.initNodeInstance = function (sku) {
|
|
2420
|
-
return __awaiter$
|
|
2441
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2421
2442
|
var goodId, response;
|
|
2422
2443
|
return __generator(this, function (_a) {
|
|
2423
2444
|
switch (_a.label) {
|
|
@@ -2433,7 +2454,7 @@
|
|
|
2433
2454
|
});
|
|
2434
2455
|
};
|
|
2435
2456
|
HomedecoratorConnectorService.prototype.changeConnection = function (instanceId, oldConnection, newConnection) {
|
|
2436
|
-
return __awaiter$
|
|
2457
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2437
2458
|
var response;
|
|
2438
2459
|
return __generator(this, function (_a) {
|
|
2439
2460
|
switch (_a.label) {
|
|
@@ -2450,6 +2471,10 @@
|
|
|
2450
2471
|
this.selectionsToDisplay.length = 0;
|
|
2451
2472
|
this.decoNodes.length = 0;
|
|
2452
2473
|
};
|
|
2474
|
+
HomedecoratorConnectorService.prototype.emptyAnswersAndQuestion = function () {
|
|
2475
|
+
this.activeAnswers.length = 0;
|
|
2476
|
+
this.activeQuestion = undefined;
|
|
2477
|
+
};
|
|
2453
2478
|
/**
|
|
2454
2479
|
* Used for obsolete furniture
|
|
2455
2480
|
* @param selections
|
|
@@ -2468,7 +2493,7 @@
|
|
|
2468
2493
|
this._decoNodes = decoNodes;
|
|
2469
2494
|
};
|
|
2470
2495
|
HomedecoratorConnectorService.prototype.initConnection = function (forceReload) {
|
|
2471
|
-
return __awaiter$
|
|
2496
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2472
2497
|
var settings, e_1;
|
|
2473
2498
|
var _this = this;
|
|
2474
2499
|
return __generator(this, function (_a) {
|
|
@@ -2516,7 +2541,7 @@
|
|
|
2516
2541
|
// return this._connector.getJsonMatchTableArticles();
|
|
2517
2542
|
// }
|
|
2518
2543
|
HomedecoratorConnectorService.prototype.setInstance = function (id) {
|
|
2519
|
-
return __awaiter$
|
|
2544
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2520
2545
|
var response;
|
|
2521
2546
|
return __generator(this, function (_a) {
|
|
2522
2547
|
switch (_a.label) {
|
|
@@ -2538,7 +2563,7 @@
|
|
|
2538
2563
|
return this._copyInstance(instanceId, false, result);
|
|
2539
2564
|
};
|
|
2540
2565
|
HomedecoratorConnectorService.prototype.saveConfigurations = function () {
|
|
2541
|
-
return __awaiter$
|
|
2566
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2542
2567
|
var success;
|
|
2543
2568
|
return __generator(this, function (_a) {
|
|
2544
2569
|
switch (_a.label) {
|
|
@@ -2554,13 +2579,13 @@
|
|
|
2554
2579
|
});
|
|
2555
2580
|
};
|
|
2556
2581
|
HomedecoratorConnectorService.prototype.getArticle = function (sku, branch) {
|
|
2557
|
-
return __awaiter$
|
|
2582
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2558
2583
|
var article;
|
|
2559
2584
|
return __generator(this, function (_a) {
|
|
2560
2585
|
switch (_a.label) {
|
|
2561
2586
|
case 0:
|
|
2562
|
-
this.
|
|
2563
|
-
this.
|
|
2587
|
+
this.emptySelections();
|
|
2588
|
+
this.emptyAnswersAndQuestion();
|
|
2564
2589
|
return [4 /*yield*/, this._connector.getArticle(sku, branch)
|
|
2565
2590
|
.catch(function (e) {
|
|
2566
2591
|
return Promise.reject(e);
|
|
@@ -2586,7 +2611,7 @@
|
|
|
2586
2611
|
// this._connector.getQuestionAndAnswers();
|
|
2587
2612
|
// }
|
|
2588
2613
|
HomedecoratorConnectorService.prototype.getQuestionAndAnswersAsync = function () {
|
|
2589
|
-
return __awaiter$
|
|
2614
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2590
2615
|
var questionAndAnswers;
|
|
2591
2616
|
var _this = this;
|
|
2592
2617
|
return __generator(this, function (_a) {
|
|
@@ -2595,13 +2620,24 @@
|
|
|
2595
2620
|
case 1:
|
|
2596
2621
|
questionAndAnswers = _a.sent();
|
|
2597
2622
|
questionAndAnswers.answers = questionAndAnswers.answers.filter(function (a) { return _this._isAnswerPublished(a); });
|
|
2623
|
+
// if (questionAndAnswers.question && !questionAndAnswers.question.grouped) {
|
|
2624
|
+
this.handleAnswersReceived(questionAndAnswers.answers);
|
|
2625
|
+
// }
|
|
2626
|
+
this._appEventService.answerCountReceived.next(questionAndAnswers.answers.length);
|
|
2627
|
+
if (questionAndAnswers.answers.length === 0) {
|
|
2628
|
+
this.emptyAnswersAndQuestion();
|
|
2629
|
+
}
|
|
2630
|
+
else {
|
|
2631
|
+
this.activeQuestion = questionAndAnswers.question;
|
|
2632
|
+
this.activeAnswers = questionAndAnswers.answers;
|
|
2633
|
+
}
|
|
2598
2634
|
return [2 /*return*/, questionAndAnswers];
|
|
2599
2635
|
}
|
|
2600
2636
|
});
|
|
2601
2637
|
});
|
|
2602
2638
|
};
|
|
2603
2639
|
HomedecoratorConnectorService.prototype.getSelectionsAsync = function () {
|
|
2604
|
-
return __awaiter$
|
|
2640
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2605
2641
|
var selections;
|
|
2606
2642
|
return __generator(this, function (_a) {
|
|
2607
2643
|
switch (_a.label) {
|
|
@@ -2621,7 +2657,7 @@
|
|
|
2621
2657
|
});
|
|
2622
2658
|
};
|
|
2623
2659
|
HomedecoratorConnectorService.prototype.getDecosAsync = function () {
|
|
2624
|
-
return __awaiter$
|
|
2660
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2625
2661
|
var _a;
|
|
2626
2662
|
return __generator(this, function (_b) {
|
|
2627
2663
|
switch (_b.label) {
|
|
@@ -2657,7 +2693,7 @@
|
|
|
2657
2693
|
return this._connector.replaceSelection(selection);
|
|
2658
2694
|
};
|
|
2659
2695
|
HomedecoratorConnectorService.prototype.getAnswerInfo = function (answer) {
|
|
2660
|
-
return __awaiter$
|
|
2696
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2661
2697
|
var articleTexts;
|
|
2662
2698
|
return __generator(this, function (_a) {
|
|
2663
2699
|
switch (_a.label) {
|
|
@@ -2672,7 +2708,7 @@
|
|
|
2672
2708
|
};
|
|
2673
2709
|
HomedecoratorConnectorService.prototype.extendWithAnswerTextAndImage = function (answer, showLoader) {
|
|
2674
2710
|
if (showLoader === void 0) { showLoader = true; }
|
|
2675
|
-
return __awaiter$
|
|
2711
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2676
2712
|
var _this = this;
|
|
2677
2713
|
return __generator(this, function (_a) {
|
|
2678
2714
|
if (answer.nodeId) {
|
|
@@ -2698,7 +2734,7 @@
|
|
|
2698
2734
|
};
|
|
2699
2735
|
HomedecoratorConnectorService.prototype.extendWithSelectionImage = function (selection, showLoader) {
|
|
2700
2736
|
if (showLoader === void 0) { showLoader = true; }
|
|
2701
|
-
return __awaiter$
|
|
2737
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2702
2738
|
var _this = this;
|
|
2703
2739
|
return __generator(this, function (_a) {
|
|
2704
2740
|
if (selection.nodeId) {
|
|
@@ -2822,7 +2858,7 @@
|
|
|
2822
2858
|
});
|
|
2823
2859
|
};
|
|
2824
2860
|
HomedecoratorConnectorService.prototype.addToCart = function (goodId, goodType, quantity, instanceId, externalSource) {
|
|
2825
|
-
return __awaiter$
|
|
2861
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2826
2862
|
var json, statistics, frozenArticle$1;
|
|
2827
2863
|
return __generator(this, function (_a) {
|
|
2828
2864
|
switch (_a.label) {
|
|
@@ -2850,18 +2886,11 @@
|
|
|
2850
2886
|
});
|
|
2851
2887
|
};
|
|
2852
2888
|
HomedecoratorConnectorService.prototype.handleAnswersReceived = function (answers) {
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
this.answersReceived.next(answers);
|
|
2859
|
-
if (this._activeAnswers) {
|
|
2860
|
-
this._loadPricesOfActiveAnswers();
|
|
2861
|
-
}
|
|
2862
|
-
return [2 /*return*/];
|
|
2863
|
-
});
|
|
2864
|
-
});
|
|
2889
|
+
this._preloadCachedImages(answers);
|
|
2890
|
+
this.answersReceived.next(answers);
|
|
2891
|
+
if (this.activeAnswers && this.activeAnswers.length > 0) {
|
|
2892
|
+
this._loadPricesOfActiveAnswers();
|
|
2893
|
+
}
|
|
2865
2894
|
};
|
|
2866
2895
|
HomedecoratorConnectorService.prototype._prepareSelectionsToDisplayImages = function () {
|
|
2867
2896
|
var _this = this;
|
|
@@ -2966,7 +2995,7 @@
|
|
|
2966
2995
|
};
|
|
2967
2996
|
// POSTCONDITION: current activeAnswers have price values.
|
|
2968
2997
|
HomedecoratorConnectorService.prototype._loadPricesOfActiveAnswers = function () {
|
|
2969
|
-
return __awaiter$
|
|
2998
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2970
2999
|
var answerPrices;
|
|
2971
3000
|
var _this = this;
|
|
2972
3001
|
return __generator(this, function (_a) {
|
|
@@ -2977,7 +3006,7 @@
|
|
|
2977
3006
|
if (answerPrices) {
|
|
2978
3007
|
// paste price data onto our current answer objects; AnswerPrice.selId corresponds to Answer.node
|
|
2979
3008
|
answerPrices.forEach(function (answerPrice) {
|
|
2980
|
-
var answerMatch = _this.
|
|
3009
|
+
var answerMatch = _this.activeAnswers.find(function (ans) { return ans.node === answerPrice.selId; });
|
|
2981
3010
|
if (answerMatch) {
|
|
2982
3011
|
answerMatch.price = // temp fix for price until backend is ready
|
|
2983
3012
|
answerMatch.nodeLevel === 0 && answerPrice.addRetailPrice && answerMatch.seqO === 1 ?
|
|
@@ -2993,7 +3022,7 @@
|
|
|
2993
3022
|
});
|
|
2994
3023
|
};
|
|
2995
3024
|
HomedecoratorConnectorService.prototype._copyInstance = function (originalInstanceId, shouldSaveCurrentInstanceId, result) {
|
|
2996
|
-
return __awaiter$
|
|
3025
|
+
return __awaiter$1g(this, void 0, void 0, function () {
|
|
2997
3026
|
var copyInstanceResponse, newInstanceId;
|
|
2998
3027
|
return __generator(this, function (_a) {
|
|
2999
3028
|
switch (_a.label) {
|
|
@@ -3038,7 +3067,7 @@
|
|
|
3038
3067
|
}]
|
|
3039
3068
|
}], ctorParameters: function () { return [{ type: HomedecoratorConnectorAdapterService }, { type: JsonUtilsService }, { type: HomedecoratorSettingsService }, { type: SkipButtonInfoService }, { type: MessageBusService }, { type: HomedecoratorAppEventService }, { type: GoogleTagManagerService }]; } });
|
|
3040
3069
|
|
|
3041
|
-
var __awaiter$
|
|
3070
|
+
var __awaiter$1f = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3042
3071
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3043
3072
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3044
3073
|
function fulfilled(value) { try {
|
|
@@ -3095,7 +3124,7 @@
|
|
|
3095
3124
|
window.history.replaceState(data, title, url);
|
|
3096
3125
|
};
|
|
3097
3126
|
AppStateService.prototype.undo = function () {
|
|
3098
|
-
return __awaiter$
|
|
3127
|
+
return __awaiter$1f(this, void 0, void 0, function () {
|
|
3099
3128
|
return __generator(this, function (_a) {
|
|
3100
3129
|
switch (_a.label) {
|
|
3101
3130
|
case 0:
|
|
@@ -3109,7 +3138,7 @@
|
|
|
3109
3138
|
});
|
|
3110
3139
|
};
|
|
3111
3140
|
AppStateService.prototype.redo = function () {
|
|
3112
|
-
return __awaiter$
|
|
3141
|
+
return __awaiter$1f(this, void 0, void 0, function () {
|
|
3113
3142
|
return __generator(this, function (_a) {
|
|
3114
3143
|
switch (_a.label) {
|
|
3115
3144
|
case 0:
|
|
@@ -3387,7 +3416,7 @@
|
|
|
3387
3416
|
}]
|
|
3388
3417
|
}], ctorParameters: function () { return []; } });
|
|
3389
3418
|
|
|
3390
|
-
var __awaiter$
|
|
3419
|
+
var __awaiter$1e = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3391
3420
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3392
3421
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3393
3422
|
function fulfilled(value) { try {
|
|
@@ -3432,7 +3461,7 @@
|
|
|
3432
3461
|
}
|
|
3433
3462
|
};
|
|
3434
3463
|
LocalStorageService.prototype.getRecoverySaveState = function () {
|
|
3435
|
-
return __awaiter$
|
|
3464
|
+
return __awaiter$1e(this, void 0, void 0, function () {
|
|
3436
3465
|
var indexedDBSave, localStorageSave;
|
|
3437
3466
|
return __generator(this, function (_a) {
|
|
3438
3467
|
switch (_a.label) {
|
|
@@ -3455,7 +3484,7 @@
|
|
|
3455
3484
|
});
|
|
3456
3485
|
};
|
|
3457
3486
|
LocalStorageService.prototype.getIndexedDBSaveState = function () {
|
|
3458
|
-
return __awaiter$
|
|
3487
|
+
return __awaiter$1e(this, void 0, void 0, function () {
|
|
3459
3488
|
var getMessage;
|
|
3460
3489
|
return __generator(this, function (_a) {
|
|
3461
3490
|
switch (_a.label) {
|
|
@@ -3468,7 +3497,7 @@
|
|
|
3468
3497
|
});
|
|
3469
3498
|
};
|
|
3470
3499
|
LocalStorageService.prototype.writeIndexedDBSaveState = function (saveState) {
|
|
3471
|
-
return __awaiter$
|
|
3500
|
+
return __awaiter$1e(this, void 0, void 0, function () {
|
|
3472
3501
|
var saveMessage;
|
|
3473
3502
|
return __generator(this, function (_a) {
|
|
3474
3503
|
switch (_a.label) {
|
|
@@ -3485,7 +3514,7 @@
|
|
|
3485
3514
|
});
|
|
3486
3515
|
};
|
|
3487
3516
|
LocalStorageService.prototype.checkForLocalSave = function () {
|
|
3488
|
-
return __awaiter$
|
|
3517
|
+
return __awaiter$1e(this, void 0, void 0, function () {
|
|
3489
3518
|
var indexedDBSave;
|
|
3490
3519
|
return __generator(this, function (_a) {
|
|
3491
3520
|
switch (_a.label) {
|
|
@@ -3517,7 +3546,7 @@
|
|
|
3517
3546
|
}]
|
|
3518
3547
|
}], ctorParameters: function () { return [{ type: WebWorkerService }]; } });
|
|
3519
3548
|
|
|
3520
|
-
var __awaiter$
|
|
3549
|
+
var __awaiter$1d = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3521
3550
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3522
3551
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3523
3552
|
function fulfilled(value) { try {
|
|
@@ -3608,7 +3637,7 @@
|
|
|
3608
3637
|
}
|
|
3609
3638
|
};
|
|
3610
3639
|
FileUtils.SaveGLBFile = function (data, assetPath) {
|
|
3611
|
-
return __awaiter$
|
|
3640
|
+
return __awaiter$1d(this, void 0, void 0, function () {
|
|
3612
3641
|
return __generator(this, function (_a) {
|
|
3613
3642
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
3614
3643
|
var xhr = new XMLHttpRequest();
|
|
@@ -3767,7 +3796,7 @@
|
|
|
3767
3796
|
}());
|
|
3768
3797
|
FileUtils._cachedTextureUploads = new Map();
|
|
3769
3798
|
|
|
3770
|
-
var __awaiter$
|
|
3799
|
+
var __awaiter$1c = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3771
3800
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3772
3801
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3773
3802
|
function fulfilled(value) { try {
|
|
@@ -3791,7 +3820,7 @@
|
|
|
3791
3820
|
this._settingsService = _settingsService;
|
|
3792
3821
|
}
|
|
3793
3822
|
FileService.prototype.getTotalDownloadSize = function (files) {
|
|
3794
|
-
return __awaiter$
|
|
3823
|
+
return __awaiter$1c(this, void 0, void 0, function () {
|
|
3795
3824
|
var url, data, response;
|
|
3796
3825
|
return __generator(this, function (_a) {
|
|
3797
3826
|
switch (_a.label) {
|
|
@@ -3827,7 +3856,7 @@
|
|
|
3827
3856
|
}]
|
|
3828
3857
|
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }]; } });
|
|
3829
3858
|
|
|
3830
|
-
var __awaiter$
|
|
3859
|
+
var __awaiter$1b = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3831
3860
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3832
3861
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3833
3862
|
function fulfilled(value) { try {
|
|
@@ -3864,7 +3893,7 @@
|
|
|
3864
3893
|
configurable: true
|
|
3865
3894
|
});
|
|
3866
3895
|
ProgressService.prototype.prepareDownloads = function (furniture) {
|
|
3867
|
-
return __awaiter$
|
|
3896
|
+
return __awaiter$1b(this, void 0, void 0, function () {
|
|
3868
3897
|
var files, i, model, realUrl, url, _a;
|
|
3869
3898
|
return __generator(this, function (_b) {
|
|
3870
3899
|
switch (_b.label) {
|
|
@@ -4785,7 +4814,7 @@
|
|
|
4785
4814
|
RelativePositionUtils.appOffsetTop = 0;
|
|
4786
4815
|
RelativePositionUtils.appOffsetLeft = 0;
|
|
4787
4816
|
|
|
4788
|
-
var __awaiter$
|
|
4817
|
+
var __awaiter$1a = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4789
4818
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4790
4819
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4791
4820
|
function fulfilled(value) { try {
|
|
@@ -4994,7 +5023,7 @@
|
|
|
4994
5023
|
scope.pan(new THREE__namespace.Vector2(x, y));
|
|
4995
5024
|
};
|
|
4996
5025
|
this.animateCamera = function (type, change) {
|
|
4997
|
-
return __awaiter$
|
|
5026
|
+
return __awaiter$1a(this, void 0, void 0, function () {
|
|
4998
5027
|
var changing, tween;
|
|
4999
5028
|
var _this = this;
|
|
5000
5029
|
return __generator(this, function (_a) {
|
|
@@ -5010,7 +5039,7 @@
|
|
|
5010
5039
|
});
|
|
5011
5040
|
};
|
|
5012
5041
|
this.animateCameraMovement = function (endPosition, endTarget, endDuration) {
|
|
5013
|
-
return __awaiter$
|
|
5042
|
+
return __awaiter$1a(this, void 0, void 0, function () {
|
|
5014
5043
|
var duration, position, target, targetTween, positionTween, targetPromise, positionPromise;
|
|
5015
5044
|
var _this = this;
|
|
5016
5045
|
return __generator(this, function (_a) {
|
|
@@ -5086,7 +5115,7 @@
|
|
|
5086
5115
|
this.updatePositionTarget(this.camera.position, this.target);
|
|
5087
5116
|
};
|
|
5088
5117
|
this.animateMoveTo = function (target) {
|
|
5089
|
-
return __awaiter$
|
|
5118
|
+
return __awaiter$1a(this, void 0, void 0, function () {
|
|
5090
5119
|
var position, distance, tween;
|
|
5091
5120
|
return __generator(this, function (_a) {
|
|
5092
5121
|
position = scope.target.clone();
|
|
@@ -5277,7 +5306,7 @@
|
|
|
5277
5306
|
return event && event.target && event.target === document.body;
|
|
5278
5307
|
}
|
|
5279
5308
|
function onMouseMove(event) {
|
|
5280
|
-
return __awaiter$
|
|
5309
|
+
return __awaiter$1a(this, void 0, void 0, function () {
|
|
5281
5310
|
var mousePos;
|
|
5282
5311
|
return __generator(this, function (_a) {
|
|
5283
5312
|
if (!isMouseEventAllowed(event)) {
|
|
@@ -5643,7 +5672,7 @@
|
|
|
5643
5672
|
}]
|
|
5644
5673
|
}] });
|
|
5645
5674
|
|
|
5646
|
-
var __awaiter$
|
|
5675
|
+
var __awaiter$19 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5647
5676
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5648
5677
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5649
5678
|
function fulfilled(value) { try {
|
|
@@ -5854,7 +5883,7 @@
|
|
|
5854
5883
|
this.cameraMovementChanged.next();
|
|
5855
5884
|
};
|
|
5856
5885
|
CameraService.prototype.moveCameraToFitObject = function (object, offset) {
|
|
5857
|
-
return __awaiter$
|
|
5886
|
+
return __awaiter$19(this, void 0, void 0, function () {
|
|
5858
5887
|
var boundingBox, center, size, maxDim, fov, cameraZ, newPosition, tween;
|
|
5859
5888
|
return __generator(this, function (_a) {
|
|
5860
5889
|
switch (_a.label) {
|
|
@@ -5924,7 +5953,7 @@
|
|
|
5924
5953
|
return target.clone().add(new THREE.Vector3(0, targetDistance, targetDistance));
|
|
5925
5954
|
};
|
|
5926
5955
|
CameraService.prototype._placeWalkThroughCameraInCorner = function (viewCorner) {
|
|
5927
|
-
return __awaiter$
|
|
5956
|
+
return __awaiter$19(this, void 0, void 0, function () {
|
|
5928
5957
|
var center2d, center, corner2d, corner, distance, diff, lerpAlpha, nearCorner, tween;
|
|
5929
5958
|
return __generator(this, function (_a) {
|
|
5930
5959
|
switch (_a.label) {
|
|
@@ -6115,7 +6144,7 @@
|
|
|
6115
6144
|
}]
|
|
6116
6145
|
}], ctorParameters: function () { return []; } });
|
|
6117
6146
|
|
|
6118
|
-
var __awaiter$
|
|
6147
|
+
var __awaiter$18 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6119
6148
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6120
6149
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6121
6150
|
function fulfilled(value) { try {
|
|
@@ -6141,7 +6170,7 @@
|
|
|
6141
6170
|
this.messages = [];
|
|
6142
6171
|
}
|
|
6143
6172
|
MessageBoardService.prototype.init = function (scene) {
|
|
6144
|
-
return __awaiter$
|
|
6173
|
+
return __awaiter$18(this, void 0, void 0, function () {
|
|
6145
6174
|
return __generator(this, function (_a) {
|
|
6146
6175
|
this.scene = scene;
|
|
6147
6176
|
if (this._settingsService.settings.options.xrDebug) {
|
|
@@ -6183,7 +6212,7 @@
|
|
|
6183
6212
|
}]
|
|
6184
6213
|
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: FontService }]; } });
|
|
6185
6214
|
|
|
6186
|
-
var __awaiter$
|
|
6215
|
+
var __awaiter$17 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6187
6216
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6188
6217
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6189
6218
|
function fulfilled(value) { try {
|
|
@@ -6223,7 +6252,7 @@
|
|
|
6223
6252
|
this._subs.forEach(function (s) { return s.unsubscribe(); });
|
|
6224
6253
|
};
|
|
6225
6254
|
XrService.prototype.init = function (renderer, scene, camera) {
|
|
6226
|
-
return __awaiter$
|
|
6255
|
+
return __awaiter$17(this, void 0, void 0, function () {
|
|
6227
6256
|
var displays;
|
|
6228
6257
|
var _this = this;
|
|
6229
6258
|
return __generator(this, function (_a) {
|
|
@@ -6508,7 +6537,7 @@
|
|
|
6508
6537
|
}]
|
|
6509
6538
|
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: DebugService }, { type: MessageBoardService }]; } });
|
|
6510
6539
|
|
|
6511
|
-
var __awaiter$
|
|
6540
|
+
var __awaiter$16 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6512
6541
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6513
6542
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6514
6543
|
function fulfilled(value) { try {
|
|
@@ -6574,7 +6603,7 @@
|
|
|
6574
6603
|
* @param {XRCoordinateSystem} frameOfRef
|
|
6575
6604
|
*/
|
|
6576
6605
|
Reticle.prototype.update = function (session, camera, frameOfRef) {
|
|
6577
|
-
return __awaiter$
|
|
6606
|
+
return __awaiter$16(this, void 0, void 0, function () {
|
|
6578
6607
|
var ray, origin, direction, hits, hit, hitMatrix;
|
|
6579
6608
|
return __generator(this, function (_a) {
|
|
6580
6609
|
this._rayCaster = this._rayCaster || new THREE.Raycaster();
|
|
@@ -7196,7 +7225,7 @@
|
|
|
7196
7225
|
return ServiceLocator;
|
|
7197
7226
|
}());
|
|
7198
7227
|
|
|
7199
|
-
var __awaiter$
|
|
7228
|
+
var __awaiter$15 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7200
7229
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7201
7230
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7202
7231
|
function fulfilled(value) { try {
|
|
@@ -7247,14 +7276,14 @@
|
|
|
7247
7276
|
var renderPass = new RenderPass.RenderPass(this._scene, this._camera);
|
|
7248
7277
|
this._outputPass = new OutputPass.OutputPass();
|
|
7249
7278
|
this._outlinePass = new OutlinePass.OutlinePass(new THREE.Vector2(width, height), this._scene, this._camera);
|
|
7250
|
-
this._fxaaPass = new ShaderPass
|
|
7251
|
-
this._fxaaPass.material.uniforms['resolution'].value.set(1 / width, 1 / height);
|
|
7279
|
+
// this._fxaaPass = new ShaderPass(FXAAShader);
|
|
7280
|
+
// this._fxaaPass.material.uniforms['resolution'].value.set(1 / width, 1 / height);
|
|
7252
7281
|
// needed for the sRGBEncoding to work
|
|
7253
7282
|
// https://stackoverflow.com/questions/72936071/srgbencoding-in-not-working-in-three-effectcomposer
|
|
7254
7283
|
// const gammaCorrectionPass = new ShaderPass(GammaCorrectionShader);
|
|
7255
7284
|
this._composer.addPass(renderPass);
|
|
7256
7285
|
this._composer.addPass(this._outlinePass);
|
|
7257
|
-
this._composer.addPass(this._fxaaPass);
|
|
7286
|
+
// this._composer.addPass(this._fxaaPass);
|
|
7258
7287
|
// this._composer.addPass(gammaCorrectionPass);
|
|
7259
7288
|
this._composer.addPass(this._outputPass);
|
|
7260
7289
|
this._setSelectionGlowSettings();
|
|
@@ -7278,7 +7307,7 @@
|
|
|
7278
7307
|
this._outlinePass.selectedObjects = [item];
|
|
7279
7308
|
};
|
|
7280
7309
|
OutlineService.prototype.showOutline = function (item) {
|
|
7281
|
-
return __awaiter$
|
|
7310
|
+
return __awaiter$15(this, void 0, void 0, function () {
|
|
7282
7311
|
var _this = this;
|
|
7283
7312
|
return __generator(this, function (_a) {
|
|
7284
7313
|
// if (item && (item instanceof FloorPin || item instanceof WallPin)) {
|
|
@@ -7301,7 +7330,7 @@
|
|
|
7301
7330
|
});
|
|
7302
7331
|
};
|
|
7303
7332
|
OutlineService.prototype.hideOutline = function () {
|
|
7304
|
-
return __awaiter$
|
|
7333
|
+
return __awaiter$15(this, void 0, void 0, function () {
|
|
7305
7334
|
return __generator(this, function (_a) {
|
|
7306
7335
|
if (this._outlinePass.selectedObjects.length > 0) {
|
|
7307
7336
|
// await this._animatedOutlineStrength(300, 0);
|
|
@@ -8198,7 +8227,7 @@
|
|
|
8198
8227
|
TextureType[TextureType["PBR"] = 3] = "PBR";
|
|
8199
8228
|
})(TextureType || (TextureType = {}));
|
|
8200
8229
|
|
|
8201
|
-
var __awaiter$
|
|
8230
|
+
var __awaiter$14 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8202
8231
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8203
8232
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8204
8233
|
function fulfilled(value) { try {
|
|
@@ -8267,7 +8296,7 @@
|
|
|
8267
8296
|
};
|
|
8268
8297
|
// use canvas to create rotated textures
|
|
8269
8298
|
MaterialUtils.RotatedCanvasTexture = function (texture, textureURL, dimensions, adjustScale, repeatX, repeatY) {
|
|
8270
|
-
return __awaiter$
|
|
8299
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8271
8300
|
var img;
|
|
8272
8301
|
return __generator(this, function (_a) {
|
|
8273
8302
|
switch (_a.label) {
|
|
@@ -8280,7 +8309,7 @@
|
|
|
8280
8309
|
});
|
|
8281
8310
|
};
|
|
8282
8311
|
MaterialUtils.CustomTileMapTexture = function (texture, dimensions) {
|
|
8283
|
-
return __awaiter$
|
|
8312
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8284
8313
|
var img, ratio, tileSizeMax, newTileSize, t, image;
|
|
8285
8314
|
return __generator(this, function (_a) {
|
|
8286
8315
|
switch (_a.label) {
|
|
@@ -8323,7 +8352,7 @@
|
|
|
8323
8352
|
};
|
|
8324
8353
|
// use canvas to create texture from photo
|
|
8325
8354
|
MaterialUtils.FromImage = function (texture /*, dimensions: THREE.Vector2*/) {
|
|
8326
|
-
return __awaiter$
|
|
8355
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8327
8356
|
var img, canvas, threeTexture;
|
|
8328
8357
|
return __generator(this, function (_a) {
|
|
8329
8358
|
switch (_a.label) {
|
|
@@ -8342,7 +8371,7 @@
|
|
|
8342
8371
|
});
|
|
8343
8372
|
};
|
|
8344
8373
|
MaterialUtils.ReadAndResizePhotoAsDataURL = function (file) {
|
|
8345
|
-
return __awaiter$
|
|
8374
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8346
8375
|
var imageSrc;
|
|
8347
8376
|
return __generator(this, function (_a) {
|
|
8348
8377
|
switch (_a.label) {
|
|
@@ -8362,7 +8391,8 @@
|
|
|
8362
8391
|
var srcKey = src;
|
|
8363
8392
|
var type = 'image/jpeg';
|
|
8364
8393
|
if (isDataUri) {
|
|
8365
|
-
srcKey =
|
|
8394
|
+
// srcKey = md5(src);
|
|
8395
|
+
srcKey = src;
|
|
8366
8396
|
if (src.indexOf('image/png') > -1) {
|
|
8367
8397
|
type = 'image/png';
|
|
8368
8398
|
}
|
|
@@ -8409,7 +8439,7 @@
|
|
|
8409
8439
|
});
|
|
8410
8440
|
};
|
|
8411
8441
|
MaterialUtils.GetMaterialMaps = function (material, texture, dimensions) {
|
|
8412
|
-
return __awaiter$
|
|
8442
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8413
8443
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
8414
8444
|
return __generator(this, function (_s) {
|
|
8415
8445
|
switch (_s.label) {
|
|
@@ -8524,7 +8554,7 @@
|
|
|
8524
8554
|
});
|
|
8525
8555
|
};
|
|
8526
8556
|
MaterialUtils.loadMaterializeMaps = function (material, texture) {
|
|
8527
|
-
return __awaiter$
|
|
8557
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8528
8558
|
var _a, _b, _c, _d, _e;
|
|
8529
8559
|
return __generator(this, function (_f) {
|
|
8530
8560
|
switch (_f.label) {
|
|
@@ -8604,7 +8634,7 @@
|
|
|
8604
8634
|
};
|
|
8605
8635
|
// use canvas to create texture from flipped photo
|
|
8606
8636
|
MaterialUtils.FromFlippedImage = function (texture, dimensions) {
|
|
8607
|
-
return __awaiter$
|
|
8637
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8608
8638
|
var origImg, canvas, threeTexture;
|
|
8609
8639
|
return __generator(this, function (_a) {
|
|
8610
8640
|
switch (_a.label) {
|
|
@@ -8642,7 +8672,7 @@
|
|
|
8642
8672
|
};
|
|
8643
8673
|
// use canvas to create custom textures
|
|
8644
8674
|
MaterialUtils.CustomTileTexture = function (texture) {
|
|
8645
|
-
return __awaiter$
|
|
8675
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8646
8676
|
var img, canvas;
|
|
8647
8677
|
return __generator(this, function (_a) {
|
|
8648
8678
|
switch (_a.label) {
|
|
@@ -8658,7 +8688,7 @@
|
|
|
8658
8688
|
});
|
|
8659
8689
|
};
|
|
8660
8690
|
MaterialUtils.RotatedImageTexture = function (texture, textureURL) {
|
|
8661
|
-
return __awaiter$
|
|
8691
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8662
8692
|
var img, canvas;
|
|
8663
8693
|
return __generator(this, function (_a) {
|
|
8664
8694
|
switch (_a.label) {
|
|
@@ -8674,7 +8704,7 @@
|
|
|
8674
8704
|
});
|
|
8675
8705
|
};
|
|
8676
8706
|
MaterialUtils.CreateTileDataUrl = function (img, texture) {
|
|
8677
|
-
return __awaiter$
|
|
8707
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8678
8708
|
var canvas, tileUnit, tileCtx;
|
|
8679
8709
|
return __generator(this, function (_a) {
|
|
8680
8710
|
switch (_a.label) {
|
|
@@ -8697,7 +8727,7 @@
|
|
|
8697
8727
|
});
|
|
8698
8728
|
};
|
|
8699
8729
|
MaterialUtils.CreateTileMap = function (img, texture, oDimensions, adjustScale, repeatX, repeatY) {
|
|
8700
|
-
return __awaiter$
|
|
8730
|
+
return __awaiter$14(this, void 0, void 0, function () {
|
|
8701
8731
|
var dimensions, canvas, rotation, imgSize, ctx, bbHeight, bbWidth, i, j, threeTexture;
|
|
8702
8732
|
return __generator(this, function (_a) {
|
|
8703
8733
|
switch (_a.label) {
|
|
@@ -8785,7 +8815,7 @@
|
|
|
8785
8815
|
MaterialUtils.imageCache = new Map();
|
|
8786
8816
|
MaterialUtils.textureCache = new Map();
|
|
8787
8817
|
|
|
8788
|
-
var __awaiter$
|
|
8818
|
+
var __awaiter$13 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8789
8819
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8790
8820
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8791
8821
|
function fulfilled(value) { try {
|
|
@@ -8840,7 +8870,7 @@
|
|
|
8840
8870
|
Utils$1.DisposeObject(this._pointRepresentation);
|
|
8841
8871
|
};
|
|
8842
8872
|
ArService.prototype.resetPlaneDetection = function () {
|
|
8843
|
-
return __awaiter$
|
|
8873
|
+
return __awaiter$13(this, void 0, void 0, function () {
|
|
8844
8874
|
var _this = this;
|
|
8845
8875
|
return __generator(this, function (_a) {
|
|
8846
8876
|
switch (_a.label) {
|
|
@@ -8868,7 +8898,7 @@
|
|
|
8868
8898
|
this._session.end();
|
|
8869
8899
|
};
|
|
8870
8900
|
ArService.prototype.arIOSSupported = function () {
|
|
8871
|
-
return __awaiter$
|
|
8901
|
+
return __awaiter$13(this, void 0, void 0, function () {
|
|
8872
8902
|
var isIOS, anchor;
|
|
8873
8903
|
return __generator(this, function (_a) {
|
|
8874
8904
|
isIOS = /iPad|iPhone|iPod/.test(navigator.platform) ||
|
|
@@ -8885,7 +8915,7 @@
|
|
|
8885
8915
|
});
|
|
8886
8916
|
};
|
|
8887
8917
|
ArService.prototype.arSupported = function () {
|
|
8888
|
-
return __awaiter$
|
|
8918
|
+
return __awaiter$13(this, void 0, void 0, function () {
|
|
8889
8919
|
return __generator(this, function (_a) {
|
|
8890
8920
|
switch (_a.label) {
|
|
8891
8921
|
case 0:
|
|
@@ -9057,6 +9087,7 @@
|
|
|
9057
9087
|
this._lightProbe.addEventListener('reflectionchange', function () {
|
|
9058
9088
|
var rawData = _this._glBinding.getReflectionCubeMap(_this._lightProbe);
|
|
9059
9089
|
var texProps = _this._renderer.properties.get(_this._cubeMapTexture);
|
|
9090
|
+
// @ts-ignore
|
|
9060
9091
|
texProps.__webglTexture = rawData;
|
|
9061
9092
|
});
|
|
9062
9093
|
};
|
|
@@ -9257,7 +9288,7 @@
|
|
|
9257
9288
|
}
|
|
9258
9289
|
};
|
|
9259
9290
|
ArService.prototype._createPlaneMaterial = function () {
|
|
9260
|
-
return __awaiter$
|
|
9291
|
+
return __awaiter$13(this, void 0, void 0, function () {
|
|
9261
9292
|
var pm, _a;
|
|
9262
9293
|
return __generator(this, function (_b) {
|
|
9263
9294
|
switch (_b.label) {
|
|
@@ -9276,7 +9307,7 @@
|
|
|
9276
9307
|
});
|
|
9277
9308
|
};
|
|
9278
9309
|
ArService.prototype._onSessionStarted = function (session) {
|
|
9279
|
-
return __awaiter$
|
|
9310
|
+
return __awaiter$13(this, void 0, void 0, function () {
|
|
9280
9311
|
var domOverlay;
|
|
9281
9312
|
var _this = this;
|
|
9282
9313
|
return __generator(this, function (_a) {
|
|
@@ -9410,7 +9441,7 @@
|
|
|
9410
9441
|
}
|
|
9411
9442
|
};
|
|
9412
9443
|
ArService.prototype._checkIfHoldTouchEvent = function ($event) {
|
|
9413
|
-
return __awaiter$
|
|
9444
|
+
return __awaiter$13(this, void 0, void 0, function () {
|
|
9414
9445
|
var _this = this;
|
|
9415
9446
|
return __generator(this, function (_a) {
|
|
9416
9447
|
setTimeout(function () {
|
|
@@ -9737,9 +9768,10 @@
|
|
|
9737
9768
|
}], ctorParameters: function () { return [{ type: ViewModeService }, { type: CameraService }, { type: HomedecoratorSettingsService }, { type: HomedecoratorConnectorService }]; } });
|
|
9738
9769
|
|
|
9739
9770
|
var PostProcessingService = /** @class */ (function () {
|
|
9740
|
-
function PostProcessingService(_configurationService) {
|
|
9771
|
+
function PostProcessingService(_configurationService, _settingsService) {
|
|
9741
9772
|
var _this = this;
|
|
9742
9773
|
this._configurationService = _configurationService;
|
|
9774
|
+
this._settingsService = _settingsService;
|
|
9743
9775
|
this._effectController = {
|
|
9744
9776
|
aoSamples: 32.0,
|
|
9745
9777
|
denoiseSamples: 8.0,
|
|
@@ -9755,13 +9787,24 @@
|
|
|
9755
9787
|
color: [0, 0, 0],
|
|
9756
9788
|
colorMultiply: true,
|
|
9757
9789
|
stencil: true,
|
|
9758
|
-
accumulate: false
|
|
9790
|
+
accumulate: false,
|
|
9791
|
+
gammaCorrection: false
|
|
9759
9792
|
};
|
|
9760
9793
|
this._subs = [];
|
|
9761
9794
|
this._subs.push(this._configurationService.onChange.subscribe(function (changed) {
|
|
9762
9795
|
if (ConfigurationKey.ShowPostProcessingSettings in changed) {
|
|
9763
9796
|
_this._showHideGui(changed[ConfigurationKey.ShowPostProcessingSettings]);
|
|
9764
9797
|
}
|
|
9798
|
+
}), this._settingsService.settingsLoaded.subscribe(function () {
|
|
9799
|
+
_this._aoEnabled = _this._settingsService.settings.options.aoEnabled;
|
|
9800
|
+
_this._aaEnabled = _this._settingsService.settings.options.aaEnabled;
|
|
9801
|
+
}), this._settingsService.settingsChanged.subscribe(function () {
|
|
9802
|
+
if (_this._aoEnabled !== _this._settingsService.settings.options.aoEnabled || _this._aaEnabled !== _this._settingsService.settings.options.aaEnabled) {
|
|
9803
|
+
_this._aoEnabled = _this._settingsService.settings.options.aoEnabled;
|
|
9804
|
+
_this._aaEnabled = _this._settingsService.settings.options.aaEnabled;
|
|
9805
|
+
_this._initComposers();
|
|
9806
|
+
_this.render();
|
|
9807
|
+
}
|
|
9765
9808
|
}));
|
|
9766
9809
|
}
|
|
9767
9810
|
PostProcessingService.prototype.ngOnDestroy = function () {
|
|
@@ -9771,37 +9814,127 @@
|
|
|
9771
9814
|
this._renderer = renderer;
|
|
9772
9815
|
this._scene = scene;
|
|
9773
9816
|
this._camera = camera;
|
|
9774
|
-
this.
|
|
9817
|
+
this._width = width;
|
|
9818
|
+
this._height = height;
|
|
9819
|
+
this._postProcessingGui = new GUI__default["default"]();
|
|
9820
|
+
this._postProcessingGui.hide();
|
|
9821
|
+
this._renderPass = new RenderPass.RenderPass(this._scene, this._camera);
|
|
9822
|
+
this._outputPass = new OutputPass.OutputPass();
|
|
9823
|
+
this._initComposers();
|
|
9824
|
+
this._createGui();
|
|
9825
|
+
// this._createGuiTaaPass();
|
|
9826
|
+
};
|
|
9827
|
+
PostProcessingService.prototype.setSize = function (width, height) {
|
|
9828
|
+
if (this._aoComposer) {
|
|
9829
|
+
this._aoComposer.setSize(width, height);
|
|
9830
|
+
}
|
|
9831
|
+
if (this._aaComposer) {
|
|
9832
|
+
this._aaComposer.setSize(width, height);
|
|
9833
|
+
}
|
|
9834
|
+
if (this._blendComposer) {
|
|
9835
|
+
this._blendComposer.setSize(width, height);
|
|
9836
|
+
}
|
|
9837
|
+
};
|
|
9838
|
+
PostProcessingService.prototype.render = function () {
|
|
9839
|
+
if (this._settingsService.settings.options.aaEnabled && this._aaComposer) {
|
|
9840
|
+
this._aaComposer.render();
|
|
9841
|
+
}
|
|
9842
|
+
if (this._settingsService.settings.options.aoEnabled && this._aoComposer) {
|
|
9843
|
+
this._aoComposer.render();
|
|
9844
|
+
}
|
|
9845
|
+
if (this._blendComposer) {
|
|
9846
|
+
this._blendComposer.render();
|
|
9847
|
+
}
|
|
9848
|
+
};
|
|
9849
|
+
PostProcessingService.prototype.showGui = function () {
|
|
9850
|
+
this._postProcessingGui.show(true);
|
|
9851
|
+
};
|
|
9852
|
+
PostProcessingService.prototype.hideGui = function () {
|
|
9853
|
+
this._postProcessingGui.hide();
|
|
9854
|
+
};
|
|
9855
|
+
PostProcessingService.prototype._initComposers = function () {
|
|
9856
|
+
this._initAaComposer();
|
|
9857
|
+
this._initAoComposer();
|
|
9858
|
+
this._initBlendComposer();
|
|
9859
|
+
};
|
|
9860
|
+
PostProcessingService.prototype._initAaComposer = function () {
|
|
9861
|
+
if (this._aaComposer) {
|
|
9862
|
+
this._aaComposer.dispose();
|
|
9863
|
+
}
|
|
9864
|
+
if (!this._aaEnabled) {
|
|
9865
|
+
return;
|
|
9866
|
+
}
|
|
9867
|
+
this._aaRenderTarget = new THREE.WebGLRenderTarget(this._width, this._height, {
|
|
9868
|
+
samples: 4,
|
|
9869
|
+
type: THREE.HalfFloatType,
|
|
9775
9870
|
minFilter: THREE.NearestFilter,
|
|
9776
9871
|
magFilter: THREE.NearestFilter,
|
|
9777
9872
|
format: THREE.RGBAFormat,
|
|
9778
9873
|
colorSpace: THREE.SRGBColorSpace
|
|
9779
9874
|
});
|
|
9780
|
-
this.
|
|
9781
|
-
this.
|
|
9782
|
-
this.
|
|
9783
|
-
|
|
9784
|
-
this.
|
|
9875
|
+
this._aaComposer = new EffectComposer.EffectComposer(this._renderer, this._aaRenderTarget);
|
|
9876
|
+
this._aaComposer.renderToScreen = false;
|
|
9877
|
+
this._fxaaPass = new ShaderPass.ShaderPass(FXAAShader.FXAAShader);
|
|
9878
|
+
var pixelRatio = this._renderer.getPixelRatio();
|
|
9879
|
+
// this._fxaaPass.material.uniforms[ 'resolution' ].value.x = 1 / (this._width * pixelRatio);
|
|
9880
|
+
// this._fxaaPass.material.uniforms[ 'resolution' ].value.y = 1 / (this._height * pixelRatio);
|
|
9881
|
+
this._fxaaPass.uniforms['resolution'].value.x = 1 / (this._width * pixelRatio);
|
|
9882
|
+
this._fxaaPass.uniforms['resolution'].value.y = 1 / (this._height * pixelRatio);
|
|
9883
|
+
// this._taaRenderPass = new TAARenderPass(this._scene, this._camera, 0x000000, 0);
|
|
9884
|
+
// this._taaRenderPass.unbiased = true;
|
|
9885
|
+
// this._taaRenderPass.sampleLevel = 4;
|
|
9886
|
+
this._aaComposer.addPass(this._renderPass);
|
|
9887
|
+
// this._aaComposer.addPass(this._taaRenderPass);
|
|
9888
|
+
this._aaComposer.addPass(this._fxaaPass);
|
|
9889
|
+
this._aaComposer.addPass(this._outputPass);
|
|
9890
|
+
};
|
|
9891
|
+
PostProcessingService.prototype._initAoComposer = function () {
|
|
9892
|
+
if (this._aoComposer) {
|
|
9893
|
+
this._aoComposer.dispose();
|
|
9894
|
+
}
|
|
9895
|
+
if (!this._aoEnabled) {
|
|
9896
|
+
return;
|
|
9897
|
+
}
|
|
9898
|
+
this._aoRenderTarget = new THREE.WebGLRenderTarget(this._width, this._height, {
|
|
9899
|
+
samples: 4,
|
|
9900
|
+
type: THREE.HalfFloatType,
|
|
9901
|
+
minFilter: THREE.NearestFilter,
|
|
9902
|
+
magFilter: THREE.NearestFilter,
|
|
9903
|
+
format: THREE.RGBAFormat,
|
|
9904
|
+
colorSpace: THREE.SRGBColorSpace
|
|
9905
|
+
});
|
|
9906
|
+
this._aoComposer = new EffectComposer.EffectComposer(this._renderer, this._aoRenderTarget);
|
|
9907
|
+
this._aoComposer.renderToScreen = false;
|
|
9908
|
+
this._n8aoPass = new n8ao.N8AOPass(this._scene, this._camera, this._width, this._height);
|
|
9785
9909
|
this._n8aoPass.configuration.gammaCorrection = false;
|
|
9786
|
-
this._n8aoPass.debugMode = true;
|
|
9787
|
-
//
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
this.
|
|
9796
|
-
this.
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
this.
|
|
9804
|
-
|
|
9910
|
+
// this._n8aoPass.debugMode = true;
|
|
9911
|
+
// this._aoComposer.addPass(this._renderPass);
|
|
9912
|
+
this._aoComposer.addPass(this._n8aoPass);
|
|
9913
|
+
this._aoComposer.addPass(this._outputPass);
|
|
9914
|
+
};
|
|
9915
|
+
PostProcessingService.prototype._initBlendComposer = function () {
|
|
9916
|
+
if (this._blendShader) {
|
|
9917
|
+
this._blendShader.dispose();
|
|
9918
|
+
}
|
|
9919
|
+
this._blendShader = new ShaderPass.ShaderPass(BlendShader.BlendShader);
|
|
9920
|
+
if (this._aaEnabled && this._aoEnabled) {
|
|
9921
|
+
this._blendShader.uniforms.tDiffuse1.value = this._aaRenderTarget.texture;
|
|
9922
|
+
this._blendShader.uniforms.tDiffuse2.value = this._aoRenderTarget.texture;
|
|
9923
|
+
}
|
|
9924
|
+
else if (this._aoEnabled) {
|
|
9925
|
+
this._blendShader.uniforms.tDiffuse1.value = this._aoRenderTarget.texture;
|
|
9926
|
+
}
|
|
9927
|
+
else if (this._aaEnabled) {
|
|
9928
|
+
this._blendShader.uniforms.tDiffuse1.value = this._aaRenderTarget.texture;
|
|
9929
|
+
}
|
|
9930
|
+
this._blendShader.uniforms.mixRatio.value = 0.2;
|
|
9931
|
+
this._blendComposer = new EffectComposer.EffectComposer(this._renderer);
|
|
9932
|
+
this._blendComposer.renderToScreen = true;
|
|
9933
|
+
this._blendComposer.addPass(this._renderPass);
|
|
9934
|
+
if (this._aaEnabled || this._aoEnabled) {
|
|
9935
|
+
this._blendComposer.addPass(this._blendShader);
|
|
9936
|
+
}
|
|
9937
|
+
// this._blendComposer.addPass(this._outputPass);
|
|
9805
9938
|
};
|
|
9806
9939
|
PostProcessingService.prototype._updatePass = function () {
|
|
9807
9940
|
this._n8aoPass.configuration.aoRadius = this._effectController.aoRadius;
|
|
@@ -9819,14 +9952,13 @@
|
|
|
9819
9952
|
this._n8aoPass.configuration.depthAwareUpsampling = this._effectController.depthAwareUpsampling;
|
|
9820
9953
|
this._n8aoPass.configuration.colorMultiply = this._effectController.colorMultiply;
|
|
9821
9954
|
this._n8aoPass.configuration.accumulate = this._effectController.accumulate;
|
|
9955
|
+
this._n8aoPass.configuration.gammaCorrection = this._effectController.gammaCorrection;
|
|
9822
9956
|
this.render();
|
|
9823
9957
|
};
|
|
9824
9958
|
PostProcessingService.prototype._createGuiTaaPass = function () {
|
|
9825
9959
|
var _this = this;
|
|
9826
|
-
this._taaPassGui = new GUI__default["default"]();
|
|
9827
|
-
this._taaPassGui.hide();
|
|
9828
9960
|
var param = { TAAEnabled: '1', TAASampleLevel: 0 };
|
|
9829
|
-
this.
|
|
9961
|
+
this._postProcessingGui.add(param, 'TAAEnabled', {
|
|
9830
9962
|
'Disabled': '0',
|
|
9831
9963
|
'Enabled': '1'
|
|
9832
9964
|
}).onFinishChange(function () {
|
|
@@ -9835,7 +9967,7 @@
|
|
|
9835
9967
|
}
|
|
9836
9968
|
_this.render();
|
|
9837
9969
|
});
|
|
9838
|
-
this.
|
|
9970
|
+
this._postProcessingGui.add(param, 'TAASampleLevel', {
|
|
9839
9971
|
'Level 0: 1 Sample': 0,
|
|
9840
9972
|
'Level 1: 2 Samples': 1,
|
|
9841
9973
|
'Level 2: 4 Samples': 2,
|
|
@@ -9848,27 +9980,12 @@
|
|
|
9848
9980
|
}
|
|
9849
9981
|
_this.render();
|
|
9850
9982
|
});
|
|
9851
|
-
this._taaPassGui.open();
|
|
9852
|
-
};
|
|
9853
|
-
PostProcessingService.prototype.setSize = function (width, height) {
|
|
9854
|
-
this._composer.setSize(width, height);
|
|
9855
|
-
};
|
|
9856
|
-
PostProcessingService.prototype.render = function () {
|
|
9857
|
-
this._composer.render();
|
|
9858
|
-
};
|
|
9859
|
-
PostProcessingService.prototype.showGui = function () {
|
|
9860
|
-
this._postProcessingGui.show(true);
|
|
9861
|
-
};
|
|
9862
|
-
PostProcessingService.prototype.hideGui = function () {
|
|
9863
|
-
this._postProcessingGui.hide();
|
|
9864
9983
|
};
|
|
9865
9984
|
PostProcessingService.prototype._showHideGui = function (show) {
|
|
9866
9985
|
show ? this.showGui() : this.hideGui();
|
|
9867
9986
|
};
|
|
9868
9987
|
PostProcessingService.prototype._createGui = function () {
|
|
9869
9988
|
var _this = this;
|
|
9870
|
-
this._postProcessingGui = new GUI__default["default"]();
|
|
9871
|
-
this._postProcessingGui.hide();
|
|
9872
9989
|
this._postProcessingGui.add(this._effectController, 'aoSamples', 1.0, 64.0, 1.0).onChange(function () { return _this._updatePass(); });
|
|
9873
9990
|
this._postProcessingGui.add(this._effectController, 'denoiseSamples', 1.0, 64.0, 1.0).onChange(function () { return _this._updatePass(); });
|
|
9874
9991
|
this._postProcessingGui.add(this._effectController, 'denoiseRadius', 0.0, 24.0, 0.01).onChange(function () { return _this._updatePass(); });
|
|
@@ -9895,6 +10012,9 @@
|
|
|
9895
10012
|
df.updateDisplay();
|
|
9896
10013
|
_this._updatePass();
|
|
9897
10014
|
});
|
|
10015
|
+
var blendShaderParams = {
|
|
10016
|
+
mixRatio: 0.5
|
|
10017
|
+
};
|
|
9898
10018
|
this._postProcessingGui.add(this._effectController, 'halfRes').onChange(function () { return _this._updatePass(); });
|
|
9899
10019
|
this._postProcessingGui.add(this._effectController, 'transparencyAware').onChange(function () { return _this._updatePass(); });
|
|
9900
10020
|
this._postProcessingGui.add(this._effectController, 'depthAwareUpsampling').onChange(function () { return _this._updatePass(); });
|
|
@@ -9903,38 +10023,24 @@
|
|
|
9903
10023
|
this._postProcessingGui.addColor(this._effectController, 'color').onChange(function () { return _this._updatePass(); });
|
|
9904
10024
|
this._postProcessingGui.add(this._effectController, 'colorMultiply').onChange(function () { return _this._updatePass(); });
|
|
9905
10025
|
this._postProcessingGui.add(this._effectController, 'accumulate').onChange(function () { return _this._updatePass(); });
|
|
10026
|
+
this._postProcessingGui.add(this._effectController, 'gammaCorrection').onChange(function () { return _this._updatePass(); });
|
|
9906
10027
|
this._postProcessingGui.add(this._effectController, 'renderMode', ['Combined', 'AO', 'No AO', 'Split', 'Split AO']).onChange(function () { return _this._updatePass(); });
|
|
10028
|
+
this._postProcessingGui.add(blendShaderParams, 'mixRatio', 0.0, 10.0, 0.01).onChange(function () {
|
|
10029
|
+
_this._blendShader.uniforms.mixRatio.value = blendShaderParams.mixRatio;
|
|
10030
|
+
_this.render();
|
|
10031
|
+
});
|
|
9907
10032
|
};
|
|
9908
10033
|
return PostProcessingService;
|
|
9909
10034
|
}());
|
|
9910
|
-
PostProcessingService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PostProcessingService, deps: [{ token: ConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
10035
|
+
PostProcessingService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PostProcessingService, deps: [{ token: ConfigurationService }, { token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
9911
10036
|
PostProcessingService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PostProcessingService, providedIn: 'root' });
|
|
9912
10037
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PostProcessingService, decorators: [{
|
|
9913
10038
|
type: i0.Injectable,
|
|
9914
10039
|
args: [{
|
|
9915
10040
|
providedIn: 'root'
|
|
9916
10041
|
}]
|
|
9917
|
-
}], ctorParameters: function () { return [{ type: ConfigurationService }]; } });
|
|
10042
|
+
}], ctorParameters: function () { return [{ type: ConfigurationService }, { type: HomedecoratorSettingsService }]; } });
|
|
9918
10043
|
|
|
9919
|
-
var __awaiter$13 = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9920
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9921
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9922
|
-
function fulfilled(value) { try {
|
|
9923
|
-
step(generator.next(value));
|
|
9924
|
-
}
|
|
9925
|
-
catch (e) {
|
|
9926
|
-
reject(e);
|
|
9927
|
-
} }
|
|
9928
|
-
function rejected(value) { try {
|
|
9929
|
-
step(generator["throw"](value));
|
|
9930
|
-
}
|
|
9931
|
-
catch (e) {
|
|
9932
|
-
reject(e);
|
|
9933
|
-
} }
|
|
9934
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9935
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9936
|
-
});
|
|
9937
|
-
};
|
|
9938
10044
|
var SsrService = /** @class */ (function () {
|
|
9939
10045
|
function SsrService(_settingsService) {
|
|
9940
10046
|
this._settingsService = _settingsService;
|
|
@@ -9957,70 +10063,6 @@
|
|
|
9957
10063
|
SsrService.prototype.ngOnDestroy = function () {
|
|
9958
10064
|
this._subs.forEach(function (s) { return s.unsubscribe(); });
|
|
9959
10065
|
};
|
|
9960
|
-
SsrService.prototype.init = function () {
|
|
9961
|
-
var _this = this;
|
|
9962
|
-
var socket = new WebSocket('ws://localhost:7005');
|
|
9963
|
-
var peerConnection = new RTCPeerConnection({
|
|
9964
|
-
iceServers: [{ urls: 'stun:stun.1.google.com:19302' }]
|
|
9965
|
-
});
|
|
9966
|
-
peerConnection.onicecandidate = function (event) {
|
|
9967
|
-
if (event.candidate) {
|
|
9968
|
-
socket.send(JSON.stringify({ candidate: event.candidate }));
|
|
9969
|
-
}
|
|
9970
|
-
};
|
|
9971
|
-
peerConnection.ontrack = function (event) {
|
|
9972
|
-
var remoteVideo = document.getElementById('remoteVideo');
|
|
9973
|
-
// @ts-ignore
|
|
9974
|
-
if (remoteVideo.srcObject !== event.streams[0]) {
|
|
9975
|
-
// @ts-ignore
|
|
9976
|
-
remoteVideo.srcObject = event.streams[0];
|
|
9977
|
-
}
|
|
9978
|
-
};
|
|
9979
|
-
socket.onmessage = function (message) { return __awaiter$13(_this, void 0, void 0, function () {
|
|
9980
|
-
var text, data, answer, e_1, e_2;
|
|
9981
|
-
return __generator(this, function (_a) {
|
|
9982
|
-
switch (_a.label) {
|
|
9983
|
-
case 0:
|
|
9984
|
-
_a.trys.push([0, 10, , 11]);
|
|
9985
|
-
return [4 /*yield*/, message.data.text()];
|
|
9986
|
-
case 1:
|
|
9987
|
-
text = _a.sent();
|
|
9988
|
-
data = JSON.parse(text);
|
|
9989
|
-
if (!data.offer) return [3 /*break*/, 5];
|
|
9990
|
-
return [4 /*yield*/, peerConnection.setRemoteDescription(new RTCSessionDescription(data.offer))];
|
|
9991
|
-
case 2:
|
|
9992
|
-
_a.sent();
|
|
9993
|
-
return [4 /*yield*/, peerConnection.createAnswer()];
|
|
9994
|
-
case 3:
|
|
9995
|
-
answer = _a.sent();
|
|
9996
|
-
return [4 /*yield*/, peerConnection.setLocalDescription(answer)];
|
|
9997
|
-
case 4:
|
|
9998
|
-
_a.sent();
|
|
9999
|
-
socket.send(JSON.stringify({ answer: peerConnection.localDescription }));
|
|
10000
|
-
return [3 /*break*/, 9];
|
|
10001
|
-
case 5:
|
|
10002
|
-
if (!data.candidate) return [3 /*break*/, 9];
|
|
10003
|
-
_a.label = 6;
|
|
10004
|
-
case 6:
|
|
10005
|
-
_a.trys.push([6, 8, , 9]);
|
|
10006
|
-
return [4 /*yield*/, peerConnection.addIceCandidate(new RTCIceCandidate(data.candidate))];
|
|
10007
|
-
case 7:
|
|
10008
|
-
_a.sent();
|
|
10009
|
-
return [3 /*break*/, 9];
|
|
10010
|
-
case 8:
|
|
10011
|
-
e_1 = _a.sent();
|
|
10012
|
-
console.error('Error adding ICE-Candidate', e_1);
|
|
10013
|
-
return [3 /*break*/, 9];
|
|
10014
|
-
case 9: return [3 /*break*/, 11];
|
|
10015
|
-
case 10:
|
|
10016
|
-
e_2 = _a.sent();
|
|
10017
|
-
console.error(e_2);
|
|
10018
|
-
return [3 /*break*/, 11];
|
|
10019
|
-
case 11: return [2 /*return*/];
|
|
10020
|
-
}
|
|
10021
|
-
});
|
|
10022
|
-
}); };
|
|
10023
|
-
};
|
|
10024
10066
|
SsrService.prototype.sceneChanged = function (scene) {
|
|
10025
10067
|
if (this._websocket.readyState === WebSocket.OPEN) {
|
|
10026
10068
|
var sceneClone = scene.clone(true);
|
|
@@ -10028,7 +10070,7 @@
|
|
|
10028
10070
|
}
|
|
10029
10071
|
};
|
|
10030
10072
|
SsrService.prototype._prepareWebsocket = function () {
|
|
10031
|
-
if (!this._settingsService.settings.newRenderParameters.websocket) {
|
|
10073
|
+
if (!this._settingsService.settings.options.useRenderWebsocket || !this._settingsService.settings.newRenderParameters.websocket) {
|
|
10032
10074
|
return;
|
|
10033
10075
|
}
|
|
10034
10076
|
var webSocketConnection = this._settingsService.settings.newRenderParameters.websocket;
|
|
@@ -10134,56 +10176,63 @@
|
|
|
10134
10176
|
configurable: true
|
|
10135
10177
|
});
|
|
10136
10178
|
SceneService.prototype.init = function (element) {
|
|
10137
|
-
|
|
10138
|
-
|
|
10139
|
-
this._initScene();
|
|
10140
|
-
this._initRenderer();
|
|
10141
|
-
this._initCamera();
|
|
10142
|
-
this._initOutline();
|
|
10143
|
-
this._initPostProcessing();
|
|
10144
|
-
this._animate();
|
|
10145
|
-
this._subs.push(this._cameraService.cameraMovementChanged.subscribe(function () {
|
|
10146
|
-
_this.needsRender = true;
|
|
10147
|
-
}), this._messageBusService.subscribe(MessageType.TakeScreenshot, function () { return __awaiter$12(_this, void 0, void 0, function () {
|
|
10148
|
-
var dataUrl;
|
|
10179
|
+
return __awaiter$12(this, void 0, void 0, function () {
|
|
10180
|
+
var _this = this;
|
|
10149
10181
|
return __generator(this, function (_a) {
|
|
10150
|
-
|
|
10151
|
-
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
|
|
10182
|
+
this.domElement = element;
|
|
10183
|
+
this._initScene();
|
|
10184
|
+
this._initRenderer();
|
|
10185
|
+
this._initCamera();
|
|
10186
|
+
this._initOutline();
|
|
10187
|
+
this._initPostProcessing();
|
|
10188
|
+
this._animate();
|
|
10189
|
+
this._subs.push(this._cameraService.cameraMovementChanged.subscribe(function () {
|
|
10190
|
+
_this.needsRender = true;
|
|
10191
|
+
}), this._messageBusService.subscribe(MessageType.TakeScreenshot, function () { return __awaiter$12(_this, void 0, void 0, function () {
|
|
10192
|
+
var dataUrl;
|
|
10193
|
+
return __generator(this, function (_a) {
|
|
10194
|
+
if (this._viewModeService.is3dViewActive() || this._viewModeService.isTopViewActive()) {
|
|
10195
|
+
this.renderer.render(this.scene, this._cameraService.camera);
|
|
10196
|
+
dataUrl = this.renderer.domElement.toDataURL('image/jpeg');
|
|
10197
|
+
FileUtils.DownloadFromDataUri(dataUrl, "MyRoomplan" + new Date().toISOString() + ".jpeg");
|
|
10198
|
+
}
|
|
10199
|
+
return [2 /*return*/];
|
|
10200
|
+
});
|
|
10201
|
+
}); }), this._arService.shouldAddObjectToScene.subscribe(function (object) {
|
|
10202
|
+
_this.arMode = false;
|
|
10203
|
+
_this.addObject(object);
|
|
10204
|
+
}), this._viewModeService.viewModeChanged.subscribe(function (mode) {
|
|
10205
|
+
// if (this._is3DMode(mode)) {
|
|
10206
|
+
// this._animate();
|
|
10207
|
+
// } else {
|
|
10208
|
+
// this._pauseAnimation();
|
|
10209
|
+
// }
|
|
10210
|
+
if (mode === ViewMode.VR) {
|
|
10211
|
+
_this._vrService.init(_this.scene, _this.renderer);
|
|
10212
|
+
}
|
|
10213
|
+
else {
|
|
10214
|
+
_this._vrService.endSession();
|
|
10215
|
+
}
|
|
10216
|
+
}), this._settingsService.settingsLoaded.subscribe(function (loaded) {
|
|
10217
|
+
if (loaded) {
|
|
10218
|
+
_this._initPathTracer();
|
|
10219
|
+
_this._maxRenderSamples = _this._settingsService.settings.options.maxRenderSamples;
|
|
10220
|
+
_this._ssrService.enabled = _this._settingsService.settings.options.ssrEnabled;
|
|
10221
|
+
}
|
|
10222
|
+
})
|
|
10223
|
+
// this._xrService.sessionStarted.subscribe((mode: XrMode) => {
|
|
10224
|
+
// if (mode === XrMode.ArMode) {
|
|
10225
|
+
// this._animateAr();
|
|
10226
|
+
// }
|
|
10227
|
+
// })
|
|
10228
|
+
);
|
|
10229
|
+
this._xrService.init(this.renderer, this.scene, this._cameraService.camera);
|
|
10230
|
+
// const hdriPath: string = '/assets/hdri/TSStudio3Point.hdr';
|
|
10231
|
+
// await ObjectUtils.LoadHDRI(hdriPath, this.scene);
|
|
10232
|
+
this.sceneInitialized.next(true);
|
|
10155
10233
|
return [2 /*return*/];
|
|
10156
10234
|
});
|
|
10157
|
-
});
|
|
10158
|
-
_this.arMode = false;
|
|
10159
|
-
_this.addObject(object);
|
|
10160
|
-
}), this._viewModeService.viewModeChanged.subscribe(function (mode) {
|
|
10161
|
-
// if (this._is3DMode(mode)) {
|
|
10162
|
-
// this._animate();
|
|
10163
|
-
// } else {
|
|
10164
|
-
// this._pauseAnimation();
|
|
10165
|
-
// }
|
|
10166
|
-
if (mode === ViewMode.VR) {
|
|
10167
|
-
_this._vrService.init(_this.scene, _this.renderer);
|
|
10168
|
-
}
|
|
10169
|
-
else {
|
|
10170
|
-
_this._vrService.endSession();
|
|
10171
|
-
}
|
|
10172
|
-
}), this._settingsService.settingsLoaded.subscribe(function (loaded) {
|
|
10173
|
-
if (loaded) {
|
|
10174
|
-
_this._initPathTracer();
|
|
10175
|
-
_this._maxRenderSamples = _this._settingsService.settings.options.maxRenderSamples;
|
|
10176
|
-
_this._ssrService.enabled = _this._settingsService.settings.options.ssrEnabled;
|
|
10177
|
-
}
|
|
10178
|
-
})
|
|
10179
|
-
// this._xrService.sessionStarted.subscribe((mode: XrMode) => {
|
|
10180
|
-
// if (mode === XrMode.ArMode) {
|
|
10181
|
-
// this._animateAr();
|
|
10182
|
-
// }
|
|
10183
|
-
// })
|
|
10184
|
-
);
|
|
10185
|
-
this._xrService.init(this.renderer, this.scene, this._cameraService.camera);
|
|
10186
|
-
this.sceneInitialized.next(true);
|
|
10235
|
+
});
|
|
10187
10236
|
};
|
|
10188
10237
|
SceneService.prototype.addObject = function (obj, forceRender) {
|
|
10189
10238
|
if (forceRender === void 0) { forceRender = true; }
|
|
@@ -10295,7 +10344,7 @@
|
|
|
10295
10344
|
var canvasElement, context;
|
|
10296
10345
|
return __generator(this, function (_a) {
|
|
10297
10346
|
canvasElement = document.createElement('canvas');
|
|
10298
|
-
context = canvasElement.getContext('webgl2'
|
|
10347
|
+
context = canvasElement.getContext('webgl2');
|
|
10299
10348
|
this.webGL2Available = context !== undefined;
|
|
10300
10349
|
// this.renderer = new WebGPURenderer({ alpha: true, antialias: true });
|
|
10301
10350
|
// this.renderer =
|
|
@@ -10309,15 +10358,21 @@
|
|
|
10309
10358
|
// logarithmicDepthBuffer: true*/
|
|
10310
10359
|
// });
|
|
10311
10360
|
// this.renderer = new WebGLRenderer({alpha: true, antialias: false, preserveDrawingBuffer: true, premultipliedAlpha: true});
|
|
10312
|
-
this.renderer = new THREE.WebGLRenderer(
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10361
|
+
this.renderer = new THREE.WebGLRenderer({
|
|
10362
|
+
/*
|
|
10363
|
+
precision: 'highp',
|
|
10364
|
+
powerPreference: 'high-performance',
|
|
10365
|
+
*/
|
|
10366
|
+
/*
|
|
10367
|
+
antialias: true,
|
|
10368
|
+
*/
|
|
10369
|
+
/*
|
|
10370
|
+
stencil: false,
|
|
10371
|
+
depth: false
|
|
10372
|
+
*/
|
|
10373
|
+
});
|
|
10319
10374
|
this.renderer.outputColorSpace = THREE.SRGBColorSpace;
|
|
10320
|
-
this.renderer.autoClear =
|
|
10375
|
+
this.renderer.autoClear = true;
|
|
10321
10376
|
this.renderer.setPixelRatio(window.devicePixelRatio);
|
|
10322
10377
|
this.renderer.toneMapping = THREE.NoToneMapping; // ACESFilmicToneMapping; // LinearToneMapping;
|
|
10323
10378
|
this.renderer.shadowMap.enabled = true;
|
|
@@ -10367,29 +10422,29 @@
|
|
|
10367
10422
|
this._numberOfSamplesRendered = Math.floor(this.pathTracer.samples);
|
|
10368
10423
|
}
|
|
10369
10424
|
else {
|
|
10370
|
-
if (this._needsRender || this.arMode || this._viewModeService.isVRViewActive() || this._outlineService.needsRender) {
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
10376
|
-
|
|
10425
|
+
// if (this._needsRender || this.arMode || this._viewModeService.isVRViewActive() || this._outlineService.needsRender) {
|
|
10426
|
+
this.renderer.clear();
|
|
10427
|
+
if (this._arMode && frame) {
|
|
10428
|
+
this._arService.handleFrame(frame);
|
|
10429
|
+
}
|
|
10430
|
+
else if (this._viewModeService.isVRViewActive()) {
|
|
10431
|
+
this._vrService.render();
|
|
10432
|
+
}
|
|
10433
|
+
else {
|
|
10434
|
+
this.onBeforeRender.next({ renderer: this.renderer, scene: this.scene });
|
|
10435
|
+
if (!this._settingsService.settings.options.aaEnabled && !this._settingsService.settings.options.aoEnabled) {
|
|
10436
|
+
// this.renderer.render(this.scene, this._cameraService.camera);
|
|
10437
|
+
this._outlineService.render();
|
|
10377
10438
|
}
|
|
10378
10439
|
else {
|
|
10379
|
-
this.
|
|
10380
|
-
|
|
10381
|
-
this.renderer.render(this.scene, this._cameraService.camera);
|
|
10382
|
-
}
|
|
10383
|
-
else {
|
|
10384
|
-
this._postProcessing.render();
|
|
10385
|
-
this._outlineService.render();
|
|
10386
|
-
}
|
|
10387
|
-
// this.renderer.render(this.scene, this._cameraService.camera);
|
|
10440
|
+
this._postProcessing.render();
|
|
10441
|
+
// this._outlineService.render();
|
|
10388
10442
|
}
|
|
10389
|
-
this.onAfterRender.next({ renderer: this.renderer, scene: this.scene });
|
|
10390
|
-
this._outlineService.needsRender = false;
|
|
10391
|
-
this.needsRender = false;
|
|
10392
10443
|
}
|
|
10444
|
+
this.onAfterRender.next({ renderer: this.renderer, scene: this.scene });
|
|
10445
|
+
this._outlineService.needsRender = false;
|
|
10446
|
+
this.needsRender = false;
|
|
10447
|
+
// }
|
|
10393
10448
|
}
|
|
10394
10449
|
};
|
|
10395
10450
|
SceneService.prototype._animate = function () {
|
|
@@ -10477,7 +10532,7 @@
|
|
|
10477
10532
|
// }
|
|
10478
10533
|
//
|
|
10479
10534
|
var PresetsService = /** @class */ (function () {
|
|
10480
|
-
function PresetsService(_appStateService, _permanentStoreService, _jsonUtils, _messageService, _settingsService, _configurationService, _storageService, _progressService, _sceneService) {
|
|
10535
|
+
function PresetsService(_appStateService, _permanentStoreService, _jsonUtils, _messageService, _settingsService, _configurationService, _storageService, _progressService, _sceneService, _eventService) {
|
|
10481
10536
|
var _this = this;
|
|
10482
10537
|
this._appStateService = _appStateService;
|
|
10483
10538
|
this._permanentStoreService = _permanentStoreService;
|
|
@@ -10488,6 +10543,7 @@
|
|
|
10488
10543
|
this._storageService = _storageService;
|
|
10489
10544
|
this._progressService = _progressService;
|
|
10490
10545
|
this._sceneService = _sceneService;
|
|
10546
|
+
this._eventService = _eventService;
|
|
10491
10547
|
// public static presetsPath = '/assets/presets';
|
|
10492
10548
|
this.isLoading = false;
|
|
10493
10549
|
this.beforeLoad = new rxjs.Subject();
|
|
@@ -10552,6 +10608,9 @@
|
|
|
10552
10608
|
_b.label = 2;
|
|
10553
10609
|
case 2:
|
|
10554
10610
|
modelObj = JSON.parse(preset.model);
|
|
10611
|
+
if (modelObj.floorplan && modelObj.floorplan.corners && Object.keys(modelObj.floorplan.corners).length > 0) {
|
|
10612
|
+
this._eventService.dirty.next(true);
|
|
10613
|
+
}
|
|
10555
10614
|
return [2 /*return*/, JSON.stringify(!modelObj.hasOwnProperty('needRescale') ? this._reScaleModel(modelObj) : modelObj)];
|
|
10556
10615
|
}
|
|
10557
10616
|
});
|
|
@@ -10559,7 +10618,10 @@
|
|
|
10559
10618
|
};
|
|
10560
10619
|
PresetsService.prototype._loadSavedRoomFromCloud = function (code) {
|
|
10561
10620
|
var _this = this;
|
|
10562
|
-
this._loadRoomPlan(function () { return new Promise(function (resolve) {
|
|
10621
|
+
this._loadRoomPlan(function () { return new Promise(function (resolve) {
|
|
10622
|
+
_this._eventService.dirty.next(true);
|
|
10623
|
+
_this._permanentStoreService.load(code).subscribe(function (json) { return resolve(JSON.stringify(json)); });
|
|
10624
|
+
}); });
|
|
10563
10625
|
};
|
|
10564
10626
|
PresetsService.prototype._clear = function () {
|
|
10565
10627
|
return __awaiter$11(this, void 0, void 0, function () {
|
|
@@ -10797,14 +10859,14 @@
|
|
|
10797
10859
|
};
|
|
10798
10860
|
return PresetsService;
|
|
10799
10861
|
}());
|
|
10800
|
-
PresetsService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PresetsService, deps: [{ token: AppStateService }, { token: PermanentStoreService }, { token: JsonUtilsService }, { token: MessageBusService }, { token: HomedecoratorSettingsService }, { token: ConfigurationService }, { token: LocalStorageService }, { token: ProgressService }, { token: SceneService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
10862
|
+
PresetsService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PresetsService, deps: [{ token: AppStateService }, { token: PermanentStoreService }, { token: JsonUtilsService }, { token: MessageBusService }, { token: HomedecoratorSettingsService }, { token: ConfigurationService }, { token: LocalStorageService }, { token: ProgressService }, { token: SceneService }, { token: HomedecoratorAppEventService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
10801
10863
|
PresetsService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PresetsService, providedIn: 'root' });
|
|
10802
10864
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PresetsService, decorators: [{
|
|
10803
10865
|
type: i0.Injectable,
|
|
10804
10866
|
args: [{
|
|
10805
10867
|
providedIn: 'root'
|
|
10806
10868
|
}]
|
|
10807
|
-
}], ctorParameters: function () { return [{ type: AppStateService }, { type: PermanentStoreService }, { type: JsonUtilsService }, { type: MessageBusService }, { type: HomedecoratorSettingsService }, { type: ConfigurationService }, { type: LocalStorageService }, { type: ProgressService }, { type: SceneService }]; } });
|
|
10869
|
+
}], ctorParameters: function () { return [{ type: AppStateService }, { type: PermanentStoreService }, { type: JsonUtilsService }, { type: MessageBusService }, { type: HomedecoratorSettingsService }, { type: ConfigurationService }, { type: LocalStorageService }, { type: ProgressService }, { type: SceneService }, { type: HomedecoratorAppEventService }]; } });
|
|
10808
10870
|
|
|
10809
10871
|
var DeviceSizeType;
|
|
10810
10872
|
(function (DeviceSizeType) {
|
|
@@ -11099,7 +11161,9 @@
|
|
|
11099
11161
|
});
|
|
11100
11162
|
};
|
|
11101
11163
|
LoadingOverlayComponent.prototype.hideLoadingIndicator = function () {
|
|
11102
|
-
this.loadingDialogRef
|
|
11164
|
+
if (this.loadingDialogRef) {
|
|
11165
|
+
this.loadingDialogRef.close();
|
|
11166
|
+
}
|
|
11103
11167
|
};
|
|
11104
11168
|
return LoadingOverlayComponent;
|
|
11105
11169
|
}());
|
|
@@ -14309,8 +14373,8 @@
|
|
|
14309
14373
|
/* tslint:disable */
|
|
14310
14374
|
var VersionInfo = {
|
|
14311
14375
|
application: "Homedecorator",
|
|
14312
|
-
appVersion: "255.1.
|
|
14313
|
-
revision: "
|
|
14376
|
+
appVersion: "255.1.6",
|
|
14377
|
+
revision: "112253"
|
|
14314
14378
|
};
|
|
14315
14379
|
/* tslint:enable */
|
|
14316
14380
|
|
|
@@ -15026,7 +15090,7 @@
|
|
|
15026
15090
|
});
|
|
15027
15091
|
var origScale = this.metadata.scale ? new THREE.Vector3(1, 1, 1).divide(this.metadata.scale) : new THREE.Vector3(1, 1, 1);
|
|
15028
15092
|
var metadata = Object.assign({}, this.metadata);
|
|
15029
|
-
metadata.skin = this.skin;
|
|
15093
|
+
metadata.skin = Object.assign({}, this.skin);
|
|
15030
15094
|
var copy = new CustomShapeFloorItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
15031
15095
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
15032
15096
|
copy.calculateHalfSize();
|
|
@@ -15091,7 +15155,7 @@
|
|
|
15091
15155
|
});
|
|
15092
15156
|
var origScale = this.metadata.scale ? new THREE.Vector3(1, 1, 1).divide(this.metadata.scale) : new THREE.Vector3(1, 1, 1);
|
|
15093
15157
|
var metadata = Object.assign({}, this.metadata);
|
|
15094
|
-
metadata.skin = this.skin;
|
|
15158
|
+
metadata.skin = Object.assign({}, this.skin);
|
|
15095
15159
|
var copy = new CustomCylinderFloorItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
15096
15160
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
15097
15161
|
copy.calculateHalfSize();
|
|
@@ -15317,7 +15381,8 @@
|
|
|
15317
15381
|
case hdecoPlacement_enum.HdecoPlacement.FloorWall:
|
|
15318
15382
|
return ItemType.CustomWallFloor;
|
|
15319
15383
|
case hdecoPlacement_enum.HdecoPlacement.Ceiling:
|
|
15320
|
-
|
|
15384
|
+
// TODO implement ceiling placement the correct way.
|
|
15385
|
+
return ItemType.CustomFloorGroup;
|
|
15321
15386
|
case hdecoPlacement_enum.HdecoPlacement.WallDecoration:
|
|
15322
15387
|
return ItemType.WallDecoration;
|
|
15323
15388
|
case hdecoPlacement_enum.HdecoPlacement.WindowDecoration:
|
|
@@ -15577,12 +15642,13 @@
|
|
|
15577
15642
|
});
|
|
15578
15643
|
};
|
|
15579
15644
|
var FloorService = /** @class */ (function () {
|
|
15580
|
-
function FloorService(_sceneService, _outlineService, _itemService, _settingsService) {
|
|
15645
|
+
function FloorService(_sceneService, _outlineService, _itemService, _settingsService, _messageService) {
|
|
15581
15646
|
var _this = this;
|
|
15582
15647
|
this._sceneService = _sceneService;
|
|
15583
15648
|
this._outlineService = _outlineService;
|
|
15584
15649
|
this._itemService = _itemService;
|
|
15585
15650
|
this._settingsService = _settingsService;
|
|
15651
|
+
this._messageService = _messageService;
|
|
15586
15652
|
this._floors = [];
|
|
15587
15653
|
this._subs = [];
|
|
15588
15654
|
this._subs.push(this._sceneService.sceneInitialized.subscribe(function (initialized) {
|
|
@@ -15636,6 +15702,8 @@
|
|
|
15636
15702
|
else {
|
|
15637
15703
|
this._updateFloorMaterial(this._floors[0], floorMaterial, texture);
|
|
15638
15704
|
}
|
|
15705
|
+
// emit new texture for appearance-section
|
|
15706
|
+
this._messageService.emit(MessageType.ChangeTexture, texture);
|
|
15639
15707
|
return [2 /*return*/];
|
|
15640
15708
|
}
|
|
15641
15709
|
});
|
|
@@ -15813,14 +15881,14 @@
|
|
|
15813
15881
|
};
|
|
15814
15882
|
return FloorService;
|
|
15815
15883
|
}());
|
|
15816
|
-
FloorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorService, deps: [{ token: SceneService }, { token: OutlineService }, { token: ItemService }, { token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
15884
|
+
FloorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorService, deps: [{ token: SceneService }, { token: OutlineService }, { token: ItemService }, { token: HomedecoratorSettingsService }, { token: MessageBusService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
15817
15885
|
FloorService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorService, providedIn: 'root' });
|
|
15818
15886
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorService, decorators: [{
|
|
15819
15887
|
type: i0.Injectable,
|
|
15820
15888
|
args: [{
|
|
15821
15889
|
providedIn: 'root'
|
|
15822
15890
|
}]
|
|
15823
|
-
}], ctorParameters: function () { return [{ type: SceneService }, { type: OutlineService }, { type: ItemService }, { type: HomedecoratorSettingsService }]; } });
|
|
15891
|
+
}], ctorParameters: function () { return [{ type: SceneService }, { type: OutlineService }, { type: ItemService }, { type: HomedecoratorSettingsService }, { type: MessageBusService }]; } });
|
|
15824
15892
|
|
|
15825
15893
|
var CeilingService = /** @class */ (function () {
|
|
15826
15894
|
function CeilingService(_sceneService, _configurationService) {
|
|
@@ -15968,7 +16036,7 @@
|
|
|
15968
16036
|
this._subs = [];
|
|
15969
16037
|
this._subs.push(this._appService.floorTexturesLoaded.subscribe(function (floors) {
|
|
15970
16038
|
if (floors) {
|
|
15971
|
-
_this._defaultFloorTexture = floors.find(function (f) { return f.default === true; });
|
|
16039
|
+
_this._defaultFloorTexture = floors.find(function (f) { return f.default === true && !f.useStandalone; });
|
|
15972
16040
|
}
|
|
15973
16041
|
}), this._cameraService.cameraMovementChanged.subscribe(function () { return _this._updateEdgeVisibility(_this._cameraService.camera.position); }), this._presetService.afterLoad.subscribe(function () { return _this._updateEdgeVisibility(_this._cameraService.camera.position); }), this._viewModeService.viewModeChanged.subscribe(function (mode) { return __awaiter$W(_this, void 0, void 0, function () {
|
|
15974
16042
|
return __generator(this, function (_a) {
|
|
@@ -16218,6 +16286,9 @@
|
|
|
16218
16286
|
}
|
|
16219
16287
|
});
|
|
16220
16288
|
};
|
|
16289
|
+
RoomService.prototype.resetAllRooms = function () {
|
|
16290
|
+
this.rooms = [];
|
|
16291
|
+
};
|
|
16221
16292
|
RoomService.prototype._showHideWalls = function (show) {
|
|
16222
16293
|
this.walls.forEach(function (w) { return w.showHideWall(show); });
|
|
16223
16294
|
this._sceneService.needsRender = true;
|
|
@@ -17463,7 +17534,7 @@
|
|
|
17463
17534
|
});
|
|
17464
17535
|
var origScale = this.metadata.scale ? new THREE.Vector3(1, 1, 1).divide(this.metadata.scale) : new THREE.Vector3(1, 1, 1);
|
|
17465
17536
|
var metadata = Object.assign({}, this.metadata);
|
|
17466
|
-
metadata.skin = this.skin;
|
|
17537
|
+
metadata.skin = Object.assign({}, this.skin);
|
|
17467
17538
|
var copy = new CustomShapeWallItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
17468
17539
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
17469
17540
|
copy.calculateHalfSize();
|
|
@@ -17522,7 +17593,7 @@
|
|
|
17522
17593
|
});
|
|
17523
17594
|
var origScale = this.metadata.scale ? new THREE.Vector3(1, 1, 1).divide(this.metadata.scale) : new THREE.Vector3(1, 1, 1);
|
|
17524
17595
|
var metadata = Object.assign({}, this.metadata);
|
|
17525
|
-
metadata.skin = this.skin;
|
|
17596
|
+
metadata.skin = Object.assign({}, this.skin);
|
|
17526
17597
|
var copy = new CustomCylinderWallItem(metadata, new THREE.Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
|
|
17527
17598
|
copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
|
|
17528
17599
|
copy.calculateHalfSize();
|
|
@@ -19631,7 +19702,7 @@
|
|
|
19631
19702
|
_this.messageService.emit(MessageType.ShowLoadingIndicator, { title: 'Rendering...' });
|
|
19632
19703
|
_this.requestRender(filename, camera, standalone, renderParameters);
|
|
19633
19704
|
}).catch(function (error) {
|
|
19634
|
-
|
|
19705
|
+
_this.messageService.emit(MessageType.RenderError, { title: 'Upload error', message: error.message });
|
|
19635
19706
|
});
|
|
19636
19707
|
return [2 /*return*/];
|
|
19637
19708
|
});
|
|
@@ -19675,8 +19746,8 @@
|
|
|
19675
19746
|
return dataURL;
|
|
19676
19747
|
};
|
|
19677
19748
|
}
|
|
19678
|
-
}).catch(function (
|
|
19679
|
-
|
|
19749
|
+
}).catch(function (error) {
|
|
19750
|
+
_this.messageService.emit(MessageType.RenderError, { title: 'Render error', message: error.message });
|
|
19680
19751
|
})];
|
|
19681
19752
|
case 1:
|
|
19682
19753
|
_a.sent();
|
|
@@ -21774,19 +21845,16 @@
|
|
|
21774
21845
|
case 0:
|
|
21775
21846
|
this._overrideDefaultCursorStyle('pointer');
|
|
21776
21847
|
point = this._pointOnFloor(this._mousePosition);
|
|
21777
|
-
if (!point) return [3 /*break*/,
|
|
21848
|
+
if (!point) return [3 /*break*/, 2];
|
|
21778
21849
|
distance = this._camera.position.distanceTo(point);
|
|
21779
21850
|
this._hudService.exploreFloorHover(this._mousePosition, point, distance);
|
|
21780
|
-
if (!!this._mouseMoved) return [3 /*break*/,
|
|
21781
|
-
return [4 /*yield*/, this._hudService.confirmExplore()];
|
|
21782
|
-
case 1:
|
|
21783
|
-
_a.sent();
|
|
21851
|
+
if (!!this._mouseMoved) return [3 /*break*/, 2];
|
|
21784
21852
|
return [4 /*yield*/, this._cameraService.controls.animateMoveTo(point)];
|
|
21785
|
-
case
|
|
21853
|
+
case 1:
|
|
21786
21854
|
_a.sent();
|
|
21787
21855
|
this._updateExplorePoint();
|
|
21788
|
-
_a.label =
|
|
21789
|
-
case
|
|
21856
|
+
_a.label = 2;
|
|
21857
|
+
case 2: return [2 /*return*/];
|
|
21790
21858
|
}
|
|
21791
21859
|
});
|
|
21792
21860
|
});
|
|
@@ -22296,12 +22364,20 @@
|
|
|
22296
22364
|
}
|
|
22297
22365
|
};
|
|
22298
22366
|
SceneEventService.prototype._addToItemGroup = function (object, prevSelectedObject) {
|
|
22299
|
-
var isIntersectWithGroupMember
|
|
22300
|
-
if (
|
|
22301
|
-
|
|
22302
|
-
|
|
22367
|
+
var isIntersectWithGroupMember;
|
|
22368
|
+
if (object && object.parent !== null) {
|
|
22369
|
+
isIntersectWithGroupMember = object instanceof ItemGroup || object.parent instanceof ItemGroup;
|
|
22370
|
+
}
|
|
22371
|
+
else {
|
|
22372
|
+
isIntersectWithGroupMember = object instanceof ItemGroup;
|
|
22373
|
+
}
|
|
22374
|
+
if (object && object.configuring !== null) {
|
|
22375
|
+
if (!isIntersectWithGroupMember && !object.configuring && this._canGroupItems(object, prevSelectedObject)) {
|
|
22376
|
+
if (prevSelectedObject) {
|
|
22377
|
+
this._itemGroupService.addIfNotExist(prevSelectedObject);
|
|
22378
|
+
}
|
|
22379
|
+
this._itemGroupService.addOrRemoveIfExist(object);
|
|
22303
22380
|
}
|
|
22304
|
-
this._itemGroupService.addOrRemoveIfExist(object);
|
|
22305
22381
|
}
|
|
22306
22382
|
};
|
|
22307
22383
|
SceneEventService.prototype._canGroupFloorItem = function (item) {
|
|
@@ -24291,8 +24367,9 @@
|
|
|
24291
24367
|
var FloorPatternService = /** @class */ (function () {
|
|
24292
24368
|
function FloorPatternService() {
|
|
24293
24369
|
}
|
|
24294
|
-
FloorPatternService.prototype.generatePattern = function (floorPattern, plankSize, floorSize, direction) {
|
|
24370
|
+
FloorPatternService.prototype.generatePattern = function (floorPattern, plankSize, floorSize, direction, heartLine) {
|
|
24295
24371
|
if (direction === void 0) { direction = FloorPatternDirection.LYING; }
|
|
24372
|
+
if (heartLine === void 0) { heartLine = 0; }
|
|
24296
24373
|
var floorRotation = direction === FloorPatternDirection.STANDING ? 90 : 0;
|
|
24297
24374
|
var floorWidth = floorSize.x;
|
|
24298
24375
|
var floorLength = floorSize.z;
|
|
@@ -24300,15 +24377,18 @@
|
|
|
24300
24377
|
floorWidth = floorSize.z;
|
|
24301
24378
|
floorLength = floorSize.x;
|
|
24302
24379
|
}
|
|
24380
|
+
if (heartLine < 0)
|
|
24381
|
+
heartLine = heartLine * -1;
|
|
24382
|
+
heartLine = heartLine % 100 / 100;
|
|
24303
24383
|
switch (floorPattern) {
|
|
24304
24384
|
case FloorPattern.NORMAL:
|
|
24305
|
-
return this._normalPattern(plankSize, floorWidth, floorLength, floorRotation);
|
|
24385
|
+
return this._normalPattern(plankSize, floorWidth, floorLength, floorRotation, heartLine);
|
|
24306
24386
|
case FloorPattern.HERRINGBONE:
|
|
24307
|
-
return this._herringBone(plankSize, floorWidth, floorLength, floorRotation);
|
|
24387
|
+
return this._herringBone(plankSize, floorWidth, floorLength, floorRotation, heartLine);
|
|
24308
24388
|
case FloorPattern.HON45:
|
|
24309
|
-
return this._hon(plankSize, floorWidth, floorLength, floorRotation, 45);
|
|
24389
|
+
return this._hon(plankSize, floorWidth, floorLength, floorRotation, 45, heartLine);
|
|
24310
24390
|
case FloorPattern.HON60:
|
|
24311
|
-
return this._hon(plankSize, floorWidth, floorLength, floorRotation, 60);
|
|
24391
|
+
return this._hon(plankSize, floorWidth, floorLength, floorRotation, 60, heartLine);
|
|
24312
24392
|
}
|
|
24313
24393
|
};
|
|
24314
24394
|
FloorPatternService.prototype._rotatePatternOnZAxis = function (items, floorRotation) {
|
|
@@ -24322,14 +24402,15 @@
|
|
|
24322
24402
|
});
|
|
24323
24403
|
}
|
|
24324
24404
|
};
|
|
24325
|
-
FloorPatternService.prototype._normalPattern = function (plankSize, floorWidth, floorLength, floorRotation) {
|
|
24405
|
+
FloorPatternService.prototype._normalPattern = function (plankSize, floorWidth, floorLength, floorRotation, heartLine) {
|
|
24326
24406
|
var items = [];
|
|
24327
24407
|
var stepOffsetAmount = .4;
|
|
24328
24408
|
var plankWidth = plankSize.x;
|
|
24329
24409
|
var plankLength = plankSize.z;
|
|
24330
24410
|
var offsetSteps = plankWidth / stepOffsetAmount;
|
|
24411
|
+
var heartLineOffset = plankWidth * heartLine;
|
|
24331
24412
|
var rows = Math.ceil(floorLength / plankLength);
|
|
24332
|
-
var columns = Math.ceil(floorWidth / plankWidth);
|
|
24413
|
+
var columns = Math.ceil(floorWidth / plankWidth + heartLineOffset);
|
|
24333
24414
|
var centerOffsetX = (floorWidth / 2 * -1) + (plankWidth / 2);
|
|
24334
24415
|
var centerOffsetZ = (floorLength / 2 * -1) + (plankLength / 2);
|
|
24335
24416
|
var currentOffsetStep = 0;
|
|
@@ -24343,7 +24424,7 @@
|
|
|
24343
24424
|
for (var col = 0; col < planks; col++) {
|
|
24344
24425
|
var plankPosX = (plankWidth * col) - currentOffsetAmount;
|
|
24345
24426
|
items.push({
|
|
24346
|
-
position: new THREE.Vector3(plankPosX + centerOffsetX, 0, plankPosZ + centerOffsetZ),
|
|
24427
|
+
position: new THREE.Vector3(plankPosX + centerOffsetX - heartLineOffset, 0, plankPosZ + centerOffsetZ),
|
|
24347
24428
|
rotation: new THREE.Vector3(0, THREE.MathUtils.degToRad(floorRotation), 0),
|
|
24348
24429
|
isLeft: true
|
|
24349
24430
|
});
|
|
@@ -24353,7 +24434,7 @@
|
|
|
24353
24434
|
this._rotatePatternOnZAxis(items, floorRotation);
|
|
24354
24435
|
return items;
|
|
24355
24436
|
};
|
|
24356
|
-
FloorPatternService.prototype._herringBone = function (plankSize, floorWidth, floorLength, floorRotation) {
|
|
24437
|
+
FloorPatternService.prototype._herringBone = function (plankSize, floorWidth, floorLength, floorRotation, heartLine) {
|
|
24357
24438
|
var items = [];
|
|
24358
24439
|
var herringBoneAngle = 45;
|
|
24359
24440
|
var sqrt2 = Math.sqrt(2);
|
|
@@ -24361,7 +24442,8 @@
|
|
|
24361
24442
|
var plankLength = plankSize.z;
|
|
24362
24443
|
var offsetPlankPosX = plankWidth * sqrt2;
|
|
24363
24444
|
var offsetPlankPosZ = plankLength * sqrt2;
|
|
24364
|
-
var
|
|
24445
|
+
var heartLinePosX = offsetPlankPosX * heartLine;
|
|
24446
|
+
var columns = Math.ceil(floorWidth / (plankWidth * sqrt2) + heartLinePosX);
|
|
24365
24447
|
var rows = Math.ceil(floorLength / (plankLength * sqrt2) +
|
|
24366
24448
|
// add extra rows so that there isn't a gap
|
|
24367
24449
|
offsetPlankPosX * 2);
|
|
@@ -24372,12 +24454,12 @@
|
|
|
24372
24454
|
for (var row = 0; row < rows; row++) {
|
|
24373
24455
|
var plankPosZ = offsetPlankPosZ * row;
|
|
24374
24456
|
var plankLeft = {
|
|
24375
|
-
position: new THREE.Vector3(plankPosX + centerOffsetX, 0, plankPosZ + centerOffsetZ),
|
|
24457
|
+
position: new THREE.Vector3(plankPosX + centerOffsetX - heartLinePosX, 0, plankPosZ + centerOffsetZ),
|
|
24376
24458
|
rotation: new THREE.Vector3(0, THREE.MathUtils.degToRad(floorRotation + herringBoneAngle), 0),
|
|
24377
24459
|
isLeft: true
|
|
24378
24460
|
};
|
|
24379
24461
|
var plankRight = {
|
|
24380
|
-
position: new THREE.Vector3(plankPosX + offsetPlankPosX / 2 + centerOffsetX, 0, plankPosZ + offsetPlankPosZ / 2 + centerOffsetZ),
|
|
24462
|
+
position: new THREE.Vector3(plankPosX + offsetPlankPosX / 2 + centerOffsetX - heartLinePosX, 0, plankPosZ + offsetPlankPosZ / 2 + centerOffsetZ),
|
|
24381
24463
|
rotation: new THREE.Vector3(0, THREE.MathUtils.degToRad(floorRotation - herringBoneAngle), 0),
|
|
24382
24464
|
isLeft: false
|
|
24383
24465
|
};
|
|
@@ -24387,7 +24469,7 @@
|
|
|
24387
24469
|
this._rotatePatternOnZAxis(items, floorRotation);
|
|
24388
24470
|
return items;
|
|
24389
24471
|
};
|
|
24390
|
-
FloorPatternService.prototype._hon = function (plankSize, floorWidth, floorLength, floorRotation, patternAngle) {
|
|
24472
|
+
FloorPatternService.prototype._hon = function (plankSize, floorWidth, floorLength, floorRotation, patternAngle, heartLine) {
|
|
24391
24473
|
var items = [];
|
|
24392
24474
|
var patternAngleRad = THREE.MathUtils.degToRad(patternAngle);
|
|
24393
24475
|
var plankWidth = plankSize.x;
|
|
@@ -24398,21 +24480,22 @@
|
|
|
24398
24480
|
var rowExtendValue = plankWidth * cos;
|
|
24399
24481
|
var offsetZ = plankLength * cos * 2;
|
|
24400
24482
|
var offsetX = plankWidth * sin;
|
|
24401
|
-
var
|
|
24483
|
+
var heartLinePosX = offsetX * heartLine;
|
|
24484
|
+
var centerOffsetX = ((floorWidth - offsetX) / 2 + overlapValue);
|
|
24402
24485
|
var centerOffsetZ = (floorLength + rowExtendValue) / 2;
|
|
24403
|
-
var columns = Math.ceil(floorWidth / ((offsetX - overlapValue) * 2));
|
|
24486
|
+
var columns = Math.ceil(floorWidth / ((offsetX - overlapValue) * 2) + heartLinePosX);
|
|
24404
24487
|
var rows = Math.ceil((floorLength + rowExtendValue) / offsetZ);
|
|
24405
24488
|
for (var column = 0; column < columns; column++) {
|
|
24406
24489
|
var plankPosX = column * (offsetX - overlapValue) * 2;
|
|
24407
24490
|
for (var row = 0; row < rows; row++) {
|
|
24408
24491
|
var plankPosZ = row * offsetZ;
|
|
24409
24492
|
var plankLeft = {
|
|
24410
|
-
position: new THREE.Vector3(plankPosX - centerOffsetX, 0, plankPosZ - centerOffsetZ),
|
|
24493
|
+
position: new THREE.Vector3(plankPosX - centerOffsetX - heartLinePosX, 0, plankPosZ - centerOffsetZ),
|
|
24411
24494
|
rotation: new THREE.Vector3(0, THREE.MathUtils.degToRad((90 - patternAngle) + floorRotation), 0),
|
|
24412
24495
|
isLeft: true
|
|
24413
24496
|
};
|
|
24414
24497
|
var plankRight = {
|
|
24415
|
-
position: new THREE.Vector3(plankPosX + offsetX - overlapValue - centerOffsetX, 0, plankPosZ - centerOffsetZ),
|
|
24498
|
+
position: new THREE.Vector3(plankPosX + offsetX - overlapValue - centerOffsetX - heartLinePosX, 0, plankPosZ - centerOffsetZ),
|
|
24416
24499
|
rotation: new THREE.Vector3(0, THREE.MathUtils.degToRad((90 + patternAngle) + floorRotation), 0),
|
|
24417
24500
|
isLeft: false
|
|
24418
24501
|
};
|
|
@@ -24935,16 +25018,17 @@
|
|
|
24935
25018
|
FloorTileIntersectionService.prototype.toggleDebug = function () {
|
|
24936
25019
|
this._debug = !this._debug;
|
|
24937
25020
|
};
|
|
24938
|
-
FloorTileIntersectionService.prototype.countTiles = function (floorMesh, floorPattern,
|
|
25021
|
+
FloorTileIntersectionService.prototype.countTiles = function (floorMesh, floorPattern, geometryLeft, geometryRight, addFiltered) {
|
|
24939
25022
|
var e_1, _a;
|
|
25023
|
+
if (geometryRight === void 0) { geometryRight = null; }
|
|
25024
|
+
if (addFiltered === void 0) { addFiltered = false; }
|
|
24940
25025
|
var result = {
|
|
24941
25026
|
left: 0,
|
|
24942
25027
|
right: 0,
|
|
24943
25028
|
edge: 0,
|
|
24944
|
-
total: 0
|
|
25029
|
+
total: 0
|
|
24945
25030
|
};
|
|
24946
|
-
|
|
24947
|
-
var _b = this._checkIntersection2(floorMesh, floorPattern, geometry), floorHits = _b.floorHits, edgeHits = _b.edgeHits;
|
|
25031
|
+
var _b = this._checkIntersection2(floorMesh, floorPattern, geometryLeft, geometryRight), floorHits = _b.floorHits, edgeHits = _b.edgeHits;
|
|
24948
25032
|
try {
|
|
24949
25033
|
for (var floorHits_1 = __values(floorHits), floorHits_1_1 = floorHits_1.next(); !floorHits_1_1.done; floorHits_1_1 = floorHits_1.next()) {
|
|
24950
25034
|
var floorHit = floorHits_1_1.value;
|
|
@@ -24965,22 +25049,28 @@
|
|
|
24965
25049
|
}
|
|
24966
25050
|
result.edge = edgeHits.length;
|
|
24967
25051
|
result.total = floorHits.length;
|
|
25052
|
+
if (addFiltered)
|
|
25053
|
+
result.filtered = floorHits;
|
|
24968
25054
|
return result;
|
|
24969
25055
|
};
|
|
24970
|
-
FloorTileIntersectionService.prototype._checkIntersection2 = function (floorMesh, floorPattern,
|
|
25056
|
+
FloorTileIntersectionService.prototype._checkIntersection2 = function (floorMesh, floorPattern, geometryLeft, geometryRight) {
|
|
24971
25057
|
var e_2, _a;
|
|
24972
|
-
|
|
25058
|
+
var edgeColliders = this._generateEdgeColliders(floorMesh.geometry);
|
|
24973
25059
|
var result = {
|
|
24974
25060
|
floorHits: new Array(),
|
|
24975
25061
|
edgeHits: new Array()
|
|
24976
25062
|
};
|
|
24977
|
-
var
|
|
25063
|
+
var bvhLeft = new threeMeshBvh.MeshBVH(geometryLeft);
|
|
25064
|
+
var bvhRight = (geometryRight !== null) ? new threeMeshBvh.MeshBVH(geometryRight) : null;
|
|
24978
25065
|
var positionReference = new THREE.Object3D();
|
|
24979
25066
|
try {
|
|
24980
25067
|
for (var floorPattern_1 = __values(floorPattern), floorPattern_1_1 = floorPattern_1.next(); !floorPattern_1_1.done; floorPattern_1_1 = floorPattern_1.next()) {
|
|
24981
25068
|
var floorItem = floorPattern_1_1.value;
|
|
25069
|
+
var bvh = (floorItem.isLeft) ? bvhLeft : bvhRight;
|
|
24982
25070
|
var pos = floorItem.position;
|
|
25071
|
+
var rot = floorItem.rotation;
|
|
24983
25072
|
positionReference.position.set(pos.x, pos.y, pos.z);
|
|
25073
|
+
positionReference.rotation.set(rot.x, rot.y, rot.z);
|
|
24984
25074
|
positionReference.updateMatrixWorld();
|
|
24985
25075
|
var floorWorldToBhv = new THREE.Matrix4()
|
|
24986
25076
|
.copy(positionReference.matrixWorld)
|
|
@@ -25136,7 +25226,6 @@
|
|
|
25136
25226
|
this.arPlacementUpdate = new rxjs.Subject();
|
|
25137
25227
|
this.showElementToolbar = false;
|
|
25138
25228
|
this.isMouseOverObject = false;
|
|
25139
|
-
this.activeAnswers = [];
|
|
25140
25229
|
this.standAloneFirstBuildReady = false;
|
|
25141
25230
|
this._useNodeIdToLink = true;
|
|
25142
25231
|
this._standAlone = false;
|
|
@@ -25370,7 +25459,7 @@
|
|
|
25370
25459
|
if (looseOriginalConfiguration === void 0) { looseOriginalConfiguration = true; }
|
|
25371
25460
|
if (firstBuild === void 0) { firstBuild = false; }
|
|
25372
25461
|
return __awaiter$G(this, void 0, void 0, function () {
|
|
25373
|
-
var originalInstanceId_1, _a, _b
|
|
25462
|
+
var originalInstanceId_1, _a, _b;
|
|
25374
25463
|
return __generator(this, function (_c) {
|
|
25375
25464
|
switch (_c.label) {
|
|
25376
25465
|
case 0:
|
|
@@ -25413,22 +25502,14 @@
|
|
|
25413
25502
|
this.startPosition = result.metaData.position ? result.metaData.position.clone() : new THREE.Vector3();
|
|
25414
25503
|
return [4 /*yield*/, this._iOne.getQuestionAndAnswersAsync()];
|
|
25415
25504
|
case 7:
|
|
25416
|
-
|
|
25417
|
-
if (
|
|
25418
|
-
this._iOne.handleAnswersReceived(questionAndAnswers.answers);
|
|
25419
|
-
}
|
|
25420
|
-
this._appEventService.answerCountReceived.next(questionAndAnswers.answers.length);
|
|
25421
|
-
if (!(questionAndAnswers.answers.length === 0)) return [3 /*break*/, 9];
|
|
25422
|
-
this.activeAnswers = [];
|
|
25423
|
-
this.activeQuestion = undefined;
|
|
25505
|
+
_c.sent(); // see if there is user input needed
|
|
25506
|
+
if (!(this._iOne.activeAnswers.length === 0)) return [3 /*break*/, 9];
|
|
25424
25507
|
return [4 /*yield*/, this._prepareSelectionsAndDecos(result)
|
|
25425
25508
|
.catch(function (e) { return Promise.reject(e); })];
|
|
25426
25509
|
case 8:
|
|
25427
25510
|
_c.sent();
|
|
25428
25511
|
return [2 /*return*/, this.build(result)];
|
|
25429
25512
|
case 9:
|
|
25430
|
-
this.activeQuestion = questionAndAnswers.question;
|
|
25431
|
-
this.activeAnswers = questionAndAnswers.answers;
|
|
25432
25513
|
if (!firstBuild) return [3 /*break*/, 11];
|
|
25433
25514
|
return [4 /*yield*/, this._prepareSelectionsAndDecos(result)
|
|
25434
25515
|
.catch(function (e) { return Promise.reject(e); })];
|
|
@@ -25565,6 +25646,7 @@
|
|
|
25565
25646
|
});
|
|
25566
25647
|
};
|
|
25567
25648
|
BuildFurnitureService.prototype._generateLayingPattern = function (floor) {
|
|
25649
|
+
var e_1, _a;
|
|
25568
25650
|
var floorPatternInfo = this._generateFloorPatternInfo(floor);
|
|
25569
25651
|
floor.restoreFloorObject();
|
|
25570
25652
|
var meshLeft = this.full3DObjectToUse.children.find(function (m) { return m.name === floorPatternInfo.meshIdLeft; });
|
|
@@ -25577,42 +25659,57 @@
|
|
|
25577
25659
|
var floorSize = floor.size;
|
|
25578
25660
|
var plankSize = new THREE.Vector3();
|
|
25579
25661
|
meshLeft.geometry.boundingBox.getSize(plankSize);
|
|
25580
|
-
var items = this._floorPatternService.generatePattern(floorPatternInfo.floorPattern, plankSize, floorSize, floorPatternInfo.floorPatternDirection);
|
|
25581
|
-
var itemAmount = (meshRight === null) ? items.length : items.length / 2;
|
|
25662
|
+
var items = this._floorPatternService.generatePattern(floorPatternInfo.floorPattern, plankSize, floorSize, floorPatternInfo.floorPatternDirection, floorPatternInfo.heartLine);
|
|
25582
25663
|
var material = floor.getMaterial();
|
|
25583
|
-
|
|
25664
|
+
this._floorTileIntersectionService.toggleDebug();
|
|
25665
|
+
var floorCountResult = this._floorTileIntersectionService.countTiles(floor.floorMesh, items, meshLeft.geometry, (meshRight) ? meshRight.geometry : null, true);
|
|
25666
|
+
floor.metadata.floorCountResult = floorCountResult;
|
|
25667
|
+
var leftItems = new Array();
|
|
25668
|
+
var rightItems = new Array();
|
|
25669
|
+
try {
|
|
25670
|
+
for (var _b = __values(floorCountResult.filtered), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
25671
|
+
var item = _c.value;
|
|
25672
|
+
if (item.isLeft) {
|
|
25673
|
+
leftItems.push(item);
|
|
25674
|
+
}
|
|
25675
|
+
else {
|
|
25676
|
+
rightItems.push(item);
|
|
25677
|
+
}
|
|
25678
|
+
}
|
|
25679
|
+
}
|
|
25680
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
25681
|
+
finally {
|
|
25682
|
+
try {
|
|
25683
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
25684
|
+
}
|
|
25685
|
+
finally { if (e_1) throw e_1.error; }
|
|
25686
|
+
}
|
|
25687
|
+
var planksLeft = this._instancedMeshFromFloorPatternTransform(meshLeft.geometry, leftItems, material);
|
|
25584
25688
|
var planksRight;
|
|
25585
25689
|
if (meshRight) {
|
|
25586
|
-
planksRight =
|
|
25690
|
+
planksRight = this._instancedMeshFromFloorPatternTransform(meshRight.geometry, rightItems, material);
|
|
25587
25691
|
}
|
|
25588
|
-
|
|
25692
|
+
var customFloorWrapper = new THREE.Object3D();
|
|
25693
|
+
customFloorWrapper.add(planksLeft);
|
|
25694
|
+
if (planksRight)
|
|
25695
|
+
customFloorWrapper.add(planksRight);
|
|
25696
|
+
floor.floorObject = customFloorWrapper;
|
|
25697
|
+
};
|
|
25698
|
+
BuildFurnitureService.prototype._instancedMeshFromFloorPatternTransform = function (geom, pattern, material) {
|
|
25699
|
+
if (pattern.length <= 0)
|
|
25700
|
+
return null;
|
|
25701
|
+
var targetPlankMesh = new THREE.InstancedMesh(geom, material, pattern.length);
|
|
25589
25702
|
var dummy = new THREE.Object3D();
|
|
25590
|
-
var
|
|
25591
|
-
|
|
25592
|
-
var item = items[i];
|
|
25593
|
-
var targetPlankMesh = (item.isLeft) ? planksLeft : planksRight;
|
|
25703
|
+
for (var i = 0; i < pattern.length; i++) {
|
|
25704
|
+
var item = pattern[i];
|
|
25594
25705
|
var position = item.position;
|
|
25595
25706
|
var rotation = item.rotation;
|
|
25596
25707
|
dummy.position.set(position.x, position.y, position.z);
|
|
25597
25708
|
dummy.rotation.set(rotation.x, rotation.y, rotation.z);
|
|
25598
25709
|
dummy.updateMatrix();
|
|
25599
|
-
targetPlankMesh.setMatrixAt(
|
|
25600
|
-
if (planksRight) {
|
|
25601
|
-
if (i !== 0 && (i % 2 !== 0)) {
|
|
25602
|
-
matrixIndex++;
|
|
25603
|
-
}
|
|
25604
|
-
}
|
|
25605
|
-
else {
|
|
25606
|
-
matrixIndex++;
|
|
25607
|
-
}
|
|
25710
|
+
targetPlankMesh.setMatrixAt(i, dummy.matrix);
|
|
25608
25711
|
}
|
|
25609
|
-
|
|
25610
|
-
customFloorWrapper.add(planksLeft);
|
|
25611
|
-
if (planksRight)
|
|
25612
|
-
customFloorWrapper.add(planksRight);
|
|
25613
|
-
floor.floorObject = customFloorWrapper;
|
|
25614
|
-
// this._floorTileIntersectionService.toggleDebug();
|
|
25615
|
-
floor.metadata.floorCountResult = this._floorTileIntersectionService.countTiles(floor.floorMesh, items, meshLeft.geometry);
|
|
25712
|
+
return targetPlankMesh;
|
|
25616
25713
|
};
|
|
25617
25714
|
BuildFurnitureService.prototype._generateFloorPatternInfo = function (item) {
|
|
25618
25715
|
this._generateSelectedInMetadata(item);
|
|
@@ -25620,7 +25717,8 @@
|
|
|
25620
25717
|
meshIdLeft: null,
|
|
25621
25718
|
meshIdRight: null,
|
|
25622
25719
|
floorPattern: FloorPattern.NORMAL,
|
|
25623
|
-
floorPatternDirection: FloorPatternDirection.LYING
|
|
25720
|
+
floorPatternDirection: FloorPatternDirection.LYING,
|
|
25721
|
+
heartLine: 0
|
|
25624
25722
|
};
|
|
25625
25723
|
var selected = item.metadata.selections;
|
|
25626
25724
|
var afmeting = selected.find(function (s) { return s.question.toLowerCase() === 'plank afmeting'; });
|
|
@@ -25628,6 +25726,13 @@
|
|
|
25628
25726
|
afmetingString = afmetingString.substr(afmetingString.lastIndexOf(' ') + 1);
|
|
25629
25727
|
var legPatroonAnswer = selected.find(function (s) { return s.question.toLowerCase() === 'leg patroon'; }).answer.toLowerCase();
|
|
25630
25728
|
var legPatroonString = '';
|
|
25729
|
+
var hartlineType = selected.find(function (s) { return s.question.toLowerCase() === 'hartlijn'; });
|
|
25730
|
+
if (hartlineType && hartlineType.answer.toLowerCase() === 'aangepast') {
|
|
25731
|
+
var hartlineValue = selected.find(function (s) { return s.question.toLowerCase() === 'hartlijn_aangepast'; });
|
|
25732
|
+
if (hartlineValue && hartlineValue.userInputValue !== undefined) {
|
|
25733
|
+
info.heartLine = Number(hartlineValue.userInputValue);
|
|
25734
|
+
}
|
|
25735
|
+
}
|
|
25631
25736
|
switch (true) {
|
|
25632
25737
|
case legPatroonAnswer.indexOf('recht') !== -1:
|
|
25633
25738
|
legPatroonString = '90';
|
|
@@ -25732,7 +25837,7 @@
|
|
|
25732
25837
|
};
|
|
25733
25838
|
BuildFurnitureService.prototype._prepareSelectionsAndDecos = function (result) {
|
|
25734
25839
|
return __awaiter$G(this, void 0, void 0, function () {
|
|
25735
|
-
var selectionsAndDecoPromise,
|
|
25840
|
+
var selectionsAndDecoPromise, e_2, e_3;
|
|
25736
25841
|
return __generator(this, function (_a) {
|
|
25737
25842
|
switch (_a.label) {
|
|
25738
25843
|
case 0:
|
|
@@ -25748,7 +25853,7 @@
|
|
|
25748
25853
|
this._preloadMaterials(result.metaData.schema);
|
|
25749
25854
|
return [3 /*break*/, 4];
|
|
25750
25855
|
case 3:
|
|
25751
|
-
|
|
25856
|
+
e_2 = _a.sent();
|
|
25752
25857
|
return [3 /*break*/, 4];
|
|
25753
25858
|
case 4:
|
|
25754
25859
|
if (!(this._iOne.selections.length < 2)) return [3 /*break*/, 9];
|
|
@@ -25767,8 +25872,8 @@
|
|
|
25767
25872
|
this._getSelectionsAndDecosFromMetadata(result);
|
|
25768
25873
|
return [3 /*break*/, 9];
|
|
25769
25874
|
case 8:
|
|
25770
|
-
|
|
25771
|
-
return [2 /*return*/, Promise.reject(
|
|
25875
|
+
e_3 = _a.sent();
|
|
25876
|
+
return [2 /*return*/, Promise.reject(e_3)];
|
|
25772
25877
|
case 9:
|
|
25773
25878
|
this._iOne.selections.forEach(function (s) {
|
|
25774
25879
|
s.schema = result.metaData.schema;
|
|
@@ -26053,7 +26158,6 @@
|
|
|
26053
26158
|
if (rebuild === void 0) { rebuild = true; }
|
|
26054
26159
|
if (getAnswers === void 0) { getAnswers = false; }
|
|
26055
26160
|
return __awaiter$G(this, void 0, void 0, function () {
|
|
26056
|
-
var questionAndAnswers;
|
|
26057
26161
|
return __generator(this, function (_a) {
|
|
26058
26162
|
switch (_a.label) {
|
|
26059
26163
|
case 0: return [4 /*yield*/, this._iOne.cancelAnswer()];
|
|
@@ -26066,9 +26170,7 @@
|
|
|
26066
26170
|
if (!getAnswers) return [3 /*break*/, 4];
|
|
26067
26171
|
return [4 /*yield*/, this._iOne.getQuestionAndAnswersAsync()];
|
|
26068
26172
|
case 3:
|
|
26069
|
-
|
|
26070
|
-
this._iOne.handleAnswersReceived(questionAndAnswers.answers);
|
|
26071
|
-
this._appEventService.answerCountReceived.next(questionAndAnswers.answers.length);
|
|
26173
|
+
_a.sent(); // see if there is user input needed
|
|
26072
26174
|
_a.label = 4;
|
|
26073
26175
|
case 4: return [2 /*return*/];
|
|
26074
26176
|
}
|
|
@@ -27693,12 +27795,19 @@
|
|
|
27693
27795
|
if (light instanceof THREE.AmbientLight || light instanceof THREE.HemisphereLight) {
|
|
27694
27796
|
return;
|
|
27695
27797
|
}
|
|
27798
|
+
var corners = this._floorplanService.getCorners();
|
|
27799
|
+
if (!corners || corners.length < 1) {
|
|
27800
|
+
return;
|
|
27801
|
+
}
|
|
27696
27802
|
var ro = light.userData.rotationOffset;
|
|
27697
27803
|
var wo = light.userData.wallOffset;
|
|
27698
27804
|
var fc = this._floorplanService.getCenter();
|
|
27699
27805
|
var size = this._floorplanService.getSize();
|
|
27700
27806
|
var planHalfWidth = isFinite(size.x) ? size.x / 2.0 : 0;
|
|
27701
27807
|
var planHalfDepth = isFinite(size.z) ? size.z / 2.0 : 0;
|
|
27808
|
+
if (wo === 0) { // just use position of light
|
|
27809
|
+
return;
|
|
27810
|
+
}
|
|
27702
27811
|
// Reset position & rotation
|
|
27703
27812
|
light.position.x = fc.x;
|
|
27704
27813
|
light.position.z = fc.z;
|
|
@@ -28026,7 +28135,7 @@
|
|
|
28026
28135
|
else {
|
|
28027
28136
|
if (!_this._appService.sku) {
|
|
28028
28137
|
var navigatorType_1 = _this._screenSizeAnalysis.navigatorType();
|
|
28029
|
-
var lightPreset = _this.loadedLightPresets.find(function (preset) { return preset.navigatorType === navigatorType_1 && !preset.standalone; });
|
|
28138
|
+
var lightPreset = _this.loadedLightPresets.find(function (preset) { return preset.navigatorType === navigatorType_1 && preset.default && !preset.standalone; });
|
|
28030
28139
|
if (!lightPreset) {
|
|
28031
28140
|
lightPreset = _this.loadedLightPresets.find(function (preset) { return preset.default; });
|
|
28032
28141
|
}
|
|
@@ -28037,7 +28146,7 @@
|
|
|
28037
28146
|
}
|
|
28038
28147
|
if (_this._appService.sku) {
|
|
28039
28148
|
var navigatorType_2 = _this._screenSizeAnalysis.navigatorType();
|
|
28040
|
-
var lightPreset = _this.loadedLightPresets.find(function (preset) { return preset.navigatorType === navigatorType_2 && preset.standalone; });
|
|
28149
|
+
var lightPreset = _this.loadedLightPresets.find(function (preset) { return preset.navigatorType === navigatorType_2 && preset.default && preset.standalone; });
|
|
28041
28150
|
if (!lightPreset) {
|
|
28042
28151
|
lightPreset = _this.loadedLightPresets.find(function (preset) { return preset.standalone; });
|
|
28043
28152
|
}
|
|
@@ -28243,17 +28352,20 @@
|
|
|
28243
28352
|
};
|
|
28244
28353
|
LightPresetsService.prototype._createLightFromProperties = function (lightProperties) {
|
|
28245
28354
|
var lightType = lightProperties.type;
|
|
28246
|
-
|
|
28247
|
-
var
|
|
28248
|
-
var light = getLights.createNewLight(lightType);
|
|
28355
|
+
var lightConstructor = this._lightsMap.get(lightType);
|
|
28356
|
+
var light = new lightConstructor();
|
|
28249
28357
|
light.userData.wallOffset = lightProperties.wallOffset;
|
|
28250
28358
|
light.userData.rotationOffset = lightProperties.rotationOffset;
|
|
28251
28359
|
light.userData.topDownDirectional = lightProperties.topDownDirectional;
|
|
28252
28360
|
for (var property in lightProperties) {
|
|
28253
|
-
if (!
|
|
28361
|
+
if (!(property in light)) {
|
|
28254
28362
|
continue;
|
|
28255
28363
|
}
|
|
28256
28364
|
if (property === 'position') {
|
|
28365
|
+
if (light.userData.wallOffset === 0) {
|
|
28366
|
+
light.position.x = lightProperties.position.x;
|
|
28367
|
+
light.position.z = lightProperties.position.z;
|
|
28368
|
+
}
|
|
28257
28369
|
light.position.y = lightProperties.position.y;
|
|
28258
28370
|
}
|
|
28259
28371
|
else if (property === 'color') {
|
|
@@ -28843,7 +28955,7 @@
|
|
|
28843
28955
|
this.addRenderOptions(this._sceneService.renderer);
|
|
28844
28956
|
this.addLights(this._sceneService.scene);
|
|
28845
28957
|
};
|
|
28846
|
-
SceneControlComponent.prototype.addRenderOptions = function (renderer) {
|
|
28958
|
+
SceneControlComponent.prototype.addRenderOptions = function (renderer /*| WebGPURenderer*/) {
|
|
28847
28959
|
var _this = this;
|
|
28848
28960
|
var folder = this.gui.addFolder('renderer');
|
|
28849
28961
|
folder.add(renderer, 'toneMappingExposure', 0, 5).onChange(function () {
|
|
@@ -28973,9 +29085,9 @@
|
|
|
28973
29085
|
folder.add(light, 'decay', 0, 5).onChange(function (val) {
|
|
28974
29086
|
_this._updateScene();
|
|
28975
29087
|
});
|
|
28976
|
-
folder.add(light, 'distance', 0, 100).onChange(
|
|
28977
|
-
|
|
28978
|
-
});
|
|
29088
|
+
// folder.add(light, 'distance', 0, 100).onChange((val: any) => {
|
|
29089
|
+
// this._updateScene();
|
|
29090
|
+
// });
|
|
28979
29091
|
}
|
|
28980
29092
|
folder.add(light, 'intensity', 0.01, 20).step(0.01).onChange(function () {
|
|
28981
29093
|
_this._updateScene();
|
|
@@ -30547,7 +30659,9 @@
|
|
|
30547
30659
|
data.files = {
|
|
30548
30660
|
glbData: this._arrayBufferToBase64(sceneData)
|
|
30549
30661
|
};
|
|
30550
|
-
this.
|
|
30662
|
+
if (this._settingsService.settings.options.useRenderWebsocket) {
|
|
30663
|
+
this._handleWebSocketRoomRender(data);
|
|
30664
|
+
}
|
|
30551
30665
|
return [2 /*return*/];
|
|
30552
30666
|
}
|
|
30553
30667
|
});
|
|
@@ -30849,7 +30963,7 @@
|
|
|
30849
30963
|
});
|
|
30850
30964
|
};
|
|
30851
30965
|
var RenderDialogComponent = /** @class */ (function () {
|
|
30852
|
-
function RenderDialogComponent(cameraService, renderService, messageService, _utilsService, _domSanitizer, _settingsService, _newRenderService, _3dmRenderApi) {
|
|
30966
|
+
function RenderDialogComponent(cameraService, renderService, messageService, _utilsService, _domSanitizer, _settingsService, _newRenderService, _3dmRenderApi, _dialog) {
|
|
30853
30967
|
var _this = this;
|
|
30854
30968
|
this.cameraService = cameraService;
|
|
30855
30969
|
this.renderService = renderService;
|
|
@@ -30859,6 +30973,7 @@
|
|
|
30859
30973
|
this._settingsService = _settingsService;
|
|
30860
30974
|
this._newRenderService = _newRenderService;
|
|
30861
30975
|
this._3dmRenderApi = _3dmRenderApi;
|
|
30976
|
+
this._dialog = _dialog;
|
|
30862
30977
|
this.renderStatus = RenderStatus;
|
|
30863
30978
|
this.iconName = IconName;
|
|
30864
30979
|
this.renderModes = RenderModes;
|
|
@@ -31057,6 +31172,10 @@
|
|
|
31057
31172
|
this.messageService.emit(MessageType.ShowLoadingIndicator, { title: 'Uploading...' });
|
|
31058
31173
|
this._utilsService.prepRoomForRender(false, renderInput);
|
|
31059
31174
|
};
|
|
31175
|
+
RenderDialogComponent.prototype.cancelBlenderRender = function () {
|
|
31176
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
31177
|
+
this._dialog.closeAll();
|
|
31178
|
+
};
|
|
31060
31179
|
RenderDialogComponent.prototype.saveImage = function (url) {
|
|
31061
31180
|
var link = document.createElement('a');
|
|
31062
31181
|
link.setAttribute('target', '_blank');
|
|
@@ -31129,8 +31248,8 @@
|
|
|
31129
31248
|
};
|
|
31130
31249
|
return RenderDialogComponent;
|
|
31131
31250
|
}());
|
|
31132
|
-
RenderDialogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RenderDialogComponent, deps: [{ token: CameraService }, { token: RenderService }, { token: MessageBusService }, { token: UtilsService }, { token: i1__namespace.DomSanitizer }, { token: HomedecoratorSettingsService }, { token: NewRenderService }, { token: ApiServiceModule }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
31133
|
-
RenderDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RenderDialogComponent, selector: "rp-render-dialog", viewQueries: [{ propertyName: "renderImageField", first: true, predicate: ["render_image"], descendants: true, static: true }, { propertyName: "imageWidthField", first: true, predicate: ["render_image_width"], descendants: true, static: true }, { propertyName: "imageHeightField", first: true, predicate: ["render_image_height"], descendants: true, static: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"renderService.serverData.renderMode === renderModes.RenderIone\">\r\n <div mat-dialog-content>\r\n <div class=\"render-camera-positions\">\r\n <div class=\"render-camera-positions-left\">\r\n <!--\r\n <button mat-raised-button class=\"matrixToggle\" (click)=\"toggleCameraPosition()\">{{ showMatrix ? ('HIDE_MATRIX' | localize) : ('SHOW_MATRIX' | localize) }}</button>\r\n <div class=\"position-matrix-container\" *ngIf=\"showMatrix\">\r\n <mat-grid-list [cols]=\"4\" rowHeight=\"35px\" class=\"camera_position_grid\">\r\n <ng-container *ngFor=\"let item of cameraMatrix; let i = index\">\r\n <mat-grid-tile colspan=\"1\"><b>{{ i }}:</b></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><span>{{item}}</span></mat-grid-tile>\r\n </ng-container>\r\n </mat-grid-list>\r\n </div>\r\n -->\r\n\r\n <h4>{{'LIGHTNING' | localize}}</h4>\r\n <mat-form-field class=\"face-select-form\">\r\n <mat-select [(ngModel)]=\"inputLight\">\r\n <mat-option *ngFor=\"let light of renderService.lightnings\" [value]=\"light.id\">{{ light.name }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <h4>{{'SIZE' | localize}}</h4>\r\n <mat-form-field class=\"face-select-form\">\r\n <mat-select [(value)]=\"inputSize\">\r\n <mat-option *ngFor=\"let size of renderService.imageSizes\" [value]=\"size.id\">{{ size.name }} | <em>{{ size.width }}x{{ size.height }}</em></mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <p>You selected: {{inputSize}}</p>\r\n <div class=\"position-separator\"></div>\r\n\r\n <h4>{{'NAME' | localize}}</h4>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [(ngModel)]=\"inputName\"\r\n />\r\n </mat-form-field>\r\n\r\n <p>{{ 'ADD_CURRENT_CAMERA_POSITION_TO_RENDER' | localize }}</p>\r\n\r\n <button mat-raised-button class=\"add_camera_position\" color=\"primary\" title=\"{{'ADD_CURRENT_POSITION' | localize}}\" (click)=\"addRenderCustom()\">\r\n {{'ADD_CURRENT_POSITION' | localize}}\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.galleryInfo.items === 0\">\r\n\r\n <div class=\"position-separator\"></div>\r\n\r\n <p>{{ 'ADD_GALLERY_POSITIONS_TO_RENDER_INFO' | localize }}</p>\r\n\r\n <button mat-raised-button class=\"add_gallery_positions\" color=\"primary\" title=\"{{'ADD_GALLERY_POSITIONS' | localize}}\" (click)=\"addRenderGallery()\">\r\n {{'ADD_GALLERY_POSITIONS' | localize}}\r\n </button>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n <div class=\"render-camera-positions-right\">\r\n <mat-grid-list [cols]=\"16\" rowHeight=\"35px\" class=\"camera_positions_grid\">\r\n <mat-grid-tile colspan=\"1\"><div class=\"grid-tile-head\"></div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'AVAILABLE' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"5\"><div class=\"grid-tile-head\">{{'NAME' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'LIGHT' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'SIZE' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"1\"></mat-grid-tile>\r\n </mat-grid-list>\r\n <mat-grid-list [cols]=\"16\" rowHeight=\"55px\" class=\"camera_positions_grid\">\r\n <ng-container *ngFor=\"let render of renderService.renders; index as i\">\r\n <ng-container *ngIf=\"render.cameraPosition.type === 'custom' && render.productHash === renderService.currentProductHash\" class=\"grid_head\">\r\n <mat-grid-tile colspan=\"1\">\r\n <div class=\"grid-tile-content no-padding\" [hidden]=\"render.status === renderStatus.IsWaiting || render.status === renderStatus.IsRunning\">\r\n <input type=\"checkbox\" [(ngModel)]=\"inputReRenderChecked[i]\" [value]=\"render.id\" (change)=\"renderOnChange()\">\r\n </div>\r\n </mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\">\r\n <div class=\"grid-tile-content grid-tile-image\">\r\n <div class=\"image-container\">\r\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"render.url === '' && render.status !== renderStatus.IsRunning\">camera_alt</mat-icon>\r\n <a href=\"{{ render.url }}\" target=\"_blank\" download *ngIf=\"render.url !== '' && render.status !== renderStatus.IsRunning\">\r\n <img src=\"{{ render.url }}\">\r\n </a>\r\n <mat-spinner *ngIf=\"render.status === renderStatus.IsRunning\" [diameter]=\"25\" [mode]=\"'determinate'\" [value]=\"render.progress > 10 ? render.progress : 10\"></mat-spinner>\r\n </div>\r\n </div>\r\n </mat-grid-tile>\r\n <mat-grid-tile colspan=\"5\"><div class=\"grid-tile-content\">{{ render.cameraPosition.name }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-content\">{{ render.lightning.name }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-content\">{{ render.imageSize.name }} | <em>{{ render.imageSize.width }}x{{ render.imageSize.height }}</em></div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"1\"><div class=\"grid-tile-content no-padding right\"><button (click)=\"removeCameraPosition(render)\" class=\"remove-btn\" [hidden]=\"render.status === renderStatus.IsWaiting || render.status === renderStatus.IsRunning\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></button></div></mat-grid-tile>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.galleryInfo.items > 0\">\r\n <ng-container>\r\n <mat-grid-tile colspan=\"1\" class=\"grid_head\">\r\n <div class=\"grid-tile-content no-padding\" [hidden]=\"galleryInfo.renderInfo.status === renderStatus.IsWaiting || galleryInfo.renderInfo.status === renderStatus.IsRunning\">\r\n <input type=\"checkbox\" (change)=\"galleryRenderOnChange($event)\">\r\n </div>\r\n </mat-grid-tile>\r\n <mat-grid-tile colspan=\"8\" class=\"grid_head\"><div class=\"grid-tile-content\">{{ 'GALLERY_IMAGES_FROM' | localize }} {{ galleryInfo.items }} {{ 'CAMERA_POSITIONS' | localize }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\" class=\"grid_head\"><div class=\"grid-tile-content\">{{ galleryInfo.renderInfo.lightning.name }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\" class=\"grid_head\"><div class=\"grid-tile-content\">{{ galleryInfo.renderInfo.imageSize.name }} | <em>{{ galleryInfo.renderInfo.imageSize.width }}x{{ galleryInfo.renderInfo.imageSize.height }}</em></div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"1\" class=\"grid_head\"><div class=\"grid-tile-content no-padding right\"><button (click)=\"removeCameraPosition('gallery')\" class=\"remove-btn\" [hidden]=\"galleryInfo.renderInfo.status === renderStatus.IsWaiting || galleryInfo.renderInfo.status === renderStatus.IsRunning\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></button></div></mat-grid-tile>\r\n </ng-container>\r\n <ng-container *ngFor=\"let render of renderService.renders; index as i\">\r\n <ng-container *ngIf=\"render.cameraPosition.type === 'gallery' && render.productHash === renderService.currentProductHash\">\r\n <mat-grid-tile colspan=\"2\">\r\n <div class=\"grid-tile-content\" [hidden]=\"true\"><input type=\"checkbox\" [(ngModel)]=\"inputReRenderChecked[i]\" [value]=\"render.id\" (change)=\"renderOnChange()\"></div>\r\n <div class=\"grid-tile-content small-padding grid-tile-image\">\r\n <div class=\"image-container\">\r\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"render.url === '' && render.status !== renderStatus.IsRunning\">camera_alt</mat-icon>\r\n <a href=\"{{ render.url }}\" target=\"_blank\" download *ngIf=\"render.url !== '' && render.status !== renderStatus.IsRunning\">\r\n <img src=\"{{ render.url }}\">\r\n </a>\r\n <mat-spinner *ngIf=\"render.status === renderStatus.IsRunning\" [diameter]=\"25\" [mode]=\"'determinate'\" [value]=\"render.progress > 10 ? render.progress : 10\"></mat-spinner>\r\n </div>\r\n </div>\r\n </mat-grid-tile>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-grid-list>\r\n </div>\r\n </div>\r\n\r\n <button mat-raised-button class=\"render_btn\" (click)=\"addRendersToQueue()\" color=\"primary\" title=\"{{'CREATE_RENDERS' | localize}}\" [disabled]=\"!canRender || renderService.renderQueue.length > 0\">\r\n {{'CREATE_RENDERS' | localize}}\r\n </button>\r\n\r\n </div>\r\n\r\n <button mat-button mat-dialog-close class=\"close_btn\">X</button>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">\r\n\r\n <div mat-dialog-content>\r\n <div class=\"render-camera-positions\">\r\n <div class=\"render-camera-positions-left large\">\r\n <div *ngIf=\"imageRenderSource != ''\" class=\"render-image-content\">\r\n <img [src]=\"imageRenderSource\" #render_image>\r\n <div class=\"loader\" [ngClass]=\"(renderProgress == 100 ? 'ready' : '')\">\r\n <span class=\"loader_progress\" [style.width.%]=\"(renderProgress ? renderProgress : 0)\">\r\n <span>{{ (renderProgress ? renderProgress : 0) }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"imageRenderSource == ''\" class=\"image_spacer\">\r\n <mat-icon class=\"homedecorator-material-icons\">camera_alt</mat-icon>\r\n </div>\r\n <div class=\"position-separator\"></div>\r\n <mat-form-field class=\"face-select-form\" *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">\r\n <mat-label>{{\"IMAGE_SIZE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"renderService.selectedImageSize\">\r\n <mat-option *ngFor=\"let size of renderService.imageSizes\" [value]=\"size.id\">{{ size.name }} {{ size.width }}x{{ size.height }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div *ngIf=\"renderService.blenderRenderService\">\r\n <mat-form-field\r\n class=\"face-select-form\"\r\n *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">\r\n <mat-label>{{ \"ENVIRONMENT\" | localize }}</mat-label>\r\n <mat-select [(ngModel)]=\"renderService.selectedRenderScene\">\r\n <mat-option\r\n *ngFor=\"let scene of renderService.renderScenes\"\r\n [value]=\"scene.sceneAssetId\">{{ scene.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n\r\n<!-- <mat-form-field class=\"face-select-form\" *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">-->\r\n<!-- <mat-label>{{\"ENVIRONMENT\" | localize}}</mat-label>-->\r\n<!-- <mat-select [(ngModel)]=\"renderService.selectedEnvironment\">-->\r\n<!-- <mat-option *ngFor=\"let renderEnvironment of renderService.renderEnvironments\" [value]=\"renderEnvironment.id\">{{ renderEnvironment.name }}</mat-option>-->\r\n<!-- </mat-select>-->\r\n<!-- </mat-form-field>-->\r\n\r\n <button *ngIf=\"!renderService.blenderRenderService\" mat-raised-button (click)=\"startRenderingRoom()\" color=\"primary\" title=\"{{'MAKE_A_PICTURE' | localize}}\" [disabled]=\"disablePictureButton\">\r\n {{'MAKE_A_PICTURE' | localize}}\r\n </button>\r\n\r\n <button *ngIf=\"renderService.blenderRenderService\" mat-raised-button (click)=\"createBlenderRender()\" color=\"primary\" title=\"{{'MAKE_A_PICTURE' | localize}}\" [disabled]=\"disablePictureButton\">\r\n {{'MAKE_A_PICTURE' | localize}}\r\n </button>\r\n\r\n </div>\r\n\r\n\r\n<!-- <div class=\"render-camera-positions-right small\">-->\r\n<!-- <mat-grid-list [cols]=\"10\" rowHeight=\"35px\" class=\"camera_positions_grid\">-->\r\n<!-- <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'IMAGE' | localize}}</div></mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"6\"><div class=\"grid-tile-head\">{{'NAME' | localize}}</div></mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"1\"><div class=\"grid-tile-head\"></div></mat-grid-tile>-->\r\n<!-- </mat-grid-list>-->\r\n<!-- <mat-grid-list [cols]=\"11\" rowHeight=\"55px\" class=\"camera_positions_grid\">-->\r\n<!-- <ng-container *ngFor=\"let image of renderedImages; let index = index\">-->\r\n<!-- <mat-grid-tile colspan=\"3\">-->\r\n<!-- <div class=\"grid-tile-content grid-tile-image\">-->\r\n<!-- <div class=\"image-container\">-->\r\n<!-- <a href=\"{{ image }}\" target=\"_blank\" download>-->\r\n<!-- <img src=\"{{ image }}\">-->\r\n<!-- </a>-->\r\n<!-- </div>-->\r\n<!-- </div>-->\r\n<!-- </mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"6\"><div class=\"grid-tile-content\">{{ 'IMAGE' | localize }}</div></mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"2\">-->\r\n<!-- <div class=\"grid-tile-content\">-->\r\n<!-- <button mat-icon-button (click)=\"saveImage(image)\" title=\"{{'DOWNLOAD_IMAGE' | localize}}\">-->\r\n<!-- <mat-icon class=\"homedecorator-material-icons\">get_app</mat-icon>-->\r\n<!-- </button>-->\r\n<!-- </div>-->\r\n<!-- <div class=\"grid-tile-content no-padding right\"><button (click)=\"removeRender(image, index)\" class=\"remove-btn\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></button></div>-->\r\n<!-- </mat-grid-tile>-->\r\n<!-- </ng-container>-->\r\n<!-- </mat-grid-list>-->\r\n<!-- </div>-->\r\n </div>\r\n\r\n <button mat-button mat-dialog-close class=\"close_btn\">X</button>\r\n\r\n </div>\r\n\r\n</ng-container>\r\n", styles: ["::ng-deep .render-dialog-content .mat-dialog-container{margin:0;padding:0}::ng-deep .render-dialog-content .mat-dialog-container .mat-dialog-content{margin:0;padding:0}:host{display:block;max-width:100%;position:relative;box-sizing:border-box}:host *{box-sizing:border-box}:host [hidden]{display:none!important}:host .close_btn{position:absolute;top:0;right:0;font-size:30px;padding:0;width:50px;min-width:0px;line-height:45px}:host .render_btn{position:absolute;left:65%;margin:0 0 0 -83px;bottom:15px}:host .render-camera-positions{display:flex;font-size:14px}:host .render-camera-positions .render-camera-positions-left{min-width:300px;background:#e4edf4;padding:15px;text-align:center}:host .render-camera-positions .render-camera-positions-left h3{text-align:left}:host .render-camera-positions .render-camera-positions-left h4{text-align:left;margin:0}:host .render-camera-positions .render-camera-positions-left .position-separator{width:100%;font-size:0;height:1px;background:#fff;margin:15px 0}:host .render-camera-positions .render-camera-positions-left p{font-size:12px;text-align:center;line-height:170%}:host .render-camera-positions .render-camera-positions-left button{font-size:12px;line-height:32px}:host .render-camera-positions .render-camera-positions-left button.matrixToggle{margin:0 0 5px}:host .render-camera-positions .render-camera-positions-left mat-grid-list{text-align:left}:host .render-camera-positions .render-camera-positions-left mat-grid-list mat-grid-tile .mat-figure{justify-content:left}:host .render-camera-positions .render-camera-positions-left mat-grid-list mat-grid-tile b{text-align:left;width:100%}:host .render-camera-positions .render-camera-positions-left mat-grid-list mat-grid-tile span{display:inline-block;text-align:right;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px;background:#fff;border-radius:5px;line-height:30px;font-size:90%}:host .render-camera-positions .render-camera-positions-left .mat-form-field{width:100%}:host .render-camera-positions .render-camera-positions-left mat-slide-toggle{float:right}:host .render-camera-positions .render-camera-positions-left .render-image-content{width:100%;align-self:start;position:relative}:host .render-camera-positions .render-camera-positions-left .render-image-content img{width:100%;max-width:100%;align-self:start;border-radius:5px}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader{align-self:start;width:calc(100% - 20px);font-size:0;line-height:0;height:6px;position:absolute;left:10px;bottom:15px;z-index:2;text-align:left}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader.ready .loader_progress{background:#74B77F}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader.ready .loader_progress span{color:#74b77f;border-color:#74b77f}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader .loader_progress{vertical-align:top;display:inline-block;background:#3760a1;height:6px;position:relative;transition:.2s ease-in-out;-moz-transition:.2s ease-in-out;-webkit-transition:.2s ease-in-out;border-radius:5px;min-width:25px}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader .loader_progress span{float:left;width:25px;height:16px;line-height:16px;border-radius:4px;text-align:center;position:absolute;top:-5px;font-size:9px;font-weight:bold;background:#fff;right:0px}:host .render-camera-positions .render-camera-positions-left .image_spacer{position:relative;background:#fafafa;width:100%;height:200px;border-radius:5px}:host .render-camera-positions .render-camera-positions-left .image_spacer .mat-icon{position:absolute;margin:auto;left:0;top:0;right:0;bottom:0;width:60px;height:60px;font-size:60px}:host .render-camera-positions .render-camera-positions-right{width:70%;padding:15px 15px 66px;font-size:12px}:host .render-camera-positions .render-camera-positions-right.large{width:60%}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile{border-bottom:1px solid #e4edf4}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile.grid_head{border-color:#fff}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-head{width:100%;text-align:left;font-weight:bold;padding:0 15px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content{width:100%;text-align:left;padding:0 15px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.no-padding{padding:0}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.small-padding{padding:0 2px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.right{text-align:right}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container{width:100%;height:46px;border:1px solid #e4edf4;border-radius:5px;vertical-align:top;text-align:center;display:table;font-size:0}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container a{display:table-cell;vertical-align:middle}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container a img{max-width:100%;max-height:46px;display:inline-block}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container .mat-icon{height:46px;line-height:46px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container .mat-spinner{margin:11px 0 0;display:inline-block}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content .remove-btn{border:none;background:transparent;color:#0003;cursor:pointer}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content .remove-btn:hover{color:red}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content .remove-btn .mat-icon{height:18px;width:18px;font-size:18px}\n"], components: [{ type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i9__namespace.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3__namespace.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { 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: i3__namespace$2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3__namespace$2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i15__namespace.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i19__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8__namespace.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7__namespace.MatLabel, selector: "mat-label" }], pipes: { "localize": LocalizePipe }, animations: [
|
|
31251
|
+
RenderDialogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RenderDialogComponent, deps: [{ token: CameraService }, { token: RenderService }, { token: MessageBusService }, { token: UtilsService }, { token: i1__namespace.DomSanitizer }, { token: HomedecoratorSettingsService }, { token: NewRenderService }, { token: ApiServiceModule }, { token: i1__namespace$1.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
31252
|
+
RenderDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RenderDialogComponent, selector: "rp-render-dialog", viewQueries: [{ propertyName: "renderImageField", first: true, predicate: ["render_image"], descendants: true, static: true }, { propertyName: "imageWidthField", first: true, predicate: ["render_image_width"], descendants: true, static: true }, { propertyName: "imageHeightField", first: true, predicate: ["render_image_height"], descendants: true, static: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"renderService.serverData.renderMode === renderModes.RenderIone\">\r\n <div mat-dialog-content>\r\n <div class=\"render-camera-positions\">\r\n <div class=\"render-camera-positions-left\">\r\n <!--\r\n <button mat-raised-button class=\"matrixToggle\" (click)=\"toggleCameraPosition()\">{{ showMatrix ? ('HIDE_MATRIX' | localize) : ('SHOW_MATRIX' | localize) }}</button>\r\n <div class=\"position-matrix-container\" *ngIf=\"showMatrix\">\r\n <mat-grid-list [cols]=\"4\" rowHeight=\"35px\" class=\"camera_position_grid\">\r\n <ng-container *ngFor=\"let item of cameraMatrix; let i = index\">\r\n <mat-grid-tile colspan=\"1\"><b>{{ i }}:</b></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><span>{{item}}</span></mat-grid-tile>\r\n </ng-container>\r\n </mat-grid-list>\r\n </div>\r\n -->\r\n\r\n <h4>{{'LIGHTNING' | localize}}</h4>\r\n <mat-form-field class=\"face-select-form\">\r\n <mat-select [(ngModel)]=\"inputLight\">\r\n <mat-option *ngFor=\"let light of renderService.lightnings\" [value]=\"light.id\">{{ light.name }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <h4>{{'SIZE' | localize}}</h4>\r\n <mat-form-field class=\"face-select-form\">\r\n <mat-select [(value)]=\"inputSize\">\r\n <mat-option *ngFor=\"let size of renderService.imageSizes\" [value]=\"size.id\">{{ size.name }} | <em>{{ size.width }}x{{ size.height }}</em></mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <p>You selected: {{inputSize}}</p>\r\n <div class=\"position-separator\"></div>\r\n\r\n <h4>{{'NAME' | localize}}</h4>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [(ngModel)]=\"inputName\"\r\n />\r\n </mat-form-field>\r\n\r\n <p>{{ 'ADD_CURRENT_CAMERA_POSITION_TO_RENDER' | localize }}</p>\r\n\r\n <button mat-raised-button class=\"add_camera_position\" color=\"primary\" title=\"{{'ADD_CURRENT_POSITION' | localize}}\" (click)=\"addRenderCustom()\">\r\n {{'ADD_CURRENT_POSITION' | localize}}\r\n </button>\r\n\r\n <ng-container *ngIf=\"this.galleryInfo.items === 0\">\r\n\r\n <div class=\"position-separator\"></div>\r\n\r\n <p>{{ 'ADD_GALLERY_POSITIONS_TO_RENDER_INFO' | localize }}</p>\r\n\r\n <button mat-raised-button class=\"add_gallery_positions\" color=\"primary\" title=\"{{'ADD_GALLERY_POSITIONS' | localize}}\" (click)=\"addRenderGallery()\">\r\n {{'ADD_GALLERY_POSITIONS' | localize}}\r\n </button>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n <div class=\"render-camera-positions-right\">\r\n <mat-grid-list [cols]=\"16\" rowHeight=\"35px\" class=\"camera_positions_grid\">\r\n <mat-grid-tile colspan=\"1\"><div class=\"grid-tile-head\"></div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'AVAILABLE' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"5\"><div class=\"grid-tile-head\">{{'NAME' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'LIGHT' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'SIZE' | localize}}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"1\"></mat-grid-tile>\r\n </mat-grid-list>\r\n <mat-grid-list [cols]=\"16\" rowHeight=\"55px\" class=\"camera_positions_grid\">\r\n <ng-container *ngFor=\"let render of renderService.renders; index as i\">\r\n <ng-container *ngIf=\"render.cameraPosition.type === 'custom' && render.productHash === renderService.currentProductHash\" class=\"grid_head\">\r\n <mat-grid-tile colspan=\"1\">\r\n <div class=\"grid-tile-content no-padding\" [hidden]=\"render.status === renderStatus.IsWaiting || render.status === renderStatus.IsRunning\">\r\n <input type=\"checkbox\" [(ngModel)]=\"inputReRenderChecked[i]\" [value]=\"render.id\" (change)=\"renderOnChange()\">\r\n </div>\r\n </mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\">\r\n <div class=\"grid-tile-content grid-tile-image\">\r\n <div class=\"image-container\">\r\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"render.url === '' && render.status !== renderStatus.IsRunning\">camera_alt</mat-icon>\r\n <a href=\"{{ render.url }}\" target=\"_blank\" download *ngIf=\"render.url !== '' && render.status !== renderStatus.IsRunning\">\r\n <img src=\"{{ render.url }}\">\r\n </a>\r\n <mat-spinner *ngIf=\"render.status === renderStatus.IsRunning\" [diameter]=\"25\" [mode]=\"'determinate'\" [value]=\"render.progress > 10 ? render.progress : 10\"></mat-spinner>\r\n </div>\r\n </div>\r\n </mat-grid-tile>\r\n <mat-grid-tile colspan=\"5\"><div class=\"grid-tile-content\">{{ render.cameraPosition.name }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-content\">{{ render.lightning.name }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-content\">{{ render.imageSize.name }} | <em>{{ render.imageSize.width }}x{{ render.imageSize.height }}</em></div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"1\"><div class=\"grid-tile-content no-padding right\"><button (click)=\"removeCameraPosition(render)\" class=\"remove-btn\" [hidden]=\"render.status === renderStatus.IsWaiting || render.status === renderStatus.IsRunning\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></button></div></mat-grid-tile>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.galleryInfo.items > 0\">\r\n <ng-container>\r\n <mat-grid-tile colspan=\"1\" class=\"grid_head\">\r\n <div class=\"grid-tile-content no-padding\" [hidden]=\"galleryInfo.renderInfo.status === renderStatus.IsWaiting || galleryInfo.renderInfo.status === renderStatus.IsRunning\">\r\n <input type=\"checkbox\" (change)=\"galleryRenderOnChange($event)\">\r\n </div>\r\n </mat-grid-tile>\r\n <mat-grid-tile colspan=\"8\" class=\"grid_head\"><div class=\"grid-tile-content\">{{ 'GALLERY_IMAGES_FROM' | localize }} {{ galleryInfo.items }} {{ 'CAMERA_POSITIONS' | localize }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\" class=\"grid_head\"><div class=\"grid-tile-content\">{{ galleryInfo.renderInfo.lightning.name }}</div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"3\" class=\"grid_head\"><div class=\"grid-tile-content\">{{ galleryInfo.renderInfo.imageSize.name }} | <em>{{ galleryInfo.renderInfo.imageSize.width }}x{{ galleryInfo.renderInfo.imageSize.height }}</em></div></mat-grid-tile>\r\n <mat-grid-tile colspan=\"1\" class=\"grid_head\"><div class=\"grid-tile-content no-padding right\"><button (click)=\"removeCameraPosition('gallery')\" class=\"remove-btn\" [hidden]=\"galleryInfo.renderInfo.status === renderStatus.IsWaiting || galleryInfo.renderInfo.status === renderStatus.IsRunning\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></button></div></mat-grid-tile>\r\n </ng-container>\r\n <ng-container *ngFor=\"let render of renderService.renders; index as i\">\r\n <ng-container *ngIf=\"render.cameraPosition.type === 'gallery' && render.productHash === renderService.currentProductHash\">\r\n <mat-grid-tile colspan=\"2\">\r\n <div class=\"grid-tile-content\" [hidden]=\"true\"><input type=\"checkbox\" [(ngModel)]=\"inputReRenderChecked[i]\" [value]=\"render.id\" (change)=\"renderOnChange()\"></div>\r\n <div class=\"grid-tile-content small-padding grid-tile-image\">\r\n <div class=\"image-container\">\r\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"render.url === '' && render.status !== renderStatus.IsRunning\">camera_alt</mat-icon>\r\n <a href=\"{{ render.url }}\" target=\"_blank\" download *ngIf=\"render.url !== '' && render.status !== renderStatus.IsRunning\">\r\n <img src=\"{{ render.url }}\">\r\n </a>\r\n <mat-spinner *ngIf=\"render.status === renderStatus.IsRunning\" [diameter]=\"25\" [mode]=\"'determinate'\" [value]=\"render.progress > 10 ? render.progress : 10\"></mat-spinner>\r\n </div>\r\n </div>\r\n </mat-grid-tile>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </mat-grid-list>\r\n </div>\r\n </div>\r\n\r\n <button mat-raised-button class=\"render_btn\" (click)=\"addRendersToQueue()\" color=\"primary\" title=\"{{'CREATE_RENDERS' | localize}}\" [disabled]=\"!canRender || renderService.renderQueue.length > 0\">\r\n {{'CREATE_RENDERS' | localize}}\r\n </button>\r\n\r\n </div>\r\n\r\n <button mat-button mat-dialog-close class=\"close_btn\">X</button>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">\r\n\r\n <div mat-dialog-content>\r\n <div class=\"render-camera-positions\">\r\n <div class=\"render-camera-positions-left large\">\r\n <div *ngIf=\"imageRenderSource != ''\" class=\"render-image-content\">\r\n <img [src]=\"imageRenderSource\" #render_image>\r\n <div class=\"loader\" [ngClass]=\"(renderProgress == 100 ? 'ready' : '')\">\r\n <span class=\"loader_progress\" [style.width.%]=\"(renderProgress ? renderProgress : 0)\">\r\n <span>{{ (renderProgress ? renderProgress : 0) }}</span>\r\n </span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"imageRenderSource == ''\" class=\"image_spacer\">\r\n <mat-icon class=\"homedecorator-material-icons\">camera_alt</mat-icon>\r\n </div>\r\n <div class=\"position-separator\"></div>\r\n <mat-form-field class=\"face-select-form\" *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">\r\n <mat-label>{{\"IMAGE_SIZE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"renderService.selectedImageSize\">\r\n <mat-option *ngFor=\"let size of renderService.imageSizes\" [value]=\"size.id\">{{ size.name }} {{ size.width }}x{{ size.height }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <div *ngIf=\"renderService.blenderRenderService\">\r\n <mat-form-field\r\n class=\"face-select-form\"\r\n *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">\r\n <mat-label>{{ \"ENVIRONMENT\" | localize }}</mat-label>\r\n <mat-select [(ngModel)]=\"renderService.selectedRenderScene\">\r\n <mat-option\r\n *ngFor=\"let scene of renderService.renderScenes\"\r\n [value]=\"scene.sceneAssetId\">{{ scene.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n\r\n<!-- <mat-form-field class=\"face-select-form\" *ngIf=\"renderService.serverData.renderMode === renderModes.RenderRoom\">-->\r\n<!-- <mat-label>{{\"ENVIRONMENT\" | localize}}</mat-label>-->\r\n<!-- <mat-select [(ngModel)]=\"renderService.selectedEnvironment\">-->\r\n<!-- <mat-option *ngFor=\"let renderEnvironment of renderService.renderEnvironments\" [value]=\"renderEnvironment.id\">{{ renderEnvironment.name }}</mat-option>-->\r\n<!-- </mat-select>-->\r\n<!-- </mat-form-field>-->\r\n\r\n <button *ngIf=\"!renderService.blenderRenderService\" mat-raised-button (click)=\"startRenderingRoom()\" color=\"primary\" title=\"{{'MAKE_A_PICTURE' | localize}}\" [disabled]=\"disablePictureButton\">\r\n {{'MAKE_A_PICTURE' | localize}}\r\n </button>\r\n\r\n <button *ngIf=\"renderService.blenderRenderService\" mat-raised-button (click)=\"createBlenderRender()\" color=\"primary\" title=\"{{'MAKE_A_PICTURE' | localize}}\" [disabled]=\"disablePictureButton\">\r\n {{'MAKE_A_PICTURE' | localize}}\r\n </button>\r\n </div>\r\n\r\n\r\n<!-- <div class=\"render-camera-positions-right small\">-->\r\n<!-- <mat-grid-list [cols]=\"10\" rowHeight=\"35px\" class=\"camera_positions_grid\">-->\r\n<!-- <mat-grid-tile colspan=\"3\"><div class=\"grid-tile-head\">{{'IMAGE' | localize}}</div></mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"6\"><div class=\"grid-tile-head\">{{'NAME' | localize}}</div></mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"1\"><div class=\"grid-tile-head\"></div></mat-grid-tile>-->\r\n<!-- </mat-grid-list>-->\r\n<!-- <mat-grid-list [cols]=\"11\" rowHeight=\"55px\" class=\"camera_positions_grid\">-->\r\n<!-- <ng-container *ngFor=\"let image of renderedImages; let index = index\">-->\r\n<!-- <mat-grid-tile colspan=\"3\">-->\r\n<!-- <div class=\"grid-tile-content grid-tile-image\">-->\r\n<!-- <div class=\"image-container\">-->\r\n<!-- <a href=\"{{ image }}\" target=\"_blank\" download>-->\r\n<!-- <img src=\"{{ image }}\">-->\r\n<!-- </a>-->\r\n<!-- </div>-->\r\n<!-- </div>-->\r\n<!-- </mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"6\"><div class=\"grid-tile-content\">{{ 'IMAGE' | localize }}</div></mat-grid-tile>-->\r\n<!-- <mat-grid-tile colspan=\"2\">-->\r\n<!-- <div class=\"grid-tile-content\">-->\r\n<!-- <button mat-icon-button (click)=\"saveImage(image)\" title=\"{{'DOWNLOAD_IMAGE' | localize}}\">-->\r\n<!-- <mat-icon class=\"homedecorator-material-icons\">get_app</mat-icon>-->\r\n<!-- </button>-->\r\n<!-- </div>-->\r\n<!-- <div class=\"grid-tile-content no-padding right\"><button (click)=\"removeRender(image, index)\" class=\"remove-btn\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></button></div>-->\r\n<!-- </mat-grid-tile>-->\r\n<!-- </ng-container>-->\r\n<!-- </mat-grid-list>-->\r\n<!-- </div>-->\r\n </div>\r\n\r\n <button mat-button mat-dialog-close class=\"close_btn\">X</button>\r\n\r\n </div>\r\n\r\n</ng-container>\r\n", styles: ["::ng-deep .render-dialog-content .mat-dialog-container{margin:0;padding:0}::ng-deep .render-dialog-content .mat-dialog-container .mat-dialog-content{margin:0;padding:0}:host{display:block;max-width:100%;position:relative;box-sizing:border-box}:host *{box-sizing:border-box}:host [hidden]{display:none!important}:host .close_btn{position:absolute;top:0;right:0;font-size:20px;padding:0;width:30px;min-width:0px;line-height:30px}:host .render_btn{position:absolute;left:65%;margin:0 0 0 -83px;bottom:15px}:host .render-camera-positions{display:flex;font-size:14px}:host .render-camera-positions .render-camera-positions-left{min-width:400px;background:#e4edf4;padding:30px;text-align:center}:host .render-camera-positions .render-camera-positions-left h3{text-align:left}:host .render-camera-positions .render-camera-positions-left h4{text-align:left;margin:0}:host .render-camera-positions .render-camera-positions-left .position-separator{width:100%;font-size:0;height:1px;background:#fff;margin:15px 0}:host .render-camera-positions .render-camera-positions-left p{font-size:12px;text-align:center;line-height:170%}:host .render-camera-positions .render-camera-positions-left button{font-size:12px;line-height:32px}:host .render-camera-positions .render-camera-positions-left button.matrixToggle{margin:0 0 5px}:host .render-camera-positions .render-camera-positions-left mat-grid-list{text-align:left}:host .render-camera-positions .render-camera-positions-left mat-grid-list mat-grid-tile .mat-figure{justify-content:left}:host .render-camera-positions .render-camera-positions-left mat-grid-list mat-grid-tile b{text-align:left;width:100%}:host .render-camera-positions .render-camera-positions-left mat-grid-list mat-grid-tile span{display:inline-block;text-align:right;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px;background:#fff;border-radius:5px;line-height:30px;font-size:90%}:host .render-camera-positions .render-camera-positions-left .mat-form-field{width:100%}:host .render-camera-positions .render-camera-positions-left mat-slide-toggle{float:right}:host .render-camera-positions .render-camera-positions-left .render-image-content{width:100%;align-self:start;position:relative}:host .render-camera-positions .render-camera-positions-left .render-image-content img{width:100%;max-width:100%;align-self:start;border-radius:5px}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader{align-self:start;width:calc(100% - 20px);font-size:0;line-height:0;height:6px;position:absolute;left:10px;bottom:15px;z-index:2;text-align:left}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader.ready .loader_progress{background:#74B77F}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader.ready .loader_progress span{color:#74b77f;border-color:#74b77f}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader .loader_progress{vertical-align:top;display:inline-block;background:#3760a1;height:6px;position:relative;transition:.2s ease-in-out;-moz-transition:.2s ease-in-out;-webkit-transition:.2s ease-in-out;border-radius:5px;min-width:25px}:host .render-camera-positions .render-camera-positions-left .render-image-content .loader .loader_progress span{float:left;width:25px;height:16px;line-height:16px;border-radius:4px;text-align:center;position:absolute;top:-5px;font-size:9px;font-weight:bold;background:#fff;right:0px}:host .render-camera-positions .render-camera-positions-left .image_spacer{position:relative;background:#fafafa;width:100%;height:200px;border-radius:5px}:host .render-camera-positions .render-camera-positions-left .image_spacer .mat-icon{position:absolute;margin:auto;left:0;top:0;right:0;bottom:0;width:60px;height:60px;font-size:60px}:host .render-camera-positions .render-camera-positions-right{width:70%;padding:15px 15px 66px;font-size:12px}:host .render-camera-positions .render-camera-positions-right.large{width:60%}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile{border-bottom:1px solid #e4edf4}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile.grid_head{border-color:#fff}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-head{width:100%;text-align:left;font-weight:bold;padding:0 15px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content{width:100%;text-align:left;padding:0 15px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.no-padding{padding:0}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.small-padding{padding:0 2px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.right{text-align:right}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container{width:100%;height:46px;border:1px solid #e4edf4;border-radius:5px;vertical-align:top;text-align:center;display:table;font-size:0}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container a{display:table-cell;vertical-align:middle}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container a img{max-width:100%;max-height:46px;display:inline-block}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container .mat-icon{height:46px;line-height:46px}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content.grid-tile-image .image-container .mat-spinner{margin:11px 0 0;display:inline-block}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content .remove-btn{border:none;background:transparent;color:#0003;cursor:pointer}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content .remove-btn:hover{color:red}:host .render-camera-positions .render-camera-positions-right .mat-grid-tile .grid-tile-content .remove-btn .mat-icon{height:18px;width:18px;font-size:18px}\n"], components: [{ type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i9__namespace.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3__namespace.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { 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: i3__namespace$2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3__namespace$2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i16__namespace.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i19__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8__namespace.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7__namespace.MatLabel, selector: "mat-label" }], pipes: { "localize": LocalizePipe }, animations: [
|
|
31134
31253
|
animations.trigger('slideInOut', [
|
|
31135
31254
|
animations.state('1', animations.style({ 'max-height': '*' })),
|
|
31136
31255
|
animations.state('0', animations.style({ 'max-height': '0px' })),
|
|
@@ -31151,7 +31270,7 @@
|
|
|
31151
31270
|
templateUrl: './render-dialog.component.html',
|
|
31152
31271
|
styleUrls: ['./render-dialog.component.scss']
|
|
31153
31272
|
}]
|
|
31154
|
-
}], ctorParameters: function () { return [{ type: CameraService }, { type: RenderService }, { type: MessageBusService }, { type: UtilsService }, { type: i1__namespace.DomSanitizer }, { type: HomedecoratorSettingsService }, { type: NewRenderService }, { type: ApiServiceModule }]; }, propDecorators: { renderImageField: [{
|
|
31273
|
+
}], ctorParameters: function () { return [{ type: CameraService }, { type: RenderService }, { type: MessageBusService }, { type: UtilsService }, { type: i1__namespace.DomSanitizer }, { type: HomedecoratorSettingsService }, { type: NewRenderService }, { type: ApiServiceModule }, { type: i1__namespace$1.MatDialog }]; }, propDecorators: { renderImageField: [{
|
|
31155
31274
|
type: i0.ViewChild,
|
|
31156
31275
|
args: ['render_image', { static: true }]
|
|
31157
31276
|
}], imageWidthField: [{
|
|
@@ -31179,7 +31298,8 @@
|
|
|
31179
31298
|
// this.messageService.emit(MessageType.ShowLoadingIndicator, {title: 'Uploading...'});
|
|
31180
31299
|
// this._utilsService.prepRoomForRender();
|
|
31181
31300
|
this._dialog.open(RenderDialogComponent, {
|
|
31182
|
-
panelClass: 'render-dialog-content'
|
|
31301
|
+
panelClass: 'render-dialog-content',
|
|
31302
|
+
width: '400px'
|
|
31183
31303
|
});
|
|
31184
31304
|
// // if (this.settingsService.settings.options.useNewRender) {
|
|
31185
31305
|
// // this.newRenderService.renderImage();
|
|
@@ -32595,12 +32715,17 @@
|
|
|
32595
32715
|
});
|
|
32596
32716
|
};
|
|
32597
32717
|
AnswersSlideoutComponent.prototype._containsTextParts = function (value) {
|
|
32598
|
-
|
|
32599
|
-
|
|
32600
|
-
|
|
32718
|
+
if (this.chipTexts !== undefined) {
|
|
32719
|
+
for (var i = 0; i < this.chipTexts.length; i++) {
|
|
32720
|
+
if (value.indexOf(this.chipTexts[i].toLowerCase()) < 0) {
|
|
32721
|
+
return false;
|
|
32722
|
+
}
|
|
32601
32723
|
}
|
|
32724
|
+
return true;
|
|
32725
|
+
}
|
|
32726
|
+
else {
|
|
32727
|
+
return true;
|
|
32602
32728
|
}
|
|
32603
|
-
return true;
|
|
32604
32729
|
};
|
|
32605
32730
|
AnswersSlideoutComponent.prototype._setArrays = function () {
|
|
32606
32731
|
var _this = this;
|
|
@@ -32832,7 +32957,7 @@
|
|
|
32832
32957
|
return LiteSelectorComponent;
|
|
32833
32958
|
}());
|
|
32834
32959
|
LiteSelectorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: LiteSelectorComponent, deps: [{ token: HomedecoratorConnectorService }, { token: BuildFurnitureService }, { token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
32835
|
-
LiteSelectorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LiteSelectorComponent, selector: "rp-lite-selector", inputs: { showAnswers: "showAnswers", show: "show", showSelections: "showSelections", showLabel: "showLabel", canClose: "canClose", metadata: "metadata", customDimensions: "customDimensions" }, outputs: { showChange: "showChange", answerChosen: "answerChosen" }, host: { properties: { "class.custom-dimensions": "this.customDimensions" } }, viewQueries: [{ propertyName: "templateAnswers", first: true, predicate: ["templateAnswers"], descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"show\">\r\n <rp-selections-summary *ngIf=\"showSelections && iOne.selectionsToDisplay.length > 0\" @showSelections [@.disabled]=\"!animateSlideout\"\r\n class=\"rp-selections-summary\"\r\n [showLabel]=\"showLabel\"\r\n [canClose]=\"canClose\"\r\n [customDimensions]=\"customDimensions\"\r\n [answersTemplate]=\"inlineAnswers ? templateAnswers : undefined\"\r\n [answerToShowFromSelectionText]=\"answerToShowFromSelectionText\"\r\n [selections]=\"iOne.selectionsToDisplay\"\r\n (selectSelection)=\"onSelectionsSummarySelectSelection($event)\"\r\n (closeClick)=\"onCloseLiteSelectorButtonClick()\"\r\n >\r\n </rp-selections-summary>\r\n <ng-container *ngIf=\"!inlineAnswers\" [ngTemplateOutlet]=\"templateAnswers\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #templateAnswers>\r\n <rp-answers-slideout\r\n class=\"rp-answers-slideout\"\r\n [metadata]=\"metadata\"\r\n [isShown]=\"showAnswers &&
|
|
32960
|
+
LiteSelectorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LiteSelectorComponent, selector: "rp-lite-selector", inputs: { showAnswers: "showAnswers", show: "show", showSelections: "showSelections", showLabel: "showLabel", canClose: "canClose", metadata: "metadata", customDimensions: "customDimensions" }, outputs: { showChange: "showChange", answerChosen: "answerChosen" }, host: { properties: { "class.custom-dimensions": "this.customDimensions" } }, viewQueries: [{ propertyName: "templateAnswers", first: true, predicate: ["templateAnswers"], descendants: true, read: i0.TemplateRef, static: true }], ngImport: i0__namespace, template: "<ng-container *ngIf=\"show\">\r\n <rp-selections-summary *ngIf=\"showSelections && iOne.selectionsToDisplay.length > 0\" @showSelections [@.disabled]=\"!animateSlideout\"\r\n class=\"rp-selections-summary\"\r\n [showLabel]=\"showLabel\"\r\n [canClose]=\"canClose\"\r\n [customDimensions]=\"customDimensions\"\r\n [answersTemplate]=\"inlineAnswers ? templateAnswers : undefined\"\r\n [answerToShowFromSelectionText]=\"answerToShowFromSelectionText\"\r\n [selections]=\"iOne.selectionsToDisplay\"\r\n (selectSelection)=\"onSelectionsSummarySelectSelection($event)\"\r\n (closeClick)=\"onCloseLiteSelectorButtonClick()\"\r\n >\r\n </rp-selections-summary>\r\n <ng-container *ngIf=\"!inlineAnswers\" [ngTemplateOutlet]=\"templateAnswers\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #templateAnswers>\r\n <rp-answers-slideout\r\n class=\"rp-answers-slideout\"\r\n [metadata]=\"metadata\"\r\n [isShown]=\"showAnswers && iOne.activeAnswers.length > 0\"\r\n [showTitle]=\"!inlineAnswers\"\r\n [showFilter]=\"!inlineAnswers\"\r\n [useSlideout]=\"!inlineAnswers\"\r\n [customDimensions]=\"customDimensions\"\r\n [question]=\"iOne.activeQuestion\"\r\n [answers]=\"iOne.activeAnswers\"\r\n (answerChosen)=\"onAnswersSlideoutAnswerChosen($event)\"\r\n ></rp-answers-slideout>\r\n</ng-template>\r\n", styles: [":host.floating ::ng-deep rp-selections-summary{position:absolute;right:0;max-height:calc(100vh - 120px)}:host:not(.custom-dimensions).floating ::ng-deep rp-selections-summary{top:64px;max-height:calc(100vh - 184px)}\n"], components: [{ type: SelectionsSummaryComponent, selector: "rp-selections-summary", inputs: ["selections", "showLabel", "canClose", "answersTemplate", "answerToShowFromSelectionText", "customDimensions"], outputs: ["closeClick", "cancelAnswers", "selectSelection"] }, { type: AnswersSlideoutComponent, selector: "rp-answers-slideout", inputs: ["isShown", "question", "showTitle", "showFilter", "metadata", "answers", "useSlideout", "customDimensions"], outputs: ["isShownChange", "answerChosen"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
|
|
32836
32961
|
animations.trigger('showSelections', [
|
|
32837
32962
|
animations.state('void', animations.style({ 'transform': 'translateX(100%)', opacity: 0 })),
|
|
32838
32963
|
animations.state('*', animations.style({ 'transform': 'translateX(0%)', opacity: 1 })),
|
|
@@ -33595,7 +33720,7 @@
|
|
|
33595
33720
|
});
|
|
33596
33721
|
};
|
|
33597
33722
|
var FloorplannerComponent = /** @class */ (function () {
|
|
33598
|
-
function FloorplannerComponent(_floorplanService, _messageBusService, _configurationService, _dimensionService, _viewModeService) {
|
|
33723
|
+
function FloorplannerComponent(_floorplanService, _messageBusService, _configurationService, _dimensionService, _viewModeService, _roomService) {
|
|
33599
33724
|
var _a, _b;
|
|
33600
33725
|
var _this = this;
|
|
33601
33726
|
this._floorplanService = _floorplanService;
|
|
@@ -33603,6 +33728,7 @@
|
|
|
33603
33728
|
this._configurationService = _configurationService;
|
|
33604
33729
|
this._dimensionService = _dimensionService;
|
|
33605
33730
|
this._viewModeService = _viewModeService;
|
|
33731
|
+
this._roomService = _roomService;
|
|
33606
33732
|
this.selectedWallChange = new rxjs.Subject();
|
|
33607
33733
|
this._viewScaleMin = 50;
|
|
33608
33734
|
this._viewScaleMax = 300;
|
|
@@ -33727,12 +33853,16 @@
|
|
|
33727
33853
|
this._context = this.canvasElement.nativeElement.getContext('2d');
|
|
33728
33854
|
this._offsetX = this._canvas.clientLeft;
|
|
33729
33855
|
this._offsetY = this._canvas.clientTop;
|
|
33730
|
-
this._handleWindowResize();
|
|
33731
33856
|
this._readyToDraw = true;
|
|
33857
|
+
this._handleWindowResize();
|
|
33732
33858
|
}
|
|
33733
33859
|
};
|
|
33734
33860
|
FloorplannerComponent.prototype.showStartMessage = function () {
|
|
33735
|
-
this._diagramBackground
|
|
33861
|
+
if (this._diagramBackground) {
|
|
33862
|
+
this._diagramBackground.src = '';
|
|
33863
|
+
}
|
|
33864
|
+
this._floorplanService.reset();
|
|
33865
|
+
this._draw();
|
|
33736
33866
|
this.showStartingMessages = true;
|
|
33737
33867
|
};
|
|
33738
33868
|
FloorplannerComponent.prototype.setMode = function (mode) {
|
|
@@ -34203,7 +34333,13 @@
|
|
|
34203
34333
|
this.setSelectedMode(value);
|
|
34204
34334
|
};
|
|
34205
34335
|
FloorplannerComponent.prototype.setDiagramSettings = function (input) {
|
|
34336
|
+
this.reset();
|
|
34337
|
+
this._resetOrigin();
|
|
34338
|
+
this._viewScale = 100;
|
|
34339
|
+
this._updateCmPerPixel();
|
|
34340
|
+
this._draw();
|
|
34206
34341
|
this._floorplanService.reset();
|
|
34342
|
+
this._roomService.resetAllRooms();
|
|
34207
34343
|
this._diagramBackground = input.background;
|
|
34208
34344
|
this._diagramBackgroundHeight = input.backgroundHeight;
|
|
34209
34345
|
this._diagramBackgroundWidth = input.backgroundWidth;
|
|
@@ -34228,8 +34364,10 @@
|
|
|
34228
34364
|
FloorplannerComponent.prototype._handleWindowResize = function () {
|
|
34229
34365
|
if (this._canvas) {
|
|
34230
34366
|
var parent = this._canvas.parentElement;
|
|
34231
|
-
|
|
34232
|
-
|
|
34367
|
+
if (parent && parent.clientHeight > 0) { // don't set dimensions of canvas to 0
|
|
34368
|
+
this._canvas.height = parent.clientHeight;
|
|
34369
|
+
this._canvas.width = parent.clientWidth;
|
|
34370
|
+
}
|
|
34233
34371
|
this._draw();
|
|
34234
34372
|
}
|
|
34235
34373
|
};
|
|
@@ -34889,8 +35027,8 @@
|
|
|
34889
35027
|
};
|
|
34890
35028
|
return FloorplannerComponent;
|
|
34891
35029
|
}());
|
|
34892
|
-
FloorplannerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorplannerComponent, deps: [{ token: FloorplanService }, { token: MessageBusService }, { token: ConfigurationService }, { token: DimensioningService }, { token: ViewModeService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
34893
|
-
FloorplannerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FloorplannerComponent, selector: "floor-planner", outputs: { selectedWallChange: "selectedWallChange" }, host: { listeners: { "document:keydown": "handleDocKeyDown($event)", "document:keyup": "handleDocKeyUp($event)", "window:resize": "resizeGrid()" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["floorplannerCanvas"], descendants: true, read: i0.ElementRef, static: true }], ngImport: i0__namespace, template: "<canvas #floorplannerCanvas\r\n (contextmenu)=\"handleContextMenu($event)\"\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n (touchstart)=\"handleTouchStart($event)\"\r\n (touchmove)=\"handleTouchMove($event)\"\r\n (touchend)=\"handleTouchUp($event)\"\r\n (touchcancel)=\"handleTouchEnd($event)\"\r\n></canvas>\r\n\r\n<wall-length-input></wall-length-input>\r\n\r\n<div class=\"controls-top\">\r\n <mat-button-toggle-group class=\"mode-toggle\"\r\n (change)=\"changeFloorplannerMode($event.value)\"\r\n [value]=\"selectedMode\"\r\n >\r\n <mat-button-toggle [value]=\"floorplannerMode.Draw\" [matTooltip]=\"'DRAW_WALLS' | localize\">\r\n <mat-icon class=\"homedecorator-material-icons\">edit</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"floorplannerMode.Move\" [matTooltip]=\"'SELECT_AND_MOVE_WALLS' | localize\">\r\n <mat-icon class=\"homedecorator-material-icons\" svgIcon=\"hand-pointer\"></mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div class=\"hint\" *ngIf=\"mode === floorplannerMode.Drawing\" (click)=\"changeFloorplannerMode(floorplannerMode.Draw)\">\r\n {{ 'CLICK_HERE_TO_EXIT_DRAWING_MODE_OR_PRESS_THE_ESC_KEY' | localize }}\r\n</div>\r\n\r\n<div class=\"hint\" *ngIf=\"mode === floorplannerMode.Draw && this.showStartingMessages\">\r\n {{ 'TAB_ANYWHERE_TO_START' | localize }}\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;background:#fff}:host.hidden{visibility:hidden}canvas{width:inherit;height:inherit}.controls-top{pointer-events:none;position:absolute;top:80px;width:100%;display:flex;align-items:center;justify-content:center}.controls-top>*{pointer-events:all;background:#fff;margin:0 3px}.hint{position:absolute;bottom:20px;left:50%;margin-left:-200px;padding:10px 20px;background:#74B77F;border:1px solid #cccccc;border-radius:3px;text-align:center}.mode-toggle>.mat-button-toggle-checked{color:#fff;background-color:#3760a1}\n"], components: [{ type: WallLengthInputComponent, selector: "wall-length-input" }, { type:
|
|
35030
|
+
FloorplannerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorplannerComponent, deps: [{ token: FloorplanService }, { token: MessageBusService }, { token: ConfigurationService }, { token: DimensioningService }, { token: ViewModeService }, { token: RoomService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
35031
|
+
FloorplannerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FloorplannerComponent, selector: "floor-planner", outputs: { selectedWallChange: "selectedWallChange" }, host: { listeners: { "document:keydown": "handleDocKeyDown($event)", "document:keyup": "handleDocKeyUp($event)", "window:resize": "resizeGrid()" } }, viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["floorplannerCanvas"], descendants: true, read: i0.ElementRef, static: true }], ngImport: i0__namespace, template: "<canvas #floorplannerCanvas\r\n (contextmenu)=\"handleContextMenu($event)\"\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n (touchstart)=\"handleTouchStart($event)\"\r\n (touchmove)=\"handleTouchMove($event)\"\r\n (touchend)=\"handleTouchUp($event)\"\r\n (touchcancel)=\"handleTouchEnd($event)\"\r\n></canvas>\r\n\r\n<wall-length-input></wall-length-input>\r\n\r\n<div class=\"controls-top\">\r\n <mat-button-toggle-group class=\"mode-toggle\"\r\n (change)=\"changeFloorplannerMode($event.value)\"\r\n [value]=\"selectedMode\"\r\n >\r\n <mat-button-toggle [value]=\"floorplannerMode.Draw\" [matTooltip]=\"'DRAW_WALLS' | localize\">\r\n <mat-icon class=\"homedecorator-material-icons\">edit</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"floorplannerMode.Move\" [matTooltip]=\"'SELECT_AND_MOVE_WALLS' | localize\">\r\n <mat-icon class=\"homedecorator-material-icons\" svgIcon=\"hand-pointer\"></mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div class=\"hint\" *ngIf=\"mode === floorplannerMode.Drawing\" (click)=\"changeFloorplannerMode(floorplannerMode.Draw)\">\r\n {{ 'CLICK_HERE_TO_EXIT_DRAWING_MODE_OR_PRESS_THE_ESC_KEY' | localize }}\r\n</div>\r\n\r\n<div class=\"hint\" *ngIf=\"mode === floorplannerMode.Draw && this.showStartingMessages\">\r\n {{ 'TAB_ANYWHERE_TO_START' | localize }}\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;background:#fff}:host.hidden{visibility:hidden}canvas{width:inherit;height:inherit}.controls-top{pointer-events:none;position:absolute;top:80px;width:100%;display:flex;align-items:center;justify-content:center}.controls-top>*{pointer-events:all;background:#fff;margin:0 3px}.hint{position:absolute;bottom:20px;left:50%;margin-left:-200px;padding:10px 20px;background:#74B77F;border:1px solid #cccccc;border-radius:3px;text-align:center}.mode-toggle>.mat-button-toggle-checked{color:#fff;background-color:#3760a1}\n"], components: [{ type: WallLengthInputComponent, selector: "wall-length-input" }, { type: i8__namespace$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i8__namespace$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": LocalizePipe } });
|
|
34894
35032
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FloorplannerComponent, decorators: [{
|
|
34895
35033
|
type: i0.Component,
|
|
34896
35034
|
args: [{
|
|
@@ -34898,7 +35036,7 @@
|
|
|
34898
35036
|
templateUrl: './floorplanner.component.html',
|
|
34899
35037
|
styleUrls: ['./floorplanner.component.scss']
|
|
34900
35038
|
}]
|
|
34901
|
-
}], ctorParameters: function () { return [{ type: FloorplanService }, { type: MessageBusService }, { type: ConfigurationService }, { type: DimensioningService }, { type: ViewModeService }]; }, propDecorators: { canvasElement: [{
|
|
35039
|
+
}], ctorParameters: function () { return [{ type: FloorplanService }, { type: MessageBusService }, { type: ConfigurationService }, { type: DimensioningService }, { type: ViewModeService }, { type: RoomService }]; }, propDecorators: { canvasElement: [{
|
|
34902
35040
|
type: i0.ViewChild,
|
|
34903
35041
|
args: ['floorplannerCanvas', { read: i0.ElementRef, static: true }]
|
|
34904
35042
|
}], selectedWallChange: [{
|
|
@@ -35579,7 +35717,7 @@
|
|
|
35579
35717
|
});
|
|
35580
35718
|
};
|
|
35581
35719
|
var SettingsComponent = /** @class */ (function () {
|
|
35582
|
-
function SettingsComponent(settingsService, _snackBar, _messageBus, _configurationService, _sceneService, _itemService, _appService, _fontService) {
|
|
35720
|
+
function SettingsComponent(settingsService, _snackBar, _messageBus, _configurationService, _sceneService, _itemService, _appService, _fontService, _settingsService) {
|
|
35583
35721
|
this.settingsService = settingsService;
|
|
35584
35722
|
this._snackBar = _snackBar;
|
|
35585
35723
|
this._messageBus = _messageBus;
|
|
@@ -35588,6 +35726,7 @@
|
|
|
35588
35726
|
this._itemService = _itemService;
|
|
35589
35727
|
this._appService = _appService;
|
|
35590
35728
|
this._fontService = _fontService;
|
|
35729
|
+
this._settingsService = _settingsService;
|
|
35591
35730
|
this.configurationKey = ConfigurationKey;
|
|
35592
35731
|
this.onWallsHeightUpdate = new i0.EventEmitter();
|
|
35593
35732
|
this.version = 'Version: ' + (VersionInfo.appVersion || 'Unknown')
|
|
@@ -35606,6 +35745,8 @@
|
|
|
35606
35745
|
this.showCameraControls = this._configurationService.getValue(ConfigurationKey.ShowWalkThroughCameraControls);
|
|
35607
35746
|
this.showLightControls = this._configurationService.getValue(ConfigurationKey.ShowLightingControls);
|
|
35608
35747
|
this.showPostProcessingSettings = this._configurationService.getValue(ConfigurationKey.ShowPostProcessingSettings);
|
|
35748
|
+
this.showAA = this._settingsService.settings.options.aaEnabled;
|
|
35749
|
+
this.showAO = this._settingsService.settings.options.aoEnabled;
|
|
35609
35750
|
this.showWalls = this._configurationService.getValue(ConfigurationKey.ShowWalls);
|
|
35610
35751
|
this.showCeiling = this._configurationService.getValue(ConfigurationKey.ShowCeiling);
|
|
35611
35752
|
this.wallSnapping = this._configurationService.getValue(ConfigurationKey.WallSnapping);
|
|
@@ -35629,6 +35770,10 @@
|
|
|
35629
35770
|
this[key] = checked;
|
|
35630
35771
|
this._configurationService.setValue(key, checked);
|
|
35631
35772
|
};
|
|
35773
|
+
SettingsComponent.prototype.toggleOption = function (option, checked) {
|
|
35774
|
+
this._settingsService.settings.options[option] = checked;
|
|
35775
|
+
this._settingsService.settingsChanged.next();
|
|
35776
|
+
};
|
|
35632
35777
|
SettingsComponent.prototype.setInteriorLightIntensity = function (value) {
|
|
35633
35778
|
this._configurationService.setValue(ConfigurationKey.InteriorLightIntensity, value);
|
|
35634
35779
|
};
|
|
@@ -35709,8 +35854,8 @@
|
|
|
35709
35854
|
};
|
|
35710
35855
|
return SettingsComponent;
|
|
35711
35856
|
}());
|
|
35712
|
-
SettingsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SettingsComponent, deps: [{ token: HomedecoratorSettingsService }, { token: i2__namespace$4.MatSnackBar }, { token: MessageBusService }, { token: ConfigurationService }, { token: SceneService }, { token: ItemService }, { token: HomedecoratorAppService }, { token: FontService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
35713
|
-
SettingsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SettingsComponent, selector: "rp-settings", inputs: { minWallHeight: "minWallHeight", placeCameraDisabled: "placeCameraDisabled" }, outputs: { onWallsHeightUpdate: "onWallsHeightUpdate" }, viewQueries: [{ propertyName: "versionFieldRef", first: true, predicate: ["versionField"], descendants: true, static: true }], ngImport: i0__namespace, template: "\r\n\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_TOUCH' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"enableTouch\"\r\n (change)=\"toggle(configurationKey.EnableTouch, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n\r\n<h3 class=\"mat-subheading-2\">{{'WALLS' | localize}}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <rp-dimension-input\r\n [sourceValue]=\"wallHeight\"\r\n [minValue]=\"minWallHeight\"\r\n title=\"{{'DEFAULT_HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"applyNewHeight($event)\"\r\n >\r\n </rp-dimension-input>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'DEFAULT_THICKNESS' | localize}}:</b>\r\n <span class=\"mat-body-1\">{{wallThickness}}</span>\r\n</div>\r\n<div *ngIf=\"showDetailedWallMeasurements\" class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_DETAILED_WALL_MEASUREMENTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showDetailedWallMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowDetailedWallMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_DISTANCES_OF_WALL_ITEMS_IN_2D' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWallItemMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowWallItemMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_SNAPPING_OF_WALLS_TO_BASIC_ANGLES' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"wallSnapping\"\r\n (change)=\"toggle(configurationKey.WallSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_SNAPPING_TO_WALL_JOINTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"cornerSnapping\"\r\n (change)=\"toggle(configurationKey.CornerSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subheading-2\">{{'OBJECTS' | localize}}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_DISTANCES' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectDistances\"\r\n (change)=\"toggle(configurationKey.ShowObjectDistances, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_MEASUREMENTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowObjectMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_ROTATION_SNAPPING' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"rotationSnappingEnabled\"\r\n (change)=\"toggle(configurationKey.RotationSnappingEnabled, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'DISPLAY_CUSTOM_SHAPE_NAMES' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"displayCustomShapeNames\"\r\n (change)=\"toggle(configurationKey.DisplayCustomShapeNames, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subheading-2\">{{'UNIT_INFO' | localize}}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'MEASUREMENTS' | localize}}:</b>\r\n <span class=\"mat-body-1\">{{dimensioningUnit}}</span>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ANGLES' | localize}}:</b>\r\n <span class=\"mat-body-1\">{{angleUnit}}</span>\r\n</div>\r\n\r\n<h3 class=\"mat-subheading-2\">{{'CAMERA' | localize}}</h3>\r\n<b class=\"mat-body-2\">{{'SET_START_POSITION_FOR_WALK_THROUGH_MODE' | localize}}</b>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n [disabled]=\"placeCameraDisabled\"\r\n class=\"place-camera\"\r\n (click)=\"placeCamera()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\r\n {{'PLACE_CAMERA' | localize}}\r\n </button>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_CAMERA_CONFIGURATION' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCameraControls\"\r\n (change)=\"toggle(configurationKey.ShowWalkThroughCameraControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subheading-2\">{{'CLEAR_ROOM' | localize}}</h3>\r\n <b class=\"mat-body-2\">{{'CLEAR_ALL_FURNITURE_FROM_ROOM' | localize}}</b>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n class=\"remove-all\"\r\n (click)=\"removeAll()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">delete_sweep</mat-icon>\r\n {{'CLEAR_FURNITURE' | localize}}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-container *ngIf=\"settingsService.settings.options.development\">\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subheading-2\">{{'LIGHTS' | localize}}</h3>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_LIGHTING_CONFIGURATION' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showLightControls\"\r\n (change)=\"toggle(configurationKey.ShowLightingControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"toggle(configurationKey.ShowLightplansDialog, true)\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">wb_incandescent</mat-icon>\r\n {{'MANAGE_LIGHTPLANS' | localize}}\r\n </button>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_INTERIOR_LIGHTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showInteriorLights\"\r\n (change)=\"toggle(configurationKey.ShowInteriorLights, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'INTERIOR_LIGHT_INTENSITY' | localize}}</b>\r\n <mat-slider\r\n class=\"slider-group-slider\"\r\n [min]=\"1\"\r\n [max]=\"1600\"\r\n [step]=\"1\"\r\n [value]=\"interiorLightIntensity\"\r\n thumbLabel\r\n (input)=\"setInteriorLightIntensity($event.value)\"\r\n fxFlex=\"grow\">\r\n </mat-slider>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_POST_PROCESSING_SETTINGS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showPostProcessingSettings\"\r\n (change)=\"toggle(configurationKey.ShowPostProcessingSettings, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_WALLS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWalls\"\r\n (change)=\"toggle(configurationKey.ShowWalls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_CEILING' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCeiling\"\r\n (change)=\"toggle(configurationKey.ShowCeiling, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"hideMaterials()\">{{ 'HIDE_MATERIALS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"showConnectors()\">{{ 'SHOW_CONNECTORS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"showSettingsOptions = true\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">settings</mat-icon>\r\n {{'SHOW_SETTINGS_OPTIONS' | localize}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{'APP_VERSION' | localize}}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #versionField\r\n type=\"text\"\r\n readonly=\"true\"\r\n [value]=\"version\"\r\n (click)=\"selectVersionFieldContent()\"\r\n />\r\n <mat-icon matSuffix (click)=\"copyToClipboard()\">file_copy</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n <h3 class=\"mat-subheading-2\">{{'CONNECTION' | localize}}</h3>\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{'iONE backend url' | localize}}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #ioneBackendUrl\r\n type=\"text\"\r\n [value]=\"settingsService.settings?.url\"\r\n (keydown)=\"handleBackendUrlChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n</ng-container>\r\n<div class=\"powered-by-wrapper\">\r\n <span>MyRoomPlans is powered by</span>\r\n <span class=\"powered-logo-wrapper\">\r\n <a href=\"https://www.colijn-it.nl\" target=\"_blank\" alt=\"Colijn IT\" class=\"colijn-it-logo\"><img src=\"assets/images/colijn-logo.webp\"/></a>\r\n <a href=\"https://ione360.com\" target=\"_blank\" alt=\"iONE360\" class=\"ione-360-logo\"><img src=\"assets/images/ione360-logo.webp\"/></a>\r\n </span>\r\n <span>Copyright Colijn IT 2021</span>\r\n</div>\r\n<settings-options *ngIf=\"showSettingsOptions\" (onclose)=\"showSettingsOptions = false\"></settings-options>\r\n", styles: [":host{overflow-y:auto;overflow-x:hidden}:host .powered-by-wrapper{margin-top:20px;font-size:12px}:host .powered-by-wrapper .powered-logo-wrapper{display:flex;align-items:center;justify-content:space-between}:host .powered-by-wrapper .colijn-it-logo{margin:0 5px}:host .powered-by-wrapper .colijn-it-logo img{width:100px}:host .powered-by-wrapper .ione-360-logo{margin:5px}:host .powered-by-wrapper .ione-360-logo img{width:134px}.panel-item{min-height:40px}.panel-item+h3{margin-top:16px}mat-form-field{width:100%}::ng-deep .mat-drawer-content{overflow-y:auto;overflow-x:hidden}\n"], components: [{ type: i10__namespace$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked", "aria-describedby"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { 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: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7__namespace$1.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "vertical", "displayWith", "valueText"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { type: i6__namespace.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: SettingsOptionsComponent, selector: "settings-options", outputs: ["onclose"] }], directives: [{ type: i3__namespace$3.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: i3__namespace$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$3.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"] }, { type: i19__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace.MatSuffix, selector: "[matSuffix]" }], pipes: { "localize": LocalizePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
|
35857
|
+
SettingsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SettingsComponent, deps: [{ token: HomedecoratorSettingsService }, { token: i2__namespace$4.MatSnackBar }, { token: MessageBusService }, { token: ConfigurationService }, { token: SceneService }, { token: ItemService }, { token: HomedecoratorAppService }, { token: FontService }, { token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
35858
|
+
SettingsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SettingsComponent, selector: "rp-settings", inputs: { minWallHeight: "minWallHeight", placeCameraDisabled: "placeCameraDisabled" }, outputs: { onWallsHeightUpdate: "onWallsHeightUpdate" }, viewQueries: [{ propertyName: "versionFieldRef", first: true, predicate: ["versionField"], descendants: true, static: true }], ngImport: i0__namespace, template: "\r\n\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_TOUCH' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"enableTouch\"\r\n (change)=\"toggle(configurationKey.EnableTouch, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n\r\n<h3 class=\"mat-subheading-2\">{{'WALLS' | localize}}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <rp-dimension-input\r\n [sourceValue]=\"wallHeight\"\r\n [minValue]=\"minWallHeight\"\r\n title=\"{{'DEFAULT_HEIGHT' | localize}}\"\r\n (dimensionChanged)=\"applyNewHeight($event)\"\r\n >\r\n </rp-dimension-input>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'DEFAULT_THICKNESS' | localize}}:</b>\r\n <span class=\"mat-body-1\">{{wallThickness}}</span>\r\n</div>\r\n<div *ngIf=\"showDetailedWallMeasurements\" class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_DETAILED_WALL_MEASUREMENTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showDetailedWallMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowDetailedWallMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_DISTANCES_OF_WALL_ITEMS_IN_2D' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWallItemMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowWallItemMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_SNAPPING_OF_WALLS_TO_BASIC_ANGLES' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"wallSnapping\"\r\n (change)=\"toggle(configurationKey.WallSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_SNAPPING_TO_WALL_JOINTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"cornerSnapping\"\r\n (change)=\"toggle(configurationKey.CornerSnapping, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subheading-2\">{{'OBJECTS' | localize}}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_DISTANCES' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectDistances\"\r\n (change)=\"toggle(configurationKey.ShowObjectDistances, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_MEASUREMENTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showObjectMeasurements\"\r\n (change)=\"toggle(configurationKey.ShowObjectMeasurements, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ENABLE_ROTATION_SNAPPING' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"rotationSnappingEnabled\"\r\n (change)=\"toggle(configurationKey.RotationSnappingEnabled, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n<div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'DISPLAY_CUSTOM_SHAPE_NAMES' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"displayCustomShapeNames\"\r\n (change)=\"toggle(configurationKey.DisplayCustomShapeNames, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<h3 class=\"mat-subheading-2\">{{'UNIT_INFO' | localize}}</h3>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'MEASUREMENTS' | localize}}:</b>\r\n <span class=\"mat-body-1\">{{dimensioningUnit}}</span>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'ANGLES' | localize}}:</b>\r\n <span class=\"mat-body-1\">{{angleUnit}}</span>\r\n</div>\r\n\r\n<h3 class=\"mat-subheading-2\">{{'CAMERA' | localize}}</h3>\r\n<b class=\"mat-body-2\">{{'SET_START_POSITION_FOR_WALK_THROUGH_MODE' | localize}}</b>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n [disabled]=\"placeCameraDisabled\"\r\n class=\"place-camera\"\r\n (click)=\"placeCamera()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\r\n {{'PLACE_CAMERA' | localize}}\r\n </button>\r\n</div>\r\n<div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_CAMERA_CONFIGURATION' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCameraControls\"\r\n (change)=\"toggle(configurationKey.ShowWalkThroughCameraControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subheading-2\">{{'CLEAR_ROOM' | localize}}</h3>\r\n <b class=\"mat-body-2\">{{'CLEAR_ALL_FURNITURE_FROM_ROOM' | localize}}</b>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n class=\"remove-all\"\r\n (click)=\"removeAll()\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">delete_sweep</mat-icon>\r\n {{'CLEAR_FURNITURE' | localize}}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-container *ngIf=\"settingsService.settings.options.development\">\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <h3 class=\"mat-subheading-2\">{{'LIGHTS' | localize}}</h3>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_LIGHTING_CONFIGURATION' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showLightControls\"\r\n (change)=\"toggle(configurationKey.ShowLightingControls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"toggle(configurationKey.ShowLightplansDialog, true)\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">wb_incandescent</mat-icon>\r\n {{'MANAGE_LIGHTPLANS' | localize}}\r\n </button>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_INTERIOR_LIGHTS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showInteriorLights\"\r\n (change)=\"toggle(configurationKey.ShowInteriorLights, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" psefxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'INTERIOR_LIGHT_INTENSITY' | localize}}</b>\r\n <mat-slider\r\n class=\"slider-group-slider\"\r\n [min]=\"1\"\r\n [max]=\"1600\"\r\n [step]=\"1\"\r\n [value]=\"interiorLightIntensity\"\r\n thumbLabel\r\n (input)=\"setInteriorLightIntensity($event.value)\"\r\n fxFlex=\"grow\">\r\n </mat-slider>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_POST_PROCESSING_SETTINGS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showPostProcessingSettings\"\r\n (change)=\"toggle(configurationKey.ShowPostProcessingSettings, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_AA' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showAA\"\r\n (change)=\"toggleOption('aaEnabled', $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_AO' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showAO\"\r\n (change)=\"toggleOption('aoEnabled', $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_WALLS' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showWalls\"\r\n (change)=\"toggle(configurationKey.ShowWalls, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <b class=\"mat-body-2\">{{'SHOW_CEILING' | localize}}</b>\r\n <mat-slide-toggle\r\n min=\"0\"\r\n max=\"1\"\r\n [checked]=\"showCeiling\"\r\n (change)=\"toggle(configurationKey.ShowCeiling, $event.checked)\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"hideMaterials()\">{{ 'HIDE_MATERIALS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button (click)=\"showConnectors()\">{{ 'SHOW_CONNECTORS' | localize }}</button>\r\n </div>\r\n <div class=\"panel-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\r\n <button\r\n mat-button\r\n (click)=\"showSettingsOptions = true\"\r\n fxLayout=\"row\"\r\n fxLayoutalign=\"center center\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">settings</mat-icon>\r\n {{'SHOW_SETTINGS_OPTIONS' | localize}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{'APP_VERSION' | localize}}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #versionField\r\n type=\"text\"\r\n readonly=\"true\"\r\n [value]=\"version\"\r\n (click)=\"selectVersionFieldContent()\"\r\n />\r\n <mat-icon matSuffix (click)=\"copyToClipboard()\">file_copy</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n <h3 class=\"mat-subheading-2\">{{'CONNECTION' | localize}}</h3>\r\n <div class=\"panel-item\" fxLayout=\"column\">\r\n <b class=\"mat-body-2\">{{'iONE backend url' | localize}}:</b>\r\n <mat-form-field>\r\n <input\r\n matInput\r\n #ioneBackendUrl\r\n type=\"text\"\r\n [value]=\"settingsService.settings?.url\"\r\n (keydown)=\"handleBackendUrlChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n</ng-container>\r\n<div class=\"powered-by-wrapper\">\r\n <span>MyRoomPlans is powered by</span>\r\n <span class=\"powered-logo-wrapper\">\r\n <a href=\"https://www.colijn-it.nl\" target=\"_blank\" alt=\"Colijn IT\" class=\"colijn-it-logo\"><img src=\"assets/images/colijn-logo.webp\"/></a>\r\n <a href=\"https://ione360.com\" target=\"_blank\" alt=\"iONE360\" class=\"ione-360-logo\"><img src=\"assets/images/ione360-logo.webp\"/></a>\r\n </span>\r\n <span>Copyright Colijn IT 2021</span>\r\n</div>\r\n<settings-options *ngIf=\"showSettingsOptions\" (onclose)=\"showSettingsOptions = false\"></settings-options>\r\n", styles: [":host{overflow-y:auto;overflow-x:hidden}:host .powered-by-wrapper{margin-top:20px;font-size:12px}:host .powered-by-wrapper .powered-logo-wrapper{display:flex;align-items:center;justify-content:space-between}:host .powered-by-wrapper .colijn-it-logo{margin:0 5px}:host .powered-by-wrapper .colijn-it-logo img{width:100px}:host .powered-by-wrapper .ione-360-logo{margin:5px}:host .powered-by-wrapper .ione-360-logo img{width:134px}.panel-item{min-height:40px}.panel-item+h3{margin-top:16px}mat-form-field{width:100%}::ng-deep .mat-drawer-content{overflow-y:auto;overflow-x:hidden}\n"], components: [{ type: i10__namespace$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked", "aria-describedby"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { 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: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7__namespace$1.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "vertical", "displayWith", "valueText"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }, { type: i6__namespace.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: SettingsOptionsComponent, selector: "settings-options", outputs: ["onclose"] }], directives: [{ type: i3__namespace$3.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: i3__namespace$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$3.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"] }, { type: i19__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace.MatSuffix, selector: "[matSuffix]" }], pipes: { "localize": LocalizePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
|
35714
35859
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SettingsComponent, decorators: [{
|
|
35715
35860
|
type: i0.Component,
|
|
35716
35861
|
args: [{
|
|
@@ -35719,7 +35864,7 @@
|
|
|
35719
35864
|
styleUrls: ['./settings.component.scss'],
|
|
35720
35865
|
changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
35721
35866
|
}]
|
|
35722
|
-
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: i2__namespace$4.MatSnackBar }, { type: MessageBusService }, { type: ConfigurationService }, { type: SceneService }, { type: ItemService }, { type: HomedecoratorAppService }, { type: FontService }]; }, propDecorators: { versionFieldRef: [{
|
|
35867
|
+
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: i2__namespace$4.MatSnackBar }, { type: MessageBusService }, { type: ConfigurationService }, { type: SceneService }, { type: ItemService }, { type: HomedecoratorAppService }, { type: FontService }, { type: HomedecoratorSettingsService }]; }, propDecorators: { versionFieldRef: [{
|
|
35723
35868
|
type: i0.ViewChild,
|
|
35724
35869
|
args: ['versionField', { static: true }]
|
|
35725
35870
|
}], minWallHeight: [{
|
|
@@ -35940,9 +36085,10 @@
|
|
|
35940
36085
|
TextureEditorOptions[TextureEditorOptions["Both"] = 3] = "Both";
|
|
35941
36086
|
})(TextureEditorOptions || (TextureEditorOptions = {}));
|
|
35942
36087
|
var TextureEditorComponent = /** @class */ (function () {
|
|
35943
|
-
function TextureEditorComponent(_settingsService) {
|
|
36088
|
+
function TextureEditorComponent(messageService, _settingsService) {
|
|
35944
36089
|
var _a;
|
|
35945
36090
|
var _this = this;
|
|
36091
|
+
this.messageService = messageService;
|
|
35946
36092
|
this._settingsService = _settingsService;
|
|
35947
36093
|
this.textureType = TextureType;
|
|
35948
36094
|
this.dragNDropEnforced = false;
|
|
@@ -35984,6 +36130,7 @@
|
|
|
35984
36130
|
};
|
|
35985
36131
|
};
|
|
35986
36132
|
// this.dampSetTexture = this.createDampener(this.setTexture);
|
|
36133
|
+
this._subs.push(this.messageService.subscribe(MessageType.ChangeTexture, function (texture) { return _this.setNewTexture(texture); }));
|
|
35987
36134
|
}
|
|
35988
36135
|
TextureEditorComponent.prototype.ngOnInit = function () {
|
|
35989
36136
|
var _this = this;
|
|
@@ -36005,7 +36152,9 @@
|
|
|
36005
36152
|
TextureEditorComponent.prototype.ngOnDestroy = function () {
|
|
36006
36153
|
var _this = this;
|
|
36007
36154
|
// this.dampSetTexture.release();
|
|
36008
|
-
this._subs.forEach(function (s) {
|
|
36155
|
+
this._subs.forEach(function (s) {
|
|
36156
|
+
s.unsubscribe();
|
|
36157
|
+
});
|
|
36009
36158
|
this.canvas.nativeElement.removeEventListener('mousedown', function () { return _this.onMouseDown(); });
|
|
36010
36159
|
this.canvas.nativeElement.removeEventListener('mouseup', function () { return _this.onMouseUp(); });
|
|
36011
36160
|
this.canvas.nativeElement.removeEventListener('mousemove', function (e) { return _this.onMouseMove(e); });
|
|
@@ -36029,6 +36178,9 @@
|
|
|
36029
36178
|
this.initializeTexture();
|
|
36030
36179
|
}
|
|
36031
36180
|
};
|
|
36181
|
+
TextureEditorComponent.prototype.setNewTexture = function (texture) {
|
|
36182
|
+
this.plainTexture = texture;
|
|
36183
|
+
};
|
|
36032
36184
|
TextureEditorComponent.prototype.handleRemoveTextureClick = function (event) {
|
|
36033
36185
|
this.imageHasBeenResized = false;
|
|
36034
36186
|
this.removeTexture.emit(event);
|
|
@@ -36242,7 +36394,12 @@
|
|
|
36242
36394
|
return __generator(this, function (_a) {
|
|
36243
36395
|
switch (_a.label) {
|
|
36244
36396
|
case 0:
|
|
36245
|
-
|
|
36397
|
+
if (this.texturePlane && this.texturePlane.getTexture() !== undefined) {
|
|
36398
|
+
texture = this.texturePlane.getTexture();
|
|
36399
|
+
}
|
|
36400
|
+
else {
|
|
36401
|
+
texture = this.plainTexture;
|
|
36402
|
+
}
|
|
36246
36403
|
if (!texture) return [3 /*break*/, 2];
|
|
36247
36404
|
return [4 /*yield*/, this._loadTextureData(texture, false)];
|
|
36248
36405
|
case 1:
|
|
@@ -36600,8 +36757,8 @@
|
|
|
36600
36757
|
};
|
|
36601
36758
|
return TextureEditorComponent;
|
|
36602
36759
|
}());
|
|
36603
|
-
TextureEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TextureEditorComponent, deps: [{ token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
36604
|
-
TextureEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextureEditorComponent, selector: "rp-texture-editor", inputs: { width: "width", height: "height", texturePlane: "texturePlane", plainTexture: "plainTexture", changedTexture: "changedTexture", options: "options", dragNDropEnforced: "dragNDropEnforced" }, outputs: { setTexture: "setTexture", removeTexture: "removeTexture" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }, { propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<rp-file-drop\r\n [showDragDrop]=\"((!changedTexture || texture?.type === textureType.Basic) && options !== Options.None) || dragNDropEnforced\"\r\n [showRemove]=\"changedTexture\"\r\n (fileContentChanged)=\"onPhotoDataChange($event)\"\r\n (removeClick)=\"handleRemoveTextureClick($event)\"\r\n>\r\n</rp-file-drop>\r\n\r\n<div class=\"resize-message-wrapper\" *ngIf=\"imageHasBeenResized\">\r\n <span class=\"resize-message\" [textContent]=\"'IMAGE_RESIZED' | localize\"></span>\r\n</div>\r\n\r\n<div class=\"picture-editor\" [hidden]=\"!texture || !changedTexture || dragNDropEnforced\">\r\n <div\r\n class=\"picture-editor-canvas\"\r\n [hidden]=\"options === Options.None || (texture?.type === textureType.Basic)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\"\r\n >\r\n <div\r\n class=\"canvas-wrapper\"\r\n fxLayout=\"column inline\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <canvas [hidden]=\"texture && texture.stretch\" #canvas></canvas>\r\n <mat-button-toggle-group\r\n *ngIf=\"options === Options.Both\"\r\n (change)=\"tiledChanged($event.value === 'texture')\"\r\n [value]=\"tiled ? 'texture' : 'stretch'\"\r\n >\r\n <mat-button-toggle\r\n value=\"stretch\"\r\n title=\"{{'PICTURE' | localize}}\"\r\n [checked]=\"!tiled\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">photo_size_select_large</mat-icon>\r\n {{'SKIN_FULL_WALL' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n <mat-button-toggle\r\n value=\"texture\"\r\n title=\"{{'TILE' | localize}}\"\r\n [checked]=\"tiled\"\r\n >\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">texture</mat-icon>\r\n {{'CREATE_TEXTURE' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n\r\n <div class=\"sliders\" *ngIf=\"texture?.type === textureType.CustomPattern\r\n || ((texture?.type === textureType.Basic || texture?.type === textureType.PBR)\r\n && options === Options.None)\r\n\"\r\n >\r\n <rp-slider-input\r\n title=\"{{'TILE_ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"tileRotationDeg\"\r\n (onChange)=\"onTileRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'TILE_SIZE' | localize}}\"\r\n [min]=\"tileSizeMin\"\r\n [max]=\"tileSizeMax\"\r\n step=\"0.1\"\r\n [value]=\"tileSize\"\r\n (onChange)=\"onTileSizeChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n\r\n <div class=\"sliders\" *ngIf=\"!isBasic(texture) && !isPBR(texture)\">\r\n <rp-slider-input\r\n title=\"{{'ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"textureRotationDeg\"\r\n (onChange)=\"onRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'ZOOM' | localize}}\"\r\n [min]=\"-zoomSliderMax\"\r\n [max]=\"zoomSliderMax\"\r\n step=\"0.1\"\r\n [value]=\"textureScaleSlider\"\r\n (onChange)=\"onScaleChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n\r\n <!--\r\n <footer class=\"picture-editor-footer\">\r\n <button *ngIf=\"texture?.type !== TextureType.Basic || options === Options.None\"\r\n mat-stroked-button color=\"warn\"\r\n (click)=\"resetTexture()\"\r\n >\r\n {{ 'Remove' | localize }}\r\n </button>\r\n </footer>\r\n -->\r\n</div>\r\n", styles: ["rp-texture-editor{display:block;width:100%}.picture-editor-footer{margin-bottom:16px}.picture-editor-canvas{margin-top:.75em;margin-bottom:1.5em;text-align:center}.canvas-wrapper{position:relative}.canvas-wrapper mat-button-toggle-group{text-align:center;width:320px}.canvas-wrapper mat-button-toggle{flex-basis:50%;padding:4px 0}.resize-message-wrapper{margin:10px 3px 3px;text-align:-webkit-center}.resize-message-wrapper .resize-message{color:red;font-style:italic;font-weight:bold;font-size:.9em}\n"], components: [{ type: FileDropComponent, selector: "rp-file-drop", inputs: ["showDragDrop", "showRemove"], outputs: ["fileContentChanged", "removeClick"] }, { type:
|
|
36760
|
+
TextureEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TextureEditorComponent, deps: [{ token: MessageBusService }, { token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
36761
|
+
TextureEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextureEditorComponent, selector: "rp-texture-editor", inputs: { width: "width", height: "height", texturePlane: "texturePlane", plainTexture: "plainTexture", changedTexture: "changedTexture", options: "options", dragNDropEnforced: "dragNDropEnforced" }, outputs: { setTexture: "setTexture", removeTexture: "removeTexture" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }, { propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<rp-file-drop\r\n [showDragDrop]=\"((!changedTexture || texture?.type === textureType.Basic) && options !== Options.None) || dragNDropEnforced\"\r\n [showRemove]=\"changedTexture\"\r\n (fileContentChanged)=\"onPhotoDataChange($event)\"\r\n (removeClick)=\"handleRemoveTextureClick($event)\"\r\n>\r\n</rp-file-drop>\r\n\r\n<div class=\"resize-message-wrapper\" *ngIf=\"imageHasBeenResized\">\r\n <span class=\"resize-message\" [textContent]=\"'IMAGE_RESIZED' | localize\"></span>\r\n</div>\r\n\r\n<div class=\"picture-editor\" [hidden]=\"!texture || !changedTexture || dragNDropEnforced\">\r\n <div\r\n class=\"picture-editor-canvas\"\r\n [hidden]=\"options === Options.None || (texture?.type === textureType.Basic)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (drop)=\"onDrop($event)\"\r\n >\r\n <div\r\n class=\"canvas-wrapper\"\r\n fxLayout=\"column inline\"\r\n fxLayoutAlign=\"center center\"\r\n >\r\n <canvas [hidden]=\"texture && texture.stretch\" #canvas></canvas>\r\n <mat-button-toggle-group\r\n *ngIf=\"options === Options.Both\"\r\n (change)=\"tiledChanged($event.value === 'texture')\"\r\n [value]=\"tiled ? 'texture' : 'stretch'\"\r\n >\r\n <mat-button-toggle\r\n value=\"stretch\"\r\n title=\"{{'PICTURE' | localize}}\"\r\n [checked]=\"!tiled\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">photo_size_select_large</mat-icon>\r\n {{'SKIN_FULL_WALL' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n <mat-button-toggle\r\n value=\"texture\"\r\n title=\"{{'TILE' | localize}}\"\r\n [checked]=\"tiled\"\r\n >\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <mat-icon class=\"homedecorator-material-icons\">texture</mat-icon>\r\n {{'CREATE_TEXTURE' | localize}}\r\n </div>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n\r\n <div class=\"sliders\" *ngIf=\"texture?.type === textureType.CustomPattern\r\n || ((texture?.type === textureType.Basic || texture?.type === textureType.PBR)\r\n && options === Options.None)\r\n\"\r\n >\r\n <rp-slider-input\r\n title=\"{{'TILE_ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"tileRotationDeg\"\r\n (onChange)=\"onTileRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'TILE_SIZE' | localize}}\"\r\n [min]=\"tileSizeMin\"\r\n [max]=\"tileSizeMax\"\r\n step=\"0.1\"\r\n [value]=\"tileSize\"\r\n (onChange)=\"onTileSizeChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n\r\n <div class=\"sliders\" *ngIf=\"!isBasic(texture) && !isPBR(texture)\">\r\n <rp-slider-input\r\n title=\"{{'ROTATION' | localize}}\"\r\n min=\"-180\"\r\n max=\"180\"\r\n step=\"1\"\r\n [value]=\"textureRotationDeg\"\r\n (onChange)=\"onRotationChange($event)\">\r\n </rp-slider-input>\r\n <rp-slider-input\r\n title=\"{{'ZOOM' | localize}}\"\r\n [min]=\"-zoomSliderMax\"\r\n [max]=\"zoomSliderMax\"\r\n step=\"0.1\"\r\n [value]=\"textureScaleSlider\"\r\n (onChange)=\"onScaleChange($event)\">\r\n </rp-slider-input>\r\n </div>\r\n\r\n <!--\r\n <footer class=\"picture-editor-footer\">\r\n <button *ngIf=\"texture?.type !== TextureType.Basic || options === Options.None\"\r\n mat-stroked-button color=\"warn\"\r\n (click)=\"resetTexture()\"\r\n >\r\n {{ 'Remove' | localize }}\r\n </button>\r\n </footer>\r\n -->\r\n</div>\r\n", styles: ["rp-texture-editor{display:block;width:100%}.picture-editor-footer{margin-bottom:16px}.picture-editor-canvas{margin-top:.75em;margin-bottom:1.5em;text-align:center}.canvas-wrapper{position:relative}.canvas-wrapper mat-button-toggle-group{text-align:center;width:320px}.canvas-wrapper mat-button-toggle{flex-basis:50%;padding:4px 0}.resize-message-wrapper{margin:10px 3px 3px;text-align:-webkit-center}.resize-message-wrapper .resize-message{color:red;font-style:italic;font-weight:bold;font-size:.9em}\n"], components: [{ type: FileDropComponent, selector: "rp-file-drop", inputs: ["showDragDrop", "showRemove"], outputs: ["fileContentChanged", "removeClick"] }, { type: i8__namespace$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: SliderInputComponent, selector: "rp-slider-input", inputs: ["title", "min", "max", "step", "value"], outputs: ["onChange"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace$3.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: i3__namespace$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i8__namespace$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }], pipes: { "localize": LocalizePipe } });
|
|
36605
36762
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TextureEditorComponent, decorators: [{
|
|
36606
36763
|
type: i0.Component,
|
|
36607
36764
|
args: [{
|
|
@@ -36609,7 +36766,7 @@
|
|
|
36609
36766
|
templateUrl: './texture-editor.component.html',
|
|
36610
36767
|
styleUrls: ['./texture-editor.component.scss']
|
|
36611
36768
|
}]
|
|
36612
|
-
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }]; }, propDecorators: { fileInput: [{
|
|
36769
|
+
}], ctorParameters: function () { return [{ type: MessageBusService }, { type: HomedecoratorSettingsService }]; }, propDecorators: { fileInput: [{
|
|
36613
36770
|
type: i0.ViewChild,
|
|
36614
36771
|
args: ['fileInput', { static: true }]
|
|
36615
36772
|
}], canvas: [{
|
|
@@ -37473,7 +37630,7 @@
|
|
|
37473
37630
|
return CustomShapeCreatorComponent;
|
|
37474
37631
|
}());
|
|
37475
37632
|
CustomShapeCreatorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomShapeCreatorComponent, deps: [{ token: HudService }, { token: SceneService }, { token: RoomService }, { token: ItemService }, { token: SceneEventService }, { token: MessageBusService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
37476
|
-
CustomShapeCreatorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomShapeCreatorComponent, selector: "rp-custom-shape-creator", inputs: { shape: "shape" }, ngImport: i0__namespace, template: "<section>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input matInput #nameInputRef\r\n type=\"text\"\r\n placeholder=\"{{'SHAPES_NAME' | localize}}\"\r\n [value]=\"name\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"setName(nameInputRef.value)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"nameInputRef.value = name\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"switcher\">\r\n <h2 class=\"mat-body-2\">{{isFloorType ? ('FLOOR' | localize) : ('WALL' | localize)}}</h2>\r\n <mat-slide-toggle\r\n [checked]=\"isFloorType\"\r\n (change)=\"toggleItemType()\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <h3 class=\"mat-subheading-2\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n <rp-dimension-input\r\n title=\"{{'HEIGHT' | localize}}\"\r\n [sourceValue]=\"height * scaleFactor\"\r\n [minValue]=\"
|
|
37633
|
+
CustomShapeCreatorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomShapeCreatorComponent, selector: "rp-custom-shape-creator", inputs: { shape: "shape" }, ngImport: i0__namespace, template: "<section>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"auto center\">\r\n <mat-form-field fxFlex=\"grow\">\r\n <input matInput #nameInputRef\r\n type=\"text\"\r\n placeholder=\"{{'SHAPES_NAME' | localize}}\"\r\n [value]=\"name\"\r\n >\r\n </mat-form-field>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"setName(nameInputRef.value)\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">check</mat-icon>\r\n </button>\r\n <button mat-icon-button\r\n [disabled]=\"name === nameInputRef.value\"\r\n (click)=\"nameInputRef.value = name\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons size-16\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"switcher\">\r\n <h2 class=\"mat-body-2\">{{isFloorType ? ('FLOOR' | localize) : ('WALL' | localize)}}</h2>\r\n <mat-slide-toggle\r\n [checked]=\"isFloorType\"\r\n (change)=\"toggleItemType()\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n </mat-slide-toggle>\r\n </div>\r\n\r\n <h3 class=\"mat-subheading-2\"> {{ 'MEASUREMENTS' | localize}}</h3>\r\n <div>\r\n <rp-dimension-input\r\n title=\"{{'HEIGHT' | localize}}\"\r\n [sourceValue]=\"height * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setHeight($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'WIDTH' | localize}}\"\r\n [sourceValue]=\"width * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setWidth($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'DEPTH' | localize}}\"\r\n [sourceValue]=\"depth * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setDepth($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n\r\n <rp-dimension-input\r\n title=\"{{'ELEVATION' | localize}}\"\r\n [sourceValue]=\"elevation * scaleFactor\"\r\n [minValue]=\"0\"\r\n (dimensionChanged)=\"setElevation($event / scaleFactor)\"\r\n >\r\n </rp-dimension-input>\r\n </div>\r\n\r\n <div>\r\n <h3 class=\"mat-subheading-2\"> {{ 'TEXTURES' | localize}}</h3>\r\n <mat-form-field id=\"face-select-form\">\r\n <mat-label>{{\"SELECT_FACE\" | localize}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedFace\">\r\n <mat-option [value]=\"faceRef.All\">{{ 'ALL' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Top\">{{ 'TOP' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Bottom\">{{ 'BOTTOM' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Front\">{{ 'FRONT' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Back\">{{ 'BACK' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Left\">{{ 'LEFT' | localize }}</mat-option>\r\n <mat-option [value]=\"faceRef.Right\">{{ 'RIGHT' | localize }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <rp-appearance-section\r\n type=\"shape\"\r\n [hideTextureTab]=\"true\"\r\n [color]=\"skin[selectedFace].color\"\r\n [plainTexture]=\"skin[selectedFace].texture\"\r\n [textureWidth]=\"skin[selectedFace].width() * 100\"\r\n [textureHeight]=\"skin[selectedFace].height() * 100\"\r\n [photoOptions]=\"textureOptions.Tiles\"\r\n (setTexture)=\"setTexture($event)\"\r\n (setColor)=\"setColor($event)\"\r\n >\r\n </rp-appearance-section>\r\n </div>\r\n</section>\r\n", styles: [":host{overflow:hidden}:host section{overflow-y:auto;height:100%}#face-select-form{width:100%}#create-button{color:#fff;background:#3760a1}::ng-deep .mat-select-panel{max-height:80vh!important}.switcher{margin-right:10px}\n"], components: [{ type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { 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: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10__namespace$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked", "aria-describedby"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: DimensionInputComponent, selector: "rp-dimension-input", inputs: ["minValue", "maxValue", "sourceValue", "title"], outputs: ["dimensionChanged", "focus", "blur"] }, { type: i9__namespace.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3__namespace.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: AppearanceSectionComponent, selector: "rp-appearance-section", inputs: ["type", "hideTextureTab", "hideColorTab", "hidePhotoTab", "showGlassOption", "texturePlane", "plainTexture", "color", "textureWidth", "textureHeight", "photoOptions", "glassMaterial"], outputs: ["setTexture", "setColor", "setMaterial"] }], directives: [{ type: i3__namespace$3.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: i3__namespace$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3__namespace$3.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"] }, { type: i19__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace.MatLabel, selector: "mat-label" }, { type: i8__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "localize": LocalizePipe } });
|
|
37477
37634
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomShapeCreatorComponent, decorators: [{
|
|
37478
37635
|
type: i0.Component,
|
|
37479
37636
|
args: [{
|
|
@@ -37726,6 +37883,8 @@
|
|
|
37726
37883
|
return [4 /*yield*/, MaterialUtils.FromImage(texture)];
|
|
37727
37884
|
case 1:
|
|
37728
37885
|
_a[_b] = new (_c.apply(THREE.MeshPhongMaterial, [void 0, (_d.map = _e.sent(),
|
|
37886
|
+
_d.transparent = true,
|
|
37887
|
+
_d.alphaTest = 0.5,
|
|
37729
37888
|
_d)]))();
|
|
37730
37889
|
_e.label = 2;
|
|
37731
37890
|
case 2:
|
|
@@ -39141,7 +39300,7 @@
|
|
|
39141
39300
|
this.showContextMenu = false;
|
|
39142
39301
|
};
|
|
39143
39302
|
RoomPlannerComponent.prototype.startGroupSelection = function () {
|
|
39144
|
-
this.
|
|
39303
|
+
this.closeContextMenu();
|
|
39145
39304
|
this.userIsGrouping = true;
|
|
39146
39305
|
this._messageService.emit(MessageType.StartGroupObject);
|
|
39147
39306
|
};
|
|
@@ -39248,12 +39407,12 @@
|
|
|
39248
39407
|
return RoomPlannerComponent;
|
|
39249
39408
|
}());
|
|
39250
39409
|
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$1.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 });
|
|
39251
|
-
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: "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 }], 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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\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\"><mat-icon class=\"homedecorator-material-icons\">close</mat-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p>{{ this.selectedObject.name }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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.MagicWand)\"></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\"><mat-icon class=\"homedecorator-material-icons\">file_copy</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">settings</mat-icon></span>\n <span class=\"label\">{{ 'SETTINGS' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link_off</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-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\"><mat-icon class=\"homedecorator-material-icons\" [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"home\"\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=\"local_florist\"\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 svgIcon=\"cube-unfolded\"\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 #toolbarIcon3dView>\n <rp-toolbar-icon\n svgIcon=\"cube-outline\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive()\"\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\n <ng-template #toolbarIconFaq>\n <rp-toolbar-icon\n *ngIf=\"showFaq()\"\n matIcon=\"help\"\n tooltip=\"{{iconName.Faq | localize}}\"\n (onClick)=\"openFaq(this.settingsService.settings.faqUrl)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconFeedback>\n <rp-toolbar-icon\n *ngIf=\"showFeedback()\"\n matIcon=\"chat_bubble\"\n tooltip=\"{{iconName.Feedback | localize}}\"\n (onClick)=\"openFeedback(this.settingsService.settings.feedbackUrl)\"\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 svgIcon=\"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 #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\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 ", 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:1px solid black;width:100%;margin:5px 0}.toolbar__divider.context-menu{border-color:gray}.on-top{z-index:3}.rp-item-context-menu-wrap{color:#fff;background:rgba(0,0,0,.6);border-radius:5px;box-sizing:border-box;padding:5px;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:200px}.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:1px solid #808080;margin-bottom:10px;padding-left:5px;padding-right:25px;max-width:200px;overflow:hidden}.rp-item-context-menu-wrap .rp-item-context-menu-header p{color:#dda73f;font-size:13px}.rp-item-context-menu-wrap .rp-item-context-menu-close{position:absolute;right:15px;top:15px;z-index:2;cursor:pointer;width:10px;height:10px}.rp-item-context-menu-wrap .rp-item-context-menu-close .close-icon .mat-icon{height:15px;width:15px;font-size:18px}.mrp-save-grouping{position:absolute;bottom:10%;left:50%}\n"], components: [{ type: FloorplannerComponent, selector: "floor-planner", outputs: ["selectedWallChange"] }, { type: ContextMenuComponent, selector: "rp-context-menu", inputs: ["openMouseEvent"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ItemContextMenuComponent, selector: "rp-item-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { type: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: ButtonElevationComponent, selector: "button-elevation", inputs: ["item"] }, { 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: i6__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: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6__namespace$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3__namespace$3.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: i3__namespace$3.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 } });
|
|
39410
|
+
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: "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 }], 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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\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\"><mat-icon class=\"homedecorator-material-icons\">close</mat-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p>{{ this.selectedObject.name }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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.MagicWand)\"></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\"><mat-icon class=\"homedecorator-material-icons\">file_copy</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">settings</mat-icon></span>\n <span class=\"label\">{{ 'SETTINGS' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link_off</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-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\"><mat-icon class=\"homedecorator-material-icons\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"home\"\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=\"local_florist\"\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 svgIcon=\"cube-unfolded\"\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 #toolbarIcon3dView>\n <rp-toolbar-icon\n svgIcon=\"cube-outline\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive()\"\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\n <ng-template #toolbarIconFaq>\n <rp-toolbar-icon\n *ngIf=\"showFaq()\"\n matIcon=\"help\"\n tooltip=\"{{iconName.Faq | localize}}\"\n (onClick)=\"openFaq(this.settingsService.settings.faqUrl)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconFeedback>\n <rp-toolbar-icon\n *ngIf=\"showFeedback()\"\n matIcon=\"chat_bubble\"\n tooltip=\"{{iconName.Feedback | localize}}\"\n (onClick)=\"openFeedback(this.settingsService.settings.feedbackUrl)\"\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 svgIcon=\"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 #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:1px solid black;width:100%;margin:5px 0}.toolbar__divider.context-menu{border-color:gray}.on-top{z-index:3}.rp-item-context-menu-wrap{color:#fff;background:rgba(0,0,0,.6);border-radius:5px;box-sizing:border-box;padding:5px;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:200px}.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:1px solid #808080;margin-bottom:10px;padding-left:5px;padding-right:25px;max-width:200px;overflow:hidden}.rp-item-context-menu-wrap .rp-item-context-menu-header p{color:#dda73f;font-size:13px}.rp-item-context-menu-wrap .rp-item-context-menu-close{position:absolute;right:15px;top:15px;z-index:2;cursor:pointer;width:10px;height:10px}.rp-item-context-menu-wrap .rp-item-context-menu-close .close-icon .mat-icon{height:15px;width:15px;font-size:18px}.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: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ItemContextMenuComponent, selector: "rp-item-context-menu", inputs: ["item"], outputs: ["deletePressed"] }, { type: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: ButtonElevationComponent, selector: "button-elevation", inputs: ["item"] }, { 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: i6__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: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6__namespace$1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i3__namespace$3.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: i3__namespace$3.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 } });
|
|
39252
39411
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RoomPlannerComponent, decorators: [{
|
|
39253
39412
|
type: i0.Component,
|
|
39254
39413
|
args: [{
|
|
39255
39414
|
selector: 'rp-room-planner',
|
|
39256
|
-
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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\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\"><mat-icon class=\"homedecorator-material-icons\">close</mat-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p>{{ this.selectedObject.name }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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.MagicWand)\"></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\"><mat-icon class=\"homedecorator-material-icons\">file_copy</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">settings</mat-icon></span>\n <span class=\"label\">{{ 'SETTINGS' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link_off</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-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\"><mat-icon class=\"homedecorator-material-icons\" [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"home\"\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=\"local_florist\"\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 svgIcon=\"cube-unfolded\"\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 #toolbarIcon3dView>\n <rp-toolbar-icon\n svgIcon=\"cube-outline\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive()\"\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\n <ng-template #toolbarIconFaq>\n <rp-toolbar-icon\n *ngIf=\"showFaq()\"\n matIcon=\"help\"\n tooltip=\"{{iconName.Faq | localize}}\"\n (onClick)=\"openFaq(this.settingsService.settings.faqUrl)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconFeedback>\n <rp-toolbar-icon\n *ngIf=\"showFeedback()\"\n matIcon=\"chat_bubble\"\n tooltip=\"{{iconName.Feedback | localize}}\"\n (onClick)=\"openFeedback(this.settingsService.settings.feedbackUrl)\"\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 svgIcon=\"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 #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\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 ",
|
|
39415
|
+
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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-icon></span>\n <span class=\"label\">{{ 'CONFIGURE' | localize }}</span>\n </div>\n </div>\n </rp-context-menu>\n\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\"><mat-icon class=\"homedecorator-material-icons\">close</mat-icon></span>\n </div>\n <div *ngIf=\"this.selectedObject\" class=\"rp-item-context-menu-header\">\n <p>{{ this.selectedObject.name }}</p>\n </div>\n <div *ngIf=\"showSettingsButton\" (click)=\"showSelectedObjectSidebar()\"\n class=\"rp-item-context-menu-item \">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\" svgIcon=\"magic-wand\"></mat-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.MagicWand)\"></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\"><mat-icon class=\"homedecorator-material-icons\">file_copy</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-icon></span>\n <span class=\"label\">{{ 'REMOVE' | localize }}</span>\n </div>\n <div *ngIf=\"showConfigurationButton\" (click)=\"showSelectedThreedObjectSidebar()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">settings</mat-icon></span>\n <span class=\"label\">{{ 'SETTINGS' | localize }}</span>\n </div>\n <div *ngIf=\"showLockButton && selectedObject\" (click)=\"toggleLockSelectedObject()\"\n class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n <div *ngIf=\"!showGroupEditMenuButtons\" (click)=\"startGroupSelection()\" class=\"rp-item-context-menu-item\">\n <span class=\"icon\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link</mat-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\"><mat-icon class=\"homedecorator-material-icons\">link_off</mat-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\"><mat-icon class=\"homedecorator-material-icons\">delete</mat-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\"><mat-icon class=\"homedecorator-material-icons\"\n [textContent]=\"selectedObject.locked ? 'lock' : 'lock_open'\"></mat-icon></span>\n <span class=\"label\">{{ (selectedObject.locked ? 'UNLOCK' : 'LOCK') | localize }}</span>\n </div>\n </div>\n </rp-item-context-menu>\n\n <ng-template #toolbarIconLibrary>\n <rp-toolbar-icon\n *ngIf=\"!phoneSizeScreen\"\n [disabled]=\"viewModeService.is2dViewActive() || viewModeService.isWalkThroughViewActive()\"\n matIcon=\"home\"\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=\"local_florist\"\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 svgIcon=\"cube-unfolded\"\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 #toolbarIcon3dView>\n <rp-toolbar-icon\n svgIcon=\"cube-outline\"\n tooltip=\"{{iconName.ThreedRoomplan | localize}}\"\n [disabled]=\"viewModeService.is3dViewActive()\"\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\n <ng-template #toolbarIconFaq>\n <rp-toolbar-icon\n *ngIf=\"showFaq()\"\n matIcon=\"help\"\n tooltip=\"{{iconName.Faq | localize}}\"\n (onClick)=\"openFaq(this.settingsService.settings.faqUrl)\"\n [showLabel]=\"phoneSizeScreen\"\n ></rp-toolbar-icon>\n </ng-template>\n\n <ng-template #toolbarIconFeedback>\n <rp-toolbar-icon\n *ngIf=\"showFeedback()\"\n matIcon=\"chat_bubble\"\n tooltip=\"{{iconName.Feedback | localize}}\"\n (onClick)=\"openFeedback(this.settingsService.settings.feedbackUrl)\"\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 svgIcon=\"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 #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 ",
|
|
39257
39416
|
styleUrls: ['./room-planner.component.scss'] /*,
|
|
39258
39417
|
changeDetection: ChangeDetectionStrategy.OnPush*/
|
|
39259
39418
|
}]
|
|
@@ -40335,7 +40494,7 @@
|
|
|
40335
40494
|
return ModelDialogFurnitureListComponent;
|
|
40336
40495
|
}());
|
|
40337
40496
|
ModelDialogFurnitureListComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ModelDialogFurnitureListComponent, deps: [{ token: HomedecoratorIconCacheService }, { token: HomedecoratorSettingsService }, { token: ItemService }, { token: GoogleTagManagerService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
40338
|
-
ModelDialogFurnitureListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ModelDialogFurnitureListComponent, selector: "dialog-furniture-list", inputs: { list: "list", label: "label", subLabel: "subLabel", showCopy: "showCopy", showDelete: "showDelete", showTotals: "showTotals" }, ngImport: i0__namespace, template: "\n <ng-container *ngIf=\"list.length > 0\">\n <div class=\"title\">\n <h4 class=\"label\" *ngIf=\"label\" [textContent]=\"label | localize\"></h4>\n <p class=\"sub-label\" *ngIf=\"subLabel\" [textContent]=\"subLabel | localize\"></p>\n </div>\n\n\n <ul class=\"furniture-list\">\n <li *ngFor=\"let item of list; let i = index\" [attr.data-index]=\"i\" class=\"furniture-item\">\n <div class=\"furniture-item-wrap\">\n <div class=\"furniture-item-left\">\n <div class=\"furniture-item-wrapper\">\n <co-icon *ngIf=\"item.errorMessages.length > 0\" class=\"error-expand-handle\" [class.expanded]=\"item.showErrors\"\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\" (click)=\"item.showErrors = !item.showErrors\"></co-icon>\n <span class=\"furniture-item-title\" [textContent]=\"item.name\"></span>\n <button *ngIf=showCopy class=\"furniture-item-copy\"\n [textContent]=\"item.toggle ? ('COPIED' | localize) : ('COPY' | localize)\"\n (click)=\"copyFurnitureName(item)\"></button>\n </div>\n <div class=\"error-messages-wrapper\" *ngIf=\"item.showErrors\" @showErrorMessages>\n <error-messages [messages]=\"item.errorMessages\"></error-messages>\n </div>\n </div>\n <div class=\"furniture-item-right\" *ngIf=\"showDelete\">\n <button class=\"furniture-item-delete\" matTooltip=\"{{'REMOVE' | localize}}\"\n (click)=\"removeFurniture(item)\">\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\n </button>\n </div>\n </div>\n <!-- add conversionbtn here-->\n <div class=\"furniture-item-conversion-wrap\" *ngIf=\"settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-conversion-row furniture-item-conversion-button-wrap\">\n <button\n (click)=\"sendConversionToTagManager(item)\"\n class=\"furniture-item-button furniture-item-conversion\"\n [ngClass]=\"item.metaData.conversionGTMSend ? 'furniture-item-conversion-highlight':''\">\n <mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon>\n </button>\n </div>\n <div class=\"furniture-item-conversion-row furniture-item-conversion-input-wrap\">\n <label *ngIf=\"item.metaData.conversionGTMSend\" class=\"furniture-item-conversion-input-label\">\n {{ 'SALESPRICE' | localize }}\n </label>\n <input\n type=\"text\"\n [value]=\"item.metaData.conversionSubmittedPrice ? item.metaData.conversionSubmittedPrice : ''\"\n [disabled]=\"!item.metaData.conversionGTMSend\"\n (keydown.enter)=\"getInputValue($event, item)\"\n (keydown.tab)=\"getInputValue($event, item)\"\n [id]=\"item.instanceId\"\n >\n <button\n class=\"input-binded-button\"\n (click)=\"submitInput(item.instanceId, item)\"\n [ngClass]=\"item.metaData.conversionSubmittedPrice && item.metaData.conversionSubmittedPrice !== '' ? 'input-binded-button-highlight' : ''\"\n >\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n </li>\n </ul>\n\n <div class=\"furniture-item-totals\" *ngIf=\"showTotals && settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-total-row furniture-item-total\">\n <span>{{ 'TOTALPRICE' | localize }}: {{ totalPrice }}</span>\n </div>\n <div class=\"furniture-item-total-row furniture-item-total-submit\">\n <button\n name=\"submit project conversion\"\n alt=\"submit project conversion\"\n class=\"furniture-item-button furniture-item-total-button\"\n (click)=\"submitTotalPriceEvent()\"\n [ngClass]=\"totalEventSubmitted ? 'furniture-item-total-button-highlight' : ''\">\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"!totalEventSubmitted\">arrow_upward</mat-icon>\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"totalEventSubmitted\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n\n </ng-container>\n ", isInline: true, styles: [".title{margin-bottom:10px}.label{margin:0}.sub-label{font-size:12px;font-style:italic;margin:0}.furniture-item-button{-webkit-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-item-button .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;margin:0 0 10px}.furniture-list .furniture-item{display:flex;align-items:flex-start;width:100%;margin:2px 0 0;overflow:hidden}.furniture-list .furniture-item.furniture-model .furniture-item-left{padding-right:10px}.furniture-list .furniture-item .furniture-item-wrapper{display:flex;align-items:center}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle{cursor:pointer;transform:rotate(0);height:40px;width:40px}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle.expanded{transform:rotate(180deg);transition:.3s ease-in-out}.furniture-list .furniture-item .furniture-item-wrap{border:1px solid #dce4ea;padding:4px 0 4px 10px;display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left{display:flex;flex-direction:column;width:80%;font-size:13px;margin:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-title{display:flex;flex-direction:column;justify-content:center;width:100%;min-height:32px}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy{float:right;border:none;padding:0 15px;margin:0 0 0 10px;line-height:32px;font-size:12px;text-transform:uppercase;background:transparent;color:#dce4ea;font-weight:600;cursor:pointer}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:focus{outline:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:hover{color:#000000de}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right{display:flex;padding-top:4px;width:20%;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete{-webkit-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list .furniture-item .furniture-item-conversion-wrap{display:flex;flex-direction:row;flex-wrap:wrap;padding-top:9px;box-sizing:border-box}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-row{display:flex;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-button-wrap{width:30%}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap{width:70%;position:relative}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input{width:90%;border:1px solid #e8eceb;border-radius:3px;box-sizing:border-box;padding:10px 5px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input:disabled{background:#eee}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .furniture-item-conversion-input-label{font-size:8px;position:absolute;top:2px;left:10px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button{background:none;border:none;cursor:pointer;position:absolute;right:0;top:10px;color:#000}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button .mat-icon{height:14px;width:14px;font-size:14px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button-highlight{color:#009a6d}.furniture-item-conversion-highlight{background:#009a6d}.furniture-item-conversion-highlight svg{fill:#fff}::ng-deep error-messages .error-message{font-weight:bold;font-size:12px}::ng-deep error-messages .error-description{font-size:11px}.furniture-item-totals{display:flex;flex-direction:row;justify-content:right;align-items:center}.furniture-item-totals .furniture-item-total-row{display:flex;flex-direction:column;margin-left:15px}.furniture-item-totals .furniture-item-total-button-highlight{background:#009a6d;color:#fff}\n"], components: [{ type: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: ErrorMessageComponent, selector: "error-messages", inputs: ["messages"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "localize": LocalizePipe }, animations: [
|
|
40497
|
+
ModelDialogFurnitureListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ModelDialogFurnitureListComponent, selector: "dialog-furniture-list", inputs: { list: "list", label: "label", subLabel: "subLabel", showCopy: "showCopy", showDelete: "showDelete", showTotals: "showTotals" }, ngImport: i0__namespace, template: "\n <ng-container *ngIf=\"list.length > 0\">\n <div class=\"title\">\n <h4 class=\"label\" *ngIf=\"label\" [textContent]=\"label | localize\"></h4>\n <p class=\"sub-label\" *ngIf=\"subLabel\" [textContent]=\"subLabel | localize\"></p>\n </div>\n\n\n <ul class=\"furniture-list\">\n <li *ngFor=\"let item of list; let i = index\" [attr.data-index]=\"i\" class=\"furniture-item\">\n <div class=\"furniture-item-wrap\">\n <div class=\"furniture-item-left\">\n <div class=\"furniture-item-wrapper\">\n <co-icon *ngIf=\"item.errorMessages.length > 0\" class=\"error-expand-handle\" [class.expanded]=\"item.showErrors\"\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\" (click)=\"item.showErrors = !item.showErrors\"></co-icon>\n <span class=\"furniture-item-title\" [textContent]=\"item.name ? item.name : item.sku\"></span>\n <button *ngIf=showCopy class=\"furniture-item-copy\"\n [textContent]=\"item.toggle ? ('COPIED' | localize) : ('COPY' | localize)\"\n (click)=\"copyFurnitureName(item)\"></button>\n </div>\n <div class=\"error-messages-wrapper\" *ngIf=\"item.showErrors\" @showErrorMessages>\n <error-messages [messages]=\"item.errorMessages\"></error-messages>\n </div>\n </div>\n <div class=\"furniture-item-right\" *ngIf=\"showDelete\">\n <button class=\"furniture-item-delete\" matTooltip=\"{{'REMOVE' | localize}}\"\n (click)=\"removeFurniture(item)\">\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\n </button>\n </div>\n </div>\n <!-- add conversionbtn here-->\n <div class=\"furniture-item-conversion-wrap\" *ngIf=\"settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-conversion-row furniture-item-conversion-button-wrap\">\n <button\n (click)=\"sendConversionToTagManager(item)\"\n class=\"furniture-item-button furniture-item-conversion\"\n [ngClass]=\"item.metaData.conversionGTMSend ? 'furniture-item-conversion-highlight':''\">\n <mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon>\n </button>\n </div>\n <div class=\"furniture-item-conversion-row furniture-item-conversion-input-wrap\">\n <label *ngIf=\"item.metaData.conversionGTMSend\" class=\"furniture-item-conversion-input-label\">\n {{ 'SALESPRICE' | localize }}\n </label>\n <input\n type=\"text\"\n [value]=\"item.metaData.conversionSubmittedPrice ? item.metaData.conversionSubmittedPrice : ''\"\n [disabled]=\"!item.metaData.conversionGTMSend\"\n (keydown.enter)=\"getInputValue($event, item)\"\n (keydown.tab)=\"getInputValue($event, item)\"\n [id]=\"item.instanceId\"\n >\n <button\n class=\"input-binded-button\"\n (click)=\"submitInput(item.instanceId, item)\"\n [ngClass]=\"item.metaData.conversionSubmittedPrice && item.metaData.conversionSubmittedPrice !== '' ? 'input-binded-button-highlight' : ''\"\n >\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n </li>\n </ul>\n\n <div class=\"furniture-item-totals\" *ngIf=\"showTotals && settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-total-row furniture-item-total\">\n <span>{{ 'TOTALPRICE' | localize }}: {{ totalPrice }}</span>\n </div>\n <div class=\"furniture-item-total-row furniture-item-total-submit\">\n <button\n name=\"submit project conversion\"\n alt=\"submit project conversion\"\n class=\"furniture-item-button furniture-item-total-button\"\n (click)=\"submitTotalPriceEvent()\"\n [ngClass]=\"totalEventSubmitted ? 'furniture-item-total-button-highlight' : ''\">\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"!totalEventSubmitted\">arrow_upward</mat-icon>\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"totalEventSubmitted\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n\n </ng-container>\n ", isInline: true, styles: [".title{margin-bottom:10px}.label{margin:0}.sub-label{font-size:12px;font-style:italic;margin:0}.furniture-item-button{-webkit-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-item-button .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list{display:flex;flex-direction:column;width:100%;padding:0;overflow:hidden;margin:0 0 10px}.furniture-list .furniture-item{display:flex;align-items:flex-start;width:100%;margin:2px 0 0;overflow:hidden}.furniture-list .furniture-item.furniture-model .furniture-item-left{padding-right:10px}.furniture-list .furniture-item .furniture-item-wrapper{display:flex;align-items:center}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle{cursor:pointer;transform:rotate(0);height:40px;width:40px}.furniture-list .furniture-item .furniture-item-wrapper .error-expand-handle.expanded{transform:rotate(180deg);transition:.3s ease-in-out}.furniture-list .furniture-item .furniture-item-wrap{border:1px solid #dce4ea;padding:4px 0 4px 10px;display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left{display:flex;flex-direction:column;width:80%;font-size:13px;margin:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-title{display:flex;flex-direction:column;justify-content:center;width:100%;min-height:32px}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy{float:right;border:none;padding:0 15px;margin:0 0 0 10px;line-height:32px;font-size:12px;text-transform:uppercase;background:transparent;color:#dce4ea;font-weight:600;cursor:pointer}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:focus{outline:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-left .furniture-item-copy:hover{color:#000000de}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right{display:flex;padding-top:4px;width:20%;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete{-webkit-user-select:none;user-select:none;width:36px;height:36px;color:#fff;background:#3760a1;border:none;border-radius:100%;cursor:pointer;flex-shrink:0}.furniture-list .furniture-item .furniture-item-wrap .furniture-item-right .furniture-item-delete .mat-icon{font-size:18px;line-height:36px;width:auto;height:auto}.furniture-list .furniture-item .furniture-item-conversion-wrap{display:flex;flex-direction:row;flex-wrap:wrap;padding-top:9px;box-sizing:border-box}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-row{display:flex;flex-direction:column;justify-content:center;align-items:center}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-button-wrap{width:30%}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap{width:70%;position:relative}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input{width:90%;border:1px solid #e8eceb;border-radius:3px;box-sizing:border-box;padding:10px 5px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap input:disabled{background:#eee}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .furniture-item-conversion-input-label{font-size:8px;position:absolute;top:2px;left:10px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button{background:none;border:none;cursor:pointer;position:absolute;right:0;top:10px;color:#000}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button .mat-icon{height:14px;width:14px;font-size:14px}.furniture-list .furniture-item .furniture-item-conversion-wrap .furniture-item-conversion-input-wrap .input-binded-button-highlight{color:#009a6d}.furniture-item-conversion-highlight{background:#009a6d}.furniture-item-conversion-highlight svg{fill:#fff}::ng-deep error-messages .error-message{font-weight:bold;font-size:12px}::ng-deep error-messages .error-description{font-size:11px}.furniture-item-totals{display:flex;flex-direction:row;justify-content:right;align-items:center}.furniture-item-totals .furniture-item-total-row{display:flex;flex-direction:column;margin-left:15px}.furniture-item-totals .furniture-item-total-button-highlight{background:#009a6d;color:#fff}\n"], components: [{ type: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: ErrorMessageComponent, selector: "error-messages", inputs: ["messages"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "localize": LocalizePipe }, animations: [
|
|
40339
40498
|
animations.trigger('slideInOut', [
|
|
40340
40499
|
animations.transition(':leave', [
|
|
40341
40500
|
animations.style({ transform: 'translateY(0%)', opacity: '1' }),
|
|
@@ -40352,7 +40511,7 @@
|
|
|
40352
40511
|
type: i0.Component,
|
|
40353
40512
|
args: [{
|
|
40354
40513
|
selector: 'dialog-furniture-list',
|
|
40355
|
-
template: "\n <ng-container *ngIf=\"list.length > 0\">\n <div class=\"title\">\n <h4 class=\"label\" *ngIf=\"label\" [textContent]=\"label | localize\"></h4>\n <p class=\"sub-label\" *ngIf=\"subLabel\" [textContent]=\"subLabel | localize\"></p>\n </div>\n\n\n <ul class=\"furniture-list\">\n <li *ngFor=\"let item of list; let i = index\" [attr.data-index]=\"i\" class=\"furniture-item\">\n <div class=\"furniture-item-wrap\">\n <div class=\"furniture-item-left\">\n <div class=\"furniture-item-wrapper\">\n <co-icon *ngIf=\"item.errorMessages.length > 0\" class=\"error-expand-handle\" [class.expanded]=\"item.showErrors\"\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\" (click)=\"item.showErrors = !item.showErrors\"></co-icon>\n <span class=\"furniture-item-title\" [textContent]=\"item.name\"></span>\n <button *ngIf=showCopy class=\"furniture-item-copy\"\n [textContent]=\"item.toggle ? ('COPIED' | localize) : ('COPY' | localize)\"\n (click)=\"copyFurnitureName(item)\"></button>\n </div>\n <div class=\"error-messages-wrapper\" *ngIf=\"item.showErrors\" @showErrorMessages>\n <error-messages [messages]=\"item.errorMessages\"></error-messages>\n </div>\n </div>\n <div class=\"furniture-item-right\" *ngIf=\"showDelete\">\n <button class=\"furniture-item-delete\" matTooltip=\"{{'REMOVE' | localize}}\"\n (click)=\"removeFurniture(item)\">\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\n </button>\n </div>\n </div>\n <!-- add conversionbtn here-->\n <div class=\"furniture-item-conversion-wrap\" *ngIf=\"settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-conversion-row furniture-item-conversion-button-wrap\">\n <button\n (click)=\"sendConversionToTagManager(item)\"\n class=\"furniture-item-button furniture-item-conversion\"\n [ngClass]=\"item.metaData.conversionGTMSend ? 'furniture-item-conversion-highlight':''\">\n <mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon>\n </button>\n </div>\n <div class=\"furniture-item-conversion-row furniture-item-conversion-input-wrap\">\n <label *ngIf=\"item.metaData.conversionGTMSend\" class=\"furniture-item-conversion-input-label\">\n {{ 'SALESPRICE' | localize }}\n </label>\n <input\n type=\"text\"\n [value]=\"item.metaData.conversionSubmittedPrice ? item.metaData.conversionSubmittedPrice : ''\"\n [disabled]=\"!item.metaData.conversionGTMSend\"\n (keydown.enter)=\"getInputValue($event, item)\"\n (keydown.tab)=\"getInputValue($event, item)\"\n [id]=\"item.instanceId\"\n >\n <button\n class=\"input-binded-button\"\n (click)=\"submitInput(item.instanceId, item)\"\n [ngClass]=\"item.metaData.conversionSubmittedPrice && item.metaData.conversionSubmittedPrice !== '' ? 'input-binded-button-highlight' : ''\"\n >\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n </li>\n </ul>\n\n <div class=\"furniture-item-totals\" *ngIf=\"showTotals && settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-total-row furniture-item-total\">\n <span>{{ 'TOTALPRICE' | localize }}: {{ totalPrice }}</span>\n </div>\n <div class=\"furniture-item-total-row furniture-item-total-submit\">\n <button\n name=\"submit project conversion\"\n alt=\"submit project conversion\"\n class=\"furniture-item-button furniture-item-total-button\"\n (click)=\"submitTotalPriceEvent()\"\n [ngClass]=\"totalEventSubmitted ? 'furniture-item-total-button-highlight' : ''\">\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"!totalEventSubmitted\">arrow_upward</mat-icon>\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"totalEventSubmitted\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n\n </ng-container>\n ",
|
|
40514
|
+
template: "\n <ng-container *ngIf=\"list.length > 0\">\n <div class=\"title\">\n <h4 class=\"label\" *ngIf=\"label\" [textContent]=\"label | localize\"></h4>\n <p class=\"sub-label\" *ngIf=\"subLabel\" [textContent]=\"subLabel | localize\"></p>\n </div>\n\n\n <ul class=\"furniture-list\">\n <li *ngFor=\"let item of list; let i = index\" [attr.data-index]=\"i\" class=\"furniture-item\">\n <div class=\"furniture-item-wrap\">\n <div class=\"furniture-item-left\">\n <div class=\"furniture-item-wrapper\">\n <co-icon *ngIf=\"item.errorMessages.length > 0\" class=\"error-expand-handle\" [class.expanded]=\"item.showErrors\"\n [iconData]=\"iconService.getIcon(icon.ArrowPointDown)\" (click)=\"item.showErrors = !item.showErrors\"></co-icon>\n <span class=\"furniture-item-title\" [textContent]=\"item.name ? item.name : item.sku\"></span>\n <button *ngIf=showCopy class=\"furniture-item-copy\"\n [textContent]=\"item.toggle ? ('COPIED' | localize) : ('COPY' | localize)\"\n (click)=\"copyFurnitureName(item)\"></button>\n </div>\n <div class=\"error-messages-wrapper\" *ngIf=\"item.showErrors\" @showErrorMessages>\n <error-messages [messages]=\"item.errorMessages\"></error-messages>\n </div>\n </div>\n <div class=\"furniture-item-right\" *ngIf=\"showDelete\">\n <button class=\"furniture-item-delete\" matTooltip=\"{{'REMOVE' | localize}}\"\n (click)=\"removeFurniture(item)\">\n <mat-icon class=\"homedecorator-material-icons\">delete</mat-icon>\n </button>\n </div>\n </div>\n <!-- add conversionbtn here-->\n <div class=\"furniture-item-conversion-wrap\" *ngIf=\"settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-conversion-row furniture-item-conversion-button-wrap\">\n <button\n (click)=\"sendConversionToTagManager(item)\"\n class=\"furniture-item-button furniture-item-conversion\"\n [ngClass]=\"item.metaData.conversionGTMSend ? 'furniture-item-conversion-highlight':''\">\n <mat-icon class=\"homedecorator-material-icons\">add_shopping_cart</mat-icon>\n </button>\n </div>\n <div class=\"furniture-item-conversion-row furniture-item-conversion-input-wrap\">\n <label *ngIf=\"item.metaData.conversionGTMSend\" class=\"furniture-item-conversion-input-label\">\n {{ 'SALESPRICE' | localize }}\n </label>\n <input\n type=\"text\"\n [value]=\"item.metaData.conversionSubmittedPrice ? item.metaData.conversionSubmittedPrice : ''\"\n [disabled]=\"!item.metaData.conversionGTMSend\"\n (keydown.enter)=\"getInputValue($event, item)\"\n (keydown.tab)=\"getInputValue($event, item)\"\n [id]=\"item.instanceId\"\n >\n <button\n class=\"input-binded-button\"\n (click)=\"submitInput(item.instanceId, item)\"\n [ngClass]=\"item.metaData.conversionSubmittedPrice && item.metaData.conversionSubmittedPrice !== '' ? 'input-binded-button-highlight' : ''\"\n >\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n </li>\n </ul>\n\n <div class=\"furniture-item-totals\" *ngIf=\"showTotals && settingsService.settings.showConversionButtons\">\n <div class=\"furniture-item-total-row furniture-item-total\">\n <span>{{ 'TOTALPRICE' | localize }}: {{ totalPrice }}</span>\n </div>\n <div class=\"furniture-item-total-row furniture-item-total-submit\">\n <button\n name=\"submit project conversion\"\n alt=\"submit project conversion\"\n class=\"furniture-item-button furniture-item-total-button\"\n (click)=\"submitTotalPriceEvent()\"\n [ngClass]=\"totalEventSubmitted ? 'furniture-item-total-button-highlight' : ''\">\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"!totalEventSubmitted\">arrow_upward</mat-icon>\n <mat-icon class=\"homedecorator-material-icons\" *ngIf=\"totalEventSubmitted\">check_circle</mat-icon>\n </button>\n </div>\n </div>\n\n </ng-container>\n ",
|
|
40356
40515
|
styleUrls: [
|
|
40357
40516
|
'./model-dialog-furniture-list.component.scss'
|
|
40358
40517
|
],
|
|
@@ -43840,7 +43999,7 @@
|
|
|
43840
43999
|
return SaveDialogComponent;
|
|
43841
44000
|
}());
|
|
43842
44001
|
SaveDialogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SaveDialogComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: PermanentStoreService }, { token: HomedecoratorIconCacheService }, { token: i1__namespace$1.MatDialog }, { token: i1__namespace$1.MatDialogRef }, { token: MessageBusService }, { token: PresetsService }, { token: HomedecoratorDictionaryService }, { token: HomedecoratorSettingsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
43843
|
-
SaveDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SaveDialogComponent, selector: "rp-save-dialog", ngImport: i0__namespace, template: "<h1 mat-dialog-title>{{'SAVE_THE_PLAN' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"saveToCloud()\">\r\n <h4 mat-line><strong>{{'SAVE_TO_CLOUD' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'ACCESS_THE_PLAN_USING_A_UNIQUE_CODE' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"wasPlanSaved\" (click)=\"saveToCloud(true)\">\r\n <h4 mat-line><strong>{{'SAVE_AS_NEW' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'CREATE_A_COPY_OF_THE_PLAN' | localize}}</p>\r\n </mat-list-item>\r\n <button mat-mini-fab class=\"download-button\" (click)=\"download()\"
|
|
44002
|
+
SaveDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SaveDialogComponent, selector: "rp-save-dialog", ngImport: i0__namespace, template: "<h1 mat-dialog-title>{{'SAVE_THE_PLAN' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"saveToCloud()\">\r\n <h4 mat-line><strong>{{'SAVE_TO_CLOUD' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'ACCESS_THE_PLAN_USING_A_UNIQUE_CODE' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"wasPlanSaved\" (click)=\"saveToCloud(true)\">\r\n <h4 mat-line><strong>{{'SAVE_AS_NEW' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'CREATE_A_COPY_OF_THE_PLAN' | localize}}</p>\r\n </mat-list-item>\r\n <ng-container *ngIf=\"permanentStoreService.code || showLocalSave\">\r\n <button mat-mini-fab class=\"download-button\" (click)=\"download()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.Download)\"></co-icon>\r\n </button>\r\n </ng-container>\r\n </mat-nav-list>\r\n</div>\r\n", styles: [":host .mat-dialog-content{margin:0;padding:0;overflow:hidden}:host .mat-nav-list{display:flex;flex-direction:column}:host .mat-nav-list .mat-list-item:not(:last-child){margin-bottom:30px}:host .download-button{box-shadow:none;background-color:#3760a1;display:flex;align-items:center;justify-content:center;align-self:flex-end}:host .download-button ::ng-deep co-icon [fill]{fill:#fff}.mat-dialog-actions{margin-bottom:0}.item-description{white-space:inherit!important}\n"], components: [{ type: i2__namespace$2.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i2__namespace$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { 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: i4__namespace.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }], directives: [{ type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3__namespace.MatLine, selector: "[mat-line], [matLine]" }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": LocalizePipe } });
|
|
43844
44003
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SaveDialogComponent, decorators: [{
|
|
43845
44004
|
type: i0.Component,
|
|
43846
44005
|
args: [{
|
|
@@ -43886,8 +44045,8 @@
|
|
|
43886
44045
|
this.draftingMode = 'movement';
|
|
43887
44046
|
this.cameraOffset = { x: window.innerWidth / 2, y: window.innerHeight / 2 };
|
|
43888
44047
|
this.cameraZoom = 1;
|
|
43889
|
-
this.maxZoom =
|
|
43890
|
-
this.minZoom = 1;
|
|
44048
|
+
this.maxZoom = 10;
|
|
44049
|
+
this.minZoom = 0.1;
|
|
43891
44050
|
this.scrollSensitivity = 0.005;
|
|
43892
44051
|
this.isDragging = false;
|
|
43893
44052
|
this.dragStart = { x: 0, y: 0 };
|
|
@@ -43937,6 +44096,17 @@
|
|
|
43937
44096
|
_this._context.stroke();
|
|
43938
44097
|
}
|
|
43939
44098
|
}
|
|
44099
|
+
if (_this.draftingMode === 'movement') {
|
|
44100
|
+
_this._canvas.style.cursor = 'pointer';
|
|
44101
|
+
}
|
|
44102
|
+
else {
|
|
44103
|
+
if (_this.isDragging) {
|
|
44104
|
+
_this._canvas.style.cursor = 'pointer';
|
|
44105
|
+
}
|
|
44106
|
+
else {
|
|
44107
|
+
_this._canvas.style.cursor = "url(" + drawModeCursorImageUrl + ") 0 " + drawModeCursorHeight + ", auto";
|
|
44108
|
+
}
|
|
44109
|
+
}
|
|
43940
44110
|
requestAnimationFrame(function () { return _this.draw(); });
|
|
43941
44111
|
};
|
|
43942
44112
|
}
|
|
@@ -43975,6 +44145,9 @@
|
|
|
43975
44145
|
this.hiddenImage.nativeElement.src = url;
|
|
43976
44146
|
}
|
|
43977
44147
|
};
|
|
44148
|
+
DrawDialogComponent.prototype.updateUserValue = function () {
|
|
44149
|
+
this.customerInputLenght = this.inputLength.nativeElement.value;
|
|
44150
|
+
};
|
|
43978
44151
|
DrawDialogComponent.prototype.handleMouseDown = function (event) {
|
|
43979
44152
|
if (this.draftingMode === 'movement') {
|
|
43980
44153
|
this.isDragging = true;
|
|
@@ -44020,16 +44193,13 @@
|
|
|
44020
44193
|
this.cameraZoom = Math.max(this.cameraZoom, this.minZoom);
|
|
44021
44194
|
};
|
|
44022
44195
|
DrawDialogComponent.prototype.handleMouseWheel = function (event) {
|
|
44023
|
-
|
|
44024
|
-
|
|
44025
|
-
|
|
44026
|
-
|
|
44027
|
-
if (zoomAmount) {
|
|
44028
|
-
this.cameraZoom -= zoomAmount;
|
|
44029
|
-
}
|
|
44030
|
-
this.cameraZoom = Math.min(this.cameraZoom, this.maxZoom);
|
|
44031
|
-
this.cameraZoom = Math.max(this.cameraZoom, this.minZoom);
|
|
44196
|
+
var zoomAmount = event.deltaY * this.scrollSensitivity;
|
|
44197
|
+
if (!this.isDragging) {
|
|
44198
|
+
if (zoomAmount) {
|
|
44199
|
+
this.cameraZoom -= zoomAmount;
|
|
44032
44200
|
}
|
|
44201
|
+
this.cameraZoom = Math.min(this.cameraZoom, this.maxZoom);
|
|
44202
|
+
this.cameraZoom = Math.max(this.cameraZoom, this.minZoom);
|
|
44033
44203
|
}
|
|
44034
44204
|
};
|
|
44035
44205
|
DrawDialogComponent.prototype.getEventLocation = function (e) {
|
|
@@ -44042,12 +44212,6 @@
|
|
|
44042
44212
|
};
|
|
44043
44213
|
DrawDialogComponent.prototype.setModus = function (modus) {
|
|
44044
44214
|
this.draftingMode = modus;
|
|
44045
|
-
if (this.draftingMode === 'scaling') {
|
|
44046
|
-
this._canvas.style.cursor = "url(assets/cursors/pencil.png) 0 26}, auto";
|
|
44047
|
-
}
|
|
44048
|
-
else {
|
|
44049
|
-
this._canvas.style.cursor = '';
|
|
44050
|
-
}
|
|
44051
44215
|
};
|
|
44052
44216
|
DrawDialogComponent.prototype.submitLength = function () {
|
|
44053
44217
|
if (this.inputLength.nativeElement.value !== '' && this.measurePoints.length === 2) {
|
|
@@ -44071,6 +44235,7 @@
|
|
|
44071
44235
|
backgroundWidth: this.hiddenImage.nativeElement.width,
|
|
44072
44236
|
cameraZoom: this.cameraZoom
|
|
44073
44237
|
};
|
|
44238
|
+
this._messageService.emit(MessageType.StartWithEmptyRoom);
|
|
44074
44239
|
this._messageService.emit(MessageType.LoadScaledDiagram, output);
|
|
44075
44240
|
this._dialog.closeAll();
|
|
44076
44241
|
}
|
|
@@ -44123,7 +44288,7 @@
|
|
|
44123
44288
|
return DrawDialogComponent;
|
|
44124
44289
|
}());
|
|
44125
44290
|
DrawDialogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawDialogComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: i1__namespace$1.MatDialogRef }, { token: i1__namespace$1.MatDialog }, { token: MessageBusService }, { token: UtilsService }, { token: PresetsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
44126
|
-
DrawDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DrawDialogComponent, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["drawCanvas"], descendants: true, read: i0.ElementRef, static: true }, { propertyName: "inputLength", first: true, predicate: ["inputLength"], descendants: true }, { propertyName: "hiddenImage", first: true, predicate: ["hiddenImage"], descendants: true }], ngImport: i0__namespace, template: "<h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n\r\n\r\n<div class=\"top-bar-container\" >\r\n <div class=\"reference-input-container\" *ngIf=\"draftingMode === 'scaling'\">\r\n <div class=\"input-button-container\">\r\n <input\r\n #inputLength\r\n type=\"number\"\r\n placeholder=\"{{ 'PDF_REFERENCE_PLACEHOLDER' | localize}}\"\r\n [attr.disabled]=\"this.measurePoints.length === 0 ? '' : null\"\r\n >\r\n <button (click)=\"resetPoints()\" title=\"Reset referentie meting\">\r\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\r\n </button>\r\n </div>\r\n <p class=\"helper-text\">{{ 'PDF_REFERENCE_HELPER' | localize }}</p>\r\n </div>\r\n\r\n<!-- <div class=\"rotation-input-container\" *ngIf=\"draftingMode === 'scaling'\">-->\r\n<!-- rotatiedingen-->\r\n<!-- </div>-->\r\n\r\n <div class=\"zoom-button-containers\" *ngIf=\"draftingMode === 'movement'\">\r\n <button (click)=\"clickingZoom('in')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_in</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('reset')\">\r\n <mat-icon class=\"homedecorator-material-icons\">all_out</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('out')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_out</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"main-button-container\">\r\n <mat-button-toggle-group\r\n class=\"mode-toggle\"\r\n (change)=\"setModus($event.value)\"\r\n [value]=\"draftingMode\">\r\n <mat-button-toggle [value]=\"'movement'\" [matTooltip]=\"'Zoom / verplaats modus'\">\r\n <mat-icon svgIcon=\"hand-pointer\"></mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'scaling'\" [matTooltip]=\"'Maak referentie meting'\">\r\n <mat-icon svgIcon=\"pen-ruler\"></mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div class=\"canvas-wrapper\">\r\n <canvas\r\n #drawCanvas\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n ></canvas>\r\n</div>\r\n\r\n<div class=\"save-cancel-button-container\">\r\n <button (click)=\"cancelAndReset()\">\r\n <mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon>\r\n <span>Cancel</span>\r\n </button>\r\n <button (click)=\"submitLength()\" title=\"Opslaan\" *ngIf=\"draftingMode === 'scaling'\">\r\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\r\n <span>Ok</span>\r\n </button>\r\n</div>\r\n\r\n<img #hiddenImage src=\"\" style=\"display: none;\">\r\n", styles: ["canvas{position:relative}button{cursor:pointer;color:#fff;background:#dda73f;border:1px solid #dda73f;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}button:hover{background:#dda73f;color:#fff}.main-button-container{display:flex;justify-content:center;margin-bottom:15px}.main-button-container .mat-button-toggle-checked{background:#dda73f;color:#fff}.reference-input-container .input-button-container{display:flex;align-items:center}.reference-input-container .input-button-container input{min-width:285px;border:1px solid #f7f7f9;border-radius:3px;height:35px;line-height:35px;box-sizing:border-box;padding:10px}.reference-input-container .input-button-container input:disabled{background:#f7f7f9;cursor:default}.reference-input-container .input-button-container button{border:none;display:inline-block}.reference-input-container .helper-text{font-size:13px;font-style:italic;margin:0;padding:0;display:block}.zoom-button-containers{display:flex;justify-items:center;justify-content:right}.zoom-button-containers button{margin:0 5px}.save-cancel-button-container{display:flex;justify-content:center;justify-items:center}.save-cancel-button-container button{margin:3px 10px;padding:8px 15px}.save-cancel-button-container button .homedecorator-material-icons{font-size:18px}.save-cancel-button-container button span{line-height:18px;font-size:15px}.canvas-wrapper{overflow:
|
|
44291
|
+
DrawDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DrawDialogComponent, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "canvasElement", first: true, predicate: ["drawCanvas"], descendants: true, read: i0.ElementRef, static: true }, { propertyName: "inputLength", first: true, predicate: ["inputLength"], descendants: true }, { propertyName: "hiddenImage", first: true, predicate: ["hiddenImage"], descendants: true }], ngImport: i0__namespace, template: "<h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n\r\n\r\n<div class=\"top-bar-container\" >\r\n <div class=\"reference-input-container\" *ngIf=\"draftingMode === 'scaling'\">\r\n <div class=\"input-button-container\">\r\n <input\r\n (change)=\"updateUserValue()\"\r\n [value]=\"customerInputLenght\"\r\n #inputLength\r\n type=\"number\"\r\n placeholder=\"{{ 'PDF_REFERENCE_PLACEHOLDER' | localize}}\"\r\n [attr.disabled]=\"this.measurePoints.length === 0 ? '' : null\"\r\n >\r\n <button (click)=\"resetPoints()\" title=\"Reset referentie meting\">\r\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\r\n </button>\r\n </div>\r\n <p class=\"helper-text\">{{ 'PDF_REFERENCE_HELPER' | localize }}</p>\r\n </div>\r\n\r\n<!-- <div class=\"rotation-input-container\" *ngIf=\"draftingMode === 'scaling'\">-->\r\n<!-- rotatiedingen-->\r\n<!-- </div>-->\r\n\r\n <div class=\"zoom-button-containers\" *ngIf=\"draftingMode === 'movement'\">\r\n <button (click)=\"clickingZoom('in')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_in</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('reset')\">\r\n <mat-icon class=\"homedecorator-material-icons\">all_out</mat-icon>\r\n </button>\r\n <button (click)=\"clickingZoom('out')\">\r\n <mat-icon class=\"homedecorator-material-icons\">zoom_out</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div class=\"main-button-container\">\r\n <mat-button-toggle-group\r\n class=\"mode-toggle\"\r\n (change)=\"setModus($event.value)\"\r\n [value]=\"draftingMode\">\r\n <mat-button-toggle [value]=\"'movement'\" [matTooltip]=\"'Zoom / verplaats modus'\">\r\n <mat-icon svgIcon=\"hand-pointer\"></mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"'scaling'\" [matTooltip]=\"'Maak referentie meting'\">\r\n <mat-icon svgIcon=\"pen-ruler\"></mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n</div>\r\n\r\n<div class=\"canvas-wrapper\">\r\n <canvas\r\n #drawCanvas\r\n (mousedown)=\"handleMouseDown($event)\"\r\n (mousemove)=\"handleMouseMove($event)\"\r\n (mouseup)=\"handleMouseUp($event)\"\r\n (mouseleave)=\"handleMouseLeave($event)\"\r\n (wheel)=\"handleMouseWheel($event)\"\r\n ></canvas>\r\n</div>\r\n\r\n<div class=\"save-cancel-button-container\">\r\n <button (click)=\"cancelAndReset()\">\r\n <mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon>\r\n <span>Cancel</span>\r\n </button>\r\n <button (click)=\"submitLength()\" title=\"Opslaan\" *ngIf=\"draftingMode === 'scaling'\">\r\n <mat-icon class=\"homedecorator-material-icons\">check_circle</mat-icon>\r\n <span>Ok</span>\r\n </button>\r\n</div>\r\n\r\n<img #hiddenImage src=\"\" style=\"display: none;\">\r\n", styles: ["canvas{position:relative}button{cursor:pointer;color:#fff;background:#dda73f;border:1px solid #dda73f;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}button:hover{background:#dda73f;color:#fff}.main-button-container{display:flex;justify-content:center;margin-bottom:15px}.main-button-container .mat-button-toggle-checked{background:#dda73f;color:#fff}.reference-input-container .input-button-container{display:flex;align-items:center}.reference-input-container .input-button-container input{min-width:285px;border:1px solid #f7f7f9;border-radius:3px;height:35px;line-height:35px;box-sizing:border-box;padding:10px}.reference-input-container .input-button-container input:disabled{background:#f7f7f9;cursor:default}.reference-input-container .input-button-container button{border:none;display:inline-block}.reference-input-container .helper-text{font-size:13px;font-style:italic;margin:0;padding:0;display:block}.zoom-button-containers{display:flex;justify-items:center;justify-content:right}.zoom-button-containers button{margin:0 5px}.save-cancel-button-container{display:flex;justify-content:center;justify-items:center}.save-cancel-button-container button{margin:3px 10px;padding:8px 15px}.save-cancel-button-container button .homedecorator-material-icons{font-size:18px}.save-cancel-button-container button span{line-height:18px;font-size:15px}.canvas-wrapper{overflow:hidden;max-height:60vh;max-width:80vw}\n"], components: [{ type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8__namespace$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "localize": LocalizePipe } });
|
|
44127
44292
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawDialogComponent, decorators: [{
|
|
44128
44293
|
type: i0.Component,
|
|
44129
44294
|
args: [{
|
|
@@ -44430,9 +44595,10 @@
|
|
|
44430
44595
|
});
|
|
44431
44596
|
};
|
|
44432
44597
|
var ModelPreviewComponent = /** @class */ (function () {
|
|
44433
|
-
function ModelPreviewComponent(data, settingsService, _dialogRef, _thirdPartyModelService, _messageService, _dialog, _adapterService, _lightPresetsService, _dictionaryService, _fontService) {
|
|
44598
|
+
function ModelPreviewComponent(data, settingsService, iconCache, _dialogRef, _thirdPartyModelService, _messageService, _dialog, _adapterService, _lightPresetsService, _dictionaryService, _fontService) {
|
|
44434
44599
|
this.data = data;
|
|
44435
44600
|
this.settingsService = settingsService;
|
|
44601
|
+
this.iconCache = iconCache;
|
|
44436
44602
|
this._dialogRef = _dialogRef;
|
|
44437
44603
|
this._thirdPartyModelService = _thirdPartyModelService;
|
|
44438
44604
|
this._messageService = _messageService;
|
|
@@ -44442,6 +44608,7 @@
|
|
|
44442
44608
|
this._dictionaryService = _dictionaryService;
|
|
44443
44609
|
this._fontService = _fontService;
|
|
44444
44610
|
this.unitsOfMeasurement = 'cm';
|
|
44611
|
+
this.units = ['cm', 'inches'];
|
|
44445
44612
|
this.mathPi = Math.PI;
|
|
44446
44613
|
this.showReferenceModel = true;
|
|
44447
44614
|
this.floorSizeHeight = 10;
|
|
@@ -44451,16 +44618,23 @@
|
|
|
44451
44618
|
this.distanceStep = 1;
|
|
44452
44619
|
this.stackable = false;
|
|
44453
44620
|
this.heightAdjustable = false;
|
|
44621
|
+
this.selectedPlacement = 0;
|
|
44454
44622
|
this._measurements = [];
|
|
44623
|
+
this.icon = IconEnum;
|
|
44455
44624
|
this.font = this._fontService.hudFont;
|
|
44456
44625
|
}
|
|
44457
44626
|
ModelPreviewComponent.prototype.ngOnInit = function () {
|
|
44627
|
+
var _this = this;
|
|
44458
44628
|
this.initScene();
|
|
44459
44629
|
this.loadModel(this.data);
|
|
44630
|
+
this._adapterService.getModelPlacementOptions().then(function (result) {
|
|
44631
|
+
_this.placementOptions = result;
|
|
44632
|
+
});
|
|
44460
44633
|
};
|
|
44461
44634
|
ModelPreviewComponent.prototype.ngOnDestroy = function () {
|
|
44462
44635
|
};
|
|
44463
44636
|
ModelPreviewComponent.prototype.initScene = function () {
|
|
44637
|
+
var viewScale = 1.3;
|
|
44464
44638
|
// init scene
|
|
44465
44639
|
this.scenePreview = new THREE.Scene();
|
|
44466
44640
|
// init renderer
|
|
@@ -44484,11 +44658,11 @@
|
|
|
44484
44658
|
this.rendererPreview.outputColorSpace = THREE.LinearSRGBColorSpace;
|
|
44485
44659
|
canvReference.appendChild(this.rendererPreview.domElement);
|
|
44486
44660
|
this.rendererPreview.domElement.setAttribute('id', 'threed');
|
|
44487
|
-
this.rendererPreview.setSize(window.
|
|
44661
|
+
this.rendererPreview.setSize(window.innerHeight / viewScale, window.innerHeight / viewScale, true);
|
|
44488
44662
|
// init camera
|
|
44489
44663
|
this.cameraPreview = new THREE.PerspectiveCamera(45, 1, 0.01, 100000000);
|
|
44490
44664
|
this.cameraPreview.position.set(0, 2, 10);
|
|
44491
|
-
this.cameraPreview.aspect = window.
|
|
44665
|
+
this.cameraPreview.aspect = (window.innerHeight / viewScale) / (window.innerHeight / viewScale);
|
|
44492
44666
|
this.cameraPreview.updateProjectionMatrix();
|
|
44493
44667
|
this.controls = new OrbitControls.OrbitControls(this.cameraPreview, this.rendererPreview.domElement);
|
|
44494
44668
|
this.controls.update();
|
|
@@ -44618,6 +44792,7 @@
|
|
|
44618
44792
|
}, options);
|
|
44619
44793
|
};
|
|
44620
44794
|
ModelPreviewComponent.prototype.scaleArticle = function () {
|
|
44795
|
+
var model = this.scenePreview.getObjectByName(this.modelName);
|
|
44621
44796
|
var inputHeight = this.heightArticle.nativeElement.value;
|
|
44622
44797
|
var heightInMeter;
|
|
44623
44798
|
if (this.unitsOfMeasurement === 'cm') {
|
|
@@ -44628,7 +44803,8 @@
|
|
|
44628
44803
|
}
|
|
44629
44804
|
// scale = this.bounding / heightInMeter and use Y as up/ height
|
|
44630
44805
|
var scale = this.boundingBoxSize.y / heightInMeter;
|
|
44631
|
-
|
|
44806
|
+
model.scale.set(model.scale.x / scale, model.scale.y / scale, model.scale.z / scale);
|
|
44807
|
+
this._getBoundingBox(model);
|
|
44632
44808
|
};
|
|
44633
44809
|
ModelPreviewComponent.prototype.rotateModel = function (axis, degrees) {
|
|
44634
44810
|
var model = this.scenePreview.getObjectByName(this.modelName);
|
|
@@ -44654,12 +44830,15 @@
|
|
|
44654
44830
|
else if (axis === 'z') {
|
|
44655
44831
|
model.position.z += amount;
|
|
44656
44832
|
}
|
|
44833
|
+
else if (axis === 'all') {
|
|
44834
|
+
model.position.set(0, 0, 0);
|
|
44835
|
+
}
|
|
44657
44836
|
this._getBoundingBox(model);
|
|
44658
44837
|
};
|
|
44659
44838
|
ModelPreviewComponent.prototype.setUnit = function (event) {
|
|
44660
44839
|
this.unitsOfMeasurement = event.value;
|
|
44661
44840
|
};
|
|
44662
|
-
ModelPreviewComponent.prototype.toggleShowReferenceModel = function () {
|
|
44841
|
+
ModelPreviewComponent.prototype.toggleShowReferenceModel = function ($event) {
|
|
44663
44842
|
var model = this.scenePreview.getObjectByName('Reference_model');
|
|
44664
44843
|
model.visible = !this.showReferenceModel;
|
|
44665
44844
|
this.showReferenceModel = !this.showReferenceModel;
|
|
@@ -44670,6 +44849,9 @@
|
|
|
44670
44849
|
ModelPreviewComponent.prototype.setHeightAdjustable = function (event) {
|
|
44671
44850
|
this.heightAdjustable = event.value;
|
|
44672
44851
|
};
|
|
44852
|
+
ModelPreviewComponent.prototype.closePreview = function () {
|
|
44853
|
+
this._dialog.closeAll();
|
|
44854
|
+
};
|
|
44673
44855
|
ModelPreviewComponent.prototype._animate = function () {
|
|
44674
44856
|
var _this = this;
|
|
44675
44857
|
setTimeout(function () {
|
|
@@ -44723,6 +44905,8 @@
|
|
|
44723
44905
|
});
|
|
44724
44906
|
});
|
|
44725
44907
|
}
|
|
44908
|
+
}).catch(function (error) {
|
|
44909
|
+
_this._messageService.emit(MessageType.RenderError, { title: 'Upload error', message: error });
|
|
44726
44910
|
});
|
|
44727
44911
|
return [2 /*return*/];
|
|
44728
44912
|
});
|
|
@@ -44798,6 +44982,8 @@
|
|
|
44798
44982
|
this.boundingBoxSize = boundingBox.getSize(new THREE.Vector3());
|
|
44799
44983
|
this._setMeasurements(this.boundingBoxSize);
|
|
44800
44984
|
this._showMeasurements();
|
|
44985
|
+
var modelBoxhelper = this.scenePreview.getObjectByName('modelBoxhelper');
|
|
44986
|
+
this.scenePreview.remove(modelBoxhelper);
|
|
44801
44987
|
var boxHelper = new THREE.BoxHelper(object);
|
|
44802
44988
|
boxHelper.material.color.set(0xFF00FF);
|
|
44803
44989
|
boxHelper.name = 'modelBoxhelper';
|
|
@@ -44928,20 +45114,20 @@
|
|
|
44928
45114
|
};
|
|
44929
45115
|
return ModelPreviewComponent;
|
|
44930
45116
|
}());
|
|
44931
|
-
ModelPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ModelPreviewComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: HomedecoratorSettingsService }, { token: i1__namespace$1.MatDialogRef }, { token: ThirdPartyModelService }, { token: MessageBusService }, { token: i1__namespace$1.MatDialog }, { token: HomedecoratorConnectorAdapterService }, { token: LightPresetsService }, { token: HomedecoratorDictionaryService }, { token: FontService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
44932
|
-
ModelPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ModelPreviewComponent, selector: "rp-model-preview", viewQueries: [{ propertyName: "glbExportName", first: true, predicate: ["fileName"], descendants: true }, { propertyName: "heightArticle", first: true, predicate: ["heightArticle"], descendants: true }], ngImport: i0__namespace, template: "\n <div class=\"model-preview\">\n <div class=\"model-preview-container\" id=\"canvasContainer\">\n </div>\n <div class=\"model-preview-actions\">\n <div class=\"input-height-container\">\n <p>Centimeters of inches</p>\n <div class=\"mat-radio-wrapper\">\n <mat-radio-group aria-label=\"Select an unit\" (change)=\"setUnit($event)\">\n <mat-radio-button [checked]=\"true\" value=\"cm\">Height in cm</mat-radio-button>\n <mat-radio-button value=\"inches\">Height in inches</mat-radio-button>\n </mat-radio-group>\n </div>\n <div>\n <input type=\"text\" id=\"heightArticle\" #heightArticle>\n <button (click)=\"scaleArticle()\">scale</button>\n </div>\n </div>\n\n <div>\n <button (click)=\"toggleShowReferenceModel()\">Show Reference model</button>\n </div>\n\n <div class=\"rotation-button-container\">\n <p>Rotation</p>\n <div class=\"rotation-x-buttons\">\n <button (click)=\"rotateModel('x', mathPi / 2)\">x-as + 90 graden</button>\n <button (click)=\"rotateModel('x', -mathPi / 2)\">x-as - 90 graden</button>\n </div>\n <div class=\"rotation-y-buttons\">\n <button (click)=\"rotateModel('y', mathPi / 2)\">y-as + 90 graden</button>\n <button (click)=\"rotateModel('y', -mathPi / 2)\">y-as - 90 graden</button>\n </div>\n <div class=\"rotation-z-buttons\">\n <button (click)=\"rotateModel('z', mathPi / 2)\">z-as + 90 graden</button>\n <button (click)=\"rotateModel('z', -mathPi / 2)\">z-as - 90 graden</button>\n </div>\n </div>\n\n\n <div class=\"rotation-button-container\">\n <p>Positie</p>\n <div class=\"rotation-x-buttons\">\n <button (click)=\"moveModel('x', 0.01)\">x-as + 0.01</button>\n <button (click)=\"moveModel('x', -0.01)\">x-as -0.01</button>\n </div>\n <div class=\"rotation-y-buttons\">\n <button (click)=\"moveModel('y', 0.01)\">y-as + 0.01</button>\n <button (click)=\"moveModel('y', -0.01)\">y-as - 0.01</button>\n </div>\n <div class=\"rotation-z-buttons\">\n <button (click)=\"moveModel('z', 0.01)\">z-as + 0.01</button>\n <button (click)=\"moveModel('z', -0.01)\">z-as -0.01</button>\n </div>\n </div>\n\n <div class=\"model-preview-info\" *ngIf=\"this.data\">\n <div class=\"model-preview-info-container\">\n <div class=\"model-preview-info-left\">\n <label>Name</label>\n </div>\n <div class=\"model-preview-info-right\">\n <input type=\"text\" id=\"fileName\" #fileName value=\"{{ this.data.file.file.name }}\">\n </div>\n </div>\n\n <div class=\"model-preview-info-container\">\n <div class=\"model-preview-info-left\">\n <label>Stackable</label>\n </div>\n <div class=\"model-preview-info-right\">\n <div class=\"mat-radio-wrapper\">\n <mat-radio-group aria-label=\"Select an unit\" (change)=\"setStackable($event)\">\n <mat-radio-button [checked]=\"true\" value=\"false\">No</mat-radio-button>\n <mat-radio-button value=\"true\">Yes</mat-radio-button>\n </mat-radio-group>\n </div>\n </div>\n </div>\n\n <div class=\"model-preview-info-container\">\n <div class=\"model-preview-info-left\">\n <label>Height adjustable</label>\n </div>\n <div class=\"model-preview-info-right\">\n <div class=\"mat-radio-wrapper\">\n <mat-radio-group aria-label=\"Select an unit\" (change)=\"setHeightAdjustable($event)\">\n <mat-radio-button [checked]=\"true\" value=\"false\">No</mat-radio-button>\n <mat-radio-button value=\"true\">Yes</mat-radio-button>\n </mat-radio-group>\n </div>\n </div>\n </div>\n\n <div class=\"model-preview-info-container\">\n <div class=\"model-preview-info-left\">\n <label>Extension</label>\n </div>\n <div class=\"model-preview-info-right\">\n <label>{{ this.data.file.fileType }}</label>\n </div>\n </div>\n <button class=\"exportButton\" (click)=\"exportSceneAsGLB('upload')\">Upload to CDN and add to scene</button>\n <p></p>\n <button class=\"exportButton\" (click)=\"exportSceneAsGLB('download')\">Download model</button>\n </div>\n </div>\n </div>\n ", isInline: true, styles: [".model-preview{display:flex;flex-direction:row}.model-preview .model-preview-actions{min-width:240px;box-sizing:border-box;padding:10px 20px;border-left:1px solid #5b6875}.model-preview .model-preview-actions .model-preview-info-container{margin-bottom:10px}.model-preview .model-preview-actions .model-preview-info-container .model-preview-info-left{font-weight:bolder}.model-preview .exportButton{cursor:pointer;color:#fff;background:#dda73f;border:1px solid #dda73f;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}.model-preview .exportButton:hover{background:#dda73f;color:#fff}input{border:1px solid #5b6875;box-sizing:border-box;padding:3px 10px;border-radius:3px}.mat-radio-wrapper{margin:10px 0}mat-radio-group mat-radio-button{display:block}.rotation-button-container div{display:flex;justify-content:space-between;margin-bottom:10px}.rotation-button-container div button{cursor:pointer;color:#fff;background:#dda73f;border:1px solid #dda73f;border-radius:3px;box-sizing:border-box;padding:5px}.rotation-button-container div button:hover{background:#dda73f;color:#fff}\n"], components: [{ type: i9__namespace$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }], directives: [{ type: i9__namespace$1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
45117
|
+
ModelPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ModelPreviewComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: HomedecoratorSettingsService }, { token: HomedecoratorIconCacheService }, { token: i1__namespace$1.MatDialogRef }, { token: ThirdPartyModelService }, { token: MessageBusService }, { token: i1__namespace$1.MatDialog }, { token: HomedecoratorConnectorAdapterService }, { token: LightPresetsService }, { token: HomedecoratorDictionaryService }, { token: FontService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
45118
|
+
ModelPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ModelPreviewComponent, selector: "rp-model-preview", viewQueries: [{ propertyName: "glbExportName", first: true, predicate: ["fileName"], descendants: true }, { propertyName: "heightArticle", first: true, predicate: ["heightArticle"], descendants: true }], ngImport: i0__namespace, template: "\n <div class=\"model-close-preview\" (click)=\"closePreview()\">\n <mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon>\n </div>\n <div class=\"model-preview\">\n <div class=\"model-preview-window\">\n <div class=\"model-preview-container\" id=\"canvasContainer\"></div>\n <div class=\"model-preview-window-bottom\">\n <div>\n <mat-slide-toggle\n [checked]=\"showReferenceModel\"\n [labelPosition]=\"'after'\"\n (change)=\"toggleShowReferenceModel($event)\">\n Show Reference model\n </mat-slide-toggle>\n </div>\n <div class=\"disclaimer-text-container\">\n <p class=\"disclaimer-text\">\n Grid scale: 1 tile = 1x1 meter\n </p>\n </div>\n </div>\n </div>\n <div class=\"model-preview-actions\">\n <div class=\"input-height-container\">\n <h2>Model settings</h2>\n <div>\n <h3>Scale:</h3>\n <input type=\"text\" id=\"heightArticle\" #heightArticle placeholder=\"Set model height\">\n <mat-form-field class=\"units-select-form\">\n <mat-select class=\"units-mat-select\" [(value)]=\"unitsOfMeasurement\">\n <mat-option class=\"units-mat-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{ unit }}</mat-option>\n </mat-select>\n </mat-form-field>\n <button class=\"apply-button base-button\" (click)=\"scaleArticle()\">Apply</button>\n </div>\n </div>\n <div class=\"rotation-button-container\">\n <h3>Rotation:</h3>\n <div>\n <p>Rotate on X axis (90 degrees)</p>\n <p>\n <button (click)=\"rotateModel('x', -mathPi / 2)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"rotateModel('x', mathPi / 2)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n <div>\n <p>Rotate on Y axis (90 degrees)</p>\n <p>\n <button (click)=\"rotateModel('y', -mathPi / 2)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"rotateModel('y', mathPi / 2)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n <div>\n <p>Rotate on Z axis (90 degrees)</p>\n <p>\n <button (click)=\"rotateModel('z', -mathPi / 2)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"rotateModel('z', mathPi / 2)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n </div>\n <div class=\"rotation-button-container\">\n <h3>Position:</h3>\n <div>\n <p>Reset to coordinates 0,0,0</p>\n <p>\n <button class=\"button-as-link\" (click)=\"moveModel('all', 0)\">\n <mat-icon svgIcon=\"retry-button\"></mat-icon>\n Reset\n </button>\n </p>\n </div>\n <div>\n <p>Move on the Y axis (0.01 unit)</p>\n <p>\n <button (click)=\"moveModel('y', -0.01)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"moveModel('y', 0.01)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n </div>\n\n <div class=\"model-preview-info-container\">\n <h3>Properties:</h3>\n <div>\n <mat-slide-toggle\n [checked]=\"false\"\n [labelPosition]=\"'before'\"\n (change)=\"setStackable($event)\">\n Stackable\n </mat-slide-toggle>\n </div>\n <div>\n <mat-slide-toggle\n [checked]=\"false\"\n [labelPosition]=\"'before'\"\n (change)=\"setHeightAdjustable($event)\">\n Height adjustable\n </mat-slide-toggle>\n </div>\n\n <div class=\"model-placement-container\">\n <div>\n <label>Placement</label>\n\n <mat-form-field *ngIf=\"placementOptions\">\n <mat-select [(value)]=\"selectedPlacement\">\n <mat-option *ngFor=\"let placementOption of placementOptions\"\n [value]=\"placementOption.code\">{{ placementOption.description }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div class=\"model-preview-info\" *ngIf=\"this.data\">\n <div class=\"model-preview-info-container\">\n <div class=\"model-preview-info-left\">\n <label>Save as:</label>\n </div>\n <div class=\"model-preview-info-right\">\n <input type=\"text\" id=\"fileName\" #fileName value=\"{{ this.data.file.file.name }}\">\n </div>\n </div>\n <div>\n <button class=\"base-button exportButton\" (click)=\"exportSceneAsGLB('upload')\">Upload and add to scene</button>\n <button class=\"base-button exportButtonDark\" (click)=\"exportSceneAsGLB('download')\">Download</button>\n\n <button (click)=\"closePreview()\" class=\"base-button exportButtonDark\">\n<!-- <mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon>-->\n <span>Cancel</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n ", isInline: true, styles: [".model-preview{display:flex;flex-direction:row;font-size:14px}.model-preview .model-preview-window .model-preview-window-bottom{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.model-preview .model-preview-window .model-preview-window-bottom .disclaimer-text-container{padding-right:20px;text-align:right;font-style:italic;font-size:12px}.model-preview .model-preview-actions{min-width:350px;box-sizing:border-box;padding:10px 20px;border-left:1px solid #5b6875}.model-preview .model-preview-actions #heightArticle{max-width:160px}.model-preview .model-preview-actions .units-select-form{width:80px;margin:0 5px}.model-preview .model-preview-actions .model-preview-info-container{margin-bottom:10px}.model-preview .model-preview-actions .model-preview-info-container .model-preview-info-left{font-weight:bolder}.model-preview .model-preview-actions .model-preview-info{margin-top:80px}.model-preview .exportButton{cursor:pointer;color:#fff;background:#dda73f;border:1px solid #dda73f;border-radius:3px;box-sizing:border-box;padding:5px;display:flex;align-items:center}.model-preview .exportButton:hover{background:#dda73f;color:#fff}.model-preview input{border:1px solid #5b6875;box-sizing:border-box;padding:3px 10px;border-radius:3px;line-height:30px;width:100%}.mat-radio-wrapper{margin:10px 0}mat-radio-group mat-radio-button{display:block}.base-button{cursor:pointer;color:#fff;background:#dda73f;border:1px solid #dda73f;border-radius:3px;box-sizing:border-box;padding:4px 10px;line-height:30px}.base-button:hover{background:#dda73f;color:#fff}.model-placement-container div{display:flex;justify-content:space-between;margin:5px 0;align-items:center}.rotation-button-container div{display:flex;justify-content:space-between;margin-bottom:5px}.rotation-button-container div p{margin:0;padding:0}.rotation-button-container div button{margin:0 0 0 10px;cursor:pointer;color:#5b6875;background:#fff;border:2px solid #5b6875;border-radius:50%;box-sizing:border-box;padding:0;height:22px;width:22px;font-size:18px;text-align:center}.rotation-button-container div button:hover{background:#dda73f;color:#fff}.rotation-button-container div .button-as-link{color:#dda73f;border:none;width:100%;height:100%;font-size:14px;position:relative;top:-15px}.rotation-button-container div .button-as-link ::ng-deep mat-icon{width:25px;height:25px;position:relative;top:8px}.rotation-button-container div .button-as-link ::ng-deep mat-icon svg path{fill:#dda73f}.rotation-button-container div .button-as-link:hover{background:none;color:#dda73f}.error-container{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid #f5c6cb;border-radius:.25rem;color:#721c24;background-color:#f8d7da;max-width:190px}.exportButton,.exportButtonDark{display:inline-block!important;margin-right:10px}.exportButtonDark{background:#5b6875;border-color:#5b6875}.exportButtonDark:hover{background:#5b6875;color:#fff}.model-close-preview{text-align:right;cursor:pointer}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0;border:1px solid #5b6875;border-radius:4px}:host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-infix{padding:0;border:none}:host ::ng-deep .mat-select-value{padding-left:5px}:host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-underline{height:0}:host ::ng-deep .mat-select-trigger{line-height:36px}:host ::ng-deep mat-icon{width:18px;height:18px}:host ::ng-deep mat-icon svg path{fill:#5b6875}:host ::ng-deep .mat-slide-toggle-content{width:calc(100% - 36px);min-width:300px}\n"], components: [{ type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10__namespace$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked", "aria-describedby"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i9__namespace.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3__namespace.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
44933
45119
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ModelPreviewComponent, decorators: [{
|
|
44934
45120
|
type: i0.Component,
|
|
44935
45121
|
args: [{
|
|
44936
45122
|
selector: 'rp-model-preview',
|
|
44937
|
-
template: "\n <div class=\"model-preview\">\n <
|
|
45123
|
+
template: "\n <div class=\"model-close-preview\" (click)=\"closePreview()\">\n <mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon>\n </div>\n <div class=\"model-preview\">\n <div class=\"model-preview-window\">\n <div class=\"model-preview-container\" id=\"canvasContainer\"></div>\n <div class=\"model-preview-window-bottom\">\n <div>\n <mat-slide-toggle\n [checked]=\"showReferenceModel\"\n [labelPosition]=\"'after'\"\n (change)=\"toggleShowReferenceModel($event)\">\n Show Reference model\n </mat-slide-toggle>\n </div>\n <div class=\"disclaimer-text-container\">\n <p class=\"disclaimer-text\">\n Grid scale: 1 tile = 1x1 meter\n </p>\n </div>\n </div>\n </div>\n <div class=\"model-preview-actions\">\n <div class=\"input-height-container\">\n <h2>Model settings</h2>\n <div>\n <h3>Scale:</h3>\n <input type=\"text\" id=\"heightArticle\" #heightArticle placeholder=\"Set model height\">\n <mat-form-field class=\"units-select-form\">\n <mat-select class=\"units-mat-select\" [(value)]=\"unitsOfMeasurement\">\n <mat-option class=\"units-mat-option\" *ngFor=\"let unit of units\" [value]=\"unit\">{{ unit }}</mat-option>\n </mat-select>\n </mat-form-field>\n <button class=\"apply-button base-button\" (click)=\"scaleArticle()\">Apply</button>\n </div>\n </div>\n <div class=\"rotation-button-container\">\n <h3>Rotation:</h3>\n <div>\n <p>Rotate on X axis (90 degrees)</p>\n <p>\n <button (click)=\"rotateModel('x', -mathPi / 2)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"rotateModel('x', mathPi / 2)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n <div>\n <p>Rotate on Y axis (90 degrees)</p>\n <p>\n <button (click)=\"rotateModel('y', -mathPi / 2)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"rotateModel('y', mathPi / 2)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n <div>\n <p>Rotate on Z axis (90 degrees)</p>\n <p>\n <button (click)=\"rotateModel('z', -mathPi / 2)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"rotateModel('z', mathPi / 2)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n </div>\n <div class=\"rotation-button-container\">\n <h3>Position:</h3>\n <div>\n <p>Reset to coordinates 0,0,0</p>\n <p>\n <button class=\"button-as-link\" (click)=\"moveModel('all', 0)\">\n <mat-icon svgIcon=\"retry-button\"></mat-icon>\n Reset\n </button>\n </p>\n </div>\n <div>\n <p>Move on the Y axis (0.01 unit)</p>\n <p>\n <button (click)=\"moveModel('y', -0.01)\">\n <mat-icon svgIcon=\"dash-button\"></mat-icon>\n </button>\n <button (click)=\"moveModel('y', 0.01)\">\n <mat-icon svgIcon=\"add-button\"></mat-icon>\n </button>\n </p>\n </div>\n </div>\n\n <div class=\"model-preview-info-container\">\n <h3>Properties:</h3>\n <div>\n <mat-slide-toggle\n [checked]=\"false\"\n [labelPosition]=\"'before'\"\n (change)=\"setStackable($event)\">\n Stackable\n </mat-slide-toggle>\n </div>\n <div>\n <mat-slide-toggle\n [checked]=\"false\"\n [labelPosition]=\"'before'\"\n (change)=\"setHeightAdjustable($event)\">\n Height adjustable\n </mat-slide-toggle>\n </div>\n\n <div class=\"model-placement-container\">\n <div>\n <label>Placement</label>\n\n <mat-form-field *ngIf=\"placementOptions\">\n <mat-select [(value)]=\"selectedPlacement\">\n <mat-option *ngFor=\"let placementOption of placementOptions\"\n [value]=\"placementOption.code\">{{ placementOption.description }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div class=\"model-preview-info\" *ngIf=\"this.data\">\n <div class=\"model-preview-info-container\">\n <div class=\"model-preview-info-left\">\n <label>Save as:</label>\n </div>\n <div class=\"model-preview-info-right\">\n <input type=\"text\" id=\"fileName\" #fileName value=\"{{ this.data.file.file.name }}\">\n </div>\n </div>\n <div>\n <button class=\"base-button exportButton\" (click)=\"exportSceneAsGLB('upload')\">Upload and add to scene</button>\n <button class=\"base-button exportButtonDark\" (click)=\"exportSceneAsGLB('download')\">Download</button>\n\n <button (click)=\"closePreview()\" class=\"base-button exportButtonDark\">\n<!-- <mat-icon class=\"homedecorator-material-icons\">cancel</mat-icon>-->\n <span>Cancel</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n ",
|
|
44938
45124
|
styleUrls: ['./model-preview.component.scss']
|
|
44939
45125
|
}]
|
|
44940
45126
|
}], ctorParameters: function () {
|
|
44941
45127
|
return [{ type: undefined, decorators: [{
|
|
44942
45128
|
type: i0.Inject,
|
|
44943
45129
|
args: [i1$1.MAT_DIALOG_DATA]
|
|
44944
|
-
}] }, { type: HomedecoratorSettingsService }, { type: i1__namespace$1.MatDialogRef }, { type: ThirdPartyModelService }, { type: MessageBusService }, { type: i1__namespace$1.MatDialog }, { type: HomedecoratorConnectorAdapterService }, { type: LightPresetsService }, { type: HomedecoratorDictionaryService }, { type: FontService }];
|
|
45130
|
+
}] }, { type: HomedecoratorSettingsService }, { type: HomedecoratorIconCacheService }, { type: i1__namespace$1.MatDialogRef }, { type: ThirdPartyModelService }, { type: MessageBusService }, { type: i1__namespace$1.MatDialog }, { type: HomedecoratorConnectorAdapterService }, { type: LightPresetsService }, { type: HomedecoratorDictionaryService }, { type: FontService }];
|
|
44945
45131
|
}, propDecorators: { glbExportName: [{
|
|
44946
45132
|
type: i0.ViewChild,
|
|
44947
45133
|
args: ['fileName']
|
|
@@ -45026,7 +45212,7 @@
|
|
|
45026
45212
|
this._subs = [];
|
|
45027
45213
|
this._subs.push(this.messageService.subscribe(MessageType.SetLeftSidebar, function (templateRef) { return _this._setLeftSidebar(templateRef); }), this.messageService.subscribe(MessageType.HideLeftSidebar, function () { return _this._closeLeftSidebar({ keepTemplateRef: true }); }), this.messageService.subscribe(MessageType.RegisterToolbarIcon, function (icon) { return _this._registerToolbarIcon(icon); }), this.messageService.subscribe(MessageType.ViewModeChanged, function () { return _this._closeLeftSidebar(); }), this.messageService.subscribe(MessageType.NewRoom, function () { return _this.newRoom(); }), this.messageService.subscribe(MessageType.ShowOpenDialog, function () { return _this.openOpenDialog(); }), this.messageService.subscribe(MessageType.FinishedIOneFurnitureBuild, function () { return _this._hideToast(); }), this.messageService.subscribe(MessageType.UndefinedErrorOccured, function () { return _this._hideToast(); }), this.messageService.subscribe(MessageType.RenderServiceTryToConnect, function () { return _this._hideToast(); }), this.messageService.subscribe(MessageType.RenderServiceConnected, function () { return _this._hideToast(); }), this._toastService.showToastSub.subscribe(function (toast) { return _this._showToast(toast); }), this._screenSizeService.screenSizeChanged.subscribe(function (info) { return _this.phoneSizeScreen = info.isPhoneSize; }),
|
|
45028
45214
|
// this.messageService.subscribe(MessageType.StartWithDiagram, () => this.openUploadDiagram()),
|
|
45029
|
-
this.messageService.subscribe(MessageType.StartDrawingDiagram, function (file) { return _this.openDrawDiagram(file); }), this.messageService.subscribe(MessageType.StartCroppingPDF, function (file) { return _this.openCroppingDiagram(file); }), this.messageService.subscribe(MessageType.UserModelUploaded, function (file) { return _this.openModelPreview(file); }));
|
|
45215
|
+
this.messageService.subscribe(MessageType.StartDrawingDiagram, function (file) { return _this.openDrawDiagram(file); }), this.messageService.subscribe(MessageType.StartCroppingPDF, function (file) { return _this.openCroppingDiagram(file); }), this.messageService.subscribe(MessageType.UserModelUploaded, function (file) { return _this.openModelPreview(file); }), this.messageService.subscribe(MessageType.RenderError, function (data) { return _this.showRenderError(data); }));
|
|
45030
45216
|
}
|
|
45031
45217
|
ToolbarComponent.prototype.handleKeyDown = function (event) {
|
|
45032
45218
|
if (event.ctrlKey && event.shiftKey && event.key === 'S') {
|
|
@@ -45257,6 +45443,12 @@
|
|
|
45257
45443
|
data: { file: file }
|
|
45258
45444
|
});
|
|
45259
45445
|
};
|
|
45446
|
+
ToolbarComponent.prototype.showRenderError = function (data) {
|
|
45447
|
+
this._dialog.open(ErrorDialogComponent, {
|
|
45448
|
+
data: data
|
|
45449
|
+
});
|
|
45450
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
45451
|
+
};
|
|
45260
45452
|
ToolbarComponent.prototype.testRender = function () {
|
|
45261
45453
|
this._newRenderService.forceRenderImage();
|
|
45262
45454
|
};
|
|
@@ -45315,7 +45507,7 @@
|
|
|
45315
45507
|
return ToolbarComponent;
|
|
45316
45508
|
}());
|
|
45317
45509
|
ToolbarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ToolbarComponent, deps: [{ token: AppStateService }, { token: PresetsService }, { token: MessageBusService }, { token: HomedecoratorSettingsService }, { token: LocalStorageService }, { token: ScreenSizeAnalysisService }, { token: i1__namespace$1.MatDialog }, { token: ToastService }, { token: HomedecoratorAppService }, { token: PermanentStoreService }, { token: UtilsService }, { token: ThreedselectorService }, { token: ItemService }, { token: FloorplanService }, { token: FloorService }, { token: AnimationService }, { token: DevelopmentService }, { token: NewRenderService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
45318
|
-
ToolbarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ToolbarComponent, selector: "rp-toolbar", host: { listeners: { "document:keydown": "handleKeyDown($event)" } }, viewQueries: [{ propertyName: "leftSidebar", first: true, predicate: ["leftSidebar"], descendants: true, static: true }], ngImport: i0__namespace, template: "\n <!--\n <div class=\"layer layer--toolbar\">\n -->\n <mat-toolbar class=\"toolbar\" color=\"primary\">\n <button *ngIf=\"phoneSizeScreen\" mat-icon-button class=\"menu-icon\" [matMenuTriggerFor]=\"menu\">\n <mat-icon class=\"homedecorator-material-icons\">menu</mat-icon>\n </button>\n <mat-menu #menu>\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\">\n </ng-container>\n </ng-container>\n </mat-menu>\n\n <img src=\"assets/images/logo.svg\" class=\"toolbar-logo\"/>\n <img *ngIf=\"settingsService.settings.secondaryLogo\" [src]=\"settingsService.settings.secondaryLogo\"\n class=\"toolbar-logo secondary-logo\"/>\n <ng-container *ngIf=\"settingsService.settings.options.development\">\n <mat-card class=\"wip-card\">\n <mat-card-content>\n {{ 'WORK_IN_PROGRESS' | localize }}\n </mat-card-content>\n </mat-card>\n <button mat-icon-button (click)=\"loadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon>\n </button>\n <button mat-icon-button (click)=\"loadResizableRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">camera-control</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"settingsService.settings.options.showRoomDownloadButton\">\n <button mat-icon-button (click)=\"downloadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\" matTooltip=\"{{'DOWNLOAD_ROOM_AS_GLB' | localize}}\">cloud_download</mat-icon>\n </button>\n </ng-container>\n <div class=\"hd-toolbar-spacer\"></div>\n\n<!-- <ng-container>-->\n<!-- <rp-pdf-export></rp-pdf-export>-->\n<!-- </ng-container>-->\n\n <mat-nav-list class=\"toolbar__nav\" role=\"list\">\n <div matTooltip=\"{{'NEW_ROOM' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"newRoom()\">{{ 'NEW' | localize }}</mat-list-item>\n </div>\n <div matTooltip=\"{{'OPEN_EXISTING_PLAN' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"openOpenDialog()\">{{ 'OPEN' | localize }}</mat-list-item>\n </div>\n <div *ngIf=\"storageService.errorWhenSaving\" class=\"storage-error\"\n [class.blinker]=\"showBlinkError\" matTooltip=\"{{'ERROR_SAVING_LOCALSTORAGE' | localize}}\"\n (mousemove)=\"showBlinkError = false\"\n ><span>!</span></div>\n <div [class.blinker]=\"!showSaveNotification\" matTooltip=\"{{'SAVE_THE_PLAN' | localize}}\">\n <mat-list-item\n matTooltip=\"{{'SAVE_TOOLTIP' | localize}}\"\n [matTooltipDisabled]=\"tooltipDisabled\"\n matTooltipClass=\"tooltip-red\"\n role=\"listitem\"\n (click)=\"openSaveDialog() && stopTimer()\"\n >{{ 'SAVE' | localize }}\n </mat-list-item>\n </div>\n <div\n class=\"badge\"\n matBadge=\"!\"\n matBadgeColor=\"warn\"\n matBadgePosition=\"below before\"\n matBadgeOverlap=\"true\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"badgeDisabled\">\n </div>\n </mat-nav-list>\n <div matTooltip=\"{{'SAVE_IMAGE' | localize}}\">\n <button mat-icon-button (click)=\"onTakeScreenshotClick()\">\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'UNDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Undo)\"\n [disabled]=\"presetsService.isLoading || !appState.canUndo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">undo</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'REDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Redo)\"\n [disabled]=\"presetsService.isLoading || !appState.canRedo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">redo</mat-icon>\n </button>\n </div>\n <button mat-icon-button *ngIf=\"!fullscreen\" (click)=\"requestFullscreen()\" matTooltip=\"{{'REQUEST_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen</mat-icon>\n </button>\n <button mat-icon-button *ngIf=\"fullscreen\" (click)=\"exitFullscreen()\" matTooltip=\"{{'EXIT_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen_exit</mat-icon>\n </button>\n </mat-toolbar>\n\n <limited-mode-message\n *ngIf=\"phoneSizeScreen && showLimitedModeMessage\"\n (closeClicked)=\"onCloseLimitedModeMessageClick()\">\n </limited-mode-message>\n\n <div class=\"toast-wrapper\"\n [class.success]=\"toast.type == toastType.Success\"\n [class.warning]=\"toast.type == toastType.Warning\"\n [class.error]=\"toast.type == toastType.Error\"\n *ngIf=\"toast\"\n @showToast\n [textContent]=\"toast.message\">\n </div>\n\n <mat-toolbar-row class=\"toolbar-row\">\n <mat-toolbar class=\"toolbar toolbar--secondary\" *ngIf=\"!phoneSizeScreen\">\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n <span class=\"hd-toolbar-spacer\"></span>\n <ng-container *ngFor=\"let icon of toolbarIconsBottom\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n </mat-toolbar>\n\n <mat-drawer-container class=\"drawer-container\">\n <mat-drawer class=\"drawer\" mode=\"over\" position=\"left\" #leftSidebar>\n <mat-drawer-content class=\"drawer__body\">\n <button class=\"drawer__button\" mat-icon-button (click)=\"clickCloseLeftSidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\n </button>\n <ng-container [cdkPortalOutlet]=\"leftPortal\"></ng-container>\n </mat-drawer-content>\n </mat-drawer>\n </mat-drawer-container>\n </mat-toolbar-row>\n <!--\n </div>\n -->\n ", isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;top:0;z-index:100;height:100%;width:100%;pointer-events:none}:host .hd-toolbar-spacer{display:flex;flex-basis:100%}:host .toast-wrapper{height:auto;position:absolute;top:64px;left:50%;-webkit-user-select:none;user-select:none;pointer-events:none;background:#74B77F;padding:30px;border-radius:0 0 10px 10px;min-width:150px;max-width:90%;color:#fff;text-align:center;transform:translate(-50%,-100%)}:host .toast-wrapper.warning{background:#F17300}:host .toast-wrapper.error{background:#CC2936}:host ::ng-deep .drawer__header{display:flex;align-items:center;min-height:40px;margin-bottom:16px}:host ::ng-deep .drawer__header h2{margin:0 auto 0 0}:host ::ng-deep mat-tab-header,:host ::ng-deep .FileDrop{margin-bottom:16px}:host ::ng-deep .tab--skin ::ng-deep .mat-tab-label{height:52px;min-width:auto}:host ::ng-deep .drawer p{white-space:pre-wrap}:host ::ng-deep .mat-divider{margin:16px 0 24px}:host ::ng-deep .mat-drawer-backdrop{display:none}.storage-error{min-width:30px;height:30px;display:flex;align-items:center;align-self:center;border-radius:50%;justify-content:center;background:white;color:#c00;font-size:25px;font-weight:bold}.layer--toolbar{display:flex;flex-direction:column}.toolbar{z-index:101;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}.toolbar .menu-icon{min-width:50px;display:flex;justify-content:center;margin-left:-16px}.toolbar-logo{width:50px}.secondary-logo{margin-left:20px}.toolbar__nav{display:flex;flex-direction:row;padding-top:0}.toolbar__nav .mat-list-item{color:#fff;height:40px}.toolbar-row{flex:auto;display:flex;flex-direction:column;padding:0;pointer-events:none;position:relative;align-items:baseline;height:100%}.toolbar--secondary{width:64px;padding:16px 0;flex-direction:column;background:#fff;height:100%}.toolbar--secondary .drawer{flex:auto;pointer-events:none;background:transparent}.wip-card{margin-left:22px;padding:6px 22px;color:#fff;background-color:#ed912e}.drawer-container{position:static;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.drawer{width:420px;padding:16px;display:flex;flex-direction:column;left:65px}.toolbar,.toolbar--secondary>*,.drawer-container>*,.drawer>*{pointer-events:all}.drawer__button{min-width:initial;padding:0;border:none;position:absolute;top:0;right:0;border-radius:50%}.blinker{animation:blinker 1s linear infinite}.mat-badge-content{background-color:#b71c1c;animation:bounce 2s ease-out;animation-iteration-count:infinite;margin-left:5px}.badge{margin-right:20px;margin-bottom:20px}::ng-deep .tooltip-red{background:#b71c1c}@keyframes bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-20px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes blinker{50%{opacity:0}}::ng-deep .mat-menu-panel{width:256px!important}::ng-deep .mat-menu-panel .mat-menu-content{display:flex;flex-direction:column;padding-left:10px;padding-right:10px}::ng-deep mat-drawer-content.mat-drawer-content{display:flex;height:100%;flex-direction:column}\n"], components: [{ type: i19__namespace$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { 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: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i22__namespace.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i23__namespace.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2__namespace$2.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i2__namespace$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: LimitedModeMessageComponent, selector: "limited-mode-message", outputs: ["closeClicked"] }, { type: i26__namespace.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { type: i26__namespace.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { type: i26__namespace.MatDrawerContent, selector: "mat-drawer-content" }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i22__namespace.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i28__namespace.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i23__namespace.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i30__namespace.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgePosition", "matBadgeSize", "matBadgeColor", "matBadgeOverlap", "matBadgeDescription", "matBadgeHidden", "matBadge"] }, { type: i19__namespace$1.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }], pipes: { "localize": LocalizePipe }, animations: [
|
|
45510
|
+
ToolbarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ToolbarComponent, selector: "rp-toolbar", host: { listeners: { "document:keydown": "handleKeyDown($event)" } }, viewQueries: [{ propertyName: "leftSidebar", first: true, predicate: ["leftSidebar"], descendants: true, static: true }], ngImport: i0__namespace, template: "\n <!--\n <div class=\"layer layer--toolbar\">\n -->\n <mat-toolbar class=\"toolbar\" color=\"primary\">\n <button *ngIf=\"phoneSizeScreen\" mat-icon-button class=\"menu-icon\" [matMenuTriggerFor]=\"menu\">\n <mat-icon class=\"homedecorator-material-icons\">menu</mat-icon>\n </button>\n <mat-menu #menu>\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\">\n </ng-container>\n </ng-container>\n </mat-menu>\n\n <img src=\"assets/images/logo.svg\" class=\"toolbar-logo\"/>\n <img *ngIf=\"settingsService.settings.secondaryLogo\" [src]=\"settingsService.settings.secondaryLogo\"\n class=\"toolbar-logo secondary-logo\"/>\n <ng-container *ngIf=\"settingsService.settings.options.development\">\n <mat-card class=\"wip-card\">\n <mat-card-content>\n {{ 'WORK_IN_PROGRESS' | localize }}\n </mat-card-content>\n </mat-card>\n <button mat-icon-button (click)=\"loadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon>\n </button>\n <button mat-icon-button (click)=\"loadResizableRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">camera-control</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"settingsService.settings.options.showRoomDownloadButton\">\n <button mat-icon-button (click)=\"downloadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\" matTooltip=\"{{'DOWNLOAD_ROOM_AS_GLB' | localize}}\">cloud_download</mat-icon>\n </button>\n </ng-container>\n <div class=\"hd-toolbar-spacer\"></div>\n\n <!-- <ng-container>-->\n <!-- <rp-pdf-export></rp-pdf-export>-->\n <!-- </ng-container>-->\n\n <mat-nav-list class=\"toolbar__nav\" role=\"list\">\n <div matTooltip=\"{{'NEW_ROOM' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"newRoom()\">{{ 'NEW' | localize }}</mat-list-item>\n </div>\n <div matTooltip=\"{{'OPEN_EXISTING_PLAN' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"openOpenDialog()\">{{ 'OPEN' | localize }}</mat-list-item>\n </div>\n <div *ngIf=\"storageService.errorWhenSaving\" class=\"storage-error\"\n [class.blinker]=\"showBlinkError\" matTooltip=\"{{'ERROR_SAVING_LOCALSTORAGE' | localize}}\"\n (mousemove)=\"showBlinkError = false\"\n ><span>!</span></div>\n <div [class.blinker]=\"!showSaveNotification\" matTooltip=\"{{'SAVE_THE_PLAN' | localize}}\">\n <mat-list-item\n matTooltip=\"{{'SAVE_TOOLTIP' | localize}}\"\n [matTooltipDisabled]=\"tooltipDisabled\"\n matTooltipClass=\"tooltip-red\"\n role=\"listitem\"\n (click)=\"openSaveDialog() && stopTimer()\"\n >{{ 'SAVE' | localize }}\n </mat-list-item>\n </div>\n <div\n class=\"badge\"\n matBadge=\"!\"\n matBadgeColor=\"warn\"\n matBadgePosition=\"below before\"\n matBadgeOverlap=\"true\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"badgeDisabled\">\n </div>\n </mat-nav-list>\n <div matTooltip=\"{{'SAVE_IMAGE' | localize}}\">\n <button mat-icon-button (click)=\"onTakeScreenshotClick()\">\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'UNDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Undo)\"\n [disabled]=\"presetsService.isLoading || !appState.canUndo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">undo</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'REDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Redo)\"\n [disabled]=\"presetsService.isLoading || !appState.canRedo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">redo</mat-icon>\n </button>\n </div>\n <button mat-icon-button *ngIf=\"!fullscreen\" (click)=\"requestFullscreen()\" matTooltip=\"{{'REQUEST_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen</mat-icon>\n </button>\n <button mat-icon-button *ngIf=\"fullscreen\" (click)=\"exitFullscreen()\" matTooltip=\"{{'EXIT_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen_exit</mat-icon>\n </button>\n </mat-toolbar>\n\n <limited-mode-message\n *ngIf=\"phoneSizeScreen && showLimitedModeMessage\"\n (closeClicked)=\"onCloseLimitedModeMessageClick()\">\n </limited-mode-message>\n\n <div class=\"toast-wrapper\"\n [class.success]=\"toast.type == toastType.Success\"\n [class.warning]=\"toast.type == toastType.Warning\"\n [class.error]=\"toast.type == toastType.Error\"\n *ngIf=\"toast\"\n @showToast\n [textContent]=\"toast.message\">\n </div>\n\n <mat-toolbar-row class=\"toolbar-row\">\n <mat-toolbar class=\"toolbar toolbar--secondary\" *ngIf=\"!phoneSizeScreen\">\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n <span class=\"hd-toolbar-spacer\"></span>\n <ng-container *ngFor=\"let icon of toolbarIconsBottom\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n </mat-toolbar>\n\n <mat-drawer-container class=\"drawer-container\">\n <mat-drawer class=\"drawer\" mode=\"over\" position=\"left\" #leftSidebar>\n <mat-drawer-content class=\"drawer__body\">\n <button class=\"drawer__button\" mat-icon-button (click)=\"clickCloseLeftSidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\n </button>\n <ng-container [cdkPortalOutlet]=\"leftPortal\"></ng-container>\n </mat-drawer-content>\n </mat-drawer>\n </mat-drawer-container>\n </mat-toolbar-row>\n <!--\n </div>\n -->\n ", isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;top:0;z-index:100;height:100%;width:100%;pointer-events:none}:host .hd-toolbar-spacer{display:flex;flex-basis:100%}:host .toast-wrapper{height:auto;position:absolute;top:64px;left:50%;-webkit-user-select:none;user-select:none;pointer-events:none;background:#74B77F;padding:30px;border-radius:0 0 10px 10px;min-width:150px;max-width:90%;color:#fff;text-align:center;transform:translate(-50%,-100%)}:host .toast-wrapper.warning{background:#F17300}:host .toast-wrapper.error{background:#CC2936}:host ::ng-deep .drawer__header{display:flex;align-items:center;min-height:40px;margin-bottom:16px}:host ::ng-deep .drawer__header h2{margin:0 auto 0 0}:host ::ng-deep mat-tab-header,:host ::ng-deep .FileDrop{margin-bottom:16px}:host ::ng-deep .tab--skin ::ng-deep .mat-tab-label{height:52px;min-width:auto}:host ::ng-deep .drawer p{white-space:pre-wrap}:host ::ng-deep .mat-divider{margin:16px 0 24px}:host ::ng-deep .mat-drawer-backdrop{display:none}.storage-error{min-width:30px;height:30px;display:flex;align-items:center;align-self:center;border-radius:50%;justify-content:center;background:white;color:#c00;font-size:25px;font-weight:bold}.layer--toolbar{display:flex;flex-direction:column}.toolbar{z-index:101;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}.toolbar .menu-icon{min-width:50px;display:flex;justify-content:center;margin-left:-16px}.toolbar-logo{width:50px}.secondary-logo{margin-left:20px}.toolbar__nav{display:flex;flex-direction:row;padding-top:0}.toolbar__nav .mat-list-item{color:#fff;height:40px}.toolbar-row{flex:auto;display:flex;flex-direction:column;padding:0;pointer-events:none;position:relative;align-items:baseline;height:100%}.toolbar--secondary{width:64px;padding:16px 0;flex-direction:column;background:#fff;height:100%}.toolbar--secondary .drawer{flex:auto;pointer-events:none;background:transparent}.wip-card{margin-left:22px;padding:6px 22px;color:#fff;background-color:#ed912e}.drawer-container{position:static;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.drawer{width:420px;padding:16px;display:flex;flex-direction:column;left:65px}.toolbar,.toolbar--secondary>*,.drawer-container>*,.drawer>*{pointer-events:all}.drawer__button{min-width:initial;padding:0;border:none;position:absolute;top:0;right:0;border-radius:50%}.blinker{animation:blinker 1s linear infinite}.mat-badge-content{background-color:#b71c1c;animation:bounce 2s ease-out;animation-iteration-count:infinite;margin-left:5px}.badge{margin-right:20px;margin-bottom:20px}::ng-deep .tooltip-red{background:#b71c1c}@keyframes bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-20px)}50%{transform:scale(1.05,.95) translateY(0)}57%{transform:scale(1) translateY(-7px)}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes blinker{50%{opacity:0}}::ng-deep .mat-menu-panel{width:256px!important}::ng-deep .mat-menu-panel .mat-menu-content{display:flex;flex-direction:column;padding-left:10px;padding-right:10px}::ng-deep mat-drawer-content.mat-drawer-content{display:flex;height:100%;flex-direction:column}\n"], components: [{ type: i19__namespace$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { 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: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i22__namespace.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i23__namespace.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2__namespace$2.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i2__namespace$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: LimitedModeMessageComponent, selector: "limited-mode-message", outputs: ["closeClicked"] }, { type: i26__namespace.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { type: i26__namespace.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { type: i26__namespace.MatDrawerContent, selector: "mat-drawer-content" }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i22__namespace.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i28__namespace.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i23__namespace.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i10__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i30__namespace.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgePosition", "matBadgeSize", "matBadgeColor", "matBadgeOverlap", "matBadgeDescription", "matBadgeHidden", "matBadge"] }, { type: i19__namespace$1.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }], pipes: { "localize": LocalizePipe }, animations: [
|
|
45319
45511
|
animations.trigger('showToast', [
|
|
45320
45512
|
animations.state('void', animations.style({ 'transform-origin': 'top center', transform: 'translate(-50%, -100%)' })),
|
|
45321
45513
|
animations.state('*', animations.style({ 'transform-origin': 'top center', transform: 'translate(-50%, 0)' })),
|
|
@@ -45332,7 +45524,7 @@
|
|
|
45332
45524
|
type: i0.Component,
|
|
45333
45525
|
args: [{
|
|
45334
45526
|
selector: 'rp-toolbar',
|
|
45335
|
-
template: "\n <!--\n <div class=\"layer layer--toolbar\">\n -->\n <mat-toolbar class=\"toolbar\" color=\"primary\">\n <button *ngIf=\"phoneSizeScreen\" mat-icon-button class=\"menu-icon\" [matMenuTriggerFor]=\"menu\">\n <mat-icon class=\"homedecorator-material-icons\">menu</mat-icon>\n </button>\n <mat-menu #menu>\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\">\n </ng-container>\n </ng-container>\n </mat-menu>\n\n <img src=\"assets/images/logo.svg\" class=\"toolbar-logo\"/>\n <img *ngIf=\"settingsService.settings.secondaryLogo\" [src]=\"settingsService.settings.secondaryLogo\"\n class=\"toolbar-logo secondary-logo\"/>\n <ng-container *ngIf=\"settingsService.settings.options.development\">\n <mat-card class=\"wip-card\">\n <mat-card-content>\n {{ 'WORK_IN_PROGRESS' | localize }}\n </mat-card-content>\n </mat-card>\n <button mat-icon-button (click)=\"loadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon>\n </button>\n <button mat-icon-button (click)=\"loadResizableRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">camera-control</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"settingsService.settings.options.showRoomDownloadButton\">\n <button mat-icon-button (click)=\"downloadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\" matTooltip=\"{{'DOWNLOAD_ROOM_AS_GLB' | localize}}\">cloud_download</mat-icon>\n </button>\n </ng-container>\n <div class=\"hd-toolbar-spacer\"></div>\n\n<!-- <ng-container>-->\n<!-- <rp-pdf-export></rp-pdf-export>-->\n<!-- </ng-container>-->\n\n <mat-nav-list class=\"toolbar__nav\" role=\"list\">\n <div matTooltip=\"{{'NEW_ROOM' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"newRoom()\">{{ 'NEW' | localize }}</mat-list-item>\n </div>\n <div matTooltip=\"{{'OPEN_EXISTING_PLAN' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"openOpenDialog()\">{{ 'OPEN' | localize }}</mat-list-item>\n </div>\n <div *ngIf=\"storageService.errorWhenSaving\" class=\"storage-error\"\n [class.blinker]=\"showBlinkError\" matTooltip=\"{{'ERROR_SAVING_LOCALSTORAGE' | localize}}\"\n (mousemove)=\"showBlinkError = false\"\n ><span>!</span></div>\n <div [class.blinker]=\"!showSaveNotification\" matTooltip=\"{{'SAVE_THE_PLAN' | localize}}\">\n <mat-list-item\n matTooltip=\"{{'SAVE_TOOLTIP' | localize}}\"\n [matTooltipDisabled]=\"tooltipDisabled\"\n matTooltipClass=\"tooltip-red\"\n role=\"listitem\"\n (click)=\"openSaveDialog() && stopTimer()\"\n >{{ 'SAVE' | localize }}\n </mat-list-item>\n </div>\n <div\n class=\"badge\"\n matBadge=\"!\"\n matBadgeColor=\"warn\"\n matBadgePosition=\"below before\"\n matBadgeOverlap=\"true\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"badgeDisabled\">\n </div>\n </mat-nav-list>\n <div matTooltip=\"{{'SAVE_IMAGE' | localize}}\">\n <button mat-icon-button (click)=\"onTakeScreenshotClick()\">\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'UNDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Undo)\"\n [disabled]=\"presetsService.isLoading || !appState.canUndo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">undo</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'REDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Redo)\"\n [disabled]=\"presetsService.isLoading || !appState.canRedo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">redo</mat-icon>\n </button>\n </div>\n <button mat-icon-button *ngIf=\"!fullscreen\" (click)=\"requestFullscreen()\" matTooltip=\"{{'REQUEST_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen</mat-icon>\n </button>\n <button mat-icon-button *ngIf=\"fullscreen\" (click)=\"exitFullscreen()\" matTooltip=\"{{'EXIT_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen_exit</mat-icon>\n </button>\n </mat-toolbar>\n\n <limited-mode-message\n *ngIf=\"phoneSizeScreen && showLimitedModeMessage\"\n (closeClicked)=\"onCloseLimitedModeMessageClick()\">\n </limited-mode-message>\n\n <div class=\"toast-wrapper\"\n [class.success]=\"toast.type == toastType.Success\"\n [class.warning]=\"toast.type == toastType.Warning\"\n [class.error]=\"toast.type == toastType.Error\"\n *ngIf=\"toast\"\n @showToast\n [textContent]=\"toast.message\">\n </div>\n\n <mat-toolbar-row class=\"toolbar-row\">\n <mat-toolbar class=\"toolbar toolbar--secondary\" *ngIf=\"!phoneSizeScreen\">\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n <span class=\"hd-toolbar-spacer\"></span>\n <ng-container *ngFor=\"let icon of toolbarIconsBottom\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n </mat-toolbar>\n\n <mat-drawer-container class=\"drawer-container\">\n <mat-drawer class=\"drawer\" mode=\"over\" position=\"left\" #leftSidebar>\n <mat-drawer-content class=\"drawer__body\">\n <button class=\"drawer__button\" mat-icon-button (click)=\"clickCloseLeftSidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\n </button>\n <ng-container [cdkPortalOutlet]=\"leftPortal\"></ng-container>\n </mat-drawer-content>\n </mat-drawer>\n </mat-drawer-container>\n </mat-toolbar-row>\n <!--\n </div>\n -->\n ",
|
|
45527
|
+
template: "\n <!--\n <div class=\"layer layer--toolbar\">\n -->\n <mat-toolbar class=\"toolbar\" color=\"primary\">\n <button *ngIf=\"phoneSizeScreen\" mat-icon-button class=\"menu-icon\" [matMenuTriggerFor]=\"menu\">\n <mat-icon class=\"homedecorator-material-icons\">menu</mat-icon>\n </button>\n <mat-menu #menu>\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\">\n </ng-container>\n </ng-container>\n </mat-menu>\n\n <img src=\"assets/images/logo.svg\" class=\"toolbar-logo\"/>\n <img *ngIf=\"settingsService.settings.secondaryLogo\" [src]=\"settingsService.settings.secondaryLogo\"\n class=\"toolbar-logo secondary-logo\"/>\n <ng-container *ngIf=\"settingsService.settings.options.development\">\n <mat-card class=\"wip-card\">\n <mat-card-content>\n {{ 'WORK_IN_PROGRESS' | localize }}\n </mat-card-content>\n </mat-card>\n <button mat-icon-button (click)=\"loadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">weekend</mat-icon>\n </button>\n <button mat-icon-button (click)=\"loadResizableRoom()\">\n <mat-icon class=\"homedecorator-material-icons\">camera-control</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"settingsService.settings.options.showRoomDownloadButton\">\n <button mat-icon-button (click)=\"downloadRoom()\">\n <mat-icon class=\"homedecorator-material-icons\" matTooltip=\"{{'DOWNLOAD_ROOM_AS_GLB' | localize}}\">cloud_download</mat-icon>\n </button>\n </ng-container>\n <div class=\"hd-toolbar-spacer\"></div>\n\n <!-- <ng-container>-->\n <!-- <rp-pdf-export></rp-pdf-export>-->\n <!-- </ng-container>-->\n\n <mat-nav-list class=\"toolbar__nav\" role=\"list\">\n <div matTooltip=\"{{'NEW_ROOM' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"newRoom()\">{{ 'NEW' | localize }}</mat-list-item>\n </div>\n <div matTooltip=\"{{'OPEN_EXISTING_PLAN' | localize}}\">\n <mat-list-item role=\"listitem\" (click)=\"openOpenDialog()\">{{ 'OPEN' | localize }}</mat-list-item>\n </div>\n <div *ngIf=\"storageService.errorWhenSaving\" class=\"storage-error\"\n [class.blinker]=\"showBlinkError\" matTooltip=\"{{'ERROR_SAVING_LOCALSTORAGE' | localize}}\"\n (mousemove)=\"showBlinkError = false\"\n ><span>!</span></div>\n <div [class.blinker]=\"!showSaveNotification\" matTooltip=\"{{'SAVE_THE_PLAN' | localize}}\">\n <mat-list-item\n matTooltip=\"{{'SAVE_TOOLTIP' | localize}}\"\n [matTooltipDisabled]=\"tooltipDisabled\"\n matTooltipClass=\"tooltip-red\"\n role=\"listitem\"\n (click)=\"openSaveDialog() && stopTimer()\"\n >{{ 'SAVE' | localize }}\n </mat-list-item>\n </div>\n <div\n class=\"badge\"\n matBadge=\"!\"\n matBadgeColor=\"warn\"\n matBadgePosition=\"below before\"\n matBadgeOverlap=\"true\"\n matBadgeSize=\"medium\"\n [matBadgeHidden]=\"badgeDisabled\">\n </div>\n </mat-nav-list>\n <div matTooltip=\"{{'SAVE_IMAGE' | localize}}\">\n <button mat-icon-button (click)=\"onTakeScreenshotClick()\">\n <mat-icon class=\"homedecorator-material-icons\">photo_camera</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'UNDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Undo)\"\n [disabled]=\"presetsService.isLoading || !appState.canUndo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">undo</mat-icon>\n </button>\n </div>\n <div matTooltip=\"{{'REDO' | localize}}\">\n <button mat-icon-button (click)=\"messageService.emit(messageType.Redo)\"\n [disabled]=\"presetsService.isLoading || !appState.canRedo()\"\n >\n <mat-icon class=\"homedecorator-material-icons\">redo</mat-icon>\n </button>\n </div>\n <button mat-icon-button *ngIf=\"!fullscreen\" (click)=\"requestFullscreen()\" matTooltip=\"{{'REQUEST_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen</mat-icon>\n </button>\n <button mat-icon-button *ngIf=\"fullscreen\" (click)=\"exitFullscreen()\" matTooltip=\"{{'EXIT_FULLSCREEN' | localize}}\">\n <mat-icon class=\"homedecorator-material-icons\">fullscreen_exit</mat-icon>\n </button>\n </mat-toolbar>\n\n <limited-mode-message\n *ngIf=\"phoneSizeScreen && showLimitedModeMessage\"\n (closeClicked)=\"onCloseLimitedModeMessageClick()\">\n </limited-mode-message>\n\n <div class=\"toast-wrapper\"\n [class.success]=\"toast.type == toastType.Success\"\n [class.warning]=\"toast.type == toastType.Warning\"\n [class.error]=\"toast.type == toastType.Error\"\n *ngIf=\"toast\"\n @showToast\n [textContent]=\"toast.message\">\n </div>\n\n <mat-toolbar-row class=\"toolbar-row\">\n <mat-toolbar class=\"toolbar toolbar--secondary\" *ngIf=\"!phoneSizeScreen\">\n <ng-container *ngFor=\"let icon of toolbarIconsTop\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n <span class=\"hd-toolbar-spacer\"></span>\n <ng-container *ngFor=\"let icon of toolbarIconsBottom\">\n <ng-container [cdkPortalOutlet]=\"icon.portal\"></ng-container>\n </ng-container>\n </mat-toolbar>\n\n <mat-drawer-container class=\"drawer-container\">\n <mat-drawer class=\"drawer\" mode=\"over\" position=\"left\" #leftSidebar>\n <mat-drawer-content class=\"drawer__body\">\n <button class=\"drawer__button\" mat-icon-button (click)=\"clickCloseLeftSidebar()\">\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\n </button>\n <ng-container [cdkPortalOutlet]=\"leftPortal\"></ng-container>\n </mat-drawer-content>\n </mat-drawer>\n </mat-drawer-container>\n </mat-toolbar-row>\n <!--\n </div>\n -->\n ",
|
|
45336
45528
|
styleUrls: ['./toolbar.component.scss'],
|
|
45337
45529
|
animations: [
|
|
45338
45530
|
animations.trigger('showToast', [
|
|
@@ -45426,7 +45618,7 @@
|
|
|
45426
45618
|
return ProductOwnCollectionComponent;
|
|
45427
45619
|
}());
|
|
45428
45620
|
ProductOwnCollectionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductOwnCollectionComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
45429
|
-
ProductOwnCollectionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductOwnCollectionComponent, selector: "rp-product-own-collection", inputs: { settings: "settings" }, outputs: { articleClick: "articleClick", arButtonClick: "arButtonClick" }, ngImport: i0__namespace, template: "\n <co-catalog-search\n [(settings)]=\"settings\"\n [showNavigation]=\"true\"\n [title]=\"'CATALOG' | localize\"\n [subTitle]=\"'Zoeken op artikelnummer, naam of omschrijving'\"\n [searchPlaceholder]=\"'Zoeken op artikelnummer of omschrijving'\"\n [showFilter]=\"true\"\n (onArticleClick)=\"handleArticleClick($event)\"\n (onArButtonClick)=\"handleArButtonClick($event)\"\n ></co-catalog-search>\n ", isInline: true, styles: [":host{display:block;overflow:auto}\n"], components: [{ type: i7__namespace$
|
|
45621
|
+
ProductOwnCollectionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductOwnCollectionComponent, selector: "rp-product-own-collection", inputs: { settings: "settings" }, outputs: { articleClick: "articleClick", arButtonClick: "arButtonClick" }, ngImport: i0__namespace, template: "\n <co-catalog-search\n [(settings)]=\"settings\"\n [showNavigation]=\"true\"\n [title]=\"'CATALOG' | localize\"\n [subTitle]=\"'Zoeken op artikelnummer, naam of omschrijving'\"\n [searchPlaceholder]=\"'Zoeken op artikelnummer of omschrijving'\"\n [showFilter]=\"true\"\n (onArticleClick)=\"handleArticleClick($event)\"\n (onArButtonClick)=\"handleArButtonClick($event)\"\n ></co-catalog-search>\n ", isInline: true, styles: [":host{display:block;overflow:auto}\n"], components: [{ type: i7__namespace$2.ɵbf, selector: "co-catalog-search", inputs: ["createFrozenArticle", "showNavigation", "showLandingPage", "showFilter", "showViewModes", "settings", "title", "subTitle", "searchPlaceholder"], outputs: ["settingsChange", "onLookAtArticleButtonClick", "onArButtonClick", "onAddArticleButtonClick", "onArticleClick", "onStockDetailsClick", "onExternalSourceClick"] }], pipes: { "localize": LocalizePipe } });
|
|
45430
45622
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductOwnCollectionComponent, decorators: [{
|
|
45431
45623
|
type: i0.Component,
|
|
45432
45624
|
args: [{
|
|
@@ -45858,8 +46050,8 @@
|
|
|
45858
46050
|
};
|
|
45859
46051
|
return ProductCatalogComponent;
|
|
45860
46052
|
}());
|
|
45861
|
-
ProductCatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductCatalogComponent, deps: [{ token: HomedecoratorSettingsService }, { token: MessageBusService }, { token: HomedecoratorConnectorService }, { token: ScreenSizeAnalysisService }, { token: SceneService }, { token: FloorplanService }, { token: i0__namespace.Injector }, { token: i7__namespace$
|
|
45862
|
-
ProductCatalogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductCatalogComponent, selector: "rp-product-catalog", host: { properties: { "class.shown": "this.shown", "class.no-offset": "this.phoneSizeScreen" } }, ngImport: i0__namespace, template: "\n <div class=\"product-catalog-wrapper\">\n <div class=\"catalog-button-wrapper\" *ngIf=\"showOwnCollection || showExternalCatalog\">\n <div class=\"back-button\" (click)=\"handleBackClick($event)\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\n <span class=\"back-button-span\">Terug</span>\n </div>\n <div class=\"button-spacer\"></div>\n <div class=\"refresh-button\" (click)=\"handleRefreshClick($event)\">\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\n <span class=\"refresh-button-span\">Verversen</span>\n </div>\n\n <div class=\"button-spacer\"></div>\n <div class=\"refresh-button\" (click)=\"iframeTest()\">\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\n <span class=\"refresh-button-span\">iframeTest</span>\n </div>\n\n </div>\n <ng-container *ngIf=\"showOwnCollection\">\n <rp-product-own-collection\n [settings]=\"settingsService.settings\"\n (articleClick)=\"handleArticleClick($event)\"\n ></rp-product-own-collection>\n </ng-container>\n\n <ng-container *ngIf=\"homeDecoHub && !showOwnCollection && !showExternalCatalog\">\n <rp-model-uploader>\n\n </rp-model-uploader>\n </ng-container>\n\n\n <ng-container *ngIf=\"!showOwnCollection && loaded\">\n <div class=\"own-collection-button-wrapper\" (click)=\"handleShowOwnCollectionClick($event)\"\n *ngIf=\"!showExternalCatalog && settingsService.settings.options.showOwnCatalogButton\">\n <div class=\"own-collection-description\" [textContent]=\"'OWN_COLLECTION' | localize\"></div>\n <co-image [source]=\"'assets/images/logo.svg'\"></co-image>\n </div>\n <co-catalog-external-sources *ngIf=\"!showExternalCatalog\"\n (externalSourceClick)=\"handleExternalSourceClick($event)\"></co-catalog-external-sources>\n <co-catalog-external-source *ngIf=\"showExternalCatalog\"\n [options]=\"{searchOnStart: true}\"\n [externalCatalogStartupInfo]=\"catalogInfo\"\n [catalogDefinition]=\"catalogDefinition\"\n [title]=\"'CATALOG' | localize | append: ' ' | append: externalCatalogName\"\n [subTitle]=\"'Zoeken naar artikelen'\"\n [searchPlaceholder]=\"'Zoek naar artikelen'\"\n [name]=\"externalCatalogName\"\n [showFilter]=\"false\"\n (articleClick)=\"handleArticleClick($event, catalogInfo)\"\n [class.hide-filter]=\"settingsService.settings.options.showOnlyHomeDecoFilter\"\n (iFrameFeedbackReceived)=\"handleIFrameFeedback($event)\"\n ></co-catalog-external-source>\n </ng-container>\n <button mat-icon-button class=\"hide-catalog\" (click)=\"hideCatalog()\">\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">close</mat-icon>\n </button>\n </div>\n ", isInline: true, styles: [":host{display:none;z-index:99;overflow:hidden}:host .layer{pointer-events:all!important;overflow-y:hidden;display:flex;flex-direction:column}:host .product-catalog-wrapper{display:flex;flex-direction:column;height:100%;padding:30px}:host .product-catalog-wrapper .catalog-button-wrapper{font-size:16px;margin-bottom:20px}:host .product-catalog-wrapper .co-catalog-external-source{display:flex;flex-basis:100%}:host .own-collection-button-wrapper{cursor:pointer}:host .own-collection-button-wrapper .own-collection-description{font-size:12px;font-weight:bold;text-shadow:none;text-transform:capitalize;margin:10px 0}:host .own-collection-button-wrapper .co-image{padding:25px;background:#3760a1;border-radius:10px}:host.shown{display:inline-block;position:relative;top:64px;left:64px;width:calc(100% - 64px);height:calc(100vh - 64px);background-color:#fff}:host.no-offset{left:0;width:100%;z-index:100}:host .ione-catalog{display:block;overflow:hidden}:host .ione-catalog ::ng-deep app-catalog{overflow:hidden}:host .catalog-button-wrapper .back-button,:host .catalog-button-wrapper .refresh-button{cursor:pointer;display:inline-block;font-weight:bold}:host .catalog-button-wrapper .back-button .refresh-button-span,:host .catalog-button-wrapper .back-button .back-button-span,:host .catalog-button-wrapper .refresh-button .refresh-button-span,:host .catalog-button-wrapper .refresh-button .back-button-span{vertical-align:top;line-height:25px;margin:10px 5px 0}:host .catalog-button-wrapper .button-spacer{display:inline-block;margin:0 10px}:host .product-catalog-wrapper{overflow:auto}:host .hide-catalog{position:absolute;top:6px;right:0px;z-index:100}.co-catalog-external-sources .external-source-item .co-image img{object-fit:cover}::ng-deep .co-catalog-navigation{position:relative}::ng-deep .co-catalog-navigation .navigation-overlay-wrapper{position:absolute!important;left:-40px!important;padding:20px 40px;grid-column-gap:60px}\n"], components: [{ type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ProductOwnCollectionComponent, selector: "rp-product-own-collection", inputs: ["settings"], outputs: ["articleClick", "arButtonClick"] }, { type: ModelUploaderComponent, selector: "rp-model-uploader" }, { type: i4__namespace$1.ImageComponent, selector: "co-image", inputs: ["source", "placeHolder"] }, { type: i7__namespace$
|
|
46053
|
+
ProductCatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductCatalogComponent, deps: [{ token: HomedecoratorSettingsService }, { token: MessageBusService }, { token: HomedecoratorConnectorService }, { token: ScreenSizeAnalysisService }, { token: SceneService }, { token: FloorplanService }, { token: i0__namespace.Injector }, { token: i7__namespace$2.CatalogService }, { token: DynamicScriptService }, { token: HomedecoratorConnectorAdapterService }, { token: BuildFurnitureService }, { token: ThirdPartyModelService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
46054
|
+
ProductCatalogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductCatalogComponent, selector: "rp-product-catalog", host: { properties: { "class.shown": "this.shown", "class.no-offset": "this.phoneSizeScreen" } }, ngImport: i0__namespace, template: "\n <div class=\"product-catalog-wrapper\">\n <div class=\"catalog-button-wrapper\" *ngIf=\"showOwnCollection || showExternalCatalog\">\n <div class=\"back-button\" (click)=\"handleBackClick($event)\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\n <span class=\"back-button-span\">Terug</span>\n </div>\n <div class=\"button-spacer\"></div>\n <div class=\"refresh-button\" (click)=\"handleRefreshClick($event)\">\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\n <span class=\"refresh-button-span\">Verversen</span>\n </div>\n\n <div class=\"button-spacer\"></div>\n <div class=\"refresh-button\" (click)=\"iframeTest()\">\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\n <span class=\"refresh-button-span\">iframeTest</span>\n </div>\n\n </div>\n <ng-container *ngIf=\"showOwnCollection\">\n <rp-product-own-collection\n [settings]=\"settingsService.settings\"\n (articleClick)=\"handleArticleClick($event)\"\n ></rp-product-own-collection>\n </ng-container>\n\n <ng-container *ngIf=\"homeDecoHub && !showOwnCollection && !showExternalCatalog\">\n <rp-model-uploader>\n\n </rp-model-uploader>\n </ng-container>\n\n\n <ng-container *ngIf=\"!showOwnCollection && loaded\">\n <div class=\"own-collection-button-wrapper\" (click)=\"handleShowOwnCollectionClick($event)\"\n *ngIf=\"!showExternalCatalog && settingsService.settings.options.showOwnCatalogButton\">\n <div class=\"own-collection-description\" [textContent]=\"'OWN_COLLECTION' | localize\"></div>\n <co-image [source]=\"'assets/images/logo.svg'\"></co-image>\n </div>\n <co-catalog-external-sources *ngIf=\"!showExternalCatalog\"\n (externalSourceClick)=\"handleExternalSourceClick($event)\"></co-catalog-external-sources>\n <co-catalog-external-source *ngIf=\"showExternalCatalog\"\n [options]=\"{searchOnStart: true}\"\n [externalCatalogStartupInfo]=\"catalogInfo\"\n [catalogDefinition]=\"catalogDefinition\"\n [title]=\"'CATALOG' | localize | append: ' ' | append: externalCatalogName\"\n [subTitle]=\"'Zoeken naar artikelen'\"\n [searchPlaceholder]=\"'Zoek naar artikelen'\"\n [name]=\"externalCatalogName\"\n [showFilter]=\"false\"\n (articleClick)=\"handleArticleClick($event, catalogInfo)\"\n [class.hide-filter]=\"settingsService.settings.options.showOnlyHomeDecoFilter\"\n (iFrameFeedbackReceived)=\"handleIFrameFeedback($event)\"\n ></co-catalog-external-source>\n </ng-container>\n <button mat-icon-button class=\"hide-catalog\" (click)=\"hideCatalog()\">\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">close</mat-icon>\n </button>\n </div>\n ", isInline: true, styles: [":host{display:none;z-index:99;overflow:hidden}:host .layer{pointer-events:all!important;overflow-y:hidden;display:flex;flex-direction:column}:host .product-catalog-wrapper{display:flex;flex-direction:column;height:100%;padding:30px}:host .product-catalog-wrapper .catalog-button-wrapper{font-size:16px;margin-bottom:20px}:host .product-catalog-wrapper .co-catalog-external-source{display:flex;flex-basis:100%}:host .own-collection-button-wrapper{cursor:pointer}:host .own-collection-button-wrapper .own-collection-description{font-size:12px;font-weight:bold;text-shadow:none;text-transform:capitalize;margin:10px 0}:host .own-collection-button-wrapper .co-image{padding:25px;background:#3760a1;border-radius:10px}:host.shown{display:inline-block;position:relative;top:64px;left:64px;width:calc(100% - 64px);height:calc(100vh - 64px);background-color:#fff}:host.no-offset{left:0;width:100%;z-index:100}:host .ione-catalog{display:block;overflow:hidden}:host .ione-catalog ::ng-deep app-catalog{overflow:hidden}:host .catalog-button-wrapper .back-button,:host .catalog-button-wrapper .refresh-button{cursor:pointer;display:inline-block;font-weight:bold}:host .catalog-button-wrapper .back-button .refresh-button-span,:host .catalog-button-wrapper .back-button .back-button-span,:host .catalog-button-wrapper .refresh-button .refresh-button-span,:host .catalog-button-wrapper .refresh-button .back-button-span{vertical-align:top;line-height:25px;margin:10px 5px 0}:host .catalog-button-wrapper .button-spacer{display:inline-block;margin:0 10px}:host .product-catalog-wrapper{overflow:auto}:host .hide-catalog{position:absolute;top:6px;right:0px;z-index:100}.co-catalog-external-sources .external-source-item .co-image img{object-fit:cover}::ng-deep .co-catalog-navigation{position:relative}::ng-deep .co-catalog-navigation .navigation-overlay-wrapper{position:absolute!important;left:-40px!important;padding:20px 40px;grid-column-gap:60px}\n"], components: [{ type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ProductOwnCollectionComponent, selector: "rp-product-own-collection", inputs: ["settings"], outputs: ["articleClick", "arButtonClick"] }, { type: ModelUploaderComponent, selector: "rp-model-uploader" }, { type: i4__namespace$1.ImageComponent, selector: "co-image", inputs: ["source", "placeHolder"] }, { type: i7__namespace$2.ɵt, selector: "co-catalog-external-sources", outputs: ["externalSourceClick"] }, { type: i7__namespace$2.ɵbg, selector: "co-catalog-external-source", inputs: ["showFilter", "showNavigation", "externalCatalogStartupInfo", "catalogDefinition", "user", "title", "subTitle", "searchPlaceholder", "options", "name"], outputs: ["articleClick", "addArticleClick", "iFrameFeedbackReceived"] }, { 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"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": LocalizePipe, "append": AppendPipe } });
|
|
45863
46055
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductCatalogComponent, decorators: [{
|
|
45864
46056
|
type: i0.Component,
|
|
45865
46057
|
args: [{
|
|
@@ -45867,7 +46059,7 @@
|
|
|
45867
46059
|
template: "\n <div class=\"product-catalog-wrapper\">\n <div class=\"catalog-button-wrapper\" *ngIf=\"showOwnCollection || showExternalCatalog\">\n <div class=\"back-button\" (click)=\"handleBackClick($event)\">\n <mat-icon class=\"homedecorator-material-icons\">arrow_back</mat-icon>\n <span class=\"back-button-span\">Terug</span>\n </div>\n <div class=\"button-spacer\"></div>\n <div class=\"refresh-button\" (click)=\"handleRefreshClick($event)\">\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\n <span class=\"refresh-button-span\">Verversen</span>\n </div>\n\n <div class=\"button-spacer\"></div>\n <div class=\"refresh-button\" (click)=\"iframeTest()\">\n <mat-icon class=\"homedecorator-material-icons\">refresh</mat-icon>\n <span class=\"refresh-button-span\">iframeTest</span>\n </div>\n\n </div>\n <ng-container *ngIf=\"showOwnCollection\">\n <rp-product-own-collection\n [settings]=\"settingsService.settings\"\n (articleClick)=\"handleArticleClick($event)\"\n ></rp-product-own-collection>\n </ng-container>\n\n <ng-container *ngIf=\"homeDecoHub && !showOwnCollection && !showExternalCatalog\">\n <rp-model-uploader>\n\n </rp-model-uploader>\n </ng-container>\n\n\n <ng-container *ngIf=\"!showOwnCollection && loaded\">\n <div class=\"own-collection-button-wrapper\" (click)=\"handleShowOwnCollectionClick($event)\"\n *ngIf=\"!showExternalCatalog && settingsService.settings.options.showOwnCatalogButton\">\n <div class=\"own-collection-description\" [textContent]=\"'OWN_COLLECTION' | localize\"></div>\n <co-image [source]=\"'assets/images/logo.svg'\"></co-image>\n </div>\n <co-catalog-external-sources *ngIf=\"!showExternalCatalog\"\n (externalSourceClick)=\"handleExternalSourceClick($event)\"></co-catalog-external-sources>\n <co-catalog-external-source *ngIf=\"showExternalCatalog\"\n [options]=\"{searchOnStart: true}\"\n [externalCatalogStartupInfo]=\"catalogInfo\"\n [catalogDefinition]=\"catalogDefinition\"\n [title]=\"'CATALOG' | localize | append: ' ' | append: externalCatalogName\"\n [subTitle]=\"'Zoeken naar artikelen'\"\n [searchPlaceholder]=\"'Zoek naar artikelen'\"\n [name]=\"externalCatalogName\"\n [showFilter]=\"false\"\n (articleClick)=\"handleArticleClick($event, catalogInfo)\"\n [class.hide-filter]=\"settingsService.settings.options.showOnlyHomeDecoFilter\"\n (iFrameFeedbackReceived)=\"handleIFrameFeedback($event)\"\n ></co-catalog-external-source>\n </ng-container>\n <button mat-icon-button class=\"hide-catalog\" (click)=\"hideCatalog()\">\n <mat-icon class=\"homedecorator-material-icons\" aria-hidden=\"true\">close</mat-icon>\n </button>\n </div>\n ",
|
|
45868
46060
|
styleUrls: ['./product-catalog.component.scss']
|
|
45869
46061
|
}]
|
|
45870
|
-
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: MessageBusService }, { type: HomedecoratorConnectorService }, { type: ScreenSizeAnalysisService }, { type: SceneService }, { type: FloorplanService }, { type: i0__namespace.Injector }, { type: i7__namespace$
|
|
46062
|
+
}], ctorParameters: function () { return [{ type: HomedecoratorSettingsService }, { type: MessageBusService }, { type: HomedecoratorConnectorService }, { type: ScreenSizeAnalysisService }, { type: SceneService }, { type: FloorplanService }, { type: i0__namespace.Injector }, { type: i7__namespace$2.CatalogService }, { type: DynamicScriptService }, { type: HomedecoratorConnectorAdapterService }, { type: BuildFurnitureService }, { type: ThirdPartyModelService }]; }, propDecorators: { shown: [{
|
|
45871
46063
|
type: i0.HostBinding,
|
|
45872
46064
|
args: ['class.shown']
|
|
45873
46065
|
}], phoneSizeScreen: [{
|
|
@@ -46008,7 +46200,7 @@
|
|
|
46008
46200
|
});
|
|
46009
46201
|
};
|
|
46010
46202
|
var HomedecoratorComponent = /** @class */ (function () {
|
|
46011
|
-
function HomedecoratorComponent(controllerService, appState, presetsService, screenAnalysis, _componentFactoryResolver, _iconRegistry, _domSanitizer, _messageService, _homedecoratorService) {
|
|
46203
|
+
function HomedecoratorComponent(controllerService, appState, presetsService, screenAnalysis, _componentFactoryResolver, _iconRegistry, _domSanitizer, _messageService, _homedecoratorService, _eventService) {
|
|
46012
46204
|
this.controllerService = controllerService;
|
|
46013
46205
|
this.appState = appState;
|
|
46014
46206
|
this.presetsService = presetsService;
|
|
@@ -46018,6 +46210,7 @@
|
|
|
46018
46210
|
this._domSanitizer = _domSanitizer;
|
|
46019
46211
|
this._messageService = _messageService;
|
|
46020
46212
|
this._homedecoratorService = _homedecoratorService;
|
|
46213
|
+
this._eventService = _eventService;
|
|
46021
46214
|
this.showClass = true;
|
|
46022
46215
|
this.loaded = false;
|
|
46023
46216
|
this.title = 'MyRoomPlans';
|
|
@@ -46114,26 +46307,32 @@
|
|
|
46114
46307
|
return __awaiter(this, void 0, void 0, function () {
|
|
46115
46308
|
var _this = this;
|
|
46116
46309
|
return __generator(this, function (_a) {
|
|
46117
|
-
|
|
46118
|
-
|
|
46119
|
-
|
|
46120
|
-
|
|
46121
|
-
|
|
46122
|
-
|
|
46123
|
-
|
|
46124
|
-
|
|
46125
|
-
|
|
46126
|
-
|
|
46127
|
-
|
|
46128
|
-
|
|
46129
|
-
|
|
46130
|
-
|
|
46131
|
-
|
|
46132
|
-
|
|
46133
|
-
|
|
46134
|
-
|
|
46135
|
-
|
|
46136
|
-
|
|
46310
|
+
switch (_a.label) {
|
|
46311
|
+
case 0:
|
|
46312
|
+
this.registerCustomIcons();
|
|
46313
|
+
this._subs.push(this.screenAnalysis.screenSizeChanged.subscribe(function (info) {
|
|
46314
|
+
_this.phoneSizeScreen = info.isPhoneSize;
|
|
46315
|
+
_this.isPortraitMode = info.isPortraitMode;
|
|
46316
|
+
_this.shouldShowLandscapeMessage = _this.screenAnalysis.isMobileDevice && _this.isPortraitMode;
|
|
46317
|
+
}), this._messageService.subscribe(MessageType.ShowIOneLoadingIndicator, function () {
|
|
46318
|
+
_this.showIOneLoader = true;
|
|
46319
|
+
}), this._messageService.subscribe(MessageType.HideIOneLoadingIndicator, function () {
|
|
46320
|
+
_this.showIOneLoader = false;
|
|
46321
|
+
}), this._messageService.subscribe(MessageType.StartWithEmptyRoom, function () {
|
|
46322
|
+
_this._startWithEmptyRoom(true);
|
|
46323
|
+
}), this._messageService.subscribe(MessageType.StartWithPreset, function (_a) {
|
|
46324
|
+
var preset = _a.preset, switchTo2D = _a.switchTo2D;
|
|
46325
|
+
_this._startWithPreset(preset, switchTo2D);
|
|
46326
|
+
}), this._homedecoratorService.loaded.subscribe(function (loaded) {
|
|
46327
|
+
if (loaded) {
|
|
46328
|
+
_this.loaded = true;
|
|
46329
|
+
}
|
|
46330
|
+
}));
|
|
46331
|
+
return [4 /*yield*/, this._startWithEmptyRoom(true)];
|
|
46332
|
+
case 1:
|
|
46333
|
+
_a.sent();
|
|
46334
|
+
return [2 /*return*/];
|
|
46335
|
+
}
|
|
46137
46336
|
});
|
|
46138
46337
|
});
|
|
46139
46338
|
};
|
|
@@ -46159,7 +46358,10 @@
|
|
|
46159
46358
|
'hand-pointer',
|
|
46160
46359
|
'check',
|
|
46161
46360
|
'move-phone-ar',
|
|
46162
|
-
'cart-shopping-regular'
|
|
46361
|
+
'cart-shopping-regular',
|
|
46362
|
+
'pen-ruler',
|
|
46363
|
+
'dash-button',
|
|
46364
|
+
'retry-button'
|
|
46163
46365
|
].map(addIcon);
|
|
46164
46366
|
};
|
|
46165
46367
|
HomedecoratorComponent.prototype.keyup = function (event) {
|
|
@@ -46190,6 +46392,7 @@
|
|
|
46190
46392
|
});
|
|
46191
46393
|
};
|
|
46192
46394
|
HomedecoratorComponent.prototype._startWithEmptyRoom = function (switchTo2D) {
|
|
46395
|
+
this._eventService.dirty.next(true);
|
|
46193
46396
|
var preset = Preset.CreateModelFromInterface({ filename: 'assets/presets/empty.json' });
|
|
46194
46397
|
this._startWithPreset(preset, switchTo2D);
|
|
46195
46398
|
};
|
|
@@ -46206,7 +46409,7 @@
|
|
|
46206
46409
|
};
|
|
46207
46410
|
return HomedecoratorComponent;
|
|
46208
46411
|
}());
|
|
46209
|
-
HomedecoratorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HomedecoratorComponent, deps: [{ token: HomedecoratorConnectorService }, { token: AppStateService }, { token: PresetsService }, { token: ScreenSizeAnalysisService }, { token: i0__namespace.ComponentFactoryResolver }, { token: i5__namespace$1.MatIconRegistry }, { token: i1__namespace.DomSanitizer }, { token: MessageBusService }, { token: HomedecoratorService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
46412
|
+
HomedecoratorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HomedecoratorComponent, deps: [{ token: HomedecoratorConnectorService }, { token: AppStateService }, { token: PresetsService }, { token: ScreenSizeAnalysisService }, { token: i0__namespace.ComponentFactoryResolver }, { token: i5__namespace$1.MatIconRegistry }, { token: i1__namespace.DomSanitizer }, { token: MessageBusService }, { token: HomedecoratorService }, { token: HomedecoratorAppEventService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
46210
46413
|
HomedecoratorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HomedecoratorComponent, selector: "co-homedecorator", inputs: { settings: "settings" }, host: { listeners: { "document:keyup": "keyup($event)" }, properties: { "class.co-homedecorator": "this.showClass" } }, ngImport: i0__namespace, template: "\n <div class=\"viewport\" *ngIf=\"loaded\">\n <progress-bar></progress-bar>\n <rp-loading-overlay>\n <rp-core3d></rp-core3d>\n <rp-room-planner></rp-room-planner>\n <rp-furniture-manager></rp-furniture-manager>\n <rp-presets></rp-presets>\n <rp-threedselector></rp-threedselector>\n <rp-toolbar></rp-toolbar>\n <rp-product-catalog></rp-product-catalog>\n <rp-lite-selector></rp-lite-selector>\n <rp-help></rp-help>\n </rp-loading-overlay>\n </div>\n <rp-loader [show]=\"controllerService.shouldShowLoader\"></rp-loader>\n <div *ngIf=\"shouldShowLandscapeMessage\" class=\"mobile-portrait-overlay\">\n<!--\n <mat-icon svgIcon=\"tilt-phone\" class=\"tilt-phone-icon\"></mat-icon>\n-->\n <div>\n<!--\n {{'PLEASE_USE_PHONE_IN_LANDSCAPE_MODE' | localize}}\n-->\n </div>\n </div>\n ", isInline: true, components: [{ type: ProgressBarComponent, selector: "progress-bar" }, { type: LoadingOverlayComponent, selector: "rp-loading-overlay" }, { type: Core3dComponent, selector: "rp-core3d" }, { type: RoomPlannerComponent, selector: "rp-room-planner", inputs: ["isLoading"], outputs: ["done", "showPlugin", "focusControls"] }, { type: FurnitureManagerComponent, selector: "rp-furniture-manager" }, { type: PresetsComponent, selector: "rp-presets" }, { type: ThreedselectorComponent, selector: "rp-threedselector", inputs: ["selections"], outputs: ["customizeButtonClicked"] }, { type: ToolbarComponent, selector: "rp-toolbar" }, { type: ProductCatalogComponent, selector: "rp-product-catalog" }, { type: LiteSelectorComponent, selector: "rp-lite-selector", inputs: ["showAnswers", "show", "showSelections", "showLabel", "canClose", "metadata", "customDimensions"], outputs: ["showChange", "answerChosen"] }, { type: HelpComponent, selector: "rp-help" }, { type: HdLoaderComponent, selector: "rp-loader", inputs: ["show"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0__namespace.ViewEncapsulation.None });
|
|
46211
46414
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HomedecoratorComponent, decorators: [{
|
|
46212
46415
|
type: i0.Component,
|
|
@@ -46215,7 +46418,7 @@
|
|
|
46215
46418
|
template: "\n <div class=\"viewport\" *ngIf=\"loaded\">\n <progress-bar></progress-bar>\n <rp-loading-overlay>\n <rp-core3d></rp-core3d>\n <rp-room-planner></rp-room-planner>\n <rp-furniture-manager></rp-furniture-manager>\n <rp-presets></rp-presets>\n <rp-threedselector></rp-threedselector>\n <rp-toolbar></rp-toolbar>\n <rp-product-catalog></rp-product-catalog>\n <rp-lite-selector></rp-lite-selector>\n <rp-help></rp-help>\n </rp-loading-overlay>\n </div>\n <rp-loader [show]=\"controllerService.shouldShowLoader\"></rp-loader>\n <div *ngIf=\"shouldShowLandscapeMessage\" class=\"mobile-portrait-overlay\">\n<!--\n <mat-icon svgIcon=\"tilt-phone\" class=\"tilt-phone-icon\"></mat-icon>\n-->\n <div>\n<!--\n {{'PLEASE_USE_PHONE_IN_LANDSCAPE_MODE' | localize}}\n-->\n </div>\n </div>\n ",
|
|
46216
46419
|
encapsulation: i0.ViewEncapsulation.None
|
|
46217
46420
|
}]
|
|
46218
|
-
}], ctorParameters: function () { return [{ type: HomedecoratorConnectorService }, { type: AppStateService }, { type: PresetsService }, { type: ScreenSizeAnalysisService }, { type: i0__namespace.ComponentFactoryResolver }, { type: i5__namespace$1.MatIconRegistry }, { type: i1__namespace.DomSanitizer }, { type: MessageBusService }, { type: HomedecoratorService }]; }, propDecorators: { settings: [{
|
|
46421
|
+
}], ctorParameters: function () { return [{ type: HomedecoratorConnectorService }, { type: AppStateService }, { type: PresetsService }, { type: ScreenSizeAnalysisService }, { type: i0__namespace.ComponentFactoryResolver }, { type: i5__namespace$1.MatIconRegistry }, { type: i1__namespace.DomSanitizer }, { type: MessageBusService }, { type: HomedecoratorService }, { type: HomedecoratorAppEventService }]; }, propDecorators: { settings: [{
|
|
46219
46422
|
type: i0.Input
|
|
46220
46423
|
}], showClass: [{
|
|
46221
46424
|
type: i0.HostBinding,
|
|
@@ -46660,7 +46863,7 @@
|
|
|
46660
46863
|
i9.MatSelectModule,
|
|
46661
46864
|
i10$1.MatSlideToggleModule,
|
|
46662
46865
|
i3$2.MatGridListModule,
|
|
46663
|
-
|
|
46866
|
+
i16.MatProgressSpinnerModule,
|
|
46664
46867
|
i8.FormsModule], exports: [RenderDialogComponent,
|
|
46665
46868
|
RenderControlsComponent] });
|
|
46666
46869
|
RenderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RenderModule, providers: [
|
|
@@ -46676,7 +46879,7 @@
|
|
|
46676
46879
|
i9.MatSelectModule,
|
|
46677
46880
|
i10$1.MatSlideToggleModule,
|
|
46678
46881
|
i3$2.MatGridListModule,
|
|
46679
|
-
|
|
46882
|
+
i16.MatProgressSpinnerModule,
|
|
46680
46883
|
i8.FormsModule
|
|
46681
46884
|
]] });
|
|
46682
46885
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RenderModule, decorators: [{
|
|
@@ -46693,7 +46896,7 @@
|
|
|
46693
46896
|
i9.MatSelectModule,
|
|
46694
46897
|
i10$1.MatSlideToggleModule,
|
|
46695
46898
|
i3$2.MatGridListModule,
|
|
46696
|
-
|
|
46899
|
+
i16.MatProgressSpinnerModule,
|
|
46697
46900
|
i8.FormsModule
|
|
46698
46901
|
],
|
|
46699
46902
|
declarations: [
|
|
@@ -47108,7 +47311,7 @@
|
|
|
47108
47311
|
return EditApplyComponent;
|
|
47109
47312
|
}());
|
|
47110
47313
|
EditApplyComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: EditApplyComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
47111
|
-
EditApplyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EditApplyComponent, selector: "rp-edit-apply", inputs: { watched: "watched", disable: "disable" }, outputs: { cancel: "cancel", apply: "apply", toggleChange: "toggleChange" }, ngImport: i0__namespace, template: "<mat-button-toggle\r\n *ngIf=\"!checked\"\r\n (change)=\"toggle($event)\">\r\n <mat-icon class=\"homedecorator-material-icons\">mode_edit</mat-icon>\r\n <span>{{'EDIT' | localize}}</span>\r\n</mat-button-toggle>\r\n<article *ngIf=\"checked\">\r\n <button mat-raised-button (click)=\"onCancel()\">\r\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\r\n </button>\r\n <button mat-raised-button\r\n [disabled]=\"!watched || disable\"\r\n (click)=\"onApply()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">done</mat-icon>\r\n </button>\r\n</article>\r\n", styles: [""], components: [{ type:
|
|
47314
|
+
EditApplyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EditApplyComponent, selector: "rp-edit-apply", inputs: { watched: "watched", disable: "disable" }, outputs: { cancel: "cancel", apply: "apply", toggleChange: "toggleChange" }, ngImport: i0__namespace, template: "<mat-button-toggle\r\n *ngIf=\"!checked\"\r\n (change)=\"toggle($event)\">\r\n <mat-icon class=\"homedecorator-material-icons\">mode_edit</mat-icon>\r\n <span>{{'EDIT' | localize}}</span>\r\n</mat-button-toggle>\r\n<article *ngIf=\"checked\">\r\n <button mat-raised-button (click)=\"onCancel()\">\r\n <mat-icon class=\"homedecorator-material-icons\">clear</mat-icon>\r\n </button>\r\n <button mat-raised-button\r\n [disabled]=\"!watched || disable\"\r\n (click)=\"onApply()\"\r\n >\r\n <mat-icon class=\"homedecorator-material-icons\">done</mat-icon>\r\n </button>\r\n</article>\r\n", styles: [""], components: [{ type: i8__namespace$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i5__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": LocalizePipe } });
|
|
47112
47315
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: EditApplyComponent, decorators: [{
|
|
47113
47316
|
type: i0.Component,
|
|
47114
47317
|
args: [{
|
|
@@ -47391,7 +47594,7 @@
|
|
|
47391
47594
|
i5.CommonModule,
|
|
47392
47595
|
ContextMenuModule,
|
|
47393
47596
|
i3$1.MatButtonModule,
|
|
47394
|
-
|
|
47597
|
+
i8$1.MatButtonToggleModule,
|
|
47395
47598
|
i23.MatCardModule,
|
|
47396
47599
|
i1$2.MatCheckboxModule,
|
|
47397
47600
|
i7.MatFormFieldModule,
|
|
@@ -47430,7 +47633,7 @@
|
|
|
47430
47633
|
i5.CommonModule,
|
|
47431
47634
|
ContextMenuModule,
|
|
47432
47635
|
i3$1.MatButtonModule,
|
|
47433
|
-
|
|
47636
|
+
i8$1.MatButtonToggleModule,
|
|
47434
47637
|
i23.MatCardModule,
|
|
47435
47638
|
i1$2.MatCheckboxModule,
|
|
47436
47639
|
i7.MatFormFieldModule,
|
|
@@ -47467,7 +47670,7 @@
|
|
|
47467
47670
|
i5.CommonModule,
|
|
47468
47671
|
ContextMenuModule,
|
|
47469
47672
|
i3$1.MatButtonModule,
|
|
47470
|
-
|
|
47673
|
+
i8$1.MatButtonToggleModule,
|
|
47471
47674
|
i23.MatCardModule,
|
|
47472
47675
|
i1$2.MatCheckboxModule,
|
|
47473
47676
|
i7.MatFormFieldModule,
|
|
@@ -47546,7 +47749,7 @@
|
|
|
47546
47749
|
i5.CommonModule,
|
|
47547
47750
|
ContextMenuModule,
|
|
47548
47751
|
i3$1.MatButtonModule,
|
|
47549
|
-
|
|
47752
|
+
i8$1.MatButtonToggleModule,
|
|
47550
47753
|
i26.MatSidenavModule,
|
|
47551
47754
|
i23.MatCardModule,
|
|
47552
47755
|
i7$1.MatSliderModule,
|
|
@@ -47567,7 +47770,7 @@
|
|
|
47567
47770
|
i5.CommonModule,
|
|
47568
47771
|
ContextMenuModule,
|
|
47569
47772
|
i3$1.MatButtonModule,
|
|
47570
|
-
|
|
47773
|
+
i8$1.MatButtonToggleModule,
|
|
47571
47774
|
i26.MatSidenavModule,
|
|
47572
47775
|
i23.MatCardModule,
|
|
47573
47776
|
i7$1.MatSliderModule,
|
|
@@ -47587,7 +47790,7 @@
|
|
|
47587
47790
|
i5.CommonModule,
|
|
47588
47791
|
ContextMenuModule,
|
|
47589
47792
|
i3$1.MatButtonModule,
|
|
47590
|
-
|
|
47793
|
+
i8$1.MatButtonToggleModule,
|
|
47591
47794
|
i26.MatSidenavModule,
|
|
47592
47795
|
i23.MatCardModule,
|
|
47593
47796
|
i7$1.MatSliderModule,
|
|
@@ -47786,7 +47989,7 @@
|
|
|
47786
47989
|
ElementSliderComponent], imports: [i5.CommonModule,
|
|
47787
47990
|
i8.FormsModule,
|
|
47788
47991
|
i3$1.MatButtonModule,
|
|
47789
|
-
|
|
47992
|
+
i8$1.MatButtonToggleModule,
|
|
47790
47993
|
i26.MatSidenavModule,
|
|
47791
47994
|
i23.MatCardModule,
|
|
47792
47995
|
i7$1.MatSliderModule,
|
|
@@ -47812,7 +48015,7 @@
|
|
|
47812
48015
|
i5.CommonModule,
|
|
47813
48016
|
i8.FormsModule,
|
|
47814
48017
|
i3$1.MatButtonModule,
|
|
47815
|
-
|
|
48018
|
+
i8$1.MatButtonToggleModule,
|
|
47816
48019
|
i26.MatSidenavModule,
|
|
47817
48020
|
i23.MatCardModule,
|
|
47818
48021
|
i7$1.MatSliderModule,
|
|
@@ -47841,7 +48044,7 @@
|
|
|
47841
48044
|
i5.CommonModule,
|
|
47842
48045
|
i8.FormsModule,
|
|
47843
48046
|
i3$1.MatButtonModule,
|
|
47844
|
-
|
|
48047
|
+
i8$1.MatButtonToggleModule,
|
|
47845
48048
|
i26.MatSidenavModule,
|
|
47846
48049
|
i23.MatCardModule,
|
|
47847
48050
|
i7$1.MatSliderModule,
|
|
@@ -48208,7 +48411,7 @@
|
|
|
48208
48411
|
i26.MatSidenavModule,
|
|
48209
48412
|
i2$2.MatListModule,
|
|
48210
48413
|
i1$1.MatDialogModule,
|
|
48211
|
-
|
|
48414
|
+
i8$1.MatButtonToggleModule,
|
|
48212
48415
|
i2$4.MatSnackBarModule,
|
|
48213
48416
|
i19.MatInputModule,
|
|
48214
48417
|
i7.MatFormFieldModule,
|
|
@@ -48238,7 +48441,7 @@
|
|
|
48238
48441
|
i26.MatSidenavModule,
|
|
48239
48442
|
i2$2.MatListModule,
|
|
48240
48443
|
i1$1.MatDialogModule,
|
|
48241
|
-
|
|
48444
|
+
i8$1.MatButtonToggleModule,
|
|
48242
48445
|
i2$4.MatSnackBarModule,
|
|
48243
48446
|
i19.MatInputModule,
|
|
48244
48447
|
i7.MatFormFieldModule,
|
|
@@ -48272,7 +48475,7 @@
|
|
|
48272
48475
|
i26.MatSidenavModule,
|
|
48273
48476
|
i2$2.MatListModule,
|
|
48274
48477
|
i1$1.MatDialogModule,
|
|
48275
|
-
|
|
48478
|
+
i8$1.MatButtonToggleModule,
|
|
48276
48479
|
i2$4.MatSnackBarModule,
|
|
48277
48480
|
i19.MatInputModule,
|
|
48278
48481
|
i7.MatFormFieldModule,
|
|
@@ -48329,11 +48532,11 @@
|
|
|
48329
48532
|
ProductOwnCollectionModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductOwnCollectionModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
48330
48533
|
ProductOwnCollectionModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductOwnCollectionModule, declarations: [ProductOwnCollectionComponent], imports: [i5.CommonModule,
|
|
48331
48534
|
CoreModule,
|
|
48332
|
-
i7$
|
|
48535
|
+
i7$2.CatalogSearchModule], exports: [ProductOwnCollectionComponent] });
|
|
48333
48536
|
ProductOwnCollectionModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductOwnCollectionModule, imports: [[
|
|
48334
48537
|
i5.CommonModule,
|
|
48335
48538
|
CoreModule,
|
|
48336
|
-
i7$
|
|
48539
|
+
i7$2.CatalogSearchModule
|
|
48337
48540
|
]] });
|
|
48338
48541
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductOwnCollectionModule, decorators: [{
|
|
48339
48542
|
type: i0.NgModule,
|
|
@@ -48341,7 +48544,7 @@
|
|
|
48341
48544
|
imports: [
|
|
48342
48545
|
i5.CommonModule,
|
|
48343
48546
|
CoreModule,
|
|
48344
|
-
i7$
|
|
48547
|
+
i7$2.CatalogSearchModule
|
|
48345
48548
|
],
|
|
48346
48549
|
declarations: [
|
|
48347
48550
|
ProductOwnCollectionComponent
|
|
@@ -48365,9 +48568,14 @@
|
|
|
48365
48568
|
i3$1.MatButtonModule,
|
|
48366
48569
|
i4.ButtonModule,
|
|
48367
48570
|
i4$1.ImageModule,
|
|
48368
|
-
i7$
|
|
48369
|
-
i7$
|
|
48370
|
-
|
|
48571
|
+
i7$2.CatalogExternalSourcesModule,
|
|
48572
|
+
i7$2.CatalogExternalSourceModule,
|
|
48573
|
+
radio.MatRadioModule,
|
|
48574
|
+
i10$1.MatSlideToggleModule,
|
|
48575
|
+
i7.MatFormFieldModule,
|
|
48576
|
+
i3.MatOptionModule,
|
|
48577
|
+
i9.MatSelectModule,
|
|
48578
|
+
i4.IconModule], exports: [ModelUploaderComponent] });
|
|
48371
48579
|
ModelUploaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ModelUploaderModule, imports: [[
|
|
48372
48580
|
i5.CommonModule,
|
|
48373
48581
|
CoreModule,
|
|
@@ -48375,9 +48583,14 @@
|
|
|
48375
48583
|
i3$1.MatButtonModule,
|
|
48376
48584
|
i4.ButtonModule,
|
|
48377
48585
|
i4$1.ImageModule,
|
|
48378
|
-
i7$
|
|
48379
|
-
i7$
|
|
48380
|
-
|
|
48586
|
+
i7$2.CatalogExternalSourcesModule,
|
|
48587
|
+
i7$2.CatalogExternalSourceModule,
|
|
48588
|
+
radio.MatRadioModule,
|
|
48589
|
+
i10$1.MatSlideToggleModule,
|
|
48590
|
+
i7.MatFormFieldModule,
|
|
48591
|
+
i3.MatOptionModule,
|
|
48592
|
+
i9.MatSelectModule,
|
|
48593
|
+
i4.IconModule,
|
|
48381
48594
|
]] });
|
|
48382
48595
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ModelUploaderModule, decorators: [{
|
|
48383
48596
|
type: i0.NgModule,
|
|
@@ -48389,9 +48602,14 @@
|
|
|
48389
48602
|
i3$1.MatButtonModule,
|
|
48390
48603
|
i4.ButtonModule,
|
|
48391
48604
|
i4$1.ImageModule,
|
|
48392
|
-
i7$
|
|
48393
|
-
i7$
|
|
48394
|
-
|
|
48605
|
+
i7$2.CatalogExternalSourcesModule,
|
|
48606
|
+
i7$2.CatalogExternalSourceModule,
|
|
48607
|
+
radio.MatRadioModule,
|
|
48608
|
+
i10$1.MatSlideToggleModule,
|
|
48609
|
+
i7.MatFormFieldModule,
|
|
48610
|
+
i3.MatOptionModule,
|
|
48611
|
+
i9.MatSelectModule,
|
|
48612
|
+
i4.IconModule,
|
|
48395
48613
|
],
|
|
48396
48614
|
exports: [
|
|
48397
48615
|
ModelUploaderComponent
|
|
@@ -48415,9 +48633,9 @@
|
|
|
48415
48633
|
i3$1.MatButtonModule,
|
|
48416
48634
|
i4.ButtonModule,
|
|
48417
48635
|
i4$1.ImageModule,
|
|
48418
|
-
i7$
|
|
48636
|
+
i7$2.CatalogExternalSourcesModule,
|
|
48419
48637
|
ProductOwnCollectionModule,
|
|
48420
|
-
i7$
|
|
48638
|
+
i7$2.CatalogExternalSourceModule,
|
|
48421
48639
|
ModelUploaderModule], exports: [ProductCatalogComponent] });
|
|
48422
48640
|
ProductCatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductCatalogModule, imports: [[
|
|
48423
48641
|
i5.CommonModule,
|
|
@@ -48426,9 +48644,9 @@
|
|
|
48426
48644
|
i3$1.MatButtonModule,
|
|
48427
48645
|
i4.ButtonModule,
|
|
48428
48646
|
i4$1.ImageModule,
|
|
48429
|
-
i7$
|
|
48647
|
+
i7$2.CatalogExternalSourcesModule,
|
|
48430
48648
|
ProductOwnCollectionModule,
|
|
48431
|
-
i7$
|
|
48649
|
+
i7$2.CatalogExternalSourceModule,
|
|
48432
48650
|
ModelUploaderModule
|
|
48433
48651
|
]] });
|
|
48434
48652
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProductCatalogModule, decorators: [{
|
|
@@ -48441,9 +48659,9 @@
|
|
|
48441
48659
|
i3$1.MatButtonModule,
|
|
48442
48660
|
i4.ButtonModule,
|
|
48443
48661
|
i4$1.ImageModule,
|
|
48444
|
-
i7$
|
|
48662
|
+
i7$2.CatalogExternalSourcesModule,
|
|
48445
48663
|
ProductOwnCollectionModule,
|
|
48446
|
-
i7$
|
|
48664
|
+
i7$2.CatalogExternalSourceModule,
|
|
48447
48665
|
ModelUploaderModule
|
|
48448
48666
|
],
|
|
48449
48667
|
exports: [
|
|
@@ -48611,7 +48829,8 @@
|
|
|
48611
48829
|
ExportDialogModule,
|
|
48612
48830
|
InfoDialogModule,
|
|
48613
48831
|
PluginsModule,
|
|
48614
|
-
DialogModule
|
|
48832
|
+
DialogModule,
|
|
48833
|
+
i1$5.LightboxModule], exports: [HomedecoratorComponent] });
|
|
48615
48834
|
HomedecoratorModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HomedecoratorModule, imports: [[
|
|
48616
48835
|
i5.CommonModule,
|
|
48617
48836
|
ProgressBarModule,
|
|
@@ -48620,7 +48839,8 @@
|
|
|
48620
48839
|
ExportDialogModule,
|
|
48621
48840
|
InfoDialogModule,
|
|
48622
48841
|
PluginsModule,
|
|
48623
|
-
DialogModule
|
|
48842
|
+
DialogModule,
|
|
48843
|
+
i1$5.LightboxModule
|
|
48624
48844
|
]] });
|
|
48625
48845
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: HomedecoratorModule, decorators: [{
|
|
48626
48846
|
type: i0.NgModule,
|
|
@@ -48633,7 +48853,8 @@
|
|
|
48633
48853
|
ExportDialogModule,
|
|
48634
48854
|
InfoDialogModule,
|
|
48635
48855
|
PluginsModule,
|
|
48636
|
-
DialogModule
|
|
48856
|
+
DialogModule,
|
|
48857
|
+
i1$5.LightboxModule
|
|
48637
48858
|
],
|
|
48638
48859
|
declarations: [
|
|
48639
48860
|
HomedecoratorComponent
|