@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,123 @@
|
|
|
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 } from '@angular/core';
|
|
11
|
+
import { MessageType } from '../../../core/enum/message-type.enum';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/material/dialog";
|
|
14
|
+
import * as i2 from "../../../core/service/message-bus.service";
|
|
15
|
+
import * as i3 from "../../../shared/screen-size-analysis/screen-size-analysis.service";
|
|
16
|
+
import * as i4 from "../../../core/service/homedecorator-app.service";
|
|
17
|
+
import * as i5 from "../../../core/service/homedecorator-settings.service";
|
|
18
|
+
import * as i6 from "../../../core/service/web-worker.service";
|
|
19
|
+
import * as i7 from "@angular/material/button";
|
|
20
|
+
import * as i8 from "@angular/material/icon";
|
|
21
|
+
import * as i9 from "@angular/material/grid-list";
|
|
22
|
+
import * as i10 from "@angular/flex-layout/flex";
|
|
23
|
+
import * as i11 from "@angular/common";
|
|
24
|
+
import * as i12 from "../../../core/pipe/localize.pipe";
|
|
25
|
+
import * as i13 from "../../../core/pipe/filter.pipe";
|
|
26
|
+
export class LandingScreenModalComponent {
|
|
27
|
+
constructor(dialogRef, _messageService, _screenAnalysis, _appService, _settingsService, _webWorkerService /*,
|
|
28
|
+
private _changeDetector: ChangeDetectorRef*/) {
|
|
29
|
+
this.dialogRef = dialogRef;
|
|
30
|
+
this._messageService = _messageService;
|
|
31
|
+
this._screenAnalysis = _screenAnalysis;
|
|
32
|
+
this._appService = _appService;
|
|
33
|
+
this._settingsService = _settingsService;
|
|
34
|
+
this._webWorkerService = _webWorkerService;
|
|
35
|
+
this.floorPlans = [];
|
|
36
|
+
this.presets = [];
|
|
37
|
+
this.showUploadDiagram = false;
|
|
38
|
+
this._subs = [];
|
|
39
|
+
this._initScreenSizeHandling();
|
|
40
|
+
this._subs.push(this._appService.presetsLoaded.subscribe((presets) => {
|
|
41
|
+
if (presets) {
|
|
42
|
+
this.presets = presets;
|
|
43
|
+
// this._changeDetector.detectChanges();
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
this._subs.push(this._appService.floorPlansLoaded.subscribe((floorplans) => {
|
|
47
|
+
if (floorplans) {
|
|
48
|
+
this.floorPlans = floorplans;
|
|
49
|
+
// this._changeDetector.detectChanges();
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
this._subs.push(this._settingsService.settingsLoaded.subscribe((loaded) => {
|
|
53
|
+
if (loaded) {
|
|
54
|
+
this.assetPath = this._settingsService.settings.assetPath;
|
|
55
|
+
this.showUploadDiagram = this._settingsService.settings.showUploadDiagram;
|
|
56
|
+
}
|
|
57
|
+
}));
|
|
58
|
+
this._webWorkerService.initWorkers();
|
|
59
|
+
}
|
|
60
|
+
ngOnDestroy() {
|
|
61
|
+
this._subs.forEach(s => s.unsubscribe());
|
|
62
|
+
}
|
|
63
|
+
_initScreenSizeHandling() {
|
|
64
|
+
this._screenAnalysis.screenSizeChanged.subscribe((info) => {
|
|
65
|
+
this.desktopSizeScreen = info.isDesktopSize;
|
|
66
|
+
this.tabletSizeScreen = info.isTabletSize;
|
|
67
|
+
this.phoneSizeScreen = info.isPhoneSize;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
_close() {
|
|
71
|
+
this.dialogRef.close();
|
|
72
|
+
}
|
|
73
|
+
openOpenDialog() {
|
|
74
|
+
this._messageService.emit(MessageType.ShowOpenDialog);
|
|
75
|
+
this._close();
|
|
76
|
+
}
|
|
77
|
+
startFromScratch() {
|
|
78
|
+
this._messageService.emit(MessageType.StartWithEmptyRoom);
|
|
79
|
+
this._close();
|
|
80
|
+
}
|
|
81
|
+
startWithRoom(preset, switchTo2D = false) {
|
|
82
|
+
this._messageService.emit(MessageType.StartWithPreset, { preset, switchTo2D });
|
|
83
|
+
this._close();
|
|
84
|
+
}
|
|
85
|
+
validateImportFile(event) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
const filename = event.target.files[0];
|
|
88
|
+
if (filename.type === 'image/png' || filename.type === 'image/jpg' || filename.type === 'image/jpeg') {
|
|
89
|
+
const base64 = yield this._handleFileUpload(filename);
|
|
90
|
+
this._messageService.emit(MessageType.StartDrawingDiagram, base64);
|
|
91
|
+
}
|
|
92
|
+
else if (filename.type === 'application/pdf') {
|
|
93
|
+
this._messageService.emit(MessageType.StartCroppingPDF, filename);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
_handleFileUpload(file) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
return new Promise((resolve, reject) => {
|
|
100
|
+
const fileReader = new FileReader();
|
|
101
|
+
fileReader.readAsDataURL(file);
|
|
102
|
+
fileReader.onload = (e) => {
|
|
103
|
+
resolve(fileReader.result);
|
|
104
|
+
};
|
|
105
|
+
fileReader.onerror = (error) => {
|
|
106
|
+
reject(error);
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
LandingScreenModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LandingScreenModalComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.MessageBusService }, { token: i3.ScreenSizeAnalysisService }, { token: i4.HomedecoratorAppService }, { token: i5.HomedecoratorSettingsService }, { token: i6.WebWorkerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
LandingScreenModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LandingScreenModalComponent, selector: "rp-landing-screen-modal", ngImport: i0, template: "<h1 class=\"mat-headline\">{{ 'MYROOMPLANS' | localize | uppercase }}</h1>\r\n\r\n<div mat-dialog-content class=\"dialog-content\" fxLayout=\"column\" cdkTrapFocus>\r\n <div class=\"actions\" fxLayout=\"row\" fxLayoutAlign=\"space-around flex-start\">\r\n\r\n <div *ngIf=\"desktopSizeScreen\" class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"startFromScratch()\">\r\n <span class=\"icon-wrapper\"><mat-icon class=\"homedecorator-material-icons\">create</mat-icon></span>\r\n <span>{{ 'CREATE_NEW_PLAN_FROM_SCRATCH' | localize }}</span>\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"desktopSizeScreen && showUploadDiagram\" class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"fileInput.click()\">\r\n <span class=\"icon-wrapper\"><mat-icon class=\"homedecorator-material-icons\">upload_file</mat-icon></span>\r\n <span>{{ 'CREATE_FROM_DIAGRAM' | localize }}</span>\r\n </button>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <button mat-raised-button color=\"primary\" (click)=\"openOpenDialog()\">\r\n <span class=\"icon-wrapper\"><mat-icon class=\"homedecorator-material-icons\">cloud_upload</mat-icon></span>\r\n <span>{{ 'OPEN_SAVED_ROOM_PLAN' | localize }}</span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"library\" fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\">\r\n <div *ngIf=\"desktopSizeScreen\" class=\"col left\" fxFlex=\"grow\">\r\n <h2 class=\"mat-subheading-2\" [textContent]=\"'START_WITH_A_ROOM_SHAPE' | localize\"></h2>\r\n <mat-grid-list cols=\"2\" rowHeight=\"115px\">\r\n <mat-grid-tile *ngFor=\"let room of floorPlans | filter:'show':true\">\r\n <button mat-button (click)=\"startWithRoom(room, true)\">\r\n <img [src]=\"assetPath + room.thumbnail\">\r\n </button>\r\n </mat-grid-tile>\r\n </mat-grid-list>\r\n </div>\r\n <div class=\"col\" [class.right]=\"desktopSizeScreen\" fxFlex=\"grow\">\r\n <h2 class=\"mat-subheading-2\">\r\n {{ 'OPEN_A_COMPLETE_ROOM' | localize }}\r\n </h2>\r\n <mat-grid-list [cols]=\"desktopSizeScreen ? 2 : 3\" rowHeight=\"115px\">\r\n <mat-grid-tile *ngFor=\"let preset of presets | filter:'show':true\">\r\n <button mat-button (click)=\"startWithRoom(preset)\">\r\n <img [src]=\"assetPath + preset.thumbnail\">\r\n </button>\r\n </mat-grid-tile>\r\n </mat-grid-list>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<input\r\n type=\"file\"\r\n id=\"fileInput\"\r\n (change)=\"validateImportFile($event)\"\r\n style=\"display: none\"\r\n #fileInput\r\n>\r\n", styles: [":host{width:inherit;height:inherit;background:white;display:flex;flex-direction:column}.mat-headline{text-align:center;line-height:1;margin:0 0 16px}:host img{max-width:100%}.col{height:100%;width:33%}.icon-wrapper{display:inline-block;margin-right:10px}.actions{margin-top:8px;margin-bottom:24px;min-height:60px}.actions>.col{height:100%}.actions ::ng-deep button{height:60px;width:100%;background:#dda73f;padding:0 10px}.actions ::ng-deep button span{font-size:14px}.actions ::ng-deep .mat-icon{display:block;margin:0 auto}.library ::ng-deep button{height:100%;width:100%}.library .mat-subheading-2{text-align: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.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i9.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }], directives: [{ type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "uppercase": i11.UpperCasePipe, "localize": i12.LocalizePipe, "filter": i13.FilterPipe } });
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LandingScreenModalComponent, decorators: [{
|
|
115
|
+
type: Component,
|
|
116
|
+
args: [{
|
|
117
|
+
selector: 'rp-landing-screen-modal',
|
|
118
|
+
templateUrl: './landing-screen-modal.component.html',
|
|
119
|
+
styleUrls: ['./landing-screen-modal.component.scss'] /*,
|
|
120
|
+
changeDetection: ChangeDetectionStrategy.OnPush*/
|
|
121
|
+
}]
|
|
122
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.MessageBusService }, { type: i3.ScreenSizeAnalysisService }, { type: i4.HomedecoratorAppService }, { type: i5.HomedecoratorSettingsService }, { type: i6.WebWorkerService }]; } });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGluZy1zY3JlZW4tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvcGx1Z2lucy90b29sYmFyL2xhbmRpbmctc2NyZWVuLW1vZGFsL2xhbmRpbmctc2NyZWVuLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvdG9vbGJhci9sYW5kaW5nLXNjcmVlbi1tb2RhbC9sYW5kaW5nLXNjcmVlbi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBVW5ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUWpFLE1BQU0sT0FBTywyQkFBMkI7SUFjdEMsWUFDUyxTQUFvRCxFQUNuRCxlQUFrQyxFQUNsQyxlQUEwQyxFQUMxQyxXQUFvQyxFQUNwQyxnQkFBOEMsRUFDOUMsaUJBQW1DLENBQUE7Z0RBQ0M7UUFOckMsY0FBUyxHQUFULFNBQVMsQ0FBMkM7UUFDbkQsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBbEJ0QyxlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFHdkIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBTWxDLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBV2pDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElB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QUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNwRTtpQkFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNuRTtRQUNILENBQUM7S0FBQTtJQUVhLGlCQUFpQixDQUFDLElBQVM7O1lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDN0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7eUhBdEdVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLCtEQ2xCeEMsbXBGQTREQTs0RkQxQ2EsMkJBQTJCO2tCQU52QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSx1Q0FBdUM7b0JBQ3BELFNBQVMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7cUVBQ0g7aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7UHJlc2V0fSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVsL3ByZXNldCc7XHJcbmltcG9ydCB7TWVzc2FnZUJ1c1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9tZXNzYWdlLWJ1cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY3JlZW5TaXplQW5hbHlzaXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2NyZWVuLXNpemUtYW5hbHlzaXMvc2NyZWVuLXNpemUtYW5hbHlzaXMuc2VydmljZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckFwcFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLWFwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtXZWJXb3JrZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2Uvd2ViLXdvcmtlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtTY3JlZW5TaXplSW5mb30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NjcmVlbi1zaXplLWFuYWx5c2lzL3NjcmVlbi1zaXplLWluZm8nO1xyXG5pbXBvcnQge01lc3NhZ2VUeXBlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycC1sYW5kaW5nLXNjcmVlbi1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xhbmRpbmctc2NyZWVuLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sYW5kaW5nLXNjcmVlbi1tb2RhbC5jb21wb25lbnQuc2NzcyddLyosXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gqL1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZGluZ1NjcmVlbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGZsb29yUGxhbnM6IFByZXNldFtdID0gW107XHJcbiAgcHVibGljIHByZXNldHM6IFByZXNldFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBhc3NldFBhdGg6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd1VwbG9hZERpYWdyYW06IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGRlc2t0b3BTaXplU2NyZWVuOiBib29sZWFuO1xyXG4gIHB1YmxpYyB0YWJsZXRTaXplU2NyZWVuOiBib29sZWFuO1xyXG4gIHB1YmxpYyBwaG9uZVNpemVTY3JlZW46IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPExhbmRpbmdTY3JlZW5Nb2RhbENvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zY3JlZW5BbmFseXNpczogU2NyZWVuU2l6ZUFuYWx5c2lzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FwcFNlcnZpY2U6IEhvbWVkZWNvcmF0b3JBcHBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2V0dGluZ3NTZXJ2aWNlOiBIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfd2ViV29ya2VyU2VydmljZTogV2ViV29ya2VyU2VydmljZS8qLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKi9cclxuICApIHtcclxuICAgIHRoaXMuX2luaXRTY3JlZW5TaXplSGFuZGxpbmcoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fYXBwU2VydmljZS5wcmVzZXRzTG9hZGVkLnN1YnNjcmliZSgocHJlc2V0czogUHJlc2V0W10pID0+IHtcclxuICAgICAgICBpZiAocHJlc2V0cykge1xyXG4gICAgICAgICAgdGhpcy5wcmVzZXRzID0gcHJlc2V0cztcclxuICAgICAgICAgIC8vIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl9hcHBTZXJ2aWNlLmZsb29yUGxhbnNMb2FkZWQuc3Vic2NyaWJlKChmbG9vcnBsYW5zOiBQcmVzZXRbXSkgPT4ge1xyXG4gICAgICAgIGlmIChmbG9vcnBsYW5zKSB7XHJcbiAgICAgICAgICB0aGlzLmZsb29yUGxhbnMgPSBmbG9vcnBsYW5zO1xyXG4gICAgICAgICAgLy8gdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5nc0xvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuYXNzZXRQYXRoID0gdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLmFzc2V0UGF0aDtcclxuICAgICAgICAgIHRoaXMuc2hvd1VwbG9hZERpYWdyYW0gPSB0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Muc2hvd1VwbG9hZERpYWdyYW07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3dlYldvcmtlclNlcnZpY2UuaW5pdFdvcmtlcnMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRTY3JlZW5TaXplSGFuZGxpbmcoKSB7XHJcbiAgICB0aGlzLl9zY3JlZW5BbmFseXNpcy5zY3JlZW5TaXplQ2hhbmdlZC5zdWJzY3JpYmUoKGluZm86IFNjcmVlblNpemVJbmZvKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVza3RvcFNpemVTY3JlZW4gPSBpbmZvLmlzRGVza3RvcFNpemU7XHJcbiAgICAgIHRoaXMudGFibGV0U2l6ZVNjcmVlbiA9IGluZm8uaXNUYWJsZXRTaXplO1xyXG4gICAgICB0aGlzLnBob25lU2l6ZVNjcmVlbiA9IGluZm8uaXNQaG9uZVNpemU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Nsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9wZW5PcGVuRGlhbG9nKCkge1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TaG93T3BlbkRpYWxvZyk7XHJcbiAgICB0aGlzLl9jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRGcm9tU2NyYXRjaCgpIHtcclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU3RhcnRXaXRoRW1wdHlSb29tKTtcclxuICAgIHRoaXMuX2Nsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzdGFydFdpdGhSb29tKHByZXNldDogUHJlc2V0LCBzd2l0Y2hUbzJEOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU3RhcnRXaXRoUHJlc2V0LCB7IHByZXNldCwgc3dpdGNoVG8yRCB9KTtcclxuICAgIHRoaXMuX2Nsb3NlKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZUltcG9ydEZpbGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZmlsZW5hbWUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICBpZiAoZmlsZW5hbWUudHlwZSA9PT0gJ2ltYWdlL3BuZycgfHwgZmlsZW5hbWUudHlwZSA9PT0gJ2ltYWdlL2pwZycgfHwgZmlsZW5hbWUudHlwZSA9PT0gJ2ltYWdlL2pwZWcnKSB7XHJcbiAgICAgIGNvbnN0IGJhc2U2NCA9IGF3YWl0IHRoaXMuX2hhbmRsZUZpbGVVcGxvYWQoZmlsZW5hbWUpO1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlN0YXJ0RHJhd2luZ0RpYWdyYW0sIGJhc2U2NCk7XHJcbiAgICB9IGVsc2UgaWYgKGZpbGVuYW1lLnR5cGUgPT09ICdhcHBsaWNhdGlvbi9wZGYnKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU3RhcnRDcm9wcGluZ1BERiwgZmlsZW5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlRmlsZVVwbG9hZChmaWxlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUoZmlsZVJlYWRlci5yZXN1bHQpO1xyXG4gICAgICB9O1xyXG4gICAgICBmaWxlUmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHtcclxuICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBjbGFzcz1cIm1hdC1oZWFkbGluZVwiPnt7ICdNWVJPT01QTEFOUycgfCBsb2NhbGl6ZSB8IHVwcGVyY2FzZSB9fTwvaDE+XHJcblxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImRpYWxvZy1jb250ZW50XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjZGtUcmFwRm9jdXM+XHJcbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgZmxleC1zdGFydFwiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJkZXNrdG9wU2l6ZVNjcmVlblwiIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInN0YXJ0RnJvbVNjcmF0Y2goKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+PG1hdC1pY29uIGNsYXNzPVwiaG9tZWRlY29yYXRvci1tYXRlcmlhbC1pY29uc1wiPmNyZWF0ZTwvbWF0LWljb24+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPnt7ICdDUkVBVEVfTkVXX1BMQU5fRlJPTV9TQ1JBVENIJyB8IGxvY2FsaXplIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJkZXNrdG9wU2l6ZVNjcmVlbiAmJiBzaG93VXBsb2FkRGlhZ3JhbVwiIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXdyYXBwZXJcIj48bWF0LWljb24gY2xhc3M9XCJob21lZGVjb3JhdG9yLW1hdGVyaWFsLWljb25zXCI+dXBsb2FkX2ZpbGU8L21hdC1pY29uPjwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj57eyAnQ1JFQVRFX0ZST01fRElBR1JBTScgfCBsb2NhbGl6ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5PcGVuRGlhbG9nKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImljb24td3JhcHBlclwiPjxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5jbG91ZF91cGxvYWQ8L21hdC1pY29uPjwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj57eyAnT1BFTl9TQVZFRF9ST09NX1BMQU4nIHwgbG9jYWxpemUgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJsaWJyYXJ5XCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdHJldGNoXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGVza3RvcFNpemVTY3JlZW5cIiBjbGFzcz1cImNvbCBsZWZ0XCIgZnhGbGV4PVwiZ3Jvd1wiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJtYXQtc3ViaGVhZGluZy0yXCIgW3RleHRDb250ZW50XT1cIidTVEFSVF9XSVRIX0FfUk9PTV9TSEFQRScgfCBsb2NhbGl6ZVwiPjwvaDI+XHJcbiAgICAgIDxtYXQtZ3JpZC1saXN0IGNvbHM9XCIyXCIgcm93SGVpZ2h0PVwiMTE1cHhcIj5cclxuICAgICAgICA8bWF0LWdyaWQtdGlsZSAqbmdGb3I9XCJsZXQgcm9vbSBvZiBmbG9vclBsYW5zIHwgZmlsdGVyOidzaG93Jzp0cnVlXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInN0YXJ0V2l0aFJvb20ocm9vbSwgdHJ1ZSlcIj5cclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImFzc2V0UGF0aCArIHJvb20udGh1bWJuYWlsXCI+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L21hdC1ncmlkLXRpbGU+XHJcbiAgICAgIDwvbWF0LWdyaWQtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbFwiIFtjbGFzcy5yaWdodF09XCJkZXNrdG9wU2l6ZVNjcmVlblwiIGZ4RmxleD1cImdyb3dcIj5cclxuICAgICAgPGgyIGNsYXNzPVwibWF0LXN1YmhlYWRpbmctMlwiPlxyXG4gICAgICAgIHt7ICdPUEVOX0FfQ09NUExFVEVfUk9PTScgfCBsb2NhbGl6ZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgICA8bWF0LWdyaWQtbGlzdCBbY29sc109XCJkZXNrdG9wU2l6ZVNjcmVlbiA/IDIgOiAzXCIgcm93SGVpZ2h0PVwiMTE1cHhcIj5cclxuICAgICAgICA8bWF0LWdyaWQtdGlsZSAqbmdGb3I9XCJsZXQgcHJlc2V0IG9mIHByZXNldHMgfCBmaWx0ZXI6J3Nob3cnOnRydWVcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic3RhcnRXaXRoUm9vbShwcmVzZXQpXCI+XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJhc3NldFBhdGggKyBwcmVzZXQudGh1bWJuYWlsXCI+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L21hdC1ncmlkLXRpbGU+XHJcbiAgICAgIDwvbWF0LWdyaWQtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxpbnB1dFxyXG4gIHR5cGU9XCJmaWxlXCJcclxuICBpZD1cImZpbGVJbnB1dFwiXHJcbiAgKGNoYW5nZSk9XCJ2YWxpZGF0ZUltcG9ydEZpbGUoJGV2ZW50KVwiXHJcbiAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcclxuICAjZmlsZUlucHV0XHJcbj5cclxuIl19
|
package/esm2015/app/plugins/toolbar/load-from-cloud-dialog/load-from-cloud-dialog.component.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { environment } from '../../../../environments/environment';
|
|
3
|
+
import { Preset } from '../../../core/model/preset';
|
|
4
|
+
import { MessageType } from '../../../core/enum/message-type.enum';
|
|
5
|
+
import { ErrorDialogComponent } from '../../../shared/error-dialog/error-dialog.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/dialog";
|
|
8
|
+
import * as i2 from "../../../core/service/message-bus.service";
|
|
9
|
+
import * as i3 from "../../../core/service/permanent-store.service";
|
|
10
|
+
import * as i4 from "../../../core/service/homedecorator-dictionary.service";
|
|
11
|
+
import * as i5 from "../edit-preset-dialog/edit-preset-dialog.component";
|
|
12
|
+
import * as i6 from "@angular/material/form-field";
|
|
13
|
+
import * as i7 from "@angular/material/button";
|
|
14
|
+
import * as i8 from "@angular/common";
|
|
15
|
+
import * as i9 from "@angular/material/input";
|
|
16
|
+
import * as i10 from "@angular/forms";
|
|
17
|
+
import * as i11 from "@angular/flex-layout/flex";
|
|
18
|
+
import * as i12 from "../../../core/pipe/localize.pipe";
|
|
19
|
+
export class LoadFromCloudDialogComponent {
|
|
20
|
+
constructor(dialog, dialogRef, messageService, permanentStoreService, _dictionaryService) {
|
|
21
|
+
this.dialog = dialog;
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.messageService = messageService;
|
|
24
|
+
this.permanentStoreService = permanentStoreService;
|
|
25
|
+
this._dictionaryService = _dictionaryService;
|
|
26
|
+
this.CODE_REGEX = '[A-Za-z]{2}[0-9][A-Za-z]{2}[0-9]';
|
|
27
|
+
this.code = '';
|
|
28
|
+
this.showEditPresetDialog = false;
|
|
29
|
+
this.preset = null;
|
|
30
|
+
}
|
|
31
|
+
set content(content) {
|
|
32
|
+
if (content) {
|
|
33
|
+
this.codeInputRef = content;
|
|
34
|
+
this.codeInputRef.nativeElement.select();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.code = window.localStorage.getItem('lastPlanId') || '';
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
if (this.code) {
|
|
41
|
+
this.codeInputRef.nativeElement.setSelectionRange(0, this.code.length);
|
|
42
|
+
}
|
|
43
|
+
}, 50);
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
this.codeInputRef = undefined;
|
|
47
|
+
this.dialogRef = undefined;
|
|
48
|
+
}
|
|
49
|
+
load() {
|
|
50
|
+
if (this.preset) {
|
|
51
|
+
const preset = this.preset;
|
|
52
|
+
this.dialogRef.close(true);
|
|
53
|
+
this.messageService.emit(MessageType.ShouldCopyFurnitureFromPreset, false);
|
|
54
|
+
this.messageService.emit(MessageType.StartWithPreset, { preset });
|
|
55
|
+
this.permanentStoreService.code = this.code;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.preLoading(true);
|
|
59
|
+
this.handleLoad(false);
|
|
60
|
+
}
|
|
61
|
+
editPreset() {
|
|
62
|
+
this.preLoading(false);
|
|
63
|
+
this.handleLoad(true);
|
|
64
|
+
}
|
|
65
|
+
preLoading(closeDialog) {
|
|
66
|
+
if (!this.isValidInput(this.code)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (this.isValidUrl(this.code)) {
|
|
70
|
+
this.code = this.code.slice(-6);
|
|
71
|
+
}
|
|
72
|
+
this.messageService.emit(MessageType.ShowLoadingIndicator, {});
|
|
73
|
+
if (closeDialog) {
|
|
74
|
+
this.dialogRef.close(true);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
handleLoad(loadFromEdit) {
|
|
78
|
+
try {
|
|
79
|
+
const sub = this.permanentStoreService.load(this.code).subscribe(json => {
|
|
80
|
+
const preset = Preset.CreateModelFromInterface({ filename: this.code, model: JSON.stringify(json) });
|
|
81
|
+
if (loadFromEdit) {
|
|
82
|
+
this.showEditPresetDialog = true;
|
|
83
|
+
this.preset = preset;
|
|
84
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.messageService.emit(MessageType.ShouldCopyFurnitureFromPreset, false);
|
|
88
|
+
this.messageService.emit(MessageType.StartWithPreset, { preset });
|
|
89
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
90
|
+
}
|
|
91
|
+
sub.unsubscribe();
|
|
92
|
+
}, error => {
|
|
93
|
+
this.showError(this.code);
|
|
94
|
+
sub.unsubscribe();
|
|
95
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
100
|
+
this.showError(this.code);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
showEditButton() {
|
|
104
|
+
return !environment.production;
|
|
105
|
+
}
|
|
106
|
+
cancelEditPreset() {
|
|
107
|
+
this.preset = null;
|
|
108
|
+
this.dialogRef.close();
|
|
109
|
+
}
|
|
110
|
+
isValidInput(value = '') {
|
|
111
|
+
return this.isValidCode(value) || this.isValidUrl(value);
|
|
112
|
+
}
|
|
113
|
+
isValidCode(code = '') {
|
|
114
|
+
return !!code.match(`^${this.CODE_REGEX}`);
|
|
115
|
+
}
|
|
116
|
+
isValidUrl(code = '') {
|
|
117
|
+
return !!code.match(`${window.location.host}/plan/${this.CODE_REGEX}$`);
|
|
118
|
+
}
|
|
119
|
+
showError(code) {
|
|
120
|
+
const data = {
|
|
121
|
+
message: this._dictionaryService.get('UNABLE_TO_FIND_ROOMPLAN_FROM_CODE', true, code)
|
|
122
|
+
};
|
|
123
|
+
this.messageService.emit(MessageType.HideLoadingIndicator);
|
|
124
|
+
this.dialog.open(ErrorDialogComponent, { data });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
LoadFromCloudDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFromCloudDialogComponent, deps: [{ token: i1.MatDialog }, { token: i1.MatDialogRef }, { token: i2.MessageBusService }, { token: i3.PermanentStoreService }, { token: i4.HomedecoratorDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
+
LoadFromCloudDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: LoadFromCloudDialogComponent, selector: "rp-load-from-cloud-dialog", viewQueries: [{ propertyName: "content", first: true, predicate: ["codeInput"], descendants: true, read: ElementRef }], ngImport: i0, template: "<edit-preset-dialog *ngIf=\"preset && showEditPresetDialog\"\r\n [preset]=\"preset\"\r\n></edit-preset-dialog>\r\n\r\n<div *ngIf=\"!showEditPresetDialog\">\r\n <h1 mat-dialog-title [textContent]=\"'LOAD_FROM_CLOUD' | localize\"></h1>\r\n <div mat-dialog-content>\r\n <div>\r\n {{'ENTER_THE_CODE_OR_URL_OF_THE_PLAN_YOU_WANT_TO_LOAD' | localize}}:\r\n </div>\r\n\r\n <mat-form-field>\r\n <input matInput\r\n [(ngModel)]=\"code\"\r\n (keydown.enter)=\"isValidInput(code) && load()\"\r\n type=\"text\"\r\n #codeInputModel=\"ngModel\"\r\n #codeInput\r\n />\r\n </mat-form-field>\r\n <div>\r\n <mat-error *ngIf=\"codeInputModel.dirty && !isValidInput(code)\">\r\n {{'Invalid code or URL' | localize}}\r\n </mat-error>\r\n </div>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions fxLayoutAlign=\"end center\">\r\n <button mat-button color=\"primary\" *ngIf=\"showEditButton() && !showEditPresetDialog\"\r\n [disabled]=\"!isValidInput(code)\"\r\n (click)=\"editPreset()\">\r\n {{'Edit' | localize}}\r\n </button>\r\n <button mat-button color=\"primary\" *ngIf=\"showEditPresetDialog\"\r\n (click)=\"cancelEditPreset()\">\r\n {{'Cancel' | localize}}\r\n </button>\r\n <button mat-button color=\"primary\" [disabled]=\"!isValidInput(code)\" (click)=\"load()\">\r\n {{'Open' | localize}}\r\n </button>\r\n</div>\r\n", styles: ["mat-form-field{width:100%}\n"], components: [{ type: i5.EditPresetDialogComponent, selector: "edit-preset-dialog", inputs: ["preset"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { 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"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }], pipes: { "localize": i12.LocalizePipe } });
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoadFromCloudDialogComponent, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{
|
|
132
|
+
selector: 'rp-load-from-cloud-dialog',
|
|
133
|
+
templateUrl: './load-from-cloud-dialog.component.html',
|
|
134
|
+
styleUrls: ['./load-from-cloud-dialog.component.scss']
|
|
135
|
+
}]
|
|
136
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i1.MatDialogRef }, { type: i2.MessageBusService }, { type: i3.PermanentStoreService }, { type: i4.HomedecoratorDictionaryService }]; }, propDecorators: { content: [{
|
|
137
|
+
type: ViewChild,
|
|
138
|
+
args: ['codeInput', { read: ElementRef, static: false }]
|
|
139
|
+
}] } });
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1mcm9tLWNsb3VkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL3Rvb2xiYXIvbG9hZC1mcm9tLWNsb3VkLWRpYWxvZy9sb2FkLWZyb20tY2xvdWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvdG9vbGJhci9sb2FkLWZyb20tY2xvdWQtZGlhbG9nL2xvYWQtZnJvbS1jbG91ZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSWxELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPekYsTUFBTSxPQUFPLDRCQUE0QjtJQWlCdkMsWUFDVSxNQUFpQixFQUNqQixTQUFxRCxFQUNyRCxjQUFpQyxFQUNqQyxxQkFBNEMsRUFDNUMsa0JBQWtEO1FBSmxELFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBNEM7UUFDckQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFnQztRQWIzQyxlQUFVLEdBQUcsa0NBQWtDLENBQUM7UUFDMUQsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUVsQix5QkFBb0IsR0FBWSxLQUFLLENB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RUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXREaWFsb2csIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxuaW1wb3J0IHtQcmVzZXR9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWwvcHJlc2V0JztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Blcm1hbmVudFN0b3JlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3Blcm1hbmVudC1zdG9yZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yRGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLWRpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7TWVzc2FnZVR5cGV9IGZyb20gJy4uLy4uLy4uL2NvcmUvZW51bS9tZXNzYWdlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7RXJyb3JEaWFsb2dDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lcnJvci1kaWFsb2cvZXJyb3ItZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JwLWxvYWQtZnJvbS1jbG91ZC1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2FkLWZyb20tY2xvdWQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2FkLWZyb20tY2xvdWQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExvYWRGcm9tQ2xvdWREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvZGVJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBzZXQgY29udGVudChjb250ZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgICBpZiAoY29udGVudCkge1xyXG4gICAgICB0aGlzLmNvZGVJbnB1dFJlZiA9IGNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuY29kZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IENPREVfUkVHRVggPSAnW0EtWmEtel17Mn1bMC05XVtBLVphLXpdezJ9WzAtOV0nO1xyXG4gIHB1YmxpYyBjb2RlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHVibGljIHNob3dFZGl0UHJlc2V0RGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHByZXNldDogUHJlc2V0ID0gbnVsbDtcclxuICBwdWJsaWMgY29kZUlucHV0UmVmOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBjb2RlSW5wdXRNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxMb2FkRnJvbUNsb3VkRGlhbG9nQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VCdXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwZXJtYW5lbnRTdG9yZVNlcnZpY2U6IFBlcm1hbmVudFN0b3JlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBIb21lZGVjb3JhdG9yRGljdGlvbmFyeVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb2RlID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYXN0UGxhbklkJykgfHwgJyc7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29kZSkge1xyXG4gICAgICAgIHRoaXMuY29kZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgdGhpcy5jb2RlLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jb2RlSW5wdXRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkKCkge1xyXG4gICAgaWYgKHRoaXMucHJlc2V0KSB7XHJcbiAgICAgIGNvbnN0IHByZXNldCA9IHRoaXMucHJlc2V0O1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlNob3VsZENvcHlGdXJuaXR1cmVGcm9tUHJlc2V0LCBmYWxzZSk7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TdGFydFdpdGhQcmVzZXQsIHsgcHJlc2V0IH0pO1xyXG4gICAgICB0aGlzLnBlcm1hbmVudFN0b3JlU2VydmljZS5jb2RlID0gdGhpcy5jb2RlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgIHRoaXMucHJlTG9hZGluZyh0cnVlKTtcclxuICAgdGhpcy5oYW5kbGVMb2FkKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlZGl0UHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmVMb2FkaW5nKGZhbHNlKTtcclxuICAgIHRoaXMuaGFuZGxlTG9hZCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmVMb2FkaW5nKGNsb3NlRGlhbG9nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNWYWxpZElucHV0KHRoaXMuY29kZSkpIHsgcmV0dXJuOyB9XHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkVXJsKHRoaXMuY29kZSkpIHsgdGhpcy5jb2RlID0gdGhpcy5jb2RlLnNsaWNlKC02KTsgfVxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlNob3dMb2FkaW5nSW5kaWNhdG9yLCB7fSk7XHJcbiAgICBpZiAoY2xvc2VEaWFsb2cpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTG9hZChsb2FkRnJvbUVkaXQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHN1YiA9IHRoaXMucGVybWFuZW50U3RvcmVTZXJ2aWNlLmxvYWQodGhpcy5jb2RlKS5zdWJzY3JpYmUoXHJcbiAgICAgICAganNvbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwcmVzZXQ6IFByZXNldCA9IFByZXNldC5DcmVhdGVNb2RlbEZyb21JbnRlcmZhY2UoeyBmaWxlbmFtZTogdGhpcy5jb2RlLCBtb2RlbDogSlNPTi5zdHJpbmdpZnkoanNvbikgfSk7XHJcbiAgICAgICAgICBpZiAobG9hZEZyb21FZGl0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0VkaXRQcmVzZXREaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnByZXNldCA9IHByZXNldDtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLkhpZGVMb2FkaW5nSW5kaWNhdG9yKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TaG91bGRDb3B5RnVybml0dXJlRnJvbVByZXNldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU3RhcnRXaXRoUHJlc2V0LCB7IHByZXNldCB9KTtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLkhpZGVMb2FkaW5nSW5kaWNhdG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IodGhpcy5jb2RlKTtcclxuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLkhpZGVMb2FkaW5nSW5kaWNhdG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5IaWRlTG9hZGluZ0luZGljYXRvcik7XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yKHRoaXMuY29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0VkaXRCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsRWRpdFByZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMucHJlc2V0ID0gbnVsbDtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNWYWxpZElucHV0KHZhbHVlOiBzdHJpbmcgPSAnJyk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQ29kZSh2YWx1ZSkgfHwgdGhpcy5pc1ZhbGlkVXJsKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZENvZGUoY29kZTogc3RyaW5nID0gJycpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIWNvZGUubWF0Y2goYF4ke3RoaXMuQ09ERV9SRUdFWH1gKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZFVybChjb2RlOiBzdHJpbmcgPSAnJyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhY29kZS5tYXRjaChgJHt3aW5kb3cubG9jYXRpb24uaG9zdH0vcGxhbi8ke3RoaXMuQ09ERV9SRUdFWH0kYCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dFcnJvcihjb2RlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldCgnVU5BQkxFX1RPX0ZJTkRfUk9PTVBMQU5fRlJPTV9DT0RFJywgdHJ1ZSwgY29kZSlcclxuICAgIH07XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuSGlkZUxvYWRpbmdJbmRpY2F0b3IpO1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihFcnJvckRpYWxvZ0NvbXBvbmVudCwgeyBkYXRhIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGVkaXQtcHJlc2V0LWRpYWxvZyAqbmdJZj1cInByZXNldCAmJiBzaG93RWRpdFByZXNldERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3ByZXNldF09XCJwcmVzZXRcIlxyXG4+PC9lZGl0LXByZXNldC1kaWFsb2c+XHJcblxyXG48ZGl2ICpuZ0lmPVwiIXNob3dFZGl0UHJlc2V0RGlhbG9nXCI+XHJcbiAgPGgxIG1hdC1kaWFsb2ctdGl0bGUgW3RleHRDb250ZW50XT1cIidMT0FEX0ZST01fQ0xPVUQnIHwgbG9jYWxpemVcIj48L2gxPlxyXG4gIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGRpdj5cclxuICAgICAge3snRU5URVJfVEhFX0NPREVfT1JfVVJMX09GX1RIRV9QTEFOX1lPVV9XQU5UX1RPX0xPQUQnIHwgbG9jYWxpemV9fTpcclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IG1hdElucHV0XHJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvZGVcIlxyXG4gICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaXNWYWxpZElucHV0KGNvZGUpICYmIGxvYWQoKVwiXHJcbiAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAjY29kZUlucHV0TW9kZWw9XCJuZ01vZGVsXCJcclxuICAgICAgICAgICAgICNjb2RlSW5wdXRcclxuICAgICAgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29kZUlucHV0TW9kZWwuZGlydHkgJiYgIWlzVmFsaWRJbnB1dChjb2RlKVwiPlxyXG4gICAgICAgIHt7J0ludmFsaWQgY29kZSBvciBVUkwnIHwgbG9jYWxpemV9fVxyXG4gICAgICA8L21hdC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJzaG93RWRpdEJ1dHRvbigpICYmICFzaG93RWRpdFByZXNldERpYWxvZ1wiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWRJbnB1dChjb2RlKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdFByZXNldCgpXCI+XHJcbiAgICB7eydFZGl0JyB8IGxvY2FsaXplfX1cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJzaG93RWRpdFByZXNldERpYWxvZ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsRWRpdFByZXNldCgpXCI+XHJcbiAgICB7eydDYW5jZWwnIHwgbG9jYWxpemV9fVxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWlzVmFsaWRJbnB1dChjb2RlKVwiIChjbGljayk9XCJsb2FkKClcIj5cclxuICAgIHt7J09wZW4nIHwgbG9jYWxpemV9fVxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,83 @@
|
|
|
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, ViewChild } from '@angular/core';
|
|
11
|
+
import { LoadFromCloudDialogComponent } from '../load-from-cloud-dialog/load-from-cloud-dialog.component';
|
|
12
|
+
import { MessageType } from '../../../core/enum/message-type.enum';
|
|
13
|
+
import { Preset } from '../../../core/model/preset';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "../../../service/local-storage.service";
|
|
16
|
+
import * as i2 from "@angular/material/dialog";
|
|
17
|
+
import * as i3 from "../../../core/service/message-bus.service";
|
|
18
|
+
import * as i4 from "../../../core/service/utils.service";
|
|
19
|
+
import * as i5 from "../../../core/service/presets.service";
|
|
20
|
+
import * as i6 from "@angular/material/list";
|
|
21
|
+
import * as i7 from "@angular/material/core";
|
|
22
|
+
import * as i8 from "@angular/common";
|
|
23
|
+
import * as i9 from "../../../core/pipe/localize.pipe";
|
|
24
|
+
export class OpenDialogComponent {
|
|
25
|
+
constructor(storageService, _dialogRef, _dialog, _messageService, _utils, _presetService) {
|
|
26
|
+
this.storageService = storageService;
|
|
27
|
+
this._dialogRef = _dialogRef;
|
|
28
|
+
this._dialog = _dialog;
|
|
29
|
+
this._messageService = _messageService;
|
|
30
|
+
this._utils = _utils;
|
|
31
|
+
this._presetService = _presetService;
|
|
32
|
+
this.storageService.checkForLocalSave();
|
|
33
|
+
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
this.fileInputRef = undefined;
|
|
36
|
+
this._dialogRef = undefined;
|
|
37
|
+
}
|
|
38
|
+
loadFromCloud() {
|
|
39
|
+
const loadDialog = this._dialog.open(LoadFromCloudDialogComponent);
|
|
40
|
+
const sub = loadDialog.afterClosed().subscribe(loaded => {
|
|
41
|
+
if (loaded) {
|
|
42
|
+
this._dialogRef.close();
|
|
43
|
+
}
|
|
44
|
+
sub.unsubscribe();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
readSchema(event) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
this._messageService.emit(MessageType.ShowLoadingIndicator, {});
|
|
50
|
+
this._dialogRef.close();
|
|
51
|
+
const filename = event.target.files[0];
|
|
52
|
+
const model = yield this._utils.readFileAsText(filename);
|
|
53
|
+
const preset = Preset.CreateModelFromInterface({ filename, model });
|
|
54
|
+
this._messageService.emit(MessageType.ShouldCopyFurnitureFromPreset, false);
|
|
55
|
+
this._messageService.emit(MessageType.StartWithPreset, { preset });
|
|
56
|
+
if (this.fileInputRef && this.fileInputRef.nativeElement) {
|
|
57
|
+
this.fileInputRef.nativeElement.value = ''; // Chrome workaround for selecting of the same file twice
|
|
58
|
+
}
|
|
59
|
+
this._messageService.emit(MessageType.HideLoadingIndicator);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
openLastState() {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const stateFromStorage = yield this.storageService.getRecoverySaveState();
|
|
65
|
+
this._presetService.reopenState(stateFromStorage);
|
|
66
|
+
this._dialogRef.close();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
OpenDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OpenDialogComponent, deps: [{ token: i1.LocalStorageService }, { token: i2.MatDialogRef }, { token: i2.MatDialog }, { token: i3.MessageBusService }, { token: i4.UtilsService }, { token: i5.PresetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
OpenDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: OpenDialogComponent, selector: "rp-open-dialog", viewQueries: [{ propertyName: "fileInputRef", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{'OPEN_A_PLAN' | localize}}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <mat-nav-list>\r\n <mat-list-item (click)=\"loadFromCloud()\">\r\n <h4 mat-line><strong>{{'LOAD_FROM_CLOUD' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'ENTER_AN_ID_TO_LOAD_A_PLAN_STORED_ON_CLOUD' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"fileInput.click()\">\r\n <h4 mat-line><strong>{{'LOAD_FROM_DISK' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'LOAD_A_PLAN_STORED_ON_YOUR_COMPUTER' | localize}}</p>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"openLastState()\" *ngIf=\"storageService.saveStateExists\">\r\n <h4 mat-line><strong>{{'RECOVER_LAST_PROJECT' | localize}}</strong></h4>\r\n <p mat-line class=\"item-description\">{{'RECOVER_LAST_PROJECT_DESC' | localize}}</p>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n</div>\r\n<input\r\n type=\"file\"\r\n (change)=\"readSchema($event)\"\r\n style=\"display: none\"\r\n #fileInput\r\n>\r\n\r\n", styles: [""], components: [{ type: i6.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i6.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }], directives: [{ type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.MatLine, selector: "[mat-line], [matLine]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": i9.LocalizePipe } });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: OpenDialogComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: 'rp-open-dialog',
|
|
76
|
+
templateUrl: './open-dialog.component.html',
|
|
77
|
+
styleUrls: ['./open-dialog.component.scss']
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i1.LocalStorageService }, { type: i2.MatDialogRef }, { type: i2.MatDialog }, { type: i3.MessageBusService }, { type: i4.UtilsService }, { type: i5.PresetsService }]; }, propDecorators: { fileInputRef: [{
|
|
80
|
+
type: ViewChild,
|
|
81
|
+
args: ['fileInput', { static: true }]
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvcGx1Z2lucy90b29sYmFyL29wZW4tZGlhbG9nL29wZW4tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvdG9vbGJhci9vcGVuLWRpYWxvZy9vcGVuLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF5QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNMUUsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPbEQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUNTLGNBQW1DLEVBQ2xDLFVBQTZDLEVBQzdDLE9BQWtCLEVBQ2xCLGVBQWtDLEVBQ2xDLE1BQW9CLEVBQ3BCLGNBQThCO1FBTC9CLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFtQztRQUM3QyxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUV0QyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRU0sYUFBYTtRQUNsQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN6QjtZQUNELEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFWSxVQUFVLENBQUMsS0FBSzs7WUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDbkUsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFO2dCQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMseURBQXlEO2FBQ3RHO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUQsQ0FBQztLQUFBO0lBRVksYUFBYTs7WUFDeEIsTUFBTSxnQkFBZ0IsR0FBVyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQztLQUFBOztpSEFoRFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsK0tDZmhDLHdsQ0F3QkE7NEZEVGEsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUM1QztxUEFHUSxZQUFZO3NCQURsQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1V0aWxzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMb2FkRnJvbUNsb3VkRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi9sb2FkLWZyb20tY2xvdWQtZGlhbG9nL2xvYWQtZnJvbS1jbG91ZC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHtNZXNzYWdlVHlwZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtL21lc3NhZ2UtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtQcmVzZXR9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWwvcHJlc2V0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnAtb3Blbi1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcGVuLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb3Blbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3BlbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwdWJsaWMgZmlsZUlucHV0UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE9wZW5EaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF91dGlsczogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0U2VydmljZTogUHJlc2V0c1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2hlY2tGb3JMb2NhbFNhdmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5maWxlSW5wdXRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9kaWFsb2dSZWYgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9hZEZyb21DbG91ZCgpIHtcclxuICAgIGNvbnN0IGxvYWREaWFsb2cgPSB0aGlzLl9kaWFsb2cub3BlbihMb2FkRnJvbUNsb3VkRGlhbG9nQ29tcG9uZW50KTtcclxuICAgIGNvbnN0IHN1YiA9IGxvYWREaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUobG9hZGVkID0+IHtcclxuICAgICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVhZFNjaGVtYShldmVudCkge1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TaG93TG9hZGluZ0luZGljYXRvciwge30pO1xyXG4gICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICBjb25zdCBmaWxlbmFtZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgdGhpcy5fdXRpbHMucmVhZEZpbGVBc1RleHQoZmlsZW5hbWUpO1xyXG4gICAgY29uc3QgcHJlc2V0OiBQcmVzZXQgPSBQcmVzZXQuQ3JlYXRlTW9kZWxGcm9tSW50ZXJmYWNlKHsgZmlsZW5hbWUsIG1vZGVsIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TaG91bGRDb3B5RnVybml0dXJlRnJvbVByZXNldCwgZmFsc2UpO1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TdGFydFdpdGhQcmVzZXQsIHsgcHJlc2V0IH0pO1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0UmVmICYmIHRoaXMuZmlsZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnOyAvLyBDaHJvbWUgd29ya2Fyb3VuZCBmb3Igc2VsZWN0aW5nIG9mIHRoZSBzYW1lIGZpbGUgdHdpY2VcclxuICAgIH1cclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuSGlkZUxvYWRpbmdJbmRpY2F0b3IpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG9wZW5MYXN0U3RhdGUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBzdGF0ZUZyb21TdG9yYWdlOiBzdHJpbmcgPSBhd2FpdCB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFJlY292ZXJ5U2F2ZVN0YXRlKCk7XHJcbiAgICB0aGlzLl9wcmVzZXRTZXJ2aWNlLnJlb3BlblN0YXRlKHN0YXRlRnJvbVN0b3JhZ2UpO1xyXG4gICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7J09QRU5fQV9QTEFOJyB8IGxvY2FsaXplfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCIgY2RrVHJhcEZvY3VzPlxyXG4gIDxtYXQtbmF2LWxpc3Q+XHJcbiAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwibG9hZEZyb21DbG91ZCgpXCI+XHJcbiAgICAgIDxoNCBtYXQtbGluZT48c3Ryb25nPnt7J0xPQURfRlJPTV9DTE9VRCcgfCBsb2NhbGl6ZX19PC9zdHJvbmc+PC9oND5cclxuICAgICAgPHAgbWF0LWxpbmUgY2xhc3M9XCJpdGVtLWRlc2NyaXB0aW9uXCI+e3snRU5URVJfQU5fSURfVE9fTE9BRF9BX1BMQU5fU1RPUkVEX09OX0NMT1VEJyB8IGxvY2FsaXplfX08L3A+XHJcbiAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgICAgPGg0IG1hdC1saW5lPjxzdHJvbmc+e3snTE9BRF9GUk9NX0RJU0snIHwgbG9jYWxpemV9fTwvc3Ryb25nPjwvaDQ+XHJcbiAgICAgIDxwIG1hdC1saW5lIGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPnt7J0xPQURfQV9QTEFOX1NUT1JFRF9PTl9ZT1VSX0NPTVBVVEVSJyB8IGxvY2FsaXplfX08L3A+XHJcbiAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib3Blbkxhc3RTdGF0ZSgpXCIgKm5nSWY9XCJzdG9yYWdlU2VydmljZS5zYXZlU3RhdGVFeGlzdHNcIj5cclxuICAgICAgPGg0IG1hdC1saW5lPjxzdHJvbmc+e3snUkVDT1ZFUl9MQVNUX1BST0pFQ1QnIHwgbG9jYWxpemV9fTwvc3Ryb25nPjwvaDQ+XHJcbiAgICAgIDxwIG1hdC1saW5lIGNsYXNzPVwiaXRlbS1kZXNjcmlwdGlvblwiPnt7J1JFQ09WRVJfTEFTVF9QUk9KRUNUX0RFU0MnIHwgbG9jYWxpemV9fTwvcD5cclxuICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICA8L21hdC1uYXYtbGlzdD5cclxuPC9kaXY+XHJcbjxpbnB1dFxyXG4gIHR5cGU9XCJmaWxlXCJcclxuICAoY2hhbmdlKT1cInJlYWRTY2hlbWEoJGV2ZW50KVwiXHJcbiAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcclxuICAjZmlsZUlucHV0XHJcbj5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
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, Inject, ViewChild } from '@angular/core';
|
|
11
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
12
|
+
import { PdfViewerComponent } from 'ng2-pdf-viewer';
|
|
13
|
+
import html2canvas from 'html2canvas';
|
|
14
|
+
import { MessageType } from '../../../core/enum/message-type.enum';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/material/dialog";
|
|
17
|
+
import * as i2 from "../../../core/service/message-bus.service";
|
|
18
|
+
import * as i3 from "../../../core/service/utils.service";
|
|
19
|
+
import * as i4 from "../../../core/service/presets.service";
|
|
20
|
+
import * as i5 from "@angular/material/icon";
|
|
21
|
+
import * as i6 from "ng2-pdf-viewer";
|
|
22
|
+
import * as i7 from "../../../core/pipe/localize.pipe";
|
|
23
|
+
export class PdfCropDialogComponent {
|
|
24
|
+
constructor(data, _dialogRef, _dialog, _messageService, _utils, _presetService) {
|
|
25
|
+
this.data = data;
|
|
26
|
+
this._dialogRef = _dialogRef;
|
|
27
|
+
this._dialog = _dialog;
|
|
28
|
+
this._messageService = _messageService;
|
|
29
|
+
this._utils = _utils;
|
|
30
|
+
this._presetService = _presetService;
|
|
31
|
+
this.finishedLoading = false;
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
}
|
|
35
|
+
ngAfterViewInit() {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
yield this.loadPDF();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
ngOnDestroy() {
|
|
41
|
+
}
|
|
42
|
+
loadPDF() {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
const filename = this.data.file;
|
|
45
|
+
this.pdfSrc = yield this._uploadPDFFile(filename);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
pageRendered() {
|
|
49
|
+
this.pdfComponent.pdfViewer.currentScaleValue = 'page-fit';
|
|
50
|
+
}
|
|
51
|
+
crop() {
|
|
52
|
+
html2canvas(document.querySelector('.pdf-container')).then((canvas) => {
|
|
53
|
+
const image = canvas.toDataURL('image/png').replace('image/png', 'image/png');
|
|
54
|
+
this._messageService.emit(MessageType.StartDrawingDiagram, image);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
_uploadPDFFile(file) {
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
if (file.type === 'application/pdf') {
|
|
60
|
+
const fileReader = new FileReader();
|
|
61
|
+
fileReader.readAsArrayBuffer(file);
|
|
62
|
+
fileReader.onload = (e) => {
|
|
63
|
+
resolve(fileReader.result);
|
|
64
|
+
this.finishedLoading = true;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
PdfCropDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdfCropDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.MessageBusService }, { token: i3.UtilsService }, { token: i4.PresetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
PdfCropDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PdfCropDialogComponent, selector: "rp-draw-dialog", viewQueries: [{ propertyName: "pdfComponent", first: true, predicate: ["pdf"], descendants: true, read: PdfViewerComponent }, { propertyName: "pdfContainer", first: true, predicate: ["pdfcontainer"], descendants: true, read: HTMLElement }, { propertyName: "hiddenImage", first: true, predicate: ["image"], descendants: true }], ngImport: i0, template: "<h1 mat-dialog-title>{{ 'OPEN_A_DIAGRAM' | localize }}</h1>\r\n<div mat-dialog-content class=\"dialog-wrapper\" cdkTrapFocus>\r\n <div class=\"model-header-container\">\r\n <button (click)=\"crop()\" title=\"Continue\">\r\n <mat-icon class=\"homedecorator-material-icons\">check</mat-icon>\r\n </button>\r\n </div>\r\n\r\n\r\n <div #pdfcontainer class=\"pdf-container top-margin\">\r\n <pdf-viewer\r\n #pdf\r\n [(src)]=\"pdfSrc\"\r\n [render-text]=\"true\"\r\n [autoresize]=\"true\"\r\n (page-rendered)=\"pageRendered()\"\r\n style=\"position: relative; min-height: 80vh; min-width: 80vw; display: block\">\r\n </pdf-viewer>\r\n </div>\r\n</div>\r\n", styles: [".model-header-container{display:flex;justify-content:center}.model-header-container button{cursor:pointer;color:#000;background:#fff;border:1px solid #dddddd;border-radius:3px;box-sizing:border-box;padding:5px}.model-header-container button:hover{background:#dda73f;color:#fff}\n"], components: [{ type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.PdfViewerComponent, selector: "pdf-viewer", inputs: ["c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders", "src"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], pipes: { "localize": i7.LocalizePipe } });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdfCropDialogComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: 'rp-draw-dialog',
|
|
76
|
+
templateUrl: './pdf-crop-dialog.component.html',
|
|
77
|
+
styleUrls: ['./pdf-crop-dialog.component.scss']
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
80
|
+
type: Inject,
|
|
81
|
+
args: [MAT_DIALOG_DATA]
|
|
82
|
+
}] }, { type: i1.MatDialogRef }, { type: i1.MatDialog }, { type: i2.MessageBusService }, { type: i3.UtilsService }, { type: i4.PresetsService }]; }, propDecorators: { pdfComponent: [{
|
|
83
|
+
type: ViewChild,
|
|
84
|
+
args: ['pdf', { read: PdfViewerComponent, static: false }]
|
|
85
|
+
}], pdfContainer: [{
|
|
86
|
+
type: ViewChild,
|
|
87
|
+
args: ['pdfcontainer', { read: HTMLElement, static: false }]
|
|
88
|
+
}], hiddenImage: [{
|
|
89
|
+
type: ViewChild,
|
|
90
|
+
args: ['image']
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWNyb3AtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvdG9vbGJhci9wZGYtY3JvcC1kaWFsb2cvcGRmLWNyb3AtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvdG9vbGJhci9wZGYtY3JvcC1kaWFsb2cvcGRmLWNyb3AtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFjLE1BQU0sRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxlQUFlLEVBQTBCLE1BQU0sMEJBQTBCLENBQUM7QUFJbEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7O0FBUWpFLE1BQU0sT0FBTyxzQkFBc0I7SUFhakMsWUFDa0MsSUFBbUIsRUFDM0MsVUFBZ0QsRUFDaEQsT0FBa0IsRUFDbEIsZUFBa0MsRUFDbEMsTUFBb0IsRUFDcEIsY0FBOEI7UUFMTixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQzNDLGVBQVUsR0FBVixVQUFVLENBQXNDO1FBQ2hELFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDbEIsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUmpDLG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBVXhDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVLLGVBQWU7O1lBQ25CLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FBQTtJQUVELFdBQVc7SUFFWCxDQUFDO0lBRVksT0FBTzs7WUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsQ0FBQztLQUFBO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFDN0QsQ0FBQztJQUVNLElBQUk7UUFDVCxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVM7UUFDOUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUU7Z0JBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3BDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO29CQUM3QixPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztnQkFDOUIsQ0FBQyxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQTdEVSxzQkFBc0Isa0JBY3ZCLGVBQWU7d0dBZGQsc0JBQXNCLHNJQUVSLGtCQUFrQix1R0FHVCxXQUFXLG9IQ3BCL0MsOHJCQW9CQTs0RkRMYSxzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLGtDQUFrQztvQkFDL0MsU0FBUyxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQ2hEOzswQkFlSSxNQUFNOzJCQUFDLGVBQWU7dUxBWGxCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBSXBELFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUdsQyxXQUFXO3NCQUFyQyxTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge01lc3NhZ2VCdXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvbWVzc2FnZS1idXMuc2VydmljZSc7XHJcbmltcG9ydCB7VXRpbHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2UvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7UHJlc2V0c1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZS9wcmVzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BkZlZpZXdlckNvbXBvbmVudH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQge01lc3NhZ2VUeXBlfSBmcm9tICcuLi8uLi8uLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnAtZHJhdy1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtY3JvcC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BkZi1jcm9wLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZDcm9wRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdwZGYnLCB7cmVhZDogUGRmVmlld2VyQ29tcG9uZW50LCBzdGF0aWM6IGZhbHNlfSlcclxuICBwdWJsaWMgcGRmQ29tcG9uZW50OiBQZGZWaWV3ZXJDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BkZmNvbnRhaW5lcicsIHtyZWFkOiBIVE1MRWxlbWVudCwgc3RhdGljOiBmYWxzZX0pXHJcbiAgcHVibGljIHBkZkNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ltYWdlJykgcHVibGljIGhpZGRlbkltYWdlOiBFbGVtZW50UmVmO1xyXG5cclxuICBwdWJsaWMgcGRmU3JjOiBhbnk7XHJcbiAgcHVibGljIGZpbmlzaGVkTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogeyBmaWxlOiBhbnkgfSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFBkZkNyb3BEaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF91dGlsczogVXRpbHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJlc2V0U2VydmljZTogUHJlc2V0c1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgYXdhaXQgdGhpcy5sb2FkUERGKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZFBERigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IGZpbGVuYW1lID0gdGhpcy5kYXRhLmZpbGU7XHJcbiAgICB0aGlzLnBkZlNyYyA9IGF3YWl0IHRoaXMuX3VwbG9hZFBERkZpbGUoZmlsZW5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBhZ2VSZW5kZXJlZCgpIHtcclxuICAgIHRoaXMucGRmQ29tcG9uZW50LnBkZlZpZXdlci5jdXJyZW50U2NhbGVWYWx1ZSA9ICdwYWdlLWZpdCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JvcCgpOiB2b2lkIHtcclxuICAgIGh0bWwyY2FudmFzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wZGYtY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQpLnRoZW4oKGNhbnZhczogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGltYWdlID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJykucmVwbGFjZSgnaW1hZ2UvcG5nJywgJ2ltYWdlL3BuZycpO1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlN0YXJ0RHJhd2luZ0RpYWdyYW0sIGltYWdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBsb2FkUERGRmlsZShmaWxlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgaWYgKGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicpIHtcclxuICAgICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICBmaWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG4gICAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZShmaWxlUmVhZGVyLnJlc3VsdCk7XHJcbiAgICAgICAgICB0aGlzLmZpbmlzaGVkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyAnT1BFTl9BX0RJQUdSQU0nIHwgbG9jYWxpemUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCIgY2RrVHJhcEZvY3VzPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RlbC1oZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICA8YnV0dG9uIChjbGljayk9XCJjcm9wKClcIiB0aXRsZT1cIkNvbnRpbnVlXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5jaGVjazwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDxkaXYgI3BkZmNvbnRhaW5lciBjbGFzcz1cInBkZi1jb250YWluZXIgdG9wLW1hcmdpblwiPlxyXG4gICAgPHBkZi12aWV3ZXJcclxuICAgICAgI3BkZlxyXG4gICAgICBbKHNyYyldPVwicGRmU3JjXCJcclxuICAgICAgW3JlbmRlci10ZXh0XT1cInRydWVcIlxyXG4gICAgICBbYXV0b3Jlc2l6ZV09XCJ0cnVlXCJcclxuICAgICAgKHBhZ2UtcmVuZGVyZWQpPVwicGFnZVJlbmRlcmVkKClcIlxyXG4gICAgICBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgbWluLWhlaWdodDogODB2aDsgbWluLXdpZHRoOiA4MHZ3OyBkaXNwbGF5OiBibG9ja1wiPlxyXG4gICAgPC9wZGYtdmlld2VyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|