@colijnit/configurator 261.1.1 → 261.20.0
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/{fesm2015/colijnit-configurator.js → fesm2022/colijnit-configurator.mjs} +19092 -18478
- package/fesm2022/colijnit-configurator.mjs.map +1 -0
- package/index.d.ts +3301 -0
- package/lib/components/answer-card/style/_layout.scss +3 -3
- package/lib/components/answers-slideout/style/_layout.scss +1 -0
- package/package.json +17 -13
- package/bundles/colijnit-configurator.umd.js +0 -20167
- package/bundles/colijnit-configurator.umd.js.map +0 -1
- package/colijnit-configurator.d.ts +0 -5
- package/esm2015/colijnit-configurator.js +0 -5
- package/esm2015/lib/builder.js +0 -795
- package/esm2015/lib/components/answer-card/answer-card.component.js +0 -313
- package/esm2015/lib/components/answer-card/answer-card.module.js +0 -50
- package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.component.js +0 -182
- package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.module.js +0 -34
- package/esm2015/lib/components/answers-slideout/answers-slideout.component.js +0 -490
- package/esm2015/lib/components/answers-slideout/answers-slideout.module.js +0 -61
- package/esm2015/lib/components/color-filter/color-filter.component.js +0 -59
- package/esm2015/lib/components/color-filter/color-filter.module.js +0 -26
- package/esm2015/lib/components/configurator/configurator.component.js +0 -133
- package/esm2015/lib/components/configurator/configurator.module.js +0 -42
- package/esm2015/lib/components/configurator-dialog/configurator-camera-settings.component.js +0 -222
- package/esm2015/lib/components/configurator-dialog/configurator-dialog.module.js +0 -48
- package/esm2015/lib/components/configurator-dialog/configurator-error-dialog.component.js +0 -82
- package/esm2015/lib/components/configurator-dialog/configurator-export-dialog.component.js +0 -163
- package/esm2015/lib/components/configurator-loader/configurator-loader.component.js +0 -49
- package/esm2015/lib/components/configurator-loader/configurator-loader.module.js +0 -33
- package/esm2015/lib/components/configurator-scene/configurator-scene.component.js +0 -60
- package/esm2015/lib/components/configurator-scene/configurator-scene.module.js +0 -17
- package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.component.js +0 -46
- package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.module.js +0 -26
- package/esm2015/lib/components/element-buttons/element-buttons.component.js +0 -168
- package/esm2015/lib/components/element-buttons/element-buttons.module.js +0 -30
- package/esm2015/lib/components/element-toolbar/element-toolbar.component.js +0 -186
- package/esm2015/lib/components/element-toolbar/element-toolbar.module.js +0 -34
- package/esm2015/lib/components/image-zoom/image-zoom.component.js +0 -61
- package/esm2015/lib/components/image-zoom/image-zoom.module.js +0 -30
- package/esm2015/lib/components/lite-selector/lite-selector.component.js +0 -206
- package/esm2015/lib/components/lite-selector/lite-selector.module.js +0 -34
- package/esm2015/lib/components/product-configurator/product-configurator.component.js +0 -184
- package/esm2015/lib/components/product-configurator/product-configurator.module.js +0 -72
- package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.component.js +0 -237
- package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.module.js +0 -38
- package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.js +0 -284
- package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.js +0 -42
- package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.js +0 -72
- package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.js +0 -34
- package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.js +0 -82
- package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.js +0 -30
- package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.js +0 -80
- package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.js +0 -34
- package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.js +0 -93
- package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.js +0 -34
- package/esm2015/lib/components/progress-bar/progress-bar.component.js +0 -55
- package/esm2015/lib/components/progress-bar/progress-bar.module.js +0 -29
- package/esm2015/lib/components/scene-options/scene-options.component.js +0 -164
- package/esm2015/lib/components/scene-options/scene-options.module.js +0 -38
- package/esm2015/lib/components/selections-summary/selections-summary.component.js +0 -163
- package/esm2015/lib/components/selections-summary/selections-summary.module.js +0 -45
- package/esm2015/lib/components/selections-summary-line/selections-summary-line.component.js +0 -171
- package/esm2015/lib/components/selections-summary-line/selections-summary-line.module.js +0 -34
- package/esm2015/lib/components/slideout/slideout.component.js +0 -83
- package/esm2015/lib/components/slideout/slideout.module.js +0 -17
- package/esm2015/lib/components/summary-line/summary-line.component.js +0 -273
- package/esm2015/lib/components/summary-line/summary-line.module.js +0 -44
- package/esm2015/lib/components/tag-filter/tag-filter.component.js +0 -39
- package/esm2015/lib/components/tag-filter/tag-filter.module.js +0 -21
- package/esm2015/lib/components/threedselector/threedselector.component.js +0 -155
- package/esm2015/lib/components/threedselector/threedselector.module.js +0 -34
- package/esm2015/lib/core/helper/variation-helper.js +0 -553
- package/esm2015/lib/core/shader/floor-fade.shader.js +0 -33
- package/esm2015/lib/core/textures/depth-data-texture.js +0 -19
- package/esm2015/lib/directives/directives.module.js +0 -26
- package/esm2015/lib/directives/visibility-observer-master.directive.js +0 -53
- package/esm2015/lib/directives/visibility-observer.directive.js +0 -54
- package/esm2015/lib/enum/ar-feature.enum.js +0 -14
- package/esm2015/lib/enum/configuration-key.enum.js +0 -41
- package/esm2015/lib/enum/configuration-template.enum.js +0 -6
- package/esm2015/lib/enum/device-size-type.js +0 -7
- package/esm2015/lib/enum/device-tier.enum.js +0 -7
- package/esm2015/lib/enum/icon.enum.js +0 -113
- package/esm2015/lib/enum/item-type.enum.js +0 -23
- package/esm2015/lib/enum/light.enum.js +0 -9
- package/esm2015/lib/enum/navigator-type.enum.js +0 -6
- package/esm2015/lib/enum/output-encoding.enum.js +0 -9
- package/esm2015/lib/enum/result-type.enum.js +0 -21
- package/esm2015/lib/enum/scene-event.enum.js +0 -12
- package/esm2015/lib/enum/shadow-map-type.enum.js +0 -8
- package/esm2015/lib/enum/texture-type.js +0 -9
- package/esm2015/lib/enum/tone-mapping-local.enum.js +0 -12
- package/esm2015/lib/enum/view-mode.enum.js +0 -7
- package/esm2015/lib/enum/xr-mode.enum.js +0 -6
- package/esm2015/lib/environments/environment.js +0 -8
- package/esm2015/lib/interfaces/aa-options.interface.js +0 -2
- package/esm2015/lib/interfaces/adjustable-element.interface.js +0 -2
- package/esm2015/lib/interfaces/ao-options.interface.js +0 -2
- package/esm2015/lib/interfaces/changes.interface.js +0 -2
- package/esm2015/lib/interfaces/configuration-data.interface.js +0 -2
- package/esm2015/lib/interfaces/light-preset.interface.js +0 -2
- package/esm2015/lib/interfaces/post-processing-setting.interface.js +0 -2
- package/esm2015/lib/interfaces/scene-option-button.interface.js +0 -6
- package/esm2015/lib/interfaces/screen-size-info.js +0 -2
- package/esm2015/lib/interfaces/setting.interface.js +0 -2
- package/esm2015/lib/interfaces/texture.interface.js +0 -2
- package/esm2015/lib/interfaces/vignette-options.interface.js +0 -2
- package/esm2015/lib/model/ar-position-indicator.js +0 -18
- package/esm2015/lib/model/camera-settings.js +0 -14
- package/esm2015/lib/model/configuration-result-object.js +0 -6
- package/esm2015/lib/model/configurator-error-message.js +0 -9
- package/esm2015/lib/model/configurator-settings.js +0 -25
- package/esm2015/lib/model/custom-button.js +0 -16
- package/esm2015/lib/model/factory.js +0 -28
- package/esm2015/lib/model/icon.js +0 -112
- package/esm2015/lib/model/intersected-objects.js +0 -7
- package/esm2015/lib/model/light-preset.js +0 -73
- package/esm2015/lib/model/light-properties.js +0 -45
- package/esm2015/lib/model/material.js +0 -11
- package/esm2015/lib/model/metadata.js +0 -2
- package/esm2015/lib/model/render-parameters.js +0 -16
- package/esm2015/lib/model/setting-options.js +0 -71
- package/esm2015/lib/model/settings.js +0 -16
- package/esm2015/lib/model/shadow-properties.js +0 -10
- package/esm2015/lib/model/skin.js +0 -3
- package/esm2015/lib/model/texture.js +0 -76
- package/esm2015/lib/model/variation-settings.js +0 -54
- package/esm2015/lib/model/variation.js +0 -3
- package/esm2015/lib/model/xr-reticle.js +0 -79
- package/esm2015/lib/modules/render/enum/scene-type.enum.js +0 -6
- package/esm2015/lib/modules/render/model/ar-parameters.js +0 -12
- package/esm2015/lib/modules/render/model/scene-setting.js +0 -6
- package/esm2015/lib/modules/render/model/scene-settings.js +0 -3
- package/esm2015/lib/pipes/append.pipe.js +0 -21
- package/esm2015/lib/pipes/google-translate.pipe.js +0 -21
- package/esm2015/lib/pipes/localize.pipe.js +0 -28
- package/esm2015/lib/pipes/pipes.module.js +0 -41
- package/esm2015/lib/pipes/prepend.pipe.js +0 -21
- package/esm2015/lib/pipes/strip-html.pipe.js +0 -17
- package/esm2015/lib/services/app-event.service.js +0 -36
- package/esm2015/lib/services/app-initializer.service.js +0 -27
- package/esm2015/lib/services/ar.service.js +0 -844
- package/esm2015/lib/services/build-furniture-base.service.js +0 -1181
- package/esm2015/lib/services/build-furniture-without-scene.service.js +0 -86
- package/esm2015/lib/services/build-furniture.service.js +0 -169
- package/esm2015/lib/services/bundle-initialzer.service.js +0 -113
- package/esm2015/lib/services/camera.service.js +0 -123
- package/esm2015/lib/services/configuration.service.js +0 -79
- package/esm2015/lib/services/configurator-connector.service.js +0 -830
- package/esm2015/lib/services/configurator.service.js +0 -285
- package/esm2015/lib/services/configuring.service.js +0 -119
- package/esm2015/lib/services/controls.js +0 -799
- package/esm2015/lib/services/debug.service.js +0 -43
- package/esm2015/lib/services/dictionary.service.js +0 -65
- package/esm2015/lib/services/dynamic-camera.service.js +0 -96
- package/esm2015/lib/services/floor-plane.service.js +0 -252
- package/esm2015/lib/services/font.service.js +0 -27
- package/esm2015/lib/services/google-translate.service.js +0 -79
- package/esm2015/lib/services/icon-cache.service.js +0 -44
- package/esm2015/lib/services/intersection.service.js +0 -47
- package/esm2015/lib/services/item.service.js +0 -75
- package/esm2015/lib/services/json-utils.service.js +0 -48
- package/esm2015/lib/services/light-creation.service.js +0 -35
- package/esm2015/lib/services/light-presets.service.js +0 -157
- package/esm2015/lib/services/lights.service.js +0 -146
- package/esm2015/lib/services/load-furniture-base.service.js +0 -164
- package/esm2015/lib/services/load-furniture-without-scene.service.js +0 -45
- package/esm2015/lib/services/load-furniture.service.js +0 -72
- package/esm2015/lib/services/loader.service.js +0 -32
- package/esm2015/lib/services/locator.service.js +0 -11
- package/esm2015/lib/services/message-board.service.js +0 -50
- package/esm2015/lib/services/post-processing.service.js +0 -378
- package/esm2015/lib/services/product-configurator.service.js +0 -16
- package/esm2015/lib/services/progress.service.js +0 -20
- package/esm2015/lib/services/scene-event.service.js +0 -246
- package/esm2015/lib/services/scene-options.service.js +0 -24
- package/esm2015/lib/services/scene.service.js +0 -313
- package/esm2015/lib/services/screen-size-analysis.service.js +0 -97
- package/esm2015/lib/services/settings.service.js +0 -142
- package/esm2015/lib/services/switch-build-furniture.service.js +0 -37
- package/esm2015/lib/services/switch-load-furniture.service.js +0 -35
- package/esm2015/lib/services/threedselector.service.js +0 -72
- package/esm2015/lib/services/utils.service.js +0 -207
- package/esm2015/lib/services/variation-cache.service.js +0 -143
- package/esm2015/lib/services/variation.service.js +0 -490
- package/esm2015/lib/services/view-mode.service.js +0 -37
- package/esm2015/lib/services/vr.service.js +0 -191
- package/esm2015/lib/services/xr.service.js +0 -294
- package/esm2015/lib/utils/asset.utils.js +0 -120
- package/esm2015/lib/utils/base-utils.js +0 -9
- package/esm2015/lib/utils/color.utils.js +0 -30
- package/esm2015/lib/utils/debug.utils.js +0 -9
- package/esm2015/lib/utils/device.utils.js +0 -25
- package/esm2015/lib/utils/file.utils.js +0 -167
- package/esm2015/lib/utils/image.utils.js +0 -61
- package/esm2015/lib/utils/json-parser.utils.js +0 -180
- package/esm2015/lib/utils/material.utils.js +0 -433
- package/esm2015/lib/utils/object.utils.js +0 -360
- package/esm2015/lib/utils/relative-position.utils.js +0 -75
- package/esm2015/lib/utils/rotation-helper.utils.js +0 -15
- package/esm2015/lib/utils/scene-3d.utils.js +0 -213
- package/esm2015/lib/utils/scene-utils.js +0 -191
- package/esm2015/lib/utils/text-utils.js +0 -68
- package/esm2015/lib/utils/threed.utils.js +0 -281
- package/esm2015/lib/utils/variation-utils.js +0 -459
- package/esm2015/public-api.js +0 -65
- package/fesm2015/colijnit-configurator.js.map +0 -1
- package/lib/builder.d.ts +0 -83
- package/lib/components/answer-card/answer-card.component.d.ts +0 -58
- package/lib/components/answer-card/answer-card.module.d.ts +0 -11
- package/lib/components/answer-info-dialog/answer-info-dialog.component.d.ts +0 -38
- package/lib/components/answer-info-dialog/answer-info-dialog.module.d.ts +0 -10
- package/lib/components/answers-slideout/answers-slideout.component.d.ts +0 -86
- package/lib/components/answers-slideout/answers-slideout.module.d.ts +0 -16
- package/lib/components/color-filter/color-filter.component.d.ts +0 -20
- package/lib/components/color-filter/color-filter.module.d.ts +0 -8
- package/lib/components/configurator/configurator.component.d.ts +0 -37
- package/lib/components/configurator/configurator.module.d.ts +0 -12
- package/lib/components/configurator-dialog/configurator-camera-settings.component.d.ts +0 -30
- package/lib/components/configurator-dialog/configurator-dialog.module.d.ts +0 -13
- package/lib/components/configurator-dialog/configurator-error-dialog.component.d.ts +0 -16
- package/lib/components/configurator-dialog/configurator-export-dialog.component.d.ts +0 -26
- package/lib/components/configurator-loader/configurator-loader.component.d.ts +0 -7
- package/lib/components/configurator-loader/configurator-loader.module.d.ts +0 -9
- package/lib/components/configurator-scene/configurator-scene.component.d.ts +0 -24
- package/lib/components/configurator-scene/configurator-scene.module.d.ts +0 -7
- package/lib/components/configurator-scene-loader/configurator-scene-loader.component.d.ts +0 -7
- package/lib/components/configurator-scene-loader/configurator-scene-loader.module.d.ts +0 -8
- package/lib/components/element-buttons/element-buttons.component.d.ts +0 -32
- package/lib/components/element-buttons/element-buttons.module.d.ts +0 -9
- package/lib/components/element-toolbar/element-toolbar.component.d.ts +0 -27
- package/lib/components/element-toolbar/element-toolbar.module.d.ts +0 -10
- package/lib/components/image-zoom/image-zoom.component.d.ts +0 -15
- package/lib/components/image-zoom/image-zoom.module.d.ts +0 -9
- package/lib/components/lite-selector/lite-selector.component.d.ts +0 -40
- package/lib/components/lite-selector/lite-selector.module.d.ts +0 -10
- package/lib/components/product-configurator/product-configurator.component.d.ts +0 -50
- package/lib/components/product-configurator/product-configurator.module.d.ts +0 -15
- package/lib/components/product-configurator-selector/product-configurator-selector.component.d.ts +0 -35
- package/lib/components/product-configurator-selector/product-configurator-selector.module.d.ts +0 -11
- package/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.d.ts +0 -31
- package/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.d.ts +0 -13
- package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.d.ts +0 -20
- package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.d.ts +0 -10
- package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.d.ts +0 -20
- package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.d.ts +0 -10
- package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.d.ts +0 -21
- package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.d.ts +0 -10
- package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.d.ts +0 -21
- package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.d.ts +0 -10
- package/lib/components/progress-bar/progress-bar.component.d.ts +0 -10
- package/lib/components/progress-bar/progress-bar.module.d.ts +0 -8
- package/lib/components/scene-options/scene-options.component.d.ts +0 -24
- package/lib/components/scene-options/scene-options.module.d.ts +0 -11
- package/lib/components/selections-summary/selections-summary.component.d.ts +0 -38
- package/lib/components/selections-summary/selections-summary.module.d.ts +0 -12
- package/lib/components/selections-summary-line/selections-summary-line.component.d.ts +0 -27
- package/lib/components/selections-summary-line/selections-summary-line.module.d.ts +0 -10
- package/lib/components/slideout/slideout.component.d.ts +0 -22
- package/lib/components/slideout/slideout.module.d.ts +0 -7
- package/lib/components/summary-line/summary-line.component.d.ts +0 -50
- package/lib/components/summary-line/summary-line.module.d.ts +0 -11
- package/lib/components/tag-filter/tag-filter.component.d.ts +0 -9
- package/lib/components/tag-filter/tag-filter.module.d.ts +0 -7
- package/lib/components/threedselector/threedselector.component.d.ts +0 -38
- package/lib/components/threedselector/threedselector.module.d.ts +0 -10
- package/lib/core/helper/variation-helper.d.ts +0 -25
- package/lib/core/shader/floor-fade.shader.d.ts +0 -5
- package/lib/core/textures/depth-data-texture.d.ts +0 -5
- package/lib/directives/directives.module.d.ts +0 -8
- package/lib/directives/visibility-observer-master.directive.d.ts +0 -12
- package/lib/directives/visibility-observer.directive.d.ts +0 -16
- package/lib/enum/ar-feature.enum.d.ts +0 -12
- package/lib/enum/configuration-key.enum.d.ts +0 -39
- package/lib/enum/configuration-template.enum.d.ts +0 -4
- package/lib/enum/device-size-type.d.ts +0 -5
- package/lib/enum/device-tier.enum.d.ts +0 -5
- package/lib/enum/icon.enum.d.ts +0 -111
- package/lib/enum/item-type.enum.d.ts +0 -21
- package/lib/enum/light.enum.d.ts +0 -7
- package/lib/enum/navigator-type.enum.d.ts +0 -4
- package/lib/enum/output-encoding.enum.d.ts +0 -7
- package/lib/enum/result-type.enum.d.ts +0 -19
- package/lib/enum/scene-event.enum.d.ts +0 -10
- package/lib/enum/shadow-map-type.enum.d.ts +0 -6
- package/lib/enum/texture-type.d.ts +0 -7
- package/lib/enum/tone-mapping-local.enum.d.ts +0 -10
- package/lib/enum/view-mode.enum.d.ts +0 -5
- package/lib/enum/xr-mode.enum.d.ts +0 -4
- package/lib/environments/environment.d.ts +0 -4
- package/lib/interfaces/aa-options.interface.d.ts +0 -4
- package/lib/interfaces/adjustable-element.interface.d.ts +0 -5
- package/lib/interfaces/ao-options.interface.d.ts +0 -18
- package/lib/interfaces/changes.interface.d.ts +0 -9
- package/lib/interfaces/configuration-data.interface.d.ts +0 -40
- package/lib/interfaces/light-preset.interface.d.ts +0 -22
- package/lib/interfaces/post-processing-setting.interface.d.ts +0 -11
- package/lib/interfaces/scene-option-button.interface.d.ts +0 -19
- package/lib/interfaces/screen-size-info.d.ts +0 -10
- package/lib/interfaces/setting.interface.d.ts +0 -8
- package/lib/interfaces/texture.interface.d.ts +0 -44
- package/lib/interfaces/vignette-options.interface.d.ts +0 -4
- package/lib/model/ar-position-indicator.d.ts +0 -4
- package/lib/model/camera-settings.d.ts +0 -12
- package/lib/model/configuration-result-object.d.ts +0 -30
- package/lib/model/configurator-error-message.d.ts +0 -8
- package/lib/model/configurator-settings.d.ts +0 -62
- package/lib/model/custom-button.d.ts +0 -10
- package/lib/model/factory.d.ts +0 -5
- package/lib/model/icon.d.ts +0 -4
- package/lib/model/intersected-objects.d.ts +0 -6
- package/lib/model/light-preset.d.ts +0 -33
- package/lib/model/light-properties.d.ts +0 -25
- package/lib/model/material.d.ts +0 -41
- package/lib/model/metadata.d.ts +0 -78
- package/lib/model/render-parameters.d.ts +0 -12
- package/lib/model/setting-options.d.ts +0 -67
- package/lib/model/settings.d.ts +0 -10
- package/lib/model/shadow-properties.d.ts +0 -7
- package/lib/model/skin.d.ts +0 -15
- package/lib/model/texture.d.ts +0 -52
- package/lib/model/variation-settings.d.ts +0 -55
- package/lib/model/variation.d.ts +0 -11
- package/lib/model/xr-reticle.d.ts +0 -17
- package/lib/modules/render/enum/scene-type.enum.d.ts +0 -4
- package/lib/modules/render/model/ar-parameters.d.ts +0 -9
- package/lib/modules/render/model/scene-setting.d.ts +0 -13
- package/lib/modules/render/model/scene-settings.d.ts +0 -4
- package/lib/pipes/append.pipe.d.ts +0 -7
- package/lib/pipes/google-translate.pipe.d.ts +0 -11
- package/lib/pipes/localize.pipe.d.ts +0 -10
- package/lib/pipes/pipes.module.d.ts +0 -11
- package/lib/pipes/prepend.pipe.d.ts +0 -7
- package/lib/pipes/strip-html.pipe.d.ts +0 -7
- package/lib/services/app-event.service.d.ts +0 -32
- package/lib/services/app-initializer.service.d.ts +0 -14
- package/lib/services/ar.service.d.ts +0 -120
- package/lib/services/build-furniture-base.service.d.ts +0 -117
- package/lib/services/build-furniture-without-scene.service.d.ts +0 -14
- package/lib/services/build-furniture.service.d.ts +0 -14
- package/lib/services/bundle-initialzer.service.d.ts +0 -45
- package/lib/services/camera.service.d.ts +0 -44
- package/lib/services/configuration.service.d.ts +0 -18
- package/lib/services/configurator-connector.service.d.ts +0 -140
- package/lib/services/configurator.service.d.ts +0 -62
- package/lib/services/configuring.service.d.ts +0 -46
- package/lib/services/controls.d.ts +0 -11
- package/lib/services/debug.service.d.ts +0 -16
- package/lib/services/dictionary.service.d.ts +0 -15
- package/lib/services/dynamic-camera.service.d.ts +0 -21
- package/lib/services/floor-plane.service.d.ts +0 -47
- package/lib/services/font.service.d.ts +0 -10
- package/lib/services/google-translate.service.d.ts +0 -26
- package/lib/services/icon-cache.service.d.ts +0 -21
- package/lib/services/intersection.service.d.ts +0 -11
- package/lib/services/item.service.d.ts +0 -18
- package/lib/services/json-utils.service.d.ts +0 -7
- package/lib/services/light-creation.service.d.ts +0 -9
- package/lib/services/light-presets.service.d.ts +0 -34
- package/lib/services/lights.service.d.ts +0 -34
- package/lib/services/load-furniture-base.service.d.ts +0 -37
- package/lib/services/load-furniture-without-scene.service.d.ts +0 -9
- package/lib/services/load-furniture.service.d.ts +0 -9
- package/lib/services/loader.service.d.ts +0 -11
- package/lib/services/locator.service.d.ts +0 -7
- package/lib/services/message-board.service.d.ts +0 -18
- package/lib/services/post-processing.service.d.ts +0 -74
- package/lib/services/product-configurator.service.d.ts +0 -11
- package/lib/services/progress.service.d.ts +0 -9
- package/lib/services/scene-event.service.d.ts +0 -72
- package/lib/services/scene-options.service.d.ts +0 -11
- package/lib/services/scene.service.d.ts +0 -71
- package/lib/services/screen-size-analysis.service.d.ts +0 -32
- package/lib/services/settings.service.d.ts +0 -24
- package/lib/services/switch-build-furniture.service.d.ts +0 -21
- package/lib/services/switch-load-furniture.service.d.ts +0 -21
- package/lib/services/threedselector.service.d.ts +0 -17
- package/lib/services/utils.service.d.ts +0 -24
- package/lib/services/variation-cache.service.d.ts +0 -23
- package/lib/services/variation.service.d.ts +0 -26
- package/lib/services/view-mode.service.d.ts +0 -17
- package/lib/services/vr.service.d.ts +0 -42
- package/lib/services/xr.service.d.ts +0 -56
- package/lib/utils/asset.utils.d.ts +0 -19
- package/lib/utils/base-utils.d.ts +0 -4
- package/lib/utils/color.utils.d.ts +0 -8
- package/lib/utils/debug.utils.d.ts +0 -3
- package/lib/utils/device.utils.d.ts +0 -7
- package/lib/utils/file.utils.d.ts +0 -30
- package/lib/utils/image.utils.d.ts +0 -9
- package/lib/utils/json-parser.utils.d.ts +0 -9
- package/lib/utils/material.utils.d.ts +0 -34
- package/lib/utils/object.utils.d.ts +0 -32
- package/lib/utils/relative-position.utils.d.ts +0 -12
- package/lib/utils/rotation-helper.utils.d.ts +0 -6
- package/lib/utils/scene-3d.utils.d.ts +0 -8
- package/lib/utils/scene-utils.d.ts +0 -7
- package/lib/utils/text-utils.d.ts +0 -4
- package/lib/utils/threed.utils.d.ts +0 -20
- package/lib/utils/variation-utils.d.ts +0 -18
- package/public-api.d.ts +0 -60
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
4
|
-
import { ConfiguratorSettings } from '../model/configurator-settings';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./json-utils.service";
|
|
7
|
-
import * as i2 from "./dictionary.service";
|
|
8
|
-
export class SettingsService {
|
|
9
|
-
constructor(_jsonUtilsService, _dictionaryService) {
|
|
10
|
-
this._jsonUtilsService = _jsonUtilsService;
|
|
11
|
-
this._dictionaryService = _dictionaryService;
|
|
12
|
-
this.settingsLoaded = new BehaviorSubject(false);
|
|
13
|
-
this.lightSettingsLoaded = new BehaviorSubject(undefined);
|
|
14
|
-
this.settingsChanged = new Subject();
|
|
15
|
-
this._settings = new ConfiguratorSettings();
|
|
16
|
-
// this._initializeSettings();
|
|
17
|
-
}
|
|
18
|
-
set settings(value) {
|
|
19
|
-
this._settings = value;
|
|
20
|
-
}
|
|
21
|
-
get settings() {
|
|
22
|
-
return this._settings;
|
|
23
|
-
}
|
|
24
|
-
createSettingsFromObject(obj) {
|
|
25
|
-
if (!this.settings) {
|
|
26
|
-
this.settings = new ConfiguratorSettings();
|
|
27
|
-
}
|
|
28
|
-
const ownOptions = Object.assign({}, this.settings.options);
|
|
29
|
-
const ownRenderParameters = Object.assign({}, this.settings.renderParameters);
|
|
30
|
-
const blenderSceneSettings = Object.assign({}, this.settings.blenderSceneSettings);
|
|
31
|
-
this.settings = Object.assign({}, this.settings, obj);
|
|
32
|
-
if (obj.renderParameters) {
|
|
33
|
-
this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);
|
|
34
|
-
}
|
|
35
|
-
if (obj.options) {
|
|
36
|
-
this.settings.options = Object.assign({}, ownOptions, obj.options);
|
|
37
|
-
}
|
|
38
|
-
if (obj.blenderSceneSettings) {
|
|
39
|
-
this.settings.blenderSceneSettings = Object.assign({}, blenderSceneSettings, obj.blenderSceneSettings);
|
|
40
|
-
}
|
|
41
|
-
if (obj.hasOwnProperty('assetPath')) {
|
|
42
|
-
this.settings.assetPath = obj['assetPath'];
|
|
43
|
-
if (!this.settings.assetPath[this.settings.assetPath.length - 1].endsWith('/')) {
|
|
44
|
-
this.settings.assetPath += '/';
|
|
45
|
-
}
|
|
46
|
-
this.settings.threeDAssetPath = this.settings.assetPath;
|
|
47
|
-
}
|
|
48
|
-
if (obj.hasOwnProperty('threeDAssetPath')) {
|
|
49
|
-
this.settings.threeDAssetPath = obj['threeDAssetPath'];
|
|
50
|
-
if (!this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1].endsWith('/')) {
|
|
51
|
-
this.settings.threeDAssetPath += '/';
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (obj.hasOwnProperty('blendFilesRender')) {
|
|
55
|
-
this.settings.blendFilesRender = obj['blendFilesRender'];
|
|
56
|
-
}
|
|
57
|
-
if (obj.hasOwnProperty('user3DModelUploadEnabled')) {
|
|
58
|
-
this.settings.user3DModelUploadEnabled = obj['user3DModelUploadEnabled'];
|
|
59
|
-
}
|
|
60
|
-
if (obj.hasOwnProperty('productRenderSceneAssetId')) {
|
|
61
|
-
this.settings.productRenderSceneAssetId = obj['productRenderSceneAssetId'];
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
// set fallback, just to be sure.
|
|
65
|
-
this.settings.productRenderSceneAssetId = 'scene_studio_eevee';
|
|
66
|
-
}
|
|
67
|
-
// this._connectorService.mainUrl = this.settings.url;
|
|
68
|
-
// this._connectorService.mainSchema = this.settings.schema;
|
|
69
|
-
// this._connectorService.mainVersion = this.settings.version;
|
|
70
|
-
}
|
|
71
|
-
initializeSettings(settings) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
if (settings) {
|
|
74
|
-
yield this.initialize(settings);
|
|
75
|
-
}
|
|
76
|
-
yield this._checkUrlParameters();
|
|
77
|
-
this.settingsLoaded.next(true);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
initialize(settings) {
|
|
81
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
if (settings) {
|
|
83
|
-
yield this.createSettingsFromObject(settings);
|
|
84
|
-
}
|
|
85
|
-
yield this._dictionaryService.setDictionary(this.settings.assetPath, this.settings.client, this.settings.languageCode, this.settings.additionalTranslationFile);
|
|
86
|
-
// this.settingsLoaded.next(true);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
checkAdditionalParameters() {
|
|
90
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
// if (!this.settings) {
|
|
92
|
-
// return;
|
|
93
|
-
// }
|
|
94
|
-
// if (!this.settings.assetPath) {
|
|
95
|
-
// try {
|
|
96
|
-
// let path = await this._configuratorService.getInternalParameter(InternalParam.GeneralAssetUrl);
|
|
97
|
-
// if (!path.endsWith('/')) {
|
|
98
|
-
// path += '/';
|
|
99
|
-
// }
|
|
100
|
-
// this.settings.assetPath = path;
|
|
101
|
-
// } catch (e) {
|
|
102
|
-
// }
|
|
103
|
-
// }
|
|
104
|
-
// if (!this.settings.threeDAssetPath) {
|
|
105
|
-
// let path = await this._configuratorService.getInternalParameter(InternalParam.AssetUrl);
|
|
106
|
-
// if (!path.endsWith('/')) {
|
|
107
|
-
// path += '/';
|
|
108
|
-
// }
|
|
109
|
-
// this.settings.threeDAssetPath = path;
|
|
110
|
-
// }
|
|
111
|
-
// if (!this.settings.user3DModelUploadEnabled) {
|
|
112
|
-
// const uploadSetting = await this._configuratorService.getInternalParameter(InternalParam.UPLOAD_3D_MODEL);
|
|
113
|
-
// if (uploadSetting === 'J') {
|
|
114
|
-
// this.settings.user3DModelUploadEnabled = true;
|
|
115
|
-
// }
|
|
116
|
-
// }
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
_checkUrlParameters() {
|
|
120
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
// const urlParams = new URLSearchParams(window.location.search);
|
|
122
|
-
// const client = urlParams.get('client');
|
|
123
|
-
// if (client) {
|
|
124
|
-
// const jsonSettings: any =
|
|
125
|
-
// await this._jsonUtilsService.readJsonFile(this.settings.assetPath + `assets/${client}-settings.json`, false);
|
|
126
|
-
// this.settings = Object.assign(new HomedecoratorSettings(), jsonSettings);
|
|
127
|
-
// this.settings.options = Object.assign(new HomedecoratorSettingsOptions(), this.settings.options);
|
|
128
|
-
// this.settings.client = client;
|
|
129
|
-
// await this.initialize(this.settings);
|
|
130
|
-
// }
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
SettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SettingsService, deps: [{ token: i1.JsonUtilsService }, { token: i2.DictionaryService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
135
|
-
SettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SettingsService, providedIn: 'root' });
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SettingsService, decorators: [{
|
|
137
|
-
type: Injectable,
|
|
138
|
-
args: [{
|
|
139
|
-
providedIn: 'root'
|
|
140
|
-
}]
|
|
141
|
-
}], ctorParameters: function () { return [{ type: i1.JsonUtilsService }, { type: i2.DictionaryService }]; } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFRcEUsTUFBTSxPQUFPLGVBQWU7SUFnQjFCLFlBQ1UsaUJBQW1DLEVBQ25DLGtCQUFxQztRQURyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFSeEMsbUJBQWMsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsd0JBQW1CLEdBQStCLElBQUksZUFBZSxDQUFZLFNBQVMsQ0FBQyxDQUFDO1FBQzVGLG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQsY0FBUyxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFNbkUsOEJBQThCO0lBQ2hDLENBQUM7SUFuQkQsSUFBVyxRQUFRLENBQUMsS0FBMkI7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQWVNLHdCQUF3QixDQUFDLEdBQVE7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7U0FDNUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0RCxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQy9GO1FBQ0QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRTtRQUVELElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDeEc7UUFFRCxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUM7YUFDaEM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztTQUN6RDtRQUNELElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxHQUFHLENBQUM7YUFDdEM7U0FDRjtRQUNELElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixHQUFHLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsR0FBRyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM1RTthQUFNO1lBQ0wsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEdBQUcsb0JBQW9CLENBQUM7U0FDaEU7UUFFRCxzREFBc0Q7UUFDdEQsNERBQTREO1FBQzVELDhEQUE4RDtJQUNoRSxDQUFDO0lBRVksa0JBQWtCLENBQUMsUUFBK0I7O1lBQzdELElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqQztZQUNELE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztLQUFBO0lBRVksVUFBVSxDQUFDLFFBQThCOztZQUNwRCxJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQztZQUNELE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3RILGtDQUFrQztRQUNwQyxDQUFDO0tBQUE7SUFFWSx5QkFBeUI7O1lBQ3BDLHdCQUF3QjtZQUN4QixZQUFZO1lBQ1osSUFBSTtZQUNKLGtDQUFrQztZQUNsQyxVQUFVO1lBQ1Ysc0dBQXNHO1lBQ3RHLGlDQUFpQztZQUNqQyxxQkFBcUI7WUFDckIsUUFBUTtZQUNSLHNDQUFzQztZQUN0QyxrQkFBa0I7WUFDbEIsTUFBTTtZQUNOLElBQUk7WUFDSix3Q0FBd0M7WUFDeEMsNkZBQTZGO1lBQzdGLCtCQUErQjtZQUMvQixtQkFBbUI7WUFDbkIsTUFBTTtZQUNOLDBDQUEwQztZQUMxQyxJQUFJO1lBQ0osaURBQWlEO1lBQ2pELCtHQUErRztZQUMvRyxpQ0FBaUM7WUFDakMscURBQXFEO1lBQ3JELE1BQU07WUFDTixJQUFJO1FBQ04sQ0FBQztLQUFBO0lBRWEsbUJBQW1COztZQUMvQixpRUFBaUU7WUFDakUsMENBQTBDO1lBQzFDLGdCQUFnQjtZQUNoQiw4QkFBOEI7WUFDOUIsb0hBQW9IO1lBQ3BILDhFQUE4RTtZQUM5RSxzR0FBc0c7WUFDdEcsbUNBQW1DO1lBQ25DLDBDQUEwQztZQUMxQyxJQUFJO1FBQ04sQ0FBQztLQUFBOzs2R0FsSVUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JTZXR0aW5nc30gZnJvbSAnLi4vbW9kZWwvY29uZmlndXJhdG9yLXNldHRpbmdzJztcclxuaW1wb3J0IHtKc29uVXRpbHNTZXJ2aWNlfSBmcm9tICcuL2pzb24tdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4vZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5ncyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1NlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc2V0IHNldHRpbmdzKHZhbHVlOiBDb25maWd1cmF0b3JTZXR0aW5ncykge1xyXG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ29uZmlndXJhdG9yU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzTG9hZGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuICBwdWJsaWMgbGlnaHRTZXR0aW5nc0xvYWRlZDogQmVoYXZpb3JTdWJqZWN0PFNldHRpbmdbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldHRpbmdbXT4odW5kZWZpbmVkKTtcclxuICBwdWJsaWMgc2V0dGluZ3NDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfc2V0dGluZ3M6IENvbmZpZ3VyYXRvclNldHRpbmdzID0gbmV3IENvbmZpZ3VyYXRvclNldHRpbmdzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfanNvblV0aWxzU2VydmljZTogSnNvblV0aWxzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gdGhpcy5faW5pdGlhbGl6ZVNldHRpbmdzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlU2V0dGluZ3NGcm9tT2JqZWN0KG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IG5ldyBDb25maWd1cmF0b3JTZXR0aW5ncygpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgb3duT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2V0dGluZ3Mub3B0aW9ucyk7XHJcbiAgICBjb25zdCBvd25SZW5kZXJQYXJhbWV0ZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncy5yZW5kZXJQYXJhbWV0ZXJzKTtcclxuICAgIGNvbnN0IGJsZW5kZXJTY2VuZVNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncy5ibGVuZGVyU2NlbmVTZXR0aW5ncyk7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZXR0aW5ncywgb2JqKTtcclxuICAgIGlmIChvYmoucmVuZGVyUGFyYW1ldGVycykge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnJlbmRlclBhcmFtZXRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCBvd25SZW5kZXJQYXJhbWV0ZXJzLCBvYmoucmVuZGVyUGFyYW1ldGVycyk7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLm9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3duT3B0aW9ucywgb2JqLm9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouYmxlbmRlclNjZW5lU2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5ibGVuZGVyU2NlbmVTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIGJsZW5kZXJTY2VuZVNldHRpbmdzLCBvYmouYmxlbmRlclNjZW5lU2V0dGluZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoJ2Fzc2V0UGF0aCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYXNzZXRQYXRoID0gb2JqWydhc3NldFBhdGgnXTtcclxuICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmFzc2V0UGF0aFt0aGlzLnNldHRpbmdzLmFzc2V0UGF0aC5sZW5ndGggLSAxXS5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGggKz0gJy8nO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gdGhpcy5zZXR0aW5ncy5hc3NldFBhdGg7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KCd0aHJlZURBc3NldFBhdGgnKSkge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLnRocmVlREFzc2V0UGF0aCA9IG9ialsndGhyZWVEQXNzZXRQYXRoJ107XHJcbiAgICAgIGlmICghdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGhbdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGgubGVuZ3RoIC0gMV0uZW5kc1dpdGgoJy8nKSkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoICs9ICcvJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgnYmxlbmRGaWxlc1JlbmRlcicpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MuYmxlbmRGaWxlc1JlbmRlciA9IG9ialsnYmxlbmRGaWxlc1JlbmRlciddO1xyXG4gICAgfVxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgndXNlcjNETW9kZWxVcGxvYWRFbmFibGVkJykpIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQgPSBvYmpbJ3VzZXIzRE1vZGVsVXBsb2FkRW5hYmxlZCddO1xyXG4gICAgfVxyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSgncHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCcpKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MucHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCA9IG9ialsncHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCddO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gc2V0IGZhbGxiYWNrLCBqdXN0IHRvIGJlIHN1cmUuXHJcbiAgICAgIHRoaXMuc2V0dGluZ3MucHJvZHVjdFJlbmRlclNjZW5lQXNzZXRJZCA9ICdzY2VuZV9zdHVkaW9fZWV2ZWUnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2Nvbm5lY3RvclNlcnZpY2UubWFpblVybCA9IHRoaXMuc2V0dGluZ3MudXJsO1xyXG4gICAgLy8gdGhpcy5fY29ubmVjdG9yU2VydmljZS5tYWluU2NoZW1hID0gdGhpcy5zZXR0aW5ncy5zY2hlbWE7XHJcbiAgICAvLyB0aGlzLl9jb25uZWN0b3JTZXJ2aWNlLm1haW5WZXJzaW9uID0gdGhpcy5zZXR0aW5ncy52ZXJzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5ncz86IENvbmZpZ3VyYXRvclNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKHNldHRpbmdzKTtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuX2NoZWNrVXJsUGFyYW1ldGVycygpO1xyXG4gICAgdGhpcy5zZXR0aW5nc0xvYWRlZC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoc2V0dGluZ3M6IENvbmZpZ3VyYXRvclNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc2V0dGluZ3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXR0aW5nc0Zyb21PYmplY3Qoc2V0dGluZ3MpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5fZGljdGlvbmFyeVNlcnZpY2Uuc2V0RGljdGlvbmFyeShcclxuICAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGgsIHRoaXMuc2V0dGluZ3MuY2xpZW50LCB0aGlzLnNldHRpbmdzLmxhbmd1YWdlQ29kZSwgdGhpcy5zZXR0aW5ncy5hZGRpdGlvbmFsVHJhbnNsYXRpb25GaWxlKTtcclxuICAgIC8vIHRoaXMuc2V0dGluZ3NMb2FkZWQubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGVja0FkZGl0aW9uYWxQYXJhbWV0ZXJzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gaWYgKCF0aGlzLnNldHRpbmdzKSB7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghdGhpcy5zZXR0aW5ncy5hc3NldFBhdGgpIHtcclxuICAgIC8vICAgdHJ5IHtcclxuICAgIC8vICAgICBsZXQgcGF0aCA9IGF3YWl0IHRoaXMuX2NvbmZpZ3VyYXRvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5HZW5lcmFsQXNzZXRVcmwpO1xyXG4gICAgLy8gICAgIGlmICghcGF0aC5lbmRzV2l0aCgnLycpKSB7XHJcbiAgICAvLyAgICAgICBwYXRoICs9ICcvJztcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhpcy5zZXR0aW5ncy5hc3NldFBhdGggPSBwYXRoO1xyXG4gICAgLy8gICB9IGNhdGNoIChlKSB7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghdGhpcy5zZXR0aW5ncy50aHJlZURBc3NldFBhdGgpIHtcclxuICAgIC8vICAgbGV0IHBhdGggPSBhd2FpdCB0aGlzLl9jb25maWd1cmF0b3JTZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uQXNzZXRVcmwpO1xyXG4gICAgLy8gICBpZiAoIXBhdGguZW5kc1dpdGgoJy8nKSkge1xyXG4gICAgLy8gICAgIHBhdGggKz0gJy8nO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIHRoaXMuc2V0dGluZ3MudGhyZWVEQXNzZXRQYXRoID0gcGF0aDtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQpIHtcclxuICAgIC8vICAgY29uc3QgdXBsb2FkU2V0dGluZyA9IGF3YWl0IHRoaXMuX2NvbmZpZ3VyYXRvclNlcnZpY2UuZ2V0SW50ZXJuYWxQYXJhbWV0ZXIoSW50ZXJuYWxQYXJhbS5VUExPQURfM0RfTU9ERUwpO1xyXG4gICAgLy8gICBpZiAodXBsb2FkU2V0dGluZyA9PT0gJ0onKSB7XHJcbiAgICAvLyAgICAgdGhpcy5zZXR0aW5ncy51c2VyM0RNb2RlbFVwbG9hZEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jaGVja1VybFBhcmFtZXRlcnMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgLy8gY29uc3QgY2xpZW50ID0gdXJsUGFyYW1zLmdldCgnY2xpZW50Jyk7XHJcbiAgICAvLyBpZiAoY2xpZW50KSB7XHJcbiAgICAvLyAgIGNvbnN0IGpzb25TZXR0aW5nczogYW55ID1cclxuICAgIC8vICAgICBhd2FpdCB0aGlzLl9qc29uVXRpbHNTZXJ2aWNlLnJlYWRKc29uRmlsZSh0aGlzLnNldHRpbmdzLmFzc2V0UGF0aCArIGBhc3NldHMvJHtjbGllbnR9LXNldHRpbmdzLmpzb25gLCBmYWxzZSk7XHJcbiAgICAvLyAgIHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKG5ldyBIb21lZGVjb3JhdG9yU2V0dGluZ3MoKSwganNvblNldHRpbmdzKTtcclxuICAgIC8vICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihuZXcgSG9tZWRlY29yYXRvclNldHRpbmdzT3B0aW9ucygpLCB0aGlzLnNldHRpbmdzLm9wdGlvbnMpO1xyXG4gICAgLy8gICB0aGlzLnNldHRpbmdzLmNsaWVudCA9IGNsaWVudDtcclxuICAgIC8vICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKHRoaXMuc2V0dGluZ3MpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./build-furniture.service";
|
|
4
|
-
import * as i2 from "./build-furniture-without-scene.service";
|
|
5
|
-
import * as i3 from "./settings.service";
|
|
6
|
-
import * as i4 from "./configurator-connector.service";
|
|
7
|
-
export class SwitchBuildFurnitureService {
|
|
8
|
-
constructor(_buildFurnitureService, _buildFurnitureWithoutSceneService, _settingsService, _configuratorService) {
|
|
9
|
-
this._buildFurnitureService = _buildFurnitureService;
|
|
10
|
-
this._buildFurnitureWithoutSceneService = _buildFurnitureWithoutSceneService;
|
|
11
|
-
this._settingsService = _settingsService;
|
|
12
|
-
this._configuratorService = _configuratorService;
|
|
13
|
-
this._standAlone = true;
|
|
14
|
-
// Defaults to BuildFurnitureService
|
|
15
|
-
this.currentActiveService = this._buildFurnitureService;
|
|
16
|
-
this._controllerInitSub = this._configuratorService.controllerInitialized.subscribe((initialized) => {
|
|
17
|
-
if (initialized) {
|
|
18
|
-
if (!this._settingsService.settings.options.useThreedScene && this._standAlone) {
|
|
19
|
-
this.currentActiveService = this._buildFurnitureWithoutSceneService;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this._controllerInitSub.unsubscribe();
|
|
26
|
-
this._standAloneInstance.unsubscribe();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
SwitchBuildFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchBuildFurnitureService, deps: [{ token: i1.BuildFurnitureService }, { token: i2.BuildFurnitureWithoutSceneService }, { token: i3.SettingsService }, { token: i4.ConfiguratorConnectorService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
-
SwitchBuildFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchBuildFurnitureService, providedIn: 'root' });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchBuildFurnitureService, decorators: [{
|
|
32
|
-
type: Injectable,
|
|
33
|
-
args: [{
|
|
34
|
-
providedIn: 'root'
|
|
35
|
-
}]
|
|
36
|
-
}], ctorParameters: function () { return [{ type: i1.BuildFurnitureService }, { type: i2.BuildFurnitureWithoutSceneService }, { type: i3.SettingsService }, { type: i4.ConfiguratorConnectorService }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWJ1aWxkLWZ1cm5pdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvc2VydmljZXMvc3dpdGNoLWJ1aWxkLWZ1cm5pdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFwRCxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDLFlBQ1Usc0JBQTZDLEVBQzdDLGtDQUFxRSxFQUNyRSxnQkFBaUMsRUFDakMsb0JBQWtEO1FBSGxELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MsdUNBQWtDLEdBQWxDLGtDQUFrQyxDQUFtQztRQUNyRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBOEI7UUFScEQsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFVbEMsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFvQixFQUFFLEVBQUU7WUFDM0csSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUM5RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNyRTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQzs7eUhBM0JVLDJCQUEyQjs2SEFBM0IsMkJBQTJCLGNBSDFCLE1BQU07NEZBR1AsMkJBQTJCO2tCQUp2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtCdWlsZEZ1cm5pdHVyZVNlcnZpY2V9IGZyb20gJy4vYnVpbGQtZnVybml0dXJlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0J1aWxkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZX0gZnJvbSAnLi9idWlsZC1mdXJuaXR1cmUtd2l0aG91dC1zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtCdWlsZEZ1cm5pdHVyZUJhc2VTZXJ2aWNlfSBmcm9tICcuL2J1aWxkLWZ1cm5pdHVyZS1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuL2NvbmZpZ3VyYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQnVpbGRGdXJuaXR1cmVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGN1cnJlbnRBY3RpdmVTZXJ2aWNlOiBCdWlsZEZ1cm5pdHVyZUJhc2VTZXJ2aWNlO1xyXG4gIHByaXZhdGUgX3N0YW5kQWxvbmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgX2NvbnRyb2xsZXJJbml0U3ViOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfc3RhbmRBbG9uZUluc3RhbmNlOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYnVpbGRGdXJuaXR1cmVTZXJ2aWNlOiBCdWlsZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9idWlsZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2U6IEJ1aWxkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gRGVmYXVsdHMgdG8gQnVpbGRGdXJuaXR1cmVTZXJ2aWNlXHJcbiAgICB0aGlzLmN1cnJlbnRBY3RpdmVTZXJ2aWNlID0gdGhpcy5fYnVpbGRGdXJuaXR1cmVTZXJ2aWNlO1xyXG4gICAgdGhpcy5fY29udHJvbGxlckluaXRTdWIgPSB0aGlzLl9jb25maWd1cmF0b3JTZXJ2aWNlLmNvbnRyb2xsZXJJbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMudXNlVGhyZWVkU2NlbmUgJiYgdGhpcy5fc3RhbmRBbG9uZSkge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2VydmljZSA9IHRoaXMuX2J1aWxkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250cm9sbGVySW5pdFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fc3RhbmRBbG9uZUluc3RhbmNlLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./load-furniture.service";
|
|
4
|
-
import * as i2 from "./load-furniture-without-scene.service";
|
|
5
|
-
import * as i3 from "./settings.service";
|
|
6
|
-
import * as i4 from "./configurator-connector.service";
|
|
7
|
-
export class SwitchLoadFurnitureService {
|
|
8
|
-
constructor(_loadFurnitureService, _loadFurnitureWithoutSceneService, _settingsService, _iOne) {
|
|
9
|
-
this._loadFurnitureService = _loadFurnitureService;
|
|
10
|
-
this._loadFurnitureWithoutSceneService = _loadFurnitureWithoutSceneService;
|
|
11
|
-
this._settingsService = _settingsService;
|
|
12
|
-
this._iOne = _iOne;
|
|
13
|
-
this._standAlone = true;
|
|
14
|
-
// Defaults to LoadFurnitureService
|
|
15
|
-
this.currentActiveService = this._loadFurnitureService;
|
|
16
|
-
this._controllerInitSub = this._iOne.controllerInitialized.subscribe((initialized) => {
|
|
17
|
-
if (initialized) {
|
|
18
|
-
if (!this._settingsService.settings.options.useThreedScene && this._standAlone) {
|
|
19
|
-
this.currentActiveService = this._loadFurnitureWithoutSceneService;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
ngOnDestroy() {
|
|
25
|
-
this._controllerInitSub.unsubscribe();
|
|
26
|
-
this._standAloneInstance.unsubscribe();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
SwitchLoadFurnitureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchLoadFurnitureService, deps: [{ token: i1.LoadFurnitureService }, { token: i2.LoadFurnitureWithoutSceneService }, { token: i3.SettingsService }, { token: i4.ConfiguratorConnectorService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
|
-
SwitchLoadFurnitureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchLoadFurnitureService, providedIn: 'root' });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SwitchLoadFurnitureService, decorators: [{
|
|
32
|
-
type: Injectable,
|
|
33
|
-
args: [{ providedIn: 'root' }]
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i1.LoadFurnitureService }, { type: i2.LoadFurnitureWithoutSceneService }, { type: i3.SettingsService }, { type: i4.ConfiguratorConnectorService }]; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWxvYWQtZnVybml0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25maWd1cmF0b3Ivc3JjL2xpYi9zZXJ2aWNlcy9zd2l0Y2gtbG9hZC1mdXJuaXR1cmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRcEQsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNVLHFCQUEyQyxFQUMzQyxpQ0FBbUUsRUFDbkUsZ0JBQWlDLEVBQ2pDLEtBQW1DO1FBSG5DLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFrQztRQUNuRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLFVBQUssR0FBTCxLQUFLLENBQThCO1FBUnJDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBVWxDLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQW9CLEVBQUUsRUFBRTtZQUM1RixJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQzlFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUM7aUJBQ3BFO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzt3SEE1QlUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGZCxNQUFNOzRGQUVsQiwwQkFBMEI7a0JBRnRDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2FkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZX0gZnJvbSAnLi9sb2FkLWZ1cm5pdHVyZS13aXRob3V0LXNjZW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xvYWRGdXJuaXR1cmVTZXJ2aWNlfSBmcm9tICcuL2xvYWQtZnVybml0dXJlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtMb2FkRnVybml0dXJlQmFzZVNlcnZpY2V9IGZyb20gJy4vbG9hZC1mdXJuaXR1cmUtYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4vc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoTG9hZEZ1cm5pdHVyZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgY3VycmVudEFjdGl2ZVNlcnZpY2U6IExvYWRGdXJuaXR1cmVCYXNlU2VydmljZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhbmRBbG9uZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHJpdmF0ZSBfY29udHJvbGxlckluaXRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIF9zdGFuZEFsb25lSW5zdGFuY2U6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9sb2FkRnVybml0dXJlU2VydmljZTogTG9hZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9sb2FkRnVybml0dXJlV2l0aG91dFNjZW5lU2VydmljZTogTG9hZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX2lPbmU6IENvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2VcclxuICApIHtcclxuICAgIC8vIERlZmF1bHRzIHRvIExvYWRGdXJuaXR1cmVTZXJ2aWNlXHJcbiAgICB0aGlzLmN1cnJlbnRBY3RpdmVTZXJ2aWNlID0gdGhpcy5fbG9hZEZ1cm5pdHVyZVNlcnZpY2U7XHJcbiAgICB0aGlzLl9jb250cm9sbGVySW5pdFN1YiA9IHRoaXMuX2lPbmUuY29udHJvbGxlckluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy51c2VUaHJlZWRTY2VuZSAmJiB0aGlzLl9zdGFuZEFsb25lKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTZXJ2aWNlID0gdGhpcy5fbG9hZEZ1cm5pdHVyZVdpdGhvdXRTY2VuZVNlcnZpY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29udHJvbGxlckluaXRTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3N0YW5kQWxvbmVJbnN0YW5jZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { JsonParserUtil } from '../utils/json-parser.utils';
|
|
4
|
-
import { ThreedUtils } from '../utils/threed.utils';
|
|
5
|
-
import { DebugUtils } from '../utils/debug.utils';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./variation-cache.service";
|
|
8
|
-
import * as i2 from "./settings.service";
|
|
9
|
-
import * as i3 from "./utils.service";
|
|
10
|
-
export class ThreedselectorService {
|
|
11
|
-
constructor(_variationCacheService, _settingsService, _utilsService) {
|
|
12
|
-
this._variationCacheService = _variationCacheService;
|
|
13
|
-
this._settingsService = _settingsService;
|
|
14
|
-
this._utilsService = _utilsService;
|
|
15
|
-
this._threedUtils = new ThreedUtils();
|
|
16
|
-
}
|
|
17
|
-
downloadAssetsAndReturn(fileName, assetPath, prepareProgress = false) {
|
|
18
|
-
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
const oReq = new XMLHttpRequest();
|
|
20
|
-
oReq.onloadend = (ev) => {
|
|
21
|
-
try {
|
|
22
|
-
const json = JSON.parse(ev.target.response);
|
|
23
|
-
JsonParserUtil.TryToParse(json).then((object) => {
|
|
24
|
-
// Do not remove this code, the render-service depends on the order of the children.
|
|
25
|
-
object.children.forEach((c) => {
|
|
26
|
-
const connectors = [];
|
|
27
|
-
let meshes = [];
|
|
28
|
-
c.children.forEach((x) => {
|
|
29
|
-
if (x.name !== '') {
|
|
30
|
-
connectors.push(x);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
meshes.push(x);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
meshes = meshes.reverse();
|
|
37
|
-
c.children = connectors.concat(meshes);
|
|
38
|
-
});
|
|
39
|
-
return resolve(object);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
reject(e);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
// oReq.onprogress = (ev: any) => this._progressService.setLoaded(lookupFileName, ev.loaded);
|
|
47
|
-
oReq.onerror = (ev) => {
|
|
48
|
-
return reject(lookupFileName);
|
|
49
|
-
};
|
|
50
|
-
let lookupFileName = fileName + (fileName.indexOf('.glb') < 0 ? '.glb' : '');
|
|
51
|
-
yield this._threedUtils.loadGlbSource(assetPath, true, this._settingsService.settings.dracoPath).then((obj) => __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
resolve(obj);
|
|
53
|
-
})).catch((e) => __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
DebugUtils.log('downloadAssetsAndReturn: ' + e);
|
|
55
|
-
}));
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
|
-
loadVariation(id) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
return yield this._variationCacheService.loadVariation(id);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
ThreedselectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ThreedselectorService, deps: [{ token: i1.VariationCacheService }, { token: i2.SettingsService }, { token: i3.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
|
-
ThreedselectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ThreedselectorService, providedIn: 'root' });
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ThreedselectorService, decorators: [{
|
|
67
|
-
type: Injectable,
|
|
68
|
-
args: [{
|
|
69
|
-
providedIn: 'root'
|
|
70
|
-
}]
|
|
71
|
-
}], ctorParameters: function () { return [{ type: i1.VariationCacheService }, { type: i2.SettingsService }, { type: i3.UtilsService }]; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWVkc2VsZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL3RocmVlZHNlbGVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBS2hELE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFDVSxzQkFBNkMsRUFDN0MsZ0JBQWlDLEVBQ2pDLGFBQTJCO1FBRjNCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUw3QixpQkFBWSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBT3RELENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQUUsa0JBQTJCLEtBQUs7UUFDbEcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFPLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO1lBQy9ELE1BQU0sSUFBSSxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFPLEVBQUUsRUFBRTtnQkFDM0IsSUFBSTtvQkFDRixNQUFNLElBQUksR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2pELGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBZ0IsRUFBRSxFQUFFO3dCQUN4RCxvRkFBb0Y7d0JBQ3BGLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQzVCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQzs0QkFDdEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDOzRCQUNoQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dDQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO29DQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUNwQjtxQ0FBTTtvQ0FDTCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUNoQjs0QkFDSCxDQUFDLENBQUMsQ0FBQzs0QkFDSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDOzRCQUMxQixDQUFDLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBRXpDLENBQUMsQ0FBQyxDQUFDO3dCQUNILE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6QixDQUFDLENBQUMsQ0FBQztpQkFDSjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1g7WUFDSCxDQUFDLENBQUM7WUFDRiw2RkFBNkY7WUFDN0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUN6QixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUM7WUFDRixJQUFJLGNBQWMsR0FBVyxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBTyxHQUFhLEVBQUUsRUFBRTtnQkFDNUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsQ0FBQyxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBTyxDQUFDLEVBQUUsRUFBRTtnQkFDbkIsVUFBVSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFWSxhQUFhLENBQUMsRUFBVTs7WUFDbkMsT0FBTyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztLQUFBOzttSEF0RFUscUJBQXFCO3VIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtWYXJpYXRpb25DYWNoZVNlcnZpY2V9IGZyb20gJy4vdmFyaWF0aW9uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0pzb25QYXJzZXJVdGlsfSBmcm9tICcuLi91dGlscy9qc29uLXBhcnNlci51dGlscyc7XHJcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtPYmplY3QzRH0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1V0aWxzU2VydmljZX0gZnJvbSAnLi91dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtWYXJpYXRpb25TZXR0aW5nc30gZnJvbSAnLi4vbW9kZWwvdmFyaWF0aW9uLXNldHRpbmdzJztcclxuaW1wb3J0IHtUaHJlZWRVdGlsc30gZnJvbSAnLi4vdXRpbHMvdGhyZWVkLnV0aWxzJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4vc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7RGVidWdVdGlsc30gZnJvbSAnLi4vdXRpbHMvZGVidWcudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhyZWVkc2VsZWN0b3JTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBfdGhyZWVkVXRpbHM6IFRocmVlZFV0aWxzID0gbmV3IFRocmVlZFV0aWxzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFyaWF0aW9uQ2FjaGVTZXJ2aWNlOiBWYXJpYXRpb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX3V0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG93bmxvYWRBc3NldHNBbmRSZXR1cm4oZmlsZU5hbWU6IHN0cmluZywgYXNzZXRQYXRoOiBzdHJpbmcsIHByZXBhcmVQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxUSFJFRS5PYmplY3QzRD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCBvUmVxOiBYTUxIdHRwUmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICBvUmVxLm9ubG9hZGVuZCA9IChldjogYW55KSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IGpzb246IGFueSA9IEpTT04ucGFyc2UoZXYudGFyZ2V0LnJlc3BvbnNlKTtcclxuICAgICAgICAgIEpzb25QYXJzZXJVdGlsLlRyeVRvUGFyc2UoanNvbikudGhlbigob2JqZWN0OiBPYmplY3QzRCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBEbyBub3QgcmVtb3ZlIHRoaXMgY29kZSwgdGhlIHJlbmRlci1zZXJ2aWNlIGRlcGVuZHMgb24gdGhlIG9yZGVyIG9mIHRoZSBjaGlsZHJlbi5cclxuICAgICAgICAgICAgb2JqZWN0LmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBjb25uZWN0b3JzID0gW107XHJcbiAgICAgICAgICAgICAgbGV0IG1lc2hlcyA9IFtdO1xyXG4gICAgICAgICAgICAgIGMuY2hpbGRyZW4uZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHgubmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgY29ubmVjdG9ycy5wdXNoKHgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgbWVzaGVzLnB1c2goeCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgbWVzaGVzID0gbWVzaGVzLnJldmVyc2UoKTtcclxuICAgICAgICAgICAgICBjLmNoaWxkcmVuID0gY29ubmVjdG9ycy5jb25jYXQobWVzaGVzKTtcclxuXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShvYmplY3QpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgcmVqZWN0KGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgLy8gb1JlcS5vbnByb2dyZXNzID0gKGV2OiBhbnkpID0+IHRoaXMuX3Byb2dyZXNzU2VydmljZS5zZXRMb2FkZWQobG9va3VwRmlsZU5hbWUsIGV2LmxvYWRlZCk7XHJcbiAgICAgIG9SZXEub25lcnJvciA9IChldjogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlamVjdChsb29rdXBGaWxlTmFtZSk7XHJcbiAgICAgIH07XHJcbiAgICAgIGxldCBsb29rdXBGaWxlTmFtZTogc3RyaW5nID0gZmlsZU5hbWUgKyAoZmlsZU5hbWUuaW5kZXhPZignLmdsYicpIDwgMCA/ICcuZ2xiJyA6ICcnKTtcclxuICAgICAgYXdhaXQgdGhpcy5fdGhyZWVkVXRpbHMubG9hZEdsYlNvdXJjZShhc3NldFBhdGgsIHRydWUsIHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5kcmFjb1BhdGgpLnRoZW4oYXN5bmMgKG9iajogT2JqZWN0M0QpID0+IHtcclxuICAgICAgICByZXNvbHZlKG9iaik7XHJcbiAgICAgIH0pLmNhdGNoKGFzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgRGVidWdVdGlscy5sb2coJ2Rvd25sb2FkQXNzZXRzQW5kUmV0dXJuOiAnICsgZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZFZhcmlhdGlvbihpZDogc3RyaW5nKTogUHJvbWlzZTxWYXJpYXRpb25TZXR0aW5ncz4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3ZhcmlhdGlvbkNhY2hlU2VydmljZS5sb2FkVmFyaWF0aW9uKGlkKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { AmbientLight, Box3, Camera, DirectionalLight, Group, MathUtils, Mesh, Object3D, PerspectiveCamera, Scene, SRGBColorSpace, Vector3, WebGLRenderer } from 'three';
|
|
4
|
-
import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader';
|
|
5
|
-
import { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader';
|
|
6
|
-
import { USDZExporter } from 'three/examples/jsm/exporters/USDZExporter';
|
|
7
|
-
import { DeviceUtils } from '../utils/device.utils';
|
|
8
|
-
import { ObjectUtils } from '../utils/object.utils';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "./settings.service";
|
|
11
|
-
import * as i2 from "./progress.service";
|
|
12
|
-
import * as i3 from "./item.service";
|
|
13
|
-
export class UtilsService {
|
|
14
|
-
constructor(_settingsService, _progressService, _itemService) {
|
|
15
|
-
this._settingsService = _settingsService;
|
|
16
|
-
this._progressService = _progressService;
|
|
17
|
-
this._itemService = _itemService;
|
|
18
|
-
this.clips = [];
|
|
19
|
-
this._objectCache = new Map();
|
|
20
|
-
this._subs = [];
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this._subs.forEach(s => s.unsubscribe());
|
|
24
|
-
}
|
|
25
|
-
createCanvasImage(thumbnail = true) {
|
|
26
|
-
const objects = this._itemService.sceneItems;
|
|
27
|
-
const object = objects.values().next().value;
|
|
28
|
-
const offscreenCanvas = document.createElement('canvas');
|
|
29
|
-
const renderer = new WebGLRenderer({
|
|
30
|
-
canvas: offscreenCanvas,
|
|
31
|
-
alpha: true,
|
|
32
|
-
antialias: true,
|
|
33
|
-
preserveDrawingBuffer: true
|
|
34
|
-
});
|
|
35
|
-
const boundingBox = new Box3().setFromObject(object);
|
|
36
|
-
const size = boundingBox.getSize(new Vector3());
|
|
37
|
-
const center = boundingBox.getCenter(new Vector3());
|
|
38
|
-
let width = 200;
|
|
39
|
-
let height = 200;
|
|
40
|
-
if (!thumbnail) {
|
|
41
|
-
width = 1600;
|
|
42
|
-
height = 1600;
|
|
43
|
-
}
|
|
44
|
-
renderer.setSize(width, height);
|
|
45
|
-
renderer.setPixelRatio(DeviceUtils.GetPixelRatio());
|
|
46
|
-
renderer.setClearColor(0xFFFFFF, 1);
|
|
47
|
-
const scene = new Scene();
|
|
48
|
-
const camera = new PerspectiveCamera(45, width / height, 0.1, 1000);
|
|
49
|
-
object.rotation.x = MathUtils.degToRad(0);
|
|
50
|
-
object.rotation.y = MathUtils.degToRad(0);
|
|
51
|
-
object.rotation.z = 0;
|
|
52
|
-
scene.add(object);
|
|
53
|
-
const ambientLight = new AmbientLight(0xffffff, 2);
|
|
54
|
-
scene.add(ambientLight);
|
|
55
|
-
const directionalLight = new DirectionalLight(0xffffff, 2.5);
|
|
56
|
-
directionalLight.position.set(5, 10, 5);
|
|
57
|
-
scene.add(directionalLight);
|
|
58
|
-
const maxDimension = Math.max(size.x, size.y, size.z);
|
|
59
|
-
const distance = maxDimension * 1.5;
|
|
60
|
-
camera.position.set(center.x - distance * 0.3, center.y + distance * 0.3, distance);
|
|
61
|
-
camera.lookAt(center);
|
|
62
|
-
camera.aspect = width / height;
|
|
63
|
-
camera.updateProjectionMatrix();
|
|
64
|
-
renderer.render(scene, camera);
|
|
65
|
-
const imageData = offscreenCanvas.toDataURL('image/jpeg', 0.8);
|
|
66
|
-
renderer.dispose();
|
|
67
|
-
ObjectUtils.DisposeObject(scene);
|
|
68
|
-
offscreenCanvas.remove();
|
|
69
|
-
return imageData;
|
|
70
|
-
}
|
|
71
|
-
loadObjModel(filePath, mtlUrl) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
if (this._objectCache.has(filePath)) {
|
|
74
|
-
return Promise.resolve(this._objectCache.get(filePath));
|
|
75
|
-
}
|
|
76
|
-
return new Promise((resolve, reject) => {
|
|
77
|
-
new MTLLoader()
|
|
78
|
-
.setPath(this._settingsService.settings.assetPath)
|
|
79
|
-
.load(mtlUrl, (materials) => {
|
|
80
|
-
materials.preload();
|
|
81
|
-
new OBJLoader()
|
|
82
|
-
.setMaterials(materials)
|
|
83
|
-
.setPath(this._settingsService.settings.assetPath)
|
|
84
|
-
.load(filePath, (object) => {
|
|
85
|
-
const obj = this.cleanedUpObjects(object);
|
|
86
|
-
obj.traverse((child) => {
|
|
87
|
-
if (child instanceof Mesh && child.material) {
|
|
88
|
-
const material = !Array.isArray(child.material) ? [child.material] : child.material;
|
|
89
|
-
material.forEach(m => {
|
|
90
|
-
if (m.map) {
|
|
91
|
-
m.map.colorSpace = SRGBColorSpace;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
this._objectCache.set(filePath, obj);
|
|
97
|
-
resolve(obj);
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
downloadUSDZforARIOS(object) {
|
|
104
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
-
// Export USDZ exactly like before
|
|
106
|
-
const exporter = new USDZExporter();
|
|
107
|
-
const arraybuffer = yield exporter.parseAsync(object);
|
|
108
|
-
// Correct MIME type for USDZ
|
|
109
|
-
const blob = new Blob([arraybuffer], { type: 'model/vnd.usdz+zip' });
|
|
110
|
-
const url = URL.createObjectURL(blob);
|
|
111
|
-
// Feature-detect Apple Quick Look on Safari
|
|
112
|
-
const anchor = document.createElement('a');
|
|
113
|
-
const supportsAR = true;
|
|
114
|
-
if (supportsAR) {
|
|
115
|
-
// Quick Look path (must be invoked from a real user gesture)
|
|
116
|
-
anchor.setAttribute('rel', 'ar');
|
|
117
|
-
anchor.setAttribute('href', url);
|
|
118
|
-
// Quick Look expects an <img> as the first child
|
|
119
|
-
const img = document.createElement('img');
|
|
120
|
-
img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
|
|
121
|
-
img.alt = '';
|
|
122
|
-
anchor.appendChild(img);
|
|
123
|
-
// Add offscreen so it's a real DOM element for the gesture
|
|
124
|
-
anchor.style.position = 'fixed';
|
|
125
|
-
anchor.style.left = '-9999px';
|
|
126
|
-
anchor.style.top = '-9999px';
|
|
127
|
-
document.body.appendChild(anchor);
|
|
128
|
-
// Important: ensure this method is called directly from the user's click/tap handler
|
|
129
|
-
anchor.click();
|
|
130
|
-
document.body.removeChild(anchor);
|
|
131
|
-
// Revoke shortly after to avoid races during handoff
|
|
132
|
-
setTimeout(() => URL.revokeObjectURL(url), 10000);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
// Fallback: regular download/open behavior for non-Quick Look browsers
|
|
136
|
-
const element = document.createElement('a');
|
|
137
|
-
element.style.display = 'none';
|
|
138
|
-
element.href = url;
|
|
139
|
-
// Avoid target="_blank" (often blocked); force a download instead
|
|
140
|
-
element.download = 'model.usdz';
|
|
141
|
-
document.body.appendChild(element);
|
|
142
|
-
element.click();
|
|
143
|
-
document.body.removeChild(element);
|
|
144
|
-
URL.revokeObjectURL(url);
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
cleanedUpObjects(object, cleanUp = true) {
|
|
148
|
-
let obj = new Object3D();
|
|
149
|
-
// console.log(this.clips);
|
|
150
|
-
object.children.forEach((c) => {
|
|
151
|
-
if (!(c instanceof Camera)) {
|
|
152
|
-
if (cleanUp && c instanceof Group || (c.children.length === 1 && c.children[0] instanceof Group)) {
|
|
153
|
-
this._addGroupChildrenToObject(c, obj);
|
|
154
|
-
}
|
|
155
|
-
else if ((cleanUp && !(c instanceof Mesh)) || (!(c instanceof Mesh) && !c.name && c.children.length > 0)) {
|
|
156
|
-
c.children.forEach((child) => {
|
|
157
|
-
child.translateY(c.position.y);
|
|
158
|
-
});
|
|
159
|
-
c.translateY(-c.position.y);
|
|
160
|
-
if (obj.children.length > 0) {
|
|
161
|
-
obj.add(c.clone());
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
obj = c.clone();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
obj.add(c.clone());
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
const boundingBox = new Box3().setFromObject(obj);
|
|
173
|
-
const bbCenterPivot = new Vector3();
|
|
174
|
-
boundingBox.getCenter(bbCenterPivot);
|
|
175
|
-
const delta = new Vector3().add(bbCenterPivot).negate();
|
|
176
|
-
obj.children.forEach((cc) => {
|
|
177
|
-
cc.position.add(delta);
|
|
178
|
-
});
|
|
179
|
-
return obj;
|
|
180
|
-
}
|
|
181
|
-
_addGroupChildrenToObject(group, obj, cleanUp = true) {
|
|
182
|
-
group.children.forEach((gc) => {
|
|
183
|
-
if (cleanUp && gc instanceof Group) {
|
|
184
|
-
this._addGroupChildrenToObject(gc, obj);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
// gc.translateX(-group.position.x);
|
|
188
|
-
gc.translateY(group.position.y);
|
|
189
|
-
// gc.translateZ(-group.position.z);
|
|
190
|
-
if (gc.name.toLowerCase().indexOf('mask') > -1) {
|
|
191
|
-
gc.visible = false;
|
|
192
|
-
}
|
|
193
|
-
obj.add(gc.clone());
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
_handleUpdateProgressBar(loaded) {
|
|
198
|
-
this._progressService.progress = loaded;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilsService, deps: [{ token: i1.SettingsService }, { token: i2.ProgressService }, { token: i3.ItemService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
202
|
-
UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilsService, providedIn: 'root' });
|
|
203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: UtilsService, decorators: [{
|
|
204
|
-
type: Injectable,
|
|
205
|
-
args: [{ providedIn: 'root' }]
|
|
206
|
-
}], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.ProgressService }, { type: i3.ItemService }]; } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDdkssT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQU0vRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFJbEQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFDVSxnQkFBaUMsRUFDakMsZ0JBQWlDLEVBQ2pDLFlBQXlCO1FBRnpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQVA1QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2YsaUJBQVksR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxVQUFLLEdBQW1CLEVBQUUsQ0FBQztJQU9uQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxF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LENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBZSxFQUFFLEdBQWEsRUFBRSxVQUFtQixJQUFJO1FBQ3ZGLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBWSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxPQUFPLElBQUksRUFBRSxZQUFZLEtBQUssRUFBRTtnQkFDbEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxvQ0FBb0M7Z0JBQ3BDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsb0NBQW9DO2dCQUNwQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUM5QyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztpQkFDcEI7Z0JBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QixDQUFDLE1BQWM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDMUMsQ0FBQzs7MEdBaE5VLFlBQVk7OEdBQVosWUFBWSxjQUZBLE1BQU07NEZBRWxCLFlBQVk7a0JBRnhCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FtYmllbnRMaWdodCwgQm94MywgQ2FtZXJhLCBEaXJlY3Rpb25hbExpZ2h0LCBHcm91cCwgTWF0aFV0aWxzLCBNZXNoLCBPYmplY3QzRCwgUGVyc3BlY3RpdmVDYW1lcmEsIFNjZW5lLCBTUkdCQ29sb3JTcGFjZSwgVmVjdG9yMywgV2ViR0xSZW5kZXJlcn0gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge09CSkxvYWRlcn0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvT0JKTG9hZGVyJztcclxuaW1wb3J0IHtNVExMb2FkZXJ9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9sb2FkZXJzL01UTExvYWRlcic7XHJcbmltcG9ydCB7R0xURkxvYWRlcn0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvR0xURkxvYWRlcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtEUkFDT0xvYWRlcn0gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2xvYWRlcnMvRFJBQ09Mb2FkZXInO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcm9ncmVzc1NlcnZpY2V9IGZyb20gJy4vcHJvZ3Jlc3Muc2VydmljZSc7XHJcbmltcG9ydCB7VVNEWkV4cG9ydGVyfSBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vZXhwb3J0ZXJzL1VTRFpFeHBvcnRlcic7XHJcbmltcG9ydCB7IEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9pdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RldmljZVV0aWxzfSBmcm9tICcuLi91dGlscy9kZXZpY2UudXRpbHMnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICcuLi91dGlscy9vYmplY3QudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcblxyXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwdWJsaWMgY2xpcHM6IGFueSA9IFtdO1xyXG4gIHByaXZhdGUgX29iamVjdENhY2hlOiBNYXA8c3RyaW5nLCBPYmplY3QzRD4gPSBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Byb2dyZXNzU2VydmljZTogUHJvZ3Jlc3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaXRlbVNlcnZpY2U6IEl0ZW1TZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZUNhbnZhc0ltYWdlKHRodW1ibmFpbDogYm9vbGVhbiA9IHRydWUpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgb2JqZWN0czogT2JqZWN0M0RbXSA9IHRoaXMuX2l0ZW1TZXJ2aWNlLnNjZW5lSXRlbXM7XHJcbiAgICBjb25zdCBvYmplY3Q6IE9iamVjdDNEID0gIG9iamVjdHMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xyXG4gICAgY29uc3Qgb2Zmc2NyZWVuQ2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgY29uc3QgcmVuZGVyZXI6IFdlYkdMUmVuZGVyZXIgPSBuZXcgV2ViR0xSZW5kZXJlcih7XHJcbiAgICAgIGNhbnZhczogb2Zmc2NyZWVuQ2FudmFzLFxyXG4gICAgICBhbHBoYTogdHJ1ZSxcclxuICAgICAgYW50aWFsaWFzOiB0cnVlLFxyXG4gICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGJvdW5kaW5nQm94OiBCb3gzID0gbmV3IEJveDMoKS5zZXRGcm9tT2JqZWN0KG9iamVjdCk7XHJcbiAgICBjb25zdCBzaXplOiBWZWN0b3IzID0gYm91bmRpbmdCb3guZ2V0U2l6ZShuZXcgVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IGNlbnRlcjogVmVjdG9yMyA9IGJvdW5kaW5nQm94LmdldENlbnRlcihuZXcgVmVjdG9yMygpKTtcclxuXHJcbiAgICBsZXQgd2lkdGg6IG51bWJlciA9IDIwMDtcclxuICAgIGxldCBoZWlnaHQ6IG51bWJlciA9IDIwMDtcclxuICAgIGlmICghdGh1bWJuYWlsKSB7XHJcbiAgICAgIHdpZHRoID0gMTYwMDtcclxuICAgICAgaGVpZ2h0ID0gMTYwMDtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJlci5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyhEZXZpY2VVdGlscy5HZXRQaXhlbFJhdGlvKCkpO1xyXG4gICAgcmVuZGVyZXIuc2V0Q2xlYXJDb2xvcigweEZGRkZGRiwgMSk7XHJcblxyXG4gICAgY29uc3Qgc2NlbmU6IFNjZW5lID0gbmV3IFNjZW5lKCk7XHJcbiAgICBjb25zdCBjYW1lcmE6IFBlcnNwZWN0aXZlQ2FtZXJhID0gbmV3IFBlcnNwZWN0aXZlQ2FtZXJhKDQ1LCB3aWR0aCAvIGhlaWdodCwgMC4xLCAxMDAwKTtcclxuXHJcbiAgICBvYmplY3Qucm90YXRpb24ueCA9IE1hdGhVdGlscy5kZWdUb1JhZCgwKTtcclxuICAgIG9iamVjdC5yb3RhdGlvbi55ID0gTWF0aFV0aWxzLmRlZ1RvUmFkKDApO1xyXG4gICAgb2JqZWN0LnJvdGF0aW9uLnogPSAwO1xyXG4gICAgc2NlbmUuYWRkKG9iamVjdCk7XHJcblxyXG4gICAgY29uc3QgYW1iaWVudExpZ2h0OiBBbWJpZW50TGlnaHQgPSBuZXcgQW1iaWVudExpZ2h0KDB4ZmZmZmZmLCAyKTtcclxuICAgIHNjZW5lLmFkZChhbWJpZW50TGlnaHQpO1xyXG4gICAgY29uc3QgZGlyZWN0aW9uYWxMaWdodDogRGlyZWN0aW9uYWxMaWdodCA9IG5ldyBEaXJlY3Rpb25hbExpZ2h0KDB4ZmZmZmZmLCAyLjUpO1xyXG4gICAgZGlyZWN0aW9uYWxMaWdodC5wb3NpdGlvbi5zZXQoNSwgMTAsIDUpO1xyXG4gICAgc2NlbmUuYWRkKGRpcmVjdGlvbmFsTGlnaHQpO1xyXG5cclxuICAgIGNvbnN0IG1heERpbWVuc2lvbjogbnVtYmVyID0gTWF0aC5tYXgoc2l6ZS54LCBzaXplLnksIHNpemUueik7XHJcbiAgICBjb25zdCBkaXN0YW5jZTogbnVtYmVyID0gbWF4RGltZW5zaW9uICogMS41O1xyXG4gICAgY2FtZXJhLnBvc2l0aW9uLnNldChjZW50ZXIueCAtIGRpc3RhbmNlICogMC4zLCBjZW50ZXIueSArIGRpc3RhbmNlICogMC4zLCBkaXN0YW5jZSk7XHJcbiAgICBjYW1lcmEubG9va0F0KGNlbnRlcik7XHJcbiAgICBjYW1lcmEuYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XHJcbiAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xyXG4gICAgcmVuZGVyZXIucmVuZGVyKHNjZW5lLCBjYW1lcmEpO1xyXG5cclxuICAgIGNvbnN0IGltYWdlRGF0YTogc3RyaW5nID0gb2Zmc2NyZWVuQ2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDAuOCk7XHJcblxyXG4gICAgcmVuZGVyZXIuZGlzcG9zZSgpO1xyXG4gICAgT2JqZWN0VXRpbHMuRGlzcG9zZU9iamVjdChzY2VuZSk7XHJcbiAgICBvZmZzY3JlZW5DYW52YXMucmVtb3ZlKCk7XHJcbiAgICByZXR1cm4gaW1hZ2VEYXRhO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2FkT2JqTW9kZWwoZmlsZVBhdGg6IHN0cmluZywgbXRsVXJsPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh0aGlzLl9vYmplY3RDYWNoZS5oYXMoZmlsZVBhdGgpKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fb2JqZWN0Q2FjaGUuZ2V0KGZpbGVQYXRoKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBuZXcgTVRMTG9hZGVyKClcclxuICAgICAgICAuc2V0UGF0aCh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuYXNzZXRQYXRoKVxyXG4gICAgICAgIC5sb2FkKG10bFVybCwgKG1hdGVyaWFscykgPT4ge1xyXG4gICAgICAgICAgICBtYXRlcmlhbHMucHJlbG9hZCgpO1xyXG4gICAgICAgICAgICBuZXcgT0JKTG9hZGVyKClcclxuICAgICAgICAgICAgICAuc2V0TWF0ZXJpYWxzKG1hdGVyaWFscylcclxuICAgICAgICAgICAgICAuc2V0UGF0aCh0aGlzLl9zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuYXNzZXRQYXRoKVxyXG4gICAgICAgICAgICAgIC5sb2FkKGZpbGVQYXRoLCAob2JqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvYmo6IE9iamVjdDNEID0gdGhpcy5jbGVhbmVkVXBPYmplY3RzKG9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICBvYmoudHJhdmVyc2UoKGNoaWxkOiBPYmplY3QzRCB8IE1lc2gpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgTWVzaCAmJiBjaGlsZC5tYXRlcmlhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsOiBhbnlbXSA9ICFBcnJheS5pc0FycmF5KGNoaWxkLm1hdGVyaWFsKSA/IFtjaGlsZC5tYXRlcmlhbF0gOiBjaGlsZC5tYXRlcmlhbDtcclxuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbC5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKG0ubWFwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG0ubWFwLmNvbG9yU3BhY2UgPSBTUkdCQ29sb3JTcGFjZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vYmplY3RDYWNoZS5zZXQoZmlsZVBhdGgsIG9iaik7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKG9iaik7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRvd25sb2FkVVNEWmZvckFSSU9TKG9iamVjdDogT2JqZWN0M0QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEV4cG9ydCBVU0RaIGV4YWN0bHkgbGlrZSBiZWZvcmVcclxuICAgIGNvbnN0IGV4cG9ydGVyID0gbmV3IFVTRFpFeHBvcnRlcigpO1xyXG4gICAgY29uc3QgYXJyYXlidWZmZXIgPSBhd2FpdCBleHBvcnRlci5wYXJzZUFzeW5jKG9iamVjdCk7XHJcblxyXG4gICAgLy8gQ29ycmVjdCBNSU1FIHR5cGUgZm9yIFVTRFpcclxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYXJyYXlidWZmZXJdLCB7dHlwZTogJ21vZGVsL3ZuZC51c2R6K3ppcCd9KTtcclxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcblxyXG4gICAgLy8gRmVhdHVyZS1kZXRlY3QgQXBwbGUgUXVpY2sgTG9vayBvbiBTYWZhcmlcclxuICAgIGNvbnN0IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGNvbnN0IHN1cHBvcnRzQVIgPSB0cnVlO1xyXG5cclxuICAgIGlmIChzdXBwb3J0c0FSKSB7XHJcbiAgICAgIC8vIFF1aWNrIExvb2sgcGF0aCAobXVzdCBiZSBpbnZva2VkIGZyb20gYSByZWFsIHVzZXIgZ2VzdHVyZSlcclxuICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgncmVsJywgJ2FyJyk7XHJcbiAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xyXG4gICAgICAvLyBRdWljayBMb29rIGV4cGVjdHMgYW4gPGltZz4gYXMgdGhlIGZpcnN0IGNoaWxkXHJcbiAgICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xyXG4gICAgICBpbWcuc3JjID0gJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veXdBQUFBQUFRQUJBQUFDQVV3QU93PT0nO1xyXG4gICAgICBpbWcuYWx0ID0gJyc7XHJcbiAgICAgIGFuY2hvci5hcHBlbmRDaGlsZChpbWcpO1xyXG5cclxuICAgICAgLy8gQWRkIG9mZnNjcmVlbiBzbyBpdCdzIGEgcmVhbCBET00gZWxlbWVudCBmb3IgdGhlIGdlc3R1cmVcclxuICAgICAgYW5jaG9yLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuICAgICAgYW5jaG9yLnN0eWxlLmxlZnQgPSAnLTk5OTlweCc7XHJcbiAgICAgIGFuY2hvci5zdHlsZS50b3AgPSAnLTk5OTlweCc7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYW5jaG9yKTtcclxuXHJcbiAgICAgIC8vIEltcG9ydGFudDogZW5zdXJlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBkaXJlY3RseSBmcm9tIHRoZSB1c2VyJ3MgY2xpY2svdGFwIGhhbmRsZXJcclxuICAgICAgYW5jaG9yLmNsaWNrKCk7XHJcblxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFuY2hvcik7XHJcbiAgICAgIC8vIFJldm9rZSBzaG9ydGx5IGFmdGVyIHRvIGF2b2lkIHJhY2VzIGR1cmluZyBoYW5kb2ZmXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpLCAxMDAwMCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGYWxsYmFjazogcmVndWxhciBkb3dubG9hZC9vcGVuIGJlaGF2aW9yIGZvciBub24tUXVpY2sgTG9vayBicm93c2Vyc1xyXG4gICAgY29uc3QgZWxlbWVudDogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBlbGVtZW50LmhyZWYgPSB1cmw7XHJcbiAgICAvLyBBdm9pZCB0YXJnZXQ9XCJfYmxhbmtcIiAob2Z0ZW4gYmxvY2tlZCk7IGZvcmNlIGEgZG93bmxvYWQgaW5zdGVhZFxyXG4gICAgZWxlbWVudC5kb3dubG9hZCA9ICdtb2RlbC51c2R6JztcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgICBlbGVtZW50LmNsaWNrKCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgcHVibGljIGNsZWFuZWRVcE9iamVjdHMob2JqZWN0OiBPYmplY3QzRCwgY2xlYW5VcDogYm9vbGVhbiA9IHRydWUpOiBPYmplY3QzRCB7XHJcbiAgICBsZXQgb2JqOiBPYmplY3QzRCA9IG5ldyBPYmplY3QzRCgpO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jbGlwcyk7XHJcbiAgICBvYmplY3QuY2hpbGRyZW4uZm9yRWFjaCgoYzogT2JqZWN0M0QpID0+IHtcclxuICAgICAgaWYgKCEoYyBpbnN0YW5jZW9mIENhbWVyYSkpIHtcclxuICAgICAgICBpZiAoY2xlYW5VcCAmJiBjIGluc3RhbmNlb2YgR3JvdXAgfHwgKGMuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIGMuY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBHcm91cCkpIHtcclxuICAgICAgICAgIHRoaXMuX2FkZEdyb3VwQ2hpbGRyZW5Ub09iamVjdChjLCBvYmopO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKGNsZWFuVXAgJiYgIShjIGluc3RhbmNlb2YgTWVzaCkpIHx8ICghKGMgaW5zdGFuY2VvZiBNZXNoKSAmJiAhYy5uYW1lICYmIGMuY2hpbGRyZW4ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgIGMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgY2hpbGQudHJhbnNsYXRlWShjLnBvc2l0aW9uLnkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjLnRyYW5zbGF0ZVkoLWMucG9zaXRpb24ueSk7XHJcbiAgICAgICAgICBpZiAob2JqLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgb2JqLmFkZChjLmNsb25lKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb2JqID0gYy5jbG9uZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmouYWRkKGMuY2xvbmUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGJvdW5kaW5nQm94ID0gbmV3IEJveDMoKS5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgICBjb25zdCBiYkNlbnRlclBpdm90ID0gbmV3IFZlY3RvcjMoKTtcclxuICAgIGJvdW5kaW5nQm94LmdldENlbnRlcihiYkNlbnRlclBpdm90KTtcclxuICAgIGNvbnN0IGRlbHRhOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoKS5hZGQoYmJDZW50ZXJQaXZvdCkubmVnYXRlKCk7XHJcbiAgICBvYmouY2hpbGRyZW4uZm9yRWFjaCgoY2MpID0+IHtcclxuICAgICAgY2MucG9zaXRpb24uYWRkKGRlbHRhKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEdyb3VwQ2hpbGRyZW5Ub09iamVjdChncm91cDogT2JqZWN0M0QsIG9iajogT2JqZWN0M0QsIGNsZWFuVXA6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChnYzogT2JqZWN0M0QpID0+IHtcclxuICAgICAgaWYgKGNsZWFuVXAgJiYgZ2MgaW5zdGFuY2VvZiBHcm91cCkge1xyXG4gICAgICAgIHRoaXMuX2FkZEdyb3VwQ2hpbGRyZW5Ub09iamVjdChnYywgb2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBnYy50cmFuc2xhdGVYKC1ncm91cC5wb3NpdGlvbi54KTtcclxuICAgICAgICBnYy50cmFuc2xhdGVZKGdyb3VwLnBvc2l0aW9uLnkpO1xyXG4gICAgICAgIC8vIGdjLnRyYW5zbGF0ZVooLWdyb3VwLnBvc2l0aW9uLnopO1xyXG4gICAgICAgIGlmIChnYy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignbWFzaycpID4gLTEpIHtcclxuICAgICAgICAgIGdjLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqLmFkZChnYy5jbG9uZSgpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVVcGRhdGVQcm9ncmVzc0Jhcihsb2FkZWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fcHJvZ3Jlc3NTZXJ2aWNlLnByb2dyZXNzID0gbG9hZGVkO1xyXG4gIH1cclxufVxyXG4iXX0=
|