@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,512 @@
|
|
|
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 { Component, ElementRef, HostBinding, HostListener, ViewChild } from '@angular/core';
|
|
11
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
12
|
+
import { AmbientLight, DirectionalLight, HemisphereLight, PointLight, SpotLight } from 'three';
|
|
13
|
+
import { LightEnum } from '../../../../core/enum/light.enum';
|
|
14
|
+
import { ShadowMapLocalType } from '../../../../core/enum/shadow-map-type.enum';
|
|
15
|
+
import { ConfigurationKey } from '../../../../core/enum/configuration-key.enum';
|
|
16
|
+
import { outputEncodingMap, shadowMapTypesMap } from '../../../../core/model/light-preset';
|
|
17
|
+
import { DialogType } from '../../../../shared/dialog/enum/dialog-type.enum';
|
|
18
|
+
import { ErrorMessage } from '../../../../core/model/error-message';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "../../service/lights.service";
|
|
21
|
+
import * as i2 from "../../../../core/service/configuration.service";
|
|
22
|
+
import * as i3 from "../../../../shared/dialog/service/dialog.service";
|
|
23
|
+
import * as i4 from "../../../../core/service/homedecorator-dictionary.service";
|
|
24
|
+
import * as i5 from "../../service/light-presets.service";
|
|
25
|
+
import * as i6 from "../../service/scene.service";
|
|
26
|
+
import * as i7 from "@angular/material/button";
|
|
27
|
+
import * as i8 from "@angular/material/icon";
|
|
28
|
+
import * as i9 from "@angular/material/select";
|
|
29
|
+
import * as i10 from "@angular/material/core";
|
|
30
|
+
import * as i11 from "./edit-light/edit-light.component";
|
|
31
|
+
import * as i12 from "./edit-lightplan/edit-lightplan.component";
|
|
32
|
+
import * as i13 from "@angular/common";
|
|
33
|
+
import * as i14 from "@angular/material/tooltip";
|
|
34
|
+
import * as i15 from "@angular/forms";
|
|
35
|
+
import * as i16 from "../../../../core/pipe/localize.pipe";
|
|
36
|
+
export class LightplanComponent {
|
|
37
|
+
constructor(_lightsService, _configurationService, _dialogService, _dictionaryService, _changeDetector, lightPresetsService, sceneService) {
|
|
38
|
+
this._lightsService = _lightsService;
|
|
39
|
+
this._configurationService = _configurationService;
|
|
40
|
+
this._dialogService = _dialogService;
|
|
41
|
+
this._dictionaryService = _dictionaryService;
|
|
42
|
+
this._changeDetector = _changeDetector;
|
|
43
|
+
this.lightPresetsService = lightPresetsService;
|
|
44
|
+
this.sceneService = sceneService;
|
|
45
|
+
this.light = LightEnum;
|
|
46
|
+
this.shadowMapTypes = ShadowMapLocalType;
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
this._lightsMap = new Map([
|
|
49
|
+
[LightEnum.SpotLight, SpotLight],
|
|
50
|
+
[LightEnum.DirectionalLight, DirectionalLight],
|
|
51
|
+
[LightEnum.AmbientLight, AmbientLight],
|
|
52
|
+
[LightEnum.HemisphereLight, HemisphereLight],
|
|
53
|
+
[LightEnum.PointLight, PointLight]
|
|
54
|
+
]);
|
|
55
|
+
this.showDialog = false;
|
|
56
|
+
this.showEditPopup = false;
|
|
57
|
+
this.showPlanEditPopup = false;
|
|
58
|
+
this._subs = [];
|
|
59
|
+
this._enableMoveDialog = false;
|
|
60
|
+
this._newLight = false;
|
|
61
|
+
}
|
|
62
|
+
moveDialog(event) {
|
|
63
|
+
if (this._enableMoveDialog) {
|
|
64
|
+
this.left += event.movementX;
|
|
65
|
+
this.top += event.movementY;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
cancelMoveDialog(event) {
|
|
69
|
+
this._enableMoveDialog = false;
|
|
70
|
+
}
|
|
71
|
+
ngOnInit() {
|
|
72
|
+
this._subs.push(this._configurationService.onChange.subscribe((changed) => {
|
|
73
|
+
if (ConfigurationKey.ShowLightplansDialog in changed) {
|
|
74
|
+
this._showDialog();
|
|
75
|
+
}
|
|
76
|
+
}), this._lightsService.onLightAdded.subscribe(({ light, index }) => {
|
|
77
|
+
this.editLight(index);
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
ngOnDestroy() {
|
|
81
|
+
this._subs.forEach(s => s.unsubscribe());
|
|
82
|
+
this.dialogElement = undefined;
|
|
83
|
+
}
|
|
84
|
+
hideDialog() {
|
|
85
|
+
this.showDialog = false;
|
|
86
|
+
}
|
|
87
|
+
getLights() {
|
|
88
|
+
return this._lightsService.lights;
|
|
89
|
+
}
|
|
90
|
+
loadPreset(selectedPreset) {
|
|
91
|
+
// this.lightPresetsService.updateActivePreset();
|
|
92
|
+
this.lightPresetsService.loadLightPreset(selectedPreset);
|
|
93
|
+
}
|
|
94
|
+
addLight(type) {
|
|
95
|
+
this._newLight = true;
|
|
96
|
+
// this._lightsService.createLight(this._getLightClassFromType(type));
|
|
97
|
+
this._lightsService.createLight(type);
|
|
98
|
+
}
|
|
99
|
+
editLight(idx) {
|
|
100
|
+
this.lightToEdit = this._lightsService.lights[idx];
|
|
101
|
+
this._indexToEdit = idx;
|
|
102
|
+
this._cloneLight = this.lightToEdit.clone(true);
|
|
103
|
+
this.showEditPopup = true;
|
|
104
|
+
}
|
|
105
|
+
removeLight(idx) {
|
|
106
|
+
this._lightsService.removeLightByIndex(idx);
|
|
107
|
+
this.lightPresetsService.removeLightByIndex(idx);
|
|
108
|
+
}
|
|
109
|
+
handleSaveLight(light) {
|
|
110
|
+
this._lightsService.replaceLight(this._indexToEdit, light);
|
|
111
|
+
this.lightPresetsService.upsertLight(this._indexToEdit, light);
|
|
112
|
+
this._reset();
|
|
113
|
+
}
|
|
114
|
+
handleCancelLight(light) {
|
|
115
|
+
if (this._newLight) {
|
|
116
|
+
this._lightsService.removeLightByIndex(this._indexToEdit);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this._lightsService.replaceLight(this._indexToEdit, this._cloneLight);
|
|
120
|
+
}
|
|
121
|
+
this._reset();
|
|
122
|
+
}
|
|
123
|
+
handleTitleMouseMove(event) {
|
|
124
|
+
if (event.buttons === 1) {
|
|
125
|
+
if (this.dialogElement && this.dialogElement.nativeElement) {
|
|
126
|
+
const styles = getComputedStyle(this.dialogElement.nativeElement);
|
|
127
|
+
this.left = parseInt(styles.left, 0);
|
|
128
|
+
this.top = parseInt(styles.top, 0);
|
|
129
|
+
}
|
|
130
|
+
this._enableMoveDialog = true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
saveAsPreset(event, preset) {
|
|
134
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
+
if (event) {
|
|
136
|
+
event.preventDefault();
|
|
137
|
+
event.stopPropagation();
|
|
138
|
+
event.stopImmediatePropagation();
|
|
139
|
+
}
|
|
140
|
+
yield this.lightPresetsService.savePreset(preset);
|
|
141
|
+
this._changeDetector.markForCheck();
|
|
142
|
+
this._changeDetector.detectChanges();
|
|
143
|
+
// await this.lightPresetsService.updateIndexJSON();
|
|
144
|
+
// this.lightPresetsService.indexedPresets = [...this.lightPresetsService.loadedLightPresets];
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
_reset() {
|
|
148
|
+
this.lightToEdit = undefined;
|
|
149
|
+
this._newLight = false;
|
|
150
|
+
this.showEditPopup = false;
|
|
151
|
+
}
|
|
152
|
+
_showDialog() {
|
|
153
|
+
this.showDialog = true;
|
|
154
|
+
}
|
|
155
|
+
_getLightClassFromType(type) {
|
|
156
|
+
return this._lightsMap.get(type);
|
|
157
|
+
}
|
|
158
|
+
editPreset(newValue) {
|
|
159
|
+
this.showPlanEditPopup = newValue;
|
|
160
|
+
}
|
|
161
|
+
savePreset(preset) {
|
|
162
|
+
preset.dirty = true;
|
|
163
|
+
const index = this.lightPresetsService.loadedLightPresets.findIndex(l => l.name === this.lightPresetsService.activeLightPreset.name);
|
|
164
|
+
this.sceneService.renderer.shadowMap.type = shadowMapTypesMap.get(preset.shadowMapType);
|
|
165
|
+
this.sceneService.renderer.outputColorSpace = outputEncodingMap.get(preset.outputEncoding);
|
|
166
|
+
this.sceneService.renderer.toneMappingExposure = preset.toneMappingExposure;
|
|
167
|
+
this.sceneService.rendererPropsChange();
|
|
168
|
+
this.lightPresetsService.loadedLightPresets[index] = preset;
|
|
169
|
+
this.lightPresetsService.activeLightPreset = preset;
|
|
170
|
+
this.showPlanEditPopup = false;
|
|
171
|
+
}
|
|
172
|
+
deletePreset() {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
const messageConfig = {
|
|
175
|
+
type: DialogType.Question,
|
|
176
|
+
title: this._dictionaryService.get('DELETE'),
|
|
177
|
+
messages: [new ErrorMessage(this._dictionaryService.get('DELETE_CONFIRMATION_MESSAGE'))]
|
|
178
|
+
};
|
|
179
|
+
const dialogRef = this._dialogService.showDialog({ data: messageConfig });
|
|
180
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
181
|
+
if (result) {
|
|
182
|
+
this.lightPresetsService.deleteCurrentPreset();
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
newPreset() {
|
|
188
|
+
this.lightPresetsService.createNewLightPreset();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
LightplanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LightplanComponent, deps: [{ token: i1.LightsService }, { token: i2.ConfigurationService }, { token: i3.DialogService }, { token: i4.HomedecoratorDictionaryService }, { token: i0.ChangeDetectorRef }, { token: i5.LightPresetsService }, { token: i6.SceneService }], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
+
LightplanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LightplanComponent, selector: "lightplan", host: { listeners: { "document:mousemove": "moveDialog($event)", "document:mouseup": "cancelMoveDialog($event)" }, properties: { "class.show": "this.showDialog", "class.popup-showing": "this.showPlanEditPopup" } }, viewQueries: [{ propertyName: "dialogElement", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
|
|
193
|
+
<ng-container *ngIf="showDialog">
|
|
194
|
+
<div class="lightplan-wrapper" #dialog @showHideDialog [style.top.px]="top" [style.left.px]="left">
|
|
195
|
+
<div class="title-bar">
|
|
196
|
+
<div class="title-bar-move" (mousedown)="handleTitleMouseMove($event)"></div>
|
|
197
|
+
<button mat-icon-button class="hide-dialog" (click)="hideDialog()">
|
|
198
|
+
<mat-icon class="homedecorator-material-icons" aria-hidden="true">close</mat-icon>
|
|
199
|
+
</button>
|
|
200
|
+
</div>
|
|
201
|
+
<div class="content-wrapper">
|
|
202
|
+
<div class="section">
|
|
203
|
+
<div class="edit-lightplan-wrapper">
|
|
204
|
+
<h4 [textContent]="'LIGHTPLAN' | localize"></h4>
|
|
205
|
+
<div class="edit-button-wrapper">
|
|
206
|
+
<div matTooltip="{{'ADD' | localize}}">
|
|
207
|
+
<button mat-icon-button (click)="newPreset()">
|
|
208
|
+
<mat-icon class="homedecorator-material-icons">add</mat-icon>
|
|
209
|
+
</button>
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
<div class="light-preset-selection">
|
|
214
|
+
<mat-select class="dropdown-container" [ngModel]="lightPresetsService.activeLightPreset.name" panelClass="dropdown-container">
|
|
215
|
+
<mat-select-trigger>
|
|
216
|
+
{{ lightPresetsService.activeLightPreset.name }}
|
|
217
|
+
</mat-select-trigger>
|
|
218
|
+
<div *ngFor="let lightPreset of lightPresetsService.loadedLightPresets">
|
|
219
|
+
<mat-option [value]="lightPreset.name" (click)="loadPreset(lightPreset)">
|
|
220
|
+
{{ lightPreset.name }}
|
|
221
|
+
<mat-icon *ngIf="lightPreset.dirty" class="homedecorator-material-icons" (click)="saveAsPreset($event, lightPreset)">save</mat-icon>
|
|
222
|
+
</mat-option>
|
|
223
|
+
</div>
|
|
224
|
+
</mat-select>
|
|
225
|
+
<div matTooltip="{{'EDIT' | localize}}">
|
|
226
|
+
<button mat-icon-button (click)="editPreset(true)">
|
|
227
|
+
<mat-icon class="homedecorator-material-icons">edit</mat-icon>
|
|
228
|
+
</button>
|
|
229
|
+
</div>
|
|
230
|
+
<div matTooltip="{{'REMOVE' | localize}}">
|
|
231
|
+
<button mat-icon-button (click)="deletePreset()">
|
|
232
|
+
<mat-icon class="homedecorator-material-icons">delete</mat-icon>
|
|
233
|
+
</button>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
<div class="section">
|
|
238
|
+
<h4 [textContent]="'GROUP' | localize"></h4>
|
|
239
|
+
<span [textContent]="lightPresetsService.activeLightPreset.group"></span>
|
|
240
|
+
</div>
|
|
241
|
+
<div class="section">
|
|
242
|
+
<h4 [textContent]="'NAVIGATOR_TYPE' | localize"></h4>
|
|
243
|
+
<span [textContent]="lightPresetsService.activeLightPreset.navigatorType"></span>
|
|
244
|
+
</div>
|
|
245
|
+
<div class="section">
|
|
246
|
+
<h4 [textContent]="'RENDER' | localize"></h4>
|
|
247
|
+
<div class="section-row">
|
|
248
|
+
<span [textContent]="'SHADOW_MAP_TYPE' | localize"></span>
|
|
249
|
+
<span [textContent]="lightPresetsService.activeLightPreset.shadowMapType"></span>
|
|
250
|
+
</div>
|
|
251
|
+
<div class="section-row">
|
|
252
|
+
<span [textContent]="'OUTPUT_ENCODING' | localize"></span>
|
|
253
|
+
<span [textContent]="lightPresetsService.activeLightPreset.outputEncoding"></span>
|
|
254
|
+
</div>
|
|
255
|
+
<div class="section-row">
|
|
256
|
+
<span [textContent]="'TONE_MAPPING_EXPOSURE' | localize"></span>
|
|
257
|
+
<span [textContent]="lightPresetsService.activeLightPreset.toneMappingExposure"></span>
|
|
258
|
+
</div>
|
|
259
|
+
<div class="section-row">
|
|
260
|
+
<span [textContent]="'PHYSICALLY_CORRECT_LIGHTS' | localize"></span>
|
|
261
|
+
<span [textContent]="(lightPresetsService.activeLightPreset.physicallyCorrectLights ? 'TRUE' : 'FALSE') | localize"></span>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
<div class="section">
|
|
265
|
+
<h4 [textContent]="'ADD' | localize"></h4>
|
|
266
|
+
<div class="button-row">
|
|
267
|
+
<button mat-button class="add-light" (click)="addLight(light.SpotLight)" fxLayout="row" fxLayoutalign="center center">
|
|
268
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
269
|
+
{{ 'SPOTLIGHT' | localize }}
|
|
270
|
+
</button>
|
|
271
|
+
<button mat-button class="add-light" (click)="addLight(light.DirectionalLight)" fxLayout="row" fxLayoutalign="center center">
|
|
272
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
273
|
+
{{ 'DIRECTIONAL' | localize }}
|
|
274
|
+
</button>
|
|
275
|
+
<button mat-button class="add-light" (click)="addLight(light.HemisphereLight)" fxLayout="row" fxLayoutalign="center center">
|
|
276
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
277
|
+
{{ 'HEMISPHERE' | localize }}
|
|
278
|
+
</button>
|
|
279
|
+
<button mat-button class="add-light" (click)="addLight(light.AmbientLight)" fxLayout="row" fxLayoutalign="center center">
|
|
280
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
281
|
+
{{ 'AMBIENT' | localize }}
|
|
282
|
+
</button>
|
|
283
|
+
<button mat-button class="add-light" (click)="addLight(light.PointLight)" fxLayout="row" fxLayoutalign="center center">
|
|
284
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
285
|
+
{{ 'POINT' | localize }}
|
|
286
|
+
</button>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
<div class="section">
|
|
290
|
+
<h4 [textContent]="'EDIT' | localize"></h4>
|
|
291
|
+
<div class="scene-lights">
|
|
292
|
+
<div class="scene-light" *ngFor="let light of getLights(); let index = index">
|
|
293
|
+
<div class="edit-wrapper">
|
|
294
|
+
<div class="light-name" [textContent]="light.name"></div>
|
|
295
|
+
<div class="edit-button-wrapper">
|
|
296
|
+
<div matTooltip="{{'EDIT' | localize}}">
|
|
297
|
+
<button mat-icon-button (click)="editLight(index)">
|
|
298
|
+
<mat-icon class="homedecorator-material-icons">edit</mat-icon>
|
|
299
|
+
</button>
|
|
300
|
+
</div>
|
|
301
|
+
<div matTooltip="{{'REMOVE' | localize}}">
|
|
302
|
+
<button mat-icon-button (click)="removeLight(index)">
|
|
303
|
+
<mat-icon class="homedecorator-material-icons">delete</mat-icon>
|
|
304
|
+
</button>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
</div>
|
|
311
|
+
</div>
|
|
312
|
+
<div class="button-wrapper">
|
|
313
|
+
<div matTooltip="{{'SAVE_AS_PRESET' | localize}}">
|
|
314
|
+
<button mat-icon-button (click)="saveAsPreset($event)">
|
|
315
|
+
<mat-icon class="homedecorator-material-icons">save</mat-icon>
|
|
316
|
+
</button>
|
|
317
|
+
</div>
|
|
318
|
+
</div>
|
|
319
|
+
</div>
|
|
320
|
+
</ng-container>
|
|
321
|
+
<edit-light *ngIf="showEditPopup"
|
|
322
|
+
[light]="lightToEdit"
|
|
323
|
+
(okClick)="handleSaveLight($event)"
|
|
324
|
+
(cancelClick)="handleCancelLight($event)"
|
|
325
|
+
></edit-light>
|
|
326
|
+
<edit-lightplan *ngIf="showPlanEditPopup"
|
|
327
|
+
[lightPreset]="lightPresetsService.activeLightPreset"
|
|
328
|
+
(saveClick)="savePreset($event)"
|
|
329
|
+
(cancelClick)="showPlanEditPopup = false"
|
|
330
|
+
></edit-lightplan>
|
|
331
|
+
`, isInline: true, styles: [":host.popup-showing .lightplan-wrapper{opacity:.1!important}:host.show{display:flex}:host .lightplan-wrapper{opacity:1;position:fixed;background:white;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:1px 1px 3px 2px #0101014d;z-index:904}:host .lightplan-wrapper .scene-lights{max-height:300px;overflow-y:auto}:host .title-bar{display:flex;justify-content:flex-end;background:#3760a1}:host .title-bar mat-icon{color:#fff}:host .title-bar .title-bar-move{display:flex;flex-basis:100%}:host .content-wrapper{font-size:14px;padding:15px;background:white;min-height:400px;min-width:500px;display:flex;flex-direction:column;max-height:500px;overflow-y:auto}:host .section:not(last-child){margin-bottom:20px}:host .button-wrapper{display:flex;height:60px;align-items:center;justify-content:flex-end}:host .edit-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between}:host .edit-button-wrapper{display:flex}:host h4{margin:10px 0}:host .edit-lightplan-wrapper{display:flex}:host .light-preset-selection{display:flex}:host .button-row{display:flex}:host .add-light{font-size:11px;border:1px solid #3760a1;border-radius:25px}:host .add-light:not(last-child){margin-right:5px}:host .dropdown-container{align-self:center}:host .section-row{display:flex;flex-direction:row;justify-content:space-between}::ng-deep .cdk-overlay-container .mat-select-panel .mat-option-text{display:flex;justify-content:space-between;align-items:center}\n"], components: [{ type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i11.EditLightComponent, selector: "edit-light", inputs: ["light"], outputs: ["okClick", "cancelClick"] }, { type: i12.EditLightplanComponent, selector: "edit-lightplan", inputs: ["lightPreset"], outputs: ["saveClick", "cancelClick"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i15.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i15.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.MatSelectTrigger, selector: "mat-select-trigger" }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "localize": i16.LocalizePipe }, animations: [
|
|
332
|
+
trigger('showHideDialog', [
|
|
333
|
+
state('void', style({ opacity: 0 })),
|
|
334
|
+
state('*', style({ opacity: 1 })),
|
|
335
|
+
transition('void <=> *', animate(200))
|
|
336
|
+
])
|
|
337
|
+
] });
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LightplanComponent, decorators: [{
|
|
339
|
+
type: Component,
|
|
340
|
+
args: [{
|
|
341
|
+
selector: 'lightplan',
|
|
342
|
+
template: `
|
|
343
|
+
<ng-container *ngIf="showDialog">
|
|
344
|
+
<div class="lightplan-wrapper" #dialog @showHideDialog [style.top.px]="top" [style.left.px]="left">
|
|
345
|
+
<div class="title-bar">
|
|
346
|
+
<div class="title-bar-move" (mousedown)="handleTitleMouseMove($event)"></div>
|
|
347
|
+
<button mat-icon-button class="hide-dialog" (click)="hideDialog()">
|
|
348
|
+
<mat-icon class="homedecorator-material-icons" aria-hidden="true">close</mat-icon>
|
|
349
|
+
</button>
|
|
350
|
+
</div>
|
|
351
|
+
<div class="content-wrapper">
|
|
352
|
+
<div class="section">
|
|
353
|
+
<div class="edit-lightplan-wrapper">
|
|
354
|
+
<h4 [textContent]="'LIGHTPLAN' | localize"></h4>
|
|
355
|
+
<div class="edit-button-wrapper">
|
|
356
|
+
<div matTooltip="{{'ADD' | localize}}">
|
|
357
|
+
<button mat-icon-button (click)="newPreset()">
|
|
358
|
+
<mat-icon class="homedecorator-material-icons">add</mat-icon>
|
|
359
|
+
</button>
|
|
360
|
+
</div>
|
|
361
|
+
</div>
|
|
362
|
+
</div>
|
|
363
|
+
<div class="light-preset-selection">
|
|
364
|
+
<mat-select class="dropdown-container" [ngModel]="lightPresetsService.activeLightPreset.name" panelClass="dropdown-container">
|
|
365
|
+
<mat-select-trigger>
|
|
366
|
+
{{ lightPresetsService.activeLightPreset.name }}
|
|
367
|
+
</mat-select-trigger>
|
|
368
|
+
<div *ngFor="let lightPreset of lightPresetsService.loadedLightPresets">
|
|
369
|
+
<mat-option [value]="lightPreset.name" (click)="loadPreset(lightPreset)">
|
|
370
|
+
{{ lightPreset.name }}
|
|
371
|
+
<mat-icon *ngIf="lightPreset.dirty" class="homedecorator-material-icons" (click)="saveAsPreset($event, lightPreset)">save</mat-icon>
|
|
372
|
+
</mat-option>
|
|
373
|
+
</div>
|
|
374
|
+
</mat-select>
|
|
375
|
+
<div matTooltip="{{'EDIT' | localize}}">
|
|
376
|
+
<button mat-icon-button (click)="editPreset(true)">
|
|
377
|
+
<mat-icon class="homedecorator-material-icons">edit</mat-icon>
|
|
378
|
+
</button>
|
|
379
|
+
</div>
|
|
380
|
+
<div matTooltip="{{'REMOVE' | localize}}">
|
|
381
|
+
<button mat-icon-button (click)="deletePreset()">
|
|
382
|
+
<mat-icon class="homedecorator-material-icons">delete</mat-icon>
|
|
383
|
+
</button>
|
|
384
|
+
</div>
|
|
385
|
+
</div>
|
|
386
|
+
</div>
|
|
387
|
+
<div class="section">
|
|
388
|
+
<h4 [textContent]="'GROUP' | localize"></h4>
|
|
389
|
+
<span [textContent]="lightPresetsService.activeLightPreset.group"></span>
|
|
390
|
+
</div>
|
|
391
|
+
<div class="section">
|
|
392
|
+
<h4 [textContent]="'NAVIGATOR_TYPE' | localize"></h4>
|
|
393
|
+
<span [textContent]="lightPresetsService.activeLightPreset.navigatorType"></span>
|
|
394
|
+
</div>
|
|
395
|
+
<div class="section">
|
|
396
|
+
<h4 [textContent]="'RENDER' | localize"></h4>
|
|
397
|
+
<div class="section-row">
|
|
398
|
+
<span [textContent]="'SHADOW_MAP_TYPE' | localize"></span>
|
|
399
|
+
<span [textContent]="lightPresetsService.activeLightPreset.shadowMapType"></span>
|
|
400
|
+
</div>
|
|
401
|
+
<div class="section-row">
|
|
402
|
+
<span [textContent]="'OUTPUT_ENCODING' | localize"></span>
|
|
403
|
+
<span [textContent]="lightPresetsService.activeLightPreset.outputEncoding"></span>
|
|
404
|
+
</div>
|
|
405
|
+
<div class="section-row">
|
|
406
|
+
<span [textContent]="'TONE_MAPPING_EXPOSURE' | localize"></span>
|
|
407
|
+
<span [textContent]="lightPresetsService.activeLightPreset.toneMappingExposure"></span>
|
|
408
|
+
</div>
|
|
409
|
+
<div class="section-row">
|
|
410
|
+
<span [textContent]="'PHYSICALLY_CORRECT_LIGHTS' | localize"></span>
|
|
411
|
+
<span [textContent]="(lightPresetsService.activeLightPreset.physicallyCorrectLights ? 'TRUE' : 'FALSE') | localize"></span>
|
|
412
|
+
</div>
|
|
413
|
+
</div>
|
|
414
|
+
<div class="section">
|
|
415
|
+
<h4 [textContent]="'ADD' | localize"></h4>
|
|
416
|
+
<div class="button-row">
|
|
417
|
+
<button mat-button class="add-light" (click)="addLight(light.SpotLight)" fxLayout="row" fxLayoutalign="center center">
|
|
418
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
419
|
+
{{ 'SPOTLIGHT' | localize }}
|
|
420
|
+
</button>
|
|
421
|
+
<button mat-button class="add-light" (click)="addLight(light.DirectionalLight)" fxLayout="row" fxLayoutalign="center center">
|
|
422
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
423
|
+
{{ 'DIRECTIONAL' | localize }}
|
|
424
|
+
</button>
|
|
425
|
+
<button mat-button class="add-light" (click)="addLight(light.HemisphereLight)" fxLayout="row" fxLayoutalign="center center">
|
|
426
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
427
|
+
{{ 'HEMISPHERE' | localize }}
|
|
428
|
+
</button>
|
|
429
|
+
<button mat-button class="add-light" (click)="addLight(light.AmbientLight)" fxLayout="row" fxLayoutalign="center center">
|
|
430
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
431
|
+
{{ 'AMBIENT' | localize }}
|
|
432
|
+
</button>
|
|
433
|
+
<button mat-button class="add-light" (click)="addLight(light.PointLight)" fxLayout="row" fxLayoutalign="center center">
|
|
434
|
+
<mat-icon class="homedecorator-material-icons">wb_incandescent</mat-icon>
|
|
435
|
+
{{ 'POINT' | localize }}
|
|
436
|
+
</button>
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
439
|
+
<div class="section">
|
|
440
|
+
<h4 [textContent]="'EDIT' | localize"></h4>
|
|
441
|
+
<div class="scene-lights">
|
|
442
|
+
<div class="scene-light" *ngFor="let light of getLights(); let index = index">
|
|
443
|
+
<div class="edit-wrapper">
|
|
444
|
+
<div class="light-name" [textContent]="light.name"></div>
|
|
445
|
+
<div class="edit-button-wrapper">
|
|
446
|
+
<div matTooltip="{{'EDIT' | localize}}">
|
|
447
|
+
<button mat-icon-button (click)="editLight(index)">
|
|
448
|
+
<mat-icon class="homedecorator-material-icons">edit</mat-icon>
|
|
449
|
+
</button>
|
|
450
|
+
</div>
|
|
451
|
+
<div matTooltip="{{'REMOVE' | localize}}">
|
|
452
|
+
<button mat-icon-button (click)="removeLight(index)">
|
|
453
|
+
<mat-icon class="homedecorator-material-icons">delete</mat-icon>
|
|
454
|
+
</button>
|
|
455
|
+
</div>
|
|
456
|
+
</div>
|
|
457
|
+
</div>
|
|
458
|
+
</div>
|
|
459
|
+
</div>
|
|
460
|
+
</div>
|
|
461
|
+
</div>
|
|
462
|
+
<div class="button-wrapper">
|
|
463
|
+
<div matTooltip="{{'SAVE_AS_PRESET' | localize}}">
|
|
464
|
+
<button mat-icon-button (click)="saveAsPreset($event)">
|
|
465
|
+
<mat-icon class="homedecorator-material-icons">save</mat-icon>
|
|
466
|
+
</button>
|
|
467
|
+
</div>
|
|
468
|
+
</div>
|
|
469
|
+
</div>
|
|
470
|
+
</ng-container>
|
|
471
|
+
<edit-light *ngIf="showEditPopup"
|
|
472
|
+
[light]="lightToEdit"
|
|
473
|
+
(okClick)="handleSaveLight($event)"
|
|
474
|
+
(cancelClick)="handleCancelLight($event)"
|
|
475
|
+
></edit-light>
|
|
476
|
+
<edit-lightplan *ngIf="showPlanEditPopup"
|
|
477
|
+
[lightPreset]="lightPresetsService.activeLightPreset"
|
|
478
|
+
(saveClick)="savePreset($event)"
|
|
479
|
+
(cancelClick)="showPlanEditPopup = false"
|
|
480
|
+
></edit-lightplan>
|
|
481
|
+
`,
|
|
482
|
+
styleUrls: [
|
|
483
|
+
'./lightplan.component.scss'
|
|
484
|
+
],
|
|
485
|
+
animations: [
|
|
486
|
+
trigger('showHideDialog', [
|
|
487
|
+
state('void', style({ opacity: 0 })),
|
|
488
|
+
state('*', style({ opacity: 1 })),
|
|
489
|
+
transition('void <=> *', animate(200))
|
|
490
|
+
])
|
|
491
|
+
]
|
|
492
|
+
}]
|
|
493
|
+
}], ctorParameters: function () { return [{ type: i1.LightsService }, { type: i2.ConfigurationService }, { type: i3.DialogService }, { type: i4.HomedecoratorDictionaryService }, { type: i0.ChangeDetectorRef }, { type: i5.LightPresetsService }, { type: i6.SceneService }]; }, propDecorators: { dialogElement: [{
|
|
494
|
+
type: ViewChild,
|
|
495
|
+
args: ['dialog', { read: ElementRef, static: true }]
|
|
496
|
+
}], showDialog: [{
|
|
497
|
+
type: HostBinding,
|
|
498
|
+
args: ['class.show']
|
|
499
|
+
}], showEditPopup: [{
|
|
500
|
+
type: HostBinding,
|
|
501
|
+
args: ['class.popup-showing']
|
|
502
|
+
}], showPlanEditPopup: [{
|
|
503
|
+
type: HostBinding,
|
|
504
|
+
args: ['class.popup-showing']
|
|
505
|
+
}], moveDialog: [{
|
|
506
|
+
type: HostListener,
|
|
507
|
+
args: ['document:mousemove', ['$event']]
|
|
508
|
+
}], cancelMoveDialog: [{
|
|
509
|
+
type: HostListener,
|
|
510
|
+
args: ['document:mouseup', ['$event']]
|
|
511
|
+
}] } });
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRwbGFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL2NvbXBvbmVudHMvbGlnaHRwbGFuL2xpZ2h0cGxhbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVoSSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFTLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFFcEcsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBTTlFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBYyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXRHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZKbEUsTUFBTSxPQUFPLGtCQUFrQjtJQWdEN0IsWUFDVSxjQUE2QixFQUM3QixxQkFBMkMsRUFDM0MsY0FBNkIsRUFDN0Isa0JBQWtELEVBQ2xELGVBQWtDLEVBQ25DLG1CQUF3QyxFQUN4QyxZQUEwQjtRQU56QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBZ0M7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ25DLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUF0RG5CLFVBQUssR0FBcUIsU0FBUyxDQUFDO1FBQ3BDLG1CQUFjLEdBQThCLGtCQUFrQixDQUFDO1FBRS9FLGFBQWE7UUFDTCxlQUFVLEdBQWlDLElBQUksR0FBRyxDQUEwQjtZQUNsRixDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1lBQ2hDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1lBQzlDLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7WUFDdEMsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQztZQUM1QyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1NBQ25DLENBQUMsQ0FBQztRQU1JLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFHL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBbUJsQyxVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUMzQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsY0FBUyxHQUFZLEtBQUssQ0FBQztJQVduQyxDQUFDO0lBL0JNLFVBQVUsQ0FBQyxLQUFpQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDN0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUdNLGdCQUFnQixDQUFDLEtBQWlCO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQXVCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4RCxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixJQUFJLE9BQU8sRUFBRTtnQkFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUUsRUFBRTtZQUM1RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxjQUEyQjtRQUMzQyxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQWU7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQVUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxlQUFlLENBQUMsS0FBWTtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQVk7UUFDbkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNEO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBaUI7UUFDM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUU7Z0JBQzFELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDcEM7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVZLFlBQVksQ0FBQyxLQUFpQixFQUFFLE1BQW9COztZQUMvRCxJQUFJLEtBQUssRUFBRTtnQkFDVCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7YUFDbEM7WUFDRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JDLG9EQUFvRDtZQUNwRCw4RkFBOEY7UUFDaEcsQ0FBQztLQUFBO0lBRU8sTUFBTTtRQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxJQUFlO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxRQUFpQjtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVLENBQUMsTUFBbUI7UUFDbkMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM1RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBQ3BELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVZLFlBQVk7O1lBQ3ZCLE1BQU0sYUFBYSxHQUFpQjtnQkFDbEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRO2dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLFFBQVEsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO2FBQ3pGLENBQUM7WUFDRixNQUFNLFNBQVMsR0FBa0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztZQUN2RyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLE1BQU0sRUFBRTtvQkFDVixJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztpQkFDaEQ7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNsRCxDQUFDOztnSEFqTVUsa0JBQWtCO29HQUFsQixrQkFBa0IsNFZBYUEsVUFBVSwyQ0FwSzdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMklULHUvRkFJVztRQUNWLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7WUFDL0IsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkMsQ0FBQztLQUNIOzRGQUVVLGtCQUFrQjtrQkF6SjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJJVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsNEJBQTRCO3FCQUM3QjtvQkFDRCxVQUFVLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLGdCQUFnQixFQUFFOzRCQUN4QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUNsQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUMvQixVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjs2U0FlUSxhQUFhO3NCQURuQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEQsVUFBVTtzQkFEaEIsV0FBVzt1QkFBQyxZQUFZO2dCQUlsQixhQUFhO3NCQURuQixXQUFXO3VCQUFDLHFCQUFxQjtnQkFJM0IsaUJBQWlCO3NCQUR2QixXQUFXO3VCQUFDLHFCQUFxQjtnQkFJM0IsVUFBVTtzQkFEaEIsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTdkMsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7QW1iaWVudExpZ2h0LCBEaXJlY3Rpb25hbExpZ2h0LCBIZW1pc3BoZXJlTGlnaHQsIExpZ2h0LCBQb2ludExpZ2h0LCBTcG90TGlnaHR9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7TGlnaHRFbnVtfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2VudW0vbGlnaHQuZW51bSc7XHJcbmltcG9ydCB7U2hhZG93TWFwTG9jYWxUeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2VudW0vc2hhZG93LW1hcC10eXBlLmVudW0nO1xyXG5pbXBvcnQge0xpZ2h0c1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvbGlnaHRzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvZGlhbG9nL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xpZ2h0UHJlc2V0c1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvbGlnaHQtcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY2VuZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2NlbmUuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdGlvbktleX0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9lbnVtL2NvbmZpZ3VyYXRpb24ta2V5LmVudW0nO1xyXG5pbXBvcnQge0xpZ2h0UHJlc2V0LCBvdXRwdXRFbmNvZGluZ01hcCwgc2hhZG93TWFwVHlwZXNNYXB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvbGlnaHQtcHJlc2V0JztcclxuaW1wb3J0IHtEaWFsb2dDb25maWd9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9kaWFsb2cvaW50ZXJmYWNlL2RpYWxvZy1jb25maWcuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtEaWFsb2dUeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvZGlhbG9nL2VudW0vZGlhbG9nLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7RXJyb3JNZXNzYWdlfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL2Vycm9yLW1lc3NhZ2UnO1xyXG5pbXBvcnQge0RpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yRGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLWRpY3Rpb25hcnkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpZ2h0cGxhbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEaWFsb2dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWdodHBsYW4td3JhcHBlclwiICNkaWFsb2cgQHNob3dIaWRlRGlhbG9nIFtzdHlsZS50b3AucHhdPVwidG9wXCIgW3N0eWxlLmxlZnQucHhdPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWJhci1tb3ZlXCIgKG1vdXNlZG93bik9XCJoYW5kbGVUaXRsZU1vdXNlTW92ZSgkZXZlbnQpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiaGlkZS1kaWFsb2dcIiAoY2xpY2spPVwiaGlkZURpYWxvZygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdC1saWdodHBsYW4td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBbdGV4dENvbnRlbnRdPVwiJ0xJR0hUUExBTicgfCBsb2NhbGl6ZVwiPjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXQtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBtYXRUb29sdGlwPVwie3snQUREJyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJuZXdQcmVzZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlnaHQtcHJlc2V0LXNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZHJvcGRvd24tY29udGFpbmVyXCIgW25nTW9kZWxdPVwibGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5uYW1lXCIgcGFuZWxDbGFzcz1cImRyb3Bkb3duLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsaWdodFByZXNldCBvZiBsaWdodFByZXNldHNTZXJ2aWNlLmxvYWRlZExpZ2h0UHJlc2V0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImxpZ2h0UHJlc2V0Lm5hbWVcIiAoY2xpY2spPVwibG9hZFByZXNldChsaWdodFByZXNldClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaWdodFByZXNldC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwibGlnaHRQcmVzZXQuZGlydHlcIiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIiAoY2xpY2spPVwic2F2ZUFzUHJlc2V0KCRldmVudCwgbGlnaHRQcmVzZXQpXCI+c2F2ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG1hdFRvb2x0aXA9XCJ7eydFRElUJyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImVkaXRQcmVzZXQodHJ1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBtYXRUb29sdGlwPVwie3snUkVNT1ZFJyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRlbGV0ZVByZXNldCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDQgW3RleHRDb250ZW50XT1cIidHUk9VUCcgfCBsb2NhbGl6ZVwiPjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5ncm91cFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDQgW3RleHRDb250ZW50XT1cIidOQVZJR0FUT1JfVFlQRScgfCBsb2NhbGl6ZVwiPjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5uYXZpZ2F0b3JUeXBlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxoNCBbdGV4dENvbnRlbnRdPVwiJ1JFTkRFUicgfCBsb2NhbGl6ZVwiPjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1NIQURPV19NQVBfVFlQRScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5zaGFkb3dNYXBUeXBlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ09VVFBVVF9FTkNPRElORycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5vdXRwdXRFbmNvZGluZ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidUT05FX01BUFBJTkdfRVhQT1NVUkUnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpZ2h0UHJlc2V0c1NlcnZpY2UuYWN0aXZlTGlnaHRQcmVzZXQudG9uZU1hcHBpbmdFeHBvc3VyZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidQSFlTSUNBTExZX0NPUlJFQ1RfTElHSFRTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCIobGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldC5waHlzaWNhbGx5Q29ycmVjdExpZ2h0cyA/ICdUUlVFJyA6ICdGQUxTRScpIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aDQgW3RleHRDb250ZW50XT1cIidBREQnIHwgbG9jYWxpemVcIj48L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJhZGQtbGlnaHRcIiAoY2xpY2spPVwiYWRkTGlnaHQobGlnaHQuU3BvdExpZ2h0KVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRhbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPndiX2luY2FuZGVzY2VudDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdTUE9UTElHSFQnIHwgbG9jYWxpemUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJhZGQtbGlnaHRcIiAoY2xpY2spPVwiYWRkTGlnaHQobGlnaHQuRGlyZWN0aW9uYWxMaWdodClcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0YWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj53Yl9pbmNhbmRlc2NlbnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnRElSRUNUSU9OQUwnIHwgbG9jYWxpemUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJhZGQtbGlnaHRcIiAoY2xpY2spPVwiYWRkTGlnaHQobGlnaHQuSGVtaXNwaGVyZUxpZ2h0KVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRhbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPndiX2luY2FuZGVzY2VudDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdIRU1JU1BIRVJFJyB8IGxvY2FsaXplIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwiYWRkLWxpZ2h0XCIgKGNsaWNrKT1cImFkZExpZ2h0KGxpZ2h0LkFtYmllbnRMaWdodClcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0YWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj53Yl9pbmNhbmRlc2NlbnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQU1CSUVOVCcgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cImFkZC1saWdodFwiIChjbGljayk9XCJhZGRMaWdodChsaWdodC5Qb2ludExpZ2h0KVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRhbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPndiX2luY2FuZGVzY2VudDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdQT0lOVCcgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGg0IFt0ZXh0Q29udGVudF09XCInRURJVCcgfCBsb2NhbGl6ZVwiPjwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlnaHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpZ2h0XCIgKm5nRm9yPVwibGV0IGxpZ2h0IG9mIGdldExpZ2h0cygpOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlnaHQtbmFtZVwiIFt0ZXh0Q29udGVudF09XCJsaWdodC5uYW1lXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdC1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbWF0VG9vbHRpcD1cInt7J0VESVQnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZWRpdExpZ2h0KGluZGV4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG1hdFRvb2x0aXA9XCJ7eydSRU1PVkUnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlTGlnaHQoaW5kZXgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgbWF0VG9vbHRpcD1cInt7J1NBVkVfQVNfUFJFU0VUJyB8IGxvY2FsaXplfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlQXNQcmVzZXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5zYXZlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGVkaXQtbGlnaHQgKm5nSWY9XCJzaG93RWRpdFBvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgW2xpZ2h0XT1cImxpZ2h0VG9FZGl0XCJcclxuICAgICAgICAgICAgICAgICAgKG9rQ2xpY2spPVwiaGFuZGxlU2F2ZUxpZ2h0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiaGFuZGxlQ2FuY2VsTGlnaHQoJGV2ZW50KVwiXHJcbiAgICAgID48L2VkaXQtbGlnaHQ+XHJcbiAgICAgIDxlZGl0LWxpZ2h0cGxhbiAqbmdJZj1cInNob3dQbGFuRWRpdFBvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtsaWdodFByZXNldF09XCJsaWdodFByZXNldHNTZXJ2aWNlLmFjdGl2ZUxpZ2h0UHJlc2V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVByZXNldCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJzaG93UGxhbkVkaXRQb3B1cCA9IGZhbHNlXCJcclxuICAgICAgPjwvZWRpdC1saWdodHBsYW4+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2xpZ2h0cGxhbi5jb21wb25lbnQuc2NzcydcclxuICBdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3Nob3dIaWRlRGlhbG9nJywgW1xyXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtvcGFjaXR5OiAwfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtvcGFjaXR5OiAxfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkIDw9PiAqJywgYW5pbWF0ZSgyMDApKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWdodHBsYW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGxpZ2h0OiB0eXBlb2YgTGlnaHRFbnVtID0gTGlnaHRFbnVtO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaGFkb3dNYXBUeXBlczogdHlwZW9mIFNoYWRvd01hcExvY2FsVHlwZSA9IFNoYWRvd01hcExvY2FsVHlwZTtcclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIHByaXZhdGUgX2xpZ2h0c01hcDogTWFwPExpZ2h0RW51bSwgdHlwZW9mIExpZ2h0PiA9IG5ldyBNYXA8TGlnaHRFbnVtLCB0eXBlb2YgTGlnaHQ+KFtcclxuICAgIFtMaWdodEVudW0uU3BvdExpZ2h0LCBTcG90TGlnaHRdLFxyXG4gICAgW0xpZ2h0RW51bS5EaXJlY3Rpb25hbExpZ2h0LCBEaXJlY3Rpb25hbExpZ2h0XSxcclxuICAgIFtMaWdodEVudW0uQW1iaWVudExpZ2h0LCBBbWJpZW50TGlnaHRdLFxyXG4gICAgW0xpZ2h0RW51bS5IZW1pc3BoZXJlTGlnaHQsIEhlbWlzcGhlcmVMaWdodF0sXHJcbiAgICBbTGlnaHRFbnVtLlBvaW50TGlnaHQsIFBvaW50TGlnaHRdXHJcbiAgXSk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZycsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIGRpYWxvZ0VsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdycpXHJcbiAgcHVibGljIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3B1cC1zaG93aW5nJylcclxuICBwdWJsaWMgc2hvd0VkaXRQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBvcHVwLXNob3dpbmcnKVxyXG4gIHB1YmxpYyBzaG93UGxhbkVkaXRQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBtb3ZlRGlhbG9nKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZW5hYmxlTW92ZURpYWxvZykge1xyXG4gICAgICB0aGlzLmxlZnQgKz0gZXZlbnQubW92ZW1lbnRYO1xyXG4gICAgICB0aGlzLnRvcCArPSBldmVudC5tb3ZlbWVudFk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgY2FuY2VsTW92ZURpYWxvZyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZW5hYmxlTW92ZURpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvcDogbnVtYmVyO1xyXG4gIHB1YmxpYyBsZWZ0OiBudW1iZXI7XHJcbiAgcHVibGljIGxpZ2h0VG9FZGl0OiBMaWdodDtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9lbmFibGVNb3ZlRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaW5kZXhUb0VkaXQ6IG51bWJlcjtcclxuICBwcml2YXRlIF9jbG9uZUxpZ2h0OiBMaWdodDtcclxuICBwcml2YXRlIF9uZXdMaWdodDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2xpZ2h0c1NlcnZpY2U6IExpZ2h0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IEhvbWVkZWNvcmF0b3JEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBsaWdodFByZXNldHNTZXJ2aWNlOiBMaWdodFByZXNldHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjZW5lU2VydmljZTogU2NlbmVTZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlLm9uQ2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlZCkgPT4ge1xyXG4gICAgICAgIGlmIChDb25maWd1cmF0aW9uS2V5LlNob3dMaWdodHBsYW5zRGlhbG9nIGluIGNoYW5nZWQpIHtcclxuICAgICAgICAgIHRoaXMuX3Nob3dEaWFsb2coKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9saWdodHNTZXJ2aWNlLm9uTGlnaHRBZGRlZC5zdWJzY3JpYmUoKHtsaWdodCwgaW5kZXh9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5lZGl0TGlnaHQoaW5kZXgpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuZGlhbG9nRWxlbWVudCA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoaWRlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TGlnaHRzKCk6IExpZ2h0W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpZ2h0c1NlcnZpY2UubGlnaHRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRQcmVzZXQoc2VsZWN0ZWRQcmVzZXQ6IExpZ2h0UHJlc2V0KTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLmxpZ2h0UHJlc2V0c1NlcnZpY2UudXBkYXRlQWN0aXZlUHJlc2V0KCk7XHJcbiAgICB0aGlzLmxpZ2h0UHJlc2V0c1NlcnZpY2UubG9hZExpZ2h0UHJlc2V0KHNlbGVjdGVkUHJlc2V0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRMaWdodCh0eXBlOiBMaWdodEVudW0pOiB2b2lkIHtcclxuICAgIHRoaXMuX25ld0xpZ2h0ID0gdHJ1ZTtcclxuICAgIC8vIHRoaXMuX2xpZ2h0c1NlcnZpY2UuY3JlYXRlTGlnaHQodGhpcy5fZ2V0TGlnaHRDbGFzc0Zyb21UeXBlKHR5cGUpKTtcclxuICAgIHRoaXMuX2xpZ2h0c1NlcnZpY2UuY3JlYXRlTGlnaHQodHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdExpZ2h0KGlkeDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpZ2h0VG9FZGl0ID0gdGhpcy5fbGlnaHRzU2VydmljZS5saWdodHNbaWR4XTtcclxuICAgIHRoaXMuX2luZGV4VG9FZGl0ID0gaWR4O1xyXG4gICAgdGhpcy5fY2xvbmVMaWdodCA9IDxMaWdodD50aGlzLmxpZ2h0VG9FZGl0LmNsb25lKHRydWUpO1xyXG4gICAgdGhpcy5zaG93RWRpdFBvcHVwID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVMaWdodChpZHg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fbGlnaHRzU2VydmljZS5yZW1vdmVMaWdodEJ5SW5kZXgoaWR4KTtcclxuICAgIHRoaXMubGlnaHRQcmVzZXRzU2VydmljZS5yZW1vdmVMaWdodEJ5SW5kZXgoaWR4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTYXZlTGlnaHQobGlnaHQ6IExpZ2h0KTogdm9pZCB7XHJcbiAgICB0aGlzLl9saWdodHNTZXJ2aWNlLnJlcGxhY2VMaWdodCh0aGlzLl9pbmRleFRvRWRpdCwgbGlnaHQpO1xyXG4gICAgdGhpcy5saWdodFByZXNldHNTZXJ2aWNlLnVwc2VydExpZ2h0KHRoaXMuX2luZGV4VG9FZGl0LCBsaWdodCk7XHJcbiAgICB0aGlzLl9yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbmNlbExpZ2h0KGxpZ2h0OiBMaWdodCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX25ld0xpZ2h0KSB7XHJcbiAgICAgIHRoaXMuX2xpZ2h0c1NlcnZpY2UucmVtb3ZlTGlnaHRCeUluZGV4KHRoaXMuX2luZGV4VG9FZGl0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xpZ2h0c1NlcnZpY2UucmVwbGFjZUxpZ2h0KHRoaXMuX2luZGV4VG9FZGl0LCB0aGlzLl9jbG9uZUxpZ2h0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3Jlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVGl0bGVNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5idXR0b25zID09PSAxKSB7XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0VsZW1lbnQgJiYgdGhpcy5kaWFsb2dFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBzdHlsZXMgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZGlhbG9nRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB0aGlzLmxlZnQgPSBwYXJzZUludChzdHlsZXMubGVmdCwgMCk7XHJcbiAgICAgICAgdGhpcy50b3AgPSBwYXJzZUludChzdHlsZXMudG9wLCAwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9lbmFibGVNb3ZlRGlhbG9nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlQXNQcmVzZXQoZXZlbnQ6IE1vdXNlRXZlbnQsIHByZXNldD86IExpZ2h0UHJlc2V0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5saWdodFByZXNldHNTZXJ2aWNlLnNhdmVQcmVzZXQocHJlc2V0KTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gYXdhaXQgdGhpcy5saWdodFByZXNldHNTZXJ2aWNlLnVwZGF0ZUluZGV4SlNPTigpO1xyXG4gICAgLy8gdGhpcy5saWdodFByZXNldHNTZXJ2aWNlLmluZGV4ZWRQcmVzZXRzID0gWy4uLnRoaXMubGlnaHRQcmVzZXRzU2VydmljZS5sb2FkZWRMaWdodFByZXNldHNdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpZ2h0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fbmV3TGlnaHQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0VkaXRQb3B1cCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2hvd0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRMaWdodENsYXNzRnJvbVR5cGUodHlwZTogTGlnaHRFbnVtKTogdHlwZW9mIExpZ2h0IHtcclxuICAgIHJldHVybiB0aGlzLl9saWdodHNNYXAuZ2V0KHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVkaXRQcmVzZXQobmV3VmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1BsYW5FZGl0UG9wdXAgPSBuZXdWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlUHJlc2V0KHByZXNldDogTGlnaHRQcmVzZXQpOiB2b2lkIHtcclxuICAgIHByZXNldC5kaXJ0eSA9IHRydWU7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubGlnaHRQcmVzZXRzU2VydmljZS5sb2FkZWRMaWdodFByZXNldHMuZmluZEluZGV4KGwgPT4gbC5uYW1lID09PSB0aGlzLmxpZ2h0UHJlc2V0c1NlcnZpY2UuYWN0aXZlTGlnaHRQcmVzZXQubmFtZSk7XHJcbiAgICB0aGlzLnNjZW5lU2VydmljZS5yZW5kZXJlci5zaGFkb3dNYXAudHlwZSA9IHNoYWRvd01hcFR5cGVzTWFwLmdldChwcmVzZXQuc2hhZG93TWFwVHlwZSk7XHJcbiAgICB0aGlzLnNjZW5lU2VydmljZS5yZW5kZXJlci5vdXRwdXRDb2xvclNwYWNlID0gb3V0cHV0RW5jb2RpbmdNYXAuZ2V0KHByZXNldC5vdXRwdXRFbmNvZGluZyk7XHJcbiAgICB0aGlzLnNjZW5lU2VydmljZS5yZW5kZXJlci50b25lTWFwcGluZ0V4cG9zdXJlID0gcHJlc2V0LnRvbmVNYXBwaW5nRXhwb3N1cmU7XHJcbiAgICB0aGlzLnNjZW5lU2VydmljZS5yZW5kZXJlclByb3BzQ2hhbmdlKCk7XHJcbiAgICB0aGlzLmxpZ2h0UHJlc2V0c1NlcnZpY2UubG9hZGVkTGlnaHRQcmVzZXRzW2luZGV4XSA9IHByZXNldDtcclxuICAgIHRoaXMubGlnaHRQcmVzZXRzU2VydmljZS5hY3RpdmVMaWdodFByZXNldCA9IHByZXNldDtcclxuICAgIHRoaXMuc2hvd1BsYW5FZGl0UG9wdXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkZWxldGVQcmVzZXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBtZXNzYWdlQ29uZmlnOiBEaWFsb2dDb25maWcgPSB7XHJcbiAgICAgIHR5cGU6IERpYWxvZ1R5cGUuUXVlc3Rpb24sXHJcbiAgICAgIHRpdGxlOiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ0RFTEVURScpLFxyXG4gICAgICBtZXNzYWdlczogW25ldyBFcnJvck1lc3NhZ2UodGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdERUxFVEVfQ09ORklSTUFUSU9OX01FU1NBR0UnKSldXHJcbiAgICB9O1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0RpYWxvZyh7ZGF0YTogbWVzc2FnZUNvbmZpZ30pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLmxpZ2h0UHJlc2V0c1NlcnZpY2UuZGVsZXRlQ3VycmVudFByZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXdQcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpZ2h0UHJlc2V0c1NlcnZpY2UuY3JlYXRlTmV3TGlnaHRQcmVzZXQoKTtcclxuICB9XHJcbn1cclxuIl19
|