@colijnit/configurator 261.1.1 → 261.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{fesm2015/colijnit-configurator.js → fesm2022/colijnit-configurator.mjs} +19087 -18481
- package/fesm2022/colijnit-configurator.mjs.map +1 -0
- package/index.d.ts +3299 -0
- package/lib/components/answer-card/style/_layout.scss +3 -3
- package/lib/components/answers-slideout/style/_layout.scss +1 -0
- package/lib/style/configurator-globals.scss +1 -21
- package/package.json +24 -19
- 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
- /package/lib/style/{template_variables.scss → _variables.scss} +0 -0
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { ConfigurationDisplayOption } from '@colijnit/configuratorapi/build/enum/refcode/configuration-display-option.enum';
|
|
4
|
-
import { IconEnum } from '../../enum/icon.enum';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services/configurator-connector.service";
|
|
7
|
-
import * as i2 from "../../services/settings.service";
|
|
8
|
-
import * as i3 from "../../services/icon-cache.service";
|
|
9
|
-
import * as i4 from "@colijnit/corecomponents_v12";
|
|
10
|
-
import * as i5 from "../product-configurator-selector-option/product-configurator-selector-option.component";
|
|
11
|
-
import * as i6 from "@angular/common";
|
|
12
|
-
import * as i7 from "../../pipes/google-translate.pipe";
|
|
13
|
-
import * as i8 from "../../pipes/localize.pipe";
|
|
14
|
-
export class ProductConfiguratorSelectorComponent {
|
|
15
|
-
constructor(configuratorConnectorService, settingsService, iconService) {
|
|
16
|
-
this.configuratorConnectorService = configuratorConnectorService;
|
|
17
|
-
this.settingsService = settingsService;
|
|
18
|
-
this.iconService = iconService;
|
|
19
|
-
this.icons = IconEnum;
|
|
20
|
-
this.treeLevelIndex = 1;
|
|
21
|
-
this.isActive = true;
|
|
22
|
-
this.markAsException = false;
|
|
23
|
-
this.activate = new EventEmitter();
|
|
24
|
-
this.selectionClass = '';
|
|
25
|
-
this.listOfChoices = [];
|
|
26
|
-
this.activeChildIndex = 0;
|
|
27
|
-
}
|
|
28
|
-
showClass() {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
get hostClasses() {
|
|
32
|
-
const classes = [];
|
|
33
|
-
classes.push(`treelevel-${this.treeLevelIndex}`);
|
|
34
|
-
if (this.treeLevelIndex === 2 && !this.isActive) {
|
|
35
|
-
classes.push('hidden');
|
|
36
|
-
}
|
|
37
|
-
return classes.join(' ');
|
|
38
|
-
}
|
|
39
|
-
get selectionIndexText() {
|
|
40
|
-
return this.selectionIndex + '. ';
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
if (this.selection && this.selection.displayOptionControl == null) {
|
|
44
|
-
this.selection.displayOptionControl = ConfigurationDisplayOption.TileLarge;
|
|
45
|
-
}
|
|
46
|
-
this.selectionClass = 'selection-container-' + this.selection.displayOptionControl;
|
|
47
|
-
if (this.lastNodeWithChildren) {
|
|
48
|
-
for (const option of this.options) {
|
|
49
|
-
if (option.selector) {
|
|
50
|
-
this.configuratorConnectorService.getImageForAnswer(option.selector);
|
|
51
|
-
this.listOfChoices.push(option.selector);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (this.markAsException) {
|
|
56
|
-
this.showAndScroll();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
showAndScroll() {
|
|
60
|
-
setTimeout(() => {
|
|
61
|
-
var _a;
|
|
62
|
-
(_a = this.exceptionContainer) === null || _a === void 0 ? void 0 : _a.nativeElement.scrollIntoView({ behavior: 'smooth' });
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
onSubHeaderClick() {
|
|
66
|
-
this.activate.emit();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
ProductConfiguratorSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorComponent, deps: [{ token: i1.ConfiguratorConnectorService }, { token: i2.SettingsService }, { token: i3.IconCacheService }], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
-
ProductConfiguratorSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorSelectorComponent, selector: "co-product-configurator-selector", inputs: { selection: "selection", options: "options", lastNodeWithChildren: "lastNodeWithChildren", selectionIndex: "selectionIndex", treeLevelIndex: "treeLevelIndex", isActive: "isActive", markAsException: "markAsException" }, outputs: { activate: "activate" }, host: { properties: { "class.co-product-configurator-selector": "this.showClass", "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "exceptionContainer", first: true, predicate: ["exceptionContainer"], descendants: true }], ngImport: i0, template: `
|
|
71
|
-
<div class="selector-container">
|
|
72
|
-
<!--
|
|
73
|
-
Based on the threeLevel and the length op options we got a couple of flavours
|
|
74
|
-
treeLevel 1 -> article, should not be used here
|
|
75
|
-
treeLevel 2 -> 'top' level should be a big and bold heading, when it has options
|
|
76
|
-
treeLevel 3 -> title less bold, should be for something like 'fabric groups'
|
|
77
|
-
treeLevel 4 -> more like bold text, should be for something like 'the fabric group'
|
|
78
|
-
treeLevel 5 -> just text head
|
|
79
|
-
-->
|
|
80
|
-
|
|
81
|
-
<div class="selector-container-header">
|
|
82
|
-
<h2 *ngIf="selection.treeLevel === 2 && options.length > 0" class="selector-option-header">
|
|
83
|
-
<span [textContent]="selectionIndexText"></span>
|
|
84
|
-
<span [textContent]="selection.nodeText ? selection.nodeText : selection.optionText | googleTranslate | async"></span>
|
|
85
|
-
</h2>
|
|
86
|
-
|
|
87
|
-
<h3
|
|
88
|
-
*ngIf="selection.treeLevel === 3 && options.length > 0"
|
|
89
|
-
class="selector-option-sub-header"
|
|
90
|
-
[textContent]="selection.nodeText | googleTranslate | async" (click)="onSubHeaderClick()"></h3>
|
|
91
|
-
|
|
92
|
-
<p
|
|
93
|
-
*ngIf="selection.treeLevel === 4 && options.length > 0"
|
|
94
|
-
class="selector-option-bold-text-header"
|
|
95
|
-
[textContent]="selection.nodeText | googleTranslate | async"></p>
|
|
96
|
-
|
|
97
|
-
<p
|
|
98
|
-
*ngIf="selection.treeLevel === 5 && options.length > 0"
|
|
99
|
-
class="selector-option-text-header"
|
|
100
|
-
[textContent]="selection.nodeText | googleTranslate | async"></p>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
<span *ngIf="markAsException" class="exception-icon" #exceptionContainer [title]="'CONFIGURATION_EXCEPTION_INFO' | localize">
|
|
104
|
-
<co-icon [iconData]="iconService.getIcon(icons.TriangleExclamation)"></co-icon>
|
|
105
|
-
</span>
|
|
106
|
-
</div>
|
|
107
|
-
|
|
108
|
-
<ng-container *ngIf="lastNodeWithChildren">
|
|
109
|
-
<co-product-configurator-selector-option
|
|
110
|
-
[selection]="selection"
|
|
111
|
-
[listOfChoices]="listOfChoices"
|
|
112
|
-
[markAsException]="markAsException">
|
|
113
|
-
</co-product-configurator-selector-option>
|
|
114
|
-
</ng-container>
|
|
115
|
-
</div>
|
|
116
|
-
|
|
117
|
-
<ng-container *ngIf="!lastNodeWithChildren">
|
|
118
|
-
<co-product-configurator-selector
|
|
119
|
-
*ngFor="let displaySelection of options let index = index"
|
|
120
|
-
[selection]="displaySelection.selector"
|
|
121
|
-
[options]="displaySelection.selectorOptions"
|
|
122
|
-
[lastNodeWithChildren]="displaySelection.lastNodeWithChildren"
|
|
123
|
-
[selectionIndex]="index + 1"
|
|
124
|
-
[treeLevelIndex]="treeLevelIndex + 1"
|
|
125
|
-
[isActive]="treeLevelIndex !== 1 || index === activeChildIndex"
|
|
126
|
-
[markAsException]="displaySelection.markForExceptionNotification"
|
|
127
|
-
(activate)="activeChildIndex = index">
|
|
128
|
-
</co-product-configurator-selector>
|
|
129
|
-
</ng-container>
|
|
130
|
-
`, isInline: true, components: [{ type: i4.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: i5.ProductConfiguratorSelectorOptionComponent, selector: "co-product-configurator-selector-option", inputs: ["selection", "listOfChoices", "markAsException"] }, { type: ProductConfiguratorSelectorComponent, selector: "co-product-configurator-selector", inputs: ["selection", "options", "lastNodeWithChildren", "selectionIndex", "treeLevelIndex", "isActive", "markAsException"], outputs: ["activate"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "googleTranslate": i7.GoogleTranslatePipe, "localize": i8.LocalizePipe }, animations: [
|
|
131
|
-
trigger('showSelections', [
|
|
132
|
-
state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
|
|
133
|
-
state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
|
|
134
|
-
transition('void <=> *', animate(200))
|
|
135
|
-
])
|
|
136
|
-
], encapsulation: i0.ViewEncapsulation.None });
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorComponent, decorators: [{
|
|
138
|
-
type: Component,
|
|
139
|
-
args: [{
|
|
140
|
-
selector: 'co-product-configurator-selector',
|
|
141
|
-
template: `
|
|
142
|
-
<div class="selector-container">
|
|
143
|
-
<!--
|
|
144
|
-
Based on the threeLevel and the length op options we got a couple of flavours
|
|
145
|
-
treeLevel 1 -> article, should not be used here
|
|
146
|
-
treeLevel 2 -> 'top' level should be a big and bold heading, when it has options
|
|
147
|
-
treeLevel 3 -> title less bold, should be for something like 'fabric groups'
|
|
148
|
-
treeLevel 4 -> more like bold text, should be for something like 'the fabric group'
|
|
149
|
-
treeLevel 5 -> just text head
|
|
150
|
-
-->
|
|
151
|
-
|
|
152
|
-
<div class="selector-container-header">
|
|
153
|
-
<h2 *ngIf="selection.treeLevel === 2 && options.length > 0" class="selector-option-header">
|
|
154
|
-
<span [textContent]="selectionIndexText"></span>
|
|
155
|
-
<span [textContent]="selection.nodeText ? selection.nodeText : selection.optionText | googleTranslate | async"></span>
|
|
156
|
-
</h2>
|
|
157
|
-
|
|
158
|
-
<h3
|
|
159
|
-
*ngIf="selection.treeLevel === 3 && options.length > 0"
|
|
160
|
-
class="selector-option-sub-header"
|
|
161
|
-
[textContent]="selection.nodeText | googleTranslate | async" (click)="onSubHeaderClick()"></h3>
|
|
162
|
-
|
|
163
|
-
<p
|
|
164
|
-
*ngIf="selection.treeLevel === 4 && options.length > 0"
|
|
165
|
-
class="selector-option-bold-text-header"
|
|
166
|
-
[textContent]="selection.nodeText | googleTranslate | async"></p>
|
|
167
|
-
|
|
168
|
-
<p
|
|
169
|
-
*ngIf="selection.treeLevel === 5 && options.length > 0"
|
|
170
|
-
class="selector-option-text-header"
|
|
171
|
-
[textContent]="selection.nodeText | googleTranslate | async"></p>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
<span *ngIf="markAsException" class="exception-icon" #exceptionContainer [title]="'CONFIGURATION_EXCEPTION_INFO' | localize">
|
|
175
|
-
<co-icon [iconData]="iconService.getIcon(icons.TriangleExclamation)"></co-icon>
|
|
176
|
-
</span>
|
|
177
|
-
</div>
|
|
178
|
-
|
|
179
|
-
<ng-container *ngIf="lastNodeWithChildren">
|
|
180
|
-
<co-product-configurator-selector-option
|
|
181
|
-
[selection]="selection"
|
|
182
|
-
[listOfChoices]="listOfChoices"
|
|
183
|
-
[markAsException]="markAsException">
|
|
184
|
-
</co-product-configurator-selector-option>
|
|
185
|
-
</ng-container>
|
|
186
|
-
</div>
|
|
187
|
-
|
|
188
|
-
<ng-container *ngIf="!lastNodeWithChildren">
|
|
189
|
-
<co-product-configurator-selector
|
|
190
|
-
*ngFor="let displaySelection of options let index = index"
|
|
191
|
-
[selection]="displaySelection.selector"
|
|
192
|
-
[options]="displaySelection.selectorOptions"
|
|
193
|
-
[lastNodeWithChildren]="displaySelection.lastNodeWithChildren"
|
|
194
|
-
[selectionIndex]="index + 1"
|
|
195
|
-
[treeLevelIndex]="treeLevelIndex + 1"
|
|
196
|
-
[isActive]="treeLevelIndex !== 1 || index === activeChildIndex"
|
|
197
|
-
[markAsException]="displaySelection.markForExceptionNotification"
|
|
198
|
-
(activate)="activeChildIndex = index">
|
|
199
|
-
</co-product-configurator-selector>
|
|
200
|
-
</ng-container>
|
|
201
|
-
`,
|
|
202
|
-
encapsulation: ViewEncapsulation.None,
|
|
203
|
-
animations: [
|
|
204
|
-
trigger('showSelections', [
|
|
205
|
-
state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
|
|
206
|
-
state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
|
|
207
|
-
transition('void <=> *', animate(200))
|
|
208
|
-
])
|
|
209
|
-
]
|
|
210
|
-
}]
|
|
211
|
-
}], ctorParameters: function () { return [{ type: i1.ConfiguratorConnectorService }, { type: i2.SettingsService }, { type: i3.IconCacheService }]; }, propDecorators: { showClass: [{
|
|
212
|
-
type: HostBinding,
|
|
213
|
-
args: ['class.co-product-configurator-selector']
|
|
214
|
-
}], exceptionContainer: [{
|
|
215
|
-
type: ViewChild,
|
|
216
|
-
args: ['exceptionContainer']
|
|
217
|
-
}], hostClasses: [{
|
|
218
|
-
type: HostBinding,
|
|
219
|
-
args: ['class']
|
|
220
|
-
}], selection: [{
|
|
221
|
-
type: Input
|
|
222
|
-
}], options: [{
|
|
223
|
-
type: Input
|
|
224
|
-
}], lastNodeWithChildren: [{
|
|
225
|
-
type: Input
|
|
226
|
-
}], selectionIndex: [{
|
|
227
|
-
type: Input
|
|
228
|
-
}], treeLevelIndex: [{
|
|
229
|
-
type: Input
|
|
230
|
-
}], isActive: [{
|
|
231
|
-
type: Input
|
|
232
|
-
}], markAsException: [{
|
|
233
|
-
type: Input
|
|
234
|
-
}], activate: [{
|
|
235
|
-
type: Output
|
|
236
|
-
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFLMUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBMEU5QyxNQUFNLE9BQU8sb0NBQW9DO0lBcUQvQyxZQUNTLDRCQUEwRCxFQUMxRCxlQUFnQyxFQUNoQyxXQUE2QjtRQUY3QixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFsRHRCLFVBQUssR0FBb0IsUUFBUSxDQUFDO1FBNEIzQyxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUduQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBTXBDLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZ0Is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RTs0QkFDeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7NEJBQ25FLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUM5RCxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjtnTEFHUSxTQUFTO3NCQURmLFdBQVc7dUJBQUMsd0NBQXdDO2dCQVE5QyxrQkFBa0I7c0JBRHhCLFNBQVM7dUJBQUMsb0JBQW9CO2dCQUlwQixXQUFXO3NCQURyQixXQUFXO3VCQUFDLE9BQU87Z0JBV2IsU0FBUztzQkFEZixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7U2VsZWN0b3JTdHJ1Y3R1cmV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvc2VsZWN0b3Itc3RydWN0dXJlLmJvJztcclxuaW1wb3J0IHtDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbn0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvY29uZmlndXJhdGlvbi1kaXNwbGF5LW9wdGlvbi5lbnVtJztcclxuaW1wb3J0IHtTZWxlY3RvcldpdGhPcHRpb25zfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL3NlbGVjdG9yLXdpdGgtb3B0aW9ucyc7XHJcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0b3ItY29udGFpbmVyXCI+XHJcbiAgICAgIDwhLS1cclxuICAgICAgICBCYXNlZCBvbiB0aGUgdGhyZWVMZXZlbCBhbmQgdGhlIGxlbmd0aCBvcCBvcHRpb25zIHdlIGdvdCBhIGNvdXBsZSBvZiBmbGF2b3Vyc1xyXG4gICAgICAgIHRyZWVMZXZlbCAxIC0+IGFydGljbGUsIHNob3VsZCBub3QgYmUgdXNlZCBoZXJlXHJcbiAgICAgICAgdHJlZUxldmVsIDIgLT4gJ3RvcCcgbGV2ZWwgc2hvdWxkIGJlIGEgYmlnIGFuZCBib2xkIGhlYWRpbmcsIHdoZW4gaXQgaGFzIG9wdGlvbnNcclxuICAgICAgICB0cmVlTGV2ZWwgMyAtPiB0aXRsZSBsZXNzIGJvbGQsIHNob3VsZCBiZSBmb3Igc29tZXRoaW5nIGxpa2UgJ2ZhYnJpYyBncm91cHMnXHJcbiAgICAgICAgdHJlZUxldmVsIDQgLT4gbW9yZSBsaWtlIGJvbGQgdGV4dCwgc2hvdWxkIGJlIGZvciBzb21ldGhpbmcgbGlrZSAndGhlIGZhYnJpYyBncm91cCdcclxuICAgICAgICB0cmVlTGV2ZWwgNSAtPiBqdXN0IHRleHQgaGVhZFxyXG4gICAgICAtLT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci1jb250YWluZXItaGVhZGVyXCI+XHJcbiAgICAgICAgPGgyICpuZ0lmPVwic2VsZWN0aW9uLnRyZWVMZXZlbCA9PT0gMiAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cInNlbGVjdG9yLW9wdGlvbi1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb25JbmRleFRleHRcIj48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uLm5vZGVUZXh0ID8gc2VsZWN0aW9uLm5vZGVUZXh0IDogc2VsZWN0aW9uLm9wdGlvblRleHQgfCBnb29nbGVUcmFuc2xhdGUgfCBhc3luY1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2gyPlxyXG5cclxuICAgICAgICA8aDNcclxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uLnRyZWVMZXZlbCA9PT0gMyAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3Rvci1vcHRpb24tc3ViLWhlYWRlclwiXHJcbiAgICAgICAgICBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uLm5vZGVUZXh0IHwgZ29vZ2xlVHJhbnNsYXRlIHwgYXN5bmNcIiAoY2xpY2spPVwib25TdWJIZWFkZXJDbGljaygpXCI+PC9oMz5cclxuXHJcbiAgICAgICAgPHBcclxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uLnRyZWVMZXZlbCA9PT0gNCAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3Rvci1vcHRpb24tYm9sZC10ZXh0LWhlYWRlclwiXHJcbiAgICAgICAgICBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uLm5vZGVUZXh0IHwgZ29vZ2xlVHJhbnNsYXRlIHwgYXN5bmNcIj48L3A+XHJcblxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbi50cmVlTGV2ZWwgPT09IDUgJiYgb3B0aW9ucy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0b3Itb3B0aW9uLXRleHQtaGVhZGVyXCJcclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb24ubm9kZVRleHQgfCBnb29nbGVUcmFuc2xhdGUgfCBhc3luY1wiPjwvcD5cclxuXHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibWFya0FzRXhjZXB0aW9uXCIgY2xhc3M9XCJleGNlcHRpb24taWNvblwiICNleGNlcHRpb25Db250YWluZXIgW3RpdGxlXT1cIidDT05GSUdVUkFUSU9OX0VYQ0VQVElPTl9JTkZPJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmlhbmdsZUV4Y2xhbWF0aW9uKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhc3ROb2RlV2l0aENoaWxkcmVuXCI+XHJcbiAgICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvblxyXG4gICAgICAgICAgW3NlbGVjdGlvbl09XCJzZWxlY3Rpb25cIlxyXG4gICAgICAgICAgW2xpc3RPZkNob2ljZXNdPVwibGlzdE9mQ2hvaWNlc1wiXHJcbiAgICAgICAgICBbbWFya0FzRXhjZXB0aW9uXT1cIm1hcmtBc0V4Y2VwdGlvblwiPlxyXG4gICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdE5vZGVXaXRoQ2hpbGRyZW5cIj5cclxuICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRpc3BsYXlTZWxlY3Rpb24gb2Ygb3B0aW9ucyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgW3NlbGVjdGlvbl09XCJkaXNwbGF5U2VsZWN0aW9uLnNlbGVjdG9yXCJcclxuICAgICAgICBbb3B0aW9uc109XCJkaXNwbGF5U2VsZWN0aW9uLnNlbGVjdG9yT3B0aW9uc1wiXHJcbiAgICAgICAgW2xhc3ROb2RlV2l0aENoaWxkcmVuXT1cImRpc3BsYXlTZWxlY3Rpb24ubGFzdE5vZGVXaXRoQ2hpbGRyZW5cIlxyXG4gICAgICAgIFtzZWxlY3Rpb25JbmRleF09XCJpbmRleCArIDFcIlxyXG4gICAgICAgIFt0cmVlTGV2ZWxJbmRleF09XCJ0cmVlTGV2ZWxJbmRleCArIDFcIlxyXG4gICAgICAgIFtpc0FjdGl2ZV09XCJ0cmVlTGV2ZWxJbmRleCAhPT0gMSB8fCBpbmRleCA9PT0gYWN0aXZlQ2hpbGRJbmRleFwiXHJcbiAgICAgICAgW21hcmtBc0V4Y2VwdGlvbl09XCJkaXNwbGF5U2VsZWN0aW9uLm1hcmtGb3JFeGNlcHRpb25Ob3RpZmljYXRpb25cIlxyXG4gICAgICAgIChhY3RpdmF0ZSk9XCJhY3RpdmVDaGlsZEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgPC9jby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzaG93U2VsZWN0aW9ucycsIFtcclxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7J3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKDEwMCUpJywgb3BhY2l0eTogMH0pKSxcclxuICAgICAgc3RhdGUoJyonLCBzdHlsZSh7J3RyYW5zZm9ybSc6ICd0cmFuc2xhdGVYKDAlKScsIG9wYWNpdHk6IDF9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPD0+IConLCBhbmltYXRlKDIwMCkpXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RDb25maWd1cmF0b3JTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3RvcicpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbkVudW0gPSBJY29uRW51bTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZXhjZXB0aW9uQ29udGFpbmVyJylcclxuICBwdWJsaWMgZXhjZXB0aW9uQ29udGFpbmVyPzogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgcHVibGljIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGNsYXNzZXMucHVzaChgdHJlZWxldmVsLSR7dGhpcy50cmVlTGV2ZWxJbmRleH1gKTtcclxuICAgIGlmICh0aGlzLnRyZWVMZXZlbEluZGV4ID09PSAyICYmICF0aGlzLmlzQWN0aXZlKSB7XHJcbiAgICAgIGNsYXNzZXMucHVzaCgnaGlkZGVuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdG9yU3RydWN0dXJlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcHRpb25zOiBTZWxlY3RvcldpdGhPcHRpb25zW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhc3ROb2RlV2l0aENoaWxkcmVuOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb25JbmRleDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmVlTGV2ZWxJbmRleCA9IDE7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzQWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWFya0FzRXhjZXB0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhY3RpdmF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3Rpb25JbmRleFRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbkluZGV4ICsgJy4gJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3Rpb25DbGFzczogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGxpc3RPZkNob2ljZXM6IFNlbGVjdG9yU3RydWN0dXJlW10gPSBbXTtcclxuICBwdWJsaWMgYWN0aXZlQ2hpbGRJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24gJiYgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9IENvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0aW9uQ2xhc3MgPSAnc2VsZWN0aW9uLWNvbnRhaW5lci0nICsgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2w7XHJcbiAgICBpZiAodGhpcy5sYXN0Tm9kZVdpdGhDaGlsZHJlbikge1xyXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9uLnNlbGVjdG9yKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2UuZ2V0SW1hZ2VGb3JBbnN3ZXIob3B0aW9uLnNlbGVjdG9yKTtcclxuICAgICAgICAgIHRoaXMubGlzdE9mQ2hvaWNlcy5wdXNoKG9wdGlvbi5zZWxlY3Rvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWFya0FzRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2hvd0FuZFNjcm9sbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBbmRTY3JvbGwoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5leGNlcHRpb25Db250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOiAnc21vb3RoJ30pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TdWJIZWFkZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZhdGUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.module.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { ProductConfiguratorSelectorComponent } from './product-configurator-selector.component';
|
|
3
|
-
import { PipesModule } from '../../pipes/pipes.module';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { IconModule } from '@colijnit/corecomponents_v12';
|
|
6
|
-
import { ProductConfiguratorSelectorOptionModule } from '../product-configurator-selector-option/product-configurator-selector-option.module';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class ProductConfiguratorSelectorModule {
|
|
9
|
-
}
|
|
10
|
-
ProductConfiguratorSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
-
ProductConfiguratorSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, declarations: [ProductConfiguratorSelectorComponent], imports: [PipesModule,
|
|
12
|
-
CommonModule,
|
|
13
|
-
IconModule,
|
|
14
|
-
ProductConfiguratorSelectorOptionModule], exports: [ProductConfiguratorSelectorComponent] });
|
|
15
|
-
ProductConfiguratorSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, imports: [[
|
|
16
|
-
PipesModule,
|
|
17
|
-
CommonModule,
|
|
18
|
-
IconModule,
|
|
19
|
-
ProductConfiguratorSelectorOptionModule
|
|
20
|
-
]] });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorModule, decorators: [{
|
|
22
|
-
type: NgModule,
|
|
23
|
-
args: [{
|
|
24
|
-
imports: [
|
|
25
|
-
PipesModule,
|
|
26
|
-
CommonModule,
|
|
27
|
-
IconModule,
|
|
28
|
-
ProductConfiguratorSelectorOptionModule
|
|
29
|
-
],
|
|
30
|
-
declarations: [
|
|
31
|
-
ProductConfiguratorSelectorComponent
|
|
32
|
-
],
|
|
33
|
-
exports: [
|
|
34
|
-
ProductConfiguratorSelectorComponent
|
|
35
|
-
]
|
|
36
|
-
}]
|
|
37
|
-
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSxxRkFBcUYsQ0FBQzs7QUFvQjVJLE1BQU0sT0FBTyxpQ0FBaUM7OytIQUFqQyxpQ0FBaUM7Z0lBQWpDLGlDQUFpQyxpQkFSMUMsb0NBQW9DLGFBUHBDLFdBQVc7UUFDWCxZQUFZO1FBQ1osVUFBVTtRQUNWLHVDQUF1QyxhQU92QyxvQ0FBb0M7Z0lBSzNCLGlDQUFpQyxZQWhCbkM7WUFDUCxXQUFXO1lBQ1gsWUFBWTtZQUNaLFVBQVU7WUFDVix1Q0FBdUM7U0FFeEM7NEZBVVUsaUNBQWlDO2tCQWxCN0MsUUFBUTttQkFBQztvQkFFUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsdUNBQXVDO3FCQUV4QztvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0NBQW9DO3FCQUNyQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0NBQW9DO3FCQUNyQztpQkFFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1Byb2R1Y3RDb25maWd1cmF0b3JTZWxlY3RvckNvbXBvbmVudH0gZnJvbSAnLi9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BpcGVzTW9kdWxlfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtQcm9kdWN0Q29uZmlndXJhdG9yU2VsZWN0b3JPcHRpb25Nb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24ubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblxyXG4gIGltcG9ydHM6IFtcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIFByb2R1Y3RDb25maWd1cmF0b3JTZWxlY3Rvck9wdGlvbk1vZHVsZVxyXG5cclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgUHJvZHVjdENvbmZpZ3VyYXRvclNlbGVjdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBQcm9kdWN0Q29uZmlndXJhdG9yU2VsZWN0b3JDb21wb25lbnRcclxuICBdXHJcblxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RDb25maWd1cmF0b3JTZWxlY3Rvck1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { SelectorStructure } from '@colijnit/configuratorapi/build/model/selector-structure.bo';
|
|
4
|
-
import { ConfigurationDisplayOption } from '@colijnit/configuratorapi/build/enum/refcode/configuration-display-option.enum';
|
|
5
|
-
import { NodeType } from '@colijnit/configuratorapi/build/enum/node-type.enum';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../services/configurator-connector.service";
|
|
8
|
-
import * as i2 from "../../services/settings.service";
|
|
9
|
-
import * as i3 from "../../services/product-configurator.service";
|
|
10
|
-
import * as i4 from "../product-configurator-selector-option-button/product-configurator-selector-option-button.component";
|
|
11
|
-
import * as i5 from "../product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component";
|
|
12
|
-
import * as i6 from "../product-configurator-selector-option-tile/product-configurator-selector-option-tile.component";
|
|
13
|
-
import * as i7 from "../product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component";
|
|
14
|
-
import * as i8 from "@angular/common";
|
|
15
|
-
import * as i9 from "../../pipes/localize.pipe";
|
|
16
|
-
export class ProductConfiguratorSelectorOptionComponent {
|
|
17
|
-
constructor(configuratorConnectorService, settingsService, productConfiguratorService) {
|
|
18
|
-
this.configuratorConnectorService = configuratorConnectorService;
|
|
19
|
-
this.settingsService = settingsService;
|
|
20
|
-
this.productConfiguratorService = productConfiguratorService;
|
|
21
|
-
this.configurationDisplayOption = ConfigurationDisplayOption;
|
|
22
|
-
this.selectionClass = '';
|
|
23
|
-
this.showAllTiles = false;
|
|
24
|
-
this.maxVisibleTiles = 10;
|
|
25
|
-
this.maxVisibleSmallTiles = 24;
|
|
26
|
-
this.visibleAnswers = [];
|
|
27
|
-
this.remainingTilesCount = 0;
|
|
28
|
-
}
|
|
29
|
-
showClass() {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
if (this.selection && this.selection.displayOptionControl == null) {
|
|
34
|
-
this.selection.displayOptionControl = ConfigurationDisplayOption.Tab;
|
|
35
|
-
}
|
|
36
|
-
if (this.markAsException) {
|
|
37
|
-
this.selectionClass = 'selection-exception selection-container-' + this.selection.displayOptionControl;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.selectionClass = 'selection-container-' + this.selection.displayOptionControl;
|
|
41
|
-
}
|
|
42
|
-
if (this.selection && this.selection.opvTreeNodeHierarchy && this.selection.nodeType === NodeType.Question) {
|
|
43
|
-
// When the selection has a opvTreeNodeHierarchy and has nodeType OPT means we need to add a cancel/ skip option.
|
|
44
|
-
// This is different from the slide out comp/ selector.
|
|
45
|
-
// But we need to make a copy of it, if we do not do that, we are missing the right header...
|
|
46
|
-
const selectionCopy = Object.assign(new SelectorStructure(), this.selection);
|
|
47
|
-
this.configuratorConnectorService.getImageForAnswer(selectionCopy);
|
|
48
|
-
this.listOfChoices.push(selectionCopy);
|
|
49
|
-
}
|
|
50
|
-
this._calculateVisibleAnswers();
|
|
51
|
-
}
|
|
52
|
-
selectionClicked(answer) {
|
|
53
|
-
this.productConfiguratorService.selectSelection.emit(answer);
|
|
54
|
-
}
|
|
55
|
-
showMore() {
|
|
56
|
-
this.showAllTiles = true;
|
|
57
|
-
this._calculateVisibleAnswers();
|
|
58
|
-
}
|
|
59
|
-
showLess() {
|
|
60
|
-
this.showAllTiles = false;
|
|
61
|
-
this._calculateVisibleAnswers();
|
|
62
|
-
}
|
|
63
|
-
_calculateVisibleAnswers() {
|
|
64
|
-
if (this.selection.displayOptionControl === ConfigurationDisplayOption.TileLarge) {
|
|
65
|
-
if (this.showAllTiles) {
|
|
66
|
-
this.visibleAnswers = this.listOfChoices;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.visibleAnswers = this.listOfChoices.slice(0, this.maxVisibleTiles);
|
|
70
|
-
}
|
|
71
|
-
this.remainingTilesCount = Math.max(0, this.listOfChoices.length - this.maxVisibleTiles);
|
|
72
|
-
}
|
|
73
|
-
else if (this.selection.displayOptionControl === ConfigurationDisplayOption.TileSmall) {
|
|
74
|
-
if (this.showAllTiles) {
|
|
75
|
-
this.visibleAnswers = this.listOfChoices;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.visibleAnswers = this.listOfChoices.slice(0, this.maxVisibleSmallTiles);
|
|
79
|
-
}
|
|
80
|
-
this.remainingTilesCount = Math.max(0, this.listOfChoices.length - this.maxVisibleSmallTiles);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
this.visibleAnswers = this.listOfChoices;
|
|
84
|
-
this.remainingTilesCount = 0;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
ProductConfiguratorSelectorOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorOptionComponent, deps: [{ token: i1.ConfiguratorConnectorService }, { token: i2.SettingsService }, { token: i3.ProductConfiguratorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
-
ProductConfiguratorSelectorOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorSelectorOptionComponent, selector: "co-product-configurator-selector-option", inputs: { selection: "selection", listOfChoices: "listOfChoices", markAsException: "markAsException" }, host: { properties: { "class.co-product-configurator-selector-option": "this.showClass" } }, ngImport: i0, template: `
|
|
90
|
-
<div class="selector-wrapper {{this.selectionClass}}">
|
|
91
|
-
<ng-container *ngIf="this.selection.displayOptionControl !== configurationDisplayOption.DropDown
|
|
92
|
-
&& this.selection.displayOptionControl !== configurationDisplayOption.TileLarge
|
|
93
|
-
&& this.selection.displayOptionControl !== configurationDisplayOption.TileSmall">
|
|
94
|
-
|
|
95
|
-
<ng-container *ngFor="let child of listOfChoices">
|
|
96
|
-
<div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
|
|
97
|
-
<co-product-configurator-selector-option-button
|
|
98
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.Button"
|
|
99
|
-
[option]="child"
|
|
100
|
-
(selectionClicked)="selectionClicked(child)">
|
|
101
|
-
</co-product-configurator-selector-option-button>
|
|
102
|
-
<co-product-configurator-option-checkbox
|
|
103
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.ListOfValues"
|
|
104
|
-
[option]="child"
|
|
105
|
-
(selectionClicked)="selectionClicked(child)">
|
|
106
|
-
</co-product-configurator-option-checkbox>
|
|
107
|
-
<co-product-configurator-selector-option-tile
|
|
108
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileRounded"
|
|
109
|
-
[option]="child"
|
|
110
|
-
[tileClass]="'rounded'"
|
|
111
|
-
(selectionClicked)="selectionClicked(child)">
|
|
112
|
-
</co-product-configurator-selector-option-tile>
|
|
113
|
-
<co-product-configurator-selector-option-tile
|
|
114
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.Tab"
|
|
115
|
-
[option]="child"
|
|
116
|
-
[tileClass]="'small-rounded'"
|
|
117
|
-
(selectionClicked)="selectionClicked(child)">
|
|
118
|
-
</co-product-configurator-selector-option-tile>
|
|
119
|
-
<co-product-configurator-selector-option-tile
|
|
120
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.HorizontalTiles"
|
|
121
|
-
[option]="child"
|
|
122
|
-
[tileClass]="'horizontal'"
|
|
123
|
-
(selectionClicked)="selectionClicked(child)">
|
|
124
|
-
</co-product-configurator-selector-option-tile>
|
|
125
|
-
</div>
|
|
126
|
-
</ng-container>
|
|
127
|
-
</ng-container>
|
|
128
|
-
|
|
129
|
-
<ng-container *ngIf="
|
|
130
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
|
|
131
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
|
|
132
|
-
<ng-container *ngFor="let child of visibleAnswers">
|
|
133
|
-
<div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
|
|
134
|
-
<co-product-configurator-selector-option-tile
|
|
135
|
-
[option]="child"
|
|
136
|
-
[tileClass]="this.selection.displayOptionControl === configurationDisplayOption.TileLarge ? 'large' : 'small'"
|
|
137
|
-
(selectionClicked)="selectionClicked(child)"
|
|
138
|
-
></co-product-configurator-selector-option-tile>
|
|
139
|
-
</div>
|
|
140
|
-
</ng-container>
|
|
141
|
-
</ng-container>
|
|
142
|
-
|
|
143
|
-
<ng-container *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown">
|
|
144
|
-
<co-product-configurator-selector-option-dropdown
|
|
145
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown"
|
|
146
|
-
[options]="listOfChoices"
|
|
147
|
-
(selectionClicked)="selectionClicked($event)"
|
|
148
|
-
></co-product-configurator-selector-option-dropdown>
|
|
149
|
-
</ng-container>
|
|
150
|
-
</div>
|
|
151
|
-
|
|
152
|
-
<ng-container *ngIf="
|
|
153
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
|
|
154
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
|
|
155
|
-
<ng-container *ngIf="!showAllTiles && remainingTilesCount > 0">
|
|
156
|
-
<div class="show-more-container">
|
|
157
|
-
<span (click)="showMore()">
|
|
158
|
-
<span class="show-more-text-link" [textContent]="'VIEW' | localize"></span>
|
|
159
|
-
<span class="show-more-text-link" [textContent]="remainingTilesCount"></span>
|
|
160
|
-
<span class="show-more-text-link" [textContent]="'MORE_OPTIONS' | localize:false"></span>
|
|
161
|
-
</span>
|
|
162
|
-
</div>
|
|
163
|
-
</ng-container>
|
|
164
|
-
<ng-container *ngIf="showAllTiles && listOfChoices.length > maxVisibleTiles">
|
|
165
|
-
<div class="show-more-container">
|
|
166
|
-
<span (click)="showLess()" [textContent]="'VIEW_LESS' | localize"></span>
|
|
167
|
-
</div>
|
|
168
|
-
</ng-container>
|
|
169
|
-
</ng-container>
|
|
170
|
-
|
|
171
|
-
`, isInline: true, components: [{ type: i4.ProductConfiguratorSelectorOptionButtonComponent, selector: "co-product-configurator-selector-option-button", inputs: ["option"], outputs: ["selectionClicked"] }, { type: i5.ProductConfiguratorOptionCheckboxComponent, selector: "co-product-configurator-option-checkbox", inputs: ["option"], outputs: ["selectionClicked"] }, { type: i6.ProductConfiguratorSelectorOptionTileComponent, selector: "co-product-configurator-selector-option-tile", inputs: ["option", "tileClass"], outputs: ["selectionClicked"] }, { type: i7.ProductConfiguratorSelectorOptionDropDownComponent, selector: "co-product-configurator-selector-option-dropdown", inputs: ["options", "tileClass"], outputs: ["selectionClicked"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "localize": i9.LocalizePipe }, animations: [
|
|
172
|
-
trigger('showSelections', [
|
|
173
|
-
state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
|
|
174
|
-
state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
|
|
175
|
-
transition('void <=> *', animate(200))
|
|
176
|
-
])
|
|
177
|
-
], encapsulation: i0.ViewEncapsulation.None });
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorOptionComponent, decorators: [{
|
|
179
|
-
type: Component,
|
|
180
|
-
args: [{
|
|
181
|
-
selector: 'co-product-configurator-selector-option',
|
|
182
|
-
template: `
|
|
183
|
-
<div class="selector-wrapper {{this.selectionClass}}">
|
|
184
|
-
<ng-container *ngIf="this.selection.displayOptionControl !== configurationDisplayOption.DropDown
|
|
185
|
-
&& this.selection.displayOptionControl !== configurationDisplayOption.TileLarge
|
|
186
|
-
&& this.selection.displayOptionControl !== configurationDisplayOption.TileSmall">
|
|
187
|
-
|
|
188
|
-
<ng-container *ngFor="let child of listOfChoices">
|
|
189
|
-
<div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
|
|
190
|
-
<co-product-configurator-selector-option-button
|
|
191
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.Button"
|
|
192
|
-
[option]="child"
|
|
193
|
-
(selectionClicked)="selectionClicked(child)">
|
|
194
|
-
</co-product-configurator-selector-option-button>
|
|
195
|
-
<co-product-configurator-option-checkbox
|
|
196
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.ListOfValues"
|
|
197
|
-
[option]="child"
|
|
198
|
-
(selectionClicked)="selectionClicked(child)">
|
|
199
|
-
</co-product-configurator-option-checkbox>
|
|
200
|
-
<co-product-configurator-selector-option-tile
|
|
201
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileRounded"
|
|
202
|
-
[option]="child"
|
|
203
|
-
[tileClass]="'rounded'"
|
|
204
|
-
(selectionClicked)="selectionClicked(child)">
|
|
205
|
-
</co-product-configurator-selector-option-tile>
|
|
206
|
-
<co-product-configurator-selector-option-tile
|
|
207
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.Tab"
|
|
208
|
-
[option]="child"
|
|
209
|
-
[tileClass]="'small-rounded'"
|
|
210
|
-
(selectionClicked)="selectionClicked(child)">
|
|
211
|
-
</co-product-configurator-selector-option-tile>
|
|
212
|
-
<co-product-configurator-selector-option-tile
|
|
213
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.HorizontalTiles"
|
|
214
|
-
[option]="child"
|
|
215
|
-
[tileClass]="'horizontal'"
|
|
216
|
-
(selectionClicked)="selectionClicked(child)">
|
|
217
|
-
</co-product-configurator-selector-option-tile>
|
|
218
|
-
</div>
|
|
219
|
-
</ng-container>
|
|
220
|
-
</ng-container>
|
|
221
|
-
|
|
222
|
-
<ng-container *ngIf="
|
|
223
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
|
|
224
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
|
|
225
|
-
<ng-container *ngFor="let child of visibleAnswers">
|
|
226
|
-
<div class="selector-option-wrapper" [class.active]="child.selected ==='F'">
|
|
227
|
-
<co-product-configurator-selector-option-tile
|
|
228
|
-
[option]="child"
|
|
229
|
-
[tileClass]="this.selection.displayOptionControl === configurationDisplayOption.TileLarge ? 'large' : 'small'"
|
|
230
|
-
(selectionClicked)="selectionClicked(child)"
|
|
231
|
-
></co-product-configurator-selector-option-tile>
|
|
232
|
-
</div>
|
|
233
|
-
</ng-container>
|
|
234
|
-
</ng-container>
|
|
235
|
-
|
|
236
|
-
<ng-container *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown">
|
|
237
|
-
<co-product-configurator-selector-option-dropdown
|
|
238
|
-
*ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown"
|
|
239
|
-
[options]="listOfChoices"
|
|
240
|
-
(selectionClicked)="selectionClicked($event)"
|
|
241
|
-
></co-product-configurator-selector-option-dropdown>
|
|
242
|
-
</ng-container>
|
|
243
|
-
</div>
|
|
244
|
-
|
|
245
|
-
<ng-container *ngIf="
|
|
246
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileLarge ||
|
|
247
|
-
this.selection.displayOptionControl === configurationDisplayOption.TileSmall">
|
|
248
|
-
<ng-container *ngIf="!showAllTiles && remainingTilesCount > 0">
|
|
249
|
-
<div class="show-more-container">
|
|
250
|
-
<span (click)="showMore()">
|
|
251
|
-
<span class="show-more-text-link" [textContent]="'VIEW' | localize"></span>
|
|
252
|
-
<span class="show-more-text-link" [textContent]="remainingTilesCount"></span>
|
|
253
|
-
<span class="show-more-text-link" [textContent]="'MORE_OPTIONS' | localize:false"></span>
|
|
254
|
-
</span>
|
|
255
|
-
</div>
|
|
256
|
-
</ng-container>
|
|
257
|
-
<ng-container *ngIf="showAllTiles && listOfChoices.length > maxVisibleTiles">
|
|
258
|
-
<div class="show-more-container">
|
|
259
|
-
<span (click)="showLess()" [textContent]="'VIEW_LESS' | localize"></span>
|
|
260
|
-
</div>
|
|
261
|
-
</ng-container>
|
|
262
|
-
</ng-container>
|
|
263
|
-
|
|
264
|
-
`,
|
|
265
|
-
encapsulation: ViewEncapsulation.None,
|
|
266
|
-
animations: [
|
|
267
|
-
trigger('showSelections', [
|
|
268
|
-
state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
|
|
269
|
-
state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
|
|
270
|
-
transition('void <=> *', animate(200))
|
|
271
|
-
])
|
|
272
|
-
]
|
|
273
|
-
}]
|
|
274
|
-
}], ctorParameters: function () { return [{ type: i1.ConfiguratorConnectorService }, { type: i2.SettingsService }, { type: i3.ProductConfiguratorService }]; }, propDecorators: { showClass: [{
|
|
275
|
-
type: HostBinding,
|
|
276
|
-
args: ['class.co-product-configurator-selector-option']
|
|
277
|
-
}], selection: [{
|
|
278
|
-
type: Input
|
|
279
|
-
}], listOfChoices: [{
|
|
280
|
-
type: Input
|
|
281
|
-
}], markAsException: [{
|
|
282
|
-
type: Input
|
|
283
|
-
}] } });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uL3Byb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDOUYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFJMUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7Ozs7Ozs7OztBQWdHN0UsTUFBTSxPQUFPLDBDQUEwQztJQXdCckQsWUFDUyw0QkFBMEQsRUFDMUQsZUFBZ0MsRUFDaEMsMEJBQXNEO1FBRnRELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFYeEQsK0JBQTBCLEdBQUcsMEJBQTBCLENBQUM7UUFDeEQsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUN6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QUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUM5RCxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDdkMsQ0FBQztxQkFDSDtpQkFDRjswTEFJUSxTQUFTO3NCQURmLFdBQVc7dUJBQUMsK0NBQStDO2dCQU1yRCxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtTZWxlY3RvclN0cnVjdHVyZX0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rvci1zdHJ1Y3R1cmUuYm8nO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9ufSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL2VudW0vcmVmY29kZS9jb25maWd1cmF0aW9uLWRpc3BsYXktb3B0aW9uLmVudW0nO1xyXG5pbXBvcnQge1Byb2R1Y3RDb25maWd1cmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0LWNvbmZpZ3VyYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7Tm9kZVR5cGV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvZW51bS9ub2RlLXR5cGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci13cmFwcGVyIHt7dGhpcy5zZWxlY3Rpb25DbGFzc319XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCAhPT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uRHJvcERvd25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgIT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCAhPT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uVGlsZVNtYWxsXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGxpc3RPZkNob2ljZXNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci1vcHRpb24td3JhcHBlclwiIFtjbGFzcy5hY3RpdmVdPVwiY2hpbGQuc2VsZWN0ZWQgPT09J0YnXCI+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uQnV0dG9uXCJcclxuICAgICAgICAgICAgICBbb3B0aW9uXT1cImNoaWxkXCJcclxuICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKGNoaWxkKVwiPlxyXG4gICAgICAgICAgICA8L2NvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1vcHRpb24tY2hlY2tib3hcclxuICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5MaXN0T2ZWYWx1ZXNcIlxyXG4gICAgICAgICAgICAgIFtvcHRpb25dPVwiY2hpbGRcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itb3B0aW9uLWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8Y28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGVcclxuICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlUm91bmRlZFwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCIncm91bmRlZCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRhYlwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCInc21hbGwtcm91bmRlZCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLkhvcml6b250YWxUaWxlc1wiXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCInaG9yaXpvbnRhbCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZSB8fFxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlU21hbGxcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiB2aXNpYmxlQW5zd2Vyc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdG9yLW9wdGlvbi13cmFwcGVyXCIgW2NsYXNzLmFjdGl2ZV09XCJjaGlsZC5zZWxlY3RlZCA9PT0nRidcIj5cclxuICAgICAgICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi10aWxlXHJcbiAgICAgICAgICAgICAgW29wdGlvbl09XCJjaGlsZFwiXHJcbiAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uVGlsZUxhcmdlID8gJ2xhcmdlJyA6ICdzbWFsbCdcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoY2hpbGQpXCJcclxuICAgICAgICAgICAgPjwvY28tcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLkRyb3BEb3duXCI+XHJcbiAgICAgICAgPGNvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1kcm9wZG93blxyXG4gICAgICAgICAgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uRHJvcERvd25cIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwibGlzdE9mQ2hvaWNlc1wiXHJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgID48L2NvLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1kcm9wZG93bj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZSB8fFxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlU21hbGxcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93QWxsVGlsZXMgJiYgcmVtYWluaW5nVGlsZXNDb3VudCA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2hvdy1tb3JlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd01vcmUoKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvdy1tb3JlLXRleHQtbGlua1wiIFt0ZXh0Q29udGVudF09XCInVklFVycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctbW9yZS10ZXh0LWxpbmtcIiBbdGV4dENvbnRlbnRdPVwicmVtYWluaW5nVGlsZXNDb3VudFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctbW9yZS10ZXh0LWxpbmtcIiBbdGV4dENvbnRlbnRdPVwiJ01PUkVfT1BUSU9OUycgfCBsb2NhbGl6ZTpmYWxzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBbGxUaWxlcyAmJiBsaXN0T2ZDaG9pY2VzLmxlbmd0aCA+IG1heFZpc2libGVUaWxlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG93LW1vcmUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd0xlc3MoKVwiIFt0ZXh0Q29udGVudF09XCInVklFV19MRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3Nob3dTZWxlY3Rpb25zJywgW1xyXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoMTAwJSknLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHsndHJhbnNmb3JtJzogJ3RyYW5zbGF0ZVgoMCUpJywgb3BhY2l0eTogMX0pKSxcclxuICAgICAgdHJhbnNpdGlvbigndm9pZCA8PT4gKicsIGFuaW1hdGUoMjAwKSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdENvbmZpZ3VyYXRvclNlbGVjdG9yT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24nKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0b3JTdHJ1Y3R1cmU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxpc3RPZkNob2ljZXM6IFNlbGVjdG9yU3RydWN0dXJlW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hcmtBc0V4Y2VwdGlvbjogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uID0gQ29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb247XHJcbiAgcHVibGljIHNlbGVjdGlvbkNsYXNzOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgc2hvd0FsbFRpbGVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG1heFZpc2libGVUaWxlczogbnVtYmVyID0gMTA7XHJcbiAgcHVibGljIG1heFZpc2libGVTbWFsbFRpbGVzOiBudW1iZXIgPSAyNDtcclxuICBwdWJsaWMgdmlzaWJsZUFuc3dlcnM6IFNlbGVjdG9yU3RydWN0dXJlW10gPSBbXTtcclxuICBwdWJsaWMgcmVtYWluaW5nVGlsZXNDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyBwcm9kdWN0Q29uZmlndXJhdG9yU2VydmljZTogUHJvZHVjdENvbmZpZ3VyYXRvclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPSBDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UYWI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXJrQXNFeGNlcHRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25DbGFzcyA9ICdzZWxlY3Rpb24tZXhjZXB0aW9uIHNlbGVjdGlvbi1jb250YWluZXItJyArIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25DbGFzcyA9ICdzZWxlY3Rpb24tY29udGFpbmVyLScgKyB0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLm9wdlRyZWVOb2RlSGllcmFyY2h5ICYmIHRoaXMuc2VsZWN0aW9uLm5vZGVUeXBlID09PSBOb2RlVHlwZS5RdWVzdGlvbikge1xyXG4gICAgICAvLyBXaGVuIHRoZSBzZWxlY3Rpb24gaGFzIGEgb3B2VHJlZU5vZGVIaWVyYXJjaHkgYW5kIGhhcyBub2RlVHlwZSBPUFQgbWVhbnMgd2UgbmVlZCB0byBhZGQgYSBjYW5jZWwvIHNraXAgb3B0aW9uLlxyXG4gICAgICAvLyBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBzbGlkZSBvdXQgY29tcC8gc2VsZWN0b3IuXHJcbiAgICAgIC8vIEJ1dCB3ZSBuZWVkIHRvIG1ha2UgYSBjb3B5IG9mIGl0LCBpZiB3ZSBkbyBub3QgZG8gdGhhdCwgd2UgYXJlIG1pc3NpbmcgdGhlIHJpZ2h0IGhlYWRlci4uLlxyXG4gICAgICBjb25zdCBzZWxlY3Rpb25Db3B5OiBTZWxlY3RvclN0cnVjdHVyZSA9IE9iamVjdC5hc3NpZ24obmV3IFNlbGVjdG9yU3RydWN0dXJlKCksIHRoaXMuc2VsZWN0aW9uKTtcclxuICAgICAgdGhpcy5jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmdldEltYWdlRm9yQW5zd2VyKHNlbGVjdGlvbkNvcHkpO1xyXG4gICAgICB0aGlzLmxpc3RPZkNob2ljZXMucHVzaChzZWxlY3Rpb25Db3B5KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlQW5zd2VycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdGlvbkNsaWNrZWQoYW5zd2VyOiBTZWxlY3RvclN0cnVjdHVyZSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9kdWN0Q29uZmlndXJhdG9yU2VydmljZS5zZWxlY3RTZWxlY3Rpb24uZW1pdChhbnN3ZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dNb3JlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QWxsVGlsZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUFuc3dlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93TGVzcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FsbFRpbGVzID0gZmFsc2U7XHJcbiAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlQW5zd2VycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2FsY3VsYXRlVmlzaWJsZUFuc3dlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IENvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVMYXJnZSkge1xyXG4gICAgICBpZiAodGhpcy5zaG93QWxsVGlsZXMpIHtcclxuICAgICAgICB0aGlzLnZpc2libGVBbnN3ZXJzID0gdGhpcy5saXN0T2ZDaG9pY2VzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUFuc3dlcnMgPSB0aGlzLmxpc3RPZkNob2ljZXMuc2xpY2UoMCwgdGhpcy5tYXhWaXNpYmxlVGlsZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluaW5nVGlsZXNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMubGlzdE9mQ2hvaWNlcy5sZW5ndGggLSB0aGlzLm1heFZpc2libGVUaWxlcyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlU21hbGwpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0FsbFRpbGVzKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQW5zd2VycyA9IHRoaXMubGlzdE9mQ2hvaWNlcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpc2libGVBbnN3ZXJzID0gdGhpcy5saXN0T2ZDaG9pY2VzLnNsaWNlKDAsIHRoaXMubWF4VmlzaWJsZVNtYWxsVGlsZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluaW5nVGlsZXNDb3VudCA9IE1hdGgubWF4KDAsIHRoaXMubGlzdE9mQ2hvaWNlcy5sZW5ndGggLSB0aGlzLm1heFZpc2libGVTbWFsbFRpbGVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZUFuc3dlcnMgPSB0aGlzLmxpc3RPZkNob2ljZXM7XHJcbiAgICAgIHRoaXMucmVtYWluaW5nVGlsZXNDb3VudCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|