@colijnit/homedecorator 255.1.1
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/_variables.scss +1 -0
- package/app/app.component.scss +30 -0
- package/app/app.version.d.ts +5 -0
- package/app/bundle/threedselector-bundle/threedselector-bundle.component.scss +24 -0
- package/app/bundle/threedselector-bundle/threedselector-selections-bundle.component.scss +4 -0
- package/app/core/components/debug/debug.component.d.ts +17 -0
- package/app/core/components/debug/debug.component.scss +27 -0
- package/app/core/components/error/error-message.component.d.ts +14 -0
- package/app/core/components/error/error-message.component.scss +18 -0
- package/app/core/components/tooltip/tooltip.component.d.ts +17 -0
- package/app/core/components/tooltip/tooltip.component.scss +34 -0
- package/app/core/const/dimensioning.d.ts +24 -0
- package/app/core/core.module.d.ts +27 -0
- package/app/core/directive/autofocus.directive.d.ts +11 -0
- package/app/core/directive/tooltip.directive.d.ts +21 -0
- package/app/core/directive/visibility-observer-master.directive.d.ts +12 -0
- package/app/core/directive/visibility-observer.directive.d.ts +16 -0
- package/app/core/enum/configuration-key.enum.d.ts +35 -0
- package/app/core/enum/export-type.enum.d.ts +5 -0
- package/app/core/enum/google-tag-manager-event.enum.d.ts +12 -0
- package/app/core/enum/icon-name.enum.d.ts +15 -0
- package/app/core/enum/icon.enum.d.ts +33 -0
- package/app/core/enum/light.enum.d.ts +7 -0
- package/app/core/enum/message-type.enum.d.ts +69 -0
- package/app/core/enum/model-type.enum.d.ts +6 -0
- package/app/core/enum/output-encoding.enum.d.ts +4 -0
- package/app/core/enum/shadow-map-type.enum.d.ts +6 -0
- package/app/core/enum/user-role-type.enum.d.ts +18 -0
- package/app/core/enum/view-mode.enum.d.ts +9 -0
- package/app/core/enum/xr-mode.enum.d.ts +4 -0
- package/app/core/interface/adjustable-element.interface.d.ts +5 -0
- package/app/core/interface/category.interface.d.ts +9 -0
- package/app/core/interface/changes.interface.d.ts +9 -0
- package/app/core/interface/child-params.interface.d.ts +3 -0
- package/app/core/interface/configuration-data.interface.d.ts +36 -0
- package/app/core/interface/external-settings.interface.d.ts +6 -0
- package/app/core/interface/info-dialog-data.interface.d.ts +4 -0
- package/app/core/interface/light-preset.interface.d.ts +18 -0
- package/app/core/interface/loading-overlay-data.interface.d.ts +4 -0
- package/app/core/interface/media-resource.interface.d.ts +6 -0
- package/app/core/interface/message-with-payload.interface.d.ts +81 -0
- package/app/core/interface/message-without-payload.interface.d.ts +35 -0
- package/app/core/interface/preset.interface.d.ts +8 -0
- package/app/core/interface/selected-floor-event.interface.d.ts +5 -0
- package/app/core/interface/selected-wall-event.interface.d.ts +6 -0
- package/app/core/interface/texture.interface.d.ts +37 -0
- package/app/core/interface/toolbar-icon.interface.d.ts +8 -0
- package/app/core/model/ar-position-indicator.d.ts +4 -0
- package/app/core/model/camera-settings.d.ts +12 -0
- package/app/core/model/category.d.ts +12 -0
- package/app/core/model/custom-button.d.ts +10 -0
- package/app/core/model/error-message.d.ts +8 -0
- package/app/core/model/export-object.d.ts +5 -0
- package/app/core/model/from-intersection-observer.d.ts +7 -0
- package/app/core/model/homedecorator-settings-options.d.ts +46 -0
- package/app/core/model/homedecorator-settings.d.ts +54 -0
- package/app/core/model/icon.d.ts +4 -0
- package/app/core/model/light-preset.d.ts +27 -0
- package/app/core/model/light-properties.d.ts +25 -0
- package/app/core/model/media-resource.d.ts +7 -0
- package/app/core/model/preset.d.ts +10 -0
- package/app/core/model/ral-color.d.ts +19 -0
- package/app/core/model/shadow-properties.d.ts +7 -0
- package/app/core/model/texture-type.d.ts +6 -0
- package/app/core/model/texture.d.ts +43 -0
- package/app/core/model/three-object.d.ts +1 -0
- package/app/core/model/toast-type.d.ts +5 -0
- package/app/core/model/toast.d.ts +5 -0
- package/app/core/model/xr-reticle.d.ts +17 -0
- package/app/core/pipe/append.pipe.d.ts +7 -0
- package/app/core/pipe/cm-to-measure.pipe.d.ts +10 -0
- package/app/core/pipe/filter.pipe.d.ts +7 -0
- package/app/core/pipe/keys.pipe.d.ts +7 -0
- package/app/core/pipe/localize.pipe.d.ts +10 -0
- package/app/core/pipe/m-to-measure.pipe.d.ts +10 -0
- package/app/core/pipe/prepend.pipe.d.ts +7 -0
- package/app/core/pipe/scm-to-measure.pipe.d.ts +10 -0
- package/app/core/pipe/sm-to-measure.pipe.d.ts +10 -0
- package/app/core/pipe/strip-html.pipe.d.ts +7 -0
- package/app/core/service/3dm-api.d.ts +65 -0
- package/app/core/service/app-state.service.d.ts +49 -0
- package/app/core/service/configuration.service.d.ts +15 -0
- package/app/core/service/debug.service.d.ts +16 -0
- package/app/core/service/dimensioning.service.d.ts +14 -0
- package/app/core/service/dynamic-camera.service.d.ts +23 -0
- package/app/core/service/environment.service.d.ts +8 -0
- package/app/core/service/error.service.d.ts +11 -0
- package/app/core/service/export.service.d.ts +18 -0
- package/app/core/service/file.service.d.ts +9 -0
- package/app/core/service/homedecorator-app-event.service.d.ts +23 -0
- package/app/core/service/homedecorator-app.service.d.ts +58 -0
- package/app/core/service/homedecorator-connector-adapter.service.d.ts +90 -0
- package/app/core/service/homedecorator-connector.service.d.ts +127 -0
- package/app/core/service/homedecorator-dictionary.service.d.ts +15 -0
- package/app/core/service/homedecorator-icon-cache.service.d.ts +21 -0
- package/app/core/service/homedecorator-settings.service.d.ts +23 -0
- package/app/core/service/homedecorator.service.d.ts +14 -0
- package/app/core/service/integration.service.d.ts +16 -0
- package/app/core/service/item-serialization.service.d.ts +78 -0
- package/app/core/service/json-utils.service.d.ts +7 -0
- package/app/core/service/message-bus.service.d.ts +21 -0
- package/app/core/service/permanent-store.service.d.ts +37 -0
- package/app/core/service/presets.service.d.ts +50 -0
- package/app/core/service/progress.service.d.ts +17 -0
- package/app/core/service/ral.service.d.ts +17 -0
- package/app/core/service/skip-button-info.service.d.ts +19 -0
- package/app/core/service/toast.service.d.ts +12 -0
- package/app/core/service/utils.service.d.ts +68 -0
- package/app/core/service/view-mode.service.d.ts +27 -0
- package/app/core/service/web-worker.service.d.ts +18 -0
- package/app/core/utils/clone-utils.d.ts +5 -0
- package/app/core/utils/color.utils.d.ts +7 -0
- package/app/core/utils/file.utils.d.ts +36 -0
- package/app/core/utils/function/is-empty.function.d.ts +1 -0
- package/app/core/utils/function/is-nill.function.d.ts +1 -0
- package/app/core/utils/material.utils.d.ts +33 -0
- package/app/core/utils/object.utils.d.ts +14 -0
- package/app/core/utils/relative-position.utils.d.ts +12 -0
- package/app/core/utils/variation-utils.d.ts +12 -0
- package/app/core/workers/enum/web-worker-message.enum.d.ts +4 -0
- package/app/core/workers/enum/web-worker-type.enum.d.ts +3 -0
- package/app/development/components/selected-child-material-texture.component.d.ts +58 -0
- package/app/development/components/selected-child-material-texture.component.scss +122 -0
- package/app/development/components/selected-child-material.component.d.ts +73 -0
- package/app/development/components/selected-child-material.component.scss +45 -0
- package/app/development/components/selected-child.component.d.ts +8 -0
- package/app/development/components/selected-child.component.scss +40 -0
- package/app/development/components/selected-object-base.d.ts +32 -0
- package/app/development/components/selected-object.component.d.ts +20 -0
- package/app/development/components/selected-object.component.scss +13 -0
- package/app/development/development.module.d.ts +19 -0
- package/app/development/directive/development.directive.d.ts +19 -0
- package/app/development/service/development.service.d.ts +49 -0
- package/app/homedecorator.component.d.ts +42 -0
- package/app/homedecorator.component.scss +34 -0
- package/app/homedecorator.module.d.ts +18 -0
- package/app/plugins/core3d/collision-manager/collision-manager.service.d.ts +23 -0
- package/app/plugins/core3d/collision-manager/floorplan-collision-detection.d.ts +9 -0
- package/app/plugins/core3d/collision-manager/snapping-collision.service.d.ts +47 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-buttons/ar-gui-buttons.component.d.ts +17 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-buttons/ar-gui-buttons.component.scss +30 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-configurator/ar-gui-configurator.component.d.ts +25 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-configurator/ar-gui-configurator.component.scss +13 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-context-menu/ar-gui-context-menu.component.d.ts +21 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-context-menu/ar-gui-context-menu.component.scss +6 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-notifications/ar-gui-notifications.component.d.ts +11 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-notifications/ar-gui-notifications.component.scss +19 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-root.component.d.ts +16 -0
- package/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-root.component.scss +23 -0
- package/app/plugins/core3d/components/lightplan/edit-light/edit-light.component.d.ts +46 -0
- package/app/plugins/core3d/components/lightplan/edit-light/edit-light.component.scss +93 -0
- package/app/plugins/core3d/components/lightplan/edit-lightplan/edit-lightplan.component.d.ts +24 -0
- package/app/plugins/core3d/components/lightplan/edit-lightplan/edit-lightplan.component.scss +93 -0
- package/app/plugins/core3d/components/lightplan/lightplan.component.d.ts +60 -0
- package/app/plugins/core3d/components/lightplan/lightplan.component.scss +102 -0
- package/app/plugins/core3d/components/scene-options/scene-options.component.d.ts +17 -0
- package/app/plugins/core3d/components/scene-options/scene-options.component.scss +54 -0
- package/app/plugins/core3d/core/angles.d.ts +8 -0
- package/app/plugins/core3d/core/corner-utils.d.ts +8 -0
- package/app/plugins/core3d/core/dimensioning.d.ts +19 -0
- package/app/plugins/core3d/core/utils.d.ts +147 -0
- package/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.d.ts +49 -0
- package/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.scss +3 -0
- package/app/plugins/core3d/core3d/core3d.component.d.ts +76 -0
- package/app/plugins/core3d/core3d/core3d.component.scss +27 -0
- package/app/plugins/core3d/core3d.module.d.ts +38 -0
- package/app/plugins/core3d/directive/scene.directive.d.ts +26 -0
- package/app/plugins/core3d/enum/ar-feature.enum.d.ts +12 -0
- package/app/plugins/core3d/enum/direction.enum.d.ts +8 -0
- package/app/plugins/core3d/enum/result-type.enum.d.ts +19 -0
- package/app/plugins/core3d/hud/bounding-measurement-box/bounding-box-measurement.d.ts +28 -0
- package/app/plugins/core3d/hud/bounding-measurement-box/box-measurement.d.ts +17 -0
- package/app/plugins/core3d/hud/bounding-measurement-box/door-or-window-box-measurement.d.ts +29 -0
- package/app/plugins/core3d/hud/bounding-measurement-box/measurable.d.ts +8 -0
- package/app/plugins/core3d/hud/bounding-measurement-box/measurement-utils.d.ts +9 -0
- package/app/plugins/core3d/hud/custom-shape-name-label.d.ts +15 -0
- package/app/plugins/core3d/hud/floor-indicator.d.ts +20 -0
- package/app/plugins/core3d/hud/furniture-measurements.d.ts +12 -0
- package/app/plugins/core3d/hud/indicator-factory.d.ts +7 -0
- package/app/plugins/core3d/hud/measurements.d.ts +46 -0
- package/app/plugins/core3d/hud/on-wall-measurements.d.ts +18 -0
- package/app/plugins/core3d/hud/opening-symbol.d.ts +11 -0
- package/app/plugins/core3d/hud/rotation-helper.d.ts +44 -0
- package/app/plugins/core3d/hud/utils.d.ts +3 -0
- package/app/plugins/core3d/interface/dragged-data.interface.d.ts +10 -0
- package/app/plugins/core3d/interface/edge-visibility-changes.d.ts +5 -0
- package/app/plugins/core3d/interface/model.interface.d.ts +42 -0
- package/app/plugins/core3d/interface/opening.interface.d.ts +6 -0
- package/app/plugins/core3d/interface/scene-option-button.interface.d.ts +17 -0
- package/app/plugins/core3d/interface/scene-update.interface.d.ts +5 -0
- package/app/plugins/core3d/items/base-item.d.ts +97 -0
- package/app/plugins/core3d/items/custom-cylinder-floor-item.d.ts +12 -0
- package/app/plugins/core3d/items/custom-cylinder-wall-item.d.ts +13 -0
- package/app/plugins/core3d/items/custom-floor-item.d.ts +9 -0
- package/app/plugins/core3d/items/custom-objects.d.ts +55 -0
- package/app/plugins/core3d/items/custom-shape-floor-item.d.ts +9 -0
- package/app/plugins/core3d/items/custom-shape-wall-item.d.ts +10 -0
- package/app/plugins/core3d/items/custom-wall-floor-item.d.ts +19 -0
- package/app/plugins/core3d/items/custom-wall-item.d.ts +9 -0
- package/app/plugins/core3d/items/factory.d.ts +24 -0
- package/app/plugins/core3d/items/floor-item.d.ts +13 -0
- package/app/plugins/core3d/items/floor-pin.d.ts +11 -0
- package/app/plugins/core3d/items/floor-plane-item.d.ts +30 -0
- package/app/plugins/core3d/items/furniture.d.ts +3 -0
- package/app/plugins/core3d/items/in-wall-floor-item.d.ts +9 -0
- package/app/plugins/core3d/items/item-group.d.ts +51 -0
- package/app/plugins/core3d/items/item-type.d.ts +21 -0
- package/app/plugins/core3d/items/item.d.ts +84 -0
- package/app/plugins/core3d/items/metadata.d.ts +74 -0
- package/app/plugins/core3d/items/on-floor-item.d.ts +8 -0
- package/app/plugins/core3d/items/pin.d.ts +5 -0
- package/app/plugins/core3d/items/three-mesh.d.ts +8 -0
- package/app/plugins/core3d/items/wall-floor-item.d.ts +8 -0
- package/app/plugins/core3d/items/wall-objects.d.ts +512 -0
- package/app/plugins/core3d/items/wall-pin.d.ts +8 -0
- package/app/plugins/core3d/model/ar-parameters.d.ts +9 -0
- package/app/plugins/core3d/model/box-skin-default.d.ts +5 -0
- package/app/plugins/core3d/model/collision-info.d.ts +6 -0
- package/app/plugins/core3d/model/custom-floor-group-result.d.ts +18 -0
- package/app/plugins/core3d/model/cylinder-skin-default.d.ts +4 -0
- package/app/plugins/core3d/model/dragged-status.d.ts +18 -0
- package/app/plugins/core3d/model/face.d.ts +11 -0
- package/app/plugins/core3d/model/geometry.d.ts +11 -0
- package/app/plugins/core3d/model/scene-event.enum.d.ts +10 -0
- package/app/plugins/core3d/model/skin.d.ts +15 -0
- package/app/plugins/core3d/model/threed-model.d.ts +47 -0
- package/app/plugins/core3d/service/ar.service.d.ts +121 -0
- package/app/plugins/core3d/service/camera.service.d.ts +70 -0
- package/app/plugins/core3d/service/ceiling.service.d.ts +25 -0
- package/app/plugins/core3d/service/controls.d.ts +11 -0
- package/app/plugins/core3d/service/drag-and-drop.service.d.ts +73 -0
- package/app/plugins/core3d/service/error-glow.service.d.ts +18 -0
- package/app/plugins/core3d/service/floor.service.d.ts +43 -0
- package/app/plugins/core3d/service/font.service.d.ts +10 -0
- package/app/plugins/core3d/service/hud.service.d.ts +79 -0
- package/app/plugins/core3d/service/intersection.service.d.ts +10 -0
- package/app/plugins/core3d/service/item-group.service.d.ts +33 -0
- package/app/plugins/core3d/service/item.service.d.ts +37 -0
- package/app/plugins/core3d/service/light-presets.service.d.ts +46 -0
- package/app/plugins/core3d/service/lights.service.d.ts +38 -0
- package/app/plugins/core3d/service/message-board.service.d.ts +18 -0
- package/app/plugins/core3d/service/models.service.d.ts +37 -0
- package/app/plugins/core3d/service/outline.service.d.ts +40 -0
- package/app/plugins/core3d/service/rotation.service.d.ts +57 -0
- package/app/plugins/core3d/service/scene-event.service.d.ts +131 -0
- package/app/plugins/core3d/service/scene-options.service.d.ts +11 -0
- package/app/plugins/core3d/service/scene.service.d.ts +74 -0
- package/app/plugins/core3d/service/vr.service.d.ts +44 -0
- package/app/plugins/core3d/service/wall-measurements.service.d.ts +23 -0
- package/app/plugins/core3d/service/xr.service.d.ts +56 -0
- package/app/plugins/core3d/textures/DepthDataTexture.d.ts +5 -0
- package/app/plugins/core3d/walkthrough-camera-controls/walkthrough-camera-controls.component.d.ts +19 -0
- package/app/plugins/core3d/walkthrough-camera-controls/walkthrough-camera-controls.component.scss +7 -0
- package/app/plugins/furniture-manager/furniture-library/furniture-library.component.d.ts +27 -0
- package/app/plugins/furniture-manager/furniture-library/furniture-library.component.scss +20 -0
- package/app/plugins/furniture-manager/furniture-manager/furniture-manager.component.d.ts +91 -0
- package/app/plugins/furniture-manager/furniture-manager/furniture-manager.component.scss +57 -0
- package/app/plugins/furniture-manager/furniture-manager.module.d.ts +23 -0
- package/app/plugins/help/help/help.component.d.ts +21 -0
- package/app/plugins/help/help/help.component.scss +0 -0
- package/app/plugins/help/help-dialog/help-dialog.component.d.ts +20 -0
- package/app/plugins/help/help-dialog/help-dialog.component.scss +28 -0
- package/app/plugins/help/help.module.d.ts +12 -0
- package/app/plugins/lite-selector/lite-selector/component/animation/animation.component.d.ts +19 -0
- package/app/plugins/lite-selector/lite-selector/component/animation/animation.component.scss +0 -0
- package/app/plugins/lite-selector/lite-selector/component/answer-card/answer-card.component.d.ts +41 -0
- package/app/plugins/lite-selector/lite-selector/component/answer-card/answer-card.component.scss +25 -0
- package/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.d.ts +72 -0
- package/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.scss +146 -0
- package/app/plugins/lite-selector/lite-selector/component/color-filter/color-filter.component.d.ts +19 -0
- package/app/plugins/lite-selector/lite-selector/component/color-filter/color-filter.component.scss +37 -0
- package/app/plugins/lite-selector/lite-selector/component/customizer/customizer.component.d.ts +28 -0
- package/app/plugins/lite-selector/lite-selector/component/customizer/customizer.component.scss +127 -0
- package/app/plugins/lite-selector/lite-selector/component/image-zoom/image-zoom.component.d.ts +9 -0
- package/app/plugins/lite-selector/lite-selector/component/image-zoom/image-zoom.component.scss +47 -0
- package/app/plugins/lite-selector/lite-selector/component/selections-summary/selections-summary-line.component.d.ts +31 -0
- package/app/plugins/lite-selector/lite-selector/component/selections-summary/selections-summary-line.component.scss +11 -0
- package/app/plugins/lite-selector/lite-selector/component/selections-summary/selections-summary.component.d.ts +38 -0
- package/app/plugins/lite-selector/lite-selector/component/selections-summary/selections-summary.component.scss +80 -0
- package/app/plugins/lite-selector/lite-selector/component/tag-filter/tag-filter.component.d.ts +8 -0
- package/app/plugins/lite-selector/lite-selector/component/tag-filter/tag-filter.component.scss +10 -0
- package/app/plugins/lite-selector/lite-selector/lite-selector.component.d.ts +40 -0
- package/app/plugins/lite-selector/lite-selector/lite-selector.component.scss +10 -0
- package/app/plugins/lite-selector/lite-selector/service/customizer.service.d.ts +44 -0
- package/app/plugins/lite-selector/lite-selector.module.d.ts +22 -0
- package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +57 -0
- package/app/plugins/model-uploader/model-previewer/model-preview.component.scss +75 -0
- package/app/plugins/model-uploader/model-uploader/model-upload.component.scss +34 -0
- package/app/plugins/model-uploader/model-uploader/model-uploader.component.d.ts +23 -0
- package/app/plugins/model-uploader/model-uploader.module.d.ts +16 -0
- package/app/plugins/plugin-interface.d.ts +5 -0
- package/app/plugins/plugins.module.d.ts +15 -0
- package/app/plugins/presets/presets/presets.component.d.ts +22 -0
- package/app/plugins/presets/presets/presets.component.scss +0 -0
- package/app/plugins/presets/presets.module.d.ts +10 -0
- package/app/plugins/product-catalog/own-collection-catalog/product-own-collection.component.d.ts +19 -0
- package/app/plugins/product-catalog/own-collection-catalog/product-own-collection.component.scss +4 -0
- package/app/plugins/product-catalog/own-collection-catalog/product-own-collection.module.d.ts +10 -0
- package/app/plugins/product-catalog/product-catalog/product-catalog.component.d.ts +70 -0
- package/app/plugins/product-catalog/product-catalog/product-catalog.component.scss +128 -0
- package/app/plugins/product-catalog/product-catalog.module.d.ts +16 -0
- package/app/plugins/render/enum/connection-status.d.ts +6 -0
- package/app/plugins/render/enum/render-modes.d.ts +5 -0
- package/app/plugins/render/enum/render-status.d.ts +7 -0
- package/app/plugins/render/model/camera-position.d.ts +7 -0
- package/app/plugins/render/model/image-size.d.ts +6 -0
- package/app/plugins/render/model/lightning.d.ts +5 -0
- package/app/plugins/render/model/render-data.d.ts +15 -0
- package/app/plugins/render/model/render-environment.d.ts +6 -0
- package/app/plugins/render/model/render-parameters.d.ts +15 -0
- package/app/plugins/render/model/render-queue-item.d.ts +14 -0
- package/app/plugins/render/model/render-settings.d.ts +9 -0
- package/app/plugins/render/model/render.d.ts +14 -0
- package/app/plugins/render/render-controls/render-controls.component.d.ts +27 -0
- package/app/plugins/render/render-controls/render-controls.component.scss +51 -0
- package/app/plugins/render/render-dialog/render-dialog.component.d.ts +59 -0
- package/app/plugins/render/render-dialog/render-dialog.component.scss +320 -0
- package/app/plugins/render/render.module.d.ts +20 -0
- package/app/plugins/render/service/new-render.service.d.ts +65 -0
- package/app/plugins/render/service/render.service.d.ts +104 -0
- package/app/plugins/room-planner/components/appearance-section/appearance-section.component.d.ts +43 -0
- package/app/plugins/room-planner/components/appearance-section/appearance-section.component.scss +14 -0
- package/app/plugins/room-planner/components/color-picker/color-picker.component.d.ts +11 -0
- package/app/plugins/room-planner/components/color-picker/color-picker.component.scss +0 -0
- package/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.d.ts +49 -0
- package/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.scss +19 -0
- package/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.d.ts +49 -0
- package/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.scss +24 -0
- package/app/plugins/room-planner/components/dimension-input/dimension-input.component.d.ts +22 -0
- package/app/plugins/room-planner/components/dimension-input/dimension-input.component.scss +14 -0
- package/app/plugins/room-planner/components/edit-apply/edit-apply.component.d.ts +19 -0
- package/app/plugins/room-planner/components/edit-apply/edit-apply.component.scss +0 -0
- package/app/plugins/room-planner/components/edit-parameter/edit-parameter.component.d.ts +28 -0
- package/app/plugins/room-planner/components/edit-parameter/edit-parameter.component.scss +23 -0
- package/app/plugins/room-planner/components/file-drop/file-drop.component.d.ts +21 -0
- package/app/plugins/room-planner/components/file-drop/file-drop.component.scss +31 -0
- package/app/plugins/room-planner/components/floorplanner/const/defaults.d.ts +48 -0
- package/app/plugins/room-planner/components/floorplanner/floorplanner-mode.d.ts +9 -0
- package/app/plugins/room-planner/components/floorplanner/floorplanner.component.d.ts +172 -0
- package/app/plugins/room-planner/components/floorplanner/floorplanner.component.scss +48 -0
- package/app/plugins/room-planner/components/floorplanner/service/floorplan.service.d.ts +103 -0
- package/app/plugins/room-planner/components/floorplanner/service/room.service.d.ts +75 -0
- package/app/plugins/room-planner/components/floorplanner/snap-indicator-mode.d.ts +5 -0
- package/app/plugins/room-planner/components/floorplanner/utils/context.utils.d.ts +5 -0
- package/app/plugins/room-planner/components/object-library/object-library.component.d.ts +23 -0
- package/app/plugins/room-planner/components/object-library/object-library.component.scss +43 -0
- package/app/plugins/room-planner/components/ral-color-picker/ral-color-picker.component.d.ts +22 -0
- package/app/plugins/room-planner/components/ral-color-picker/ral-color-picker.component.scss +55 -0
- package/app/plugins/room-planner/components/rgb-color-picker/rgb-color-picker.component.d.ts +11 -0
- package/app/plugins/room-planner/components/rgb-color-picker/rgb-color-picker.component.scss +10 -0
- package/app/plugins/room-planner/components/selected-floor/selected-floor.component.d.ts +16 -0
- package/app/plugins/room-planner/components/selected-floor/selected-floor.component.scss +16 -0
- package/app/plugins/room-planner/components/selected-object/selected-object.component.d.ts +44 -0
- package/app/plugins/room-planner/components/selected-object/selected-object.component.scss +21 -0
- package/app/plugins/room-planner/components/selected-threed-object/selected-threed-object.component.d.ts +57 -0
- package/app/plugins/room-planner/components/selected-threed-object/selected-threed-object.component.scss +35 -0
- package/app/plugins/room-planner/components/selected-wall/selected-wall.component.d.ts +45 -0
- package/app/plugins/room-planner/components/selected-wall/selected-wall.component.scss +31 -0
- package/app/plugins/room-planner/components/settings/settings-options.component.d.ts +18 -0
- package/app/plugins/room-planner/components/settings/settings-options.component.scss +46 -0
- package/app/plugins/room-planner/components/settings/settings.component.d.ts +63 -0
- package/app/plugins/room-planner/components/settings/settings.component.scss +42 -0
- package/app/plugins/room-planner/components/texture-editor/texture-editor.component.d.ts +125 -0
- package/app/plugins/room-planner/components/texture-editor/texture-editor.component.scss +38 -0
- package/app/plugins/room-planner/components/texture-picker/texture-picker.component.d.ts +25 -0
- package/app/plugins/room-planner/components/texture-picker/texture-picker.component.scss +49 -0
- package/app/plugins/room-planner/components/wall-length-input/wall-length-input.component.d.ts +16 -0
- package/app/plugins/room-planner/components/wall-length-input/wall-length-input.component.scss +5 -0
- package/app/plugins/room-planner/const/key.d.ts +10 -0
- package/app/plugins/room-planner/room-planner/room-planner.component.d.ts +236 -0
- package/app/plugins/room-planner/room-planner/room-planner.component.scss +167 -0
- package/app/plugins/room-planner/room-planner.module.d.ts +59 -0
- package/app/plugins/threed-in-photo/components/threed-in-photo-scene/threed-in-photo-scene.component.d.ts +18 -0
- package/app/plugins/threed-in-photo/components/threed-in-photo-scene/threed-in-photo-scene.component.scss +7 -0
- package/app/plugins/threed-in-photo/components/upload-image/upload-image.component.d.ts +18 -0
- package/app/plugins/threed-in-photo/components/upload-image/upload-image.component.scss +7 -0
- package/app/plugins/threed-in-photo/components/view-control/view-control.component.d.ts +30 -0
- package/app/plugins/threed-in-photo/components/view-control/view-control.component.scss +40 -0
- package/app/plugins/threed-in-photo/models/model-output.d.ts +14 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-build.service.d.ts +37 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-connection.service.d.ts +8 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-control.service.d.ts +14 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-event-listeners.service.d.ts +15 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-event.service.d.ts +9 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-initializer.service.d.ts +27 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-render.service.d.ts +20 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-scene.service.d.ts +12 -0
- package/app/plugins/threed-in-photo/services/threed-in-photo-view.service.d.ts +8 -0
- package/app/plugins/threed-in-photo/threed-in-photo.module.d.ts +17 -0
- package/app/plugins/threed-in-photo/utils/utils.d.ts +6 -0
- package/app/plugins/threedselector/element-buttons/element-buttons.component.d.ts +31 -0
- package/app/plugins/threedselector/element-buttons/element-buttons.component.scss +61 -0
- package/app/plugins/threedselector/element-slider/element-slider.component.d.ts +14 -0
- package/app/plugins/threedselector/element-slider/element-slider.component.scss +47 -0
- package/app/plugins/threedselector/element-toolbar/element-toolbar.component.d.ts +26 -0
- package/app/plugins/threedselector/element-toolbar/element-toolbar.component.scss +142 -0
- package/app/plugins/threedselector/threedselector/model/furniture-connected-part-integration.d.ts +7 -0
- package/app/plugins/threedselector/threedselector/model/furniture-integration.d.ts +12 -0
- package/app/plugins/threedselector/threedselector/model/furniture-part-integration.d.ts +14 -0
- package/app/plugins/threedselector/threedselector/model/furniture-part-variation.d.ts +7 -0
- package/app/plugins/threedselector/threedselector/model/material.d.ts +41 -0
- package/app/plugins/threedselector/threedselector/model/variation-settings.d.ts +53 -0
- package/app/plugins/threedselector/threedselector/model/variation.d.ts +11 -0
- package/app/plugins/threedselector/threedselector/service/animation.service.d.ts +22 -0
- package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +186 -0
- package/app/plugins/threedselector/threedselector/service/dimensions.service.d.ts +33 -0
- package/app/plugins/threedselector/threedselector/service/element.service.d.ts +45 -0
- package/app/plugins/threedselector/threedselector/service/light-creation.service.d.ts +9 -0
- package/app/plugins/threedselector/threedselector/service/load-furniture.service.d.ts +74 -0
- package/app/plugins/threedselector/threedselector/service/resize.service.d.ts +13 -0
- package/app/plugins/threedselector/threedselector/service/third-party-model.service.d.ts +66 -0
- package/app/plugins/threedselector/threedselector/service/threedselector.service.d.ts +22 -0
- package/app/plugins/threedselector/threedselector/service/variation-cache.service.d.ts +23 -0
- package/app/plugins/threedselector/threedselector/service/variation.service.d.ts +23 -0
- package/app/plugins/threedselector/threedselector/threedselector.component.d.ts +188 -0
- package/app/plugins/threedselector/threedselector/threedselector.component.scss +82 -0
- package/app/plugins/threedselector/threedselector/utils/asset.utils.d.ts +19 -0
- package/app/plugins/threedselector/threedselector/utils/image.utils.d.ts +6 -0
- package/app/plugins/threedselector/threedselector/utils/json-parser.utils.d.ts +9 -0
- package/app/plugins/threedselector/threedselector/utils/scene-3d.utils.d.ts +10 -0
- package/app/plugins/threedselector/threedselector.module.d.ts +31 -0
- package/app/plugins/toolbar/download-dialog/download-dialog.component.d.ts +14 -0
- package/app/plugins/toolbar/download-dialog/download-dialog.component.scss +22 -0
- package/app/plugins/toolbar/draw-dialog/draw-dialog.component.d.ts +66 -0
- package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +97 -0
- package/app/plugins/toolbar/edit-preset-dialog/edit-preset-dialog.component.d.ts +8 -0
- package/app/plugins/toolbar/edit-preset-dialog/edit-preset-dialog.component.scss +0 -0
- package/app/plugins/toolbar/landing-screen-modal/landing-screen-modal.component.d.ts +36 -0
- package/app/plugins/toolbar/landing-screen-modal/landing-screen-modal.component.scss +71 -0
- package/app/plugins/toolbar/load-from-cloud-dialog/load-from-cloud-dialog.component.d.ts +36 -0
- package/app/plugins/toolbar/load-from-cloud-dialog/load-from-cloud-dialog.component.scss +3 -0
- package/app/plugins/toolbar/open-dialog/open-dialog.component.d.ts +23 -0
- package/app/plugins/toolbar/open-dialog/open-dialog.component.scss +0 -0
- package/app/plugins/toolbar/pdf-crop-dialog/pdf-crop-dialog.component.d.ts +34 -0
- package/app/plugins/toolbar/pdf-crop-dialog/pdf-crop-dialog.component.scss +17 -0
- package/app/plugins/toolbar/save-dialog/save-dialog.component.d.ts +38 -0
- package/app/plugins/toolbar/save-dialog/save-dialog.component.scss +33 -0
- package/app/plugins/toolbar/saved-dialog/saved-dialog.component.d.ts +24 -0
- package/app/plugins/toolbar/saved-dialog/saved-dialog.component.scss +7 -0
- package/app/plugins/toolbar/toolbar/limited-mode-message-component/limited-mode-message.component.d.ts +9 -0
- package/app/plugins/toolbar/toolbar/limited-mode-message-component/limited-mode-message.component.scss +10 -0
- package/app/plugins/toolbar/toolbar/toolbar.component.d.ts +101 -0
- package/app/plugins/toolbar/toolbar/toolbar.component.scss +251 -0
- package/app/plugins/toolbar/toolbar.module.d.ts +44 -0
- package/app/root/root.component.scss +0 -0
- package/app/service/dynamic-script.service.d.ts +8 -0
- package/app/service/google-tag-manager.service.d.ts +19 -0
- package/app/service/local-storage.service.d.ts +18 -0
- package/app/service/service-locator.service.d.ts +4 -0
- package/app/shared/base64-images.d.ts +4 -0
- package/app/shared/button-elevation/button-elevation.component.d.ts +40 -0
- package/app/shared/button-elevation/button-elevation.component.scss +109 -0
- package/app/shared/button-elevation/button-elevation.module.d.ts +16 -0
- package/app/shared/camera-settings-dialog/camera-settings-dialog.component.d.ts +24 -0
- package/app/shared/camera-settings-dialog/camera-settings-dialog.component.scss +30 -0
- package/app/shared/camera-settings-dialog/camera-settings-dialog.module.d.ts +16 -0
- package/app/shared/category-library/category-library.component.d.ts +10 -0
- package/app/shared/category-library/category-library.component.scss +16 -0
- package/app/shared/category-library/category-library.module.d.ts +11 -0
- package/app/shared/context-menu/context-menu.component.d.ts +12 -0
- package/app/shared/context-menu/context-menu.component.scss +25 -0
- package/app/shared/context-menu/context-menu.module.d.ts +14 -0
- package/app/shared/context-menu/item-context-menu/item-context-menu.component.d.ts +30 -0
- package/app/shared/context-menu/item-context-menu/item-context-menu.component.scss +32 -0
- package/app/shared/dialog/dialog.component.d.ts +26 -0
- package/app/shared/dialog/dialog.component.scss +25 -0
- package/app/shared/dialog/dialog.module.d.ts +12 -0
- package/app/shared/dialog/enum/dialog-type.enum.d.ts +6 -0
- package/app/shared/dialog/interface/dialog-config.interface.d.ts +7 -0
- package/app/shared/dialog/service/dialog.service.d.ts +11 -0
- package/app/shared/error-dialog/error-dialog.component.d.ts +11 -0
- package/app/shared/error-dialog/error-dialog.component.scss +0 -0
- package/app/shared/error-dialog/error-dialog.module.d.ts +10 -0
- package/app/shared/export-dialog/export-dialog.component.d.ts +11 -0
- package/app/shared/export-dialog/export-dialog.component.scss +19 -0
- package/app/shared/export-dialog/export-dialog.module.d.ts +11 -0
- package/app/shared/info-dialog/info-dialog.component.d.ts +9 -0
- package/app/shared/info-dialog/info-dialog.component.scss +15 -0
- package/app/shared/info-dialog/info-dialog.module.d.ts +12 -0
- package/app/shared/loader/hd-loader.component.d.ts +6 -0
- package/app/shared/loader/hd-loader.component.scss +44 -0
- package/app/shared/loader/hd-loader.module.d.ts +9 -0
- package/app/shared/loader/loader.component.scss +42 -0
- package/app/shared/loading-overlay/dialog/loading-overlay-dialog.component.d.ts +8 -0
- package/app/shared/loading-overlay/dialog/loading-overlay-dialog.component.scss +3 -0
- package/app/shared/loading-overlay/loading-overlay.component.d.ts +19 -0
- package/app/shared/loading-overlay/loading-overlay.component.scss +9 -0
- package/app/shared/loading-overlay/loading-overlay.module.d.ts +11 -0
- package/app/shared/model-dialog/model-dialog-furniture-list.component.d.ts +35 -0
- package/app/shared/model-dialog/model-dialog-furniture-list.component.scss +221 -0
- package/app/shared/model-dialog/model-dialog.component.d.ts +31 -0
- package/app/shared/model-dialog/model-dialog.component.scss +22 -0
- package/app/shared/model-dialog/model-dialog.module.d.ts +16 -0
- package/app/shared/progress-bar/progress-bar.component.d.ts +9 -0
- package/app/shared/progress-bar/progress-bar.component.scss +11 -0
- package/app/shared/progress-bar/progress-bar.module.d.ts +9 -0
- package/app/shared/register-dialog/register-dialog.component.d.ts +26 -0
- package/app/shared/register-dialog/register-dialog.component.scss +21 -0
- package/app/shared/screen-size-analysis/device-size-type.d.ts +5 -0
- package/app/shared/screen-size-analysis/navigator-type.enum.d.ts +4 -0
- package/app/shared/screen-size-analysis/screen-size-analysis.service.d.ts +27 -0
- package/app/shared/screen-size-analysis/screen-size-config.d.ts +5 -0
- package/app/shared/screen-size-analysis/screen-size-info.d.ts +10 -0
- package/app/shared/slider-input/slider-input.component.d.ts +13 -0
- package/app/shared/slider-input/slider-input.component.scss +12 -0
- package/app/shared/slider-input/slider-input.module.d.ts +13 -0
- package/app/shared/toolbar-icon/toolbar-icon.component.d.ts +12 -0
- package/app/shared/toolbar-icon/toolbar-icon.component.scss +8 -0
- package/app/shared/toolbar-icon/toolbar-icon.module.d.ts +11 -0
- package/app/shared/zoom-controls/zoom-controls.component.d.ts +16 -0
- package/app/shared/zoom-controls/zoom-controls.component.scss +0 -0
- package/app/shared/zoom-controls/zoom-controls.module.d.ts +10 -0
- package/assets/.gitkeep +0 -0
- package/assets/3d-models/pin.mtl +12 -0
- package/assets/3d-models/pin.obj +1083 -0
- package/assets/colors/ral.json +2345 -0
- package/assets/cursors/pencil.png +0 -0
- package/assets/cursors/pencil.svg +1 -0
- package/assets/fonts/helvetiker_regular.ttf +0 -0
- package/assets/fonts/helvetiker_regular.typeface.json +1 -0
- package/assets/fonts/helvetiker_regular.woff +0 -0
- package/assets/fonts/optimer_regular.typeface.json +1 -0
- package/assets/hdri/TSStudio3Point.hdr +135 -0
- package/assets/hdri/ground_MASK.jpg +0 -0
- package/assets/hdri/std_env_v2_A.hdr +0 -0
- package/assets/hdri/std_env_v2_B.hdr +0 -0
- package/assets/hdri/std_env_v2_C.hdr +0 -0
- package/assets/hdri/std_env_v2_D.hdr +0 -0
- package/assets/hdri/std_env_v2_E.hdr +46 -0
- package/assets/icons/add-button.svg +10 -0
- package/assets/icons/ar_circle.svg +7 -0
- package/assets/icons/arrow_point_down.svg +6 -0
- package/assets/icons/brush.svg +1 -0
- package/assets/icons/cart-shopping-regular.svg +1 -0
- package/assets/icons/check.svg +6 -0
- package/assets/icons/cit_powered_white.svg +92 -0
- package/assets/icons/conf_frame.svg +1 -0
- package/assets/icons/conf_plane.svg +1 -0
- package/assets/icons/cross.svg +1 -0
- package/assets/icons/cube-outline.svg +1 -0
- package/assets/icons/cube-unfolded.svg +1 -0
- package/assets/icons/delete-button.svg +16 -0
- package/assets/icons/download.svg +4 -0
- package/assets/icons/edit-button.svg +18 -0
- package/assets/icons/google-cardboard-orange.svg +1 -0
- package/assets/icons/google-cardboard.svg +1 -0
- package/assets/icons/hand-pointer.svg +1 -0
- package/assets/icons/height_adjust.svg +1 -0
- package/assets/icons/magic-wand.svg +57 -0
- package/assets/icons/magnifier.svg +12 -0
- package/assets/icons/measurements.svg +1 -0
- package/assets/icons/move-phone-ar.svg +4 -0
- package/assets/icons/qrcode.svg +1 -0
- package/assets/icons/street-view-orange.svg +5 -0
- package/assets/icons/street-view.svg +6 -0
- package/assets/icons/swap-button.svg +12 -0
- package/assets/icons/tilt-phone.svg +29 -0
- package/assets/icons/triangle_down.svg +1 -0
- package/assets/icons/triangle_up.svg +1 -0
- package/assets/images/colijn-logo.webp +0 -0
- package/assets/images/favicon.ico +0 -0
- package/assets/images/favicon.png +0 -0
- package/assets/images/ione360-logo.webp +0 -0
- package/assets/images/logo.svg +35 -0
- package/assets/workers/indexedDB-web-worker.js +74 -0
- package/bundle-styles.scss +267 -0
- package/bundles/colijnit-homedecorator.umd.js +47374 -0
- package/bundles/colijnit-homedecorator.umd.js.map +1 -0
- package/colijnit-homedecorator.d.ts +5 -0
- package/environments/environment.d.ts +11 -0
- package/esm2015/app/app.version.js +9 -0
- package/esm2015/app/core/components/debug/debug.component.js +57 -0
- package/esm2015/app/core/components/error/error-message.component.js +55 -0
- package/esm2015/app/core/components/tooltip/tooltip.component.js +73 -0
- package/esm2015/app/core/const/dimensioning.js +28 -0
- package/esm2015/app/core/core.module.js +159 -0
- package/esm2015/app/core/directive/autofocus.directive.js +26 -0
- package/esm2015/app/core/directive/tooltip.directive.js +64 -0
- package/esm2015/app/core/directive/visibility-observer-master.directive.js +53 -0
- package/esm2015/app/core/directive/visibility-observer.directive.js +54 -0
- package/esm2015/app/core/enum/configuration-key.enum.js +37 -0
- package/esm2015/app/core/enum/export-type.enum.js +7 -0
- package/esm2015/app/core/enum/google-tag-manager-event.enum.js +14 -0
- package/esm2015/app/core/enum/icon-name.enum.js +17 -0
- package/esm2015/app/core/enum/icon.enum.js +35 -0
- package/esm2015/app/core/enum/light.enum.js +9 -0
- package/esm2015/app/core/enum/message-type.enum.js +71 -0
- package/esm2015/app/core/enum/model-type.enum.js +8 -0
- package/esm2015/app/core/enum/output-encoding.enum.js +6 -0
- package/esm2015/app/core/enum/shadow-map-type.enum.js +8 -0
- package/esm2015/app/core/enum/user-role-type.enum.js +22 -0
- package/esm2015/app/core/enum/view-mode.enum.js +11 -0
- package/esm2015/app/core/enum/xr-mode.enum.js +6 -0
- package/esm2015/app/core/interface/adjustable-element.interface.js +2 -0
- package/esm2015/app/core/interface/category.interface.js +2 -0
- package/esm2015/app/core/interface/changes.interface.js +2 -0
- package/esm2015/app/core/interface/child-params.interface.js +2 -0
- package/esm2015/app/core/interface/configuration-data.interface.js +2 -0
- package/esm2015/app/core/interface/external-settings.interface.js +2 -0
- package/esm2015/app/core/interface/info-dialog-data.interface.js +2 -0
- package/esm2015/app/core/interface/light-preset.interface.js +2 -0
- package/esm2015/app/core/interface/loading-overlay-data.interface.js +2 -0
- package/esm2015/app/core/interface/media-resource.interface.js +2 -0
- package/esm2015/app/core/interface/message-with-payload.interface.js +2 -0
- package/esm2015/app/core/interface/message-without-payload.interface.js +2 -0
- package/esm2015/app/core/interface/preset.interface.js +2 -0
- package/esm2015/app/core/interface/selected-floor-event.interface.js +2 -0
- package/esm2015/app/core/interface/selected-wall-event.interface.js +2 -0
- package/esm2015/app/core/interface/texture.interface.js +2 -0
- package/esm2015/app/core/interface/toolbar-icon.interface.js +2 -0
- package/esm2015/app/core/model/ar-position-indicator.js +21 -0
- package/esm2015/app/core/model/camera-settings.js +14 -0
- package/esm2015/app/core/model/category.js +15 -0
- package/esm2015/app/core/model/custom-button.js +16 -0
- package/esm2015/app/core/model/error-message.js +9 -0
- package/esm2015/app/core/model/export-object.js +3 -0
- package/esm2015/app/core/model/from-intersection-observer.js +64 -0
- package/esm2015/app/core/model/homedecorator-settings-options.js +49 -0
- package/esm2015/app/core/model/homedecorator-settings.js +22 -0
- package/esm2015/app/core/model/icon.js +34 -0
- package/esm2015/app/core/model/light-preset.js +59 -0
- package/esm2015/app/core/model/light-properties.js +45 -0
- package/esm2015/app/core/model/media-resource.js +10 -0
- package/esm2015/app/core/model/preset.js +15 -0
- package/esm2015/app/core/model/ral-color.js +2 -0
- package/esm2015/app/core/model/shadow-properties.js +10 -0
- package/esm2015/app/core/model/texture-type.js +8 -0
- package/esm2015/app/core/model/texture.js +58 -0
- package/esm2015/app/core/model/three-object.js +2 -0
- package/esm2015/app/core/model/toast-type.js +7 -0
- package/esm2015/app/core/model/toast.js +7 -0
- package/esm2015/app/core/model/xr-reticle.js +87 -0
- package/esm2015/app/core/pipe/append.pipe.js +21 -0
- package/esm2015/app/core/pipe/cm-to-measure.pipe.js +20 -0
- package/esm2015/app/core/pipe/filter.pipe.js +20 -0
- package/esm2015/app/core/pipe/keys.pipe.js +22 -0
- package/esm2015/app/core/pipe/localize.pipe.js +28 -0
- package/esm2015/app/core/pipe/m-to-measure.pipe.js +20 -0
- package/esm2015/app/core/pipe/prepend.pipe.js +21 -0
- package/esm2015/app/core/pipe/scm-to-measure.pipe.js +20 -0
- package/esm2015/app/core/pipe/sm-to-measure.pipe.js +20 -0
- package/esm2015/app/core/pipe/strip-html.pipe.js +17 -0
- package/esm2015/app/core/service/3dm-api.js +246 -0
- package/esm2015/app/core/service/app-state.service.js +128 -0
- package/esm2015/app/core/service/configuration.service.js +72 -0
- package/esm2015/app/core/service/debug.service.js +45 -0
- package/esm2015/app/core/service/dimensioning.service.js +45 -0
- package/esm2015/app/core/service/dynamic-camera.service.js +107 -0
- package/esm2015/app/core/service/environment.service.js +17 -0
- package/esm2015/app/core/service/error.service.js +30 -0
- package/esm2015/app/core/service/export.service.js +97 -0
- package/esm2015/app/core/service/file.service.js +44 -0
- package/esm2015/app/core/service/homedecorator-app-event.service.js +27 -0
- package/esm2015/app/core/service/homedecorator-app.service.js +201 -0
- package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +455 -0
- package/esm2015/app/core/service/homedecorator-connector.service.js +604 -0
- package/esm2015/app/core/service/homedecorator-dictionary.service.js +73 -0
- package/esm2015/app/core/service/homedecorator-icon-cache.service.js +43 -0
- package/esm2015/app/core/service/homedecorator-settings.service.js +146 -0
- package/esm2015/app/core/service/homedecorator.service.js +37 -0
- package/esm2015/app/core/service/integration.service.js +56 -0
- package/esm2015/app/core/service/item-serialization.service.js +188 -0
- package/esm2015/app/core/service/json-utils.service.js +56 -0
- package/esm2015/app/core/service/message-bus.service.js +28 -0
- package/esm2015/app/core/service/permanent-store.service.js +135 -0
- package/esm2015/app/core/service/presets.service.js +297 -0
- package/esm2015/app/core/service/progress.service.js +74 -0
- package/esm2015/app/core/service/ral.service.js +98 -0
- package/esm2015/app/core/service/skip-button-info.service.js +60 -0
- package/esm2015/app/core/service/toast.service.js +23 -0
- package/esm2015/app/core/service/utils.service.js +566 -0
- package/esm2015/app/core/service/view-mode.service.js +61 -0
- package/esm2015/app/core/service/web-worker.service.js +44 -0
- package/esm2015/app/core/utils/clone-utils.js +41 -0
- package/esm2015/app/core/utils/color.utils.js +20 -0
- package/esm2015/app/core/utils/file.utils.js +234 -0
- package/esm2015/app/core/utils/function/is-empty.function.js +5 -0
- package/esm2015/app/core/utils/function/is-nill.function.js +5 -0
- package/esm2015/app/core/utils/material.utils.js +407 -0
- package/esm2015/app/core/utils/object.utils.js +191 -0
- package/esm2015/app/core/utils/relative-position.utils.js +74 -0
- package/esm2015/app/core/utils/variation-utils.js +314 -0
- package/esm2015/app/core/workers/enum/web-worker-message.enum.js +6 -0
- package/esm2015/app/core/workers/enum/web-worker-type.enum.js +5 -0
- package/esm2015/app/development/components/selected-child-material-texture.component.js +467 -0
- package/esm2015/app/development/components/selected-child-material.component.js +863 -0
- package/esm2015/app/development/components/selected-child.component.js +64 -0
- package/esm2015/app/development/components/selected-object-base.js +127 -0
- package/esm2015/app/development/components/selected-object.component.js +98 -0
- package/esm2015/app/development/development.module.js +74 -0
- package/esm2015/app/development/directive/development.directive.js +92 -0
- package/esm2015/app/development/service/development.service.js +212 -0
- package/esm2015/app/homedecorator.component.js +285 -0
- package/esm2015/app/homedecorator.module.js +60 -0
- package/esm2015/app/plugins/core3d/collision-manager/collision-manager.service.js +119 -0
- package/esm2015/app/plugins/core3d/collision-manager/floorplan-collision-detection.js +158 -0
- package/esm2015/app/plugins/core3d/collision-manager/snapping-collision.service.js +234 -0
- package/esm2015/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-buttons/ar-gui-buttons.component.js +36 -0
- package/esm2015/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-configurator/ar-gui-configurator.component.js +49 -0
- package/esm2015/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-context-menu/ar-gui-context-menu.component.js +77 -0
- package/esm2015/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-elements/ar-gui-notifications/ar-gui-notifications.component.js +26 -0
- package/esm2015/app/plugins/core3d/components/ar-gui/ar-gui-root/ar-gui-root.component.js +46 -0
- package/esm2015/app/plugins/core3d/components/lightplan/edit-light/edit-light.component.js +197 -0
- package/esm2015/app/plugins/core3d/components/lightplan/edit-lightplan/edit-lightplan.component.js +197 -0
- package/esm2015/app/plugins/core3d/components/lightplan/lightplan.component.js +512 -0
- package/esm2015/app/plugins/core3d/components/scene-options/scene-options.component.js +88 -0
- package/esm2015/app/plugins/core3d/core/angles.js +19 -0
- package/esm2015/app/plugins/core3d/core/corner-utils.js +9 -0
- package/esm2015/app/plugins/core3d/core/dimensioning.js +79 -0
- package/esm2015/app/plugins/core3d/core/utils.js +606 -0
- package/esm2015/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.js +289 -0
- package/esm2015/app/plugins/core3d/core3d/core3d.component.js +243 -0
- package/esm2015/app/plugins/core3d/core3d.module.js +201 -0
- package/esm2015/app/plugins/core3d/directive/scene.directive.js +41 -0
- package/esm2015/app/plugins/core3d/enum/ar-feature.enum.js +14 -0
- package/esm2015/app/plugins/core3d/enum/direction.enum.js +10 -0
- package/esm2015/app/plugins/core3d/enum/result-type.enum.js +21 -0
- package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/bounding-box-measurement.js +99 -0
- package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/box-measurement.js +35 -0
- package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/door-or-window-box-measurement.js +95 -0
- package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/measurable.js +2 -0
- package/esm2015/app/plugins/core3d/hud/bounding-measurement-box/measurement-utils.js +22 -0
- package/esm2015/app/plugins/core3d/hud/custom-shape-name-label.js +31 -0
- package/esm2015/app/plugins/core3d/hud/floor-indicator.js +80 -0
- package/esm2015/app/plugins/core3d/hud/furniture-measurements.js +44 -0
- package/esm2015/app/plugins/core3d/hud/indicator-factory.js +49 -0
- package/esm2015/app/plugins/core3d/hud/measurements.js +165 -0
- package/esm2015/app/plugins/core3d/hud/on-wall-measurements.js +80 -0
- package/esm2015/app/plugins/core3d/hud/opening-symbol.js +74 -0
- package/esm2015/app/plugins/core3d/hud/rotation-helper.js +263 -0
- package/esm2015/app/plugins/core3d/hud/utils.js +30 -0
- package/esm2015/app/plugins/core3d/interface/dragged-data.interface.js +2 -0
- package/esm2015/app/plugins/core3d/interface/edge-visibility-changes.js +2 -0
- package/esm2015/app/plugins/core3d/interface/model.interface.js +2 -0
- package/esm2015/app/plugins/core3d/interface/opening.interface.js +2 -0
- package/esm2015/app/plugins/core3d/interface/scene-option-button.interface.js +6 -0
- package/esm2015/app/plugins/core3d/interface/scene-update.interface.js +2 -0
- package/esm2015/app/plugins/core3d/items/base-item.js +233 -0
- package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +41 -0
- package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +45 -0
- package/esm2015/app/plugins/core3d/items/custom-floor-item.js +11 -0
- package/esm2015/app/plugins/core3d/items/custom-objects.js +295 -0
- package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +45 -0
- package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +37 -0
- package/esm2015/app/plugins/core3d/items/custom-wall-floor-item.js +84 -0
- package/esm2015/app/plugins/core3d/items/custom-wall-item.js +11 -0
- package/esm2015/app/plugins/core3d/items/factory.js +130 -0
- package/esm2015/app/plugins/core3d/items/floor-item.js +29 -0
- package/esm2015/app/plugins/core3d/items/floor-pin.js +31 -0
- package/esm2015/app/plugins/core3d/items/floor-plane-item.js +95 -0
- package/esm2015/app/plugins/core3d/items/furniture.js +2 -0
- package/esm2015/app/plugins/core3d/items/in-wall-floor-item.js +14 -0
- package/esm2015/app/plugins/core3d/items/item-group.js +160 -0
- package/esm2015/app/plugins/core3d/items/item-type.js +23 -0
- package/esm2015/app/plugins/core3d/items/item.js +388 -0
- package/esm2015/app/plugins/core3d/items/metadata.js +2 -0
- package/esm2015/app/plugins/core3d/items/on-floor-item.js +10 -0
- package/esm2015/app/plugins/core3d/items/pin.js +2 -0
- package/esm2015/app/plugins/core3d/items/three-mesh.js +17 -0
- package/esm2015/app/plugins/core3d/items/wall-floor-item.js +9 -0
- package/esm2015/app/plugins/core3d/items/wall-objects.js +2381 -0
- package/esm2015/app/plugins/core3d/items/wall-pin.js +25 -0
- package/esm2015/app/plugins/core3d/model/ar-parameters.js +12 -0
- package/esm2015/app/plugins/core3d/model/box-skin-default.js +17 -0
- package/esm2015/app/plugins/core3d/model/collision-info.js +2 -0
- package/esm2015/app/plugins/core3d/model/custom-floor-group-result.js +13 -0
- package/esm2015/app/plugins/core3d/model/cylinder-skin-default.js +14 -0
- package/esm2015/app/plugins/core3d/model/dragged-status.js +51 -0
- package/esm2015/app/plugins/core3d/model/face.js +18 -0
- package/esm2015/app/plugins/core3d/model/geometry.js +52 -0
- package/esm2015/app/plugins/core3d/model/scene-event.enum.js +12 -0
- package/esm2015/app/plugins/core3d/model/skin.js +2 -0
- package/esm2015/app/plugins/core3d/model/threed-model.js +49 -0
- package/esm2015/app/plugins/core3d/service/ar.service.js +844 -0
- package/esm2015/app/plugins/core3d/service/camera.service.js +340 -0
- package/esm2015/app/plugins/core3d/service/ceiling.service.js +104 -0
- package/esm2015/app/plugins/core3d/service/controls.js +763 -0
- package/esm2015/app/plugins/core3d/service/drag-and-drop.service.js +369 -0
- package/esm2015/app/plugins/core3d/service/error-glow.service.js +131 -0
- package/esm2015/app/plugins/core3d/service/floor.service.js +229 -0
- package/esm2015/app/plugins/core3d/service/font.service.js +27 -0
- package/esm2015/app/plugins/core3d/service/hud.service.js +404 -0
- package/esm2015/app/plugins/core3d/service/intersection.service.js +55 -0
- package/esm2015/app/plugins/core3d/service/item-group.service.js +117 -0
- package/esm2015/app/plugins/core3d/service/item.service.js +205 -0
- package/esm2015/app/plugins/core3d/service/light-presets.service.js +296 -0
- package/esm2015/app/plugins/core3d/service/lights.service.js +190 -0
- package/esm2015/app/plugins/core3d/service/message-board.service.js +60 -0
- package/esm2015/app/plugins/core3d/service/models.service.js +146 -0
- package/esm2015/app/plugins/core3d/service/outline.service.js +150 -0
- package/esm2015/app/plugins/core3d/service/rotation.service.js +183 -0
- package/esm2015/app/plugins/core3d/service/scene-event.service.js +1000 -0
- package/esm2015/app/plugins/core3d/service/scene-options.service.js +24 -0
- package/esm2015/app/plugins/core3d/service/scene.service.js +351 -0
- package/esm2015/app/plugins/core3d/service/vr.service.js +198 -0
- package/esm2015/app/plugins/core3d/service/wall-measurements.service.js +79 -0
- package/esm2015/app/plugins/core3d/service/xr.service.js +397 -0
- package/esm2015/app/plugins/core3d/textures/DepthDataTexture.js +17 -0
- package/esm2015/app/plugins/core3d/walkthrough-camera-controls/walkthrough-camera-controls.component.js +54 -0
- package/esm2015/app/plugins/furniture-manager/furniture-library/furniture-library.component.js +92 -0
- package/esm2015/app/plugins/furniture-manager/furniture-manager/furniture-manager.component.js +458 -0
- package/esm2015/app/plugins/furniture-manager/furniture-manager.module.js +100 -0
- package/esm2015/app/plugins/help/help/help.component.js +71 -0
- package/esm2015/app/plugins/help/help-dialog/help-dialog.component.js +83 -0
- package/esm2015/app/plugins/help/help.module.js +35 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/animation/animation.component.js +36 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/answer-card/answer-card.component.js +187 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.js +417 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/color-filter/color-filter.component.js +44 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/customizer/customizer.component.js +82 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/image-zoom/image-zoom.component.js +27 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/selections-summary/selections-summary-line.component.js +148 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/selections-summary/selections-summary.component.js +167 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/component/tag-filter/tag-filter.component.js +25 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/lite-selector.component.js +150 -0
- package/esm2015/app/plugins/lite-selector/lite-selector/service/customizer.service.js +222 -0
- package/esm2015/app/plugins/lite-selector/lite-selector.module.js +108 -0
- package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +470 -0
- package/esm2015/app/plugins/model-uploader/model-uploader/model-uploader.component.js +132 -0
- package/esm2015/app/plugins/model-uploader/model-uploader.module.js +60 -0
- package/esm2015/app/plugins/plugin-interface.js +2 -0
- package/esm2015/app/plugins/plugins.module.js +80 -0
- package/esm2015/app/plugins/presets/presets/presets.component.js +72 -0
- package/esm2015/app/plugins/presets/presets.module.js +33 -0
- package/esm2015/app/plugins/product-catalog/own-collection-catalog/product-own-collection.component.js +57 -0
- package/esm2015/app/plugins/product-catalog/own-collection-catalog/product-own-collection.module.js +34 -0
- package/esm2015/app/plugins/product-catalog/product-catalog/product-catalog.component.js +428 -0
- package/esm2015/app/plugins/product-catalog/product-catalog.module.js +61 -0
- package/esm2015/app/plugins/render/enum/connection-status.js +8 -0
- package/esm2015/app/plugins/render/enum/render-modes.js +7 -0
- package/esm2015/app/plugins/render/enum/render-status.js +9 -0
- package/esm2015/app/plugins/render/model/camera-position.js +6 -0
- package/esm2015/app/plugins/render/model/image-size.js +3 -0
- package/esm2015/app/plugins/render/model/lightning.js +3 -0
- package/esm2015/app/plugins/render/model/render-data.js +6 -0
- package/esm2015/app/plugins/render/model/render-environment.js +3 -0
- package/esm2015/app/plugins/render/model/render-parameters.js +15 -0
- package/esm2015/app/plugins/render/model/render-queue-item.js +11 -0
- package/esm2015/app/plugins/render/model/render-settings.js +12 -0
- package/esm2015/app/plugins/render/model/render.js +10 -0
- package/esm2015/app/plugins/render/render-controls/render-controls.component.js +89 -0
- package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +318 -0
- package/esm2015/app/plugins/render/render.module.js +85 -0
- package/esm2015/app/plugins/render/service/new-render.service.js +302 -0
- package/esm2015/app/plugins/render/service/render.service.js +650 -0
- package/esm2015/app/plugins/room-planner/components/appearance-section/appearance-section.component.js +190 -0
- package/esm2015/app/plugins/room-planner/components/color-picker/color-picker.component.js +32 -0
- package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +219 -0
- package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +257 -0
- package/esm2015/app/plugins/room-planner/components/dimension-input/dimension-input.component.js +66 -0
- package/esm2015/app/plugins/room-planner/components/edit-apply/edit-apply.component.js +57 -0
- package/esm2015/app/plugins/room-planner/components/edit-parameter/edit-parameter.component.js +79 -0
- package/esm2015/app/plugins/room-planner/components/file-drop/file-drop.component.js +107 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/const/defaults.js +57 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner-mode.js +11 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner.component.js +1303 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/floorplan.service.js +536 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +330 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/snap-indicator-mode.js +7 -0
- package/esm2015/app/plugins/room-planner/components/floorplanner/utils/context.utils.js +53 -0
- package/esm2015/app/plugins/room-planner/components/object-library/object-library.component.js +63 -0
- package/esm2015/app/plugins/room-planner/components/ral-color-picker/ral-color-picker.component.js +128 -0
- package/esm2015/app/plugins/room-planner/components/rgb-color-picker/rgb-color-picker.component.js +37 -0
- package/esm2015/app/plugins/room-planner/components/selected-floor/selected-floor.component.js +36 -0
- package/esm2015/app/plugins/room-planner/components/selected-object/selected-object.component.js +203 -0
- package/esm2015/app/plugins/room-planner/components/selected-threed-object/selected-threed-object.component.js +139 -0
- package/esm2015/app/plugins/room-planner/components/selected-wall/selected-wall.component.js +102 -0
- package/esm2015/app/plugins/room-planner/components/settings/settings-options.component.js +152 -0
- package/esm2015/app/plugins/room-planner/components/settings/settings.component.js +188 -0
- package/esm2015/app/plugins/room-planner/components/texture-editor/texture-editor.component.js +617 -0
- package/esm2015/app/plugins/room-planner/components/texture-picker/texture-picker.component.js +74 -0
- package/esm2015/app/plugins/room-planner/components/wall-length-input/wall-length-input.component.js +48 -0
- package/esm2015/app/plugins/room-planner/const/key.js +12 -0
- package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +1681 -0
- package/esm2015/app/plugins/room-planner/room-planner.module.js +233 -0
- package/esm2015/app/plugins/threed-in-photo/components/threed-in-photo-scene/threed-in-photo-scene.component.js +43 -0
- package/esm2015/app/plugins/threed-in-photo/components/upload-image/upload-image.component.js +61 -0
- package/esm2015/app/plugins/threed-in-photo/components/view-control/view-control.component.js +164 -0
- package/esm2015/app/plugins/threed-in-photo/models/model-output.js +18 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-build.service.js +243 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-connection.service.js +50 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-control.service.js +33 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-event-listeners.service.js +36 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-event.service.js +19 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-initializer.service.js +53 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-render.service.js +61 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-scene.service.js +37 -0
- package/esm2015/app/plugins/threed-in-photo/services/threed-in-photo-view.service.js +21 -0
- package/esm2015/app/plugins/threed-in-photo/threed-in-photo.module.js +67 -0
- package/esm2015/app/plugins/threed-in-photo/utils/utils.js +21 -0
- package/esm2015/app/plugins/threedselector/element-buttons/element-buttons.component.js +95 -0
- package/esm2015/app/plugins/threedselector/element-slider/element-slider.component.js +28 -0
- package/esm2015/app/plugins/threedselector/element-toolbar/element-toolbar.component.js +80 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/furniture-connected-part-integration.js +3 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/furniture-integration.js +13 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/furniture-part-integration.js +6 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/furniture-part-variation.js +3 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/material.js +11 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/variation-settings.js +11 -0
- package/esm2015/app/plugins/threedselector/threedselector/model/variation.js +3 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/animation.service.js +65 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +1343 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/dimensions.service.js +183 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/element.service.js +373 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/light-creation.service.js +35 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/load-furniture.service.js +291 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/resize.service.js +70 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/third-party-model.service.js +156 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/threedselector.service.js +101 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/variation-cache.service.js +133 -0
- package/esm2015/app/plugins/threedselector/threedselector/service/variation.service.js +436 -0
- package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +1116 -0
- package/esm2015/app/plugins/threedselector/threedselector/utils/asset.utils.js +128 -0
- package/esm2015/app/plugins/threedselector/threedselector/utils/image.utils.js +33 -0
- package/esm2015/app/plugins/threedselector/threedselector/utils/json-parser.utils.js +188 -0
- package/esm2015/app/plugins/threedselector/threedselector/utils/scene-3d.utils.js +159 -0
- package/esm2015/app/plugins/threedselector/threedselector.module.js +129 -0
- package/esm2015/app/plugins/toolbar/download-dialog/download-dialog.component.js +33 -0
- package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +279 -0
- package/esm2015/app/plugins/toolbar/edit-preset-dialog/edit-preset-dialog.component.js +22 -0
- package/esm2015/app/plugins/toolbar/landing-screen-modal/landing-screen-modal.component.js +123 -0
- package/esm2015/app/plugins/toolbar/load-from-cloud-dialog/load-from-cloud-dialog.component.js +140 -0
- package/esm2015/app/plugins/toolbar/open-dialog/open-dialog.component.js +83 -0
- package/esm2015/app/plugins/toolbar/pdf-crop-dialog/pdf-crop-dialog.component.js +92 -0
- package/esm2015/app/plugins/toolbar/save-dialog/save-dialog.component.js +146 -0
- package/esm2015/app/plugins/toolbar/saved-dialog/saved-dialog.component.js +66 -0
- package/esm2015/app/plugins/toolbar/toolbar/limited-mode-message-component/limited-mode-message.component.js +26 -0
- package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +676 -0
- package/esm2015/app/plugins/toolbar/toolbar.module.js +177 -0
- package/esm2015/app/service/dynamic-script.service.js +56 -0
- package/esm2015/app/service/google-tag-manager.service.js +89 -0
- package/esm2015/app/service/local-storage.service.js +93 -0
- package/esm2015/app/service/service-locator.service.js +4 -0
- package/esm2015/app/shared/base64-images.js +6 -0
- package/esm2015/app/shared/button-elevation/button-elevation.component.js +279 -0
- package/esm2015/app/shared/button-elevation/button-elevation.module.js +60 -0
- package/esm2015/app/shared/camera-settings-dialog/camera-settings-dialog.component.js +197 -0
- package/esm2015/app/shared/camera-settings-dialog/camera-settings-dialog.module.js +58 -0
- package/esm2015/app/shared/category-library/category-library.component.js +27 -0
- package/esm2015/app/shared/category-library/category-library.module.js +39 -0
- package/esm2015/app/shared/context-menu/context-menu.component.js +35 -0
- package/esm2015/app/shared/context-menu/context-menu.module.js +49 -0
- package/esm2015/app/shared/context-menu/item-context-menu/item-context-menu.component.js +93 -0
- package/esm2015/app/shared/dialog/dialog.component.js +119 -0
- package/esm2015/app/shared/dialog/dialog.module.js +45 -0
- package/esm2015/app/shared/dialog/enum/dialog-type.enum.js +8 -0
- package/esm2015/app/shared/dialog/interface/dialog-config.interface.js +2 -0
- package/esm2015/app/shared/dialog/service/dialog.service.js +21 -0
- package/esm2015/app/shared/error-dialog/error-dialog.component.js +24 -0
- package/esm2015/app/shared/error-dialog/error-dialog.module.js +30 -0
- package/esm2015/app/shared/export-dialog/export-dialog.component.js +68 -0
- package/esm2015/app/shared/export-dialog/export-dialog.module.js +35 -0
- package/esm2015/app/shared/info-dialog/info-dialog.component.js +54 -0
- package/esm2015/app/shared/info-dialog/info-dialog.module.js +37 -0
- package/esm2015/app/shared/loader/hd-loader.component.js +24 -0
- package/esm2015/app/shared/loader/hd-loader.module.js +33 -0
- package/esm2015/app/shared/loading-overlay/dialog/loading-overlay-dialog.component.js +26 -0
- package/esm2015/app/shared/loading-overlay/loading-overlay.component.js +55 -0
- package/esm2015/app/shared/loading-overlay/loading-overlay.module.js +42 -0
- package/esm2015/app/shared/model-dialog/model-dialog-furniture-list.component.js +325 -0
- package/esm2015/app/shared/model-dialog/model-dialog.component.js +104 -0
- package/esm2015/app/shared/model-dialog/model-dialog.module.js +64 -0
- package/esm2015/app/shared/progress-bar/progress-bar.component.js +39 -0
- package/esm2015/app/shared/progress-bar/progress-bar.module.js +33 -0
- package/esm2015/app/shared/register-dialog/register-dialog.component.js +112 -0
- package/esm2015/app/shared/screen-size-analysis/device-size-type.js +7 -0
- package/esm2015/app/shared/screen-size-analysis/navigator-type.enum.js +6 -0
- package/esm2015/app/shared/screen-size-analysis/screen-size-analysis.service.js +93 -0
- package/esm2015/app/shared/screen-size-analysis/screen-size-config.js +7 -0
- package/esm2015/app/shared/screen-size-analysis/screen-size-info.js +2 -0
- package/esm2015/app/shared/slider-input/slider-input.component.js +35 -0
- package/esm2015/app/shared/slider-input/slider-input.module.js +46 -0
- package/esm2015/app/shared/toolbar-icon/toolbar-icon.component.js +95 -0
- package/esm2015/app/shared/toolbar-icon/toolbar-icon.module.js +38 -0
- package/esm2015/app/shared/zoom-controls/zoom-controls.component.js +47 -0
- package/esm2015/app/shared/zoom-controls/zoom-controls.module.js +34 -0
- package/esm2015/colijnit-homedecorator.js +5 -0
- package/esm2015/environments/environment.js +17 -0
- package/esm2015/public_api.js +4 -0
- package/fesm2015/colijnit-homedecorator.js +45086 -0
- package/fesm2015/colijnit-homedecorator.js.map +1 -0
- package/homedecorator-globals.scss +361 -0
- package/package.json +48 -0
- package/palette.scss +32 -0
- package/public_api.d.ts +3 -0
- package/styles.scss +377 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Injectable } from '@angular/core';
|
|
11
|
+
import { BehaviorSubject } from 'rxjs';
|
|
12
|
+
import { CustomFloorGroupResult } from '../../../core3d/model/custom-floor-group-result';
|
|
13
|
+
import { CustomButton } from '../../../../core/model/custom-button';
|
|
14
|
+
import { isFloorDecoration, isWallDecoration, itemTypeFromPlacement } from '../../../core3d/items/factory';
|
|
15
|
+
import { MessageType } from '../../../../core/enum/message-type.enum';
|
|
16
|
+
import { ResultType } from '../../../core3d/enum/result-type.enum';
|
|
17
|
+
import { ErrorMessage } from '../../../../core/model/error-message';
|
|
18
|
+
import { isNill } from '../../../../core/utils/function/is-nill.function';
|
|
19
|
+
import { RotationHelper } from '../../../core3d/hud/rotation-helper';
|
|
20
|
+
import { Utils } from '../../../core3d/core/utils';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "../../../../core/service/homedecorator-connector.service";
|
|
23
|
+
import * as i2 from "../../../core3d/service/models.service";
|
|
24
|
+
import * as i3 from "./threedselector.service";
|
|
25
|
+
import * as i4 from "../../../../core/service/message-bus.service";
|
|
26
|
+
import * as i5 from "./build-furniture.service";
|
|
27
|
+
import * as i6 from "../../../../core/service/presets.service";
|
|
28
|
+
import * as i7 from "../../../../core/service/homedecorator-dictionary.service";
|
|
29
|
+
import * as i8 from "../../../../core/service/homedecorator-settings.service";
|
|
30
|
+
import * as i9 from "../../../../shared/dialog/service/dialog.service";
|
|
31
|
+
import * as i10 from "../../../../core/service/error.service";
|
|
32
|
+
import * as i11 from "../../../../core/service/progress.service";
|
|
33
|
+
import * as i12 from "../../../core3d/service/item.service";
|
|
34
|
+
export class LoadFurnitureService {
|
|
35
|
+
constructor(_iOne, _modelService, _threedSelectorService, _messageBus, _buildFurnitureService, _presetService, _dictionaryService, _settingsService, _dialogService, _errorService, _progressService, _itemService) {
|
|
36
|
+
this._iOne = _iOne;
|
|
37
|
+
this._modelService = _modelService;
|
|
38
|
+
this._threedSelectorService = _threedSelectorService;
|
|
39
|
+
this._messageBus = _messageBus;
|
|
40
|
+
this._buildFurnitureService = _buildFurnitureService;
|
|
41
|
+
this._presetService = _presetService;
|
|
42
|
+
this._dictionaryService = _dictionaryService;
|
|
43
|
+
this._settingsService = _settingsService;
|
|
44
|
+
this._dialogService = _dialogService;
|
|
45
|
+
this._errorService = _errorService;
|
|
46
|
+
this._progressService = _progressService;
|
|
47
|
+
this._itemService = _itemService;
|
|
48
|
+
this.notLoaded = [];
|
|
49
|
+
this.notFixedObjectCache = [];
|
|
50
|
+
this.obsoleteObjectCache = [];
|
|
51
|
+
this.objectList = [];
|
|
52
|
+
this.objectListFixed = [];
|
|
53
|
+
this.simpleObjectList = [];
|
|
54
|
+
this.externalSourceNotAvailable = [];
|
|
55
|
+
this.shouldLoadSelections = true;
|
|
56
|
+
this.metadataSet = new BehaviorSubject(undefined);
|
|
57
|
+
this.articleLoaded = new BehaviorSubject(undefined);
|
|
58
|
+
this._fullObjectCache = new Map();
|
|
59
|
+
this._subs = [];
|
|
60
|
+
this._shouldCopyFurniture = true;
|
|
61
|
+
this._configurationDirty = false;
|
|
62
|
+
this.configureFurniture = (furniture) => __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
this._messageBus.emit(MessageType.HideLeftSidebar);
|
|
64
|
+
this.switchConfiguration(furniture);
|
|
65
|
+
});
|
|
66
|
+
this._subs.push(this._presetService.stateCreated.subscribe(() => this._saveConfiguration()), this._itemService.removeAllItems.subscribe(() => this._cleanUp()), this._messageBus.subscribe(MessageType.ItemRemoved, (result) => this._handleItemRemovedFromScene(result)), this._messageBus.subscribe(MessageType.SavePreset, () => this._saveConfiguration()), this._messageBus.subscribe(MessageType.RemoveItemFromScene, (instanceId) => this.deleteFromObjectList(instanceId)), this._messageBus.subscribe(MessageType.ShouldCopyFurnitureFromPreset, shouldCopy => this._shouldCopyFurniture = shouldCopy));
|
|
67
|
+
this.configureButton = new CustomButton('Configureren', this.configureFurniture);
|
|
68
|
+
window.onbeforeunload = () => this.ngOnDestroy();
|
|
69
|
+
}
|
|
70
|
+
set article(value) {
|
|
71
|
+
this._article = value;
|
|
72
|
+
if (this._article) {
|
|
73
|
+
this._buildFurnitureService.articleAssetPath = this._article.contentDeliveryUrl;
|
|
74
|
+
}
|
|
75
|
+
this.articleLoaded.next(this._article);
|
|
76
|
+
}
|
|
77
|
+
get article() {
|
|
78
|
+
return this._article;
|
|
79
|
+
}
|
|
80
|
+
ngOnDestroy() {
|
|
81
|
+
this._subs.forEach(s => s.unsubscribe());
|
|
82
|
+
this._cleanUp();
|
|
83
|
+
}
|
|
84
|
+
loadArticle(sku) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
if (this.article && this.article.sku === sku) {
|
|
87
|
+
return this.article;
|
|
88
|
+
}
|
|
89
|
+
this.article = yield this._iOne.getArticle(sku, this._settingsService.settings.branch);
|
|
90
|
+
return this.article;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
loadFurniture(furnitureData, shouldCopyInstance = false, looseOriginalConfiguration = true, standAlone = false, fromScratch = false, fromPreset = false) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const result = new CustomFloorGroupResult(furnitureData.itemIdentifier, furnitureData.itemName ? furnitureData.itemName : furnitureData.itemIdentifier);
|
|
96
|
+
yield this._tryLoadArticle(furnitureData, result).catch((e) => {
|
|
97
|
+
if (result.resultType === ResultType.Timeout) {
|
|
98
|
+
return Promise.reject(result);
|
|
99
|
+
}
|
|
100
|
+
if (result.metaData.externalSettings.externalSourceId === null || result.metaData.externalSettings.externalSourceId === undefined) {
|
|
101
|
+
result.errorMessages.push(new ErrorMessage(result.metaData.externalSettings.name + ' EXTERNAL_SOURCE_NOT_FOUND', ''));
|
|
102
|
+
result.resultType = ResultType.ExternalSourceNotAvailable;
|
|
103
|
+
return Promise.reject(result);
|
|
104
|
+
}
|
|
105
|
+
// no article found, we can continue if there is instanceId and modelUrl provided in metadata
|
|
106
|
+
if (!result.metaData || !result.metaData.modelUrl) {
|
|
107
|
+
// if (result.resultType !== ResultType.ConfigurationNotFixed) {
|
|
108
|
+
result.errorMessages.push(new ErrorMessage('ARTICLE_NOT_FOUND', 'ARTICLE_NOT_FOUND_DESC'));
|
|
109
|
+
result.resultType = ResultType.ArticleNotFound;
|
|
110
|
+
// }
|
|
111
|
+
return Promise.reject(result);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
yield this._initFull3DObject(result, fromPreset)
|
|
115
|
+
.catch((e) => {
|
|
116
|
+
if (!standAlone) {
|
|
117
|
+
return Promise.reject(result);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
if (!result.metaData.configurable) { // simple 3d article, just load model
|
|
121
|
+
return this._buildFurnitureService.createSimple3DModel(result, standAlone);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this._modelService.addCustomButton(this.configureButton);
|
|
125
|
+
this._configurationDirty = true;
|
|
126
|
+
return this._buildFurnitureService.startToBuild(result, result.metaData, shouldCopyInstance, looseOriginalConfiguration, standAlone, true);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
switchConfiguration(furniture) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
if (furniture) {
|
|
133
|
+
this._buildFurnitureService.full3DObjectToUse =
|
|
134
|
+
yield this.getFull3DObject(furniture.metadata.itemIdentifier, furniture.metadata.itemId, furniture.metadata.assetPath);
|
|
135
|
+
furniture.configuring = true;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
deleteFromObjectList(id, useInstanceId = true) {
|
|
140
|
+
if (id !== undefined) {
|
|
141
|
+
if (useInstanceId) {
|
|
142
|
+
this.objectList.splice(this.objectList.findIndex(c => c.instanceId === id), 1);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.simpleObjectList.splice(this.simpleObjectList.findIndex(c => c.metaData.objectUUID === id), 1);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
addToList(list, item) {
|
|
150
|
+
if (!item || (!item.instanceId && !item.metaData.objectUUID)) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if ((item.instanceId && !list.find(l => l.instanceId === item.instanceId)) ||
|
|
154
|
+
(item.metaData.objectUUID && !list.find(l => l.metaData.objectUUID === item.metaData.objectUUID))) {
|
|
155
|
+
list.push(item);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
_tryLoadArticle(furnitureData, result) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
this.article = undefined;
|
|
161
|
+
const article = yield this.loadArticle(furnitureData.itemIdentifier).catch((e) => {
|
|
162
|
+
if (e === 'ECONNABORTED') {
|
|
163
|
+
result.resultType = ResultType.Timeout;
|
|
164
|
+
return Promise.reject();
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
if (article) {
|
|
168
|
+
this.article = article;
|
|
169
|
+
this._extendMetadataWithArticleData(furnitureData, article, result);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
else { // no article found
|
|
173
|
+
result.resultType = ResultType.ArticleNotFound;
|
|
174
|
+
result.metaData = furnitureData;
|
|
175
|
+
return Promise.reject();
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
_extendMetadataWithArticleData(furnitureData, article, result) {
|
|
180
|
+
furnitureData.resizable = false;
|
|
181
|
+
furnitureData.ione = true;
|
|
182
|
+
furnitureData.centerPivot = true;
|
|
183
|
+
furnitureData.ignoreInvisible = false;
|
|
184
|
+
furnitureData.modelUrl = article.assetUrl;
|
|
185
|
+
furnitureData.schema = article.distSchema ? article.distSchema : 'UP_DBA';
|
|
186
|
+
furnitureData.assetPath = article.contentDeliveryUrl;
|
|
187
|
+
furnitureData.itemType = itemTypeFromPlacement(article.placement);
|
|
188
|
+
furnitureData.canElevate = article.stackable;
|
|
189
|
+
furnitureData.configurable = article.goodType ? article.goodType.toLowerCase() === 'b' : true;
|
|
190
|
+
furnitureData.itemName = article.name;
|
|
191
|
+
furnitureData.goodId = article.id;
|
|
192
|
+
furnitureData.goodType = article.goodType;
|
|
193
|
+
// furnitureData.itemIdentifier = article.sku;
|
|
194
|
+
furnitureData.elevation = !furnitureData.elevation ? (article.defaultHeight ? article.defaultHeight / 100 : 0) : furnitureData.elevation;
|
|
195
|
+
furnitureData.elevationAdjustable = article.defaultHeightAdjustable;
|
|
196
|
+
furnitureData.elevationFixed = furnitureData.elevationFixed === true || article.defaultHeight ? true : !furnitureData.elevationAdjustable;
|
|
197
|
+
furnitureData.canRotateX = !isNill(article.canRotate) ? RotationHelper.CanRotateX(article.canRotate) : false;
|
|
198
|
+
furnitureData.canRotateY = !isNill(article.canRotate) ? RotationHelper.CanRotateY(article.canRotate) : true;
|
|
199
|
+
furnitureData.canRotateZ = !isNill(article.canRotate) ? RotationHelper.CanRotateZ(article.canRotate) : false;
|
|
200
|
+
furnitureData.default180 = !isNill(article.canRotate) ? RotationHelper.Default180(article.canRotate) : false;
|
|
201
|
+
result.metaData = furnitureData;
|
|
202
|
+
result.name = furnitureData.itemName;
|
|
203
|
+
this.metadataSet.next(result.metaData);
|
|
204
|
+
}
|
|
205
|
+
_handleItemRemovedFromScene(result) {
|
|
206
|
+
var _a;
|
|
207
|
+
if (result.addedToGroup) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const hasUUID = !!((_a = result.item.metadata) === null || _a === void 0 ? void 0 : _a.objectUUID);
|
|
211
|
+
if (result.item.userData && (result.item.userData.itemId || hasUUID)) {
|
|
212
|
+
this.deleteFromObjectList(hasUUID ? result.item.metadata.objectUUID : result.item.userData.itemId, !hasUUID);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
_saveConfiguration() {
|
|
216
|
+
if (this._configurationDirty) {
|
|
217
|
+
this._iOne.saveConfigurations();
|
|
218
|
+
this._configurationDirty = false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
_cleanUp() {
|
|
222
|
+
this.notLoaded.length = 0;
|
|
223
|
+
this.notFixedObjectCache.length = 0;
|
|
224
|
+
this.obsoleteObjectCache.length = 0;
|
|
225
|
+
this.objectList.length = 0;
|
|
226
|
+
this.objectListFixed.length = 0;
|
|
227
|
+
const objs = Array.from(this._fullObjectCache.values());
|
|
228
|
+
objs.forEach(o => Utils.DisposeObject(o));
|
|
229
|
+
this._fullObjectCache.clear();
|
|
230
|
+
}
|
|
231
|
+
_needs3DModel(metaData) {
|
|
232
|
+
return !isFloorDecoration(metaData.itemType) && !isWallDecoration(metaData.itemType);
|
|
233
|
+
}
|
|
234
|
+
_initFull3DObject(result, fromPreset) {
|
|
235
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
236
|
+
const obj = yield this.getFull3DObject(result.metaData.itemIdentifier, this._settingsService.settings.assetPath, result.metaData.itemName, result.metaData.modelUrl, !fromPreset)
|
|
237
|
+
.catch((e) => {
|
|
238
|
+
// this._errorService.addError(md.itemId, e);
|
|
239
|
+
if (this._settingsService.settings.options.onlyThreeD && this._needs3DModel(result.metaData)) {
|
|
240
|
+
result.errorMessages.push(e);
|
|
241
|
+
result.resultType = ResultType.No3DModel;
|
|
242
|
+
return Promise.reject(result);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
if (obj === null) {
|
|
246
|
+
if (this._settingsService.settings.options.onlyThreeD && this._needs3DModel(result.metaData)) {
|
|
247
|
+
result.resultType = ResultType.No3DModel;
|
|
248
|
+
return Promise.reject(result);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
return Promise.resolve();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const fullObj = obj.clone();
|
|
255
|
+
this._buildFurnitureService.full3DObjectToUse = fullObj;
|
|
256
|
+
return;
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
getFull3DObject(sku, assetPath, name, assetUrl, prepareProgress = false) {
|
|
260
|
+
if (this._fullObjectCache.has(sku)) {
|
|
261
|
+
return Promise.resolve(this._fullObjectCache.get(sku));
|
|
262
|
+
}
|
|
263
|
+
else if (assetUrl) {
|
|
264
|
+
// const fileName: string = assetUrl.substr(0, assetUrl.lastIndexOf('.')).replace('.unity3d', '');
|
|
265
|
+
const fileName = assetUrl.replace('.unity3d', '');
|
|
266
|
+
return this._threedSelectorService.downloadAssetsAndReturn(fileName, assetPath, prepareProgress)
|
|
267
|
+
.then(res => {
|
|
268
|
+
const obj = res;
|
|
269
|
+
obj.name = name;
|
|
270
|
+
// obj.scale.set(100, 100, 100);
|
|
271
|
+
this._fullObjectCache.set(sku, obj);
|
|
272
|
+
return obj;
|
|
273
|
+
}, err => {
|
|
274
|
+
return Promise.reject(new ErrorMessage('THREED_MODEL_NOT_FOUND', err));
|
|
275
|
+
});
|
|
276
|
+
// }
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
return Promise.resolve(null);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
LoadFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureService, deps: [{ token: i1.HomedecoratorConnectorService }, { token: i2.ModelsService }, { token: i3.ThreedselectorService }, { token: i4.MessageBusService }, { token: i5.BuildFurnitureService }, { token: i6.PresetsService }, { token: i7.HomedecoratorDictionaryService }, { token: i8.HomedecoratorSettingsService }, { token: i9.DialogService }, { token: i10.ErrorService }, { token: i11.ProgressService }, { token: i12.ItemService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
284
|
+
LoadFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureService, providedIn: 'root' });
|
|
285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFurnitureService, decorators: [{
|
|
286
|
+
type: Injectable,
|
|
287
|
+
args: [{
|
|
288
|
+
providedIn: 'root'
|
|
289
|
+
}]
|
|
290
|
+
}], ctorParameters: function () { return [{ type: i1.HomedecoratorConnectorService }, { type: i2.ModelsService }, { type: i3.ThreedselectorService }, { type: i4.MessageBusService }, { type: i5.BuildFurnitureService }, { type: i6.PresetsService }, { type: i7.HomedecoratorDictionaryService }, { type: i8.HomedecoratorSettingsService }, { type: i9.DialogService }, { type: i10.ErrorService }, { type: i11.ProgressService }, { type: i12.ItemService }]; } });
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1mdXJuaXR1cmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9sb2FkLWZ1cm5pdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUduRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFhekcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBV2pELE1BQU0sT0FBTyxvQkFBb0I7SUFnQy9CLFlBQ1UsS0FBb0MsRUFDcEMsYUFBNEIsRUFDNUIsc0JBQTZDLEVBQzdDLFdBQThCLEVBQzlCLHNCQUE2QyxFQUM3QyxjQUE4QixFQUM5QixrQkFBa0QsRUFDbEQsZ0JBQThDLEVBQzlDLGNBQTZCLEVBQzdCLGFBQTJCLEVBQzNCLGdCQUFpQyxFQUNq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b0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7T2JqZWN0M0R9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtBcnRpY2xlfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2FydGljbGUnO1xyXG5pbXBvcnQge0N1c3RvbUZsb29yR3JvdXBSZXN1bHR9IGZyb20gJy4uLy4uLy4uL2NvcmUzZC9tb2RlbC9jdXN0b20tZmxvb3ItZ3JvdXAtcmVzdWx0JztcclxuaW1wb3J0IHtDdXN0b21CdXR0b259IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvY3VzdG9tLWJ1dHRvbic7XHJcbmltcG9ydCB7aXNGbG9vckRlY29yYXRpb24sIGlzV2FsbERlY29yYXRpb24sIGl0ZW1UeXBlRnJvbVBsYWNlbWVudH0gZnJvbSAnLi4vLi4vLi4vY29yZTNkL2l0ZW1zL2ZhY3RvcnknO1xyXG5pbXBvcnQge01ldGFkYXRhfSBmcm9tICcuLi8uLi8uLi9jb3JlM2QvaXRlbXMvbWV0YWRhdGEnO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7TW9kZWxzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZTNkL3NlcnZpY2UvbW9kZWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQge01lc3NhZ2VCdXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvbWVzc2FnZS1idXMuc2VydmljZSc7XHJcbmltcG9ydCB7QnVpbGRGdXJuaXR1cmVTZXJ2aWNlfSBmcm9tICcuL2J1aWxkLWZ1cm5pdHVyZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcmVzZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3ByZXNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckRpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9kaWFsb2cvc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7RXJyb3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvZXJyb3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHJvZ3Jlc3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvcHJvZ3Jlc3Muc2VydmljZSc7XHJcbmltcG9ydCB7SXRlbVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUzZC9zZXJ2aWNlL2l0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7TWVzc2FnZVR5cGV9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvZW51bS9tZXNzYWdlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7UmVzdWx0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY29yZTNkL2VudW0vcmVzdWx0LXR5cGUuZW51bSc7XHJcbmltcG9ydCB7RXJyb3JNZXNzYWdlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL2Vycm9yLW1lc3NhZ2UnO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uJztcclxuaW1wb3J0IHtSb3RhdGlvbkhlbHBlcn0gZnJvbSAnLi4vLi4vLi4vY29yZTNkL2h1ZC9yb3RhdGlvbi1oZWxwZXInO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi8uLi9jb3JlM2QvY29yZS91dGlscyc7XHJcbmltcG9ydCB7VGhyZWVkc2VsZWN0b3JTZXJ2aWNlfSBmcm9tICcuL3RocmVlZHNlbGVjdG9yLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGdXJuaXR1cmVJbml0aWFsaXplZCB7XHJcbiAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XHJcbiAgYXNzZXRQYXRoOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvYWRGdXJuaXR1cmVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwdWJsaWMgbm90TG9hZGVkOiBDdXN0b21GbG9vckdyb3VwUmVzdWx0W10gPSBbXTtcclxuICBwdWJsaWMgbm90Rml4ZWRPYmplY3RDYWNoZTogQ3VzdG9tRmxvb3JHcm91cFJlc3VsdFtdID0gW107XHJcbiAgcHVibGljIG9ic29sZXRlT2JqZWN0Q2FjaGU6IEN1c3RvbUZsb29yR3JvdXBSZXN1bHRbXSA9IFtdO1xyXG4gIHB1YmxpYyBvYmplY3RMaXN0OiBDdXN0b21GbG9vckdyb3VwUmVzdWx0W10gPSBbXTtcclxuICBwdWJsaWMgb2JqZWN0TGlzdEZpeGVkOiBDdXN0b21GbG9vckdyb3VwUmVzdWx0W10gPSBbXTtcclxuICBwdWJsaWMgc2ltcGxlT2JqZWN0TGlzdDogQ3VzdG9tRmxvb3JHcm91cFJlc3VsdFtdID0gW107XHJcbiAgcHVibGljIGV4dGVybmFsU291cmNlTm90QXZhaWxhYmxlOiBDdXN0b21GbG9vckdyb3VwUmVzdWx0W10gPSBbXTtcclxuICBwdWJsaWMgY29uZmlndXJlQnV0dG9uOiBDdXN0b21CdXR0b247XHJcbiAgcHVibGljIHNob3VsZExvYWRTZWxlY3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbWV0YWRhdGFTZXQ6IEJlaGF2aW9yU3ViamVjdDxNZXRhZGF0YT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1ldGFkYXRhPih1bmRlZmluZWQpO1xyXG5cclxuICBwdWJsaWMgc2V0IGFydGljbGUodmFsdWU6IEFydGljbGUpIHtcclxuICAgIHRoaXMuX2FydGljbGUgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLl9hcnRpY2xlKSB7XHJcbiAgICAgIHRoaXMuX2J1aWxkRnVybml0dXJlU2VydmljZS5hcnRpY2xlQXNzZXRQYXRoID0gdGhpcy5fYXJ0aWNsZS5jb250ZW50RGVsaXZlcnlVcmw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFydGljbGVMb2FkZWQubmV4dCh0aGlzLl9hcnRpY2xlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXJ0aWNsZSgpOiBBcnRpY2xlIHtcclxuICAgIHJldHVybiB0aGlzLl9hcnRpY2xlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFydGljbGVMb2FkZWQ6IEJlaGF2aW9yU3ViamVjdDxBcnRpY2xlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJ0aWNsZT4odW5kZWZpbmVkKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZnVsbE9iamVjdENhY2hlOiBNYXA8c3RyaW5nLCBPYmplY3QzRD4gPSBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBfYXJ0aWNsZTogQXJ0aWNsZTtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3Nob3VsZENvcHlGdXJuaXR1cmUgPSB0cnVlO1xyXG4gIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25EaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2lPbmU6IEhvbWVkZWNvcmF0b3JDb25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbW9kZWxTZXJ2aWNlOiBNb2RlbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdGhyZWVkU2VsZWN0b3JTZXJ2aWNlOiBUaHJlZWRzZWxlY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlQnVzOiBNZXNzYWdlQnVzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2J1aWxkRnVybml0dXJlU2VydmljZTogQnVpbGRGdXJuaXR1cmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0U2VydmljZTogUHJlc2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogSG9tZWRlY29yYXRvckRpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2V0dGluZ3NTZXJ2aWNlOiBIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJvZ3Jlc3NTZXJ2aWNlOiBQcm9ncmVzc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pdGVtU2VydmljZTogSXRlbVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fcHJlc2V0U2VydmljZS5zdGF0ZUNyZWF0ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3NhdmVDb25maWd1cmF0aW9uKCkpLFxyXG4gICAgICB0aGlzLl9pdGVtU2VydmljZS5yZW1vdmVBbGxJdGVtcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2xlYW5VcCgpKSxcclxuICAgICAgdGhpcy5fbWVzc2FnZUJ1cy5zdWJzY3JpYmUoXHJcbiAgICAgICAgTWVzc2FnZVR5cGUuSXRlbVJlbW92ZWQsIChyZXN1bHQ6IHsgaXRlbTogYW55LCBhZGRlZFRvR3JvdXA6IGJvb2xlYW4gfSkgPT4gdGhpcy5faGFuZGxlSXRlbVJlbW92ZWRGcm9tU2NlbmUocmVzdWx0KSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VCdXMuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLlNhdmVQcmVzZXQsICgpID0+IHRoaXMuX3NhdmVDb25maWd1cmF0aW9uKCkpLFxyXG4gICAgICB0aGlzLl9tZXNzYWdlQnVzLnN1YnNjcmliZShNZXNzYWdlVHlwZS5SZW1vdmVJdGVtRnJvbVNjZW5lLCAoaW5zdGFuY2VJZDogYW55KSA9PiB0aGlzLmRlbGV0ZUZyb21PYmplY3RMaXN0KGluc3RhbmNlSWQpKSxcclxuICAgICAgdGhpcy5fbWVzc2FnZUJ1cy5zdWJzY3JpYmUoTWVzc2FnZVR5cGUuU2hvdWxkQ29weUZ1cm5pdHVyZUZyb21QcmVzZXQsIHNob3VsZENvcHkgPT4gdGhpcy5fc2hvdWxkQ29weUZ1cm5pdHVyZSA9IHNob3VsZENvcHkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5jb25maWd1cmVCdXR0b24gPSBuZXcgQ3VzdG9tQnV0dG9uKCdDb25maWd1cmVyZW4nLCB0aGlzLmNvbmZpZ3VyZUZ1cm5pdHVyZSk7XHJcbiAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSAoKSA9PiB0aGlzLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLl9jbGVhblVwKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZEFydGljbGUoc2t1OiBzdHJpbmcpOiBQcm9taXNlPEFydGljbGU+IHtcclxuICAgIGlmICh0aGlzLmFydGljbGUgJiYgdGhpcy5hcnRpY2xlLnNrdSA9PT0gc2t1KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFydGljbGUgPSBhd2FpdCB0aGlzLl9pT25lLmdldEFydGljbGUoc2t1LCB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuYnJhbmNoKTtcclxuICAgIHJldHVybiB0aGlzLmFydGljbGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZEZ1cm5pdHVyZShcclxuICAgIGZ1cm5pdHVyZURhdGE6IE1ldGFkYXRhLFxyXG4gICAgc2hvdWxkQ29weUluc3RhbmNlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBsb29zZU9yaWdpbmFsQ29uZmlndXJhdGlvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBzdGFuZEFsb25lOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBmcm9tU2NyYXRjaDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgZnJvbVByZXNldDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogUHJvbWlzZTxDdXN0b21GbG9vckdyb3VwUmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEN1c3RvbUZsb29yR3JvdXBSZXN1bHQgPVxyXG4gICAgICBuZXcgQ3VzdG9tRmxvb3JHcm91cFJlc3VsdChcclxuICAgICAgICBmdXJuaXR1cmVEYXRhLml0ZW1JZGVudGlmaWVyLCBmdXJuaXR1cmVEYXRhLml0ZW1OYW1lID8gZnVybml0dXJlRGF0YS5pdGVtTmFtZSA6IGZ1cm5pdHVyZURhdGEuaXRlbUlkZW50aWZpZXIpO1xyXG5cclxuICAgIGF3YWl0IHRoaXMuX3RyeUxvYWRBcnRpY2xlKGZ1cm5pdHVyZURhdGEsIHJlc3VsdCkuY2F0Y2goKGUpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdC5yZXN1bHRUeXBlID09PSBSZXN1bHRUeXBlLlRpbWVvdXQpIHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lm1ldGFEYXRhLmV4dGVybmFsU2V0dGluZ3MuZXh0ZXJuYWxTb3VyY2VJZCA9PT0gbnVsbCB8fCByZXN1bHQubWV0YURhdGEuZXh0ZXJuYWxTZXR0aW5ncy5leHRlcm5hbFNvdXJjZUlkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXN1bHQuZXJyb3JNZXNzYWdlcy5wdXNoKG5ldyBFcnJvck1lc3NhZ2UocmVzdWx0Lm1ldGFEYXRhLmV4dGVybmFsU2V0dGluZ3MubmFtZSArICcgRVhURVJOQUxfU09VUkNFX05PVF9GT1VORCcsICcnKSk7XHJcbiAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLkV4dGVybmFsU291cmNlTm90QXZhaWxhYmxlO1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXN1bHQpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIG5vIGFydGljbGUgZm91bmQsIHdlIGNhbiBjb250aW51ZSBpZiB0aGVyZSBpcyBpbnN0YW5jZUlkIGFuZCBtb2RlbFVybCBwcm92aWRlZCBpbiBtZXRhZGF0YVxyXG4gICAgICBpZiAoIXJlc3VsdC5tZXRhRGF0YSB8fCAhcmVzdWx0Lm1ldGFEYXRhLm1vZGVsVXJsKSB7XHJcbiAgICAgICAgLy8gaWYgKHJlc3VsdC5yZXN1bHRUeXBlICE9PSBSZXN1bHRUeXBlLkNvbmZpZ3VyYXRpb25Ob3RGaXhlZCkge1xyXG4gICAgICAgIHJlc3VsdC5lcnJvck1lc3NhZ2VzLnB1c2gobmV3IEVycm9yTWVzc2FnZSgnQVJUSUNMRV9OT1RfRk9VTkQnLCAnQVJUSUNMRV9OT1RfRk9VTkRfREVTQycpKTtcclxuICAgICAgICByZXN1bHQucmVzdWx0VHlwZSA9IFJlc3VsdFR5cGUuQXJ0aWNsZU5vdEZvdW5kO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5faW5pdEZ1bGwzRE9iamVjdChyZXN1bHQsIGZyb21QcmVzZXQpXHJcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgIGlmICghc3RhbmRBbG9uZSkge1xyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICBpZiAoIXJlc3VsdC5tZXRhRGF0YS5jb25maWd1cmFibGUpIHsgLy8gc2ltcGxlIDNkIGFydGljbGUsIGp1c3QgbG9hZCBtb2RlbFxyXG4gICAgICByZXR1cm4gdGhpcy5fYnVpbGRGdXJuaXR1cmVTZXJ2aWNlLmNyZWF0ZVNpbXBsZTNETW9kZWwocmVzdWx0LCBzdGFuZEFsb25lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsU2VydmljZS5hZGRDdXN0b21CdXR0b24odGhpcy5jb25maWd1cmVCdXR0b24pO1xyXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uRGlydHkgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdGhpcy5fYnVpbGRGdXJuaXR1cmVTZXJ2aWNlLnN0YXJ0VG9CdWlsZChyZXN1bHQsIHJlc3VsdC5tZXRhRGF0YSwgc2hvdWxkQ29weUluc3RhbmNlLCBsb29zZU9yaWdpbmFsQ29uZmlndXJhdGlvbiwgc3RhbmRBbG9uZSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc3dpdGNoQ29uZmlndXJhdGlvbihmdXJuaXR1cmU6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKGZ1cm5pdHVyZSkge1xyXG4gICAgICB0aGlzLl9idWlsZEZ1cm5pdHVyZVNlcnZpY2UuZnVsbDNET2JqZWN0VG9Vc2UgPVxyXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0RnVsbDNET2JqZWN0KGZ1cm5pdHVyZS5tZXRhZGF0YS5pdGVtSWRlbnRpZmllciwgZnVybml0dXJlLm1ldGFkYXRhLml0ZW1JZCwgZnVybml0dXJlLm1ldGFkYXRhLmFzc2V0UGF0aCk7XHJcbiAgICAgIGZ1cm5pdHVyZS5jb25maWd1cmluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uZmlndXJlRnVybml0dXJlID0gYXN5bmMgKGZ1cm5pdHVyZTogYW55KSA9PiB7XHJcbiAgICB0aGlzLl9tZXNzYWdlQnVzLmVtaXQoTWVzc2FnZVR5cGUuSGlkZUxlZnRTaWRlYmFyKTtcclxuICAgIHRoaXMuc3dpdGNoQ29uZmlndXJhdGlvbihmdXJuaXR1cmUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZUZyb21PYmplY3RMaXN0KGlkOiBzdHJpbmcsIHVzZUluc3RhbmNlSWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodXNlSW5zdGFuY2VJZCkge1xyXG4gICAgICAgIHRoaXMub2JqZWN0TGlzdC5zcGxpY2UodGhpcy5vYmplY3RMaXN0LmZpbmRJbmRleChjID0+IGMuaW5zdGFuY2VJZCA9PT0gaWQpLCAxKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNpbXBsZU9iamVjdExpc3Quc3BsaWNlKHRoaXMuc2ltcGxlT2JqZWN0TGlzdC5maW5kSW5kZXgoYyA9PiBjLm1ldGFEYXRhLm9iamVjdFVVSUQgPT09IGlkKSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRUb0xpc3QobGlzdDogQ3VzdG9tRmxvb3JHcm91cFJlc3VsdFtdLCBpdGVtOiBDdXN0b21GbG9vckdyb3VwUmVzdWx0KTogdm9pZCB7XHJcbiAgICBpZiAoIWl0ZW0gfHwgKCFpdGVtLmluc3RhbmNlSWQgJiYgIWl0ZW0ubWV0YURhdGEub2JqZWN0VVVJRCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKChpdGVtLmluc3RhbmNlSWQgJiYgIWxpc3QuZmluZChsID0+IGwuaW5zdGFuY2VJZCA9PT0gaXRlbS5pbnN0YW5jZUlkKSkgfHxcclxuICAgICAgKGl0ZW0ubWV0YURhdGEub2JqZWN0VVVJRCAmJiAhbGlzdC5maW5kKGwgPT4gbC5tZXRhRGF0YS5vYmplY3RVVUlEID09PSBpdGVtLm1ldGFEYXRhLm9iamVjdFVVSUQpKSkge1xyXG4gICAgICBsaXN0LnB1c2goaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF90cnlMb2FkQXJ0aWNsZShmdXJuaXR1cmVEYXRhOiBNZXRhZGF0YSwgcmVzdWx0OiBDdXN0b21GbG9vckdyb3VwUmVzdWx0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmFydGljbGUgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBhcnRpY2xlID0gYXdhaXQgdGhpcy5sb2FkQXJ0aWNsZShmdXJuaXR1cmVEYXRhLml0ZW1JZGVudGlmaWVyKS5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSA9PT0gJ0VDT05OQUJPUlRFRCcpIHtcclxuICAgICAgICByZXN1bHQucmVzdWx0VHlwZSA9IFJlc3VsdFR5cGUuVGltZW91dDtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoYXJ0aWNsZSkge1xyXG4gICAgICB0aGlzLmFydGljbGUgPSBhcnRpY2xlO1xyXG4gICAgICB0aGlzLl9leHRlbmRNZXRhZGF0YVdpdGhBcnRpY2xlRGF0YShmdXJuaXR1cmVEYXRhLCBhcnRpY2xlLCByZXN1bHQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgeyAvLyBubyBhcnRpY2xlIGZvdW5kXHJcbiAgICAgIHJlc3VsdC5yZXN1bHRUeXBlID0gUmVzdWx0VHlwZS5BcnRpY2xlTm90Rm91bmQ7XHJcbiAgICAgIHJlc3VsdC5tZXRhRGF0YSA9IGZ1cm5pdHVyZURhdGE7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZXh0ZW5kTWV0YWRhdGFXaXRoQXJ0aWNsZURhdGEoZnVybml0dXJlRGF0YTogTWV0YWRhdGEsIGFydGljbGU6IEFydGljbGUsIHJlc3VsdDogQ3VzdG9tRmxvb3JHcm91cFJlc3VsdCk6IHZvaWQge1xyXG4gICAgZnVybml0dXJlRGF0YS5yZXNpemFibGUgPSBmYWxzZTtcclxuICAgIGZ1cm5pdHVyZURhdGEuaW9uZSA9IHRydWU7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmNlbnRlclBpdm90ID0gdHJ1ZTtcclxuICAgIGZ1cm5pdHVyZURhdGEuaWdub3JlSW52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmdXJuaXR1cmVEYXRhLm1vZGVsVXJsID0gYXJ0aWNsZS5hc3NldFVybDtcclxuICAgIGZ1cm5pdHVyZURhdGEuc2NoZW1hID0gYXJ0aWNsZS5kaXN0U2NoZW1hID8gYXJ0aWNsZS5kaXN0U2NoZW1hIDogJ1VQX0RCQSc7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmFzc2V0UGF0aCA9IGFydGljbGUuY29udGVudERlbGl2ZXJ5VXJsO1xyXG4gICAgZnVybml0dXJlRGF0YS5pdGVtVHlwZSA9IGl0ZW1UeXBlRnJvbVBsYWNlbWVudChhcnRpY2xlLnBsYWNlbWVudCk7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmNhbkVsZXZhdGUgPSBhcnRpY2xlLnN0YWNrYWJsZTtcclxuICAgIGZ1cm5pdHVyZURhdGEuY29uZmlndXJhYmxlID0gYXJ0aWNsZS5nb29kVHlwZSA/IGFydGljbGUuZ29vZFR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ2InIDogdHJ1ZTtcclxuICAgIGZ1cm5pdHVyZURhdGEuaXRlbU5hbWUgPSBhcnRpY2xlLm5hbWU7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmdvb2RJZCA9IGFydGljbGUuaWQ7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmdvb2RUeXBlID0gYXJ0aWNsZS5nb29kVHlwZTtcclxuICAgIC8vIGZ1cm5pdHVyZURhdGEuaXRlbUlkZW50aWZpZXIgPSBhcnRpY2xlLnNrdTtcclxuICAgIGZ1cm5pdHVyZURhdGEuZWxldmF0aW9uID0gIWZ1cm5pdHVyZURhdGEuZWxldmF0aW9uID8gKGFydGljbGUuZGVmYXVsdEhlaWdodCA/IGFydGljbGUuZGVmYXVsdEhlaWdodCAvIDEwMCA6IDApIDogZnVybml0dXJlRGF0YS5lbGV2YXRpb247XHJcbiAgICBmdXJuaXR1cmVEYXRhLmVsZXZhdGlvbkFkanVzdGFibGUgPSBhcnRpY2xlLmRlZmF1bHRIZWlnaHRBZGp1c3RhYmxlO1xyXG4gICAgZnVybml0dXJlRGF0YS5lbGV2YXRpb25GaXhlZCA9IGZ1cm5pdHVyZURhdGEuZWxldmF0aW9uRml4ZWQgPT09IHRydWUgfHwgYXJ0aWNsZS5kZWZhdWx0SGVpZ2h0ID8gdHJ1ZSA6ICFmdXJuaXR1cmVEYXRhLmVsZXZhdGlvbkFkanVzdGFibGU7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmNhblJvdGF0ZVggPSAhaXNOaWxsKGFydGljbGUuY2FuUm90YXRlKSA/IFJvdGF0aW9uSGVscGVyLkNhblJvdGF0ZVgoYXJ0aWNsZS5jYW5Sb3RhdGUpIDogZmFsc2U7XHJcbiAgICBmdXJuaXR1cmVEYXRhLmNhblJvdGF0ZVkgPSAhaXNOaWxsKGFydGljbGUuY2FuUm90YXRlKSA/IFJvdGF0aW9uSGVscGVyLkNhblJvdGF0ZVkoYXJ0aWNsZS5jYW5Sb3RhdGUpIDogdHJ1ZTtcclxuICAgIGZ1cm5pdHVyZURhdGEuY2FuUm90YXRlWiA9ICFpc05pbGwoYXJ0aWNsZS5jYW5Sb3RhdGUpID8gUm90YXRpb25IZWxwZXIuQ2FuUm90YXRlWihhcnRpY2xlLmNhblJvdGF0ZSkgOiBmYWxzZTtcclxuICAgIGZ1cm5pdHVyZURhdGEuZGVmYXVsdDE4MCA9ICFpc05pbGwoYXJ0aWNsZS5jYW5Sb3RhdGUpID8gUm90YXRpb25IZWxwZXIuRGVmYXVsdDE4MChhcnRpY2xlLmNhblJvdGF0ZSkgOiBmYWxzZTtcclxuICAgIHJlc3VsdC5tZXRhRGF0YSA9IGZ1cm5pdHVyZURhdGE7XHJcbiAgICByZXN1bHQubmFtZSA9IGZ1cm5pdHVyZURhdGEuaXRlbU5hbWU7XHJcbiAgICB0aGlzLm1ldGFkYXRhU2V0Lm5leHQocmVzdWx0Lm1ldGFEYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZUl0ZW1SZW1vdmVkRnJvbVNjZW5lKHJlc3VsdDogeyBpdGVtOiBhbnksIGFkZGVkVG9Hcm91cDogYm9vbGVhbiB9KTogdm9pZCB7XHJcbiAgICBpZiAocmVzdWx0LmFkZGVkVG9Hcm91cCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBoYXNVVUlEOiBib29sZWFuID0gISFyZXN1bHQuaXRlbS5tZXRhZGF0YT8ub2JqZWN0VVVJRDtcclxuICAgIGlmIChyZXN1bHQuaXRlbS51c2VyRGF0YSAmJiAocmVzdWx0Lml0ZW0udXNlckRhdGEuaXRlbUlkIHx8IGhhc1VVSUQpKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlRnJvbU9iamVjdExpc3QoaGFzVVVJRCA/IHJlc3VsdC5pdGVtLm1ldGFkYXRhLm9iamVjdFVVSUQgOiByZXN1bHQuaXRlbS51c2VyRGF0YS5pdGVtSWQsICFoYXNVVUlEKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NhdmVDb25maWd1cmF0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2NvbmZpZ3VyYXRpb25EaXJ0eSkge1xyXG4gICAgICB0aGlzLl9pT25lLnNhdmVDb25maWd1cmF0aW9ucygpO1xyXG4gICAgICB0aGlzLl9jb25maWd1cmF0aW9uRGlydHkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFuVXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5vdExvYWRlZC5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5ub3RGaXhlZE9iamVjdENhY2hlLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLm9ic29sZXRlT2JqZWN0Q2FjaGUubGVuZ3RoID0gMDtcclxuICAgIHRoaXMub2JqZWN0TGlzdC5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5vYmplY3RMaXN0Rml4ZWQubGVuZ3RoID0gMDtcclxuICAgIGNvbnN0IG9ianM6IE9iamVjdDNEW10gPSBBcnJheS5mcm9tKHRoaXMuX2Z1bGxPYmplY3RDYWNoZS52YWx1ZXMoKSk7XHJcbiAgICBvYmpzLmZvckVhY2gobyA9PiBVdGlscy5EaXNwb3NlT2JqZWN0KG8pKTtcclxuICAgIHRoaXMuX2Z1bGxPYmplY3RDYWNoZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbmVlZHMzRE1vZGVsKG1ldGFEYXRhOiBNZXRhZGF0YSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICFpc0Zsb29yRGVjb3JhdGlvbihtZXRhRGF0YS5pdGVtVHlwZSkgJiYgIWlzV2FsbERlY29yYXRpb24obWV0YURhdGEuaXRlbVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaW5pdEZ1bGwzRE9iamVjdChyZXN1bHQ6IEN1c3RvbUZsb29yR3JvdXBSZXN1bHQsIGZyb21QcmVzZXQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IG9iajogT2JqZWN0M0QgPSBhd2FpdCB0aGlzLmdldEZ1bGwzRE9iamVjdChcclxuICAgICAgcmVzdWx0Lm1ldGFEYXRhLml0ZW1JZGVudGlmaWVyLCB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuYXNzZXRQYXRoLCByZXN1bHQubWV0YURhdGEuaXRlbU5hbWUsIHJlc3VsdC5tZXRhRGF0YS5tb2RlbFVybCwgIWZyb21QcmVzZXQpXHJcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuX2Vycm9yU2VydmljZS5hZGRFcnJvcihtZC5pdGVtSWQsIGUpO1xyXG4gICAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5vbmx5VGhyZWVEICYmIHRoaXMuX25lZWRzM0RNb2RlbChyZXN1bHQubWV0YURhdGEpKSB7XHJcbiAgICAgICAgICByZXN1bHQuZXJyb3JNZXNzYWdlcy5wdXNoKGUpO1xyXG4gICAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5vM0RNb2RlbDtcclxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICBpZiAob2JqID09PSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5vbmx5VGhyZWVEICYmIHRoaXMuX25lZWRzM0RNb2RlbChyZXN1bHQubWV0YURhdGEpKSB7XHJcbiAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBSZXN1bHRUeXBlLk5vM0RNb2RlbDtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzdWx0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmdWxsT2JqOiBPYmplY3QzRCA9IG9iai5jbG9uZSgpO1xyXG4gICAgdGhpcy5fYnVpbGRGdXJuaXR1cmVTZXJ2aWNlLmZ1bGwzRE9iamVjdFRvVXNlID0gZnVsbE9iajtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGdWxsM0RPYmplY3QoXHJcbiAgICBza3U6IHN0cmluZyxcclxuICAgIGFzc2V0UGF0aDogc3RyaW5nLFxyXG4gICAgbmFtZT86IHN0cmluZyxcclxuICAgIGFzc2V0VXJsPzogc3RyaW5nLFxyXG4gICAgcHJlcGFyZVByb2dyZXNzOiBib29sZWFuID0gZmFsc2VcclxuICApOiBQcm9taXNlPE9iamVjdDNEPiB7XHJcbiAgICBpZiAodGhpcy5fZnVsbE9iamVjdENhY2hlLmhhcyhza3UpKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fZnVsbE9iamVjdENhY2hlLmdldChza3UpKTtcclxuICAgIH0gZWxzZSBpZiAoYXNzZXRVcmwpIHtcclxuICAgICAgLy8gY29uc3QgZmlsZU5hbWU6IHN0cmluZyA9IGFzc2V0VXJsLnN1YnN0cigwLCBhc3NldFVybC5sYXN0SW5kZXhPZignLicpKS5yZXBsYWNlKCcudW5pdHkzZCcsICcnKTtcclxuICAgICAgY29uc3QgZmlsZU5hbWU6IHN0cmluZyA9IGFzc2V0VXJsLnJlcGxhY2UoJy51bml0eTNkJywgJycpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fdGhyZWVkU2VsZWN0b3JTZXJ2aWNlLmRvd25sb2FkQXNzZXRzQW5kUmV0dXJuKGZpbGVOYW1lLCBhc3NldFBhdGgsIHByZXBhcmVQcm9ncmVzcylcclxuICAgICAgICAudGhlbihcclxuICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iajogT2JqZWN0M0QgPSByZXM7XHJcbiAgICAgICAgICAgIG9iai5uYW1lID0gbmFtZTtcclxuICAgICAgICAgICAgLy8gb2JqLnNjYWxlLnNldCgxMDAsIDEwMCwgMTAwKTtcclxuICAgICAgICAgICAgdGhpcy5fZnVsbE9iamVjdENhY2hlLnNldChza3UsIG9iaik7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmo7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvck1lc3NhZ2UoJ1RIUkVFRF9NT0RFTF9OT1RfRk9VTkQnLCBlcnIpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAvLyB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Mesh, Vector3 } from 'three';
|
|
3
|
+
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils';
|
|
4
|
+
import { ObjectUtils } from '../../../../core/utils/object.utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../../core3d/service/scene.service";
|
|
7
|
+
export class ResizeService {
|
|
8
|
+
constructor(_sceneService) {
|
|
9
|
+
this._sceneService = _sceneService;
|
|
10
|
+
}
|
|
11
|
+
dragConnectorToNewPosition(connector, pos) {
|
|
12
|
+
if (!connector) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const parent = connector.parent;
|
|
16
|
+
const repeat = connector.name && connector.name.match(/rep_.*x/) !== null;
|
|
17
|
+
this._sceneService.scene.attach(connector);
|
|
18
|
+
connector.position.x = pos.x;
|
|
19
|
+
// connector.position.z = pos.z;
|
|
20
|
+
parent.attach(connector);
|
|
21
|
+
this._repositionChildren(connector);
|
|
22
|
+
this._sceneService.needsRender = true;
|
|
23
|
+
}
|
|
24
|
+
resizeElement(connector, parent) {
|
|
25
|
+
if (parent) {
|
|
26
|
+
for (let i = 0; i < parent.children.length; i++) {
|
|
27
|
+
const child = parent.children[i];
|
|
28
|
+
if (child instanceof Mesh && !child.name.toLowerCase().startsWith('c_')) { // it's a mesh, resize it
|
|
29
|
+
if (!child.originalGeo) {
|
|
30
|
+
child.originalGeo = child.geometry.clone();
|
|
31
|
+
}
|
|
32
|
+
const geo = child.originalGeo.clone();
|
|
33
|
+
child.geometry.computeBoundingBox();
|
|
34
|
+
geo.translate(child.geometry.boundingBox.max.x - child.geometry.boundingBox.min.x, 0, 0); // extend over x-axis
|
|
35
|
+
// geo.translate(0, child.geometry.boundingBox.max.y - child.geometry.boundingBox.min.y, 0); // extend over y-axis
|
|
36
|
+
child.geometry = BufferGeometryUtils.mergeGeometries([child.geometry, geo]);
|
|
37
|
+
child.geometry.computeBoundingBox();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
this._sceneService.needsRender = true;
|
|
42
|
+
}
|
|
43
|
+
_repositionChildren(connector) {
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
const parentItem = ObjectUtils.GetParentItem(connector);
|
|
46
|
+
const connectorParent = connector.parent;
|
|
47
|
+
const connectedObject = connector.connectedTo ? parentItem.getObjectByName(connector.connectedTo) : undefined;
|
|
48
|
+
const worldPosConnector = new Vector3();
|
|
49
|
+
connector.getWorldPosition(worldPosConnector);
|
|
50
|
+
if (connectedObject) { // object is connected, find opposite connector and reposition
|
|
51
|
+
const male = connector.name.toLowerCase().indexOf('m') > -1;
|
|
52
|
+
const oppositeConnector = connectedObject.children.find(c => c.name.toLowerCase().indexOf(male ? 'f' : 'm') > -1);
|
|
53
|
+
if (oppositeConnector) {
|
|
54
|
+
this._sceneService.scene.attach(oppositeConnector);
|
|
55
|
+
oppositeConnector.position.x = worldPosConnector.x;
|
|
56
|
+
oppositeConnector.position.z = worldPosConnector.z;
|
|
57
|
+
connectedObject.attach(oppositeConnector);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ResizeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResizeService, deps: [{ token: i1.SceneService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
63
|
+
ResizeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResizeService, providedIn: 'root' });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ResizeService, decorators: [{
|
|
65
|
+
type: Injectable,
|
|
66
|
+
args: [{
|
|
67
|
+
providedIn: 'root'
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: function () { return [{ type: i1.SceneService }]; } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL3RocmVlZHNlbGVjdG9yL3RocmVlZHNlbGVjdG9yL3NlcnZpY2UvcmVzaXplLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsSUFBSSxFQUFZLE9BQU8sRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUM5QyxPQUFPLEtBQUssbUJBQW1CLE1BQU0sOENBQThDLENBQUM7QUFJcEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFDQUFxQyxDQUFDOzs7QUFLaEUsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFDVSxhQUEyQjtRQUEzQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUVyQyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsU0FBcUIsRUFBRSxHQUFZO1FBQ25FLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFDRCxNQUFNLE1BQU0sR0FBYSxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFZLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDO1FBRW5GLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdCLGdDQUFnQztRQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdB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QkFDbkQsZUFBZSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7SUFDSCxDQUFDOzsyR0E5RFUsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWVzaCwgT2JqZWN0M0QsIFZlY3RvcjN9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0ICogYXMgQnVmZmVyR2VvbWV0cnlVdGlscyBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vdXRpbHMvQnVmZmVyR2VvbWV0cnlVdGlscyc7XHJcbmltcG9ydCB7U2NlbmVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlM2Qvc2VydmljZS9zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDdXN0b21GbG9vckl0ZW19IGZyb20gJy4uLy4uLy4uL2NvcmUzZC9pdGVtcy9jdXN0b20tZmxvb3ItaXRlbSc7XHJcbmltcG9ydCB7Q3VzdG9tTWVzaH0gZnJvbSAnLi4vLi4vLi4vY29yZTNkL2l0ZW1zL2N1c3RvbS1vYmplY3RzJztcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXplU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2NlbmVTZXJ2aWNlOiBTY2VuZVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcmFnQ29ubmVjdG9yVG9OZXdQb3NpdGlvbihjb25uZWN0b3I6IEN1c3RvbU1lc2gsIHBvczogVmVjdG9yMyk6IHZvaWQge1xyXG4gICAgaWYgKCFjb25uZWN0b3IpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyZW50OiBPYmplY3QzRCA9IGNvbm5lY3Rvci5wYXJlbnQ7XHJcbiAgICBjb25zdCByZXBlYXQ6IGJvb2xlYW4gPSBjb25uZWN0b3IubmFtZSAmJiBjb25uZWN0b3IubmFtZS5tYXRjaCgvcmVwXy4qeC8pICE9PSBudWxsO1xyXG5cclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5hdHRhY2goY29ubmVjdG9yKTtcclxuICAgIGNvbm5lY3Rvci5wb3NpdGlvbi54ID0gcG9zLng7XHJcbiAgICAvLyBjb25uZWN0b3IucG9zaXRpb24ueiA9IHBvcy56O1xyXG4gICAgcGFyZW50LmF0dGFjaChjb25uZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuX3JlcG9zaXRpb25DaGlsZHJlbihjb25uZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5uZWVkc1JlbmRlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzaXplRWxlbWVudChjb25uZWN0b3I6IHN0cmluZywgcGFyZW50OiBPYmplY3QzRCk6IHZvaWQge1xyXG4gICAgaWYgKHBhcmVudCkge1xyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgcGFyZW50LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBwYXJlbnQuY2hpbGRyZW5baV07XHJcbiAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgTWVzaCAmJiAhY2hpbGQubmFtZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ2NfJykpIHsgLy8gaXQncyBhIG1lc2gsIHJlc2l6ZSBpdFxyXG4gICAgICAgICAgaWYgKCEoY2hpbGQgYXMgYW55KS5vcmlnaW5hbEdlbykge1xyXG4gICAgICAgICAgICAoY2hpbGQgYXMgYW55KS5vcmlnaW5hbEdlbyA9IGNoaWxkLmdlb21ldHJ5LmNsb25lKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBnZW8gPSAoY2hpbGQgYXMgYW55KS5vcmlnaW5hbEdlby5jbG9uZSgpO1xyXG4gICAgICAgICAgY2hpbGQuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgICBnZW8udHJhbnNsYXRlKGNoaWxkLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gY2hpbGQuZ2VvbWV0cnkuYm91bmRpbmdCb3gubWluLngsIDAsIDApOyAvLyBleHRlbmQgb3ZlciB4LWF4aXNcclxuICAgICAgICAgIC8vIGdlby50cmFuc2xhdGUoMCwgY2hpbGQuZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnkgLSBjaGlsZC5nZW9tZXRyeS5ib3VuZGluZ0JveC5taW4ueSwgMCk7IC8vIGV4dGVuZCBvdmVyIHktYXhpc1xyXG4gICAgICAgICAgY2hpbGQuZ2VvbWV0cnkgPSBCdWZmZXJHZW9tZXRyeVV0aWxzLm1lcmdlR2VvbWV0cmllcyhbY2hpbGQuZ2VvbWV0cnksIGdlb10pO1xyXG4gICAgICAgICAgY2hpbGQuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2UubmVlZHNSZW5kZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVwb3NpdGlvbkNoaWxkcmVuKGNvbm5lY3RvcjogQ3VzdG9tTWVzaCk6IHZvaWQge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgY29uc3QgcGFyZW50SXRlbTogQ3VzdG9tRmxvb3JJdGVtID0gT2JqZWN0VXRpbHMuR2V0UGFyZW50SXRlbShjb25uZWN0b3IpO1xyXG4gICAgY29uc3QgY29ubmVjdG9yUGFyZW50OiBPYmplY3QzRCA9IGNvbm5lY3Rvci5wYXJlbnQ7XHJcbiAgICBjb25zdCBjb25uZWN0ZWRPYmplY3Q6IE9iamVjdDNEID0gY29ubmVjdG9yLmNvbm5lY3RlZFRvID8gcGFyZW50SXRlbS5nZXRPYmplY3RCeU5hbWUoY29ubmVjdG9yLmNvbm5lY3RlZFRvKSA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IHdvcmxkUG9zQ29ubmVjdG9yOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoKTtcclxuICAgIGNvbm5lY3Rvci5nZXRXb3JsZFBvc2l0aW9uKHdvcmxkUG9zQ29ubmVjdG9yKTtcclxuXHJcbiAgICBpZiAoY29ubmVjdGVkT2JqZWN0KSB7IC8vIG9iamVjdCBpcyBjb25uZWN0ZWQsIGZpbmQgb3Bwb3NpdGUgY29ubmVjdG9yIGFuZCByZXBvc2l0aW9uXHJcbiAgICAgIGNvbnN0IG1hbGU6IGJvb2xlYW4gPSBjb25uZWN0b3IubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ20nKSA+IC0xO1xyXG4gICAgICBjb25zdCBvcHBvc2l0ZUNvbm5lY3RvciA9IGNvbm5lY3RlZE9iamVjdC5jaGlsZHJlbi5maW5kKGMgPT4gYy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihtYWxlID8gJ2YnIDogJ20nKSA+IC0xKTtcclxuICAgICAgaWYgKG9wcG9zaXRlQ29ubmVjdG9yKSB7XHJcbiAgICAgICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmF0dGFjaChvcHBvc2l0ZUNvbm5lY3Rvcik7XHJcbiAgICAgICAgb3Bwb3NpdGVDb25uZWN0b3IucG9zaXRpb24ueCA9IHdvcmxkUG9zQ29ubmVjdG9yLng7XHJcbiAgICAgICAgb3Bwb3NpdGVDb25uZWN0b3IucG9zaXRpb24ueiA9IHdvcmxkUG9zQ29ubmVjdG9yLno7XHJcbiAgICAgICAgY29ubmVjdGVkT2JqZWN0LmF0dGFjaChvcHBvc2l0ZUNvbm5lY3Rvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|