@colijnit/configurator 260.1.2 → 261.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-configurator.umd.js +18067 -1889
- package/bundles/colijnit-configurator.umd.js.map +1 -1
- package/colijnit-configurator.d.ts +2 -6
- package/esm2015/colijnit-configurator.js +2 -7
- package/esm2015/lib/builder.js +795 -0
- package/esm2015/lib/components/answer-card/answer-card.component.js +313 -0
- package/esm2015/lib/components/answer-card/answer-card.module.js +50 -0
- package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.component.js +182 -0
- package/esm2015/lib/components/answer-info-dialog/answer-info-dialog.module.js +34 -0
- package/esm2015/lib/components/answers-slideout/answers-slideout.component.js +490 -0
- package/esm2015/lib/components/answers-slideout/answers-slideout.module.js +61 -0
- package/esm2015/lib/components/color-filter/color-filter.component.js +59 -0
- package/esm2015/lib/components/color-filter/color-filter.module.js +26 -0
- package/esm2015/lib/components/configurator/configurator.component.js +133 -0
- package/esm2015/lib/components/configurator/configurator.module.js +42 -0
- package/esm2015/lib/components/configurator-dialog/configurator-camera-settings.component.js +222 -0
- package/esm2015/lib/components/configurator-dialog/configurator-dialog.module.js +48 -0
- package/esm2015/lib/components/configurator-dialog/configurator-error-dialog.component.js +82 -0
- package/esm2015/lib/components/configurator-dialog/configurator-export-dialog.component.js +163 -0
- package/esm2015/lib/components/configurator-loader/configurator-loader.component.js +49 -0
- package/esm2015/lib/components/configurator-loader/configurator-loader.module.js +33 -0
- package/esm2015/lib/components/configurator-scene/configurator-scene.component.js +60 -0
- package/esm2015/lib/components/configurator-scene/configurator-scene.module.js +17 -0
- package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.component.js +46 -0
- package/esm2015/lib/components/configurator-scene-loader/configurator-scene-loader.module.js +26 -0
- package/esm2015/lib/components/element-buttons/element-buttons.component.js +168 -0
- package/esm2015/lib/components/element-buttons/element-buttons.module.js +30 -0
- package/esm2015/lib/components/element-toolbar/element-toolbar.component.js +186 -0
- package/esm2015/lib/components/element-toolbar/element-toolbar.module.js +34 -0
- package/esm2015/lib/components/image-zoom/image-zoom.component.js +61 -0
- package/esm2015/lib/components/image-zoom/image-zoom.module.js +30 -0
- package/esm2015/lib/components/lite-selector/lite-selector.component.js +206 -0
- package/esm2015/lib/components/lite-selector/lite-selector.module.js +34 -0
- package/esm2015/lib/components/product-configurator/product-configurator.component.js +184 -0
- package/esm2015/lib/components/product-configurator/product-configurator.module.js +72 -0
- package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.component.js +237 -0
- package/esm2015/lib/components/product-configurator-selector/product-configurator-selector.module.js +38 -0
- package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.js +284 -0
- package/esm2015/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.js +42 -0
- package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.js +72 -0
- package/esm2015/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.js +34 -0
- package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.js +82 -0
- package/esm2015/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.js +30 -0
- package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.js +80 -0
- package/esm2015/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.js +34 -0
- package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.js +93 -0
- package/esm2015/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.js +34 -0
- package/esm2015/lib/components/progress-bar/progress-bar.component.js +55 -0
- package/esm2015/lib/components/progress-bar/progress-bar.module.js +29 -0
- package/esm2015/lib/components/scene-options/scene-options.component.js +164 -0
- package/esm2015/lib/components/scene-options/scene-options.module.js +38 -0
- package/esm2015/lib/components/selections-summary/selections-summary.component.js +163 -0
- package/esm2015/lib/components/selections-summary/selections-summary.module.js +45 -0
- package/esm2015/lib/components/selections-summary-line/selections-summary-line.component.js +171 -0
- package/esm2015/lib/components/selections-summary-line/selections-summary-line.module.js +34 -0
- package/esm2015/lib/components/slideout/slideout.component.js +83 -0
- package/esm2015/lib/components/slideout/slideout.module.js +17 -0
- package/esm2015/lib/components/summary-line/summary-line.component.js +273 -0
- package/esm2015/lib/components/summary-line/summary-line.module.js +44 -0
- package/esm2015/lib/components/tag-filter/tag-filter.component.js +39 -0
- package/esm2015/lib/components/tag-filter/tag-filter.module.js +21 -0
- package/esm2015/lib/components/threedselector/threedselector.component.js +155 -0
- package/esm2015/lib/components/threedselector/threedselector.module.js +34 -0
- package/esm2015/lib/core/helper/variation-helper.js +553 -0
- package/esm2015/lib/core/shader/floor-fade.shader.js +33 -0
- package/esm2015/lib/core/textures/depth-data-texture.js +19 -0
- package/esm2015/lib/directives/directives.module.js +26 -0
- package/esm2015/lib/directives/visibility-observer-master.directive.js +53 -0
- package/esm2015/lib/directives/visibility-observer.directive.js +54 -0
- package/esm2015/lib/enum/ar-feature.enum.js +14 -0
- package/esm2015/lib/enum/configuration-key.enum.js +41 -0
- package/esm2015/lib/enum/configuration-template.enum.js +6 -0
- package/esm2015/lib/enum/device-size-type.js +7 -0
- package/esm2015/lib/enum/device-tier.enum.js +7 -0
- package/esm2015/lib/enum/icon.enum.js +113 -0
- package/esm2015/lib/enum/item-type.enum.js +23 -0
- package/esm2015/lib/enum/light.enum.js +9 -0
- package/esm2015/lib/enum/navigator-type.enum.js +6 -0
- package/esm2015/lib/enum/output-encoding.enum.js +9 -0
- package/esm2015/lib/enum/result-type.enum.js +21 -0
- package/esm2015/lib/enum/scene-event.enum.js +12 -0
- package/esm2015/lib/enum/shadow-map-type.enum.js +8 -0
- package/esm2015/lib/enum/texture-type.js +9 -0
- package/esm2015/lib/enum/tone-mapping-local.enum.js +12 -0
- package/esm2015/lib/enum/view-mode.enum.js +7 -0
- package/esm2015/lib/enum/xr-mode.enum.js +6 -0
- package/esm2015/lib/environments/environment.js +8 -0
- package/esm2015/lib/interfaces/aa-options.interface.js +2 -0
- package/esm2015/lib/interfaces/adjustable-element.interface.js +2 -0
- package/esm2015/lib/interfaces/ao-options.interface.js +2 -0
- package/esm2015/lib/interfaces/changes.interface.js +2 -0
- package/esm2015/lib/interfaces/configuration-data.interface.js +2 -0
- package/esm2015/lib/interfaces/light-preset.interface.js +2 -0
- package/esm2015/lib/interfaces/post-processing-setting.interface.js +2 -0
- package/esm2015/lib/interfaces/scene-option-button.interface.js +6 -0
- package/esm2015/lib/interfaces/screen-size-info.js +2 -0
- package/esm2015/lib/interfaces/setting.interface.js +2 -0
- package/esm2015/lib/interfaces/texture.interface.js +2 -0
- package/esm2015/lib/interfaces/vignette-options.interface.js +2 -0
- package/esm2015/lib/model/ar-position-indicator.js +18 -0
- package/esm2015/lib/model/camera-settings.js +14 -0
- package/esm2015/lib/model/configuration-result-object.js +6 -0
- package/esm2015/lib/model/configurator-error-message.js +9 -0
- package/esm2015/lib/model/configurator-settings.js +25 -0
- package/esm2015/lib/model/custom-button.js +16 -0
- package/esm2015/lib/model/factory.js +28 -0
- package/esm2015/lib/model/icon.js +112 -0
- package/esm2015/lib/model/intersected-objects.js +7 -0
- package/esm2015/lib/model/light-preset.js +73 -0
- package/esm2015/lib/model/light-properties.js +45 -0
- package/esm2015/lib/model/material.js +11 -0
- package/esm2015/lib/model/metadata.js +2 -0
- package/esm2015/lib/model/render-parameters.js +16 -0
- package/esm2015/lib/model/setting-options.js +71 -0
- package/esm2015/lib/model/settings.js +16 -0
- package/esm2015/lib/model/shadow-properties.js +10 -0
- package/esm2015/lib/model/skin.js +3 -0
- package/esm2015/lib/model/texture.js +76 -0
- package/esm2015/lib/model/variation-settings.js +54 -0
- package/esm2015/lib/model/variation.js +3 -0
- package/esm2015/lib/model/xr-reticle.js +79 -0
- package/esm2015/lib/modules/render/enum/scene-type.enum.js +6 -0
- package/esm2015/lib/modules/render/model/ar-parameters.js +12 -0
- package/esm2015/lib/modules/render/model/scene-setting.js +6 -0
- package/esm2015/lib/modules/render/model/scene-settings.js +3 -0
- package/esm2015/lib/pipes/append.pipe.js +21 -0
- package/esm2015/lib/pipes/google-translate.pipe.js +21 -0
- package/esm2015/lib/pipes/localize.pipe.js +28 -0
- package/esm2015/lib/pipes/pipes.module.js +41 -0
- package/esm2015/lib/pipes/prepend.pipe.js +21 -0
- package/esm2015/lib/pipes/strip-html.pipe.js +17 -0
- package/esm2015/lib/services/app-event.service.js +36 -0
- package/esm2015/lib/services/app-initializer.service.js +27 -0
- package/esm2015/lib/services/ar.service.js +844 -0
- package/esm2015/lib/services/build-furniture-base.service.js +1181 -0
- package/esm2015/lib/services/build-furniture-without-scene.service.js +86 -0
- package/esm2015/lib/services/build-furniture.service.js +169 -0
- package/esm2015/lib/services/bundle-initialzer.service.js +113 -0
- package/esm2015/lib/services/camera.service.js +123 -0
- package/esm2015/lib/services/configuration.service.js +79 -0
- package/esm2015/lib/services/configurator-connector.service.js +830 -0
- package/esm2015/lib/services/configurator.service.js +285 -0
- package/esm2015/lib/services/configuring.service.js +119 -0
- package/esm2015/lib/services/controls.js +799 -0
- package/esm2015/lib/services/debug.service.js +43 -0
- package/esm2015/lib/services/dictionary.service.js +65 -0
- package/esm2015/lib/services/dynamic-camera.service.js +96 -0
- package/esm2015/lib/services/floor-plane.service.js +252 -0
- package/esm2015/lib/services/font.service.js +27 -0
- package/esm2015/lib/services/google-translate.service.js +79 -0
- package/esm2015/lib/services/icon-cache.service.js +44 -0
- package/esm2015/lib/services/intersection.service.js +47 -0
- package/esm2015/lib/services/item.service.js +75 -0
- package/esm2015/lib/services/json-utils.service.js +48 -0
- package/esm2015/lib/services/light-creation.service.js +35 -0
- package/esm2015/lib/services/light-presets.service.js +157 -0
- package/esm2015/lib/services/lights.service.js +146 -0
- package/esm2015/lib/services/load-furniture-base.service.js +164 -0
- package/esm2015/lib/services/load-furniture-without-scene.service.js +45 -0
- package/esm2015/lib/services/load-furniture.service.js +72 -0
- package/esm2015/lib/services/loader.service.js +32 -0
- package/esm2015/lib/services/locator.service.js +11 -0
- package/esm2015/lib/services/message-board.service.js +50 -0
- package/esm2015/lib/services/post-processing.service.js +378 -0
- package/esm2015/lib/services/product-configurator.service.js +16 -0
- package/esm2015/lib/services/progress.service.js +20 -0
- package/esm2015/lib/services/scene-event.service.js +246 -0
- package/esm2015/lib/services/scene-options.service.js +24 -0
- package/esm2015/lib/services/scene.service.js +313 -0
- package/esm2015/lib/services/screen-size-analysis.service.js +97 -0
- package/esm2015/lib/services/settings.service.js +142 -0
- package/esm2015/lib/services/switch-build-furniture.service.js +37 -0
- package/esm2015/lib/services/switch-load-furniture.service.js +35 -0
- package/esm2015/lib/services/threedselector.service.js +72 -0
- package/esm2015/lib/services/utils.service.js +207 -0
- package/esm2015/lib/services/variation-cache.service.js +143 -0
- package/esm2015/lib/services/variation.service.js +490 -0
- package/esm2015/lib/services/view-mode.service.js +37 -0
- package/esm2015/lib/services/vr.service.js +191 -0
- package/esm2015/lib/services/xr.service.js +294 -0
- package/esm2015/lib/utils/asset.utils.js +120 -0
- package/esm2015/lib/utils/base-utils.js +9 -0
- package/esm2015/lib/utils/color.utils.js +30 -0
- package/esm2015/lib/utils/debug.utils.js +9 -0
- package/esm2015/lib/utils/device.utils.js +25 -0
- package/esm2015/lib/utils/file.utils.js +167 -0
- package/esm2015/lib/utils/image.utils.js +61 -0
- package/esm2015/lib/utils/json-parser.utils.js +180 -0
- package/esm2015/lib/utils/material.utils.js +433 -0
- package/esm2015/lib/utils/object.utils.js +360 -0
- package/esm2015/lib/utils/relative-position.utils.js +75 -0
- package/esm2015/lib/utils/rotation-helper.utils.js +15 -0
- package/esm2015/lib/utils/scene-3d.utils.js +213 -0
- package/esm2015/lib/utils/scene-utils.js +191 -0
- package/esm2015/lib/utils/text-utils.js +68 -0
- package/esm2015/lib/utils/threed.utils.js +281 -0
- package/esm2015/lib/utils/variation-utils.js +459 -0
- package/esm2015/public-api.js +65 -0
- package/fesm2015/colijnit-configurator.js +17538 -1477
- package/fesm2015/colijnit-configurator.js.map +1 -1
- package/{app → lib}/builder.d.ts +9 -1
- package/lib/components/answer-card/answer-card.component.d.ts +58 -0
- package/lib/components/answer-card/answer-card.module.d.ts +11 -0
- package/lib/components/answer-card/style/_layout.scss +88 -0
- package/lib/components/answer-card/style/_material-definition.scss +3 -0
- package/lib/components/answer-card/style/_theme.scss +67 -0
- package/lib/components/answer-card/style/material.scss +2 -0
- package/lib/components/answer-info-dialog/answer-info-dialog.component.d.ts +38 -0
- package/lib/components/answer-info-dialog/answer-info-dialog.module.d.ts +10 -0
- package/lib/components/answer-info-dialog/style/_layout.scss +88 -0
- package/lib/components/answer-info-dialog/style/_material-definition.scss +3 -0
- package/lib/components/answer-info-dialog/style/_theme.scss +44 -0
- package/lib/components/answer-info-dialog/style/material.scss +3 -0
- package/lib/components/answers-slideout/answers-slideout.component.d.ts +86 -0
- package/lib/components/answers-slideout/answers-slideout.module.d.ts +16 -0
- package/lib/components/answers-slideout/style/_layout.scss +198 -0
- package/lib/components/answers-slideout/style/_material-definition.scss +3 -0
- package/lib/components/answers-slideout/style/_theme.scss +54 -0
- package/lib/components/answers-slideout/style/material.scss +3 -0
- package/lib/components/color-filter/color-filter.component.d.ts +20 -0
- package/lib/components/color-filter/color-filter.module.d.ts +8 -0
- package/lib/components/color-filter/style/_layout.scss +41 -0
- package/lib/components/color-filter/style/_material-definition.scss +3 -0
- package/lib/components/color-filter/style/_theme.scss +7 -0
- package/lib/components/color-filter/style/material.scss +3 -0
- package/lib/components/configurator/configurator.component.d.ts +37 -0
- package/lib/components/configurator/configurator.module.d.ts +12 -0
- package/lib/components/configurator/style/_layout.scss +7 -0
- package/lib/components/configurator/style/_material-definition.scss +3 -0
- package/lib/components/configurator/style/_theme.scss +7 -0
- package/lib/components/configurator/style/material.scss +3 -0
- package/lib/components/configurator-dialog/configurator-camera-settings.component.d.ts +30 -0
- package/lib/components/configurator-dialog/configurator-dialog.module.d.ts +13 -0
- package/lib/components/configurator-dialog/configurator-error-dialog.component.d.ts +16 -0
- package/lib/components/configurator-dialog/configurator-export-dialog.component.d.ts +26 -0
- package/lib/components/configurator-dialog/style/_layout.scss +129 -0
- package/lib/components/configurator-dialog/style/_material-definition.scss +4 -0
- package/lib/components/configurator-dialog/style/_theme.scss +89 -0
- package/lib/components/configurator-dialog/style/material.scss +3 -0
- package/lib/components/configurator-loader/configurator-loader.component.d.ts +7 -0
- package/lib/components/configurator-loader/configurator-loader.module.d.ts +9 -0
- package/lib/components/configurator-loader/style/_layout.scss +72 -0
- package/lib/components/configurator-loader/style/_material-definition.scss +5 -0
- package/lib/components/configurator-loader/style/_theme.scss +26 -0
- package/lib/components/configurator-loader/style/material.scss +14 -0
- package/lib/components/configurator-scene/configurator-scene.component.d.ts +24 -0
- package/lib/components/configurator-scene/configurator-scene.module.d.ts +7 -0
- package/lib/components/configurator-scene/style/_layout.scss +22 -0
- package/lib/components/configurator-scene/style/_material-definition.scss +3 -0
- package/lib/components/configurator-scene/style/_theme.scss +7 -0
- package/lib/components/configurator-scene/style/material.scss +3 -0
- package/lib/components/configurator-scene-loader/configurator-scene-loader.component.d.ts +7 -0
- package/lib/components/configurator-scene-loader/configurator-scene-loader.module.d.ts +8 -0
- package/lib/components/configurator-scene-loader/style/_layout.scss +72 -0
- package/lib/components/configurator-scene-loader/style/_material-definition.scss +5 -0
- package/lib/components/configurator-scene-loader/style/_theme.scss +26 -0
- package/lib/components/configurator-scene-loader/style/material.scss +14 -0
- package/lib/components/element-buttons/element-buttons.component.d.ts +32 -0
- package/lib/components/element-buttons/element-buttons.module.d.ts +9 -0
- package/lib/components/element-buttons/style/_layout.scss +52 -0
- package/lib/components/element-buttons/style/_material-definition.scss +3 -0
- package/lib/components/element-buttons/style/_theme.scss +23 -0
- package/lib/components/element-buttons/style/material.scss +3 -0
- package/lib/components/element-toolbar/element-toolbar.component.d.ts +27 -0
- package/lib/components/element-toolbar/element-toolbar.component.scss +59 -0
- package/lib/components/element-toolbar/element-toolbar.module.d.ts +10 -0
- package/lib/components/element-toolbar/style/_layout.scss +107 -0
- package/lib/components/element-toolbar/style/_material-definition.scss +3 -0
- package/lib/components/element-toolbar/style/_theme.scss +47 -0
- package/lib/components/element-toolbar/style/material.scss +3 -0
- package/lib/components/image-zoom/image-zoom.component.d.ts +15 -0
- package/lib/components/image-zoom/image-zoom.module.d.ts +9 -0
- package/lib/components/image-zoom/style/_layout.scss +51 -0
- package/lib/components/image-zoom/style/_material-definition.scss +3 -0
- package/lib/components/image-zoom/style/_theme.scss +17 -0
- package/lib/components/image-zoom/style/material.scss +3 -0
- package/lib/components/lite-selector/lite-selector.component.d.ts +40 -0
- package/lib/components/lite-selector/lite-selector.module.d.ts +10 -0
- package/lib/components/lite-selector/style/_layout.scss +21 -0
- package/lib/components/lite-selector/style/_material-definition.scss +3 -0
- package/lib/components/lite-selector/style/_theme.scss +7 -0
- package/lib/components/lite-selector/style/material.scss +3 -0
- package/lib/components/product-configurator/product-configurator.component.d.ts +50 -0
- package/lib/components/product-configurator/product-configurator.module.d.ts +15 -0
- package/lib/components/product-configurator/style/_layout.scss +46 -0
- package/lib/components/product-configurator/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator/style/_theme.scss +22 -0
- package/lib/components/product-configurator/style/material.scss +3 -0
- package/lib/components/product-configurator-selector/product-configurator-selector.component.d.ts +35 -0
- package/lib/components/product-configurator-selector/product-configurator-selector.module.d.ts +11 -0
- package/lib/components/product-configurator-selector/style/_layout.scss +145 -0
- package/lib/components/product-configurator-selector/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator-selector/style/_theme.scss +57 -0
- package/lib/components/product-configurator-selector/style/material.scss +3 -0
- package/lib/components/product-configurator-selector-option/product-configurator-selector-option.component.d.ts +31 -0
- package/lib/components/product-configurator-selector-option/product-configurator-selector-option.module.d.ts +13 -0
- package/lib/components/product-configurator-selector-option/style/_layout.scss +7 -0
- package/lib/components/product-configurator-selector-option/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator-selector-option/style/_theme.scss +7 -0
- package/lib/components/product-configurator-selector-option/style/material.scss +3 -0
- package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.component.d.ts +20 -0
- package/lib/components/product-configurator-selector-option-button/product-configurator-selector-option-button.module.d.ts +10 -0
- package/lib/components/product-configurator-selector-option-button/style/_layout.scss +28 -0
- package/lib/components/product-configurator-selector-option-button/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator-selector-option-button/style/_theme.scss +33 -0
- package/lib/components/product-configurator-selector-option-button/style/material.scss +3 -0
- package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.component.d.ts +20 -0
- package/lib/components/product-configurator-selector-option-checkbox/product-configurator-selector-option-checkbox.module.d.ts +10 -0
- package/lib/components/product-configurator-selector-option-checkbox/style/_layout.scss +28 -0
- package/lib/components/product-configurator-selector-option-checkbox/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator-selector-option-checkbox/style/_theme.scss +27 -0
- package/lib/components/product-configurator-selector-option-checkbox/style/material.scss +3 -0
- package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.component.d.ts +21 -0
- package/lib/components/product-configurator-selector-option-dropdown/product-configurator-selector-option-dropdown.module.d.ts +10 -0
- package/lib/components/product-configurator-selector-option-dropdown/style/_layout.scss +34 -0
- package/lib/components/product-configurator-selector-option-dropdown/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator-selector-option-dropdown/style/_theme.scss +28 -0
- package/lib/components/product-configurator-selector-option-dropdown/style/material.scss +3 -0
- package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.component.d.ts +21 -0
- package/lib/components/product-configurator-selector-option-tile/product-configurator-selector-option-tile.module.d.ts +10 -0
- package/lib/components/product-configurator-selector-option-tile/style/_layout.scss +58 -0
- package/lib/components/product-configurator-selector-option-tile/style/_material-definition.scss +3 -0
- package/lib/components/product-configurator-selector-option-tile/style/_theme.scss +56 -0
- package/lib/components/product-configurator-selector-option-tile/style/material.scss +3 -0
- package/lib/components/progress-bar/progress-bar.component.d.ts +10 -0
- package/lib/components/progress-bar/progress-bar.component.scss +14 -0
- package/lib/components/progress-bar/progress-bar.module.d.ts +8 -0
- package/lib/components/progress-bar/style/_layout.scss +18 -0
- package/lib/components/progress-bar/style/_material-definition.scss +3 -0
- package/lib/components/progress-bar/style/_theme.scss +10 -0
- package/lib/components/progress-bar/style/material.scss +3 -0
- package/lib/components/scene-options/scene-options.component.d.ts +24 -0
- package/lib/components/scene-options/scene-options.module.d.ts +11 -0
- package/lib/components/scene-options/style/_layout.scss +52 -0
- package/lib/components/scene-options/style/_material-definition.scss +3 -0
- package/lib/components/scene-options/style/_theme.scss +7 -0
- package/lib/components/scene-options/style/material.scss +3 -0
- package/lib/components/selections-summary/selections-summary.component.d.ts +38 -0
- package/lib/components/selections-summary/selections-summary.module.d.ts +12 -0
- package/lib/components/selections-summary/style/_layout.scss +87 -0
- package/lib/components/selections-summary/style/_material-definition.scss +5 -0
- package/lib/components/selections-summary/style/_theme.scss +13 -0
- package/lib/components/selections-summary/style/material.scss +3 -0
- package/lib/components/selections-summary-line/selections-summary-line.component.d.ts +27 -0
- package/lib/components/selections-summary-line/selections-summary-line.module.d.ts +10 -0
- package/lib/components/selections-summary-line/style/_layout.scss +12 -0
- package/lib/components/selections-summary-line/style/_material-definition.scss +4 -0
- package/lib/components/selections-summary-line/style/_theme.scss +12 -0
- package/lib/components/selections-summary-line/style/material.scss +3 -0
- package/lib/components/slideout/slideout.component.d.ts +22 -0
- package/lib/components/slideout/slideout.module.d.ts +7 -0
- package/lib/components/slideout/style/_layout.scss +27 -0
- package/lib/components/slideout/style/_material-definition.scss +3 -0
- package/lib/components/slideout/style/_theme.scss +5 -0
- package/lib/components/slideout/style/material.scss +3 -0
- package/lib/components/summary-line/style/_layout.scss +137 -0
- package/lib/components/summary-line/style/_material-definition.scss +4 -0
- package/lib/components/summary-line/style/_theme.scss +56 -0
- package/lib/components/summary-line/style/material.scss +3 -0
- package/lib/components/summary-line/summary-line.component.d.ts +50 -0
- package/lib/components/summary-line/summary-line.module.d.ts +11 -0
- package/lib/components/tag-filter/style/_layout.scss +14 -0
- package/lib/components/tag-filter/style/_material-definition.scss +3 -0
- package/lib/components/tag-filter/style/_theme.scss +7 -0
- package/lib/components/tag-filter/style/material.scss +3 -0
- package/lib/components/tag-filter/tag-filter.component.d.ts +9 -0
- package/lib/components/tag-filter/tag-filter.module.d.ts +7 -0
- package/lib/components/threedselector/style/_layout.scss +32 -0
- package/lib/components/threedselector/style/_material-definition.scss +3 -0
- package/lib/components/threedselector/style/_theme.scss +7 -0
- package/lib/components/threedselector/style/material.scss +9 -0
- package/lib/components/threedselector/threedselector.component.d.ts +38 -0
- package/lib/components/threedselector/threedselector.module.d.ts +10 -0
- package/{helper → lib/core/helper}/variation-helper.d.ts +2 -2
- package/lib/core/shader/floor-fade.shader.d.ts +5 -0
- package/lib/core/textures/depth-data-texture.d.ts +5 -0
- package/lib/directives/directives.module.d.ts +8 -0
- package/{app → lib}/directives/visibility-observer-master.directive.d.ts +3 -0
- package/{app → lib}/directives/visibility-observer.directive.d.ts +3 -0
- package/lib/enum/ar-feature.enum.d.ts +12 -0
- package/lib/enum/configuration-key.enum.d.ts +39 -0
- package/lib/enum/configuration-template.enum.d.ts +4 -0
- package/lib/enum/device-size-type.d.ts +5 -0
- package/lib/enum/device-tier.enum.d.ts +5 -0
- package/lib/enum/icon.enum.d.ts +111 -0
- package/lib/enum/item-type.enum.d.ts +21 -0
- package/lib/enum/light.enum.d.ts +7 -0
- package/lib/enum/navigator-type.enum.d.ts +4 -0
- package/lib/enum/output-encoding.enum.d.ts +7 -0
- package/lib/enum/result-type.enum.d.ts +19 -0
- package/lib/enum/scene-event.enum.d.ts +10 -0
- package/lib/enum/shadow-map-type.enum.d.ts +6 -0
- package/lib/enum/texture-type.d.ts +7 -0
- package/lib/enum/tone-mapping-local.enum.d.ts +10 -0
- package/lib/enum/view-mode.enum.d.ts +5 -0
- package/lib/enum/xr-mode.enum.d.ts +4 -0
- package/lib/environments/environment.d.ts +4 -0
- package/lib/interfaces/aa-options.interface.d.ts +4 -0
- package/lib/interfaces/adjustable-element.interface.d.ts +5 -0
- package/lib/interfaces/ao-options.interface.d.ts +18 -0
- package/lib/interfaces/changes.interface.d.ts +9 -0
- package/lib/interfaces/configuration-data.interface.d.ts +40 -0
- package/lib/interfaces/light-preset.interface.d.ts +22 -0
- package/lib/interfaces/post-processing-setting.interface.d.ts +11 -0
- package/lib/interfaces/scene-option-button.interface.d.ts +19 -0
- package/lib/interfaces/screen-size-info.d.ts +10 -0
- package/lib/interfaces/setting.interface.d.ts +8 -0
- package/lib/interfaces/texture.interface.d.ts +44 -0
- package/lib/interfaces/vignette-options.interface.d.ts +4 -0
- package/lib/model/ar-position-indicator.d.ts +4 -0
- package/lib/model/camera-settings.d.ts +12 -0
- package/lib/model/configuration-result-object.d.ts +30 -0
- package/lib/model/configurator-error-message.d.ts +8 -0
- package/lib/model/configurator-settings.d.ts +62 -0
- package/lib/model/custom-button.d.ts +10 -0
- package/lib/model/factory.d.ts +5 -0
- package/lib/model/icon.d.ts +4 -0
- package/lib/model/intersected-objects.d.ts +6 -0
- package/lib/model/light-preset.d.ts +33 -0
- package/lib/model/light-properties.d.ts +25 -0
- package/lib/model/material.d.ts +41 -0
- package/lib/model/metadata.d.ts +78 -0
- package/lib/model/render-parameters.d.ts +12 -0
- package/lib/model/setting-options.d.ts +67 -0
- package/lib/model/settings.d.ts +10 -0
- package/lib/model/shadow-properties.d.ts +7 -0
- package/lib/model/skin.d.ts +15 -0
- package/lib/model/texture.d.ts +52 -0
- package/{model → lib/model}/variation-settings.d.ts +9 -8
- package/{model → lib/model}/variation.d.ts +2 -1
- package/lib/model/xr-reticle.d.ts +17 -0
- package/lib/modules/render/enum/scene-type.enum.d.ts +4 -0
- package/lib/modules/render/model/ar-parameters.d.ts +9 -0
- package/lib/modules/render/model/scene-setting.d.ts +13 -0
- package/lib/modules/render/model/scene-settings.d.ts +4 -0
- package/lib/pipes/append.pipe.d.ts +7 -0
- package/lib/pipes/google-translate.pipe.d.ts +11 -0
- package/lib/pipes/localize.pipe.d.ts +10 -0
- package/lib/pipes/pipes.module.d.ts +11 -0
- package/lib/pipes/prepend.pipe.d.ts +7 -0
- package/lib/pipes/strip-html.pipe.d.ts +7 -0
- package/lib/services/app-event.service.d.ts +32 -0
- package/lib/services/app-initializer.service.d.ts +14 -0
- package/lib/services/ar.service.d.ts +120 -0
- package/lib/services/build-furniture-base.service.d.ts +117 -0
- package/lib/services/build-furniture-without-scene.service.d.ts +14 -0
- package/lib/services/build-furniture.service.d.ts +14 -0
- package/lib/services/bundle-initialzer.service.d.ts +45 -0
- package/lib/services/camera.service.d.ts +44 -0
- package/lib/services/configuration.service.d.ts +18 -0
- package/lib/services/configurator-connector.service.d.ts +140 -0
- package/lib/services/configurator.service.d.ts +62 -0
- package/lib/services/configuring.service.d.ts +46 -0
- package/lib/services/controls.d.ts +11 -0
- package/lib/services/debug.service.d.ts +16 -0
- package/lib/services/dictionary.service.d.ts +15 -0
- package/lib/services/dynamic-camera.service.d.ts +21 -0
- package/lib/services/floor-plane.service.d.ts +47 -0
- package/lib/services/font.service.d.ts +10 -0
- package/lib/services/google-translate.service.d.ts +26 -0
- package/lib/services/icon-cache.service.d.ts +21 -0
- package/lib/services/intersection.service.d.ts +11 -0
- package/lib/services/item.service.d.ts +18 -0
- package/lib/services/json-utils.service.d.ts +7 -0
- package/lib/services/light-creation.service.d.ts +9 -0
- package/lib/services/light-presets.service.d.ts +34 -0
- package/lib/services/lights.service.d.ts +34 -0
- package/lib/services/load-furniture-base.service.d.ts +37 -0
- package/lib/services/load-furniture-without-scene.service.d.ts +9 -0
- package/lib/services/load-furniture.service.d.ts +9 -0
- package/lib/services/loader.service.d.ts +11 -0
- package/lib/services/locator.service.d.ts +7 -0
- package/lib/services/message-board.service.d.ts +18 -0
- package/lib/services/post-processing.service.d.ts +74 -0
- package/lib/services/product-configurator.service.d.ts +11 -0
- package/lib/services/progress.service.d.ts +9 -0
- package/lib/services/scene-event.service.d.ts +72 -0
- package/lib/services/scene-options.service.d.ts +11 -0
- package/lib/services/scene.service.d.ts +71 -0
- package/lib/services/screen-size-analysis.service.d.ts +32 -0
- package/lib/services/settings.service.d.ts +24 -0
- package/lib/services/switch-build-furniture.service.d.ts +21 -0
- package/lib/services/switch-load-furniture.service.d.ts +21 -0
- package/lib/services/threedselector.service.d.ts +17 -0
- package/lib/services/utils.service.d.ts +24 -0
- package/lib/services/variation-cache.service.d.ts +23 -0
- package/lib/services/variation.service.d.ts +26 -0
- package/lib/services/view-mode.service.d.ts +17 -0
- package/lib/services/vr.service.d.ts +42 -0
- package/lib/services/xr.service.d.ts +56 -0
- package/lib/style/_mixin.scss +9 -0
- package/lib/style/configurator-globals.scss +21 -0
- package/lib/style/template_variables.scss +37 -0
- package/lib/utils/color.utils.d.ts +8 -0
- package/lib/utils/debug.utils.d.ts +3 -0
- package/lib/utils/device.utils.d.ts +7 -0
- package/{utils → lib/utils}/file.utils.d.ts +3 -0
- package/{utils → lib/utils}/image.utils.d.ts +2 -3
- package/lib/utils/json-parser.utils.d.ts +9 -0
- package/lib/utils/material.utils.d.ts +34 -0
- package/lib/utils/object.utils.d.ts +32 -0
- package/lib/utils/relative-position.utils.d.ts +12 -0
- package/lib/utils/rotation-helper.utils.d.ts +6 -0
- package/lib/utils/scene-3d.utils.d.ts +8 -0
- package/lib/utils/text-utils.d.ts +4 -0
- package/{utils → lib/utils}/threed.utils.d.ts +7 -3
- package/{utils → lib/utils}/variation-utils.d.ts +4 -2
- package/package.json +17 -30
- package/public-api.d.ts +60 -0
- package/README.md +0 -28
- package/app/components/answers/answer/answer.component.d.ts +0 -11
- package/app/components/answers/answers.component.d.ts +0 -8
- package/app/components/answers/answers.module.d.ts +0 -2
- package/app/components/selections/selections.component.d.ts +0 -21
- package/app/components/selections/selections.module.d.ts +0 -2
- package/app/components/shared/loader/loader.component.d.ts +0 -2
- package/app/components/shared/shared.module.d.ts +0 -2
- package/app/services/configurator.service.d.ts +0 -19
- package/app/services/image-cache.service.d.ts +0 -10
- package/app/utils/object.utils.d.ts +0 -7
- package/colijnit-configurator.metadata.json +0 -1
- package/esm2015/app/builder.js +0 -706
- package/esm2015/app/components/answers/answer/answer.component.js +0 -66
- package/esm2015/app/components/answers/answers.component.js +0 -38
- package/esm2015/app/components/answers/answers.module.js +0 -27
- package/esm2015/app/components/selections/selections.component.js +0 -129
- package/esm2015/app/components/selections/selections.module.js +0 -21
- package/esm2015/app/components/shared/loader/loader.component.js +0 -22
- package/esm2015/app/components/shared/shared.module.js +0 -19
- package/esm2015/app/directives/visibility-observer-master.directive.js +0 -50
- package/esm2015/app/directives/visibility-observer.directive.js +0 -55
- package/esm2015/app/services/configurator.service.js +0 -79
- package/esm2015/app/services/image-cache.service.js +0 -63
- package/esm2015/app/utils/object.utils.js +0 -51
- package/esm2015/helper/variation-helper.js +0 -553
- package/esm2015/model/material.js +0 -11
- package/esm2015/model/variation-settings.js +0 -54
- package/esm2015/model/variation.js +0 -3
- package/esm2015/public_api.js +0 -7
- package/esm2015/utils/asset.utils.js +0 -124
- package/esm2015/utils/base-utils.js +0 -9
- package/esm2015/utils/file.utils.js +0 -142
- package/esm2015/utils/image.utils.js +0 -66
- package/esm2015/utils/object.utils.js +0 -49
- package/esm2015/utils/scene-utils.js +0 -187
- package/esm2015/utils/threed.utils.js +0 -226
- package/esm2015/utils/variation-utils.js +0 -388
- package/model/material.d.ts +0 -40
- package/public_api.d.ts +0 -6
- package/utils/object.utils.d.ts +0 -7
- /package/{utils → lib/utils}/asset.utils.d.ts +0 -0
- /package/{utils → lib/utils}/base-utils.d.ts +0 -0
- /package/{utils → lib/utils}/scene-utils.d.ts +0 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { IconEnum } from '../../enum/icon.enum';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/settings.service";
|
|
5
|
+
import * as i2 from "../../services/icon-cache.service";
|
|
6
|
+
import * as i3 from "../../services/configurator-connector.service";
|
|
7
|
+
import * as i4 from "@colijnit/corecomponents_v12";
|
|
8
|
+
import * as i5 from "../answer-info-dialog/answer-info-dialog.component";
|
|
9
|
+
import * as i6 from "@angular/common";
|
|
10
|
+
import * as i7 from "../../pipes/google-translate.pipe";
|
|
11
|
+
import * as i8 from "../../pipes/localize.pipe";
|
|
12
|
+
export class AnswerCardComponent {
|
|
13
|
+
constructor(settingsService, iconService, _configuratorConnectorService) {
|
|
14
|
+
this.settingsService = settingsService;
|
|
15
|
+
this.iconService = iconService;
|
|
16
|
+
this._configuratorConnectorService = _configuratorConnectorService;
|
|
17
|
+
// TODO check why co-card is missing these two in v12.
|
|
18
|
+
// [showImageLoader]="true"
|
|
19
|
+
// [valutaSymbol]="valutaSymbol"
|
|
20
|
+
this.icons = IconEnum;
|
|
21
|
+
this.valutaSymbol = '€';
|
|
22
|
+
this.freeInputChange = new EventEmitter();
|
|
23
|
+
this.inqNumberChange = new EventEmitter();
|
|
24
|
+
this.select = new EventEmitter();
|
|
25
|
+
this.selectWithInq = new EventEmitter();
|
|
26
|
+
this.magnifierClick = new EventEmitter();
|
|
27
|
+
this.answerInfoToggle = new EventEmitter();
|
|
28
|
+
this.dialogPosition = null;
|
|
29
|
+
this.inqNumberError = false;
|
|
30
|
+
this.showAnswerInfo = false;
|
|
31
|
+
this._waitForInput = false;
|
|
32
|
+
this._waitForInqValue = false;
|
|
33
|
+
}
|
|
34
|
+
showClass() {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
get activeInfoClass() {
|
|
38
|
+
return this.showAnswerInfo;
|
|
39
|
+
}
|
|
40
|
+
set showing(value) {
|
|
41
|
+
if (value) {
|
|
42
|
+
this._getThumbnailImage();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
var _a, _b, _c;
|
|
47
|
+
this.inqNumberModel = this.model.defaultNumber;
|
|
48
|
+
// If we work with ingNumbers, we should also change the this.model.ingNumber value here
|
|
49
|
+
// so we change the default 1 value to the default value
|
|
50
|
+
if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.inquireNbrMode) && ((_b = this.model) === null || _b === void 0 ? void 0 : _b.minNumber) && ((_c = this.model) === null || _c === void 0 ? void 0 : _c.maxNumber)) {
|
|
51
|
+
this.model.inqNumber = this.model.defaultNumber;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
onContentClick() {
|
|
55
|
+
if (!this._waitForInput && (this.model.inquireNbrMode === 'F' || this.model.inquireNbrMode === undefined)) {
|
|
56
|
+
this.select.emit(this.freeInput);
|
|
57
|
+
}
|
|
58
|
+
if (!this._waitForInqValue && this.model.inquireNbrMode === 'T') {
|
|
59
|
+
this.model.inqNumber = Number(this.inqNumberModel);
|
|
60
|
+
this.select.next(this.inqNumberModel);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
handleClick(event) {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
event.stopPropagation();
|
|
66
|
+
event.stopImmediatePropagation();
|
|
67
|
+
}
|
|
68
|
+
onInfoButtonClick(event) {
|
|
69
|
+
var _a;
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
event.stopPropagation();
|
|
72
|
+
event.stopImmediatePropagation();
|
|
73
|
+
this.showAnswerInfo = !this.showAnswerInfo;
|
|
74
|
+
this.answerInfoToggle.emit({ open: this.showAnswerInfo, id: (_a = this.model) === null || _a === void 0 ? void 0 : _a.nodeId });
|
|
75
|
+
if (this.showAnswerInfo) {
|
|
76
|
+
const button = event.currentTarget;
|
|
77
|
+
const rect = button.getBoundingClientRect();
|
|
78
|
+
this.dialogPosition = {
|
|
79
|
+
top: rect.top + 10,
|
|
80
|
+
right: window.innerWidth - rect.right - 10 // distance from right edge
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.dialogPosition = null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
closeInfo(silent = true) {
|
|
88
|
+
var _a;
|
|
89
|
+
if (!this.showAnswerInfo) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.showAnswerInfo = false;
|
|
93
|
+
this.dialogPosition = null;
|
|
94
|
+
if (!silent) {
|
|
95
|
+
this.answerInfoToggle.emit({ open: false, id: (_a = this.model) === null || _a === void 0 ? void 0 : _a.nodeId });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
handleFocusFreeInput(event) {
|
|
99
|
+
this._waitForInput = true;
|
|
100
|
+
}
|
|
101
|
+
handleBlurFreeInput(event) {
|
|
102
|
+
this._waitForInput = false;
|
|
103
|
+
}
|
|
104
|
+
handleKeyDownFreeInput(event) {
|
|
105
|
+
if (event.keyCode === 13) {
|
|
106
|
+
this._waitForInput = false;
|
|
107
|
+
this.select.next(this.freeInput);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
handleFocusInqNumber(event) {
|
|
111
|
+
this._waitForInqValue = true;
|
|
112
|
+
}
|
|
113
|
+
handleBlurInqNumber(event) {
|
|
114
|
+
this._waitForInqValue = !this.validateInqNumber(event);
|
|
115
|
+
}
|
|
116
|
+
handleKeyDownInqNumber(event) {
|
|
117
|
+
if (event.keyCode === 13) {
|
|
118
|
+
this._waitForInqValue = false;
|
|
119
|
+
this.model.inqNumber = this.inqNumberModel;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
onZoomImage() {
|
|
123
|
+
this.magnifierClick.next(this.model);
|
|
124
|
+
}
|
|
125
|
+
validateInqNumber(event) {
|
|
126
|
+
const currentValue = Number(this.inqNumberModel);
|
|
127
|
+
const minValue = this.model.minNumber;
|
|
128
|
+
const maxValue = this.model.maxNumber;
|
|
129
|
+
if (currentValue < minValue) {
|
|
130
|
+
this.inqNumberError = true;
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
else if (currentValue > maxValue) {
|
|
134
|
+
this.inqNumberError = true;
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.inqNumberError = false;
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
replaceTranslationValues(translation, min, max) {
|
|
143
|
+
const parts = translation.split('(|~)');
|
|
144
|
+
// We are doing this the dirtyway
|
|
145
|
+
return parts[0] + ' ' + min + ' ' + parts[1] + ' ' + max + ' ' + parts[2];
|
|
146
|
+
}
|
|
147
|
+
_checkVisibility(entries) {
|
|
148
|
+
this._configuratorConnectorService.extendWithAnswerTextAndImage(this.model, false);
|
|
149
|
+
}
|
|
150
|
+
_getThumbnailImage() {
|
|
151
|
+
if (!this.model.imageData) {
|
|
152
|
+
this._configuratorConnectorService.extendWithAnswerTextAndImage(this.model, false);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
AnswerCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswerCardComponent, deps: [{ token: i1.SettingsService }, { token: i2.IconCacheService }, { token: i3.ConfiguratorConnectorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
157
|
+
AnswerCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AnswerCardComponent, selector: "co-answer-card", inputs: { model: "model", valutaSymbol: "valutaSymbol", showing: "showing", isSelected: "isSelected", isSmallModus: "isSmallModus", freeInput: "freeInput" }, outputs: { freeInputChange: "freeInputChange", inqNumberChange: "inqNumberChange", select: "select", selectWithInq: "selectWithInq", magnifierClick: "magnifierClick", answerInfoToggle: "answerInfoToggle" }, host: { properties: { "class.co-answer-card": "this.showClass", "class.active-info": "this.activeInfoClass", "class.small-mode": "this.isSmallModus" } }, ngImport: i0, template: `
|
|
158
|
+
<co-card
|
|
159
|
+
[imageData]="model?.imageData"
|
|
160
|
+
[description]="(model?.userInput ? '' : (model?.commercialAnswer || model?.answer)) | googleTranslate | async"
|
|
161
|
+
[hasInfoButton]="model?.infoAvailable"
|
|
162
|
+
[hasMagnifierButton]="model?.imageData ? settingsService.settings.options.showZoomButton : false"
|
|
163
|
+
[isSelected]="isSelected"
|
|
164
|
+
[price]="model?.price"
|
|
165
|
+
[level]="!settingsService.settings.options.showStockStatus ? false : model?.stock"
|
|
166
|
+
(contentClick)="onContentClick()"
|
|
167
|
+
(click)="handleClick($event)"
|
|
168
|
+
(infoButtonClick)="onInfoButtonClick($event)"
|
|
169
|
+
(magnifierButtonClick)="onZoomImage()">
|
|
170
|
+
<div *ngIf="model?.userInput" class="free-answer">
|
|
171
|
+
<co-input-text
|
|
172
|
+
[label]="(model?.commercialAnswer ? model?.commercialAnswer : model?.answer) | googleTranslate | async"
|
|
173
|
+
[model]="freeInput"
|
|
174
|
+
(modelChange)="freeInput = $event; freeInputChange.emit($event)"
|
|
175
|
+
(focus)="handleFocusFreeInput($event)"
|
|
176
|
+
(blur)="handleBlurFreeInput($event)"
|
|
177
|
+
(keydown)="handleKeyDownFreeInput($event)">
|
|
178
|
+
</co-input-text>
|
|
179
|
+
|
|
180
|
+
<button (click)="freeInputChange.emit(freeInput)" title="{{'SAVE' | localize}}">
|
|
181
|
+
<co-icon [iconData]="iconService.getIcon(icons.CheckSolid)"></co-icon>
|
|
182
|
+
</button>
|
|
183
|
+
</div>
|
|
184
|
+
<co-answer-info-dialog
|
|
185
|
+
*ngIf="showAnswerInfo"
|
|
186
|
+
[answer]="model"
|
|
187
|
+
[fixedPosition]="dialogPosition"
|
|
188
|
+
(click)="onInfoButtonClick($event)"
|
|
189
|
+
(nothingToShow)="closeInfo(false)">
|
|
190
|
+
</co-answer-info-dialog>
|
|
191
|
+
<div *ngIf="model?.inquireNbrMode && model?.minNumber && model?.maxNumber" class="free-answer">
|
|
192
|
+
<co-input-text
|
|
193
|
+
[noValidation]="true"
|
|
194
|
+
[label]="'AMOUNT' | localize"
|
|
195
|
+
[model]="inqNumberModel"
|
|
196
|
+
(modelChange)="inqNumberModel = $event; inqNumberChange.emit($event)"
|
|
197
|
+
(focus)="handleFocusInqNumber($event)"
|
|
198
|
+
(blur)="handleBlurInqNumber($event)"
|
|
199
|
+
(keydown)="handleKeyDownInqNumber($event)">
|
|
200
|
+
</co-input-text>
|
|
201
|
+
|
|
202
|
+
<button (click)="inqNumberChange.emit(inqNumberModel)" title="{{'SAVE' | localize}}">
|
|
203
|
+
<co-icon [iconData]="iconService.getIcon(icons.CheckSolid)"></co-icon>
|
|
204
|
+
</button>
|
|
205
|
+
|
|
206
|
+
<span
|
|
207
|
+
class="amount-validation-error"
|
|
208
|
+
*ngIf="inqNumberError"
|
|
209
|
+
[textContent]="replaceTranslationValues('AMOUNT_ERROR' | localize, this.model.minNumber, this.model.maxNumber)">
|
|
210
|
+
</span>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
</co-card>
|
|
214
|
+
`, isInline: true, components: [{ type: i4.CardComponent, selector: "co-card", inputs: ["isSelected", "isSmallModus", "hasMagnifierButton", "hasInfoButton", "imageData", "description", "price", "level"], outputs: ["contentClick", "infoButtonClick", "magnifierButtonClick"] }, { type: i4.InputTextComponent, selector: "co-input-text", inputs: ["useContent", "placeholder", "align", "type", "pattern", "digitsOnly", "excludePlusMinus", "showClearButton", "showPlaceholderOnFocus", "selectOnFocus", "emptyPlace", "firstDayOfWeek", "noStyle", "hideArrowButtons", "model", "formatPipe", "min", "max", "keyDownWhiteList", "leftIcon", "rightIcon", "leftIconData", "rightIconData"], outputs: ["leftIconClick", "leftIconMouseDown", "leftIconMouseUp", "rightIconClick", "rightIconMouseDown", "rightIconMouseUp", "clearIconClick", "isFocused"] }, { type: i4.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }, { type: i5.AnswersInfoDialogComponent, selector: "co-answer-info-dialog", inputs: ["answer", "structure", "fixedPosition"], outputs: ["nothingToShow"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i6.AsyncPipe, "googleTranslate": i7.GoogleTranslatePipe, "localize": i8.LocalizePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswerCardComponent, decorators: [{
|
|
216
|
+
type: Component,
|
|
217
|
+
args: [{
|
|
218
|
+
selector: 'co-answer-card',
|
|
219
|
+
template: `
|
|
220
|
+
<co-card
|
|
221
|
+
[imageData]="model?.imageData"
|
|
222
|
+
[description]="(model?.userInput ? '' : (model?.commercialAnswer || model?.answer)) | googleTranslate | async"
|
|
223
|
+
[hasInfoButton]="model?.infoAvailable"
|
|
224
|
+
[hasMagnifierButton]="model?.imageData ? settingsService.settings.options.showZoomButton : false"
|
|
225
|
+
[isSelected]="isSelected"
|
|
226
|
+
[price]="model?.price"
|
|
227
|
+
[level]="!settingsService.settings.options.showStockStatus ? false : model?.stock"
|
|
228
|
+
(contentClick)="onContentClick()"
|
|
229
|
+
(click)="handleClick($event)"
|
|
230
|
+
(infoButtonClick)="onInfoButtonClick($event)"
|
|
231
|
+
(magnifierButtonClick)="onZoomImage()">
|
|
232
|
+
<div *ngIf="model?.userInput" class="free-answer">
|
|
233
|
+
<co-input-text
|
|
234
|
+
[label]="(model?.commercialAnswer ? model?.commercialAnswer : model?.answer) | googleTranslate | async"
|
|
235
|
+
[model]="freeInput"
|
|
236
|
+
(modelChange)="freeInput = $event; freeInputChange.emit($event)"
|
|
237
|
+
(focus)="handleFocusFreeInput($event)"
|
|
238
|
+
(blur)="handleBlurFreeInput($event)"
|
|
239
|
+
(keydown)="handleKeyDownFreeInput($event)">
|
|
240
|
+
</co-input-text>
|
|
241
|
+
|
|
242
|
+
<button (click)="freeInputChange.emit(freeInput)" title="{{'SAVE' | localize}}">
|
|
243
|
+
<co-icon [iconData]="iconService.getIcon(icons.CheckSolid)"></co-icon>
|
|
244
|
+
</button>
|
|
245
|
+
</div>
|
|
246
|
+
<co-answer-info-dialog
|
|
247
|
+
*ngIf="showAnswerInfo"
|
|
248
|
+
[answer]="model"
|
|
249
|
+
[fixedPosition]="dialogPosition"
|
|
250
|
+
(click)="onInfoButtonClick($event)"
|
|
251
|
+
(nothingToShow)="closeInfo(false)">
|
|
252
|
+
</co-answer-info-dialog>
|
|
253
|
+
<div *ngIf="model?.inquireNbrMode && model?.minNumber && model?.maxNumber" class="free-answer">
|
|
254
|
+
<co-input-text
|
|
255
|
+
[noValidation]="true"
|
|
256
|
+
[label]="'AMOUNT' | localize"
|
|
257
|
+
[model]="inqNumberModel"
|
|
258
|
+
(modelChange)="inqNumberModel = $event; inqNumberChange.emit($event)"
|
|
259
|
+
(focus)="handleFocusInqNumber($event)"
|
|
260
|
+
(blur)="handleBlurInqNumber($event)"
|
|
261
|
+
(keydown)="handleKeyDownInqNumber($event)">
|
|
262
|
+
</co-input-text>
|
|
263
|
+
|
|
264
|
+
<button (click)="inqNumberChange.emit(inqNumberModel)" title="{{'SAVE' | localize}}">
|
|
265
|
+
<co-icon [iconData]="iconService.getIcon(icons.CheckSolid)"></co-icon>
|
|
266
|
+
</button>
|
|
267
|
+
|
|
268
|
+
<span
|
|
269
|
+
class="amount-validation-error"
|
|
270
|
+
*ngIf="inqNumberError"
|
|
271
|
+
[textContent]="replaceTranslationValues('AMOUNT_ERROR' | localize, this.model.minNumber, this.model.maxNumber)">
|
|
272
|
+
</span>
|
|
273
|
+
</div>
|
|
274
|
+
|
|
275
|
+
</co-card>
|
|
276
|
+
`,
|
|
277
|
+
encapsulation: ViewEncapsulation.None
|
|
278
|
+
}]
|
|
279
|
+
}], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i2.IconCacheService }, { type: i3.ConfiguratorConnectorService }]; }, propDecorators: { showClass: [{
|
|
280
|
+
type: HostBinding,
|
|
281
|
+
args: ['class.co-answer-card']
|
|
282
|
+
}], activeInfoClass: [{
|
|
283
|
+
type: HostBinding,
|
|
284
|
+
args: ['class.active-info']
|
|
285
|
+
}], model: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], valutaSymbol: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], showing: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], isSelected: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], isSmallModus: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}, {
|
|
296
|
+
type: HostBinding,
|
|
297
|
+
args: ['class.small-mode']
|
|
298
|
+
}], freeInput: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], freeInputChange: [{
|
|
301
|
+
type: Output
|
|
302
|
+
}], inqNumberChange: [{
|
|
303
|
+
type: Output
|
|
304
|
+
}], select: [{
|
|
305
|
+
type: Output
|
|
306
|
+
}], selectWithInq: [{
|
|
307
|
+
type: Output
|
|
308
|
+
}], magnifierClick: [{
|
|
309
|
+
type: Output
|
|
310
|
+
}], answerInfoToggle: [{
|
|
311
|
+
type: Output
|
|
312
|
+
}] } });
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9hbnN3ZXItY2FyZC9hbnN3ZXItY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFLN0csT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBZ0U5QyxNQUFNLE9BQU8sbUJBQW1CO0lBbUU5QixZQUNTLGVBQWdDLEVBQ2hDLFdBQTZCLEVBQzVCLDZCQUEyRDtRQUY1RCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzVCLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBOEI7UUFwRXJFLHNEQUFzRDtRQUN0RCwyQkFBMkI7UUFDM0IsZ0NBQWdDO1FBQ2hCLFVBQUssR0FBb0IsUUFBUSxDQUFDO1FBaUIzQyxpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQW9CbEIsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUduRSxvQkFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBR25FLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUcxRCxrQkFBYSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBR2pFLG1CQUFjLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHbEUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQWlDLENBQUM7UUFFOUUsbUJBQWMsR0FBMEMsSUFBSSxDQUFDO1FBRzdELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLG1CQUFjLEdBQVksS0FBSyxDQUFD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QUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3pCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3BGO0lBQ0gsQ0FBQzs7aUhBck1VLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDZqQkE1RHBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RFQ7NEZBR1UsbUJBQW1CO2tCQTlEL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlEVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7Z0xBU1EsU0FBUztzQkFEZixXQUFXO3VCQUFDLHNCQUFzQjtnQkFNL0IsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBT3pCLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlLLE9BQU87c0JBRGpCLEtBQUs7Z0JBUUMsVUFBVTtzQkFEaEIsS0FBSztnQkFLQyxZQUFZO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGtCQUFrQjtnQkFJeEIsU0FBUztzQkFEZixLQUFLO2dCQUlVLGVBQWU7c0JBRDlCLE1BQU07Z0JBSVMsZUFBZTtzQkFEOUIsTUFBTTtnQkFJUyxNQUFNO3NCQURyQixNQUFNO2dCQUlTLGFBQWE7c0JBRDVCLE1BQU07Z0JBSVMsY0FBYztzQkFEN0IsTUFBTTtnQkFJUyxnQkFBZ0I7c0JBRC9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QW5zd2VyfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2Fuc3dlcic7XHJcbmltcG9ydCB7Q29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlndXJhdG9yLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tYW5zd2VyLWNhcmQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tY2FyZFxyXG4gICAgICBbaW1hZ2VEYXRhXT1cIm1vZGVsPy5pbWFnZURhdGFcIlxyXG4gICAgICBbZGVzY3JpcHRpb25dPVwiKG1vZGVsPy51c2VySW5wdXQgPyAnJyA6IChtb2RlbD8uY29tbWVyY2lhbEFuc3dlciB8fCBtb2RlbD8uYW5zd2VyKSkgfCBnb29nbGVUcmFuc2xhdGUgfCBhc3luY1wiXHJcbiAgICAgIFtoYXNJbmZvQnV0dG9uXT1cIm1vZGVsPy5pbmZvQXZhaWxhYmxlXCJcclxuICAgICAgW2hhc01hZ25pZmllckJ1dHRvbl09XCJtb2RlbD8uaW1hZ2VEYXRhID8gc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLm9wdGlvbnMuc2hvd1pvb21CdXR0b24gOiBmYWxzZVwiXHJcbiAgICAgIFtpc1NlbGVjdGVkXT1cImlzU2VsZWN0ZWRcIlxyXG4gICAgICBbcHJpY2VdPVwibW9kZWw/LnByaWNlXCJcclxuICAgICAgW2xldmVsXT1cIiFzZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3Mub3B0aW9ucy5zaG93U3RvY2tTdGF0dXMgPyBmYWxzZSA6IG1vZGVsPy5zdG9ja1wiXHJcbiAgICAgIChjb250ZW50Q2xpY2spPVwib25Db250ZW50Q2xpY2soKVwiXHJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgKGluZm9CdXR0b25DbGljayk9XCJvbkluZm9CdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgICAgKG1hZ25pZmllckJ1dHRvbkNsaWNrKT1cIm9uWm9vbUltYWdlKClcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cIm1vZGVsPy51c2VySW5wdXRcIiBjbGFzcz1cImZyZWUtYW5zd2VyXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgIFtsYWJlbF09XCIobW9kZWw/LmNvbW1lcmNpYWxBbnN3ZXIgPyBtb2RlbD8uY29tbWVyY2lhbEFuc3dlciA6IG1vZGVsPy5hbnN3ZXIpIHwgZ29vZ2xlVHJhbnNsYXRlIHwgYXN5bmNcIlxyXG4gICAgICAgICAgW21vZGVsXT1cImZyZWVJbnB1dFwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZnJlZUlucHV0ID0gJGV2ZW50OyBmcmVlSW5wdXRDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgIChmb2N1cyk9XCJoYW5kbGVGb2N1c0ZyZWVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgIChibHVyKT1cImhhbmRsZUJsdXJGcmVlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duRnJlZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICA8L2NvLWlucHV0LXRleHQ+XHJcblxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImZyZWVJbnB1dENoYW5nZS5lbWl0KGZyZWVJbnB1dClcIiB0aXRsZT1cInt7J1NBVkUnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tTb2xpZClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Y28tYW5zd2VyLWluZm8tZGlhbG9nXHJcbiAgICAgICAgKm5nSWY9XCJzaG93QW5zd2VySW5mb1wiXHJcbiAgICAgICAgW2Fuc3dlcl09XCJtb2RlbFwiXHJcbiAgICAgICAgW2ZpeGVkUG9zaXRpb25dPVwiZGlhbG9nUG9zaXRpb25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkluZm9CdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobm90aGluZ1RvU2hvdyk9XCJjbG9zZUluZm8oZmFsc2UpXCI+XHJcbiAgICAgIDwvY28tYW5zd2VyLWluZm8tZGlhbG9nPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibW9kZWw/LmlucXVpcmVOYnJNb2RlICYmIG1vZGVsPy5taW5OdW1iZXIgJiYgbW9kZWw/Lm1heE51bWJlclwiIGNsYXNzPVwiZnJlZS1hbnN3ZXJcIj5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgW25vVmFsaWRhdGlvbl09XCJ0cnVlXCJcclxuICAgICAgICAgIFtsYWJlbF09XCInQU1PVU5UJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFttb2RlbF09XCJpbnFOdW1iZXJNb2RlbFwiXHJcbiAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaW5xTnVtYmVyTW9kZWwgPSAkZXZlbnQ7IGlucU51bWJlckNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgKGZvY3VzKT1cImhhbmRsZUZvY3VzSW5xTnVtYmVyKCRldmVudClcIlxyXG4gICAgICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cklucU51bWJlcigkZXZlbnQpXCJcclxuICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleURvd25JbnFOdW1iZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICBcclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJpbnFOdW1iZXJDaGFuZ2UuZW1pdChpbnFOdW1iZXJNb2RlbClcIiB0aXRsZT1cInt7J1NBVkUnIHwgbG9jYWxpemV9fVwiPlxyXG4gICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tTb2xpZClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPHNwYW4gXHJcbiAgICAgICAgICBjbGFzcz1cImFtb3VudC12YWxpZGF0aW9uLWVycm9yXCIgXHJcbiAgICAgICAgICAqbmdJZj1cImlucU51bWJlckVycm9yXCJcclxuICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJyZXBsYWNlVHJhbnNsYXRpb25WYWx1ZXMoJ0FNT1VOVF9FUlJPUicgfCBsb2NhbGl6ZSwgdGhpcy5tb2RlbC5taW5OdW1iZXIsIHRoaXMubW9kZWwubWF4TnVtYmVyKVwiPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9jby1jYXJkPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5zd2VyQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vIFRPRE8gY2hlY2sgd2h5IGNvLWNhcmQgaXMgbWlzc2luZyB0aGVzZSB0d28gaW4gdjEyLlxyXG4gIC8vIFtzaG93SW1hZ2VMb2FkZXJdPVwidHJ1ZVwiXHJcbiAgLy8gW3ZhbHV0YVN5bWJvbF09XCJ2YWx1dGFTeW1ib2xcIlxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb25FbnVtID0gSWNvbkVudW07XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tYW5zd2VyLWNhcmQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlLWluZm8nKVxyXG4gIGdldCBhY3RpdmVJbmZvQ2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93QW5zd2VySW5mbztcclxuICB9XHJcblxyXG4gIC8vIHRvZG8gaW50cm9kdWNlIEFuc3dlclZpZXdNb2RlbCBleHRlbmRzIEFuc3dlciB3aGljaCBoYXMgcHJpY2VGb3JEaXNwbGF5IGFuZCBzdG9jayBwcm9wcyB0byBhdm9pZCAnIHwgYW55JyBpbiB0aGlzIHR5cGUgZGVjbGFyYXRpb25cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtb2RlbDogQW5zd2VyIHwgYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2YWx1dGFTeW1ib2w6IHN0cmluZyA9ICfigqwnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc2hvd2luZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2dldFRodW1ibmFpbEltYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1NlbGVjdGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc21hbGwtbW9kZScpXHJcbiAgcHVibGljIGlzU21hbGxNb2R1czogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZnJlZUlucHV0OiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBmcmVlSW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBpbnFOdW1iZXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RXaXRoSW5xOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgbWFnbmlmaWVyQ2xpY2s6IEV2ZW50RW1pdHRlcjxBbnN3ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxBbnN3ZXI+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBhbnN3ZXJJbmZvVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjx7IG9wZW46IGJvb2xlYW47IGlkOiBzdHJpbmcgfT4oKTtcclxuXHJcbiAgcHVibGljIGRpYWxvZ1Bvc2l0aW9uOiB7IHRvcDogbnVtYmVyLCByaWdodDogbnVtYmVyIH0gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHVibGljIGlucU51bWJlck1vZGVsOiBzdHJpbmc7XHJcbiAgcHVibGljIGlucU51bWJlckVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dBbnN3ZXJJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfd2FpdEZvcklucHV0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfd2FpdEZvcklucVZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlucU51bWJlck1vZGVsID0gdGhpcy5tb2RlbC5kZWZhdWx0TnVtYmVyO1xyXG4gICAgLy8gSWYgd2Ugd29yayB3aXRoIGluZ051bWJlcnMsIHdlIHNob3VsZCBhbHNvIGNoYW5nZSB0aGUgdGhpcy5tb2RlbC5pbmdOdW1iZXIgdmFsdWUgaGVyZVxyXG4gICAgLy8gc28gd2UgY2hhbmdlIHRoZSBkZWZhdWx0IDEgdmFsdWUgdG8gdGhlIGRlZmF1bHQgdmFsdWVcclxuICAgIGlmICh0aGlzLm1vZGVsPy5pbnF1aXJlTmJyTW9kZSAmJiB0aGlzLm1vZGVsPy5taW5OdW1iZXIgJiYgdGhpcy5tb2RlbD8ubWF4TnVtYmVyKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuaW5xTnVtYmVyID0gdGhpcy5tb2RlbC5kZWZhdWx0TnVtYmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ29udGVudENsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl93YWl0Rm9ySW5wdXQgJiYgKHRoaXMubW9kZWwuaW5xdWlyZU5ick1vZGUgPT09ICdGJyB8fCB0aGlzLm1vZGVsLmlucXVpcmVOYnJNb2RlID09PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0LmVtaXQodGhpcy5mcmVlSW5wdXQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl93YWl0Rm9ySW5xVmFsdWUgJiYgdGhpcy5tb2RlbC5pbnF1aXJlTmJyTW9kZSA9PT0gJ1QnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuaW5xTnVtYmVyID0gTnVtYmVyKHRoaXMuaW5xTnVtYmVyTW9kZWwpO1xyXG4gICAgICB0aGlzLnNlbGVjdC5uZXh0KHRoaXMuaW5xTnVtYmVyTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkluZm9CdXR0b25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5zaG93QW5zd2VySW5mbyA9ICF0aGlzLnNob3dBbnN3ZXJJbmZvO1xyXG4gICAgdGhpcy5hbnN3ZXJJbmZvVG9nZ2xlLmVtaXQoe29wZW46IHRoaXMuc2hvd0Fuc3dlckluZm8sIGlkOiB0aGlzLm1vZGVsPy5ub2RlSWR9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93QW5zd2VySW5mbykge1xyXG4gICAgICBjb25zdCBidXR0b24gPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBjb25zdCByZWN0ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1Bvc2l0aW9uID0ge1xyXG4gICAgICAgIHRvcDogcmVjdC50b3AgKyAxMCxcclxuICAgICAgICByaWdodDogd2luZG93LmlubmVyV2lkdGggLSByZWN0LnJpZ2h0IC0gMTAgLy8gZGlzdGFuY2UgZnJvbSByaWdodCBlZGdlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1Bvc2l0aW9uID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VJbmZvKHNpbGVudCA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG93QW5zd2VySW5mbykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dBbnN3ZXJJbmZvID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpYWxvZ1Bvc2l0aW9uID0gbnVsbDtcclxuICAgIGlmICghc2lsZW50KSB7XHJcbiAgICAgIHRoaXMuYW5zd2VySW5mb1RvZ2dsZS5lbWl0KHtvcGVuOiBmYWxzZSwgaWQ6IHRoaXMubW9kZWw/Lm5vZGVJZH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUZvY3VzRnJlZUlucHV0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl93YWl0Rm9ySW5wdXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJsdXJGcmVlSW5wdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dhaXRGb3JJbnB1dCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUtleURvd25GcmVlSW5wdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMykge1xyXG4gICAgICB0aGlzLl93YWl0Rm9ySW5wdXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZWxlY3QubmV4dCh0aGlzLmZyZWVJbnB1dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRm9jdXNJbnFOdW1iZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dhaXRGb3JJbnFWYWx1ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQmx1cklucU51bWJlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd2FpdEZvcklucVZhbHVlID0gIXRoaXMudmFsaWRhdGVJbnFOdW1iZXIoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUtleURvd25JbnFOdW1iZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSAxMykge1xyXG4gICAgICB0aGlzLl93YWl0Rm9ySW5xVmFsdWUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5tb2RlbC5pbnFOdW1iZXIgPSB0aGlzLmlucU51bWJlck1vZGVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uWm9vbUltYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYWduaWZpZXJDbGljay5uZXh0KHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlSW5xTnVtYmVyKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjdXJyZW50VmFsdWU6IG51bWJlciA9IE51bWJlcih0aGlzLmlucU51bWJlck1vZGVsKTtcclxuICAgIGNvbnN0IG1pblZhbHVlOiBudW1iZXIgPSB0aGlzLm1vZGVsLm1pbk51bWJlcjtcclxuICAgIGNvbnN0IG1heFZhbHVlOiBudW1iZXIgPSB0aGlzLm1vZGVsLm1heE51bWJlcjtcclxuXHJcbiAgICBpZiAoY3VycmVudFZhbHVlIDwgbWluVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbnFOdW1iZXJFcnJvciA9IHRydWU7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAoY3VycmVudFZhbHVlID4gbWF4VmFsdWUpIHtcclxuICAgICAgdGhpcy5pbnFOdW1iZXJFcnJvciA9IHRydWU7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5xTnVtYmVyRXJyb3IgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlcGxhY2VUcmFuc2xhdGlvblZhbHVlcyh0cmFuc2xhdGlvbjogc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcGFydHMgPSB0cmFuc2xhdGlvbi5zcGxpdCgnKHx+KScpO1xyXG4gICAgLy8gV2UgYXJlIGRvaW5nIHRoaXMgdGhlIGRpcnR5d2F5XHJcbiAgICByZXR1cm4gcGFydHNbMF0gKyAnICcgKyBtaW4gKyAnICcgKyBwYXJ0c1sxXSArICcgJyArIG1heCArICcgJyArIHBhcnRzWzJdO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgX2NoZWNrVmlzaWJpbGl0eShlbnRyaWVzKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmV4dGVuZFdpdGhBbnN3ZXJUZXh0QW5kSW1hZ2UodGhpcy5tb2RlbCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0VGh1bWJuYWlsSW1hZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwuaW1hZ2VEYXRhKSB7XHJcbiAgICAgIHRoaXMuX2NvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2UuZXh0ZW5kV2l0aEFuc3dlclRleHRBbmRJbWFnZSh0aGlzLm1vZGVsLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { AnswerCardComponent } from './answer-card.component';
|
|
3
|
+
import { CardModule, IconModule, InputTextModule } from '@colijnit/corecomponents_v12';
|
|
4
|
+
import { PipesModule } from '../../pipes/pipes.module';
|
|
5
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
6
|
+
import { AnswersInfoDialogModule } from '../answer-info-dialog/answer-info-dialog.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class AnswerCardModule {
|
|
9
|
+
}
|
|
10
|
+
AnswerCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswerCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
AnswerCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswerCardModule, declarations: [AnswerCardComponent], imports: [CardModule,
|
|
12
|
+
PipesModule,
|
|
13
|
+
CardModule,
|
|
14
|
+
InputTextModule,
|
|
15
|
+
BrowserModule,
|
|
16
|
+
IconModule,
|
|
17
|
+
AnswersInfoDialogModule,
|
|
18
|
+
CardModule], exports: [AnswerCardComponent] });
|
|
19
|
+
AnswerCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswerCardModule, imports: [[
|
|
20
|
+
CardModule,
|
|
21
|
+
PipesModule,
|
|
22
|
+
CardModule,
|
|
23
|
+
InputTextModule,
|
|
24
|
+
BrowserModule,
|
|
25
|
+
IconModule,
|
|
26
|
+
AnswersInfoDialogModule,
|
|
27
|
+
CardModule
|
|
28
|
+
]] });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswerCardModule, decorators: [{
|
|
30
|
+
type: NgModule,
|
|
31
|
+
args: [{
|
|
32
|
+
imports: [
|
|
33
|
+
CardModule,
|
|
34
|
+
PipesModule,
|
|
35
|
+
CardModule,
|
|
36
|
+
InputTextModule,
|
|
37
|
+
BrowserModule,
|
|
38
|
+
IconModule,
|
|
39
|
+
AnswersInfoDialogModule,
|
|
40
|
+
CardModule
|
|
41
|
+
],
|
|
42
|
+
declarations: [
|
|
43
|
+
AnswerCardComponent,
|
|
44
|
+
],
|
|
45
|
+
exports: [
|
|
46
|
+
AnswerCardComponent
|
|
47
|
+
]
|
|
48
|
+
}]
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLWNhcmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29uZmlndXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9hbnN3ZXItY2FyZC9hbnN3ZXItY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOztBQXFCeEYsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQVB6QixtQkFBbUIsYUFWbkIsVUFBVTtRQUNWLFdBQVc7UUFDWCxVQUFVO1FBQ1YsZUFBZTtRQUNmLGFBQWE7UUFDYixVQUFVO1FBQ1YsdUJBQXVCO1FBQ3ZCLFVBQVUsYUFNVixtQkFBbUI7K0dBSVYsZ0JBQWdCLFlBbEJsQjtZQUNQLFVBQVU7WUFDVixXQUFXO1lBQ1gsVUFBVTtZQUNWLGVBQWU7WUFDZixhQUFhO1lBQ2IsVUFBVTtZQUNWLHVCQUF1QjtZQUN2QixVQUFVO1NBQ1g7NEZBU1UsZ0JBQWdCO2tCQW5CNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsdUJBQXVCO3dCQUN2QixVQUFVO3FCQUNYO29CQUNELFlBQVksRUFBRTt3QkFDWixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QW5zd2VyQ2FyZENvbXBvbmVudH0gZnJvbSAnLi9hbnN3ZXItY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NhcmRNb2R1bGUsIEljb25Nb2R1bGUsIElucHV0VGV4dE1vZHVsZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7UGlwZXNNb2R1bGV9IGZyb20gJy4uLy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcbmltcG9ydCB7QnJvd3Nlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7QW5zd2Vyc0luZm9EaWFsb2dNb2R1bGV9IGZyb20gJy4uL2Fuc3dlci1pbmZvLWRpYWxvZy9hbnN3ZXItaW5mby1kaWFsb2cubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ2FyZE1vZHVsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgQ2FyZE1vZHVsZSxcclxuICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICBJY29uTW9kdWxlLFxyXG4gICAgQW5zd2Vyc0luZm9EaWFsb2dNb2R1bGUsXHJcbiAgICBDYXJkTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFuc3dlckNhcmRDb21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBbnN3ZXJDYXJkQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFuc3dlckNhcmRNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { IconEnum } from '../../enum/icon.enum';
|
|
4
|
+
import { isNill } from '@colijnit/configuratorapi/build/utils/function/is-nill.function';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/icon-cache.service";
|
|
7
|
+
import * as i2 from "../../services/settings.service";
|
|
8
|
+
import * as i3 from "../../services/configurator-connector.service";
|
|
9
|
+
import * as i4 from "@angular/platform-browser";
|
|
10
|
+
import * as i5 from "@colijnit/corecomponents_v12";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
import * as i7 from "../../pipes/localize.pipe";
|
|
13
|
+
export class AnswersInfoDialogComponent {
|
|
14
|
+
constructor(iconService, _settingsService, _configuratorConnectorService, _sanitizer) {
|
|
15
|
+
this.iconService = iconService;
|
|
16
|
+
this._settingsService = _settingsService;
|
|
17
|
+
this._configuratorConnectorService = _configuratorConnectorService;
|
|
18
|
+
this._sanitizer = _sanitizer;
|
|
19
|
+
this.icons = IconEnum;
|
|
20
|
+
this.fixedPosition = null;
|
|
21
|
+
this.nothingToShow = new EventEmitter();
|
|
22
|
+
this.answerText = '';
|
|
23
|
+
this.answerImage = '';
|
|
24
|
+
this.answerHtml = '';
|
|
25
|
+
this.textLoading = false;
|
|
26
|
+
this.textError = '';
|
|
27
|
+
this.showTooltip = false;
|
|
28
|
+
this.showPopup = false;
|
|
29
|
+
this.hasEmbed = false;
|
|
30
|
+
}
|
|
31
|
+
showClass() {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
this.textLoading = true;
|
|
37
|
+
try {
|
|
38
|
+
yield this._loadInfo();
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
this.textError = e ? e.message : 'Failed to load info.';
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
this.textLoading = false;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
_loadInfo() {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
let items = [];
|
|
51
|
+
if (this.answer) {
|
|
52
|
+
// Case 1: called with Answer
|
|
53
|
+
items = yield this._configuratorConnectorService.getAnswerInfo(this.answer);
|
|
54
|
+
this.answerImage = yield this._configuratorConnectorService.getMoodImageForInfoDialog(this.answer);
|
|
55
|
+
}
|
|
56
|
+
else if (this.structure) {
|
|
57
|
+
// Case 2: called with SelectorStructure
|
|
58
|
+
items = yield this._configuratorConnectorService.getStructureInfo(this.structure);
|
|
59
|
+
}
|
|
60
|
+
// Common content building logic
|
|
61
|
+
const formatted = this._formatAnswerInfo(items);
|
|
62
|
+
this.answerText = /<[^>]+>/.test(formatted)
|
|
63
|
+
? formatted
|
|
64
|
+
: formatted.replace(/\n/g, '<br>');
|
|
65
|
+
if (/<iframe|<embed/i.test(this.answerText)) {
|
|
66
|
+
this.answerImage = '';
|
|
67
|
+
this.hasEmbed = true;
|
|
68
|
+
}
|
|
69
|
+
this.answerHtml = this._sanitizer.bypassSecurityTrustHtml(this.answerText);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
_formatAnswerInfo(items) {
|
|
73
|
+
if (!items || items.length === 0) {
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
const textParts = [];
|
|
77
|
+
let includesShort = false;
|
|
78
|
+
let includesLong = false;
|
|
79
|
+
for (const articleText of items) {
|
|
80
|
+
if (!articleText.text) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (isNill(articleText.publication) || ((articleText.publication & this._settingsService.settings.infoPublicationCode) > 0)) {
|
|
84
|
+
const body = articleText.text.trim();
|
|
85
|
+
const label = articleText.description ? articleText.description.trim() : '';
|
|
86
|
+
const textPublication = articleText.textType;
|
|
87
|
+
const bodyHasHtml = /<[^>]+>/.test(body);
|
|
88
|
+
if ((textPublication & 1 /* ShortDescription */) > 0) {
|
|
89
|
+
includesShort = true;
|
|
90
|
+
textParts.push(body || label);
|
|
91
|
+
}
|
|
92
|
+
if ((textPublication & 2 /* Description */) > 0) {
|
|
93
|
+
includesLong = true;
|
|
94
|
+
if (label && body) {
|
|
95
|
+
textParts.push(bodyHasHtml ? `<p class="info-heading">${label}</p>${body}` : `${label}\n${body}`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
textParts.push(body || label);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (includesShort) {
|
|
104
|
+
this.showTooltip = true;
|
|
105
|
+
this.showPopup = false;
|
|
106
|
+
return textParts.join('\n\n---\n\n');
|
|
107
|
+
}
|
|
108
|
+
if (includesLong) {
|
|
109
|
+
this.showPopup = true;
|
|
110
|
+
this.showTooltip = false;
|
|
111
|
+
return textParts.join('\n\n---\n\n');
|
|
112
|
+
}
|
|
113
|
+
this.showTooltip = false;
|
|
114
|
+
this.showPopup = false;
|
|
115
|
+
this.nothingToShow.emit();
|
|
116
|
+
return '';
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
AnswersInfoDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswersInfoDialogComponent, deps: [{ token: i1.IconCacheService }, { token: i2.SettingsService }, { token: i3.ConfiguratorConnectorService }, { token: i4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
+
AnswersInfoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AnswersInfoDialogComponent, selector: "co-answer-info-dialog", inputs: { answer: "answer", structure: "structure", fixedPosition: "fixedPosition" }, outputs: { nothingToShow: "nothingToShow" }, host: { properties: { "class.co-answer-info-dialog": "this.showClass" } }, ngImport: i0, template: `
|
|
121
|
+
<div *ngIf="showTooltip" [ngStyle]="{ top: fixedPosition.top + 'px', right: fixedPosition.right + 'px' }" class="answer-info-tooltip">
|
|
122
|
+
<div class="info-text" *ngIf="answerText" [innerHTML]="answerHtml"></div>
|
|
123
|
+
<div class="loading" *ngIf="textLoading" [textContent]="'LOADING' | localize"></div>
|
|
124
|
+
<div class="error" *ngIf="textError" [textContent]="textError"></div>
|
|
125
|
+
</div>
|
|
126
|
+
<div *ngIf="showPopup" class="answer-info-popup">
|
|
127
|
+
<div class="inner-info">
|
|
128
|
+
<div class="info-content">
|
|
129
|
+
<div class="close-button-wrapper">
|
|
130
|
+
<co-icon class="close-button" [iconData]="iconService.getIcon(icons.Cross)" (click)="showPopup = false"></co-icon>
|
|
131
|
+
</div>
|
|
132
|
+
<div class="info-image" *ngIf="answerImage"><img alt="" src="{{answerImage}}"/></div>
|
|
133
|
+
<div class="text-content" [class.has-embed]="hasEmbed">
|
|
134
|
+
<div class="info-text" *ngIf="answerText" [innerHTML]="answerHtml"></div>
|
|
135
|
+
</div>
|
|
136
|
+
<div class="loading" *ngIf="textLoading" [textContent]="'LOADING' | localize"></div>
|
|
137
|
+
<div class="error" *ngIf="textError" [textContent]="textError"></div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
`, isInline: true, components: [{ type: i5.IconComponent, selector: "co-icon", inputs: ["icon", "iconData"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "localize": i7.LocalizePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AnswersInfoDialogComponent, decorators: [{
|
|
143
|
+
type: Component,
|
|
144
|
+
args: [{
|
|
145
|
+
selector: 'co-answer-info-dialog',
|
|
146
|
+
template: `
|
|
147
|
+
<div *ngIf="showTooltip" [ngStyle]="{ top: fixedPosition.top + 'px', right: fixedPosition.right + 'px' }" class="answer-info-tooltip">
|
|
148
|
+
<div class="info-text" *ngIf="answerText" [innerHTML]="answerHtml"></div>
|
|
149
|
+
<div class="loading" *ngIf="textLoading" [textContent]="'LOADING' | localize"></div>
|
|
150
|
+
<div class="error" *ngIf="textError" [textContent]="textError"></div>
|
|
151
|
+
</div>
|
|
152
|
+
<div *ngIf="showPopup" class="answer-info-popup">
|
|
153
|
+
<div class="inner-info">
|
|
154
|
+
<div class="info-content">
|
|
155
|
+
<div class="close-button-wrapper">
|
|
156
|
+
<co-icon class="close-button" [iconData]="iconService.getIcon(icons.Cross)" (click)="showPopup = false"></co-icon>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="info-image" *ngIf="answerImage"><img alt="" src="{{answerImage}}"/></div>
|
|
159
|
+
<div class="text-content" [class.has-embed]="hasEmbed">
|
|
160
|
+
<div class="info-text" *ngIf="answerText" [innerHTML]="answerHtml"></div>
|
|
161
|
+
</div>
|
|
162
|
+
<div class="loading" *ngIf="textLoading" [textContent]="'LOADING' | localize"></div>
|
|
163
|
+
<div class="error" *ngIf="textError" [textContent]="textError"></div>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
`,
|
|
168
|
+
encapsulation: ViewEncapsulation.None
|
|
169
|
+
}]
|
|
170
|
+
}], ctorParameters: function () { return [{ type: i1.IconCacheService }, { type: i2.SettingsService }, { type: i3.ConfiguratorConnectorService }, { type: i4.DomSanitizer }]; }, propDecorators: { showClass: [{
|
|
171
|
+
type: HostBinding,
|
|
172
|
+
args: ['class.co-answer-info-dialog']
|
|
173
|
+
}], answer: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], structure: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], fixedPosition: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], nothingToShow: [{
|
|
180
|
+
type: Output
|
|
181
|
+
}] } });
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLWluZm8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbmZpZ3VyYXRvci9zcmMvbGliL2NvbXBvbmVudHMvYW5zd2VyLWluZm8tZGlhbG9nL2Fuc3dlci1pbmZvLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBTzdHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUVBQWlFLENBQUM7Ozs7Ozs7OztBQW9DdkYsTUFBTSxPQUFPLDBCQUEwQjtJQTZCckMsWUFDUyxXQUE2QixFQUM1QixnQkFBaUMsRUFDakMsNkJBQTJELEVBQzNELFVBQXdCO1FBSHpCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBOEI7UUFDM0QsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQWhDbEIsVUFBSyxHQUFvQixRQUFRLENBQUM7UUFjM0Msa0JBQWEsR0FBMEMsSUFBSSxDQUFDO1FBRzVELGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFN0QsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FB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QyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O3dIQXhIVSwwQkFBMEI7NEdBQTFCLDBCQUEwQiwyUUF4QjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQ7NEZBR1UsMEJBQTBCO2tCQTFCdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7Mk1BS1EsU0FBUztzQkFEZixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNbkMsTUFBTTtzQkFEWixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QW5zd2VyfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2Fuc3dlcic7XHJcbmltcG9ydCB7QXJ0aWNsZVRleHR9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10ZXh0LmJvJztcclxuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtTZWxlY3RvclN0cnVjdHVyZX0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rvci1zdHJ1Y3R1cmUuYm8nO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZ3VyYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uRW51bX0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1NldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7aXNOaWxsfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb24nO1xyXG5cclxuY29uc3QgZW51bSBQdWJsaWNhdGlvbiB7XHJcbiAgU2hvcnREZXNjcmlwdGlvbiA9IDEsXHJcbiAgRGVzY3JpcHRpb24gPSAyLFxyXG4gIE1ldGFUaXRsZSA9IDQsXHJcbiAgTWV0YURlc2NyaXB0aW9uID0gOCxcclxuICBMb25nVGl0bGUgPSAxNlxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWFuc3dlci1pbmZvLWRpYWxvZycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgKm5nSWY9XCJzaG93VG9vbHRpcFwiIFtuZ1N0eWxlXT1cInsgdG9wOiBmaXhlZFBvc2l0aW9uLnRvcCArICdweCcsIHJpZ2h0OiBmaXhlZFBvc2l0aW9uLnJpZ2h0ICsgJ3B4JyB9XCIgY2xhc3M9XCJhbnN3ZXItaW5mby10b29sdGlwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIiAqbmdJZj1cImFuc3dlclRleHRcIiBbaW5uZXJIVE1MXT1cImFuc3dlckh0bWxcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cInRleHRMb2FkaW5nXCIgW3RleHRDb250ZW50XT1cIidMT0FESU5HJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiICpuZ0lmPVwidGV4dEVycm9yXCIgW3RleHRDb250ZW50XT1cInRleHRFcnJvclwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd1BvcHVwXCIgY2xhc3M9XCJhbnN3ZXItaW5mby1wb3B1cFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5uZXItaW5mb1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNyb3NzKVwiIChjbGljayk9XCJzaG93UG9wdXAgPSBmYWxzZVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8taW1hZ2VcIiAqbmdJZj1cImFuc3dlckltYWdlXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJ7e2Fuc3dlckltYWdlfX1cIi8+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250ZW50XCIgW2NsYXNzLmhhcy1lbWJlZF09XCJoYXNFbWJlZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCIgKm5nSWY9XCJhbnN3ZXJUZXh0XCIgW2lubmVySFRNTF09XCJhbnN3ZXJIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCIgKm5nSWY9XCJ0ZXh0TG9hZGluZ1wiIFt0ZXh0Q29udGVudF09XCInTE9BRElORycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCJ0ZXh0RXJyb3JcIiBbdGV4dENvbnRlbnRdPVwidGV4dEVycm9yXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbnN3ZXJzSW5mb0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbkVudW0gPSBJY29uRW51bTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1hbnN3ZXItaW5mby1kaWFsb2cnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFuc3dlcjogQW5zd2VyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdHJ1Y3R1cmU6IFNlbGVjdG9yU3RydWN0dXJlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaXhlZFBvc2l0aW9uOiB7IHRvcDogbnVtYmVyLCByaWdodDogbnVtYmVyIH0gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG5vdGhpbmdUb1Nob3c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIGFuc3dlclRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBhbnN3ZXJJbWFnZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGFuc3dlckh0bWw6IFNhZmVIdG1sID0gJyc7XHJcbiAgcHVibGljIHRleHRMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRleHRFcnJvcjogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHNob3dUb29sdGlwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoYXNFbWJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZTogQ29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudGV4dExvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2xvYWRJbmZvKCk7XHJcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcclxuICAgICAgdGhpcy50ZXh0RXJyb3IgPSBlID8gZS5tZXNzYWdlIDogJ0ZhaWxlZCB0byBsb2FkIGluZm8uJztcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMudGV4dExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2xvYWRJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGl0ZW1zOiBBcnRpY2xlVGV4dFtdID0gW107XHJcbiAgICBpZiAodGhpcy5hbnN3ZXIpIHtcclxuICAgICAgLy8gQ2FzZSAxOiBjYWxsZWQgd2l0aCBBbnN3ZXJcclxuICAgICAgaXRlbXMgPSBhd2FpdCB0aGlzLl9jb25maWd1cmF0b3JDb25uZWN0b3JTZXJ2aWNlLmdldEFuc3dlckluZm8odGhpcy5hbnN3ZXIpO1xyXG4gICAgICB0aGlzLmFuc3dlckltYWdlID0gYXdhaXQgdGhpcy5fY29uZmlndXJhdG9yQ29ubmVjdG9yU2VydmljZS5nZXRNb29kSW1hZ2VGb3JJbmZvRGlhbG9nKHRoaXMuYW5zd2VyKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zdHJ1Y3R1cmUpIHtcclxuICAgICAgLy8gQ2FzZSAyOiBjYWxsZWQgd2l0aCBTZWxlY3RvclN0cnVjdHVyZVxyXG4gICAgICBpdGVtcyA9IGF3YWl0IHRoaXMuX2NvbmZpZ3VyYXRvckNvbm5lY3RvclNlcnZpY2UuZ2V0U3RydWN0dXJlSW5mbyh0aGlzLnN0cnVjdHVyZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ29tbW9uIGNvbnRlbnQgYnVpbGRpbmcgbG9naWNcclxuICAgIGNvbnN0IGZvcm1hdHRlZDogc3RyaW5nID0gdGhpcy5fZm9ybWF0QW5zd2VySW5mbyhpdGVtcyk7XHJcbiAgICB0aGlzLmFuc3dlclRleHQgPSAvPFtePl0rPi8udGVzdChmb3JtYXR0ZWQpXHJcbiAgICAgID8gZm9ybWF0dGVkXHJcbiAgICAgIDogZm9ybWF0dGVkLnJlcGxhY2UoL1xcbi9nLCAnPGJyPicpO1xyXG5cclxuICAgIGlmICgvPGlmcmFtZXw8ZW1iZWQvaS50ZXN0KHRoaXMuYW5zd2VyVGV4dCkpIHtcclxuICAgICAgdGhpcy5hbnN3ZXJJbWFnZSA9ICcnO1xyXG4gICAgICB0aGlzLmhhc0VtYmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFuc3dlckh0bWwgPSB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5hbnN3ZXJUZXh0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdEFuc3dlckluZm8oaXRlbXM6IEFydGljbGVUZXh0W10pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGV4dFBhcnRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgbGV0IGluY2x1ZGVzU2hvcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxldCBpbmNsdWRlc0xvbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAoY29uc3QgYXJ0aWNsZVRleHQgb2YgaXRlbXMpIHtcclxuICAgICAgaWYgKCFhcnRpY2xlVGV4dC50ZXh0KSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzTmlsbChhcnRpY2xlVGV4dC5wdWJsaWNhdGlvbikgfHwgKChhcnRpY2xlVGV4dC5wdWJsaWNhdGlvbiAmIHRoaXMuX3NldHRpbmdzU2VydmljZS5zZXR0aW5ncy5pbmZvUHVibGljYXRpb25Db2RlKSA+IDApKSB7XHJcbiAgICAgICAgY29uc3QgYm9keTogc3RyaW5nID0gYXJ0aWNsZVRleHQudGV4dC50cmltKCk7XHJcbiAgICAgICAgY29uc3QgbGFiZWw6IHN0cmluZyA9IGFydGljbGVUZXh0LmRlc2NyaXB0aW9uID8gYXJ0aWNsZVRleHQuZGVzY3JpcHRpb24udHJpbSgpIDogJyc7XHJcbiAgICAgICAgY29uc3QgdGV4dFB1YmxpY2F0aW9uOiBudW1iZXIgPSBhcnRpY2xlVGV4dC50ZXh0VHlwZTtcclxuICAgICAgICBjb25zdCBib2R5SGFzSHRtbDogYm9vbGVhbiA9IC88W14+XSs+Ly50ZXN0KGJvZHkpO1xyXG4gICAgICAgIGlmICgodGV4dFB1YmxpY2F0aW9uICYgUHVibGljYXRpb24uU2hvcnREZXNjcmlwdGlvbikgPiAwKSB7XHJcbiAgICAgICAgICBpbmNsdWRlc1Nob3J0ID0gdHJ1ZTtcclxuICAgICAgICAgIHRleHRQYXJ0cy5wdXNoKGJvZHkgfHwgbGFiZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKHRleHRQdWJsaWNhdGlvbiAmIFB1YmxpY2F0aW9uLkRlc2NyaXB0aW9uKSA+IDApIHtcclxuICAgICAgICAgIGluY2x1ZGVzTG9uZyA9IHRydWU7XHJcbiAgICAgICAgICBpZiAobGFiZWwgJiYgYm9keSkge1xyXG4gICAgICAgICAgICB0ZXh0UGFydHMucHVzaChcclxuICAgICAgICAgICAgICBib2R5SGFzSHRtbCA/IGA8cCBjbGFzcz1cImluZm8taGVhZGluZ1wiPiR7bGFiZWx9PC9wPiR7Ym9keX1gIDogYCR7bGFiZWx9XFxuJHtib2R5fWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRleHRQYXJ0cy5wdXNoKGJvZHkgfHwgbGFiZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGluY2x1ZGVzU2hvcnQpIHtcclxuICAgICAgdGhpcy5zaG93VG9vbHRpcCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd1BvcHVwID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiB0ZXh0UGFydHMuam9pbignXFxuXFxuLS0tXFxuXFxuJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5jbHVkZXNMb25nKSB7XHJcbiAgICAgIHRoaXMuc2hvd1BvcHVwID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zaG93VG9vbHRpcCA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gdGV4dFBhcnRzLmpvaW4oJ1xcblxcbi0tLVxcblxcbicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93VG9vbHRpcCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93UG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMubm90aGluZ1RvU2hvdy5lbWl0KCk7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|