{"version":3,"file":"js/index.e2d2ec71.js","mappings":"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","sources":["webpack://citi.emea/./src/components/atoms/ad-adblocker-detection/index.vue","webpack://citi.emea/src/components/atoms/ad-adblocker-detection/index.vue","webpack://citi.emea/./src/components/atoms/ad-adblocker-detection/index.vue?08ab","webpack://citi.emea/./src/components/atoms/ad-adblocker-detection/index.vue?fcd4","webpack://citi.emea/./src/components/atoms/ad-anchor-link-accordion-container/index.vue","webpack://citi.emea/src/components/atoms/ad-anchor-link-accordion-container/index.vue","webpack://citi.emea/./src/components/atoms/ad-anchor-link-accordion-container/index.vue?a099","webpack://citi.emea/./src/components/atoms/ad-anchor-link-accordion-container/index.vue?b6e2","webpack://citi.emea/./src/components/atoms/ad-collapse-on-mobile/index.vue","webpack://citi.emea/src/components/atoms/ad-collapse-on-mobile/index.vue","webpack://citi.emea/./src/components/atoms/ad-collapse-on-mobile/index.vue?5bef","webpack://citi.emea/./src/components/atoms/ad-collapse-on-mobile/index.vue?9f3f","webpack://citi.emea/./src/components/atoms/ad-drop-down-list/index.vue","webpack://citi.emea/src/components/atoms/ad-drop-down-list/index.vue","webpack://citi.emea/./src/components/atoms/ad-drop-down-list/index.vue?c465","webpack://citi.emea/./src/components/atoms/ad-drop-down-list/index.vue?899d","webpack://citi.emea/./src/components/atoms/ad-filter-numeric-input/index.vue","webpack://citi.emea/./src/components/atoms/ad-filter-numeric-input/text-to-numeric-convert-helper.ts","webpack://citi.emea/src/components/atoms/ad-filter-numeric-input/index.vue","webpack://citi.emea/./src/components/atoms/ad-filter-numeric-input/index.vue?f2c5","webpack://citi.emea/./src/components/atoms/ad-filter-numeric-input/index.vue?3a82","webpack://citi.emea/./src/components/atoms/ad-html-or-text/index.vue","webpack://citi.emea/src/components/atoms/ad-html-or-text/index.vue","webpack://citi.emea/./src/components/atoms/ad-html-or-text/index.vue?22a9","webpack://citi.emea/./src/components/atoms/ad-html-or-text/index.vue?6541","webpack://citi.emea/./src/components/atoms/ad-image/index.vue","webpack://citi.emea/src/components/atoms/ad-image/index.vue","webpack://citi.emea/./src/components/atoms/ad-image/index.vue?2ca0","webpack://citi.emea/./src/components/atoms/ad-image/index.vue?4a1e","webpack://citi.emea/./src/components/atoms/ad-info-block/index.vue","webpack://citi.emea/src/components/atoms/ad-info-block/index.vue","webpack://citi.emea/./src/components/atoms/ad-info-block/index.vue?df96","webpack://citi.emea/./src/components/atoms/ad-info-block/index.vue?008e","webpack://citi.emea/./src/components/atoms/ad-like-count/index.vue","webpack://citi.emea/./src/utils/content-like-service.ts","webpack://citi.emea/src/components/atoms/ad-like-count/index.vue","webpack://citi.emea/./src/components/atoms/ad-like-count/index.vue?e47f","webpack://citi.emea/./src/components/atoms/ad-like-count/index.vue?2c0e","webpack://citi.emea/./src/components/atoms/ad-missing-cookie-modal/index.vue","webpack://citi.emea/src/components/atoms/ad-missing-cookie-modal/index.vue","webpack://citi.emea/./src/components/atoms/ad-missing-cookie-modal/index.vue?26e8","webpack://citi.emea/./src/components/atoms/ad-missing-cookie-modal/index.vue?8336","webpack://citi.emea/./src/components/atoms/ad-missing-cookie/index.vue","webpack://citi.emea/src/components/atoms/ad-missing-cookie/index.vue","webpack://citi.emea/./src/components/atoms/ad-missing-cookie/index.vue?28ca","webpack://citi.emea/./src/components/atoms/ad-missing-cookie/index.vue?bad8","webpack://citi.emea/./src/components/atoms/ad-note/index.vue","webpack://citi.emea/src/components/atoms/ad-note/index.vue","webpack://citi.emea/./src/components/atoms/ad-note/index.vue?eb58","webpack://citi.emea/./src/components/atoms/ad-note/index.vue?9e0e","webpack://citi.emea/./src/components/atoms/ad-responsive-view-panel/index.vue","webpack://citi.emea/src/components/atoms/ad-responsive-view-panel/index.vue","webpack://citi.emea/./src/components/atoms/ad-responsive-view-panel/index.vue?4f0a","webpack://citi.emea/./src/components/atoms/ad-responsive-view-panel/index.vue?35f5","webpack://citi.emea/./src/components/atoms/ad-simple-table/index.vue","webpack://citi.emea/src/components/atoms/ad-simple-table/index.vue","webpack://citi.emea/./src/components/atoms/ad-simple-table/index.vue?4a73","webpack://citi.emea/./src/components/atoms/ad-simple-table/index.vue?6f13","webpack://citi.emea/./src/components/atoms/ad-switch-button/index.vue","webpack://citi.emea/src/components/atoms/ad-switch-button/index.vue","webpack://citi.emea/./src/components/atoms/ad-switch-button/index.vue?2282","webpack://citi.emea/./src/components/atoms/ad-switch-button/index.vue?c14c","webpack://citi.emea/./src/components/atoms/ad-template-renderer/index.vue","webpack://citi.emea/src/components/atoms/ad-template-renderer/index.vue","webpack://citi.emea/./src/components/atoms/ad-template-renderer/index.vue?b3ba","webpack://citi.emea/./src/components/atoms/ad-template-renderer/index.vue?80ac","webpack://citi.emea/./src/components/atoms/ce-ad-marker/index.vue","webpack://citi.emea/src/components/atoms/ce-ad-marker/index.vue","webpack://citi.emea/./src/components/atoms/ce-ad-marker/index.vue?94b7","webpack://citi.emea/./src/components/atoms/ce-ad-marker/index.vue?6e1f","webpack://citi.emea/./src/components/atoms/ce-back-to-top-button/index.vue","webpack://citi.emea/src/components/atoms/ce-back-to-top-button/index.vue","webpack://citi.emea/./src/components/atoms/ce-back-to-top-button/index.vue?fa53","webpack://citi.emea/./src/components/atoms/ce-back-to-top-button/index.vue?fcd4","webpack://citi.emea/./src/components/atoms/ce-breadcrumbs/index.vue","webpack://citi.emea/src/components/atoms/ce-breadcrumbs/index.vue","webpack://citi.emea/./src/components/atoms/ce-breadcrumbs/index.vue?c643","webpack://citi.emea/./src/components/atoms/ce-breadcrumbs/index.vue?0ced","webpack://citi.emea/./src/components/atoms/ce-facebook-button/index.vue","webpack://citi.emea/src/components/atoms/ce-facebook-button/index.vue","webpack://citi.emea/./src/components/atoms/ce-facebook-button/index.vue?5a93","webpack://citi.emea/./src/components/atoms/ce-facebook-button/index.vue?4fe0","webpack://citi.emea/./src/components/atoms/ce-node-renderer/index.vue","webpack://citi.emea/src/components/atoms/ce-node-renderer/index.vue","webpack://citi.emea/./src/components/atoms/ce-node-renderer/index.vue?6145","webpack://citi.emea/./src/components/atoms/ce-twitter-button/index.vue","webpack://citi.emea/src/components/atoms/ce-twitter-button/index.vue","webpack://citi.emea/./src/components/atoms/ce-twitter-button/index.vue?7b29","webpack://citi.emea/./src/components/atoms/ce-twitter-button/index.vue?16ca","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-data-row/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-instrument-data-row/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-data-row/index.vue?b920","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-data-row/index.vue?673a","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-data-value/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-instrument-data-value/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-data-value/index.vue?fcc2","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-data-value/index.vue?17f8","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-table/column-visible-wrapper.vue","webpack://citi.emea/src/components/atoms/instruments/ad-instrument-table/column-visible-wrapper.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-table/column-visible-wrapper.vue?bfbe","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-table/column-visible-wrapper.vue?5d9a","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-table/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-instrument-table/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-table/index.vue?f04f","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-table/index.vue?4dbe","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-url-replacer/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-instrument-url-replacer/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-url-replacer/index.vue?d18d","webpack://citi.emea/./src/components/atoms/instruments/ad-instrument-url-replacer/index.vue?ea08","webpack://citi.emea/./src/components/atoms/instruments/ad-product-column-list/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-column-list/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-column-list/index.vue?680e","webpack://citi.emea/./src/components/atoms/instruments/ad-product-column-list/index.vue?4760","webpack://citi.emea/./src/components/atoms/instruments/ad-product-data-value/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-data-value/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-data-value/index.vue?ec0a","webpack://citi.emea/./src/components/atoms/instruments/ad-product-data-value/index.vue?61f7","webpack://citi.emea/./src/components/atoms/instruments/ad-product-link/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-link/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-link/index.vue?fa64","webpack://citi.emea/./src/components/atoms/instruments/ad-product-link/index.vue?7c52","webpack://citi.emea/./src/components/atoms/instruments/ad-product-search-filter-subtype/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-search-filter-subtype/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-search-filter-subtype/index.vue?e268","webpack://citi.emea/./src/components/atoms/instruments/ad-product-search-filter-subtype/index.vue?8163","webpack://citi.emea/./src/components/atoms/instruments/ad-product-status-icon-block/index.vue","webpack://citi.emea/./src/utils/condition-evaluator.ts","webpack://citi.emea/src/components/atoms/instruments/ad-product-status-icon-block/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-status-icon-block/index.vue?0eef","webpack://citi.emea/./src/components/atoms/instruments/ad-product-status-icon-block/index.vue?195f","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-button/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-type-button/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-button/index.vue?0b07","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-button/index.vue?4961","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-count-table/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-type-count-table/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-count-table/index.vue?2302","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-count-table/index.vue?5cdb","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-list/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-type-list/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-list/index.vue?bbc8","webpack://citi.emea/./src/components/atoms/instruments/ad-product-type-list/index.vue?3e8c","webpack://citi.emea/./src/components/atoms/instruments/ad-product-watchlist-toggle/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-product-watchlist-toggle/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-product-watchlist-toggle/index.vue?8b41","webpack://citi.emea/./src/components/atoms/instruments/ad-product-watchlist-toggle/index.vue?246f","webpack://citi.emea/./src/components/atoms/instruments/ad-trigger-probability-block/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-trigger-probability-block/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-trigger-probability-block/index.vue?c19e","webpack://citi.emea/./src/components/atoms/instruments/ad-trigger-probability-block/index.vue?3179","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-data-value/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-underlying-data-value/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-data-value/index.vue?9245","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-data-value/index.vue?437c","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-link/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-underlying-link/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-link/index.vue?2b21","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-link/index.vue?fbc8","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-list/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-underlying-list/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-list/index.vue?c5fe","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-list/index.vue?9083","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-watchlist-toggle/index.vue","webpack://citi.emea/src/components/atoms/instruments/ad-underlying-watchlist-toggle/index.vue","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-watchlist-toggle/index.vue?3525","webpack://citi.emea/./src/components/atoms/instruments/ad-underlying-watchlist-toggle/index.vue?e8ba","webpack://citi.emea/src/components/atoms/properties/ad-base-settings-properties/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-base-settings-properties/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-base-settings-properties/index.vue?5db4","webpack://citi.emea/src/components/atoms/properties/ad-chart-configuration-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-chart-configuration-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-chart-configuration-property/index.vue?a2f0","webpack://citi.emea/src/components/atoms/properties/ad-index/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-index/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-index/index.vue?b1dc","webpack://citi.emea/src/components/atoms/properties/ad-json-settings-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-json-settings-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-json-settings-property/index.vue?7794","webpack://citi.emea/src/components/atoms/properties/ad-product-data-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-product-data-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-product-data-property/index.vue?81b3","webpack://citi.emea/src/components/atoms/properties/ad-product-teaser-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-product-teaser-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-product-teaser-property/index.vue?0490","webpack://citi.emea/src/components/atoms/properties/ad-product-underlying-data-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-product-underlying-data-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-product-underlying-data-property/index.vue?26e7","webpack://citi.emea/src/components/atoms/properties/ad-underlying-data-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-underlying-data-property/index.vue","webpack://citi.emea/./src/components/atoms/properties/ad-underlying-data-property/index.vue?785d","webpack://citi.emea/./src/components/icons/ad-icon-base/index.vue","webpack://citi.emea/src/components/icons/ad-icon-base/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-base/index.vue?8a26","webpack://citi.emea/./src/components/icons/ad-icon-base/index.vue?fb51","webpack://citi.emea/./src/components/icons/ad-icon-best-match/index.vue","webpack://citi.emea/src/components/icons/ad-icon-best-match/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-best-match/index.vue?f656","webpack://citi.emea/./src/components/icons/ad-icon-best-match/index.vue?b525","webpack://citi.emea/./src/components/icons/ad-icon-chart-candlestick/index.vue","webpack://citi.emea/src/components/icons/ad-icon-chart-candlestick/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-chart-candlestick/index.vue?29f2","webpack://citi.emea/./src/components/icons/ad-icon-chart-candlestick/index.vue?eb45","webpack://citi.emea/./src/components/icons/ad-icon-chart-line/index.vue","webpack://citi.emea/src/components/icons/ad-icon-chart-line/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-chart-line/index.vue?a4f4","webpack://citi.emea/./src/components/icons/ad-icon-chart-line/index.vue?55b6","webpack://citi.emea/./src/components/icons/ad-icon-check/index.vue","webpack://citi.emea/src/components/icons/ad-icon-check/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-check/index.vue?2fa9","webpack://citi.emea/./src/components/icons/ad-icon-check/index.vue?2f21","webpack://citi.emea/./src/components/icons/ad-icon-chevron/index.vue","webpack://citi.emea/src/components/icons/ad-icon-chevron/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-chevron/index.vue?f5e5","webpack://citi.emea/./src/components/icons/ad-icon-chevron/index.vue?8327","webpack://citi.emea/./src/components/icons/ad-icon-close/index.vue","webpack://citi.emea/src/components/icons/ad-icon-close/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-close/index.vue?3033","webpack://citi.emea/./src/components/icons/ad-icon-close/index.vue?1c62","webpack://citi.emea/./src/components/icons/ad-icon-copy/index.vue","webpack://citi.emea/src/components/icons/ad-icon-copy/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-copy/index.vue?9f4a","webpack://citi.emea/./src/components/icons/ad-icon-copy/index.vue?d6b1","webpack://citi.emea/./src/components/icons/ad-icon-delete/index.vue","webpack://citi.emea/src/components/icons/ad-icon-delete/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-delete/index.vue?b930","webpack://citi.emea/./src/components/icons/ad-icon-delete/index.vue?bb7b","webpack://citi.emea/./src/components/icons/ad-icon-download/index.vue","webpack://citi.emea/src/components/icons/ad-icon-download/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-download/index.vue?6c3d","webpack://citi.emea/./src/components/icons/ad-icon-download/index.vue?3fad","webpack://citi.emea/./src/components/icons/ad-icon-go-back/index.vue","webpack://citi.emea/src/components/icons/ad-icon-go-back/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-go-back/index.vue?9eac","webpack://citi.emea/./src/components/icons/ad-icon-go-back/index.vue?3ef0","webpack://citi.emea/./src/components/icons/ad-icon-hamburger/index.vue","webpack://citi.emea/src/components/icons/ad-icon-hamburger/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-hamburger/index.vue?bf6d","webpack://citi.emea/./src/components/icons/ad-icon-hamburger/index.vue?58c1","webpack://citi.emea/./src/components/icons/ad-icon-info/index.vue","webpack://citi.emea/src/components/icons/ad-icon-info/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-info/index.vue?5893","webpack://citi.emea/./src/components/icons/ad-icon-info/index.vue?a1e2","webpack://citi.emea/./src/components/icons/ad-icon-like/index.vue","webpack://citi.emea/src/components/icons/ad-icon-like/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-like/index.vue?ef82","webpack://citi.emea/./src/components/icons/ad-icon-like/index.vue?da1f","webpack://citi.emea/./src/components/icons/ad-icon-link-four-five/index.vue","webpack://citi.emea/src/components/icons/ad-icon-link-four-five/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-link-four-five/index.vue?2213","webpack://citi.emea/./src/components/icons/ad-icon-link-four-five/index.vue?6113","webpack://citi.emea/./src/components/icons/ad-icon-linkedIn/index.vue","webpack://citi.emea/src/components/icons/ad-icon-linkedIn/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-linkedIn/index.vue?7f24","webpack://citi.emea/./src/components/icons/ad-icon-linkedIn/index.vue?9f33","webpack://citi.emea/./src/components/icons/ad-icon-play/index.vue","webpack://citi.emea/src/components/icons/ad-icon-play/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-play/index.vue?b5cf","webpack://citi.emea/./src/components/icons/ad-icon-play/index.vue?3ea9","webpack://citi.emea/./src/components/icons/ad-icon-search/index.vue","webpack://citi.emea/src/components/icons/ad-icon-search/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-search/index.vue?2bfc","webpack://citi.emea/./src/components/icons/ad-icon-search/index.vue?d35b","webpack://citi.emea/./src/components/icons/ad-icon-sort/index.vue","webpack://citi.emea/src/components/icons/ad-icon-sort/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-sort/index.vue?a363","webpack://citi.emea/./src/components/icons/ad-icon-sort/index.vue?1298","webpack://citi.emea/./src/components/icons/ad-icon-warnings/index.vue","webpack://citi.emea/src/components/icons/ad-icon-warnings/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-warnings/index.vue?2e57","webpack://citi.emea/./src/components/icons/ad-icon-warnings/index.vue?80b2","webpack://citi.emea/./src/components/icons/ad-icon-watchlist-add/index.vue","webpack://citi.emea/src/components/icons/ad-icon-watchlist-add/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-watchlist-add/index.vue?a819","webpack://citi.emea/./src/components/icons/ad-icon-watchlist-add/index.vue?8061","webpack://citi.emea/./src/components/icons/ad-icon-watchlist-remove/index.vue","webpack://citi.emea/src/components/icons/ad-icon-watchlist-remove/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-watchlist-remove/index.vue?4306","webpack://citi.emea/./src/components/icons/ad-icon-watchlist-remove/index.vue?796c","webpack://citi.emea/./src/components/icons/ad-icon-watchlist/index.vue","webpack://citi.emea/src/components/icons/ad-icon-watchlist/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-watchlist/index.vue?2df2","webpack://citi.emea/./src/components/icons/ad-icon-watchlist/index.vue?4bbf","webpack://citi.emea/./src/components/icons/ad-icon-xing/index.vue","webpack://citi.emea/src/components/icons/ad-icon-xing/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-xing/index.vue?d1d2","webpack://citi.emea/./src/components/icons/ad-icon-xing/index.vue?5086","webpack://citi.emea/./src/components/icons/ad-icon-xls/index.vue","webpack://citi.emea/src/components/icons/ad-icon-xls/index.vue","webpack://citi.emea/./src/components/icons/ad-icon-xls/index.vue?c63a","webpack://citi.emea/./src/components/icons/ad-icon-xls/index.vue?dd71","webpack://citi.emea/./src/components/molecules/ad-anchor-layout/index.vue","webpack://citi.emea/src/components/molecules/ad-anchor-layout/index.vue","webpack://citi.emea/./src/components/molecules/ad-anchor-layout/index.vue?8757","webpack://citi.emea/./src/components/molecules/ad-anchor-layout/index.vue?e6d9","webpack://citi.emea/./src/components/molecules/ad-anchor-navigation/index.vue","webpack://citi.emea/src/components/molecules/ad-anchor-navigation/index.vue","webpack://citi.emea/./src/components/molecules/ad-anchor-navigation/index.vue?3327","webpack://citi.emea/./src/components/molecules/ad-anchor-navigation/index.vue?cf39","webpack://citi.emea/./src/components/molecules/ad-anchor/index.vue","webpack://citi.emea/src/components/molecules/ad-anchor/index.vue","webpack://citi.emea/./src/components/molecules/ad-anchor/index.vue?70bd","webpack://citi.emea/./src/components/molecules/ad-anchor/index.vue?0dbb","webpack://citi.emea/./src/components/molecules/ad-broker/index.vue","webpack://citi.emea/src/components/molecules/ad-broker/index.vue","webpack://citi.emea/./src/components/molecules/ad-broker/index.vue?f567","webpack://citi.emea/./src/components/molecules/ad-broker/index.vue?7c3f","webpack://citi.emea/./src/components/molecules/ad-brokers-overlay/index.vue","webpack://citi.emea/src/components/molecules/ad-brokers-overlay/index.vue","webpack://citi.emea/./src/components/molecules/ad-brokers-overlay/index.vue?5c8f","webpack://citi.emea/./src/components/molecules/ad-brokers-overlay/index.vue?a84c","webpack://citi.emea/./src/components/molecules/ad-collapse-on-mobile-group-block/index.vue","webpack://citi.emea/src/components/molecules/ad-collapse-on-mobile-group-block/index.vue","webpack://citi.emea/./src/components/molecules/ad-collapse-on-mobile-group-block/index.vue?88b8","webpack://citi.emea/./src/components/molecules/ad-collapse-on-mobile-group-block/index.vue?60ca","webpack://citi.emea/./src/components/molecules/ad-cookie-consent/index.vue","webpack://citi.emea/src/components/molecules/ad-cookie-consent/index.vue","webpack://citi.emea/./src/components/molecules/ad-cookie-consent/index.vue?b068","webpack://citi.emea/./src/components/molecules/ad-cookie-consent/index.vue?1a20","webpack://citi.emea/./src/components/molecules/ad-disclaimer-item/index.vue","webpack://citi.emea/src/components/molecules/ad-disclaimer-item/index.vue","webpack://citi.emea/./src/components/molecules/ad-disclaimer-item/index.vue?153c","webpack://citi.emea/./src/components/molecules/ad-disclaimer-item/index.vue?8224","webpack://citi.emea/./src/components/molecules/ad-downloads/ad-downloads-items.vue","webpack://citi.emea/src/components/molecules/ad-downloads/ad-downloads-items.vue","webpack://citi.emea/./src/components/molecules/ad-downloads/ad-downloads-items.vue?8a93","webpack://citi.emea/./src/components/molecules/ad-downloads/ad-downloads-items.vue?cfa8","webpack://citi.emea/./src/components/molecules/ad-downloads/ad-downloads-list.vue","webpack://citi.emea/src/components/molecules/ad-downloads/ad-downloads-list.vue","webpack://citi.emea/./src/components/molecules/ad-downloads/ad-downloads-list.vue?5577","webpack://citi.emea/./src/components/molecules/ad-downloads/ad-downloads-list.vue?8c3c","webpack://citi.emea/./src/components/molecules/ad-downloads/index.vue","webpack://citi.emea/src/components/molecules/ad-downloads/index.vue","webpack://citi.emea/./src/components/molecules/ad-downloads/index.vue?fa6a","webpack://citi.emea/./src/components/molecules/ad-downloads/index.vue?03bd","webpack://citi.emea/./src/components/molecules/ad-education-content-tree/index.vue","webpack://citi.emea/src/components/molecules/ad-education-content-tree/index.vue","webpack://citi.emea/./src/components/molecules/ad-education-content-tree/index.vue?c2f7","webpack://citi.emea/./src/components/molecules/ad-education-content-tree/index.vue?e21a","webpack://citi.emea/./src/components/molecules/ad-folder-downloads-group-filter/index.vue","webpack://citi.emea/src/components/molecules/ad-folder-downloads-group-filter/index.vue","webpack://citi.emea/./src/components/molecules/ad-folder-downloads-group-filter/index.vue?362e","webpack://citi.emea/./src/components/molecules/ad-folder-downloads-group-filter/index.vue?f2dd","webpack://citi.emea/./src/components/molecules/ad-folder-downloads-year-filter/index.vue","webpack://citi.emea/src/components/molecules/ad-folder-downloads-year-filter/index.vue","webpack://citi.emea/./src/components/molecules/ad-folder-downloads-year-filter/index.vue?3e6e","webpack://citi.emea/./src/components/molecules/ad-folder-downloads-year-filter/index.vue?095a","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-suggest-search-dropdown/ad-suggest-dropdown-column.vue","webpack://citi.emea/src/components/molecules/ad-global-search/ad-suggest-search-dropdown/ad-suggest-dropdown-column.vue","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-suggest-search-dropdown/ad-suggest-dropdown-column.vue?eff0","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-suggest-search-dropdown/ad-suggest-dropdown-column.vue?10b4","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-suggest-search-dropdown/index.vue","webpack://citi.emea/src/components/molecules/ad-global-search/ad-suggest-search-dropdown/index.vue","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-suggest-search-dropdown/index.vue?eac5","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-suggest-search-dropdown/index.vue?b0c2","webpack://citi.emea/./src/components/molecules/ad-global-search/index.vue","webpack://citi.emea/./src/utils/global-search.ts","webpack://citi.emea/./src/components/molecules/ad-global-search/ad-global-search-base.ts","webpack://citi.emea/src/components/molecules/ad-global-search/index.vue","webpack://citi.emea/./src/components/molecules/ad-global-search/index.vue?2f3b","webpack://citi.emea/./src/components/molecules/ad-global-search/index.vue?beaf","webpack://citi.emea/./src/components/molecules/ad-glossary-content/index.vue","webpack://citi.emea/src/components/molecules/ad-glossary-content/index.vue","webpack://citi.emea/./src/components/molecules/ad-glossary-content/index.vue?d635","webpack://citi.emea/./src/components/molecules/ad-glossary-content/index.vue?5613","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers-json/index.vue","webpack://citi.emea/src/components/molecules/ad-load-more-teasers-json/index.vue","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers-json/index.vue?1009","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers-json/index.vue?c4d5","webpack://citi.emea/src/components/molecules/ad-load-more-teasers/ad-runtime-component.vue","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers/ad-runtime-component.vue","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers/ad-runtime-component.vue?b69e","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers/index.vue","webpack://citi.emea/src/components/molecules/ad-load-more-teasers/index.vue","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers/index.vue?1a17","webpack://citi.emea/./src/components/molecules/ad-load-more-teasers/index.vue?8dd6","webpack://citi.emea/./src/components/molecules/ad-pagination/index.vue","webpack://citi.emea/src/components/molecules/ad-pagination/index.vue","webpack://citi.emea/./src/components/molecules/ad-pagination/index.vue?8f23","webpack://citi.emea/./src/components/molecules/ad-pagination/index.vue?3e87","webpack://citi.emea/./src/components/molecules/ad-product-info-table/ad-product-info-table-row/index.vue","webpack://citi.emea/src/components/molecules/ad-product-info-table/ad-product-info-table-row/index.vue","webpack://citi.emea/./src/components/molecules/ad-product-info-table/ad-product-info-table-row/index.vue?3789","webpack://citi.emea/./src/components/molecules/ad-product-info-table/ad-product-info-table-row/index.vue?6f56","webpack://citi.emea/./src/components/molecules/ad-product-info-table/index.vue","webpack://citi.emea/src/components/molecules/ad-product-info-table/index.vue","webpack://citi.emea/./src/components/molecules/ad-product-info-table/index.vue?d724","webpack://citi.emea/./src/components/molecules/ad-product-info-table/index.vue?4d33","webpack://citi.emea/./src/components/molecules/ad-realtime-block/index.vue","webpack://citi.emea/src/components/molecules/ad-realtime-block/index.vue","webpack://citi.emea/./src/components/molecules/ad-realtime-block/index.vue?d7a7","webpack://citi.emea/./src/components/molecules/ad-realtime-block/index.vue?b76e","webpack://citi.emea/./src/components/molecules/ad-text-image-teasers/index.vue","webpack://citi.emea/src/components/molecules/ad-text-image-teasers/index.vue","webpack://citi.emea/./src/components/molecules/ad-text-image-teasers/index.vue?08d0","webpack://citi.emea/./src/components/molecules/ad-text-image-teasers/index.vue?4193","webpack://citi.emea/./src/components/molecules/ad-tile-teasers/index.vue","webpack://citi.emea/src/components/molecules/ad-tile-teasers/index.vue","webpack://citi.emea/./src/components/molecules/ad-tile-teasers/index.vue?f2e1","webpack://citi.emea/./src/components/molecules/ad-tile-teasers/index.vue?e5b5","webpack://citi.emea/./src/components/molecules/ad-underlying-preheadline-text/index.vue","webpack://citi.emea/src/components/molecules/ad-underlying-preheadline-text/index.vue","webpack://citi.emea/./src/components/molecules/ad-underlying-preheadline-text/index.vue?7da1","webpack://citi.emea/./src/components/molecules/ad-underlying-preheadline-text/index.vue?324c","webpack://citi.emea/./src/components/molecules/ad-underlying-related-info-popup/index.vue","webpack://citi.emea/src/components/molecules/ad-underlying-related-info-popup/index.vue","webpack://citi.emea/./src/components/molecules/ad-underlying-related-info-popup/index.vue?c553","webpack://citi.emea/./src/components/molecules/ad-underlying-related-info-popup/index.vue?94ed","webpack://citi.emea/./src/components/molecules/ad-video/index.vue","webpack://citi.emea/src/components/molecules/ad-video/index.vue","webpack://citi.emea/./src/components/molecules/ad-video/index.vue?70e6","webpack://citi.emea/./src/components/molecules/ad-video/index.vue?3d88","webpack://citi.emea/./src/components/molecules/ce-accordion/index.vue","webpack://citi.emea/src/components/molecules/ce-accordion/index.vue","webpack://citi.emea/./src/components/molecules/ce-accordion/index.vue?c235","webpack://citi.emea/./src/components/molecules/ce-accordion/index.vue?23f9","webpack://citi.emea/./src/components/molecules/ce-article-navigation/index.vue","webpack://citi.emea/src/components/molecules/ce-article-navigation/index.vue","webpack://citi.emea/./src/components/molecules/ce-article-navigation/index.vue?afa6","webpack://citi.emea/./src/components/molecules/ce-article-navigation/index.vue?b265","webpack://citi.emea/./src/components/molecules/ce-author-big/index.vue","webpack://citi.emea/src/components/molecules/ce-author-big/index.vue","webpack://citi.emea/./src/components/molecules/ce-author-big/index.vue?7097","webpack://citi.emea/./src/components/molecules/ce-author-big/index.vue?3950","webpack://citi.emea/./src/components/molecules/ce-author-small/index.vue","webpack://citi.emea/src/components/molecules/ce-author-small/index.vue","webpack://citi.emea/./src/components/molecules/ce-author-small/index.vue?f82c","webpack://citi.emea/./src/components/molecules/ce-author-small/index.vue?45e4","webpack://citi.emea/./src/components/molecules/ce-banner-ad/index.vue","webpack://citi.emea/src/components/molecules/ce-banner-ad/index.vue","webpack://citi.emea/./src/components/molecules/ce-banner-ad/index.vue?126e","webpack://citi.emea/./src/components/molecules/ce-banner-ad/index.vue?1e98","webpack://citi.emea/./src/components/molecules/ce-blog-short-news/index.vue","webpack://citi.emea/src/components/molecules/ce-blog-short-news/index.vue","webpack://citi.emea/./src/components/molecules/ce-blog-short-news/index.vue?0570","webpack://citi.emea/./src/components/molecules/ce-blog-short-news/index.vue?a2fc","webpack://citi.emea/./src/components/molecules/ce-chapter-select/index.vue","webpack://citi.emea/src/components/molecules/ce-chapter-select/index.vue","webpack://citi.emea/./src/components/molecules/ce-chapter-select/index.vue?0f86","webpack://citi.emea/./src/components/molecules/ce-chapter-select/index.vue?3081","webpack://citi.emea/./src/components/molecules/ce-content-ad/index.vue","webpack://citi.emea/src/components/molecules/ce-content-ad/index.vue","webpack://citi.emea/./src/components/molecules/ce-content-ad/index.vue?4e66","webpack://citi.emea/./src/components/molecules/ce-content-ad/index.vue?0772","webpack://citi.emea/./src/components/molecules/ce-download/index.vue","webpack://citi.emea/src/components/molecules/ce-download/index.vue","webpack://citi.emea/./src/components/molecules/ce-download/index.vue?0622","webpack://citi.emea/./src/components/molecules/ce-download/index.vue?a64e","webpack://citi.emea/./src/components/molecules/ce-glossary-content/index.vue","webpack://citi.emea/src/components/molecules/ce-glossary-content/index.vue","webpack://citi.emea/./src/components/molecules/ce-glossary-content/index.vue?b8d3","webpack://citi.emea/./src/components/molecules/ce-glossary-content/index.vue?6193","webpack://citi.emea/./src/components/molecules/ce-glossary-desktop-section-letter-selector/index.vue","webpack://citi.emea/src/components/molecules/ce-glossary-desktop-section-letter-selector/index.vue","webpack://citi.emea/./src/components/molecules/ce-glossary-desktop-section-letter-selector/index.vue?a138","webpack://citi.emea/./src/components/molecules/ce-glossary-desktop-section-letter-selector/index.vue?09c8","webpack://citi.emea/./src/components/molecules/ce-glossary-mobile-section-navigation-button/index.vue","webpack://citi.emea/src/components/molecules/ce-glossary-mobile-section-navigation-button/index.vue","webpack://citi.emea/./src/components/molecules/ce-glossary-mobile-section-navigation-button/index.vue?e299","webpack://citi.emea/./src/components/molecules/ce-glossary-mobile-section-navigation-button/index.vue?d3d8","webpack://citi.emea/./src/components/molecules/ce-grouped-download-button/index.vue","webpack://citi.emea/src/components/molecules/ce-grouped-download-button/index.vue","webpack://citi.emea/./src/components/molecules/ce-grouped-download-button/index.vue?b2d0","webpack://citi.emea/./src/components/molecules/ce-grouped-download-button/index.vue?d76d","webpack://citi.emea/./src/components/molecules/ce-header-image/index.vue","webpack://citi.emea/src/components/molecules/ce-header-image/index.vue","webpack://citi.emea/./src/components/molecules/ce-header-image/index.vue?f84c","webpack://citi.emea/./src/components/molecules/ce-header-image/index.vue?2813","webpack://citi.emea/./src/components/molecules/ce-image-gallery/index.vue","webpack://citi.emea/src/components/molecules/ce-image-gallery/index.vue","webpack://citi.emea/./src/components/molecules/ce-image-gallery/index.vue?96ab","webpack://citi.emea/./src/components/molecules/ce-image-gallery/index.vue?5a8a","webpack://citi.emea/./src/components/molecules/ce-newsletter-registration/index.vue","webpack://citi.emea/src/components/molecules/ce-newsletter-registration/index.vue","webpack://citi.emea/./src/components/molecules/ce-newsletter-registration/index.vue?9fd9","webpack://citi.emea/./src/components/molecules/ce-newsletter-registration/index.vue?2e95","webpack://citi.emea/./src/components/molecules/ce-radio-buttons/index.vue","webpack://citi.emea/src/components/molecules/ce-radio-buttons/index.vue","webpack://citi.emea/./src/components/molecules/ce-radio-buttons/index.vue?256c","webpack://citi.emea/./src/components/molecules/ce-radio-buttons/index.vue?9c65","webpack://citi.emea/./src/components/molecules/ce-supports-and-resistances-table/index.vue","webpack://citi.emea/src/components/molecules/ce-supports-and-resistances-table/index.vue","webpack://citi.emea/./src/components/molecules/ce-supports-and-resistances-table/index.vue?3fc1","webpack://citi.emea/./src/components/molecules/ce-supports-and-resistances-table/index.vue?b05e","webpack://citi.emea/./src/components/molecules/ce-tab-element/index.vue","webpack://citi.emea/src/components/molecules/ce-tab-element/index.vue","webpack://citi.emea/./src/components/molecules/ce-tab-element/index.vue?14b1","webpack://citi.emea/./src/components/molecules/ce-tab-element/index.vue?1182","webpack://citi.emea/./src/components/molecules/ce-text-image-teaser/index.vue","webpack://citi.emea/src/components/molecules/ce-text-image-teaser/index.vue","webpack://citi.emea/./src/components/molecules/ce-text-image-teaser/index.vue?6590","webpack://citi.emea/./src/components/molecules/ce-text-image-teaser/index.vue?23e6","webpack://citi.emea/./src/components/molecules/ce-video-info/index.vue","webpack://citi.emea/./src/utils/youtube-frame-api.ts","webpack://citi.emea/src/components/molecules/ce-video-info/index.vue","webpack://citi.emea/./src/components/molecules/ce-video-info/index.vue?f60c","webpack://citi.emea/./src/components/molecules/ce-video-info/index.vue?deaf","webpack://citi.emea/./src/components/molecules/ce-video-preview/index.vue","webpack://citi.emea/src/components/molecules/ce-video-preview/index.vue","webpack://citi.emea/./src/components/molecules/ce-video-preview/index.vue?0d72","webpack://citi.emea/./src/components/molecules/ce-video-preview/index.vue?7717","webpack://citi.emea/./src/components/molecules/ce-video/index.vue","webpack://citi.emea/src/components/molecules/ce-video/index.vue","webpack://citi.emea/./src/components/molecules/ce-video/index.vue?452a","webpack://citi.emea/./src/components/molecules/ce-video/index.vue?8c7c","webpack://citi.emea/./src/components/molecules/charts/ad-chart-legend.vue","webpack://citi.emea/src/components/molecules/charts/ad-chart-legend.vue","webpack://citi.emea/./src/components/molecules/charts/ad-chart-legend.vue?12c8","webpack://citi.emea/./src/components/molecules/charts/ad-chart-legend.vue?cabd","webpack://citi.emea/./src/components/molecules/charts/ad-chart-periods.vue","webpack://citi.emea/src/components/molecules/charts/ad-chart-periods.vue","webpack://citi.emea/./src/components/molecules/charts/ad-chart-periods.vue?c2b7","webpack://citi.emea/./src/components/molecules/charts/ad-chart-periods.vue?7676","webpack://citi.emea/./src/components/molecules/charts/ad-product-chart/index.vue","webpack://citi.emea/src/components/molecules/charts/ad-product-chart/index.vue","webpack://citi.emea/./src/components/molecules/charts/ad-product-chart/index.vue?8ba7","webpack://citi.emea/./src/components/molecules/charts/ad-product-chart/index.vue?e10c","webpack://citi.emea/./src/components/molecules/charts/ad-realtime-chart/index.vue","webpack://citi.emea/src/components/molecules/charts/ad-realtime-chart/index.vue","webpack://citi.emea/./src/components/molecules/charts/ad-realtime-chart/index.vue?21ff","webpack://citi.emea/./src/components/molecules/charts/ad-realtime-chart/index.vue?38ad","webpack://citi.emea/./src/components/molecules/charts/ad-stock-chart.vue","webpack://citi.emea/src/components/molecules/charts/ad-stock-chart.vue","webpack://citi.emea/./src/components/molecules/charts/ad-stock-chart.vue?cb03","webpack://citi.emea/./src/components/molecules/charts/ad-stock-chart.vue?4dfd","webpack://citi.emea/./src/components/molecules/charts/ad-underlying-chart/index.vue","webpack://citi.emea/src/components/molecules/charts/ad-underlying-chart/index.vue","webpack://citi.emea/./src/components/molecules/charts/ad-underlying-chart/index.vue?5f9c","webpack://citi.emea/./src/components/molecules/charts/ad-underlying-chart/index.vue?070e","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-daterange-one/index.vue","webpack://citi.emea/src/components/molecules/filter-components/ad-filter-daterange-one/index.vue","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-daterange-one/index.vue?068b","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-daterange-one/index.vue?0fa5","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-daterange/index.vue","webpack://citi.emea/src/components/molecules/filter-components/ad-filter-daterange/index.vue","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-daterange/index.vue?8581","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-daterange/index.vue?d8cf","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-numeric-range-holder/index.vue","webpack://citi.emea/src/components/molecules/filter-components/ad-filter-numeric-range-holder/index.vue","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-numeric-range-holder/index.vue?ba71","webpack://citi.emea/./src/components/molecules/filter-components/ad-filter-numeric-range-holder/index.vue?18a9","webpack://citi.emea/./src/components/molecules/instruments/ad-best-match-search-filter-container/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-best-match-search-filter-container/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-best-match-search-filter-container/index.vue?a57d","webpack://citi.emea/./src/components/molecules/instruments/ad-best-match-search-filter-container/index.vue?18e5","webpack://citi.emea/./src/components/molecules/instruments/ad-product-description/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-product-description/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-product-description/index.vue?726f","webpack://citi.emea/./src/components/molecules/instruments/ad-product-description/index.vue?c43f","webpack://citi.emea/./src/components/molecules/instruments/ad-product-detail-block-teaser/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-product-detail-block-teaser/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-product-detail-block-teaser/index.vue?6e10","webpack://citi.emea/./src/components/molecules/instruments/ad-product-detail-block-teaser/index.vue?5a7f","webpack://citi.emea/./src/components/molecules/instruments/ad-product-main-information/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-product-main-information/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-product-main-information/index.vue?b62e","webpack://citi.emea/./src/components/molecules/instruments/ad-product-main-information/index.vue?bf49","webpack://citi.emea/./src/components/molecules/instruments/ad-product-price-data/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-product-price-data/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-product-price-data/index.vue?7794","webpack://citi.emea/./src/components/molecules/instruments/ad-product-price-data/index.vue?52e9","webpack://citi.emea/./src/components/molecules/instruments/ad-top-leverage-table/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-top-leverage-table/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-top-leverage-table/index.vue?c273","webpack://citi.emea/./src/components/molecules/instruments/ad-top-leverage-table/index.vue?e675","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-indications-table/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-indications-table/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-indications-table/index.vue?1628","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-indications-table/index.vue?7327","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-blog/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-teaser-blog/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-blog/index.vue?5980","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-blog/index.vue?b56c","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-chart/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-teaser-chart/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-chart/index.vue?948e","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-chart/index.vue?5c98","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-default/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-teaser-default/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-default/index.vue?47d7","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-default/index.vue?acd0","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-price-data/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-teaser-price-data/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-price-data/index.vue?fe12","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-price-data/index.vue?6b91","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-realtime-data/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-teaser-realtime-data/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-realtime-data/index.vue?5d1b","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-teaser-realtime-data/index.vue?c7c3","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-top-flop-table/index.vue","webpack://citi.emea/src/components/molecules/instruments/ad-underlying-top-flop-table/index.vue","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-top-flop-table/index.vue?e156","webpack://citi.emea/./src/components/molecules/instruments/ad-underlying-top-flop-table/index.vue?9e2c","webpack://citi.emea/./src/components/molecules/news/ad-news-teasers/index.vue","webpack://citi.emea/src/components/molecules/news/ad-news-teasers/index.vue","webpack://citi.emea/./src/components/molecules/news/ad-news-teasers/index.vue?6183","webpack://citi.emea/./src/components/molecules/news/ad-news-teasers/index.vue?9fa6","webpack://citi.emea/./src/components/molecules/news/ce-ad-news-teaser/index.vue","webpack://citi.emea/src/components/molecules/news/ce-ad-news-teaser/index.vue","webpack://citi.emea/./src/components/molecules/news/ce-ad-news-teaser/index.vue?1139","webpack://citi.emea/./src/components/molecules/news/ce-ad-news-teaser/index.vue?a040","webpack://citi.emea/./src/components/molecules/news/ce-ad-news-with-short-news-teaser/index.vue","webpack://citi.emea/src/components/molecules/news/ce-ad-news-with-short-news-teaser/index.vue","webpack://citi.emea/./src/components/molecules/news/ce-ad-news-with-short-news-teaser/index.vue?853c","webpack://citi.emea/./src/components/molecules/news/ce-ad-news-with-short-news-teaser/index.vue?6a06","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-item-teaser/index.vue","webpack://citi.emea/src/components/molecules/news/ce-ad-short-news-item-teaser/index.vue","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-item-teaser/index.vue?b109","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-item-teaser/index.vue?6b01","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-item/index.vue","webpack://citi.emea/src/components/molecules/news/ce-ad-short-news-item/index.vue","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-item/index.vue?5009","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-item/index.vue?183c","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-teaser-container/index.vue","webpack://citi.emea/src/components/molecules/news/ce-ad-short-news-teaser-container/index.vue","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-teaser-container/index.vue?876c","webpack://citi.emea/./src/components/molecules/news/ce-ad-short-news-teaser-container/index.vue?f537","webpack://citi.emea/./src/components/molecules/news/ce-news-teaser-markets/index.vue","webpack://citi.emea/src/components/molecules/news/ce-news-teaser-markets/index.vue","webpack://citi.emea/./src/components/molecules/news/ce-news-teaser-markets/index.vue?33d4","webpack://citi.emea/./src/components/molecules/news/ce-news-teaser-markets/index.vue?ac84","webpack://citi.emea/./src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-container/index.vue","webpack://citi.emea/src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-container/index.vue","webpack://citi.emea/./src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-container/index.vue?bdf0","webpack://citi.emea/./src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-container/index.vue?a583","webpack://citi.emea/./src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-item/index.vue","webpack://citi.emea/src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-item/index.vue","webpack://citi.emea/./src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-item/index.vue?137f","webpack://citi.emea/./src/components/molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-item/index.vue?40a0","webpack://citi.emea/./src/components/molecules/product-history/ad-product-rolling-history/index.vue","webpack://citi.emea/src/components/molecules/product-history/ad-product-rolling-history/index.vue","webpack://citi.emea/./src/components/molecules/product-history/ad-product-rolling-history/index.vue?adcf","webpack://citi.emea/./src/components/molecules/product-history/ad-product-rolling-history/index.vue?4e2d","webpack://citi.emea/./src/components/molecules/product-history/ad-product-strike-history/index.vue","webpack://citi.emea/src/components/molecules/product-history/ad-product-strike-history/index.vue","webpack://citi.emea/./src/components/molecules/product-history/ad-product-strike-history/index.vue?5606","webpack://citi.emea/./src/components/molecules/product-history/ad-product-strike-history/index.vue?065e","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-image/index.vue","webpack://citi.emea/src/components/molecules/sekeleton/ad-skeleton-image/index.vue","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-image/index.vue?a5cf","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-image/index.vue?7807","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-input/index.vue","webpack://citi.emea/src/components/molecules/sekeleton/ad-skeleton-input/index.vue","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-input/index.vue?1dd1","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-input/index.vue?68c7","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-radio-buttons/index.vue","webpack://citi.emea/src/components/molecules/sekeleton/ad-skeleton-radio-buttons/index.vue","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-radio-buttons/index.vue?3ef5","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-radio-buttons/index.vue?3d7e","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-table/index.vue","webpack://citi.emea/src/components/molecules/sekeleton/ad-skeleton-table/index.vue","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-table/index.vue?05bf","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-table/index.vue?b25e","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-text/index.vue","webpack://citi.emea/src/components/molecules/sekeleton/ad-skeleton-text/index.vue","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-text/index.vue?4c8a","webpack://citi.emea/./src/components/molecules/sekeleton/ad-skeleton-text/index.vue?f247","webpack://citi.emea/./src/components/organisms/ad-best-match-search/ad-best-match-search-table.vue","webpack://citi.emea/src/components/organisms/ad-best-match-search/ad-best-match-search-table.vue","webpack://citi.emea/./src/components/organisms/ad-best-match-search/ad-best-match-search-table.vue?9685","webpack://citi.emea/./src/components/organisms/ad-best-match-search/ad-best-match-search-table.vue?1af9","webpack://citi.emea/./src/components/organisms/ad-best-match-search/index.vue","webpack://citi.emea/src/components/organisms/ad-best-match-search/index.vue","webpack://citi.emea/./src/components/organisms/ad-best-match-search/index.vue?fa23","webpack://citi.emea/./src/components/organisms/ad-best-match-search/index.vue?e229","webpack://citi.emea/./src/components/organisms/ad-disclaimer/index.vue","webpack://citi.emea/src/components/organisms/ad-disclaimer/index.vue","webpack://citi.emea/./src/components/organisms/ad-disclaimer/index.vue?fc0c","webpack://citi.emea/./src/components/organisms/ad-disclaimer/index.vue?44cf","webpack://citi.emea/./src/components/organisms/ad-error/index.vue","webpack://citi.emea/src/components/organisms/ad-error/index.vue","webpack://citi.emea/./src/components/organisms/ad-error/index.vue?5b55","webpack://citi.emea/./src/components/organisms/ad-error/index.vue?cb20","webpack://citi.emea/./src/components/organisms/ad-general-search/index.vue","webpack://citi.emea/src/components/organisms/ad-general-search/index.vue","webpack://citi.emea/./src/components/organisms/ad-general-search/index.vue?0be8","webpack://citi.emea/./src/components/organisms/ad-general-search/index.vue?589e","webpack://citi.emea/./src/components/organisms/ad-important-notice/index.vue","webpack://citi.emea/src/components/organisms/ad-important-notice/index.vue","webpack://citi.emea/./src/components/organisms/ad-important-notice/index.vue?1936","webpack://citi.emea/./src/components/organisms/ad-important-notice/index.vue?227e","webpack://citi.emea/./src/components/organisms/ad-main-load-data-guard/index.vue","webpack://citi.emea/src/components/organisms/ad-main-load-data-guard/index.vue","webpack://citi.emea/./src/components/organisms/ad-main-load-data-guard/index.vue?afa7","webpack://citi.emea/./src/components/organisms/ad-main-load-data-guard/index.vue?4e83","webpack://citi.emea/./src/components/organisms/ad-priip-search/index.vue","webpack://citi.emea/src/components/organisms/ad-priip-search/index.vue","webpack://citi.emea/./src/components/organisms/ad-priip-search/index.vue?773f","webpack://citi.emea/./src/components/organisms/ad-priip-search/index.vue?07ac","webpack://citi.emea/./src/components/organisms/ad-product-details-load-guard/index.vue","webpack://citi.emea/src/components/organisms/ad-product-details-load-guard/index.vue","webpack://citi.emea/./src/components/organisms/ad-product-details-load-guard/index.vue?8048","webpack://citi.emea/./src/components/organisms/ad-product-details-load-guard/index.vue?cc5a","webpack://citi.emea/./src/components/organisms/ad-product-details/ad-product-header.vue","webpack://citi.emea/src/components/organisms/ad-product-details/ad-product-header.vue","webpack://citi.emea/./src/components/organisms/ad-product-details/ad-product-header.vue?e21d","webpack://citi.emea/./src/components/organisms/ad-product-details/ad-product-header.vue?8292","webpack://citi.emea/./src/components/organisms/ad-product-details/ad-product-page-title.vue","webpack://citi.emea/src/components/organisms/ad-product-details/ad-product-page-title.vue","webpack://citi.emea/./src/components/organisms/ad-product-details/ad-product-page-title.vue?8159","webpack://citi.emea/./src/components/organisms/ad-product-details/ad-product-page-title.vue?ec3e","webpack://citi.emea/./src/components/organisms/ad-product-details/index.vue","webpack://citi.emea/src/components/organisms/ad-product-details/index.vue","webpack://citi.emea/./src/components/organisms/ad-product-details/index.vue?1ddf","webpack://citi.emea/./src/components/organisms/ad-product-details/index.vue?765d","webpack://citi.emea/./src/components/organisms/ad-quick-search/index.vue","webpack://citi.emea/src/components/organisms/ad-quick-search/index.vue","webpack://citi.emea/./src/components/organisms/ad-quick-search/index.vue?d345","webpack://citi.emea/./src/components/organisms/ad-quick-search/index.vue?82cd","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/_blog-article-overview-article-chunk.vue","webpack://citi.emea/src/components/organisms/ce-blog-article-overview/_blog-article-overview-article-chunk.vue","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/_blog-article-overview-article-chunk.vue?632f","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/_blog-article-overview-article-chunk.vue?4af6","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/_blog-article-overview-highlight-article.vue","webpack://citi.emea/src/components/organisms/ce-blog-article-overview/_blog-article-overview-highlight-article.vue","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/_blog-article-overview-highlight-article.vue?a39c","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/_blog-article-overview-highlight-article.vue?8c18","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/index.vue","webpack://citi.emea/src/components/organisms/ce-blog-article-overview/index.vue","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/index.vue?b10d","webpack://citi.emea/./src/components/organisms/ce-blog-article-overview/index.vue?d8d0","webpack://citi.emea/./src/components/organisms/ce-contact/index.vue","webpack://citi.emea/src/components/organisms/ce-contact/index.vue","webpack://citi.emea/./src/components/organisms/ce-contact/index.vue?150a","webpack://citi.emea/./src/components/organisms/ce-contact/index.vue?5da2","webpack://citi.emea/./src/components/organisms/ce-footer/index.vue","webpack://citi.emea/src/components/organisms/ce-footer/index.vue","webpack://citi.emea/./src/components/organisms/ce-footer/index.vue?80ba","webpack://citi.emea/./src/components/organisms/ce-footer/index.vue?bc58","webpack://citi.emea/./src/components/organisms/ce-header/ce-document-search/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-document-search/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-document-search/index.vue?ba1d","webpack://citi.emea/./src/components/organisms/ce-header/ce-document-search/index.vue?2a18","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-back/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-header-back/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-back/index.vue?ea43","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-back/index.vue?c992","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-nav-item-dropdown/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-header-nav/ce-nav-item-dropdown/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-nav-item-dropdown/index.vue?0c42","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-nav-item-dropdown/index.vue?cd0e","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item-info/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item-info/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item-info/index.vue?7f3f","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item-info/index.vue?a608","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item/index.vue?922d","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/ce-sub-nav-item/index.vue?f816","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-header-nav/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/index.vue?855e","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-nav/index.vue?718d","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-search/index.vue","webpack://citi.emea/src/components/organisms/ce-header/ce-header-search/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-search/index.vue?c17b","webpack://citi.emea/./src/components/organisms/ce-header/ce-header-search/index.vue?7515","webpack://citi.emea/./src/components/organisms/ce-header/index.vue","webpack://citi.emea/src/components/organisms/ce-header/index.vue","webpack://citi.emea/./src/components/organisms/ce-header/index.vue?e06f","webpack://citi.emea/./src/components/organisms/ce-header/index.vue?f39e","webpack://citi.emea/./src/components/organisms/ce-newsletter-subscription/index.vue","webpack://citi.emea/src/components/organisms/ce-newsletter-subscription/index.vue","webpack://citi.emea/./src/components/organisms/ce-newsletter-subscription/index.vue?b968","webpack://citi.emea/./src/components/organisms/ce-newsletter-subscription/index.vue?f259","webpack://citi.emea/./src/components/organisms/ce-sub-page-tiles/index.vue","webpack://citi.emea/src/components/organisms/ce-sub-page-tiles/index.vue","webpack://citi.emea/./src/components/organisms/ce-sub-page-tiles/index.vue?c27b","webpack://citi.emea/./src/components/organisms/ce-sub-page-tiles/index.vue?1421","webpack://citi.emea/./src/components/organisms/ce-tiles/_tile-chunk.vue","webpack://citi.emea/src/components/organisms/ce-tiles/_tile-chunk.vue","webpack://citi.emea/./src/components/organisms/ce-tiles/_tile-chunk.vue?7b38","webpack://citi.emea/./src/components/organisms/ce-tiles/_tile-chunk.vue?a556","webpack://citi.emea/./src/components/organisms/ce-tiles/tiles.vue","webpack://citi.emea/src/components/organisms/ce-tiles/tiles.vue","webpack://citi.emea/./src/components/organisms/ce-tiles/tiles.vue?efdc","webpack://citi.emea/./src/components/organisms/ce-tiles/tiles.vue?5d80","webpack://citi.emea/./src/components/organisms/pages/ad-best-match-search-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-best-match-search-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-best-match-search-page/index.vue?b8cf","webpack://citi.emea/./src/components/organisms/pages/ad-best-match-search-page/index.vue?5672","webpack://citi.emea/./src/components/organisms/pages/ad-blog-page-base/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-blog-page-base/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-blog-page-base/index.vue?a556","webpack://citi.emea/./src/components/organisms/pages/ad-blog-page-base/index.vue?9332","webpack://citi.emea/./src/components/organisms/pages/ad-education-video-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-education-video-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-education-video-page/index.vue?c299","webpack://citi.emea/./src/components/organisms/pages/ad-education-video-page/index.vue?1ce4","webpack://citi.emea/./src/components/organisms/pages/ad-priip-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-priip-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-priip-page/index.vue?065a","webpack://citi.emea/./src/components/organisms/pages/ad-priip-page/index.vue?b46a","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/ad-product-search-sorting.vue","webpack://citi.emea/src/components/organisms/pages/ad-product-search-page/ad-product-search-sorting.vue","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/ad-product-search-sorting.vue?db46","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/ad-product-search-sorting.vue?5201","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/ad-product-search-table.vue","webpack://citi.emea/src/components/organisms/pages/ad-product-search-page/ad-product-search-table.vue","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/ad-product-search-table.vue?383a","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/ad-product-search-table.vue?8f4d","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-category.vue","webpack://citi.emea/src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-category.vue","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-category.vue?362e","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-category.vue?7b88","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-container.vue","webpack://citi.emea/src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-container.vue","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-container.vue?d3cd","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-container.vue?d7e2","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-dropdown.vue","webpack://citi.emea/src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-dropdown.vue","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-dropdown.vue?e3bd","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-dropdown.vue?bedc","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-product-search-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/index.vue?c730","webpack://citi.emea/./src/components/organisms/pages/ad-product-search-page/index.vue?15dd","webpack://citi.emea/./src/components/organisms/pages/ad-realtime-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-realtime-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-realtime-page/index.vue?efa9","webpack://citi.emea/./src/components/organisms/pages/ad-realtime-page/index.vue?70d1","webpack://citi.emea/./src/components/organisms/pages/ad-structured-products-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-structured-products-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-structured-products-page/index.vue?f503","webpack://citi.emea/./src/components/organisms/pages/ad-structured-products-page/index.vue?0f09","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/ad-product-types-count.vue","webpack://citi.emea/src/components/organisms/pages/ad-underlying-detail-page/ad-product-types-count.vue","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/ad-product-types-count.vue?c946","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/ad-product-types-count.vue?039c","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/ad-underlying-detail-page-header.vue","webpack://citi.emea/src/components/organisms/pages/ad-underlying-detail-page/ad-underlying-detail-page-header.vue","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/ad-underlying-detail-page-header.vue?27f4","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/ad-underlying-detail-page-header.vue?515e","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-underlying-detail-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/index.vue?8cbc","webpack://citi.emea/./src/components/organisms/pages/ad-underlying-detail-page/index.vue?87a1","webpack://citi.emea/./src/components/organisms/pages/ad-watchlist-page/index.vue","webpack://citi.emea/src/components/organisms/pages/ad-watchlist-page/index.vue","webpack://citi.emea/./src/components/organisms/pages/ad-watchlist-page/index.vue?586b","webpack://citi.emea/./src/components/organisms/pages/ad-watchlist-page/index.vue?68ca","webpack://citi.emea/./src/components/organisms/teaser/ad-article-overview-teaser-container/index.vue","webpack://citi.emea/src/components/organisms/teaser/ad-article-overview-teaser-container/index.vue","webpack://citi.emea/./src/components/organisms/teaser/ad-article-overview-teaser-container/index.vue?fd8d","webpack://citi.emea/./src/components/organisms/teaser/ad-article-overview-teaser-container/index.vue?3052","webpack://citi.emea/./src/components/organisms/teaser/ad-best-match-search-teaser/index.vue","webpack://citi.emea/src/components/organisms/teaser/ad-best-match-search-teaser/index.vue","webpack://citi.emea/./src/components/organisms/teaser/ad-best-match-search-teaser/index.vue?0603","webpack://citi.emea/./src/components/organisms/teaser/ad-best-match-search-teaser/index.vue?9154","webpack://citi.emea/./src/components/molecules/charts/ad-chart-base.ts","webpack://citi.emea/./src/components/molecules/product-history/ad-product-history-base.ts","webpack://citi.emea/./src/plugins/bootstrap-vue.ts","webpack://citi.emea/./src/plugins/vue-select.ts","webpack://citi.emea/./src/plugins/vue-cookies.ts","webpack://citi.emea/./src/plugins/vue-screen.ts","webpack://citi.emea/./src/plugins/vue-logger.ts","webpack://citi.emea/./src/filters/vue-filter-value-format.ts","webpack://citi.emea/./src/filters/vue-filter-underlying-translation.ts","webpack://citi.emea/./src/directives/appear.ts","webpack://citi.emea/./src/directives/appear-delay.ts","webpack://citi.emea/./src/directives/helper/viewportChecker.ts","webpack://citi.emea/./src/directives/appear-trigger.ts","webpack://citi.emea/./src/directives/form-element-state.ts","webpack://citi.emea/./src/directives/hide-element-by-same-parent-previous-sibling.ts","webpack://citi.emea/./src/directives/on-viewport-enter.ts","webpack://citi.emea/./src/directives/sortable-table.ts","webpack://citi.emea/./src/directives/register-anchor-slug.ts","webpack://citi.emea/./src/directives/attach-mutation-observer.ts","webpack://citi.emea/./src/components/_globals.ts","webpack://citi.emea/./src/main.ts","webpack://citi.emea/./src/state/modules/best-match.ts","webpack://citi.emea/./src/state/modules/field-formats.ts","webpack://citi.emea/./src/state/modules/html-anchors.ts","webpack://citi.emea/./src/state/modules/priip.ts","webpack://citi.emea/./src/state/modules/product.ts","webpack://citi.emea/./src/utils/sorting-helper.ts","webpack://citi.emea/./src/state/modules/realtime.ts","webpack://citi.emea/./src/state/modules/translations.ts","webpack://citi.emea/./src/state/modules/underlying.ts","webpack://citi.emea/./src/state/modules/watchlist.ts","webpack://citi.emea/./src/state/plugins/light-streamer/pushing-helper.ts","webpack://citi.emea/./src/state/modules/index.ts","webpack://citi.emea/./src/utils/dispatch-action-for-all-modules.ts","webpack://citi.emea/./src/state/plugins/persist/index.ts","webpack://citi.emea/./src/state/plugins/shared-mutations/index.ts","webpack://citi.emea/./src/state/store.ts","webpack://citi.emea/./src/types/enumerations.ts","webpack://citi.emea/./src/types/type-guards.ts","webpack://citi.emea/./src/types/vue-api.ts","webpack://citi.emea/./src/utils/constants.ts","webpack://citi.emea/./src/utils/cookie.ts","webpack://citi.emea/./src/utils/culture-helper.ts","webpack://citi.emea/./src/utils/date-helper.ts","webpack://citi.emea/./src/utils/document-service.ts","webpack://citi.emea/./src/utils/download-file.ts","webpack://citi.emea/./src/utils/dropdown-option-provider.ts","webpack://citi.emea/./src/utils/enum-value-helper.ts","webpack://citi.emea/./src/utils/http-service.ts","webpack://citi.emea/./src/utils/instrument-search-helper.ts","webpack://citi.emea/./src/utils/query-param-helper.ts","webpack://citi.emea/./src/utils/scroll-helpers.ts","webpack://citi.emea/./src/utils/table-columns-helper.ts","webpack://citi.emea/./src/utils/url-helper.ts","webpack://citi.emea/./src/utils/value-formatter/format-helper.ts","webpack://citi.emea/./src/utils/value-formatter/formats-selectors.ts","webpack://citi.emea/./src/utils/value-formatter/format-selecting-service.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/de-de.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/en-au.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/en-de.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/en-fi.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/en-fr.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/en-nl.ts","webpack://citi.emea/./src/utils/value-formatter/custom-locales/en-pt.ts","webpack://citi.emea/./src/utils/value-formatter/numeral-locales.ts","webpack://citi.emea/./src/utils/value-formatter/numeral-custom-currency-formatter.ts","webpack://citi.emea/./src/utils/value-formatter/formatters.ts","webpack://citi.emea/./src/utils/value-formatter/formatting-service.ts","webpack://citi.emea/./src/utils/value-formatter/ordinal-custom-formatter.ts","webpack://citi.emea/./src/utils/vnodes-filter.ts","webpack://citi.emea/./src/utils/web-tracking.ts","webpack://citi.emea/./src/components/ sync .*\\.vue$","webpack://citi.emea/./src/state/modules/ sync ^((","webpack://citi.emea/webpack/bootstrap","webpack://citi.emea/webpack/runtime/chunk loaded","webpack://citi.emea/webpack/runtime/compat get default export","webpack://citi.emea/webpack/runtime/define property getters","webpack://citi.emea/webpack/runtime/global","webpack://citi.emea/webpack/runtime/hasOwnProperty shorthand","webpack://citi.emea/webpack/runtime/make namespace object","webpack://citi.emea/webpack/runtime/node module decorator","webpack://citi.emea/webpack/runtime/publicPath","webpack://citi.emea/webpack/runtime/jsonp chunk loading","webpack://citi.emea/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{attrs:{\"id\":\"play-html\"}},[_c('div',[_vm._t(\"play-html\")],2)]),_c('b-modal',{attrs:{\"size\":\"xl\",\"id\":\"ad-adblocker-detection-modal\",\"hide-header\":\"\",\"no-close-on-backdrop\":\"\",\"ok-only\":\"\",\"body-class\":\"\"},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('b-container',[_c('b-row',{staticClass:\"mt-lg-5\"},[_c('b-col',{staticClass:\"pb-3 d-lg-block\",attrs:{\"lg\":\"4\",\"offset-lg\":\"8\"}},[_c('b-button',{attrs:{\"block\":\"\",\"text-wrap\":\"\",\"variant\":\"secondary\"},on:{\"click\":_vm.setHintViewed}},[_vm._t(\"ok-button\")],2)],1)],1)],1)]},proxy:true}],null,true),model:{value:(_vm.anyBlocked),callback:function ($$v) {_vm.anyBlocked=$$v},expression:\"anyBlocked\"}},[_c('div',{staticClass:\"mt-4\"},[_c('b-container',{staticClass:\"px-3 px-md-4 pb-4\"},[_c('b-row',[_c('b-col',[_c('div',{staticClass:\"inner pr-0 pr-md-3\"},[_vm._t(\"hint\")],2)])],1)],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div id=\"play-html\">\n <div>\n <slot name=\"play-html\"></slot>\n </div>\n </div>\n <b-modal\n v-model=\"anyBlocked\"\n size=\"xl\"\n id=\"ad-adblocker-detection-modal\"\n hide-header\n no-close-on-backdrop\n ok-only\n body-class=\"\"\n >\n <div class=\"mt-4\">\n <b-container class=\"px-3 px-md-4 pb-4\">\n <b-row>\n <b-col>\n <div class=\"inner pr-0 pr-md-3\">\n <slot name=\"hint\"></slot>\n </div>\n </b-col>\n </b-row>\n </b-container>\n </div>\n <template #modal-footer>\n <b-container>\n <b-row class=\"mt-lg-5\">\n <b-col lg=\"4\" offset-lg=\"8\" class=\"pb-3 d-lg-block\">\n <b-button block text-wrap variant=\"secondary\" @click=\"setHintViewed\">\n <slot name=\"ok-button\"></slot>\n </b-button>\n </b-col>\n </b-row>\n </b-container>\n </template>\n </b-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { AdBlockerDetectionBlockSettings } from '@/src/types/episerver-api';\nimport CookieManager from '@/src/utils/cookie';\n\n@Component({})\nexport default class AdAdblockerDetection extends Vue {\n @Inject() settingsProperty!: AdBlockerDetectionBlockSettings;\n private cookieManager!: CookieManager;\n public anyBlocked = false;\n\n created() {\n this.cookieManager = new CookieManager(this.$cookies);\n }\n\n mounted() {\n if (!this.isDetectionEnabled || this.wasAdBlockerHintViewed || !this.isAdBlockerDetected) {\n this.hideHintAndShowDisclaimer();\n return;\n }\n this.hideDisclaimerAndShowHint();\n }\n\n setHintViewed() {\n this.saveCookie();\n this.hideHintAndShowDisclaimer();\n }\n\n get isDetectionEnabled(): boolean {\n return this.settingsProperty.cssSelectors.length > 0;\n }\n\n get wasAdBlockerHintViewed(): boolean {\n return this.cookieManager.wasAdBlockerHintViewed();\n }\n\n get isAdBlockerDetected(): boolean {\n const elements = document.querySelectorAll(this.settingsProperty.cssSelectors);\n const blockedElements = Array.from(elements).filter((element) => {\n const displayValue = window.getComputedStyle(element, null).display;\n return displayValue === 'none';\n });\n\n return blockedElements.length > 0;\n }\n\n private hideHintAndShowDisclaimer() {\n this.hideHint();\n this.showDisclaimer();\n }\n\n private hideDisclaimerAndShowHint() {\n this.showHint();\n this.hideDisclaimer();\n }\n\n private showDisclaimer() {\n this.$nextTick(() => {\n this.$bvModal.show('ad-disclaimer-modal');\n });\n }\n\n private hideHint() {\n this.anyBlocked = false;\n }\n\n private showHint() {\n this.anyBlocked = true;\n }\n\n private hideDisclaimer() {\n this.$nextTick(() => {\n this.$bvModal.hide('ad-disclaimer-modal');\n });\n }\n\n private saveCookie(): void {\n this.cookieManager.saveAdBlockerHintViewed();\n }\n}\n</script>\n<style lang=\"scss\">\n.ce-content.hidden-by-position {\n position: absolute;\n top: -999px;\n left: -999px;\n min-width: 0;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=579cfa98\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=579cfa98&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._t(\"accordion-content\",null,{\"visibleAccordionIndex\":_vm.visibleAccordionIndex,\"mutationCallback\":_vm.onChildListMutation,\"removeHash\":_vm.removeHash})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <slot\n name=\"accordion-content\"\n :visibleAccordionIndex=\"visibleAccordionIndex\"\n :mutationCallback=\"onChildListMutation\"\n :removeHash=\"removeHash\"\n ></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { AccordionBlockPayloadSettings } from '@/src/types/episerver-api';\nimport { jumpToAnchor } from '@/src/utils/scroll-helpers';\nimport { Vue, Component, Inject } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdAnchorLinkAccordionContainer extends Vue {\n @Inject() settingsProperty!: AccordionBlockPayloadSettings | undefined;\n\n private isJumpToAnchorEnabled = true;\n public visibleAccordionIndex: number | null | undefined = 0;\n\n // Jump on mutation change. Requred due to accordion position change by post-loading content.\n onChildListMutation(mutations: MutationRecord[], observer: MutationObserver): void {\n if (this.isJumpToAnchorEnabled) {\n jumpToAnchor();\n }\n }\n\n removeHash() {\n history.replaceState('', document.title, window.location.pathname);\n }\n\n onHashChange(): void {\n const accordionIndex = this.tryGetAccordionIndexFromHash();\n\n if (typeof accordionIndex !== 'undefined' && accordionIndex !== null && accordionIndex >= 0) {\n this.visibleAccordionIndex = accordionIndex!;\n }\n }\n\n private tryGetAccordionIndexFromHash(): number | null | undefined {\n const anchor = location.hash.substring(1);\n if (!anchor || typeof this.settingsProperty === 'undefined') {\n return null;\n }\n return this.settingsProperty?.anchorIndexLookup[anchor];\n }\n\n mounted() {\n this.visibleAccordionIndex = this.settingsProperty?.defaultOpenIndex;\n this.onHashChange();\n window.onhashchange = (event: Event) => {\n event.preventDefault();\n this.onHashChange();\n };\n }\n\n updated() {\n // Disable jumping after some time, avoiding interfering with user interaction:\n setTimeout(() => (this.isJumpToAnchorEnabled = false), 3000);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=38faaa04\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',_vm._b({class:[\n { 'pt-4': _vm.mobileView },\n { 'pb-1': _vm.mobileView },\n _vm.mobileView ? 'collapse-mobileview' : 'collapse-fullview',\n ]},'div',_vm.$attrs,false),[(_vm.mobileView)?_c('a',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle\"}],staticClass:\"header\",attrs:{\"href\":_vm.collapseTarget},on:{\"click\":function($event){$event.preventDefault();}}},[_c('h3',[_c('ad-icon-chevron',{staticClass:\"mr-2\",attrs:{\"size\":\"m\",\"rotate\":_vm.iconRotation}}),_vm._t(\"header\")],2)]):_vm._e(),(!_vm.mobileView && _vm.showDesktopHeader)?_vm._t(\"header-desktop\",function(){return [_c('h2',{class:['mb-2', 'mb-lg-5', { 'fs-26': !_vm.$screen.xl }]},[_vm._t(\"header\")],2)]}):_vm._e(),_c('b-collapse',{ref:_vm.collapseId,attrs:{\"id\":_vm.collapseId,\"visible\":_vm.visible || !_vm.mobileView},on:{\"input\":_vm.toogleCollapse}},[_c('b-card-body',{staticClass:\"px-0 py-sm-0\"},[_vm._t(\"default\")],2)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n v-bind=\"$attrs\"\n v-bind:class=\"[\n { 'pt-4': mobileView },\n { 'pb-1': mobileView },\n mobileView ? 'collapse-mobileview' : 'collapse-fullview',\n ]\"\n >\n <a v-b-toggle v-if=\"mobileView\" :href=\"collapseTarget\" @click.prevent class=\"header\">\n <h3\n ><ad-icon-chevron size=\"m\" :rotate=\"iconRotation\" class=\"mr-2\"></ad-icon-chevron>\n <slot name=\"header\"></slot>\n </h3>\n </a>\n <slot name=\"header-desktop\" v-if=\"!mobileView && showDesktopHeader\">\n <h2 :class=\"['mb-2', 'mb-lg-5', { 'fs-26': !$screen.xl }]\"><slot name=\"header\"></slot></h2>\n </slot>\n <b-collapse :id=\"collapseId\" :visible=\"visible || !mobileView\" @input=\"toogleCollapse\" :ref=\"collapseId\">\n <b-card-body class=\"px-0 py-sm-0\">\n <slot name=\"default\"></slot>\n </b-card-body>\n </b-collapse>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { BCollapse } from 'bootstrap-vue';\n@Component({\n inheritAttrs: false,\n})\nexport default class AdCollapseOnMobile extends Vue {\n private static uuId = 0;\n private currentUuId = AdCollapseOnMobile.uuId++;\n\n @Prop({ type: Boolean, default: false }) showCollapsed!: boolean;\n @Prop({ default: 'sm' }) breakpoint!: string;\n @Prop({ default: true, type: Boolean }) showDesktopHeader!: boolean;\n private visible = false;\n\n private get collapseTarget() {\n return `#${this.collapseId}`;\n }\n private get collapseId(): string {\n return `typeTable-${this.currentUuId}`;\n }\n\n private get mobileView(): boolean {\n return !this.$screen[this.breakpoint];\n }\n\n private get iconRotation(): number {\n return this.visible ? 180 : 0;\n }\n\n created() {\n this.visible = !this.showCollapsed;\n }\n\n toogleCollapse(state: boolean) {\n this.visible = state;\n }\n\n @Watch('$screen.sm')\n forceOpen() {\n if (!this.mobileView) {\n (this.$refs[this.collapseId] as BCollapse).show = true;\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.collapse-mobileview {\n margin-top: -1px;\n margin-right: calc($grid-gutter-width / -2);\n margin-left: calc($grid-gutter-width / -2);\n border-top: 1px solid $peacock-blue;\n border-bottom: 1px solid $peacock-blue;\n padding: 0 $container-spacing;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0c1ce857\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0c1ce857&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-input',{attrs:{\"loading\":_vm.loading}},[_c('v-select',_vm._b({staticClass:\"ad-drop-down-list\",attrs:{\"components\":{ Deselect: _vm.Deselect },\"transition\":\"\",\"getOptionLabel\":_vm.getFilterText,\"clearable\":_vm.clearable,\"selectable\":_vm.isItemSelectable,\"value\":_vm.value,\"reduce\":(dropDownItem) => dropDownItem.value,\"multiple\":_vm.multiple,\"options\":_vm.dropdownItems,\"placeholder\":_vm.placeholder,\"required\":_vm.required},on:{\"open\":_vm.open,\"close\":_vm.close,\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"search\",fn:function({ attributes, events }){return [_c('input',_vm._g(_vm._b({directives:[{name:\"form-element-state\",rawName:\"v-form-element-state\",value:(_vm.formElementStateId),expression:\"formElementStateId\"}],staticClass:\"vs__search\",attrs:{\"id\":_vm.inputId,\"required\":_vm.isRequired}},'input',attributes,false),events))]}},{key:\"open-indicator\",fn:function({ attributes }){return [_c('ad-icon-chevron',_vm._b({attrs:{\"icon-color\":\"#002d72\",\"size\":\"s\",\"direction\":\"down\"}},'ad-icon-chevron',attributes,false))]}},{key:\"option\",fn:function(DropDownItem){return [(_vm.isHeader(DropDownItem))?_c('h6',{staticClass:\"m-0\"},[_vm._v(_vm._s(_vm.getText(DropDownItem)))]):(_vm.isSplitter(DropDownItem))?_c('hr',{staticClass:\"m-0 hr\"}):(_vm.multiple)?_c('span',[_c('b-form-checkbox',{attrs:{\"inline\":\"\",\"size\":\"lg\",\"disabled\":!(_vm.isItemSelectable(DropDownItem) || _vm.value == null || _vm.value.includes(DropDownItem.value)),\"checked\":_vm.value != null && _vm.value.includes(DropDownItem.value)}},[_vm._v(\" \"+_vm._s(_vm.getText(DropDownItem))+\" \")])],1):_c('span',[_vm._v(\" \"+_vm._s(_vm.getText(DropDownItem)))])]}}])},'v-select',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-input :loading=\"loading\">\n <v-select\n class=\"ad-drop-down-list\"\n :components=\"{ Deselect }\"\n v-bind=\"$attrs\"\n transition=\"\"\n :getOptionLabel=\"getFilterText\"\n :clearable=\"clearable\"\n :selectable=\"isItemSelectable\"\n @open=\"open\"\n @close=\"close\"\n :value=\"value\"\n @input=\"setValue\"\n :reduce=\"(dropDownItem) => dropDownItem.value\"\n :multiple=\"multiple\"\n :options=\"dropdownItems\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n >\n <template #search=\"{ attributes, events }\">\n <input\n class=\"vs__search\"\n v-form-element-state=\"formElementStateId\"\n v-bind=\"attributes\"\n v-on=\"events\"\n :id=\"inputId\"\n :required=\"isRequired\"\n />\n </template>\n <template #open-indicator=\"{ attributes }\">\n <ad-icon-chevron v-bind=\"attributes\" icon-color=\"#002d72\" size=\"s\" direction=\"down\" />\n </template>\n <template #option=\"DropDownItem\">\n <h6 v-if=\"isHeader(DropDownItem)\" class=\"m-0\">{{ getText(DropDownItem) }}</h6>\n <hr v-else-if=\"isSplitter(DropDownItem)\" class=\"m-0 hr\" />\n <span v-else-if=\"multiple\">\n <b-form-checkbox\n inline\n size=\"lg\"\n :disabled=\"!(isItemSelectable(DropDownItem) || value == null || value.includes(DropDownItem.value))\"\n :checked=\"value != null && value.includes(DropDownItem.value)\"\n >\n {{ getText(DropDownItem) }}\n </b-form-checkbox>\n </span>\n <span v-else> {{ getText(DropDownItem) }}</span>\n </template>\n </v-select>\n </ad-skeleton-input>\n</template>\n\n<script lang=\"ts\">\nimport { DropDownItemType } from '@src/types/enumerations';\nimport { VNode, CreateElement } from 'vue/types';\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { createAllOption } from '@/src/utils/dropdown-option-provider';\nimport { uniqBy } from 'lodash';\nimport { nameOf } from '@src/utils/table-columns-helper';\n\n@Component({\n inheritAttrs: false,\n data: function (this: Vue) {\n return {\n Deselect: {\n render: (createElement: CreateElement): VNode =>\n createElement('ad-icon-close', {\n attrs: {\n height: '0.625em',\n width: '0.625em',\n },\n }),\n },\n };\n },\n})\nexport default class AdDropDownList extends Vue {\n @Prop() formElementStateId!: string;\n @Prop() inputId!: string;\n @Prop({ default: false }) clearable!: boolean;\n @Prop({ default: false, type: Boolean }) required!: boolean;\n @Prop({ default: null }) value!: unknown | unknown[] | null;\n @Prop({ default: () => true, type: Function }) isSelectable!: (option: DropDownItem) => true;\n @Prop({ default: false, type: Boolean }) multiple!: boolean;\n @Prop({ required: true }) options!: Array<DropDownItem>;\n @Prop({ type: Number }) maxSelectableItems: number | undefined | null;\n @Prop({ default: false, type: Boolean }) loading!: boolean;\n\n private currentOptions: Array<DropDownItem> | null = null;\n private formGroupElement: HTMLElement | undefined | null;\n private isOpen = false;\n\n get dropdownItems(): DropDownItem[] {\n const allLabel = this.getAlItemsLabelText();\n this.currentOptions = [];\n this.currentOptions = [...this.options];\n\n if (allLabel && !this.multiple) {\n createAllOption(this.currentOptions, allLabel);\n }\n\n return uniqBy(this.currentOptions, nameOf<DropDownItem>('value'));\n }\n\n get isRequired() {\n return this.required && (this.value === null || (this.value as unknown[]).length === 0);\n }\n\n get placeholder(): string | null | undefined {\n const slot = this.$slots['multiple-placeholder'];\n return slot && slot.length && this.multiple ? slot[0].text?.trim() : null;\n }\n\n private getAlItemsLabelText(): string | null | undefined {\n const slot = this.$slots['all-items-label'];\n return slot && slot.length ? slot[0].text : null;\n }\n\n setValue(newValue: string | null): void {\n this.$emit('input', newValue);\n this.$emit('selected-value-changed');\n }\n\n @Watch('mutiple')\n @Watch('value')\n validateItem() {\n this.formGroupElement = document.getElementById(this.formElementStateId);\n if (this.formGroupElement && !this.isOpen) {\n if (this.isRequired) {\n this.formGroupElement.classList.add('error');\n } else {\n this.formGroupElement.classList.remove('error');\n }\n }\n }\n\n isHeader(item: DropDownItem): boolean {\n return item.type == DropDownItemType.header;\n }\n\n isSplitter(item: DropDownItem): boolean {\n return item.type == DropDownItemType.splitter;\n }\n\n isItem(item: DropDownItem): boolean {\n return item.type == DropDownItemType.item;\n }\n\n isItemSelectable(item: DropDownItem): boolean {\n return this.isItem(item) && this.isMaxSelectableItemIsNotReached() && this.isSelectable(item);\n }\n\n isMaxSelectableItemIsNotReached() {\n return this.maxSelectableItems ? ((this.value as unknown[])?.length ?? 0) < this.maxSelectableItems : true;\n }\n\n open() {\n this.isOpen = true;\n if (this.formGroupElement) {\n this.formGroupElement.classList.remove('error');\n }\n }\n\n close() {\n this.isOpen = false;\n this.validateItem();\n }\n\n /**\n * Returns text to be rendered on option for items and headers\n * @param {DropDownItem} option\n */\n getText(option: DropDownItem): string | number | undefined {\n if (option?.type !== DropDownItemType.splitter) return option?.text || option?.value || '';\n else return undefined;\n }\n\n /**\n * Returns text for filtering. Only selectable items should be returned\n * @param {DropDownItem} option\n */\n getFilterText(option: DropDownItem): string | null | undefined {\n if (option?.type === DropDownItemType.item) return option.text;\n else return undefined;\n }\n}\n</script>\n\n<style lang=\"scss\">\n$select-space: rem(10);\n\n.ad-drop-down-list {\n margin-right: -$select-space;\n margin-left: -$select-space;\n padding-right: $select-space;\n\n /*\n Input styling\n */\n /* stylelint-disable-next-line */\n .vs__dropdown-toggle {\n border-style: none;\n padding: 0;\n\n /* stylelint-disable-next-line */\n .vs__selected-options {\n margin-top: -$select-space;\n font-size: $fs-14;\n\n /* stylelint-disable-next-line */\n input {\n margin-top: $select-space;\n margin-left: rem(7);\n padding: 0;\n font-size: $input-font-size;\n }\n\n /* stylelint-disable-next-line */\n > .vs__selected {\n opacity: 1;\n z-index: 2;\n margin-top: 0;\n margin-top: $select-space;\n margin-left: $select-space;\n border-style: none;\n padding: 0;\n padding-right: $select-space * 3;\n padding-left: $select-space;\n max-width: calc(100% - 20px); // fix to prevent input field shifting to next line\n color: $white;\n font-size: $input-font-size;\n }\n }\n }\n\n &.vs--multiple {\n /* stylelint-disable-next-line */\n .vs__selected {\n display: block;\n position: relative;\n height: 23px;\n }\n }\n\n &.vs--single {\n /* stylelint-disable-next-line */\n .vs__selected-options {\n flex-wrap: nowrap;\n overflow: hidden;\n white-space: nowrap;\n font-size: $input-font-size;\n\n /* stylelint-disable-next-line */\n > .vs__selected {\n padding-left: 0;\n color: $input-color;\n }\n }\n }\n\n &.vs--open {\n /* stylelint-disable-next-line */\n .vs__search {\n &,\n &:focus {\n position: initial;\n }\n }\n }\n\n /* stylelint-disable-next-line */\n .vs__deselect {\n position: absolute;\n top: calc(50% - #{$select-space / 2});\n right: $select-space;\n color: $white;\n }\n\n /* stylelint-disable-next-line */\n .vs__clear {\n position: relative;\n top: -$select-space;\n height: $select-space;\n }\n\n /* stylelint-disable-next-line */\n .vs__actions {\n cursor: pointer;\n padding-bottom: 5px;\n }\n /*\n Dropdown styling\n */\n /* stylelint-disable-next-line */\n > .vs__dropdown-menu {\n margin-top: -4px;\n border: solid 2px $peacock-blue;\n border-top-style: none;\n border-radius: 0 0 0.4rem 0.4rem;\n background-color: $white;\n padding-bottom: 15px;\n overflow-x: hidden;\n\n li:first-child {\n border-top: 1px $gunmetal dashed;\n padding-top: 20px;\n }\n\n h6 {\n color: $marine-blue;\n font-weight: bold;\n }\n }\n\n /* stylelint-disable-next-line */\n .vs__dropdown-option {\n padding: 5px 10px;\n white-space: normal;\n }\n /* stylelint-disable-next-line */\n .vs__dropdown-option--selected {\n color: $peacock-blue;\n }\n /* stylelint-disable-next-line */\n .vs__dropdown-option--highlight {\n font-weight: bold;\n }\n\n /* stylelint-disable-next-line */\n .vs__dropdown-option--disabled {\n color: $light-blue-grey;\n }\n\n /* stylelint-disable-next-line */\n .vs__open-indicator {\n color: $marine-blue;\n font-size: small;\n }\n}\n\n.focus {\n .ad-drop-down-list {\n /* stylelint-disable-next-line */\n .vs__selected {\n opacity: 1;\n color: $marine-blue;\n font-size: $input-font-size;\n }\n }\n}\n.form-group {\n .ad-drop-down-list {\n /* stylelint-disable-next-line */\n .vs__actions {\n position: relative;\n top: rem(-8);\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44cd44de\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44cd44de&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisibleFunc(_vm.valueProperty))?_c('b-form-group',{staticClass:\"filter-numeric-input\",class:{ error: _vm.isError, 'in-valid': _vm.required && (_vm.value === null || _vm.value === undefined) },attrs:{\"label-for\":`numeric-range-form-input` + _vm._uid},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-label-text\",function(){return [_vm._v(\"[From]\")]}),(_vm.isValueModified)?_c('span',[_vm._v(\"Â \"+_vm._s(_vm.borderValueAsString))]):_vm._e(),(_vm.required)?_c('span',{staticClass:\"deep-red\"},[_vm._v(\" *\")]):_vm._e()]},proxy:true}],null,true)},[_c('ad-skeleton-input',{attrs:{\"loading\":_vm.loading}},[_c('b-form-input',_vm._b({attrs:{\"id\":`numeric-range-form-input` + _vm._uid,\"type\":\"text\",\"placeholder\":_vm.placeholder},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.onValueChange(_vm.localCurrentValueAsString)},\"blur\":function($event){return _vm.onValueChange(_vm.localCurrentValueAsString)}},model:{value:(_vm.localCurrentValueAsString),callback:function ($$v) {_vm.localCurrentValueAsString=$$v},expression:\"localCurrentValueAsString\"}},'b-form-input',_vm.$attrs,false))],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { formatValue } from '@/src/utils/value-formatter/formatting-service';\nimport numeral from 'numeral';\n\nexport class TextToNumericConvertHelper {\n private displayFormat: string;\n private percentFormatPlaceholder = '%';\n\n constructor(dispformat: string) {\n this.displayFormat = dispformat;\n }\n public toText(val: number | null | undefined): string {\n return val === null || val === undefined ? '' : formatValue(val, this.displayFormat, null);\n }\n\n /**\n * Convert a formated value into it's respresented number\n * @param stringVal local format value to convert into number, like 10%, 0,5, 1.000,30\n * @returns Number of formated string\n */\n public toNumber(stringVal: string | null | undefined): number {\n if (stringVal === null || stringVal === undefined) {\n return NaN;\n }\n\n stringVal = stringVal.trim();\n\n if (\n this.displayFormat.indexOf(this.percentFormatPlaceholder) !== -1 &&\n stringVal.indexOf(this.percentFormatPlaceholder) === -1\n ) {\n stringVal += this.percentFormatPlaceholder; // fix to format percent value correct\n }\n\n const numeralVal = numeral(stringVal);\n\n return numeralVal === null ? NaN : numeralVal.value();\n }\n public toPrecisionNumber(val: number | null): number {\n return this.toNumber(this.toText(val));\n }\n}\n","<template>\n <b-form-group\n v-if=\"isVisibleFunc(valueProperty)\"\n class=\"filter-numeric-input\"\n :class=\"{ error: isError, 'in-valid': required && (value === null || value === undefined) }\"\n :label-for=\"`numeric-range-form-input` + _uid\"\n >\n <template #label\n ><slot name=\"filter-label-text\">[From]</slot>\n <span v-if=\"isValueModified\"> {{ borderValueAsString }}</span>\n <span class=\"deep-red\" v-if=\"required\"> *</span>\n </template>\n <ad-skeleton-input :loading=\"loading\">\n <b-form-input\n :id=\"`numeric-range-form-input` + _uid\"\n type=\"text\"\n v-model=\"localCurrentValueAsString\"\n v-on:keydown.enter=\"onValueChange(localCurrentValueAsString)\"\n v-on:blur=\"onValueChange(localCurrentValueAsString)\"\n :placeholder=\"placeholder\"\n v-bind=\"$attrs\"\n ></b-form-input>\n </ad-skeleton-input>\n </b-form-group>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\nimport { TextToNumericConvertHelper } from './text-to-numeric-convert-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdFilterNumericInput extends Vue {\n @Prop({ required: true }) value!: number | null;\n @Prop() valueProperty: string | undefined;\n @Prop() borderValue!: number;\n @Prop({ default: () => true, type: Function }) validateFunc!: (v: number) => boolean;\n @Prop({ default: () => true, type: Function }) isVisibleFunc!: (key: string | undefined) => boolean;\n @Prop({ required: true }) fieldFormat!: string;\n @Prop({ type: Boolean }) required!: boolean;\n @Prop({ default: false, type: Boolean }) loading!: boolean;\n\n private convertHelper!: TextToNumericConvertHelper;\n private localCurrentValueAsString: string | null = null;\n private isError = false;\n\n created(): void {\n this.convertHelper = new TextToNumericConvertHelper(this.fieldFormat);\n this.setLocalValueToValueFromModel();\n }\n\n @Watch('value')\n setLocalValueToValueFromModel(): void {\n this.localCurrentValueAsString = this.value !== null ? this.convertHelper.toText(this.value) : null;\n }\n\n get isValueModified(): boolean {\n return this.localCurrentValueAsString !== null;\n }\n\n get placeholder(): string {\n const slot = this.$slots['input-placeholder'];\n return slot && slot.length\n ? slot[0].text?.trim() ?? this.convertHelper.toText(this.borderValue)\n : this.convertHelper.toText(this.borderValue);\n }\n\n get borderValueAsString(): string {\n return this.convertHelper.toText(this.borderValue);\n }\n\n onValueChange(textValue: string): void {\n if (textValue) {\n this.isError = false;\n const valAsNumber = this.convertHelper.toNumber(textValue);\n\n if (this.validateFunc(valAsNumber)) {\n if (this.isDifferentThanCurrentValue(valAsNumber)) {\n this.$emit('input', valAsNumber);\n }\n this.localCurrentValueAsString = this.convertHelper.toText(valAsNumber);\n } else {\n this.$emit('input', null);\n this.localCurrentValueAsString = null;\n }\n } else if (this.localCurrentValueAsString !== null) {\n this.isError = this.required;\n this.$emit('input', null);\n this.localCurrentValueAsString = null;\n }\n }\n\n isDifferentThanCurrentValue(val: number) {\n return val !== this.convertHelper.toPrecisionNumber(this.value);\n }\n\n get isValidInput(): boolean {\n if (!this.localCurrentValueAsString?.trim()) {\n return false;\n }\n const nummericVal = this.convertHelper.toNumber(this.localCurrentValueAsString);\n return this.validateFunc(nummericVal);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5098c88c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"m-30-20\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"m-30-20\">\n <slot name=\"default\"></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nexport default {\n name: 'AdHtmlOrText',\n};\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2b40833c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ad-image\"},[_c('div',{staticClass:\"w-100\"},[_vm._t(\"picture\")],2),(_vm.hasDescription)?_c('div',[_vm._t(\"figcaption\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ad-image\">\n <div class=\"w-100\">\n <slot name=\"picture\"></slot>\n </div>\n <div v-if=\"hasDescription\">\n <slot name=\"figcaption\"></slot>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdImage extends Vue {\n @Prop({ default: false, type: Boolean }) private hasDescription!: boolean;\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e937a248\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"icon-info-block pl-1\",class:{ 'info-block-full-mobile': _vm.isMobileFullScreen },attrs:{\"id\":'info-block' + _vm._uid}},[_c('ad-icon-info',{attrs:{\"width\":\"0.8em\",\"height\":\"0.8em\",\"id\":_vm.iconId,\"icon-name\":\"\"}}),_c('b-popover',{attrs:{\"target\":_vm.iconId,\"triggers\":\"focus hover\",\"placement\":_vm.getPlacement,\"fallbackPlacement\":_vm.getFallbackPlacement,\"custom-class\":_vm.settingsProperty.showPopoverInBigSize ? 'info-block-popover-lg' : null,\"container\":_vm.isMobileFullScreen ? 'info-block' + _vm._uid : null}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span\n class=\"icon-info-block pl-1\"\n :id=\"'info-block' + _uid\"\n :class=\"{ 'info-block-full-mobile': isMobileFullScreen }\"\n >\n <ad-icon-info width=\"0.8em\" height=\"0.8em\" :id=\"iconId\" icon-name=\"\" />\n <b-popover\n :target=\"iconId\"\n triggers=\"focus hover\"\n :placement=\"getPlacement\"\n :fallbackPlacement=\"getFallbackPlacement\"\n :custom-class=\"settingsProperty.showPopoverInBigSize ? 'info-block-popover-lg' : null\"\n :container=\"isMobileFullScreen ? 'info-block' + _uid : null\"\n >\n <slot name=\"default\"></slot>\n </b-popover>\n </span>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { Component, Prop, Inject } from 'vue-property-decorator';\nimport { PopoverPosition, PopoverFallback } from '@/src/types/enumerations';\nimport { PopoverSettings } from '@/src/types/episerver-api';\n\n@Component\nexport default class AdInfoBlock extends Vue {\n @Inject() settingsProperty: PopoverSettings | undefined;\n @Prop() showOnMobileFullScreen: boolean | undefined;\n @Prop() placement: PopoverPosition | undefined;\n @Prop() fallbackPlacement: PopoverFallback | undefined;\n\n private static _UUID = 0;\n private currentUuId = AdInfoBlock._UUID++;\n\n private get iconId() {\n return `info-block-icon-${this.currentUuId}`;\n }\n\n private get getPlacement() {\n return this.isMobileFullScreen\n ? PopoverPosition.BottomLeft\n : PopoverPosition[this.placement ?? this.settingsProperty?.placement ?? 'Auto'];\n }\n\n private get getFallbackPlacement() {\n return this.isMobileFullScreen\n ? []\n : PopoverFallback[this.fallbackPlacement ?? this.settingsProperty?.fallbackPlacement ?? 'Flip'];\n }\n\n private get isMobileFullScreen() {\n return (this.showOnMobileFullScreen || this.settingsProperty?.showOnMobileFullScreen) && !this.$screen.md;\n }\n}\n</script>\n<style lang=\"scss\">\n.icon-info-block {\n color: $marine-blue;\n\n :hover {\n color: $windows-blue;\n }\n\n .ade-icon {\n margin-top: -2px;\n }\n}\n\n.info-block-popover-lg {\n @include media-breakpoint-up('md') {\n min-width: rem(450);\n }\n\n @include media-breakpoint-up('xl') {\n min-width: rem(600);\n }\n}\n\n.info-block-full-mobile {\n .popover {\n top: auto !important;\n left: auto;\n transform: none !important;\n margin-left: $grid-gutter-spacer;\n min-width: calc(100vw - #{$grid-gutter-width});\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6dea892e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6dea892e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ad-like-count\"},[(!!_vm.likeCount && _vm.showCountOnLeft)?_c('span',{staticClass:\"font-weight-bold fs-14 pr-1\"},[_vm._v(_vm._s(_vm.likeCount))]):_vm._e(),_c('button',{staticClass:\"ce-author-like__button text-nowrap px-0\",attrs:{\"disabled\":_vm.wasLiked},on:{\"click\":_vm.likeContent}},[_c('ad-icon-like',{attrs:{\"height\":\"1.71em\"}})],1),(!!_vm.likeCount && !_vm.showCountOnLeft)?_c('span',{staticClass:\"font-weight-bold fs-14 pl-1\"},[_vm._v(_vm._s(_vm.likeCount))]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import httpClient from './http-service';\nimport { VueCookies } from 'vue-cookies';\nimport CookieManager from '@src/utils/cookie';\nimport { getTheQApiUrl } from '@src/utils/url-helper';\nimport { Controller, CookieCreateState } from '@src/types/enumerations';\nimport { AxiosResponse } from 'axios';\n\nexport default class ContentLikeService {\n private _cookieManager: CookieManager;\n\n constructor(cookies: VueCookies) {\n this._cookieManager = new CookieManager(cookies);\n }\n\n public wasLiked(contentId: number): boolean {\n return this._cookieManager.wasLiked(contentId);\n }\n\n public async getLikeCount(contentId: number): Promise<number> {\n const response = await httpClient.get<number>(getTheQApiUrl(Controller.ContentLikes, 'Count'), {\n params: { contentId: contentId },\n });\n return response.data;\n }\n\n private async addLike(contentId: number): Promise<number> {\n const response = await httpClient.post<null, AxiosResponse<number>>(\n getTheQApiUrl(Controller.ContentLikes, 'Add'),\n null,\n {\n params: {\n contentId: contentId,\n },\n }\n );\n\n return response.data;\n }\n\n public async likeContent(\n contentId: number\n ): Promise<{ cookieState: CookieCreateState; likeCount: number | undefined }> {\n const cookieState: CookieCreateState = this._cookieManager.saveLike(contentId);\n let likeCount;\n switch (cookieState) {\n case CookieCreateState.Exists:\n likeCount = await this.getLikeCount(contentId);\n break;\n case CookieCreateState.Created:\n likeCount = await this.addLike(contentId);\n break;\n }\n return { cookieState, likeCount };\n }\n}\n","<template>\n <div class=\"ad-like-count\">\n <span class=\"font-weight-bold fs-14 pr-1\" v-if=\"!!likeCount && showCountOnLeft\">{{ likeCount }}</span>\n <button class=\"ce-author-like__button text-nowrap px-0\" @click=\"likeContent\" :disabled=\"wasLiked\">\n <ad-icon-like height=\"1.71em\"></ad-icon-like>\n </button>\n <span class=\"font-weight-bold fs-14 pl-1\" v-if=\"!!likeCount && !showCountOnLeft\">{{ likeCount }}</span>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { CookieCreateState, MissingCookieModalId } from '@/src/types/enumerations';\nimport ContentLikeService from '@/src/utils/content-like-service';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdLikeCount extends Vue {\n @Prop({ required: true, type: Number })\n contentId!: number;\n @Prop({ default: false, type: Boolean })\n showCountOnLeft!: boolean;\n\n private contentLikeService: ContentLikeService | undefined;\n private likeCount = 0;\n\n async likeContent(): Promise<void> {\n const result = await this.contentLikeService?.likeContent(this.contentId);\n if (result?.cookieState === CookieCreateState.NotAccepted) {\n this.$bvModal.show(MissingCookieModalId.MissingLikeCookieModal);\n } else {\n this.likeCount = result?.likeCount ?? this.likeCount;\n }\n }\n\n async created(): Promise<void> {\n this.contentLikeService = new ContentLikeService(this.$cookies);\n try {\n this.likeCount = await this.contentLikeService.getLikeCount(this.contentId);\n } catch (err) {\n this.$log.error(err);\n }\n }\n\n get wasLiked(): boolean {\n return this.contentLikeService?.wasLiked(this.contentId) ?? false;\n }\n}\n</script>\n<style lang=\"scss\">\n.ce-author-like {\n &__container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-right: 0;\n color: $peacock-blue;\n\n .ad-icon {\n color: $clarinet;\n }\n }\n &__button {\n border: 0;\n background-color: inherit;\n color: $peacock-blue;\n &:focus {\n outline: none;\n svg {\n stroke-width: rem(2);\n }\n }\n }\n\n &__counter {\n font-weight: bold;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fea7cb6e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=fea7cb6e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._t(\"missing-cookie\",null,{\"viewMode\":_vm.viewMode.Popup,\"modalId\":_vm.modalId})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <slot name=\"missing-cookie\" :viewMode=\"viewMode.Popup\" :modalId=\"modalId\"></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { MissingCookieModalId, MissingCookieViewMode } from '@/src/types/enumerations';\n@Component\nexport default class AdMissingCookieModal extends Vue {\n @Prop({ required: true }) modalId!: MissingCookieModalId;\n viewMode = MissingCookieViewMode;\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3ffe2f1c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',[(_vm.viewMode === _vm.blockViewMode.Popup)?[_c('b-modal',{attrs:{\"id\":_vm.modalId,\"size\":\"lg\",\"centered\":\"\",\"header-class\":\"border-bottom-0 pr-4\",\"body-class\":\"pl-7 pr-5 mt-n4 missing-cookie-body\",\"footer-class\":\"missing-cookie-modal-footer border-top-0 pl-7 py-5\"},scopedSlots:_vm._u([{key:\"modal-header-close\",fn:function(){return [_c('ad-icon-close',{staticClass:\"marine-blue\",attrs:{\"width\":\"0.7em\",\"height\":\"0.7em\"}})]},proxy:true},{key:\"modal-footer\",fn:function(){return [_c('b-button',{staticClass:\"m-0\",attrs:{\"href\":_vm.settingsProperty.cookieSettingsPageUrl}},[_vm._t(\"button-text\")],2)]},proxy:true}],null,true)},[_c('ad-icon-warnings',{staticClass:\"position-absolute warning\",staticStyle:{\"top\":\"5px\"}}),_vm._t(\"message\")],2)]:(_vm.viewMode === _vm.blockViewMode.Content)?[_c('div',{staticClass:\"p-4\",style:({ backgroundImage: 'url(' + _vm.settingsProperty.backgroundImageUrl + ')' })},[_c('div',{staticClass:\"missing-cookie-body pb-2\"},[_vm._t(\"message\")],2),_c('b-button',{staticClass:\"m-0\",attrs:{\"href\":_vm.settingsProperty.cookieSettingsPageUrl}},[_vm._t(\"button-text\")],2)],1)]:(_vm.viewMode === _vm.blockViewMode.Text)?[_c('div',[_c('span',{staticClass:\"missing-cookie-body\"},[_vm._t(\"message\"),_c('a',{attrs:{\"href\":_vm.settingsProperty.cookieSettingsPageUrl}},[_vm._t(\"button-text\")],2)],2)])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span>\n <template v-if=\"viewMode === blockViewMode.Popup\">\n <b-modal\n :id=\"modalId\"\n size=\"lg\"\n centered\n header-class=\"border-bottom-0 pr-4\"\n body-class=\"pl-7 pr-5 mt-n4 missing-cookie-body\"\n footer-class=\"missing-cookie-modal-footer border-top-0 pl-7 py-5\"\n >\n <ad-icon-warnings class=\"position-absolute warning\" style=\"top: 5px\" /><slot name=\"message\"></slot>\n\n <template #modal-header-close>\n <ad-icon-close width=\"0.7em\" height=\"0.7em\" class=\"marine-blue\" />\n </template>\n <template #modal-footer>\n <b-button class=\"m-0\" :href=\"settingsProperty.cookieSettingsPageUrl\">\n <slot name=\"button-text\"></slot>\n </b-button>\n </template>\n </b-modal>\n </template>\n <template v-else-if=\"viewMode === blockViewMode.Content\">\n <div class=\"p-4\" :style=\"{ backgroundImage: 'url(' + settingsProperty.backgroundImageUrl + ')' }\">\n <div class=\"missing-cookie-body pb-2\"><slot name=\"message\"></slot></div>\n <b-button class=\"m-0\" :href=\"settingsProperty.cookieSettingsPageUrl\">\n <slot name=\"button-text\"></slot>\n </b-button>\n </div>\n </template>\n <template v-else-if=\"viewMode === blockViewMode.Text\">\n <div>\n <span class=\"missing-cookie-body\">\n <slot name=\"message\"></slot>\n <a :href=\"settingsProperty.cookieSettingsPageUrl\"><slot name=\"button-text\"></slot></a>\n </span>\n </div>\n </template>\n </span>\n</template>\n<script lang=\"ts\">\nimport { MissingCookieModalId, MissingCookieViewMode } from '@/src/types/enumerations';\nimport { MissingCookieSettings } from '@/src/types/episerver-api';\nimport Vue from 'vue';\nimport { Component, Prop, Inject } from 'vue-property-decorator';\n\n@Component\nexport default class AdMissingCookieBlock extends Vue {\n blockViewMode = MissingCookieViewMode;\n\n @Prop({ required: true }) viewMode!: MissingCookieViewMode;\n @Prop() modalId: MissingCookieModalId | undefined;\n @Inject() settingsProperty!: MissingCookieSettings;\n}\n</script>\n<style lang=\"scss\">\n.missing-cookie-modal-footer {\n justify-content: left !important;\n}\n\n.missing-cookie-body {\n color: $mulberry;\n\n h3,\n h4 {\n color: $mulberry;\n }\n\n ul > li::before {\n color: $mulberry !important;\n }\n\n .ade-icon.warning {\n left: rem(50);\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=51e4d523\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=51e4d523&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('div',{class:['note-block', 'mb-2']},[_c('h3',{class:['mb-2', { 'd-none': !_vm.showHeadline }]},[_vm._v(_vm._s(_vm.blockHeadline))]),_c('div',[_vm._t(\"default\")],2)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"isVisible\" :class=\"['note-block', 'mb-2']\">\n <h3 :class=\"['mb-2', { 'd-none': !showHeadline }]\">{{ blockHeadline }}</h3>\n <div><slot name=\"default\"></slot></div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { HeadlineBlock } from '@/src/types/vue-api';\nimport { NoteBlockSettings } from '@/src/types/episerver-api';\nimport { Component, Inject, InjectReactive, Vue } from 'vue-property-decorator';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { InstrumentDataFieldBase, ProductHistoryDataField } from '@/src/types/episerver-api-instrument';\nimport evaluateExpressionByKey, { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdNote extends Vue implements HeadlineBlock {\n @Inject() settingsProperty!: NoteBlockSettings;\n @InjectReactive() product!: ProductModel | null;\n private showHeadline = true;\n public get isVisible() {\n if (!this.settingsProperty.conditionFieldKey || !this.product) return true;\n\n const field = getFormatDataField(this.settingsProperty.conditionFieldKey);\n if (!field) return false;\n const value = evaluateExpressionByKey(\n (field as InstrumentDataFieldBase | ProductHistoryDataField).valueExpression,\n this.product\n );\n return value == this.settingsProperty.conditionValue;\n }\n\n public get blockHeadline(): string | undefined {\n return this.isVisible ? this.settingsProperty.headline : undefined;\n }\n\n setHeadlineVisibility(visible: boolean) {\n this.showHeadline = visible;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c9c28406\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$screen.xl)?_c('div',[_vm._t(\"desktop\")],2):(_vm.$screen.md)?_c('div',[_vm._t(\"tablet\")],2):_c('div',[_vm._t(\"mobile\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"$screen.xl\">\n <slot name=\"desktop\"></slot>\n </div>\n <div v-else-if=\"$screen.md\"> <slot name=\"tablet\"></slot> </div>\n <div v-else>\n <slot name=\"mobile\"></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({\n inheritAttrs: false,\n})\nexport default class AdResponsiveViewPanel extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0e6e406b\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',_vm._b({},'div',_vm.$attrs,false),[_c('b-table-simple',{attrs:{\"striped\":\"\",\"borderless\":\"\"}},[_c('b-thead',_vm._l((_vm.headerItems),function(header,h){return _c('b-th',{key:h,class:_vm.headerClass(h)},[_vm._l((header),function(column,c){return [_vm._v(_vm._s(column)),_c('br',{key:c})]})],2)}),1),_c('b-tbody',_vm._l((_vm.rowItems),function(row,r){return _c('b-tr',{key:r},_vm._l((row),function(cell,c){return _c('b-td',{key:c,class:_vm.cellClass(c)},[_vm._l((cell),function(field,f){return [_vm._v(_vm._s(field)),_c('br',{key:f})]})],2)}),1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-bind=\"$attrs\">\n <b-table-simple striped borderless>\n <b-thead>\n <b-th v-for=\"(header, h) in headerItems\" :key=\"h\" :class=\"headerClass(h)\">\n <template v-for=\"(column, c) in header\">{{ column }}<br :key=\"c\" /></template>\n </b-th>\n </b-thead>\n <b-tbody>\n <b-tr v-for=\"(row, r) in rowItems\" :key=\"r\">\n <b-td v-for=\"(cell, c) in row\" :key=\"c\" :class=\"cellClass(c)\">\n <template v-for=\"(field, f) in cell\">{{ field }}<br :key=\"f\" /></template>\n </b-td>\n </b-tr>\n </b-tbody>\n </b-table-simple>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n@Component({\n inheritAttrs: false,\n})\nexport default class AdSimpleTable extends Vue {\n @Prop({ required: true }) headers!: string[];\n @Prop({ required: true }) rows!: string[][];\n\n get headerItems(): string[][] {\n return this.group(this.headers);\n }\n\n get rowItems(): string[][][] {\n return this.rows.map((row) => this.group(row));\n }\n\n headerClass(colIndex: number): string[] {\n return ['align-bottom', 'pt-0', ...this.cellTextAlign(colIndex)];\n }\n\n cellClass(colIndex: number): string[] {\n const styles = this.cellTextAlign(colIndex);\n if (!this.$screen.md) styles.push('align-bottom');\n styles.push('text-nowrap');\n return styles;\n }\n\n private cellTextAlign(colIndex: number): string[] {\n const styles: string[] = [];\n\n switch (colIndex) {\n case 0:\n styles.push('text-left');\n break;\n case 1:\n styles.push('text-right');\n if (this.headers.length > 2) {\n styles.push('text-md-left');\n styles.push('text-xl-right');\n }\n break;\n default:\n styles.push('text-right');\n break;\n }\n return styles;\n }\n\n group(data: string[]): string[][] {\n if (this.$screen.xl || data.length < 3) return data.map((i) => [i]);\n\n const result = data.reduce<string[][]>(\n (cols, item, index) => {\n if (index != 0) cols[index % 2].push(item);\n return cols;\n },\n [[], []]\n );\n result.reverse();\n if (this.$screen.sm) {\n result.unshift([data[0]]);\n } else {\n result[0].unshift(data[0]);\n }\n\n return result;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8c0e9306\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[\n 'd-inline-block',\n 'w-sm-100',\n 'text-nowrap',\n 'text-left',\n 'mr-1',\n 'mb-2',\n 'px-3',\n 'px-md-2',\n 'py-2',\n 'rounded',\n _vm.stateClass,\n ]},[_c('b-form-checkbox',{attrs:{\"checked\":_vm.value,\"disabled\":_vm.disabled,\"name\":\"switch-button\",\"switch\":\"\"},on:{\"change\":_vm.toggle}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n :class=\"[\n 'd-inline-block',\n 'w-sm-100',\n 'text-nowrap',\n 'text-left',\n 'mr-1',\n 'mb-2',\n 'px-3',\n 'px-md-2',\n 'py-2',\n 'rounded',\n stateClass,\n ]\"\n >\n <b-form-checkbox :checked=\"value\" @change=\"toggle\" :disabled=\"disabled\" name=\"switch-button\" switch>\n <slot name=\"default\"></slot>\n </b-form-checkbox>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdSwitchButton extends Vue {\n @Prop({ default: false, type: Boolean }) value!: boolean;\n @Prop({ default: false, type: Boolean }) disabled!: boolean;\n @Prop() activeStateClass: string | undefined;\n\n get displayClass() {\n return this.$screen.sm ? 'd-inline-block' : 'd-block';\n }\n\n get stateClass(): string {\n return this.value && this.activeStateClass ? this.activeStateClass : 'bg-light';\n }\n\n toggle() {\n if (!this.disabled) this.$emit('input', !this.value);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a08afc0a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c({ template: `<span>${_vm.text}</span>` },{tag:\"component\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <component :is=\"{ template: `<span>${text}</span>` }\"> </component>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdTemplateRenderer extends Vue {\n /*\n * Renders value containing a text with brackets e.g 'text with brackets {{ value }}'\n * as template, so that {{ value }} will be replaced\n */\n @Prop({ default: null }) text!: string | null;\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2f51712c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"a-d-marker fs-12\"},[_vm._t(\"default\",function(){return [_vm._v(\"Advertisement\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <!-- a-d is separated by the dash to not trigger a-b-blockers -->\n <div class=\"a-d-marker fs-12\"><slot>Advertisement</slot></div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeAdMarker extends Vue {}\n</script>\n\n<style lang=\"scss\">\n.a-d-marker {\n position: absolute;\n right: 0;\n bottom: 100%;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2e510436\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2e510436&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',{staticClass:\"ce-to-top-button btn btn-secondary rounded-circle px-0 py-0 border-0\",on:{\"click\":_vm.scroll}},[_c('ad-icon-chevron',{attrs:{\"size\":\"l\",\"direction\":\"up\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <button @click=\"scroll\" class=\"ce-to-top-button btn btn-secondary rounded-circle px-0 py-0 border-0\">\n <ad-icon-chevron size=\"l\" direction=\"up\"></ad-icon-chevron>\n </button>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeBackToTopButton extends Vue {\n scroll(): void {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n</script>\n\n<style lang=\"scss\">\n/* four times to set specificity higher than ce-buttons */\n.ce-to-top-button.ce-to-top-button.ce-to-top-button.ce-to-top-button {\n transform-origin: center;\n width: rem(64);\n min-width: rem(64);\n height: rem(64);\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4a2f488d\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4a2f488d&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-none d-md-block fs-12 m-2 ce-breadcrumbs align-items-center\"},[_vm._l((_vm.slots),function(h,i){return [(i !== 0)?_c('ad-icon-chevron',{key:i + 'icon',attrs:{\"rotate\":\"270\",\"size\":\"xxs\"}}):_vm._e(),_c('ce-node-renderer',{key:i + 'node',attrs:{\"node\":h}})]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"d-none d-md-block fs-12 m-2 ce-breadcrumbs align-items-center\">\n <template v-for=\"(h, i) in slots\">\n <ad-icon-chevron v-bind:key=\"i + 'icon'\" v-if=\"i !== 0\" rotate=\"270\" size=\"xxs\"></ad-icon-chevron>\n <ce-node-renderer v-bind:key=\"i + 'node'\" :node=\"h\"></ce-node-renderer>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { filterVNodes } from '@src/utils/vnodes-filter';\n\n/**\n * @example\n *\n * ```html\n * <ce-breadcrumbs>\n * <a href=\"/\" class=\"ce-breadcrumb-link\">Home</a>\n * <a href=\"/\" class=\"ce-breadcrumb-link\">Knowledge</a>\n * <a class=\"ce-breadcrumb-link\">Shorting a stock</a>\n * </ce-breadcrumbs>\n * ```\n */\n@Component\nexport default class CeBreadcrumbs extends Vue {\n get slots() {\n return filterVNodes(this.$slots.default);\n }\n}\n</script>\n\n<style lang=\"scss\">\n/*------------------------------------*\\\n #Breadcrumb link\n\\*------------------------------------*/\n\n.ce-breadcrumb-link {\n margin: 0 rem(10);\n color: inherit;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n font-weight: bold;\n }\n}\n\n/*------------------------------------*\\\n #Breadcrumb separator\n\\*------------------------------------*/\n.ce-breadcrumbs .ade-icon {\n height: 0.65em;\n stroke-width: 3;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b0eda158\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b0eda158&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{staticClass:\"link btn btn-default ce-author-like-share__share-button flex-grow-1\",attrs:{\"href\":this.fullUrl,\"target\":\"_blank\"}},[_vm._t(\"label\",function(){return [_vm._v(\"Share Facebook\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <a class=\"link btn btn-default ce-author-like-share__share-button flex-grow-1\" :href=\"this.fullUrl\" target=\"_blank\">\n <slot name=\"label\">Share Facebook</slot>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport { getFacebookShareIntentURL } from '@/src/utils/url-helper';\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeFacebookButton extends Vue {\n @Prop({ default: '' }) private facebookAppId!: string;\n @Prop({ default: '' }) private shareURL!: string;\n get fullUrl(): string {\n return getFacebookShareIntentURL({ urlToShare: this.shareURL, appId: this.facebookAppId });\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f449e9f8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<script lang=\"ts\">\nimport Vue, { PropType, VNode } from 'vue';\n\n/**\n * This can be used to declaratively render vnodes (that have been passed as slots for example).\n * This has to be a functional component so that a VNode can be returned from the render function.\n *\n * @example\n *\n * ```html\n * <li v-for=\"(h, i) in $slots.items\" v-bind:key=\"i\">\n * <ce-node-renderer :node=\"h\" /><br />\n * </li>\n * ```\n */\nexport default Vue.extend({\n name: 'CeNodeRenderer',\n props: {\n node: {\n required: true,\n type: Object as PropType<VNode>,\n },\n },\n functional: true,\n render(h, context) {\n return context.props.node;\n },\n});\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{staticClass:\"link btn btn-default ce-author-like-share__share-button flex-grow-1\",attrs:{\"href\":this.fullUrl,\"target\":\"_blank\"}},[_vm._t(\"label\",function(){return [_vm._v(\"Share Twitter\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <a class=\"link btn btn-default ce-author-like-share__share-button flex-grow-1\" :href=\"this.fullUrl\" target=\"_blank\">\n <slot name=\"label\">Share Twitter</slot>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport { getTwitterShareIntentURL } from '@/src/utils/url-helper';\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeTwitterButton extends Vue {\n @Prop({ default: '' }) private tweetText!: string;\n @Prop({ default: '' }) private shareURL!: string;\n get fullUrl(): string {\n return getTwitterShareIntentURL({ urlToShare: this.shareURL, textToShare: this.tweetText });\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=48df7310\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('keep-alive',[(_vm.isValueVisible)?_c('b-tr',[_c('b-th',{staticClass:\"w-50\"},[_vm._t(\"headline\")],2),_c('b-td',{staticClass:\"text-right align-middle w-50\"},[_vm._t(\"value\",null,{\"setVisible\":_vm.setVisible,\"fieldKey\":_vm.settingsProperty.fieldKey,\"isLinkToDetailPage\":_vm.settingsProperty.isLinkToDetailPage})],2)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <keep-alive>\n <b-tr v-if=\"isValueVisible\">\n <b-th class=\"w-50\">\n <slot name=\"headline\"></slot>\n </b-th>\n <b-td class=\"text-right align-middle w-50\">\n <slot\n name=\"value\"\n :setVisible=\"setVisible\"\n :fieldKey=\"settingsProperty.fieldKey\"\n :is-link-to-detail-page=\"settingsProperty.isLinkToDetailPage\"\n ></slot>\n </b-td>\n </b-tr>\n </keep-alive>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Inject } from 'vue-property-decorator';\nimport { InstrumentDataRow } from '@src/types/episerver-api-instrument';\n@Component\nexport default class AdInstrumentDataRow extends Vue {\n @Inject() settingsProperty: InstrumentDataRow | undefined;\n @Prop({ default: false }) showOnEmpty!: boolean;\n private isValueVisible = true;\n\n public setVisible(hasValue: boolean): void {\n this.isValueVisible = this.settingsProperty?.showOnEmpty || hasValue;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=55d4a115\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{class:[_vm.pushClass, 'ad-instrument-data-value', _vm.isWordWrap ? '' : 'text-nowrap'],attrs:{\"title\":_vm.formatedValue}},[_vm._v(_vm._s(_vm.formatedValue))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span\n v-bind:class=\"[pushClass, 'ad-instrument-data-value', isWordWrap ? '' : 'text-nowrap']\"\n :title=\"formatedValue\"\n >{{ formatedValue }}</span\n >\n</template>\n<script lang=\"ts\">\nimport { InstrumentDataFieldBase } from '@/src/types/episerver-api-instrument';\nimport { PriceModel, ProductModel, UnderlyingModel } from '@/src/types/the-q-api';\nimport { ApiTypeValue } from '@/src/types/vue-api';\nimport { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nenum Push {\n High = 'high',\n Low = 'low',\n None = 'none',\n}\n\n@Component\nexport default class AdInstrumentDataValue extends Vue {\n @Prop({ required: true })\n value!: ApiTypeValue;\n @Prop({ required: true }) fieldKey!: string;\n @Prop() instrument: UnderlyingModel | ProductModel | undefined;\n private push!: boolean;\n\n private currentValue!: ApiTypeValue;\n\n private pushClass = Push.None;\n private isPush = false;\n private isWordWrap = false;\n\n get formatedValue(): string {\n return formatField(this.value, this.fieldKey, this.instrument, this.isPush);\n }\n\n created(): void {\n const field = getFormatDataField(this.fieldKey) as InstrumentDataFieldBase | undefined;\n this.push = !!field?.push;\n this.isWordWrap = !!field?.isWordWrap;\n\n if (this.push) {\n this.$emit('subscribe-to-push', this.fieldKey);\n this.$watch('value', this.setPushStyling);\n\n this.currentValue = this.cloneValue(this.value);\n\n this.$log.debug('pushing is set', this.fieldKey, this.value);\n }\n }\n\n setPushStyling(): void {\n this.isPush = true;\n this.pushClass == Push.None;\n\n //only number can have push styling\n if (typeof (((this.value as PriceModel)?.amount || this.value) as number) === 'number') {\n const formatedField = formatField(this.currentValue, this.fieldKey, this.instrument, this.isPush);\n const field = getFormatDataField(this.fieldKey);\n\n if (formatedField !== this.formatedValue && this.formatedValue !== field?.nullValue) {\n this.pushClass = this.getPushClass(\n ((this.currentValue as PriceModel).amount || this.currentValue) as number,\n ((this.value as PriceModel).amount || this.value) as number\n );\n }\n\n this.currentValue = this.cloneValue(this.value);\n window.setTimeout(() => (this.pushClass = Push.None), 500);\n }\n }\n\n getPushClass(currentValue: number | null, value: number | null): Push {\n value = value || 0;\n currentValue = currentValue || 0;\n // have to check value also for type number, because vue convert values\n // to getters, which can be empty objects\n if (typeof value !== 'number') {\n value = 0;\n }\n if (typeof currentValue !== 'number') {\n currentValue = 0;\n }\n\n if (value > currentValue) {\n return Push.High;\n }\n\n if (value < currentValue) {\n return Push.Low;\n }\n\n return Push.None;\n }\n\n cloneValue(value: ApiTypeValue): ApiTypeValue {\n if (typeof value === 'object') {\n return Object.assign({}, value);\n }\n\n return value;\n }\n}\n</script>\n<style lang=\"scss\">\n.ad-instrument-data-value {\n transition-duration: 0.5s;\n transition-property: color;\n\n &.low {\n color: $deep-red;\n }\n\n &.high {\n color: $kelley-green;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=68ef870e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=68ef870e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.show)?_c('div',_vm._b({directives:[{name:\"b-visible\",rawName:\"v-b-visible\",value:(_vm.isVisible),expression:\"isVisible\"}]},'div',_vm.$attrs,false),[_vm._t(\"default\")],2):_c('div',_vm._b({},'div',_vm.$attrs,false),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-bind=\"$attrs\" v-b-visible=\"isVisible\" v-if=\"show\"><slot></slot></div>\n <div v-else v-bind=\"$attrs\"><slot></slot></div>\n</template>\n\n<script lang=\"ts\">\nimport { TableField } from '@/src/types/vue-api';\nimport { pushTriggerFrequenz } from '@/src/state/plugins/light-streamer/pushing-helper';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdColumnVisibleWrapper extends Vue {\n @Prop({ required: true }) fields!: Array<TableField>;\n @Prop({ required: true }) index!: number;\n @Prop({ required: true }) field!: TableField;\n\n get show() {\n return (\n this.index % pushTriggerFrequenz === 0 &&\n this.fields.length > 0 &&\n this.fields[this.fields.length - 1].key == this.field.key\n );\n }\n\n isVisible(isVisible) {\n this.$emit('visibleChange', isVisible, this.index);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./column-visible-wrapper.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./column-visible-wrapper.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./column-visible-wrapper.vue?vue&type=template&id=2c377180\"\nimport script from \"./column-visible-wrapper.vue?vue&type=script&lang=ts\"\nexport * from \"./column-visible-wrapper.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-table',{attrs:{\"loading\":_vm.loading || _vm.items == null,\"columns\":_vm.columns,\"rows\":_vm.rows}},[_c('b-table',_vm._b({ref:\"table\",staticClass:\"sticky-nav-table instrument-search-table\",attrs:{\"striped\":\"\",\"borderless\":\"\",\"no-provider-paging\":\"\",\"no-provider-filtering\":\"\",\"no-local-sorting\":\"\",\"hover\":false,\"items\":_vm.items,\"fields\":_vm.fields,\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc,\"selectable\":_vm.selectable,\"no-select-on-click\":\"\"},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event},\"sort-changed\":_vm.sortingChanged,\"row-clicked\":_vm.rowClicked},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [_vm._t(\"empty\")]},proxy:true},{key:\"emptyfiltered\",fn:function(){return [_vm._t(\"empty\")]},proxy:true},(_vm.$scopedSlots['top-row'])?{key:\"top-row\",fn:function(){return [_vm._t(\"top-row\",null,{\"fieldCount\":_vm.fields.length})]},proxy:true}:null,{key:\"head()\",fn:function(data){return [(data.label)?[_c('span',{staticClass:\"d-inline-block\",class:{ active: data.field.sortNumber > 0 }},[_c('span',{staticClass:\"text-normal\",domProps:{\"innerHTML\":_vm._s(data.label)}})]),_c('div',{staticClass:\"sorting\"}),(data.field.sortNumber > 0)?_c('sup',[_vm._v(_vm._s(data.field.sortNumber))]):_vm._e()]:(data.field.mergeColumnSettings)?_vm._l((data.field.mergeColumnSettings),function(setting,index){return _c('span',{key:index},[(setting.separator == _vm.separator.NewLine)?[_c('br')]:(setting.separator == _vm.separator.Slash)?[_vm._v(\" / \")]:[_c('span',{domProps:{\"innerHTML\":_vm._s(setting.headline)}})]],2)}):[_vm._t(\"row-custom-header\",function(){return [_vm._v(\" Â \")]},{\"data\":data})]]}},{key:\"cell()\",fn:function(data){return [(data.field.mergeColumnSettings)?[_c('ad-column-visible-wrapper',{class:['overflow-hidden', { 'text-truncate': data.field.isEllipsis }],attrs:{\"index\":data.index,\"fields\":_vm.fields,\"field\":data.field},on:{\"visibleChange\":_vm.visibleChange}},_vm._l((data.field.mergeColumnSettings),function(setting,index){return _c('span',{key:index},[(setting.separator == _vm.separator.NewLine)?[_c('br')]:(setting.separator == _vm.separator.Slash)?[_vm._v(\" / \")]:[_vm._t(\"row-instrument\",function(){return [_vm._v(\" \"+_vm._s(setting.key)+\" \")]},{\"setting\":setting,\"instrument\":data.item.instrument})]],2)}),0)]:(data.field.setting)?[_c('ad-column-visible-wrapper',{class:['overflow-hidden', { 'text-truncate': data.field.isEllipsis }],attrs:{\"index\":data.index,\"fields\":_vm.fields,\"field\":data.field},on:{\"visibleChange\":_vm.visibleChange}},[_vm._t(\"row-instrument\",function(){return [_vm._v(\" \"+_vm._s(data.field.key)+\" \")]},{\"setting\":data.field.setting,\"instrument\":data.item.instrument})],2)]:(data.field.key === _vm.watchListKey)?[_vm._t(\"row-watch-list\",function(){return [_vm._v(\" \"+_vm._s(data.field)+\" \")]},{\"field\":data.field,\"instrument\":data.item.instrument})]:[_c('ad-column-visible-wrapper',{class:['overflow-hidden', { 'text-truncate': data.field.isEllipsis }],attrs:{\"index\":data.index,\"fields\":_vm.fields,\"field\":data.field},on:{\"visibleChange\":_vm.visibleChange}},[_vm._t(\"row-custom-instrument\",function(){return [_vm._v(\" \"+_vm._s(data.field)+\" \")]},{\"field\":data.field,\"instrument\":data.item.instrument})],2)]]}},(_vm.isDetailRow)?{key:\"cell(showDetails)\",fn:function(row){return [_c('b-button',{attrs:{\"squared\":\"\",\"size\":\"sm\",\"variant\":\"l\"},on:{\"click\":function($event){return _vm.toggleDetails(this, row)}}},[_c('ad-icon-chevron',{staticClass:\"clarinet\",attrs:{\"direction\":row.detailsShowing ? _vm.direction.up : _vm.direction.down,\"size\":\"m\"}})],1)]}}:null,(_vm.isDetailRow)?{key:\"row-details\",fn:function(data){return [_vm._t(\"row-details\",function(){return [_vm._v(\"Table details\")]},{\"data\":data})]}}:null],null,true)},'b-table',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-table :loading=\"loading || items == null\" :columns=\"columns\" :rows=\"rows\">\n <b-table\n striped\n borderless\n no-provider-paging\n no-provider-filtering\n no-local-sorting\n v-bind=\"$attrs\"\n :hover=\"false\"\n :items=\"items\"\n :fields=\"fields\"\n class=\"sticky-nav-table instrument-search-table\"\n :sort-by.sync=\"sortBy\"\n :sort-desc.sync=\"sortDesc\"\n @sort-changed=\"sortingChanged\"\n @row-clicked=\"rowClicked\"\n :selectable=\"selectable\"\n no-select-on-click\n ref=\"table\"\n >\n <template #empty>\n <slot name=\"empty\"></slot>\n </template>\n <template #emptyfiltered>\n <slot name=\"empty\"></slot>\n </template>\n <template #top-row v-if=\"$scopedSlots['top-row']\">\n <slot name=\"top-row\" :field-count=\"fields.length\"></slot>\n </template>\n <template v-slot:head()=\"data\">\n <template v-if=\"data.label\">\n <span class=\"d-inline-block\" v-bind:class=\"{ active: data.field.sortNumber > 0 }\"\n ><span class=\"text-normal\" v-html=\"data.label\"></span>\n </span>\n <div class=\"sorting\"></div>\n <sup v-if=\"data.field.sortNumber > 0\">{{ data.field.sortNumber }}</sup>\n </template>\n <template v-else-if=\"data.field.mergeColumnSettings\">\n <span v-for=\"(setting, index) in data.field.mergeColumnSettings\" :key=\"index\">\n <template v-if=\"setting.separator == separator.NewLine\">\n <br />\n </template>\n <template v-else-if=\"setting.separator == separator.Slash\"> / </template>\n <template v-else><span v-html=\"setting.headline\"></span></template>\n </span>\n </template>\n <template v-else><slot name=\"row-custom-header\" :data=\"data\"> </slot></template>\n </template>\n <template v-slot:cell()=\"data\">\n <template v-if=\"data.field.mergeColumnSettings\">\n <ad-column-visible-wrapper\n :class=\"['overflow-hidden', { 'text-truncate': data.field.isEllipsis }]\"\n :index=\"data.index\"\n :fields=\"fields\"\n :field=\"data.field\"\n @visibleChange=\"visibleChange\"\n >\n <span v-for=\"(setting, index) in data.field.mergeColumnSettings\" :key=\"index\">\n <template v-if=\"setting.separator == separator.NewLine\">\n <br />\n </template>\n <template v-else-if=\"setting.separator == separator.Slash\"> / </template>\n <template v-else>\n <slot name=\"row-instrument\" :setting=\"setting\" :instrument=\"data.item.instrument\">\n {{ setting.key }}\n </slot>\n </template>\n </span>\n </ad-column-visible-wrapper>\n </template>\n <template v-else-if=\"data.field.setting\">\n <ad-column-visible-wrapper\n :index=\"data.index\"\n :fields=\"fields\"\n :field=\"data.field\"\n :class=\"['overflow-hidden', { 'text-truncate': data.field.isEllipsis }]\"\n @visibleChange=\"visibleChange\"\n >\n <slot name=\"row-instrument\" :setting=\"data.field.setting\" :instrument=\"data.item.instrument\">\n {{ data.field.key }}\n </slot>\n </ad-column-visible-wrapper>\n </template>\n <template v-else-if=\"data.field.key === watchListKey\">\n <slot name=\"row-watch-list\" :field=\"data.field\" :instrument=\"data.item.instrument\">\n {{ data.field }}\n </slot>\n </template>\n <template v-else>\n <ad-column-visible-wrapper\n :index=\"data.index\"\n :fields=\"fields\"\n :field=\"data.field\"\n :class=\"['overflow-hidden', { 'text-truncate': data.field.isEllipsis }]\"\n @visibleChange=\"visibleChange\"\n >\n <slot name=\"row-custom-instrument\" :field=\"data.field\" :instrument=\"data.item.instrument\">\n {{ data.field }}\n </slot>\n </ad-column-visible-wrapper>\n </template>\n </template>\n <template #cell(showDetails)=\"row\" v-if=\"isDetailRow\">\n <b-button squared size=\"sm\" variant=\"l\" @click=\"toggleDetails(this, row)\">\n <ad-icon-chevron :direction=\"row.detailsShowing ? direction.up : direction.down\" size=\"m\" class=\"clarinet\" />\n </b-button>\n </template>\n <template #row-details=\"data\" v-if=\"isDetailRow\">\n <slot name=\"row-details\" :data=\"data\">Table details</slot>\n </template>\n </b-table>\n </ad-skeleton-table>\n</template>\n\n<script lang=\"ts\">\nimport { Direction, Separator, SortingDirection, TextAlign } from '@t/enumerations';\nimport {\n InstrumentMergeColumnSetting,\n InstrumentTableColumnSetting,\n PageRoutes,\n TableColumnSettingBase,\n} from '@t/episerver-api';\nimport { ProductModel, SortOrder, UnderlyingModel } from '@t/the-q-api';\nimport { Component, Inject, Prop, Ref, Vue, Watch } from 'vue-property-decorator';\nimport { InstrumentTableSettingData, TableField } from '@t/vue-api';\nimport { BRow, BTable, BvTableCtxObject } from 'bootstrap-vue';\nimport { isMergeColumnSetting } from '@/src/types/type-guards';\nimport { mapTextAlign } from '@/src/utils/enum-value-helper';\nimport AdColumnVisibleWrapper from './column-visible-wrapper.vue';\nimport { pushPufferNumber } from '@/src/state/plugins/light-streamer/pushing-helper';\n\n@Component({\n inheritAttrs: false,\n components: {\n AdColumnVisibleWrapper,\n },\n})\nexport default class AdInstrumentTable extends Vue {\n @Prop() settings!: InstrumentTableSettingData;\n @Prop({ default: () => [] }) sortOrders!: Array<SortOrder>;\n @Prop({ required: true }) instruments!: Array<ProductModel | UnderlyingModel>;\n @Prop()\n isShowColumn!: (column: InstrumentTableColumnSetting | InstrumentMergeColumnSetting) => boolean;\n @Prop({ default: false, type: Boolean })\n sorting!: boolean;\n @Prop({ default: false, type: Boolean })\n selectable!: boolean;\n @Prop({ default: false, type: Boolean })\n noSelectOnClick!: boolean;\n @Prop({ default: 5, type: Number })\n rows!: boolean;\n @Prop({ default: 5, type: Number })\n cols!: boolean;\n @Prop({ default: false, type: Boolean })\n loading!: boolean;\n @Inject() pageRoutes!: PageRoutes;\n\n @Ref() readonly table!: BTable;\n\n private watchListKey = 'watchListKey';\n private fields: Array<TableField> = [];\n private isBlockSetTableColumnDefinitionSwitch = false;\n // to use enum in template\n private separator = Separator;\n private direction = Direction;\n\n private currentOpenItem;\n private sortBy: string | null = null;\n private sortDesc = false;\n private visibleItems: Array<number> = [];\n private maxPufferItems = 0;\n private minPufferItems = 0;\n\n get items() {\n return this.instruments?.map((i) => {\n const item = {\n instrument: i,\n _showDetails: false,\n };\n\n return item;\n });\n }\n\n get isDetailRow() {\n return !!this.$scopedSlots['row-details'];\n }\n\n get isWatchListRow() {\n return !!this.$scopedSlots['row-watch-list'];\n }\n\n get columns() {\n return this.fields.length > 0 ? this.fields.length : 5;\n }\n\n created() {\n this.$refs.table = this.table;\n }\n\n mounted(): void {\n this.setTableColumnDefinition();\n }\n\n @Watch('loading')\n clearVisibleItems() {\n this.visibleItems = [];\n }\n\n visibleChange(isVisible: boolean, index: number) {\n const currentMax = this.maxPufferItems;\n const currentMin = this.minPufferItems;\n\n if (isVisible) {\n if (this.visibleItems.findIndex((n) => n === index) === -1) this.visibleItems.push(index);\n } else {\n const i = this.visibleItems.findIndex((n) => n === index);\n if (i >= 0) this.visibleItems.splice(i, 1);\n }\n\n if (this.visibleItems.length > 0) {\n const min = Math.min(...this.visibleItems) - pushPufferNumber;\n const max = Math.max(...this.visibleItems) + pushPufferNumber;\n this.minPufferItems = min < 0 ? 0 : min;\n this.maxPufferItems = max > this.items.length ? this.items.length : max;\n }\n\n if (currentMax != this.maxPufferItems || currentMin != this.minPufferItems) {\n this.$emit('pushing-items', this.minPufferItems, this.maxPufferItems);\n }\n }\n\n @Watch('sortOrders')\n @Watch('$screen.breakpoint')\n setTableColumnDefinition(): void {\n if (this.isBlockSetTableColumnDefinitionSwitch) {\n this.isBlockSetTableColumnDefinitionSwitch = false;\n } else {\n this.sortBy = null;\n this.sortDesc = false;\n this.fields = [];\n\n if (this.isDetailRow && !this.settings.hideDetailColumn)\n this.fields.push({\n key: 'showDetails',\n label: '',\n tdClass: 'td-col-detail',\n class: 'col-detail',\n });\n\n if (this.isWatchListRow && this.pageRoutes.watchlistUrl)\n this.fields.push({\n label: '',\n tdClass: 'td-watchlist',\n class: 'td-watchlist',\n key: this.watchListKey,\n });\n\n const setClass = (textAlign: TextAlign, columnWidth: number | null) => {\n return [mapTextAlign(textAlign), columnWidth ? `w-${columnWidth}` : 'w-auto'];\n };\n\n const addMergeColumn = (\n tableColumnsSetting: Array<InstrumentMergeColumnSetting | TableColumnSettingBase>,\n fields: TableField[]\n ) => {\n tableColumnsSetting.forEach((column, index) => {\n if (isMergeColumnSetting(column)) {\n if (this.getIsShowColumnSetting(column)) {\n fields.push({\n label: column.headline,\n key: index.toString(),\n sortable: false,\n class: setClass(column.textAlign, column.columnWidth),\n mergeColumnSettings: column.columnMergeSetting,\n isEllipsis: column.isEllipsis,\n });\n }\n } else {\n fields.push({\n label: column.headline,\n key: index.toString(),\n sortable: false,\n class: setClass(column.textAlign, column.columnWidth),\n isEllipsis: column.isEllipsis,\n });\n }\n });\n };\n\n if (this.$screen.xl) {\n let sortIndex = 0;\n this.settings.desktopTableColumnsSetting.forEach((column, index) => {\n if (isMergeColumnSetting(column)) {\n if (this.getIsShowColumnSetting(column)) {\n let sortColumn: SortOrder | undefined;\n let key = index.toString();\n let isSorting = false;\n\n if (column.columnMergeSetting.length == 1) {\n key = (column.columnMergeSetting[0] as InstrumentTableColumnSetting).key;\n sortColumn = this.sortOrders?.find((so) => so.key === key);\n isSorting = true;\n }\n\n if (sortColumn) sortIndex = this.sortOrders.indexOf(sortColumn) + 1;\n\n this.fields.push({\n key: key,\n label: column.headline,\n sortable: this.sorting && isSorting,\n class: setClass(column.textAlign, column.columnWidth),\n thClass: [sortColumn ? SortingDirection[sortColumn.direction].toLowerCase() : 'no-sort'],\n sortNumber: sortColumn ? sortIndex : 0,\n mergeColumnSettings: column.columnMergeSetting,\n isEllipsis: column.isEllipsis,\n });\n }\n } else {\n this.fields.push({\n label: column.headline,\n key: index.toString(),\n sortable: false,\n class: setClass(column.textAlign, column.columnWidth),\n isEllipsis: column.isEllipsis,\n });\n }\n });\n } else if (this.$screen.md) {\n addMergeColumn(this.settings.tabletTableColumnsSetting, this.fields);\n } else {\n addMergeColumn(this.settings.mobileTableColumnsSetting, this.fields);\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rowClicked(item: any, index: number, event: Event) {\n if (!(this.noSelectOnClick || this.table.isRowSelected(index))) {\n this.table.selectRow(index);\n }\n\n this.$emit('row-clicked', item.instrument, index, event);\n }\n\n sortingChanged(ctx: BvTableCtxObject): void {\n this.fields.forEach((f) => {\n f.thClass = '';\n f.sortNumber = 0;\n });\n this.isBlockSetTableColumnDefinitionSwitch = true;\n this.sortBy = ctx.sortBy;\n this.sortDesc = ctx.sortDesc;\n\n this.$emit('sorting-value-changed', [\n {\n key: ctx.sortBy,\n direction: ctx.sortDesc ? SortingDirection.Descending : SortingDirection.Ascending,\n },\n ] as Array<SortOrder>);\n }\n\n getIsShowColumnSetting(column: InstrumentMergeColumnSetting) {\n if (typeof this.isShowColumn === 'function') {\n return this.isShowColumn(column);\n }\n\n return true;\n }\n\n toggleDetails(e: Event, row: BRow) {\n row.toggleDetails(e);\n\n if (this.currentOpenItem && this.currentOpenItem !== row.item) {\n this.currentOpenItem._showDetails = false;\n }\n this.currentOpenItem = row.item;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.instrument-search-table {\n table-layout: fixed;\n\n tr:nth-of-type(2n + 1) {\n .td-col-detail {\n background-color: #d8e1e9;\n }\n }\n\n .sorting {\n display: none;\n }\n\n [aria-sort='ascending'],\n [aria-sort='descending'] {\n padding-right: 1em !important;\n }\n\n .ascending,\n .descending {\n padding-right: 2em !important;\n }\n\n [aria-sort='ascending'],\n .ascending,\n [aria-sort='descending'],\n .descending {\n .sorting {\n display: inline-block;\n height: 1em;\n }\n }\n\n td,\n th {\n overflow: hidden;\n white-space: nowrap;\n }\n\n .b-table-details > td {\n padding-bottom: 0;\n white-space: normal;\n }\n\n .col-detail {\n width: 39px;\n }\n\n .td-watchlist {\n padding-right: 0;\n padding-left: rem(4);\n width: rem(39);\n vertical-align: middle;\n > .btn {\n padding: 0 4px !important;\n }\n svg {\n width: 1.3em;\n height: 1.3em;\n }\n }\n\n .td-col-detail {\n background-color: #e4ebf1;\n padding: 0;\n\n vertical-align: middle;\n > .btn {\n border-style: none;\n background-color: transparent;\n padding-right: 10px;\n padding-left: 10px;\n min-width: 39px;\n height: 100%;\n\n &:focus {\n box-shadow: none;\n }\n &:active {\n background-color: transparent;\n }\n }\n }\n\n .b-table-has-details {\n .td-col-detail {\n background-color: transparent;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=46f2e909\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=46f2e909&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',[_vm._t(\"default\",function(){return [_vm._v(\" ... \")]},{\"isin\":_vm.isin,\"instrumentName\":_vm.name})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span>\n <slot :isin=\"isin\" :instrument-name=\"name\"> ... </slot>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { ProductModel, UnderlyingModel } from '@/src/types/the-q-api';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Getter } from 'vuex-class';\n\n@Component\nexport default class AdInstrumentUrlReplacer extends Vue {\n @Getter('underlying', { namespace: 'underlying' })\n private underlying!: UnderlyingModel | null;\n\n @Getter('product', { namespace: 'product' })\n private product!: ProductModel | null;\n\n get isin() {\n return this.product?.isin ?? this.underlying?.isin ?? '...';\n }\n get name() {\n return this.product?.productNameTranslation ?? this.underlying?.name ?? '...';\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=572b8d1a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pb-3 pb-md-5 pb-lg-4\"},[_c('table',[_c('tr',[_c('td',{staticClass:\"p-0 marine-blue font-weight-bold\"},[_vm._t(\"isin-label\")],2),_c('td',{staticClass:\"py-0\"},[_c('ad-product-data-value',{attrs:{\"field-key\":\"product.isin\"}})],1)]),(_vm.hasNsinField)?_c('tr',[_c('td',{staticClass:\"p-0 marine-blue font-weight-bold\"},[_vm._t(\"nsin-label\")],2),_c('td',{staticClass:\"py-0\"},[_vm._t(\"nsin-field\")],2)]):_vm._e(),_vm._l((_vm.columns),function(column,index){return [((_vm.isAddColumnDistributionFee && column.isDistributionSwitchColumn) || !column.isDistributionSwitchColumn)?_c('tr',{key:column.key},[_c('td',{class:['p-0 marine-blue font-weight-bold', { 'pt-2': index == 0 }]},[_vm._v(_vm._s(column.headline))]),_c('td',{class:['py-0', { 'pt-2': index == 0 }]},[_c('ad-product-data-value',{attrs:{\"field-key\":column.formatId}})],1)]):_vm._e()]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"pb-3 pb-md-5 pb-lg-4\">\n <table>\n <tr>\n <td class=\"p-0 marine-blue font-weight-bold\"><slot name=\"isin-label\"></slot></td>\n <td class=\"py-0\"><ad-product-data-value field-key=\"product.isin\"></ad-product-data-value></td>\n </tr>\n <tr v-if=\"hasNsinField\">\n <td class=\"p-0 marine-blue font-weight-bold\"><slot name=\"nsin-label\"></slot></td>\n <td class=\"py-0\"><slot name=\"nsin-field\"></slot></td>\n </tr>\n <template v-for=\"(column, index) in columns\">\n <tr\n v-if=\"(isAddColumnDistributionFee && column.isDistributionSwitchColumn) || !column.isDistributionSwitchColumn\"\n :key=\"column.key\"\n >\n <td :class=\"['p-0 marine-blue font-weight-bold', { 'pt-2': index == 0 }]\">{{ column.headline }}</td>\n <td :class=\"['py-0', { 'pt-2': index == 0 }]\">\n <ad-product-data-value :field-key=\"column.formatId\"></ad-product-data-value>\n </td>\n </tr>\n </template>\n </table>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Inject, InjectReactive, Vue } from 'vue-property-decorator';\nimport { ProductTeaserSettings } from '@/src/types/vue-api';\nimport { InstrumentTableColumnSetting } from '@/src/types/episerver-api';\n\n@Component({})\nexport default class AdProductColumnList extends Vue {\n @Inject() teaserSettingsProperty!: ProductTeaserSettings;\n @InjectReactive() isAddColumnDistributionFee!: boolean;\n\n get hasNsinField() {\n return !!this.$slots['nsin-field'];\n }\n\n get columns(): InstrumentTableColumnSetting[] {\n if (this.$screen.xl) return this.teaserSettingsProperty.desktopTableColumnsSetting;\n else if (this.$screen.lg || this.$screen.md) return this.teaserSettingsProperty.tabletTableColumnsSetting;\n else return this.teaserSettingsProperty.mobileTableColumnsSetting;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ba714db8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-text',{attrs:{\"loading\":_vm.currentProduct === null}},[(_vm.isLink)?_c('ad-product-link',{attrs:{\"variant\":\"link\",\"product-item\":_vm.currentProduct}},[_c('ad-instrument-data-value',_vm._b({attrs:{\"value\":_vm.value,\"fieldKey\":_vm.fieldKey,\"instrument\":_vm.currentProduct},on:{\"subscribe-to-push\":_vm.subscribePushValue}},'ad-instrument-data-value',_vm.$attrs,false))],1):_c('ad-instrument-data-value',_vm._b({attrs:{\"value\":_vm.value,\"fieldKey\":_vm.fieldKey,\"instrument\":_vm.currentProduct},on:{\"subscribe-to-push\":_vm.subscribePushValue}},'ad-instrument-data-value',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-text :loading=\"currentProduct === null\">\n <ad-product-link variant=\"link\" v-if=\"isLink\" :product-item=\"currentProduct\">\n <ad-instrument-data-value\n v-bind=\"$attrs\"\n :value=\"value\"\n :fieldKey=\"fieldKey\"\n :instrument=\"currentProduct\"\n @subscribe-to-push=\"subscribePushValue\"\n ></ad-instrument-data-value>\n </ad-product-link>\n <ad-instrument-data-value\n v-else\n v-bind=\"$attrs\"\n :value=\"value\"\n :fieldKey=\"fieldKey\"\n :instrument=\"currentProduct\"\n @subscribe-to-push=\"subscribePushValue\"\n ></ad-instrument-data-value>\n </ad-skeleton-text>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Watch, Inject, InjectReactive } from 'vue-property-decorator';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { ApiTypeValue } from '@/src/types/vue-api';\nimport { PageRoutes, InstrumentFieldKeys, InstrumentDataRowSettings } from '@/src/types/episerver-api';\nimport evaluateExpressionByKey from '@/src/utils/value-formatter/format-helper';\nimport { Action, Getter } from 'vuex-class';\nimport { isPriceModel } from '@src/types/type-guards';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductDataValue extends Vue {\n @Inject() pageRoutes!: PageRoutes;\n @Inject() nsinKeys!: InstrumentFieldKeys | null;\n @Prop({ required: true }) fieldKey!: string;\n @Prop({ default: false, type: Boolean }) isLinkToDetailPage!: boolean;\n @Inject({ default: null }) settingsProperty?: InstrumentDataRowSettings | null;\n /**\n * Product can be obtained with three different approaches in this component.\n * 1. Pass \"product\" as Prop\n * 2. Inject \"product\" from parent\n * 3. Fallback to reading from state. When reading from state, make sure that\n * `loadProductAsync` (see state/modules/product.ts) was called before,\n * otherwise it will not be available.\n */\n\n // 1. Pass as Prop\n @Prop() productItem!: ProductModel | null;\n\n // 2. Inject from Parent\n @InjectReactive({ from: 'product' }) productInjected!: ProductModel | null;\n\n // 3. Read from State\n @Getter('product', { namespace: 'product' })\n private product!: ProductModel | null;\n\n @Action('subscribePushValue', { namespace: 'product' })\n subscribePushValue!: (fieldKey: string) => Promise<void>;\n\n get value(): ApiTypeValue {\n return evaluateExpressionByKey(this.fieldKey, {\n // setting product to get value from productItem and set fieldkey, e.g. product.last\n product: this.currentProduct,\n });\n }\n\n get currentProduct(): ProductModel | null {\n return this.productItem || this.productInjected || this.product;\n }\n\n public get hasValue(): boolean {\n if (isPriceModel(this.value)) {\n return this.value.amount !== null;\n }\n\n return this.value !== null && this.value !== undefined;\n }\n\n private get isLink() {\n return this.settingsProperty?.isLinkToDetailPage || this.isLinkToDetailPage || false;\n }\n\n @Watch('hasValue', { immediate: true })\n onValueChange(): void {\n this.$emit('has-value', this.hasValue);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7d21b7fe\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-button',_vm._b({attrs:{\"disabled\":!_vm.link || !this.currentProduct,\"href\":_vm.link}},'b-button',_vm.$attrs,false),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-button :disabled=\"!link || !this.currentProduct\" :href=\"link\" v-bind=\"$attrs\">\n <slot></slot>\n </b-button>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Inject, InjectReactive, Prop, Vue } from 'vue-property-decorator';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { InstrumentFieldKeys, PageRoutes } from '@/src/types/episerver-api';\nimport { tryCreateProductLink } from '@/src/utils/url-helper';\nimport evaluateExpressionByKey from '@/src/utils/value-formatter/format-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductLink extends Vue {\n @InjectReactive() product!: ProductModel | null;\n @Inject() pageRoutes!: PageRoutes;\n @Inject() nsinKeys!: InstrumentFieldKeys | null;\n @Prop() productItem!: ProductModel | null;\n\n get currentProduct(): ProductModel | null {\n return this.productItem || this.product;\n }\n\n get link(): string | null {\n if (this.currentProduct) {\n let nsin;\n\n if (this.pageRoutes.urlKeys?.productKey) {\n nsin = evaluateExpressionByKey(this.pageRoutes.urlKeys?.productKey, { product: this.currentProduct });\n } else {\n nsin = this.currentProduct.isin;\n }\n\n const underlying =\n this.currentProduct.underlyings && this.currentProduct.underlyings.length\n ? this.currentProduct.underlyings[0].name\n : '-';\n\n return tryCreateProductLink(this.pageRoutes, this.currentProduct.productType, underlying, nsin);\n }\n\n return null;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9df0ec04\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-form-group',{staticClass:\"bg-transparent border-0 p-0\"},[_c('ad-skeleton-radio-buttons',{attrs:{\"label\":_vm.label,\"loading\":_vm.loading}},[_c('ce-radio-buttons',_vm._b({attrs:{\"id\":\"product-sub-type-buttons\",\"stretched\":\"\",\"label\":_vm.label,\"value\":_vm.value},on:{\"input\":function($event){return _vm.applyFilter($event)}}},'ce-radio-buttons',_vm.$attrs,false),_vm._l((_vm.slotsToRender),function(element){return _c('span',{key:element.value,attrs:{\"value\":element.value}},[_vm._t(\"{{element.label}}\",function(){return [_vm._v(_vm._s(element.label))]})],2)}),0)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form-group class=\"bg-transparent border-0 p-0\">\n <ad-skeleton-radio-buttons :label=\"label\" :loading=\"loading\">\n <ce-radio-buttons\n id=\"product-sub-type-buttons\"\n stretched\n :label=\"label\"\n v-bind=\"$attrs\"\n :value=\"value\"\n @input=\"applyFilter($event)\"\n >\n <span v-for=\"element in slotsToRender\" :key=\"element.value\" :value=\"element.value\">\n <slot name=\"{{element.label}}\">{{ element.label }}</slot>\n </span>\n </ce-radio-buttons>\n </ad-skeleton-radio-buttons>\n </b-form-group>\n</template>\n\n<script lang=\"ts\">\nimport { ProductSearchPageSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { ProductSubTypeBo } from '@src/types/enumerations';\n\nclass SlotElement {\n readonly value: ProductSubTypeBo | null;\n readonly label: string;\n\n constructor(val: ProductSubTypeBo | null, label: string) {\n this.value = val;\n this.label = label;\n }\n}\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductSearchFilterSubtype extends Vue {\n @Inject() settingsProperty!: ProductSearchPageSetting;\n @Prop({ default: false, type: Boolean }) wide!: boolean;\n\n @Prop({ required: true })\n value!: string;\n\n @Prop({ default: false }) loading!: boolean;\n\n selectedSubType: ProductSubTypeBo | null = null;\n\n get label() {\n return this.$slots['filter-label-text'] && this.$slots['filter-label-text'][0]\n ? this.$slots['filter-label-text'][0].text\n : undefined;\n }\n\n get slotsToRender(): Array<SlotElement> {\n if (!this.loading) {\n const slotsArray: Array<SlotElement> = [\n new SlotElement(ProductSubTypeBo.Call, this.getLabelForCall()),\n new SlotElement(ProductSubTypeBo.Put, this.getLabelForPut()),\n ];\n\n if (this.isLabelForBothActive()) {\n slotsArray.push(new SlotElement(null, this.getLabelForBoth()));\n }\n\n return slotsArray;\n }\n\n return [];\n }\n\n getLabelValue(name: string): string {\n const entry = this.$slots[name];\n const val = entry && entry.length > 0 ? entry[0].text : undefined;\n\n return val ? val : '';\n }\n\n applyFilter(val: string): void {\n this.$emit('input', val);\n this.$emit('selected-value-changed');\n }\n\n getLabelForPut(): string {\n return this.getLabelValue('subtype-label-put');\n }\n\n getLabelForCall(): string {\n return this.getLabelValue('subtype-label-call');\n }\n\n getLabelForBoth(): string {\n return this.getLabelValue('subtype-label-both');\n }\n\n isLabelForBothActive(): boolean {\n const labelSlot = this.getLabelForBoth();\n return labelSlot.trim().length > 0;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5ec16266\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"12\"}},[_c('b-alert',{staticClass:\"status-icon-alert border-pill px-4 py-2 mb-3 w-sm-100 text-center fs-14 d-lg-inline-block\",attrs:{\"show\":true,\"variant\":\"danger\"}},[_vm._t(\"default\")],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ApiTypeValue } from '@/src/types/vue-api';\nimport { ComparisonOperators } from '@/src/types/enumerations';\n\nfunction prepareValues(\n first: ApiTypeValue,\n second: string | null | number\n): { first: ApiTypeValue; second: string | null | number } {\n const result = { first: first, second: second };\n result.second = second === 'null' ? '' : second;\n\n if (first == null || first == undefined) {\n result.first = '';\n } else if (second === 'Date.now()') {\n result.first = typeof first === 'string' && first.length != 0 ? Date.parse(first) : null;\n result.second = Date.now();\n }\n return result;\n}\n\nexport function evaluateCondition(first: ApiTypeValue, second: string | null, operation: ComparisonOperators): boolean {\n const values = prepareValues(first, second);\n\n switch (operation) {\n case ComparisonOperators.Equal:\n return values.first == values.second;\n case ComparisonOperators.NotEqual:\n return values.first != values.second;\n }\n //Other operators require both values to be defined\n if (\n values.first === undefined ||\n values.first === null ||\n values.first === '' ||\n values.second === undefined ||\n values.second === null ||\n values.second === ''\n )\n return false;\n switch (operation) {\n case ComparisonOperators.Less:\n return values.first < values.second;\n case ComparisonOperators.Greater:\n return values.first > values.second;\n case ComparisonOperators.LessOrEqual:\n return values.first <= values.second;\n case ComparisonOperators.GreaterOrEqual:\n return values.first >= values.second;\n }\n return false;\n}\n","<template>\n <b-col cols=\"12\" md=\"6\" lg=\"12\" v-if=\"isVisible\">\n <b-alert\n :show=\"true\"\n class=\"status-icon-alert border-pill px-4 py-2 mb-3 w-sm-100 text-center fs-14 d-lg-inline-block\"\n variant=\"danger\"\n >\n <slot name=\"default\"></slot>\n </b-alert>\n </b-col>\n</template>\n\n<script lang=\"ts\">\nimport { DisplayConditionSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, InjectReactive, Vue } from 'vue-property-decorator';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { evaluateCondition } from '@/src/utils/condition-evaluator';\nimport { InstrumentDataFieldBase, ProductHistoryDataField } from '@/src/types/episerver-api-instrument';\nimport evaluateExpressionByKey, { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductStatusIcon extends Vue {\n @Inject() settingsProperty!: DisplayConditionSetting[];\n @InjectReactive() product!: ProductModel | null;\n\n get isVisible() {\n return (\n this.product &&\n this.settingsProperty.reduce<boolean>((result, condition) => {\n return result && this.evaluateCondition(condition);\n }, true)\n );\n }\n\n private evaluateCondition(condition: DisplayConditionSetting): boolean {\n const fieldExpression = (\n getFormatDataField(condition.fieldKey) as InstrumentDataFieldBase | ProductHistoryDataField\n )?.valueExpression;\n if (!fieldExpression) {\n this.$log.error('Data field not found: ' + condition.fieldKey);\n return false;\n }\n const currentValue = evaluateExpressionByKey(fieldExpression, this.product);\n const result = evaluateCondition(currentValue, condition.value, condition.operation);\n this.$log.debug(condition.fieldKey, currentValue, condition.operation, condition.value, result);\n return result;\n }\n}\n</script>\n<style lang=\"scss\">\n.status-icon-alert {\n min-width: 223px;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2250fbd2\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2250fbd2&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-button',_vm._b({staticClass:\"w-100 mb-2 px-2 d-flex fs-16\",attrs:{\"variant\":\"light\",\"disabled\":_vm.disabled},on:{\"click\":_vm.click}},'b-button',_vm.$attrs,false),[_c('span',{staticClass:\"flex-grow-1 text-left text-nowrap\"},[_vm._v(\" \"+_vm._s(_vm.type.displayName)+\" \")]),_c('span',[(!_vm.disabled)?_c('ad-icon-chevron',{staticClass:\"display-inline-block\",attrs:{\"aria-hidden\":\"true\",\"size\":\"s\",\"direction\":\"right\"}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-button class=\"w-100 mb-2 px-2 d-flex fs-16\" variant=\"light\" v-bind=\"$attrs\" :disabled=\"disabled\" @click=\"click\">\n <span class=\"flex-grow-1 text-left text-nowrap\">\n {{ type.displayName }}\n </span>\n <span>\n <ad-icon-chevron\n v-if=\"!disabled\"\n class=\"display-inline-block\"\n aria-hidden=\"true\"\n size=\"s\"\n direction=\"right\"\n ></ad-icon-chevron>\n </span>\n </b-button>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { Component, Prop, Emit } from 'vue-property-decorator';\nimport { ProductTypeModel } from '@src/types/episerver-api';\n\n@Component\nexport default class AdProductTypeButton extends Vue {\n @Prop()\n private type: ProductTypeModel | undefined;\n\n @Prop({ type: Boolean, default: true })\n private disabled;\n\n @Emit('click')\n private click(e) {\n return e;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=111d51d4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-table',{attrs:{\"loading\":_vm.types.length === 0,\"columns\":2}},[_c('b-table-simple',{attrs:{\"striped\":\"\",\"borderless\":\"\"}},[_c('colgroup',[_c('col',{staticClass:\"w-75\"}),_c('col',{staticClass:\"w-25 text-right\"})]),_c('b-thead',[_c('b-tr',[_c('b-th',[_vm._t(\"header-name\")],2),_c('b-th',{staticClass:\"text-right\"},[_vm._t(\"header-count\")],2)],1)],1),_c('b-tbody',_vm._l((_vm.searchLinks),function(link,i){return _c('b-tr',{key:link},[_c('b-td',[_c('a',{attrs:{\"href\":link}},[_vm._v(_vm._s(_vm.types[i].text))])]),_c('b-td',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm.types[i].count)+\" \")])],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-table :loading=\"types.length === 0\" :columns=\"2\">\n <b-table-simple striped borderless>\n <colgroup>\n <col class=\"w-75\" />\n <col class=\"w-25 text-right\" />\n </colgroup>\n <b-thead>\n <b-tr>\n <b-th><slot name=\"header-name\"></slot></b-th>\n <b-th class=\"text-right\"><slot name=\"header-count\"></slot></b-th>\n </b-tr>\n </b-thead>\n <b-tbody>\n <b-tr v-for=\"(link, i) in searchLinks\" :key=\"link\">\n <b-td>\n <a :href=\"link\">{{ types[i].text }}</a>\n </b-td>\n <b-td class=\"text-right\">\n {{ types[i].count }}\n </b-td>\n </b-tr>\n </b-tbody>\n </b-table-simple>\n </ad-skeleton-table>\n</template>\n<script lang=\"ts\">\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { Option } from '@src/types/the-q-api';\nimport { PageRoutes } from '@/src/types/episerver-api';\nimport { tryCreateProductSearchLink } from '@/src/utils/url-helper';\nimport { ProductTypeBo } from '@/src/types/enumerations';\nimport { ProductSearchParametersFilter } from '@/src/types/vue-api';\n\n@Component({})\nexport default class AdProductTypeCountTable extends Vue {\n @Prop({ required: true }) types!: Option[];\n @Prop({ required: true }) selectedUnderlying!: string;\n @Prop({ default: false, type: Boolean }) collapsible!: boolean;\n\n @Inject() pageRoutes!: PageRoutes;\n\n get searchLinks(): Array<string | null> {\n if (this.selectedUnderlying) {\n const searchFilters = new ProductSearchParametersFilter();\n searchFilters.underlyingIsinOrIsins = this.selectedUnderlying;\n return this.types.map((type) =>\n tryCreateProductSearchLink(this.pageRoutes, ProductTypeBo[type.value], searchFilters)\n );\n }\n\n return Array(this.types.length).fill(null);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9ea362b4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-drop-down-list',_vm._b({attrs:{\"options\":_vm.getItems,\"value\":_vm.value,\"loading\":_vm.internalLoading},on:{\"selected-value-changed\":_vm.selectedValueChanged,\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-label\")]},proxy:true},{key:\"placeholder\",fn:function(){return [_vm._t(\"placeholder\")]},proxy:true}],null,true)},'ad-drop-down-list',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-drop-down-list\n v-bind=\"$attrs\"\n :options=\"getItems\"\n @selected-value-changed=\"selectedValueChanged\"\n :value=\"value\"\n @input=\"setValue\"\n :loading=\"internalLoading\"\n >\n <template #all-items-label>\n <slot name=\"all-items-label\"></slot>\n </template>\n <template #placeholder>\n <slot name=\"placeholder\"></slot>\n </template>\n </ad-drop-down-list>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Option, OptionGroup, ProductTypeGroupOptionsFilter, ProductTypeOptionsFilter } from '@src/types/the-q-api';\nimport { convertGroups, convertOptions } from '@src/utils/dropdown-option-provider';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductTypeList extends Vue {\n @Prop() value!: DropDownItem;\n @Prop({ default: false, type: Boolean }) onlyLeverage!: boolean;\n @Prop({ default: null }) availableItems!: Array<string> | null;\n private productTypes: DropDownItem[] | null = [];\n private filter = {} as ProductTypeGroupOptionsFilter;\n private internalLoading = true;\n\n @Getter('productTypeOptions', { namespace: 'product' })\n productTypeOptions!: (filter: ProductTypeOptionsFilter) => Option[];\n\n @Getter('productTypeGroupOptions', { namespace: 'product' })\n productTypeGroupOptions!: (filter: ProductTypeGroupOptionsFilter) => OptionGroup[];\n\n @Action('getProductTypeOptionsAsync', { namespace: 'product' })\n getProductTypeOptionsAsync!: (filter: ProductTypeOptionsFilter) => Promise<void>;\n\n @Action('getProductTypeGroupOptionsAsync', { namespace: 'product' })\n getProductTypeGroupOptionsAsync!: (filter: ProductTypeGroupOptionsFilter) => Promise<void>;\n\n get getItems() {\n return this.availableItems !== null ? this.getProductTypes() : this.getProductTypeGroups();\n }\n\n private selectedValueChanged(): void {\n this.$emit('selected-value-changed');\n }\n\n get allOptionLabel(): string | null {\n const slots = this.$slots['all-items-label'];\n return slots && slots.length ? slots[0].text ?? null : null;\n }\n\n private async created() {\n this.filter = { onlyLeverage: this.onlyLeverage } as ProductTypeGroupOptionsFilter;\n try {\n await this.getProductTypeGroupOptionsAsync(this.filter);\n await this.getProductTypeOptionsAsync({} as ProductTypeOptionsFilter);\n } catch (e) {\n this.$log.error('Error occured loading data in product type list', e);\n }\n this.internalLoading = false;\n }\n\n private getProductTypeGroups(): DropDownItem[] {\n const groupOptions = this.productTypeGroupOptions(this.filter);\n if (groupOptions.length > 1) {\n return convertGroups(groupOptions, this.allOptionLabel);\n } else if (groupOptions.length == 1) {\n return convertOptions(groupOptions[0].options, this.allOptionLabel);\n } else {\n return [];\n }\n }\n\n private getProductTypes() {\n const filter = {} as ProductTypeOptionsFilter;\n let options = this.productTypeOptions(filter);\n if (this.availableItems) {\n options = options.filter((t) => this.availableItems?.includes(t.value));\n }\n return convertOptions(options, this.allOptionLabel);\n }\n\n setValue(newValue: string | null): void {\n this.$emit('input', newValue);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=28d279f5\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('b-button',{staticClass:\"watchlist p-2 border-0 miw-auto rounded-circle d-inline-block\",attrs:{\"variant\":_vm.isProductInWatchlist && _vm.cookieComfortAccepted ? 'watchlist-remove' : 'watchlist-add'},on:{\"click\":_vm.toggleItem}},[(_vm.isProductInWatchlist)?_c('ad-icon-watchlist-remove',{attrs:{\"height\":_vm.iconSize,\"width\":_vm.iconSize}}):_c('ad-icon-watchlist-add',{attrs:{\"height\":_vm.iconSize,\"width\":_vm.iconSize}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-button\n v-if=\"isVisible\"\n class=\"watchlist p-2 border-0 miw-auto rounded-circle d-inline-block\"\n :variant=\"isProductInWatchlist && cookieComfortAccepted ? 'watchlist-remove' : 'watchlist-add'\"\n @click=\"toggleItem\"\n >\n <ad-icon-watchlist-remove v-if=\"isProductInWatchlist\" :height=\"iconSize\" :width=\"iconSize\" />\n <ad-icon-watchlist-add v-else :height=\"iconSize\" :width=\"iconSize\" />\n </b-button>\n</template>\n\n<script lang=\"ts\">\nimport { InjectReactive, Component, Vue, Inject, Prop } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { ProductModel, PriceModel } from '@/src/types/the-q-api';\nimport { WatchedProduct } from '@/src/types/vue-api';\nimport { PageRoutes } from '@/src/types/episerver-api';\nimport CookieManager from '@/src/utils/cookie';\nimport { MissingCookieModalId } from '@/src/types/enumerations';\n\n@Component({})\nexport default class AdProductWatchlistToggle extends Vue {\n @Getter('watchedProducts', { namespace: 'watchlist' })\n watchedProducts!: Array<WatchedProduct>;\n\n @Action('addProduct', { namespace: 'watchlist' })\n addProduct!: (product: { code: string; price: PriceModel }) => Promise<void>;\n\n @Action('removeProduct', { namespace: 'watchlist' })\n removeProduct!: (code: string) => Promise<void>;\n\n @Inject() pageRoutes!: PageRoutes;\n\n /**\n * Product can be obtained with three different approaches in this component.\n * 1. Pass \"product\" as Prop\n * 2. Inject \"product\" from parent\n */\n\n // 1. Pass as Prop\n @Prop() productItem!: ProductModel | null;\n\n // 2. Inject from Parent\n @InjectReactive({ from: 'product', default: null }) productInjected!: ProductModel | null;\n\n private cookieManager!: CookieManager;\n private iconSize = '2.5em';\n\n get currentProduct(): ProductModel | null {\n return this.productItem || this.productInjected;\n }\n\n get isVisible() {\n return this.currentProduct?.securityCode && this.pageRoutes.watchlistUrl;\n }\n\n get isProductInWatchlist(): boolean {\n if (this.currentProduct === null) return false;\n return this.watchedProducts.find((p) => p.securityCode === this.currentProduct?.securityCode) !== undefined;\n }\n\n get cookieComfortAccepted(): boolean {\n return this.cookieManager?.comfort || false;\n }\n\n async created(): Promise<void> {\n this.cookieManager = new CookieManager(this.$cookies);\n }\n\n toggleItem() {\n if (this.cookieComfortAccepted) {\n if (this.currentProduct && this.currentProduct.securityCode) {\n if (this.isProductInWatchlist) this.removeProduct(this.currentProduct.securityCode);\n else this.addProduct({ code: this.currentProduct.securityCode, price: this.currentProduct.price.bid });\n }\n } else {\n this.$bvModal.show(MissingCookieModalId.MissingWatchlistCookieModal);\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=17031378\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-collapse-on-mobile',_vm._b({scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"block-header\")]},proxy:true}],null,true)},'ad-collapse-on-mobile',_vm.$attrs,false),[_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"pb-1 pb-mb-0\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_c('div',{staticClass:\"marine-blue font-weight-bold fs-14\"},[_vm._t(\"trigger-header\")],2),_c('span',{staticClass:\"d-inline-block mr-2 fs-26\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":_vm.settingsProperty.triggerProbabilityFieldKey}})],1),_c('span',{staticClass:\"d-inline-block align-text-bottom fs-18\"},[_vm._t(\"info-block\")],2)]),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('div',{staticClass:\"marine-blue font-weight-bold fs-14\"},[_vm._t(\"providedby-header\")],2),_c('span',{staticClass:\"fs-26\"},[_vm._t(\"providedby-value\")],2)])],1),_c('div',{ref:\"chartContainer\",staticClass:\"mt-4 ml-n3 mr-n2 mx-md-0 trigger-probability-chart\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-collapse-on-mobile v-bind=\"$attrs\">\n <template #header>\n <slot name=\"block-header\"></slot>\n </template>\n <b-row class=\"no-gutters\">\n <b-col cols=\"12\" md=\"3\" class=\"pb-1 pb-mb-0\">\n <div class=\"marine-blue font-weight-bold fs-14\"><slot name=\"trigger-header\"></slot></div>\n <span class=\"d-inline-block mr-2 fs-26\"\n ><ad-product-data-value :fieldKey=\"settingsProperty.triggerProbabilityFieldKey\"></ad-product-data-value\n ></span>\n <span class=\"d-inline-block align-text-bottom fs-18\"><slot name=\"info-block\"></slot></span>\n </b-col>\n <b-col cols=\"12\" md=\"9\">\n <div class=\"marine-blue font-weight-bold fs-14\"><slot name=\"providedby-header\"></slot></div>\n <span class=\"fs-26\"><slot name=\"providedby-value\"></slot></span>\n </b-col>\n </b-row>\n <div class=\"mt-4 ml-n3 mr-n2 mx-md-0 trigger-probability-chart\" ref=\"chartContainer\"></div>\n </ad-collapse-on-mobile>\n</template>\n<script lang=\"ts\">\nimport { ChartPoint, ProductModel } from '@/src/types/the-q-api';\nimport { Component, Inject, Ref, Watch } from 'vue-property-decorator';\nimport { Vue } from 'vue-property-decorator';\nimport * as Highcharts from 'highcharts';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\nimport { utcDate } from '@/src/utils/date-helper';\nimport { ChartColors, Controller, DefaultFormat, InstrumentOriginTimeZone } from '@/src/types/enumerations';\nimport httpClient from '@src/utils/http-service';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { TriggerProbabilityApiFilter } from '@/src/types/episerver-api';\nimport { Getter } from 'vuex-class';\n\ninterface FormatSettings {\n triggerProbabilityFieldKey: string;\n xAxisLabelFormatFieldKey: string | null;\n yAxisLabelFormatFieldKey: string | null;\n columnLabelFormatFieldKey: string | null;\n tooltipDateFormatFieldKey: string | null;\n tooltipValueFormatFieldKey: string | null;\n}\n\nexport class TriggerProbabilityApiFilterItem implements TriggerProbabilityApiFilter {\n timeZone: InstrumentOriginTimeZone;\n symbol: string;\n\n constructor(symbol: string, timeZone: InstrumentOriginTimeZone) {\n this.symbol = symbol;\n this.timeZone = timeZone;\n }\n}\n\n@Component({ inheritAttrs: false })\nexport default class AdTriggerProbabilityBlock extends Vue {\n @Inject() settingsProperty!: FormatSettings;\n @Ref() chartContainer;\n @Getter('product', { namespace: 'product' })\n product!: ProductModel;\n\n private get chartColor(): string {\n return ChartColors.triggerProbability.toString();\n }\n\n initChart(): void {\n if (!this.chartContainer) return;\n\n const chartData = this.mapChartData();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n const options = {\n series: chartData,\n xAxis: {\n labels: {\n formatter: (point) => context.formatDateLabel(point, context),\n y: context.dateLabelsMargin,\n },\n tickLength: 0,\n },\n yAxis: {\n min: 0,\n max: 1,\n gridLineDashStyle: 'Dot',\n title: {\n text: undefined,\n },\n tickAmount: 6,\n labels: {\n style: {\n color: context.chartColor,\n },\n formatter: function (point: Highcharts.AxisLabelsFormatterContextObject): string {\n return context.formatAxisValueLabel(point, context);\n },\n },\n },\n plotOptions: {\n column: {\n pointWidth: context.pointWidth,\n dataLabels: {\n enabled: context.$screen.md,\n inside: false,\n formatter: function (this: Highcharts.PointLabelObject, options: Highcharts.DataLabelsOptions) {\n return context.formatColumnValueLabel(this, options, context);\n },\n align: 'center',\n y: 10,\n },\n },\n },\n chart: {\n type: 'column',\n height: context.chartHeight,\n },\n legend: {\n enabled: false,\n },\n title: {\n text: undefined,\n },\n tooltip: {\n useHTML: true,\n borderWidth: 0,\n formatter: function (this: Highcharts.TooltipFormatterContextObject, tooltip: Highcharts.Tooltip) {\n return context.formatTooltip(this, tooltip, context);\n },\n },\n scrollbar: { enabled: false },\n credits: {\n enabled: false,\n },\n } as Highcharts.Options;\n Highcharts.chart(this.chartContainer, options);\n }\n\n get pointWidth() {\n if (this.$screen.lg) return 50;\n else if (this.$screen.md) return 40;\n else return 20;\n }\n\n get chartHeight() {\n if (this.$screen.lg) return 345;\n else return 300;\n }\n\n get dateLabelsMargin() {\n return this.$screen.lg ? 35 : 20;\n }\n\n formatDateLabel(point: Highcharts.AxisLabelsFormatterContextObject, context: AdTriggerProbabilityBlock): string {\n const timestamp = context.getPointTimestamp(point.pos, context.data);\n return timestamp\n ? formatField(timestamp, context.settingsProperty.xAxisLabelFormatFieldKey || DefaultFormat.Date)\n : '';\n }\n\n formatColumnValueLabel(\n point: Highcharts.PointLabelObject,\n options: Highcharts.DataLabelsOptions,\n context: AdTriggerProbabilityBlock\n ): string {\n return point.y !== null && point.y !== undefined\n ? formatField(point.y * 100, context.settingsProperty.columnLabelFormatFieldKey || DefaultFormat.Decimal)\n : '';\n }\n\n formatAxisValueLabel(point: Highcharts.AxisLabelsFormatterContextObject, context: AdTriggerProbabilityBlock): string {\n return formatField(point.value, context.settingsProperty.yAxisLabelFormatFieldKey || DefaultFormat.Percent);\n }\n\n formatTooltip(\n point: Highcharts.TooltipFormatterContextObject,\n tooltip: Highcharts.Tooltip,\n context: AdTriggerProbabilityBlock\n ): string {\n const timestamp = typeof point.x == 'number' ? context.getPointTimestamp(point.x, context.data) : null;\n const date = timestamp\n ? formatField(timestamp, context.settingsProperty.tooltipDateFormatFieldKey || DefaultFormat.Date)\n : '';\n const value =\n typeof point.y == 'number'\n ? formatField(point.y, context.settingsProperty.tooltipValueFormatFieldKey || DefaultFormat.Percent)\n : '';\n return `${date}<br/><span class=\"value\">${value}</span>`;\n }\n\n data: ChartPoint[] = [];\n private getPointTimestamp(index: number, data: ChartPoint[]) {\n return index < data.length ? utcDate(data[index].x) : undefined;\n }\n\n get tickPositions(): (number | null)[] {\n return this.data.map((p) => p.x);\n }\n\n COLUMN_COUNT = 10;\n protected mapChartData(): Highcharts.SeriesColumnOptions[] {\n if (this.data.length == 0) return [];\n const result: Highcharts.PointOptionsObject[] = [];\n for (let i = 0; i < this.COLUMN_COUNT; i++) {\n if (i < this.data.length) {\n result.push({ x: i, y: this.data[i].y });\n } else {\n result.push({ x: i, y: undefined });\n }\n }\n return [{ data: result, color: this.chartColor, type: 'column' }];\n }\n\n protected async requestChartData(\n symbol: string | undefined,\n timezone: InstrumentOriginTimeZone\n ): Promise<ChartPoint[] | null> {\n if (!symbol) return null;\n try {\n const response = await httpClient.get<ChartPoint[]>(getTheQApiUrl(Controller.TriggerProbabilityCharts, 'Get'), {\n params: new TriggerProbabilityApiFilterItem(symbol, timezone),\n });\n return response.data;\n } catch (ex) {\n this.$log.error(ex);\n return null;\n }\n }\n\n @Watch('product')\n async loadData() {\n const data = await this.requestChartData(\n this.product.origin.timeZone == InstrumentOriginTimeZone.AET\n ? this.product.securityCode ?? this.product.isin\n : this.product.isin,\n this.product.origin.timeZone\n );\n this.data = data || [];\n this.initChart();\n }\n\n @Watch('$screen.breakpoint')\n redrawChart() {\n this.initChart();\n }\n}\n</script>\n<style lang=\"scss\">\n.trigger-probability-chart {\n .highcharts-xaxis-grid {\n display: none;\n }\n\n .highcharts-data-label text {\n fill: $gunmetal !important;\n color: $gunmetal !important;\n font-size: rem(18) !important;\n font-weight: normal !important;\n }\n\n .highcharts-text-outline {\n display: none;\n }\n\n .highcharts-yaxis-labels text {\n font-size: rem(14) !important;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1aa1dd52\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1aa1dd52&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-text',{attrs:{\"loading\":_vm.currentUnderlying == null}},[(_vm.isLinkToDetailPage)?_c('ad-underlying-link',{attrs:{\"underlyingItem\":_vm.currentUnderlying,\"variant\":\"link\"}},[_c('ad-instrument-data-value',_vm._b({attrs:{\"value\":_vm.value,\"fieldKey\":_vm.fieldKey,\"instrument\":_vm.currentUnderlying},on:{\"subscribe-to-push\":_vm.subscribePushValue}},'ad-instrument-data-value',_vm.$attrs,false))],1):_c('ad-instrument-data-value',_vm._b({attrs:{\"value\":_vm.value,\"fieldKey\":_vm.fieldKey,\"instrument\":_vm.currentUnderlying},on:{\"subscribe-to-push\":_vm.subscribePushValue}},'ad-instrument-data-value',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-text :loading=\"currentUnderlying == null\">\n <ad-underlying-link v-if=\"isLinkToDetailPage\" :underlyingItem=\"currentUnderlying\" variant=\"link\">\n <ad-instrument-data-value\n v-bind=\"$attrs\"\n :value=\"value\"\n :fieldKey=\"fieldKey\"\n :instrument=\"currentUnderlying\"\n @subscribe-to-push=\"subscribePushValue\"\n ></ad-instrument-data-value>\n </ad-underlying-link>\n <ad-instrument-data-value\n v-else\n v-bind=\"$attrs\"\n :value=\"value\"\n :fieldKey=\"fieldKey\"\n :instrument=\"currentUnderlying\"\n @subscribe-to-push=\"subscribePushValue\"\n ></ad-instrument-data-value>\n </ad-skeleton-text>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Watch, Inject, InjectReactive } from 'vue-property-decorator';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { ApiTypeValue } from '@/src/types/vue-api';\nimport { PageRoutes } from '@/src/types/episerver-api';\nimport { Action, Getter } from 'vuex-class';\nimport evaluateExpressionByKey from '@/src/utils/value-formatter/format-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdUnderlyingDataValue extends Vue {\n @Prop({ required: true }) fieldKey!: string;\n @Prop({ default: false, type: Boolean }) isLinkToDetailPage!: boolean;\n\n /**\n * Underlyings can be obtained with three different approaches in this component.\n * 1. Bind \"underlying\" argument to an UnderlyingModel\n * 2. Inject \"underlying\" from parent\n * 3. Fallback to reading from state. When reading from state, make sure that\n * `loadUnderlyingAysnc` (see state/modules/underlying.ts) was called before,\n * otherwise it will not be available.\n */\n\n // 1. Pass as Prop\n @Prop() underlyingItem!: UnderlyingModel | null;\n\n // 2. Inject from Parent\n @InjectReactive({ from: 'underlying' }) underlyingInjected!: UnderlyingModel | null;\n\n // 3. Read from State\n @Getter('underlying', { namespace: 'underlying' })\n private underlying!: UnderlyingModel | null;\n\n //@Inject({ default: null }) underlying!: UnderlyingModel | null;\n @Inject({ default: null }) pageRoutes!: PageRoutes | null;\n\n @Action('subscribePushValue', { namespace: 'underlying' })\n subscribePushValue!: (fieldKey: string) => Promise<void>;\n\n get value(): ApiTypeValue {\n return evaluateExpressionByKey(this.fieldKey, {\n // setting underlying to get value from underlyingItem and set fieldkey, e.g. underlying.last\n underlying: this.currentUnderlying,\n });\n }\n\n get currentUnderlying(): UnderlyingModel | null {\n return this.underlyingItem || this.underlyingInjected || this.underlying;\n }\n\n public get hasValue(): boolean {\n return this.value !== null && this.value !== undefined;\n }\n\n @Watch('hasValue', { immediate: true })\n onValueChange(): void {\n this.$emit('has-value', this.hasValue);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4c75f2b5\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-button',_vm._b({staticClass:\"d-inline\",attrs:{\"disabled\":!_vm.link || !this.currentUnderlying,\"href\":_vm.link}},'b-button',_vm.$attrs,false),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-button class=\"d-inline\" :disabled=\"!link || !this.currentUnderlying\" :href=\"link\" v-bind=\"$attrs\">\n <slot></slot>\n </b-button>\n</template>\n\n<script lang=\"ts\">\nimport { PageRoutes } from '@/src/types/episerver-api';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { tryCreateUnderlyingLink } from '@/src/utils/url-helper';\nimport evaluateExpressionByKey from '@/src/utils/value-formatter/format-helper';\nimport { Component, Inject, InjectReactive, Prop, Vue } from 'vue-property-decorator';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdUnderlyingLink extends Vue {\n @Inject() pageRoutes!: PageRoutes;\n @InjectReactive() underlying!: UnderlyingModel | null;\n @Prop() underlyingItem!: UnderlyingModel | null;\n\n get currentUnderlying(): UnderlyingModel | null {\n return this.underlyingItem || this.underlying;\n }\n\n get link(): string | null {\n // The isin check is needed, since an empty object may be passed down from AdProductDetails through AdUnderlyingDataProperty\n if (this.currentUnderlying?.isin) {\n let nsin;\n if (this.pageRoutes.urlKeys?.underlyingKey) {\n nsin = evaluateExpressionByKey(this.pageRoutes.urlKeys?.underlyingKey, {\n underlying: this.currentUnderlying,\n });\n } else {\n nsin = this.currentUnderlying.isin;\n }\n\n return tryCreateUnderlyingLink(this.pageRoutes, nsin, this.currentUnderlying.name);\n }\n\n return null;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2430a136\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-drop-down-list',_vm._b({attrs:{\"options\":_vm.availableUnderlyings,\"value\":_vm.value,\"multiple\":_vm.multiple,\"formElementStateId\":_vm.formElementStateId,\"loading\":_vm.loading || _vm.internalLoading},on:{\"input\":_vm.setValue,\"selected-value-changed\":_vm.selectedValueChanged},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-label\")]},proxy:true},{key:\"multiple-placeholder\",fn:function(){return [_vm._t(\"multiple-placeholder\")]},proxy:true}],null,true)},'ad-drop-down-list',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-drop-down-list\n :options=\"availableUnderlyings\"\n :value=\"value\"\n @input=\"setValue\"\n @selected-value-changed=\"selectedValueChanged\"\n :multiple=\"multiple\"\n :formElementStateId=\"formElementStateId\"\n v-bind=\"$attrs\"\n :loading=\"loading || internalLoading\"\n >\n <template #all-items-label>\n <slot name=\"all-items-label\"></slot>\n </template>\n <template #multiple-placeholder>\n <slot name=\"multiple-placeholder\"></slot>\n </template>\n </ad-drop-down-list>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { Option, OptionGroup } from '@src/types/the-q-api';\nimport { convertGroups, convertOptions } from '@src/utils/dropdown-option-provider';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdUnderlyingList extends Vue {\n @Prop() value!: string | null | string[];\n @Prop() formElementStateId!: string;\n @Prop({ default: false, type: Boolean }) multiple!: boolean;\n @Prop({ default: false, type: Boolean }) groupItems!: boolean;\n @Prop() availableItems!: { [key: string]: string };\n @Prop({ default: false, type: Boolean }) loading!: boolean;\n\n @Action('getUnderlyingOptions', { namespace: 'underlying' })\n private getUnderlyingOptions!: (isLoadOptionGroup: boolean) => Promise<void>;\n\n @Getter('underlyingOptions', { namespace: 'underlying' })\n private underlyingOptions!: Option[] | null;\n @Getter('underlyingOptionGroups', { namespace: 'underlying' })\n private underlyingOptionGroups!: OptionGroup[] | null;\n\n get availableUnderlyings(): DropDownItem[] {\n return this.getUnderlyings(this.underlyings);\n }\n\n get underlyings() {\n return (this.groupItems ? this.underlyingOptionGroups : this.underlyingOptions) ?? [];\n }\n\n get internalLoading() {\n return (this.groupItems ? this.underlyingOptionGroups : this.underlyingOptions) == null;\n }\n\n async created(): Promise<void> {\n try {\n this.getUnderlyingOptions(this.groupItems);\n } catch (ex) {\n console.error(ex);\n }\n }\n\n private selectedValueChanged(): void {\n this.$emit('selected-value-changed');\n }\n\n private getUnderlyings(underlyings: Option[] | OptionGroup[]): DropDownItem[] {\n const filterItems = !!this.availableItems;\n\n if (this.groupItems) {\n const optionGroups = underlyings as OptionGroup[];\n\n const currentOptionGroup: OptionGroup[] = [];\n optionGroups.forEach((g) => {\n const options = filterItems ? g.options.filter((u) => this.availableItems[u.value]) : g.options;\n\n if (options.length > 0) {\n currentOptionGroup.push({\n header: g.header?.replace('{optionsCount}', options.length.toString()),\n options: options,\n } as OptionGroup);\n }\n });\n\n return convertGroups(currentOptionGroup as OptionGroup[], null);\n } else {\n const options = underlyings as Option[];\n return convertOptions(filterItems ? options.filter((u) => this.availableItems[u.value]) : options, null);\n }\n }\n\n @Watch('availableUnderlyings')\n removeSelectedItemIfNotAvailable() {\n if (this.availableItems && this.value != null) {\n if (typeof this.value === 'string') {\n if (!this.availableItems[this.value]) this.setValue(null);\n } else {\n this.setValue(this.value.filter((v) => this.availableItems[v]));\n }\n }\n }\n\n setValue(newValue: string | string[] | null): void {\n this.$emit('input', newValue);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=10d63ee6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('b-button',{staticClass:\"watchlist p-2 border-0 miw-auto rounded-circle d-inline-block\",attrs:{\"variant\":_vm.isUnderlyingInWatchlist && _vm.cookieComfortAccepted ? 'watchlist-remove' : 'watchlist-add'},on:{\"click\":_vm.toggleItem}},[(_vm.isUnderlyingInWatchlist)?_c('ad-icon-watchlist-remove',{attrs:{\"height\":_vm.iconSize,\"width\":_vm.iconSize}}):_c('ad-icon-watchlist-add',{attrs:{\"height\":_vm.iconSize,\"width\":_vm.iconSize}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-button\n v-if=\"isVisible\"\n class=\"watchlist p-2 border-0 miw-auto rounded-circle d-inline-block\"\n :variant=\"isUnderlyingInWatchlist && cookieComfortAccepted ? 'watchlist-remove' : 'watchlist-add'\"\n @click=\"toggleItem\"\n >\n <ad-icon-watchlist-remove v-if=\"isUnderlyingInWatchlist\" :height=\"iconSize\" :width=\"iconSize\" />\n <ad-icon-watchlist-add v-else :height=\"iconSize\" :width=\"iconSize\" />\n </b-button>\n</template>\n\n<script lang=\"ts\">\nimport { InjectReactive, Component, Vue, Inject, Prop } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { WatchedUnderlying } from '@/src/types/vue-api';\nimport { PageRoutes } from '@/src/types/episerver-api';\nimport CookieManager from '@/src/utils/cookie';\nimport { MissingCookieModalId } from '@/src/types/enumerations';\n\n@Component({})\nexport default class AdUnderlyingWatchlistToggle extends Vue {\n @Getter('watchedUnderlyings', { namespace: 'watchlist' })\n watchedUnderlyings!: Array<WatchedUnderlying>;\n\n @Action('addUnderlying', { namespace: 'watchlist' })\n addUnderlying!: (isin: string) => Promise<void>;\n\n @Action('removeUnderlying', { namespace: 'watchlist' })\n removeUnderlying!: (isin: string) => Promise<void>;\n\n @Inject() pageRoutes!: PageRoutes;\n\n /**\n * Underlyings can be obtained with three different approaches in this component.\n * 1. Bind \"underlying\" argument to an UnderlyingModel\n * 2. Inject \"underlying\" from parent\n * 3. Fallback to reading from state. When reading from state, make sure that\n * `loadUnderlyingAysnc` (see state/modules/underlying.ts) was called before,\n * otherwise it will not be available.\n */\n\n // 1. Pass as Prop\n @Prop() underlyingItem!: UnderlyingModel | null;\n\n // 2. Inject from Parent\n @InjectReactive({ from: 'underlying' }) underlyingInjected!: UnderlyingModel | null;\n\n private cookieManager!: CookieManager;\n private iconSize = '2.5em';\n\n get isVisible() {\n return this.currentUnderlying?.isin && this.pageRoutes.watchlistUrl;\n }\n\n get currentUnderlying(): UnderlyingModel | null {\n return this.underlyingItem || this.underlyingInjected;\n }\n\n private get isUnderlyingInWatchlist(): boolean {\n if (this.currentUnderlying === null) return false;\n return this.watchedUnderlyings.find((u) => u.isin === this.currentUnderlying?.isin) !== undefined;\n }\n\n get cookieComfortAccepted(): boolean {\n return this.cookieManager?.comfort || false;\n }\n\n async created(): Promise<void> {\n this.cookieManager = new CookieManager(this.$cookies);\n }\n\n toggleItem() {\n if (this.cookieComfortAccepted) {\n if (this.currentUnderlying && this.currentUnderlying.isin) {\n if (this.isUnderlyingInWatchlist) this.removeUnderlying(this.currentUnderlying.isin);\n else this.addUnderlying(this.currentUnderlying.isin);\n }\n } else {\n this.$bvModal.show(MissingCookieModalId.MissingWatchlistCookieModal);\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=054d7306\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<script lang=\"ts\">\nimport { BaseSettings, InstrumentFieldKeys, PageRoutes, CustomErrorMessage } from '@/src/types/episerver-api';\nimport { VNode } from 'vue';\nimport { Component, Provide, Prop, Vue } from 'vue-property-decorator';\nimport {} from '@/src/types/episerver-api';\n\n@Component({})\nexport default class AdBaseSettingsProperties extends Vue {\n @Prop({ default: null }) settingsJson!: string | null;\n @Prop({ default: null }) settingsErrorMessages!: string | null;\n\n @Provide()\n get pageRoutes(): PageRoutes | null {\n return this.settings?.routes || null;\n }\n\n @Provide()\n get nsinKeys(): InstrumentFieldKeys | null {\n return this.settings?.nsinKeys || null;\n }\n\n @Provide()\n get errorMessages(): CustomErrorMessage[] | null {\n if (!this.settingsErrorMessages) return null;\n return this.tryParseJson<CustomErrorMessage[]>(this.settingsErrorMessages);\n }\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n\n get settings(): BaseSettings | null {\n if (!this.settingsJson) return null;\n return this.tryParseJson<BaseSettings>(this.settingsJson);\n }\n\n private tryParseJson<T>(jsonString: string): T | null {\n try {\n if (jsonString) {\n const json = decodeURIComponent(jsonString);\n return JSON.parse(json) as T;\n }\n } catch (error) {\n this.$log.error(jsonString, error);\n }\n\n return null;\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Prop, Provide, Vue } from 'vue-property-decorator';\nimport { ChartConfiguration } from '@/src/types/vue-api';\n\n@Component({})\nexport default class AdChartConfigurationProperty extends Vue {\n @Provide()\n @Prop({ default: new ChartConfiguration() })\n chartConfigurationProperty!: ChartConfiguration;\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Provide, Prop, Vue } from 'vue-property-decorator';\nimport {} from '@/src/types/episerver-api';\n\n@Component({})\nexport default class AdIndex extends Vue {\n @Provide()\n @Prop({ required: true, type: Number })\n index!: number;\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Provide, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdJsonSettingsProperty extends Vue {\n @Prop() private settingsJson;\n @Prop() private settings;\n\n /**\n * since whitespaces are encoded as '+', they are replaced here with ' ',\n * reason: decodeURIComponent doesn't decode '+' to whitespace\n */\n changePlusToWhitespace(encodedStr: string): string {\n const plusRegex = new RegExp(/\\+/, 'g');\n return encodedStr.replace(plusRegex, ' ');\n }\n\n @Provide()\n get settingsProperty(): unknown {\n if (this.settings) {\n return this.settings;\n }\n\n try {\n if (this.settingsJson) {\n const encodedStr = this.changePlusToWhitespace(this.settingsJson);\n const json = decodeURIComponent(encodedStr);\n return JSON.parse(json);\n }\n } catch (error) {\n this.$log.error(error);\n }\n\n return null;\n }\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Prop, Vue, ProvideReactive } from 'vue-property-decorator';\nimport { ProductModel } from '@/src/types/the-q-api';\n\n@Component({})\nexport default class AdProductDataProperty extends Vue {\n @ProvideReactive()\n @Prop({ default: null })\n private product!: ProductModel | null;\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Provide, Prop, Vue, ProvideReactive } from 'vue-property-decorator';\nimport { ProductTeaserSettings } from '@/src/types/vue-api';\n\n@Component({})\nexport default class AdProductTeaserProperty extends Vue {\n @Provide()\n @Prop({ default: null })\n private teaserSettingsProperty!: ProductTeaserSettings | null;\n\n @ProvideReactive()\n @Prop({ type: Boolean, default: true })\n private isAddColumnDistributionFee!: boolean;\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Prop, Vue, ProvideReactive } from 'vue-property-decorator';\nimport { UnderlyingType } from '@/src/types/enumerations';\nimport { ProductModel, UnderlyingModel } from '@/src/types/the-q-api';\nimport { Getter } from 'vuex-class';\n\n@Component({})\nexport default class AdUnderlyingProductDataProperty extends Vue {\n @ProvideReactive()\n get underlying(): UnderlyingModel {\n return this.product?.underlyings?.find((u) => u.underlyingType === this.underlyingType) || ({} as UnderlyingModel);\n }\n\n @Prop({ default: UnderlyingType.Default }) underlyingType!: UnderlyingType;\n\n @Getter('product', { namespace: 'product' })\n product!: ProductModel | null;\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","<script lang=\"ts\">\nimport { VNode } from 'vue';\nimport { Component, Prop, Vue, ProvideReactive } from 'vue-property-decorator';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\n\n@Component({})\nexport default class AdUnderlyingDataProperty extends Vue {\n @ProvideReactive()\n @Prop({ required: true })\n underlying!: UnderlyingModel | null;\n\n render(): VNode[] | VNode | undefined {\n return this.$scopedSlots.default?.({});\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('svg',{staticClass:\"ade-icon\",style:(_vm.style),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"height\":_vm.height,\"width\":_vm.width,\"viewBox\":_vm.viewBox,\"aria-labelledby\":_vm.iconId,\"role\":\"presentation\"}},[_c('title',{attrs:{\"id\":_vm.iconId,\"lang\":\"en\"}},[_vm._t(\"title\")],2),_c('g',{attrs:{\"fill\":\"currentColor\",\"stroke\":\"currentColor\"}},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n :height=\"height\"\n :width=\"width\"\n :viewBox=\"viewBox\"\n :aria-labelledby=\"iconId\"\n :style=\"style\"\n class=\"ade-icon\"\n role=\"presentation\"\n >\n <title :id=\"iconId\" lang=\"en\"><slot name=\"title\"></slot></title>\n <g fill=\"currentColor\" stroke=\"currentColor\">\n <slot />\n </g>\n </svg>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\n/**\n * Wraps the main content elements of an svg icon\n * AdIconBase renders the svg itself and controls dimensions and color of\n * the rendered svg paths.\n *\n * Dimensions (width/height) are set to 1.3em by default, so that the icon\n * has an apropriate base size when compared to text. In addition to that,\n * the icon scales automatically with the font-size of the parent container\n * by using em instead of rem.\n *\n * Color is controlled by setting the fill and stroke of the svg to \"currentColor\"\n * which is a CSS property that references the font-color of the parent container.\n *\n * As a user of an icon component, you control dimensions by adjusting the font-size\n * and the icon color by adjusting the color.\n */\nexport default class AdIconBase extends Vue {\n @Prop({ default: '1.3em', type: [String, Number] }) height!: string | number;\n @Prop({ default: '1.3em', type: [String, Number] }) width!: string | number;\n @Prop({ default: '0 0 40 40', type: String }) viewBox!: string;\n @Prop({ default: 0, type: [String, Number] }) rotate!: string | number;\n get iconId(): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `${(this as any)._uid}-icon`;\n }\n\n get style(): { [key: string]: string } {\n const style: { [key: string]: string } = {};\n if (this.rotate) style.transform = 'rotate(' + this.rotate + 'deg)';\n return style;\n }\n}\n</script>\n\n<style lang=\"scss\">\n/**\n Css class name is set to ade because add blocker blocks images with classes start with ad-\n*/\n.ade-icon {\n overflow: visible;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4a025cd6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4a025cd6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"best-match\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M24.7,0.5c-0.1,0-0.2,0-0.3,0C15.9,0.5,9,7.4,9,15.9v0c0,3.6,1.2,7,3.5,9.8L0.3,37.9c-0.3,0.4-0.3,0.9,0,1.3\\n\\t\\t\\tc0.3,0.3,0.9,0.3,1.3,0L13.7,27c2.9,2.8,6.7,4.4,10.7,4.4c8.5,0.1,15.5-6.7,15.6-15.3C40.1,7.6,33.3,0.6,24.7,0.5z M24.4,29.6\\n\\t\\t\\tc-7.5,0-13.6-6.1-13.6-13.6c0-7.5,6.1-13.6,13.6-13.6S38,8.4,38,16C38,23.5,31.9,29.6,24.4,29.6z M30.7,13\\n\\t\\t\\tC30.7,13,30.7,13,30.7,13c-0.1,0-0.1-0.1-0.2-0.1c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0h-3.4l0,0h-0.2l-1.1-3.6C25.5,9,25.3,8.8,25,8.6\\n\\t\\t\\tc-0.3-0.1-0.6-0.2-0.9-0.1c-0.4,0.1-0.7,0.4-0.8,0.7L22,12.9h-3.4c-0.6,0-1.2,0.5-1.2,1.2c0,0.4,0.2,0.7,0.5,1l2.9,2.3l-1.1,3.7\\n\\t\\t\\tc-0.1,0.3-0.1,0.6,0.1,0.9c0.1,0.3,0.4,0.5,0.7,0.6c0.4,0.1,0.8,0,1.1-0.2l2.9-2.2l2.8,2.2c0.2,0.2,0.5,0.3,0.7,0.3\\n\\t\\t\\tc0,0,0.1,0,0.1,0c0.3,0,0.6-0.2,0.8-0.4c0.2-0.3,0.3-0.7,0.2-1.1l-1.1-3.7c0,0,0,0,0,0L31,15c0.3-0.2,0.5-0.6,0.5-1\\n\\t\\t\\tC31.5,13.6,31.2,13.2,30.7,13z M27.7,16l-0.8,0.6c-0.2,0.2-0.3,0.4-0.2,0.7l1.2,3.8l-3-2.3c-0.2-0.2-0.5-0.2-0.8,0l-3,2.3l1.2-3.8\\n\\t\\t\\tc0.1-0.3,0-0.5-0.2-0.7l-3.1-2.4h3.6c0.3,0,0.5-0.2,0.6-0.4l1.4-3.8l1.2,3.8c0.1,0.3,0.3,0.4,0.6,0.4l1,0h2.8L27.7,16z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"best-match\" v-bind=\"$attrs\">\n <path\n d=\"M24.7,0.5c-0.1,0-0.2,0-0.3,0C15.9,0.5,9,7.4,9,15.9v0c0,3.6,1.2,7,3.5,9.8L0.3,37.9c-0.3,0.4-0.3,0.9,0,1.3\n\t\t\tc0.3,0.3,0.9,0.3,1.3,0L13.7,27c2.9,2.8,6.7,4.4,10.7,4.4c8.5,0.1,15.5-6.7,15.6-15.3C40.1,7.6,33.3,0.6,24.7,0.5z M24.4,29.6\n\t\t\tc-7.5,0-13.6-6.1-13.6-13.6c0-7.5,6.1-13.6,13.6-13.6S38,8.4,38,16C38,23.5,31.9,29.6,24.4,29.6z M30.7,13\n\t\t\tC30.7,13,30.7,13,30.7,13c-0.1,0-0.1-0.1-0.2-0.1c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0h-3.4l0,0h-0.2l-1.1-3.6C25.5,9,25.3,8.8,25,8.6\n\t\t\tc-0.3-0.1-0.6-0.2-0.9-0.1c-0.4,0.1-0.7,0.4-0.8,0.7L22,12.9h-3.4c-0.6,0-1.2,0.5-1.2,1.2c0,0.4,0.2,0.7,0.5,1l2.9,2.3l-1.1,3.7\n\t\t\tc-0.1,0.3-0.1,0.6,0.1,0.9c0.1,0.3,0.4,0.5,0.7,0.6c0.4,0.1,0.8,0,1.1-0.2l2.9-2.2l2.8,2.2c0.2,0.2,0.5,0.3,0.7,0.3\n\t\t\tc0,0,0.1,0,0.1,0c0.3,0,0.6-0.2,0.8-0.4c0.2-0.3,0.3-0.7,0.2-1.1l-1.1-3.7c0,0,0,0,0,0L31,15c0.3-0.2,0.5-0.6,0.5-1\n\t\t\tC31.5,13.6,31.2,13.2,30.7,13z M27.7,16l-0.8,0.6c-0.2,0.2-0.3,0.4-0.2,0.7l1.2,3.8l-3-2.3c-0.2-0.2-0.5-0.2-0.8,0l-3,2.3l1.2-3.8\n\t\t\tc0.1-0.3,0-0.5-0.2-0.7l-3.1-2.4h3.6c0.3,0,0.5-0.2,0.6-0.4l1.4-3.8l1.2,3.8c0.1,0.3,0.3,0.4,0.6,0.4l1,0h2.8L27.7,16z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconBestMatch extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d746ae34\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"stroke-width\":\"0.5\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M10.74,19.56a.68.68,0,0,0,0-.14V8.5a.47.47,0,0,0-.49-.5.46.46,0,0,0-.49.5V19.42a.68.68,0,0,0,0,.14A2.28,2.28,0,0,0,8,21.79v3.15a2.27,2.27,0,0,0,1.9,2.25.49.49,0,0,0-.12.34v4a.46.46,0,0,0,.49.5.47.47,0,0,0,.49-.5v-4a.49.49,0,0,0-.12-.34,2.28,2.28,0,0,0,1.9-2.25V21.79A2.29,2.29,0,0,0,10.74,19.56Zm.81,5.38a1.28,1.28,0,1,1-2.56,0V21.79a1.28,1.28,0,1,1,2.56,0Z\"}}),_c('path',{attrs:{\"d\":\"M30.1,12.81a.49.49,0,0,0,.12-.34v-4a.46.46,0,0,0-.49-.5.47.47,0,0,0-.49.5v4a.49.49,0,0,0,.12.34,2.28,2.28,0,0,0-1.9,2.25v3.15a2.29,2.29,0,0,0,1.8,2.23.68.68,0,0,0,0,.14V31.5a.47.47,0,0,0,.49.5.46.46,0,0,0,.49-.5V20.58a.68.68,0,0,0,0-.14A2.28,2.28,0,0,0,32,18.21V15.06A2.27,2.27,0,0,0,30.1,12.81Zm.91,5.4a1.28,1.28,0,1,1-2.56,0V15.06a1.28,1.28,0,1,1,2.56,0Z\"}}),_c('path',{attrs:{\"d\":\"M20.64,16.28V8.5a.5.5,0,1,0-1,0v7.78a2.28,2.28,0,0,0-1.77,2.22v3.15a2.29,2.29,0,0,0,1.77,2.23V31.5a.5.5,0,1,0,1,0V23.88a2.28,2.28,0,0,0,1.78-2.23V18.5A2.28,2.28,0,0,0,20.64,16.28Zm.79,5.37a1.28,1.28,0,1,1-2.56,0V18.5a1.28,1.28,0,1,1,2.56,0Z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base v-bind=\"$attrs\" stroke-width=\"0.5\">\n <path\n d=\"M10.74,19.56a.68.68,0,0,0,0-.14V8.5a.47.47,0,0,0-.49-.5.46.46,0,0,0-.49.5V19.42a.68.68,0,0,0,0,.14A2.28,2.28,0,0,0,8,21.79v3.15a2.27,2.27,0,0,0,1.9,2.25.49.49,0,0,0-.12.34v4a.46.46,0,0,0,.49.5.47.47,0,0,0,.49-.5v-4a.49.49,0,0,0-.12-.34,2.28,2.28,0,0,0,1.9-2.25V21.79A2.29,2.29,0,0,0,10.74,19.56Zm.81,5.38a1.28,1.28,0,1,1-2.56,0V21.79a1.28,1.28,0,1,1,2.56,0Z\"\n /><path\n d=\"M30.1,12.81a.49.49,0,0,0,.12-.34v-4a.46.46,0,0,0-.49-.5.47.47,0,0,0-.49.5v4a.49.49,0,0,0,.12.34,2.28,2.28,0,0,0-1.9,2.25v3.15a2.29,2.29,0,0,0,1.8,2.23.68.68,0,0,0,0,.14V31.5a.47.47,0,0,0,.49.5.46.46,0,0,0,.49-.5V20.58a.68.68,0,0,0,0-.14A2.28,2.28,0,0,0,32,18.21V15.06A2.27,2.27,0,0,0,30.1,12.81Zm.91,5.4a1.28,1.28,0,1,1-2.56,0V15.06a1.28,1.28,0,1,1,2.56,0Z\"\n /><path\n d=\"M20.64,16.28V8.5a.5.5,0,1,0-1,0v7.78a2.28,2.28,0,0,0-1.77,2.22v3.15a2.29,2.29,0,0,0,1.77,2.23V31.5a.5.5,0,1,0,1,0V23.88a2.28,2.28,0,0,0,1.78-2.23V18.5A2.28,2.28,0,0,0,20.64,16.28Zm.79,5.37a1.28,1.28,0,1,1-2.56,0V18.5a1.28,1.28,0,1,1,2.56,0Z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconChartLine extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=770b3090\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"stroke-width\":\"0.5\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M8.5,8a.5.5,0,0,0-.5.5H8V30a2,2,0,0,0,2.06,2H31.5a.5.5,0,0,0,.5-.5.5.5,0,0,0-.5-.5H10.06A1,1,0,0,1,9,30V8.5A.5.5,0,0,0,8.5,8Z\"}}),_c('path',{attrs:{\"d\":\"M12,29.68,16.81,20H24a.49.49,0,0,0,.44-.26l5-9.5a.5.5,0,1,0-.88-.47L23.7,19H16.5a.51.51,0,0,0-.45.28l-5,10a.5.5,0,0,0,.23.67.49.49,0,0,0,.67-.22Z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base v-bind=\"$attrs\" stroke-width=\"0.5\">\n <path\n d=\"M8.5,8a.5.5,0,0,0-.5.5H8V30a2,2,0,0,0,2.06,2H31.5a.5.5,0,0,0,.5-.5.5.5,0,0,0-.5-.5H10.06A1,1,0,0,1,9,30V8.5A.5.5,0,0,0,8.5,8Z\"\n /><path\n d=\"M12,29.68,16.81,20H24a.49.49,0,0,0,.44-.26l5-9.5a.5.5,0,1,0-.88-.47L23.7,19H16.5a.51.51,0,0,0-.45.28l-5,10a.5.5,0,0,0,.23.67.49.49,0,0,0,.67-.22Z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconChartCandlestick extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=470ea5e4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"check\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M38.5,5.7l-26,26.7L1.5,21.2c-0.4-0.4-0.9-0.4-1.3,0c-0.4,0.4-0.4,0.9,0,1.3l11.5,11.7c0.4,0.4,0.9,0.4,1.3,0\\n\\tL39.7,7c0.4-0.4,0.4-0.9,0-1.3C39.4,5.4,38.8,5.4,38.5,5.7z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"check\" v-bind=\"$attrs\">\n <path\n d=\"M38.5,5.7l-26,26.7L1.5,21.2c-0.4-0.4-0.9-0.4-1.3,0c-0.4,0.4-0.4,0.9,0,1.3l11.5,11.7c0.4,0.4,0.9,0.4,1.3,0\n\tL39.7,7c0.4-0.4,0.4-0.9,0-1.3C39.4,5.4,38.8,5.4,38.5,5.7z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconCheck extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=37257fbc\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"chevron-down\",\"viewBox\":\"0 10 40 20\",\"width\":_vm.width,\"height\":_vm.height,\"rotate\":_vm.iconRotate}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M18,29.2c1.1,1.1,2.8,1.1,3.9,0l17.9-17.6c0.4-0.4,0.4-0.9,0-1.3c-0.4-0.4-0.9-0.4-1.3,0L20.5,27.9\\n\\tc-0.4,0.4-0.9,0.3-1.3,0L1.5,10.3c-0.4-0.3-0.9-0.3-1.3,0c-0.3,0.3-0.3,0.9,0,1.2L18,29.2L18,29.2z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base\n iconName=\"chevron-down\"\n v-bind=\"$attrs\"\n viewBox=\"0 10 40 20\"\n :width=\"width\"\n :height=\"height\"\n :rotate=\"iconRotate\"\n >\n <path\n d=\"M18,29.2c1.1,1.1,2.8,1.1,3.9,0l17.9-17.6c0.4-0.4,0.4-0.9,0-1.3c-0.4-0.4-0.9-0.4-1.3,0L20.5,27.9\n\tc-0.4,0.4-0.9,0.3-1.3,0L1.5,10.3c-0.4-0.3-0.9-0.3-1.3,0c-0.3,0.3-0.3,0.9,0,1.2L18,29.2L18,29.2z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Size, Direction } from '@/src/types/enumerations';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdIconChevron extends Vue {\n @Prop() size: Size | undefined;\n @Prop({ default: Direction.down }) direction!: Direction | string;\n @Prop({ type: [String, Number] }) rotate?: string | number | undefined;\n\n private get sizeLength(): number | undefined {\n switch (this.size) {\n case Size.xxs:\n return 7.2;\n case Size.xs:\n return 10;\n case Size.s:\n return 12;\n case Size.m:\n return 16;\n case Size.l:\n return 22;\n case Size.xl:\n return 24;\n case Size.xxl:\n return 36;\n default:\n return undefined;\n }\n }\n get iconRotate(): string | number {\n if (this.rotate !== undefined) return this.rotate;\n if (typeof this.direction == 'number') return this.direction;\n\n switch (this.direction) {\n case 'up':\n return Direction.up;\n case 'down':\n return Direction.down;\n case 'left':\n return Direction.left;\n case 'right':\n return Direction.right;\n }\n return 0;\n }\n\n get width(): string | undefined {\n return this.sizeLength !== undefined ? this.sizeLength + 'px' : undefined;\n }\n get height(): string | undefined {\n return this.sizeLength !== undefined ? this.sizeLength / 2 + 'px' : undefined;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cc307b6c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"close\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M39.6,2l-18,18l18,18c0.5,0.5,0.5,1.1,0,1.6c-0.5,0.5-1.1,0.5-1.6,0l-18-18l-18,18c-0.5,0.5-1.1,0.5-1.6,0\\n\\tc-0.5-0.5-0.5-1.1,0-1.6l18-18L0.4,2c-0.5-0.5-0.5-1.1,0-1.6s1.1-0.5,1.6,0l18,18l18-18c0.5-0.5,1.1-0.5,1.6,0\\n\\tC40.1,0.9,40.1,1.5,39.6,2z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"close\" v-bind=\"$attrs\">\n <path\n d=\"M39.6,2l-18,18l18,18c0.5,0.5,0.5,1.1,0,1.6c-0.5,0.5-1.1,0.5-1.6,0l-18-18l-18,18c-0.5,0.5-1.1,0.5-1.6,0\n\tc-0.5-0.5-0.5-1.1,0-1.6l18-18L0.4,2c-0.5-0.5-0.5-1.1,0-1.6s1.1-0.5,1.6,0l18,18l18-18c0.5-0.5,1.1-0.5,1.6,0\n\tC40.1,0.9,40.1,1.5,39.6,2z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconClose extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=be9e182c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"copy\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M33.7,0H12.1c-1.2,0-2.1,1-2.2,2.1v3.6H6.3c-1.2,0-2.1,1-2.2,2.1v30c0,1.2,1,2.1,2.2,2.1h21.6\\n\\tc1.2,0,2.1-1,2.2-2.1v-3.6h3.6c1.2,0,2.1-1,2.2-2.1v-30C35.8,1,34.8,0,33.7,0z M28.6,31.5v6.3c0,0.4-0.3,0.7-0.6,0.7\\n\\tc0,0-0.1,0-0.1,0H6.3c-0.4,0-0.7-0.3-0.7-0.6c0,0,0-0.1,0-0.1v-30c0-0.4,0.3-0.7,0.6-0.7c0,0,0.1,0,0.1,0h21.6\\n\\tc0.4,0,0.7,0.3,0.7,0.6c0,0,0,0.1,0,0.1V31.5z M34.4,25.8v6.4c0,0.4-0.3,0.7-0.6,0.7c0,0-0.1,0-0.1,0h-3.6v-25c0-1.2-1-2.1-2.2-2.1\\n\\tH11.4V2.1c0-0.4,0.3-0.7,0.6-0.7c0,0,0.1,0,0.1,0h21.6c0.4,0,0.7,0.3,0.7,0.6c0,0,0,0.1,0,0.1L34.4,25.8z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"copy\" v-bind=\"$attrs\">\n <path\n d=\"M33.7,0H12.1c-1.2,0-2.1,1-2.2,2.1v3.6H6.3c-1.2,0-2.1,1-2.2,2.1v30c0,1.2,1,2.1,2.2,2.1h21.6\n\tc1.2,0,2.1-1,2.2-2.1v-3.6h3.6c1.2,0,2.1-1,2.2-2.1v-30C35.8,1,34.8,0,33.7,0z M28.6,31.5v6.3c0,0.4-0.3,0.7-0.6,0.7\n\tc0,0-0.1,0-0.1,0H6.3c-0.4,0-0.7-0.3-0.7-0.6c0,0,0-0.1,0-0.1v-30c0-0.4,0.3-0.7,0.6-0.7c0,0,0.1,0,0.1,0h21.6\n\tc0.4,0,0.7,0.3,0.7,0.6c0,0,0,0.1,0,0.1V31.5z M34.4,25.8v6.4c0,0.4-0.3,0.7-0.6,0.7c0,0-0.1,0-0.1,0h-3.6v-25c0-1.2-1-2.1-2.2-2.1\n\tH11.4V2.1c0-0.4,0.3-0.7,0.6-0.7c0,0,0.1,0,0.1,0h21.6c0.4,0,0.7,0.3,0.7,0.6c0,0,0,0.1,0,0.1L34.4,25.8z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconCopy extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=70d7b25f\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"viewBox\":\"0 0 40 40\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M23.3,17.3c0-0.5,0.4-0.8,0.8-0.8c0.5,0,0.8,0.4,0.8,0.8v15.2c0,0.5-0.4,0.8-0.8,0.8c-0.5,0-0.8-0.4-0.8-0.8 V17.3z M15,17.3c0-0.5,0.4-0.8,0.8-0.8s0.8,0.4,0.8,0.8v15.2c0,0.5-0.4,0.8-0.8,0.8S15,33,15,32.5V17.3z M36.7,10H3.3V8.3 c0-0.9,0.7-1.7,1.7-1.7h30c0.9,0,1.7,0.7,1.7,1.7V10z M17.1,1.7h5.8c1.8,0,3.3,1.5,3.3,3.3H13.8C13.8,3.2,15.2,1.7,17.1,1.7z M35,5 h-7.1c0-2.8-2.2-5-5-5h-5.8c-2.8,0-5,2.2-5,5H5C3.2,5,1.7,6.5,1.7,8.3v2.5c0,0.5,0.4,0.8,0.8,0.8h2.8l2.4,26.8 C7.8,39.3,8.5,40,9.4,40h21.9c0.9,0,1.6-0.7,1.7-1.5l2.4-26.8h2.2c0.5,0,0.8-0.4,0.8-0.8V8.3C38.3,6.5,36.8,5,35,5z M31.3,38.3H9.4 L7,11.7h26.7L31.3,38.3z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base viewBox=\"0 0 40 40\" v-bind=\"$attrs\">\n <path\n d=\"M23.3,17.3c0-0.5,0.4-0.8,0.8-0.8c0.5,0,0.8,0.4,0.8,0.8v15.2c0,0.5-0.4,0.8-0.8,0.8c-0.5,0-0.8-0.4-0.8-0.8 V17.3z M15,17.3c0-0.5,0.4-0.8,0.8-0.8s0.8,0.4,0.8,0.8v15.2c0,0.5-0.4,0.8-0.8,0.8S15,33,15,32.5V17.3z M36.7,10H3.3V8.3 c0-0.9,0.7-1.7,1.7-1.7h30c0.9,0,1.7,0.7,1.7,1.7V10z M17.1,1.7h5.8c1.8,0,3.3,1.5,3.3,3.3H13.8C13.8,3.2,15.2,1.7,17.1,1.7z M35,5 h-7.1c0-2.8-2.2-5-5-5h-5.8c-2.8,0-5,2.2-5,5H5C3.2,5,1.7,6.5,1.7,8.3v2.5c0,0.5,0.4,0.8,0.8,0.8h2.8l2.4,26.8 C7.8,39.3,8.5,40,9.4,40h21.9c0.9,0,1.6-0.7,1.7-1.5l2.4-26.8h2.2c0.5,0,0.8-0.4,0.8-0.8V8.3C38.3,6.5,36.8,5,35,5z M31.3,38.3H9.4 L7,11.7h26.7L31.3,38.3z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component\nexport default class AdIconDelete extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5523dcc6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"download\"}},'ad-icon-base',_vm.$attrs,false),[_c('g',[_c('path',{attrs:{\"d\":\"M0.8,26.7C0.4,26.7,0,27,0,27.5v8.3c0,1.4,1.1,2.5,2.5,2.5h35c1.4,0,2.5-1.1,2.5-2.5v-8.3\\n\\t\\tc0-0.5-0.4-0.8-0.8-0.8c-0.5,0-0.8,0.4-0.8,0.8v8.3c0,0.5-0.4,0.8-0.8,0.8h-35c-0.5,0-0.8-0.4-0.8-0.8v-8.3\\n\\t\\tC1.7,27,1.3,26.7,0.8,26.7z\"}}),_c('path',{attrs:{\"d\":\"M20.8,1.7C20.4,1.7,20,2,20,2.5v27l-4.3-6.9c-0.2-0.4-0.8-0.5-1.1-0.3c-0.4,0.2-0.5,0.8-0.3,1.1l4.4,7.1\\n\\t\\tc0.7,1.2,2.3,1.5,3.4,0.8c0.3-0.2,0.6-0.5,0.8-0.8l4.4-7.1c0.2-0.4,0.1-0.9-0.3-1.1c-0.4-0.2-0.8-0.1-1.1,0.3l-4.3,6.9v-27\\n\\t\\tC21.7,2,21.3,1.7,20.8,1.7L20.8,1.7z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"download\" v-bind=\"$attrs\">\n <g>\n <path\n d=\"M0.8,26.7C0.4,26.7,0,27,0,27.5v8.3c0,1.4,1.1,2.5,2.5,2.5h35c1.4,0,2.5-1.1,2.5-2.5v-8.3\n\t\tc0-0.5-0.4-0.8-0.8-0.8c-0.5,0-0.8,0.4-0.8,0.8v8.3c0,0.5-0.4,0.8-0.8,0.8h-35c-0.5,0-0.8-0.4-0.8-0.8v-8.3\n\t\tC1.7,27,1.3,26.7,0.8,26.7z\"\n />\n <path\n d=\"M20.8,1.7C20.4,1.7,20,2,20,2.5v27l-4.3-6.9c-0.2-0.4-0.8-0.5-1.1-0.3c-0.4,0.2-0.5,0.8-0.3,1.1l4.4,7.1\n\t\tc0.7,1.2,2.3,1.5,3.4,0.8c0.3-0.2,0.6-0.5,0.8-0.8l4.4-7.1c0.2-0.4,0.1-0.9-0.3-1.1c-0.4-0.2-0.8-0.1-1.1,0.3l-4.3,6.9v-27\n\t\tC21.7,2,21.3,1.7,20.8,1.7L20.8,1.7z\"\n />\n </g>\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconDownload extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=28e46676\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"go-back\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M40,14.9c0-0.1,0-0.1,0-0.2c0-0.1-0.1-0.2-0.1-0.2c0,0,0,0,0,0c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.3-0.2-0.5-0.2h-37\\n\\tl9.1-6.8c0.4-0.3,0.4-0.8,0.2-1.2c-0.3-0.4-0.8-0.4-1.2-0.2L1,13c-0.6,0.5-1,1.2-1,2V15c0,0.7,0.4,1.5,1,2l9.3,7c0,0,0,0,0,0\\n\\tc0.4,0.3,0.9,0.2,1.2-0.2c0.3-0.4,0.2-0.9-0.2-1.2l-9.1-6.8h36.1v17.5c0,0.5,0.3,0.8,0.8,0.8c0.5,0,0.8-0.3,0.8-0.8V15\\n\\tC40,15,40,14.9,40,14.9z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"go-back\" v-bind=\"$attrs\">\n <path\n d=\"M40,14.9c0-0.1,0-0.1,0-0.2c0-0.1-0.1-0.2-0.1-0.2c0,0,0,0,0,0c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.3-0.2-0.5-0.2h-37\n\tl9.1-6.8c0.4-0.3,0.4-0.8,0.2-1.2c-0.3-0.4-0.8-0.4-1.2-0.2L1,13c-0.6,0.5-1,1.2-1,2V15c0,0.7,0.4,1.5,1,2l9.3,7c0,0,0,0,0,0\n\tc0.4,0.3,0.9,0.2,1.2-0.2c0.3-0.4,0.2-0.9-0.2-1.2l-9.1-6.8h36.1v17.5c0,0.5,0.3,0.8,0.8,0.8c0.5,0,0.8-0.3,0.8-0.8V15\n\tC40,15,40,14.9,40,14.9z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconGoBack extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1a7c77b8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"hamburger\",\"stroke-width\":\"0.5\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M39.2,30.8H0.8C0.3,30.8,0,30.5,0,30s0.3-0.8,0.8-0.8h38.3c0.5,0,0.8,0.3,0.8,0.8S39.7,30.8,39.2,30.8z\\n M39.2,20.8H0.8C0.3,20.8,0,20.5,0,20s0.3-0.8,0.8-0.8h38.3c0.5,0,0.8,0.3,0.8,0.8S39.7,20.8,39.2,20.8z M39.2,10.8H0.8\\n C0.3,10.8,0,10.5,0,10s0.3-0.8,0.8-0.8h38.3c0.5,0,0.8,0.3,0.8,0.8S39.7,10.8,39.2,10.8z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"hamburger\" v-bind=\"$attrs\" stroke-width=\"0.5\">\n <path\n d=\"M39.2,30.8H0.8C0.3,30.8,0,30.5,0,30s0.3-0.8,0.8-0.8h38.3c0.5,0,0.8,0.3,0.8,0.8S39.7,30.8,39.2,30.8z\n M39.2,20.8H0.8C0.3,20.8,0,20.5,0,20s0.3-0.8,0.8-0.8h38.3c0.5,0,0.8,0.3,0.8,0.8S39.7,20.8,39.2,20.8z M39.2,10.8H0.8\n C0.3,10.8,0,10.5,0,10s0.3-0.8,0.8-0.8h38.3c0.5,0,0.8,0.3,0.8,0.8S39.7,10.8,39.2,10.8z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconHamburger extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0f871878\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"viewBox\":\"0 0 40 40\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M18.3,10c0,0.8,0.8,1.7,1.7,1.7c1,0,1.7-0.7,1.7-1.7S21,8.3,20,8.3S18.3,9.2,18.3,10z M20,15\\n\\t\\tc-0.5,0-0.8,0.3-0.8,0.8v16.7c0,0.5,0.3,0.8,0.8,0.8s0.8-0.3,0.8-0.8V15.8C20.8,15.3,20.5,15,20,15z\"}}),_c('path',{attrs:{\"d\":\"M0,20c0,11,9,20,20,20s20-9,20-20S31,0,20,0S0,9,0,20z M38.3,20c0,10.2-8.2,18.3-18.3,18.3S1.7,30.2,1.7,20\\n\\t\\tS9.8,1.7,20,1.7S38.3,9.8,38.3,20z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base viewBox=\"0 0 40 40\" v-bind=\"$attrs\">\n <path\n d=\"M18.3,10c0,0.8,0.8,1.7,1.7,1.7c1,0,1.7-0.7,1.7-1.7S21,8.3,20,8.3S18.3,9.2,18.3,10z M20,15\n\t\tc-0.5,0-0.8,0.3-0.8,0.8v16.7c0,0.5,0.3,0.8,0.8,0.8s0.8-0.3,0.8-0.8V15.8C20.8,15.3,20.5,15,20,15z\"\n />\n <path\n d=\"M0,20c0,11,9,20,20,20s20-9,20-20S31,0,20,0S0,9,0,20z M38.3,20c0,10.2-8.2,18.3-18.3,18.3S1.7,30.2,1.7,20\n\t\tS9.8,1.7,20,1.7S38.3,9.8,38.3,20z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconInfo extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=43b99d97\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"like\",\"stroke-width\":\"0.5\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M26.4,3.4C26.3,1.5,24.7,0,22.8,0h-0.6c-1.6,0-3,1.1-3.5,2.6c-0.7,2.5-1.6,4.6-2.5,6.3\\n\\tc-1.3,2.9-3.4,4.7-6.4,5.5H4.5c-1.5,0-2.7,1.2-2.7,2.7v18.2c0,1.5,1.2,2.7,2.7,2.7h5.3l3.9,1.2c1.6,0.5,3.2,0.7,4.9,0.7h11.2\\n\\tc1.5,0,2.9-0.8,3.8-2c2.2-3.3,3.4-6.2,3.8-8.8c0.6-3,0.9-6.4,0.8-10.3c-0.1-2.5-2.1-4.4-4.5-4.4H23.5c1.5-2.2,2.4-4.3,2.7-6.3\\n\\tC26.4,6.5,26.5,4.9,26.4,3.4z M24.4,7.9c-0.3,2-1.4,4.3-3.4,6.9c-0.3,0.4-0.2,1,0.1,1.3c0.2,0.1,0.4,0.2,0.6,0.2h11.9\\n\\tc1.5,0,2.7,1.2,2.7,2.7c0.1,3.7-0.1,7-0.7,9.9c-0.4,2.3-1.5,5-3.6,8.1c-0.5,0.8-1.4,1.2-2.3,1.2H18.6c-1.5,0-2.9-0.2-4.4-0.6\\n\\tl-4.1-1.2l-0.3,0H4.5c-0.5,0-0.9-0.4-0.9-0.9V17.2c0-0.5,0.4-0.9,0.9-0.9H10l0.2,0c3.6-1,6.1-3.2,7.7-6.5c1-1.8,1.9-4,2.6-6.6\\n\\tc0.2-0.8,0.9-1.3,1.7-1.3h0.6c1,0,1.7,0.7,1.8,1.7C24.7,4.9,24.6,6.3,24.4,7.9L24.4,7.9z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"like\" v-bind=\"$attrs\" stroke-width=\"0.5\">\n <path\n d=\"M26.4,3.4C26.3,1.5,24.7,0,22.8,0h-0.6c-1.6,0-3,1.1-3.5,2.6c-0.7,2.5-1.6,4.6-2.5,6.3\n\tc-1.3,2.9-3.4,4.7-6.4,5.5H4.5c-1.5,0-2.7,1.2-2.7,2.7v18.2c0,1.5,1.2,2.7,2.7,2.7h5.3l3.9,1.2c1.6,0.5,3.2,0.7,4.9,0.7h11.2\n\tc1.5,0,2.9-0.8,3.8-2c2.2-3.3,3.4-6.2,3.8-8.8c0.6-3,0.9-6.4,0.8-10.3c-0.1-2.5-2.1-4.4-4.5-4.4H23.5c1.5-2.2,2.4-4.3,2.7-6.3\n\tC26.4,6.5,26.5,4.9,26.4,3.4z M24.4,7.9c-0.3,2-1.4,4.3-3.4,6.9c-0.3,0.4-0.2,1,0.1,1.3c0.2,0.1,0.4,0.2,0.6,0.2h11.9\n\tc1.5,0,2.7,1.2,2.7,2.7c0.1,3.7-0.1,7-0.7,9.9c-0.4,2.3-1.5,5-3.6,8.1c-0.5,0.8-1.4,1.2-2.3,1.2H18.6c-1.5,0-2.9-0.2-4.4-0.6\n\tl-4.1-1.2l-0.3,0H4.5c-0.5,0-0.9-0.4-0.9-0.9V17.2c0-0.5,0.4-0.9,0.9-0.9H10l0.2,0c3.6-1,6.1-3.2,7.7-6.5c1-1.8,1.9-4,2.6-6.6\n\tc0.2-0.8,0.9-1.3,1.7-1.3h0.6c1,0,1.7,0.7,1.8,1.7C24.7,4.9,24.6,6.3,24.4,7.9L24.4,7.9z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconLike extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7d112214\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"link-four-five\",\"viewBox\":\"10 0 20 20\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M4.715 6.542 3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1 1 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4 4 0 0 1-.128-1.287z\"}}),_c('path',{attrs:{\"d\":\"M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 1 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 1 0-4.243-4.243z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"link-four-five\" v-bind=\"$attrs\" viewBox=\"10 0 20 20\">\n <path\n d=\"M4.715 6.542 3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1 1 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4 4 0 0 1-.128-1.287z\"\n />\n <path\n d=\"M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 1 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 1 0-4.243-4.243z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconLinkFourFive extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0afc1bac\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"linked-in\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M36.4,0H3.6C1.6,0,0,1.6,0,3.6v32.8c0,2,1.6,3.6,3.6,3.6h32.8c2,0,3.6-1.6,3.6-3.6V3.6C40,1.6,38.4,0,36.4,0z\\n M11.6,34.3c0,0.6-0.5,1.1-1.1,1.1H6c-0.6,0-1.1-0.5-1.1-1.1V15.5C5,15,5.5,14.5,6,14.5h4.5c0.6,0,1.1,0.5,1.1,1.1V34.3z M8.3,12.7\\n\\tC5.9,12.7,4,10.8,4,8.5s1.9-4.3,4.3-4.3s4.3,1.9,4.3,4.3S10.6,12.7,8.3,12.7z M35,34.4c0,0.5-0.4,1-1,1h-4.8c-0.5,0-1-0.4-1-1v-8.8\\n\\tc0-1.3,0.4-5.8-3.4-5.8c-3,0-3.6,3-3.7,4.4v10.2c0,0.5-0.4,1-1,1h-4.7c-0.5,0-1-0.4-1-1v-19c0-0.5,0.4-1,1-1h4.7c0.5,0,1,0.4,1,1\\n\\tv1.6c1.1-1.6,2.7-2.9,6.2-2.9c7.7,0,7.7,7.2,7.7,11.1L35,34.4L35,34.4z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"linked-in\" v-bind=\"$attrs\">\n <path\n d=\"M36.4,0H3.6C1.6,0,0,1.6,0,3.6v32.8c0,2,1.6,3.6,3.6,3.6h32.8c2,0,3.6-1.6,3.6-3.6V3.6C40,1.6,38.4,0,36.4,0z\n M11.6,34.3c0,0.6-0.5,1.1-1.1,1.1H6c-0.6,0-1.1-0.5-1.1-1.1V15.5C5,15,5.5,14.5,6,14.5h4.5c0.6,0,1.1,0.5,1.1,1.1V34.3z M8.3,12.7\n\tC5.9,12.7,4,10.8,4,8.5s1.9-4.3,4.3-4.3s4.3,1.9,4.3,4.3S10.6,12.7,8.3,12.7z M35,34.4c0,0.5-0.4,1-1,1h-4.8c-0.5,0-1-0.4-1-1v-8.8\n\tc0-1.3,0.4-5.8-3.4-5.8c-3,0-3.6,3-3.7,4.4v10.2c0,0.5-0.4,1-1,1h-4.7c-0.5,0-1-0.4-1-1v-19c0-0.5,0.4-1,1-1h4.7c0.5,0,1,0.4,1,1\n\tv1.6c1.1-1.6,2.7-2.9,6.2-2.9c7.7,0,7.7,7.2,7.7,11.1L35,34.4L35,34.4z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconLinkedIn extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1512e2e8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"play\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M38.4,17.5L3.7,1.1C3.4,1,3,0.9,2.7,0.9c-1,0-2,0.6-2.5,1.7C0.1,2.9,0,3.3,0,3.6v32.7c0,1.5,1.2,2.7,2.7,2.7\\n\\tc0.4,0,0.7-0.1,1-0.2l34.7-16.4c1.4-0.6,2-2.2,1.4-3.6C39.5,18.3,39,17.8,38.4,17.5z M37.6,20.9L3,37.2c-0.1,0-0.2,0.1-0.3,0.1\\n\\tc-0.5,0-0.9-0.4-0.9-0.9V3.6c0-0.1,0-0.2,0.1-0.4c0.2-0.4,0.6-0.6,1-0.5l34.7,16.4c0.2,0.1,0.4,0.3,0.5,0.5\\n\\tC38.3,20.1,38.1,20.7,37.6,20.9C37.6,20.9,37.6,20.9,37.6,20.9z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"play\" v-bind=\"$attrs\">\n <path\n d=\"M38.4,17.5L3.7,1.1C3.4,1,3,0.9,2.7,0.9c-1,0-2,0.6-2.5,1.7C0.1,2.9,0,3.3,0,3.6v32.7c0,1.5,1.2,2.7,2.7,2.7\n\tc0.4,0,0.7-0.1,1-0.2l34.7-16.4c1.4-0.6,2-2.2,1.4-3.6C39.5,18.3,39,17.8,38.4,17.5z M37.6,20.9L3,37.2c-0.1,0-0.2,0.1-0.3,0.1\n\tc-0.5,0-0.9-0.4-0.9-0.9V3.6c0-0.1,0-0.2,0.1-0.4c0.2-0.4,0.6-0.6,1-0.5l34.7,16.4c0.2,0.1,0.4,0.3,0.5,0.5\n\tC38.3,20.1,38.1,20.7,37.6,20.9C37.6,20.9,37.6,20.9,37.6,20.9z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconPlay extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e772ce60\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"search\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M24.5,0.5C15.9,0.5,9,7.4,9,15.9c0,3.6,1.3,7.1,3.5,9.8L0.3,38c-0.4,0.4-0.4,0.9,0,1.3c0.4,0.4,0.9,0.4,1.3,0\\n\\tl12.2-12.2c2.7,2.7,6.6,4.4,10.8,4.4c8.6,0,15.5-6.9,15.5-15.5S33.1,0.5,24.5,0.5z M24.5,29.6c-7.5,0-13.7-6.1-13.7-13.7\\n\\tS17,2.3,24.5,2.3s13.7,6.1,13.7,13.7S32.1,29.6,24.5,29.6z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"search\" v-bind=\"$attrs\">\n <path\n d=\"M24.5,0.5C15.9,0.5,9,7.4,9,15.9c0,3.6,1.3,7.1,3.5,9.8L0.3,38c-0.4,0.4-0.4,0.9,0,1.3c0.4,0.4,0.9,0.4,1.3,0\n\tl12.2-12.2c2.7,2.7,6.6,4.4,10.8,4.4c8.6,0,15.5-6.9,15.5-15.5S33.1,0.5,24.5,0.5z M24.5,29.6c-7.5,0-13.7-6.1-13.7-13.7\n\tS17,2.3,24.5,2.3s13.7,6.1,13.7,13.7S32.1,29.6,24.5,29.6z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconSearch extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0f53f2dd\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"xls\",\"viewBox\":\"10 10 25 25\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M25.4,25.81l-4.2,5.6A1.5,1.5,0,0,1,20,32h0a1.51,1.51,0,0,1-1.18-.6l-4.2-5.6a.5.5,0,1,1,.8-.61l4.1,5.47V8.49a.5.5,0,0,1,1,0V30.68l4.1-5.48a.51.51,0,0,1,.7-.1.5.5,0,0,1,.1.7Z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"xls\" v-bind=\"$attrs\" viewBox=\"10 10 25 25\">\n <path\n d=\"M25.4,25.81l-4.2,5.6A1.5,1.5,0,0,1,20,32h0a1.51,1.51,0,0,1-1.18-.6l-4.2-5.6a.5.5,0,1,1,.8-.61l4.1,5.47V8.49a.5.5,0,0,1,1,0V30.68l4.1-5.48a.51.51,0,0,1,.7-.1.5.5,0,0,1,.1.7Z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconSort extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7e1ced76\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"warnings\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M20,13.3c-0.5,0-0.9,0.4-0.9,0.9v8.7l0.3,5.5c0,0.3,0.3,0.6,0.6,0.6c0.3,0,0.5-0.3,0.6-0.6l0.3-5.5v-8.7\\n\\t\\tC20.9,13.7,20.5,13.3,20,13.3z M20,31.2c-0.3,0-0.7,0.1-0.9,0.4c-0.2,0.2-0.4,0.6-0.4,0.9c0,0.4,0.1,0.7,0.4,0.9\\n\\t\\tc0.2,0.2,0.6,0.4,0.9,0.4c0.3,0,0.6-0.1,0.9-0.4c0.3-0.3,0.4-0.6,0.4-0.9c0-0.3-0.1-0.7-0.4-0.9C20.6,31.3,20.3,31.1,20,31.2\\n\\t\\tL20,31.2z\"}}),_c('path',{attrs:{\"d\":\"M20,0c-1,0-1.8,0.6-2.2,1.4C17.6,1.7,0.5,35.7,0.1,36.7c-0.4,1.3,0.3,2.7,1.6,3.2C2,40,2.2,40,2.5,40h35\\n\\t\\tc1.4,0,2.5-1.1,2.5-2.5c0-0.3-0.1-0.7-0.2-1C39.4,35.6,22.4,1.7,22.2,1.4C21.8,0.5,20.9,0,20,0z M38.3,37.5c0,0.5-0.4,0.8-0.8,0.8\\n\\t\\tl0,0h-35c-0.5,0-0.8-0.4-0.8-0.8c0-0.1,0-0.1,0-0.2C2.3,35.8,18.3,4,19.3,2.1c0.2-0.4,0.7-0.6,1.1-0.4c0.2,0.1,0.3,0.2,0.4,0.4\\n\\t\\tc0.8,1.6,17,33.9,17.5,35.1C38.3,37.3,38.3,37.4,38.3,37.5z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"warnings\" v-bind=\"$attrs\">\n <path\n d=\"M20,13.3c-0.5,0-0.9,0.4-0.9,0.9v8.7l0.3,5.5c0,0.3,0.3,0.6,0.6,0.6c0.3,0,0.5-0.3,0.6-0.6l0.3-5.5v-8.7\n\t\tC20.9,13.7,20.5,13.3,20,13.3z M20,31.2c-0.3,0-0.7,0.1-0.9,0.4c-0.2,0.2-0.4,0.6-0.4,0.9c0,0.4,0.1,0.7,0.4,0.9\n\t\tc0.2,0.2,0.6,0.4,0.9,0.4c0.3,0,0.6-0.1,0.9-0.4c0.3-0.3,0.4-0.6,0.4-0.9c0-0.3-0.1-0.7-0.4-0.9C20.6,31.3,20.3,31.1,20,31.2\n\t\tL20,31.2z\"\n />\n <path\n d=\"M20,0c-1,0-1.8,0.6-2.2,1.4C17.6,1.7,0.5,35.7,0.1,36.7c-0.4,1.3,0.3,2.7,1.6,3.2C2,40,2.2,40,2.5,40h35\n\t\tc1.4,0,2.5-1.1,2.5-2.5c0-0.3-0.1-0.7-0.2-1C39.4,35.6,22.4,1.7,22.2,1.4C21.8,0.5,20.9,0,20,0z M38.3,37.5c0,0.5-0.4,0.8-0.8,0.8\n\t\tl0,0h-35c-0.5,0-0.8-0.4-0.8-0.8c0-0.1,0-0.1,0-0.2C2.3,35.8,18.3,4,19.3,2.1c0.2-0.4,0.7-0.6,1.1-0.4c0.2,0.1,0.3,0.2,0.4,0.4\n\t\tc0.8,1.6,17,33.9,17.5,35.1C38.3,37.3,38.3,37.4,38.3,37.5z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconWarnings extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=edb64bcc\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"watchlist-icon-tooltip\",function(){return [_vm._v(\"Watchlist\")]})]},proxy:true}],null,true)},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M33.3,27.5h-4.2v-4.2c0-0.5-0.4-0.8-0.8-0.8c-0.5,0-0.8,0.4-0.8,0.8v4.2h-4.2c-0.5,0-0.8,0.4-0.8,0.8\\n c0,0.5,0.4,0.8,0.8,0.8h4.2v4.2c0,0.5,0.4,0.8,0.8,0.8c0.5,0,0.8-0.4,0.8-0.8v-4.2h4.2c0.5,0,0.8-0.4,0.8-0.8\\n C34.1,27.9,33.8,27.5,33.3,27.5z M35.2,19C35.2,19,35.2,19,35.2,19c1.5-1.4,2.9-3.1,4.4-4.9c0.4-0.5,0.4-1.3,0-1.9l0,0\\n C33,4.1,26.8,0,20.1,0S7.1,4.1,0.3,12.2c-0.5,0.5-0.5,1.3,0,1.9c5.7,7,11,11,16.5,12.1c-0.1,0.7-0.2,1.4-0.2,2.1\\n c0,6.4,5.2,11.6,11.7,11.6C34.8,40,40,34.8,40,28.4C40,24.5,38.1,21.2,35.2,19z M1.7,13.2C8.2,5.3,14,1.7,20.1,1.7\\n c6,0,11.8,3.7,18.2,11.5c-1.5,1.9-3,3.5-4.5,4.9c0,0,0,0,0,0c-1.6-0.9-3.5-1.4-5.5-1.4c-1,0-2,0.1-2.9,0.4c0,0,0,0,0,0\\n c0.8-1.1,1.2-2.4,1.2-3.8c0-3.7-3-6.6-6.7-6.6l0,0c-1.8,0-3.5,0.7-4.7,1.9c-1.3,1.2-2,2.9-2,4.7c0,3.7,3,6.6,6.7,6.6\\n c0.1,0,0.2,0,0.3,0c-1.4,1.3-2.4,2.9-3.1,4.7C12.3,23.6,7.2,19.9,1.7,13.2z M23.5,16.8c-0.9,0.9-2.2,1.5-3.5,1.5\\n c-1.3,0-2.6-0.5-3.5-1.5c-2-2-1.9-5.1,0-7.1c2-1.9,5.1-1.9,7.1,0C25.5,11.7,25.5,14.9,23.5,16.8z M28.3,38.3c-5.5,0-10-4.5-10-10\\n s4.5-10,10-10c5.5,0,10,4.5,10,10S33.8,38.3,28.3,38.3z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base v-bind=\"$attrs\">\n <path\n d=\"M33.3,27.5h-4.2v-4.2c0-0.5-0.4-0.8-0.8-0.8c-0.5,0-0.8,0.4-0.8,0.8v4.2h-4.2c-0.5,0-0.8,0.4-0.8,0.8\n c0,0.5,0.4,0.8,0.8,0.8h4.2v4.2c0,0.5,0.4,0.8,0.8,0.8c0.5,0,0.8-0.4,0.8-0.8v-4.2h4.2c0.5,0,0.8-0.4,0.8-0.8\n C34.1,27.9,33.8,27.5,33.3,27.5z M35.2,19C35.2,19,35.2,19,35.2,19c1.5-1.4,2.9-3.1,4.4-4.9c0.4-0.5,0.4-1.3,0-1.9l0,0\n C33,4.1,26.8,0,20.1,0S7.1,4.1,0.3,12.2c-0.5,0.5-0.5,1.3,0,1.9c5.7,7,11,11,16.5,12.1c-0.1,0.7-0.2,1.4-0.2,2.1\n c0,6.4,5.2,11.6,11.7,11.6C34.8,40,40,34.8,40,28.4C40,24.5,38.1,21.2,35.2,19z M1.7,13.2C8.2,5.3,14,1.7,20.1,1.7\n c6,0,11.8,3.7,18.2,11.5c-1.5,1.9-3,3.5-4.5,4.9c0,0,0,0,0,0c-1.6-0.9-3.5-1.4-5.5-1.4c-1,0-2,0.1-2.9,0.4c0,0,0,0,0,0\n c0.8-1.1,1.2-2.4,1.2-3.8c0-3.7-3-6.6-6.7-6.6l0,0c-1.8,0-3.5,0.7-4.7,1.9c-1.3,1.2-2,2.9-2,4.7c0,3.7,3,6.6,6.7,6.6\n c0.1,0,0.2,0,0.3,0c-1.4,1.3-2.4,2.9-3.1,4.7C12.3,23.6,7.2,19.9,1.7,13.2z M23.5,16.8c-0.9,0.9-2.2,1.5-3.5,1.5\n c-1.3,0-2.6-0.5-3.5-1.5c-2-2-1.9-5.1,0-7.1c2-1.9,5.1-1.9,7.1,0C25.5,11.7,25.5,14.9,23.5,16.8z M28.3,38.3c-5.5,0-10-4.5-10-10\n s4.5-10,10-10c5.5,0,10,4.5,10,10S33.8,38.3,28.3,38.3z\"\n />\n <template #title>\n <slot name=\"watchlist-icon-tooltip\">Watchlist</slot>\n </template>\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component\nexport default class AdIconWatchlistAdd extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=30dc9376\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"watchlist-icon-tooltip\",function(){return [_vm._v(\"Watchlist\")]})]},proxy:true}],null,true)},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M32.4,24.3c-0.3-0.3-0.9-0.3-1.2,0l-2.9,2.9l-2.9-2.9c-0.3-0.3-0.9-0.3-1.2,0c-0.3,0.3-0.3,0.8,0,1.2l2.9,2.9\\n l-2.9,2.9c-0.3,0.3-0.3,0.8,0,1.2c0.3,0.3,0.9,0.3,1.2,0l2.9-2.9l2.9,2.9c0.3,0.3,0.9,0.3,1.2,0c0.3-0.3,0.3-0.8,0-1.2l-2.9-2.9\\n l2.9-2.9C32.8,25.1,32.8,24.6,32.4,24.3z M35.2,19C35.2,19,35.2,19,35.2,19c1.5-1.4,2.9-3.1,4.4-4.9c0.4-0.5,0.4-1.3,0-1.9l0,0\\n C33,4.1,26.8,0,20.1,0S7.1,4.1,0.3,12.2c-0.5,0.5-0.5,1.3,0,1.9c5.7,7,11,11,16.5,12.1c-0.7,3.6,0.4,7.5,3.2,10.4\\n c4.6,4.5,11.9,4.5,16.5,0c4.6-4.5,4.6-11.9,0-16.4C36.1,19.7,35.7,19.4,35.2,19z M1.7,13.2C8.2,5.3,14,1.7,20.1,1.7\\n c6,0,11.8,3.7,18.2,11.5c-1.5,1.9-3,3.5-4.5,4.9c-2.6-1.4-5.6-1.7-8.4-1c0.8-1.1,1.2-2.4,1.2-3.8c0-3.7-3-6.6-6.7-6.6l0,0\\n c-1.8,0-3.5,0.7-4.7,1.9c-1.3,1.2-2,2.9-2,4.7c0,3.7,3,6.6,6.7,6.6c0.1,0,0.2,0,0.3,0c0,0,0,0,0,0c-0.1,0.1-0.2,0.2-0.3,0.3\\n c-1.3,1.3-2.3,2.9-2.8,4.5c0,0,0,0,0-0.1C12.3,23.6,7.2,19.9,1.7,13.2z M20,18.3c-1.3,0-2.6-0.5-3.5-1.5c-2-2-1.9-5.1,0-7.1\\n c2-1.9,5.1-1.9,7.1,0c2,2,1.9,5.1,0,7.1C22.6,17.8,21.3,18.3,20,18.3z M35.4,35.4c-3.9,3.9-10.2,3.9-14.1,0s-3.9-10.2,0-14.1\\n s10.2-3.9,14.1,0S39.3,31.5,35.4,35.4z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base v-bind=\"$attrs\">\n <path\n d=\"M32.4,24.3c-0.3-0.3-0.9-0.3-1.2,0l-2.9,2.9l-2.9-2.9c-0.3-0.3-0.9-0.3-1.2,0c-0.3,0.3-0.3,0.8,0,1.2l2.9,2.9\n l-2.9,2.9c-0.3,0.3-0.3,0.8,0,1.2c0.3,0.3,0.9,0.3,1.2,0l2.9-2.9l2.9,2.9c0.3,0.3,0.9,0.3,1.2,0c0.3-0.3,0.3-0.8,0-1.2l-2.9-2.9\n l2.9-2.9C32.8,25.1,32.8,24.6,32.4,24.3z M35.2,19C35.2,19,35.2,19,35.2,19c1.5-1.4,2.9-3.1,4.4-4.9c0.4-0.5,0.4-1.3,0-1.9l0,0\n C33,4.1,26.8,0,20.1,0S7.1,4.1,0.3,12.2c-0.5,0.5-0.5,1.3,0,1.9c5.7,7,11,11,16.5,12.1c-0.7,3.6,0.4,7.5,3.2,10.4\n c4.6,4.5,11.9,4.5,16.5,0c4.6-4.5,4.6-11.9,0-16.4C36.1,19.7,35.7,19.4,35.2,19z M1.7,13.2C8.2,5.3,14,1.7,20.1,1.7\n c6,0,11.8,3.7,18.2,11.5c-1.5,1.9-3,3.5-4.5,4.9c-2.6-1.4-5.6-1.7-8.4-1c0.8-1.1,1.2-2.4,1.2-3.8c0-3.7-3-6.6-6.7-6.6l0,0\n c-1.8,0-3.5,0.7-4.7,1.9c-1.3,1.2-2,2.9-2,4.7c0,3.7,3,6.6,6.7,6.6c0.1,0,0.2,0,0.3,0c0,0,0,0,0,0c-0.1,0.1-0.2,0.2-0.3,0.3\n c-1.3,1.3-2.3,2.9-2.8,4.5c0,0,0,0,0-0.1C12.3,23.6,7.2,19.9,1.7,13.2z M20,18.3c-1.3,0-2.6-0.5-3.5-1.5c-2-2-1.9-5.1,0-7.1\n c2-1.9,5.1-1.9,7.1,0c2,2,1.9,5.1,0,7.1C22.6,17.8,21.3,18.3,20,18.3z M35.4,35.4c-3.9,3.9-10.2,3.9-14.1,0s-3.9-10.2,0-14.1\n s10.2-3.9,14.1,0S39.3,31.5,35.4,35.4z\"\n />\n <template #title>\n <slot name=\"watchlist-icon-tooltip\">Watchlist</slot>\n </template>\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component\nexport default class AdIconWatchlistRemove extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ae3c1980\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"watchist-tooltip\",function(){return [_vm._v(\"Entries on watchlist\")]})]},proxy:true}],null,true)},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M23.5,23.6c2-2,2-5.1,0-7.1c-2-2-5.1-2-7.1,0c-2,2-2,5.1,0,7.1c0.9,0.9,2.2,1.5,3.5,1.5\\n\\t\\tC21.3,25,22.6,24.5,23.5,23.6z M20,13.3c3.7,0,6.7,3,6.7,6.7c0,3.7-3,6.7-6.7,6.7c-3.7,0-6.7-3-6.7-6.7c0-1.8,0.7-3.5,2-4.7\\n\\t\\tC16.5,14,18.2,13.3,20,13.3L20,13.3z M20.1,31.7c6,0,11.8-3.7,18.2-11.8C31.8,12,26.1,8.3,20.1,8.3C14,8.3,8.2,12,1.7,19.9\\n\\t\\tC8.2,27.9,14.1,31.7,20.1,31.7L20.1,31.7z M39.7,19c0.4,0.5,0.4,1.3,0,1.9C33,29.2,26.8,33.3,20.1,33.3s-13-4.2-19.7-12.5\\n\\t\\tc-0.4-0.5-0.4-1.3,0-1.9c6.7-8.2,13-12.3,19.7-12.3S33,10.8,39.7,19L39.7,19z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base v-bind=\"$attrs\">\n <path\n d=\"M23.5,23.6c2-2,2-5.1,0-7.1c-2-2-5.1-2-7.1,0c-2,2-2,5.1,0,7.1c0.9,0.9,2.2,1.5,3.5,1.5\n\t\tC21.3,25,22.6,24.5,23.5,23.6z M20,13.3c3.7,0,6.7,3,6.7,6.7c0,3.7-3,6.7-6.7,6.7c-3.7,0-6.7-3-6.7-6.7c0-1.8,0.7-3.5,2-4.7\n\t\tC16.5,14,18.2,13.3,20,13.3L20,13.3z M20.1,31.7c6,0,11.8-3.7,18.2-11.8C31.8,12,26.1,8.3,20.1,8.3C14,8.3,8.2,12,1.7,19.9\n\t\tC8.2,27.9,14.1,31.7,20.1,31.7L20.1,31.7z M39.7,19c0.4,0.5,0.4,1.3,0,1.9C33,29.2,26.8,33.3,20.1,33.3s-13-4.2-19.7-12.5\n\t\tc-0.4-0.5-0.4-1.3,0-1.9c6.7-8.2,13-12.3,19.7-12.3S33,10.8,39.7,19L39.7,19z\"\n />\n <template #title>\n <slot name=\"watchist-tooltip\">Entries on watchlist</slot>\n </template>\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconWatchlist extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=491abfcd\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"Xing\",\"viewBox\":_vm.viewBox}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"id\":\"path2\",\"sodipodi:nodetypes\":\"ccsscscccccsscccsssccccsscccsssssssccsssssssccsssssssssccscsccsssssscscsccsscssscscc\",\"fill\":\"#006567\",\"d\":\"\\n\\tM41.128,88.578l16.061-30.386c0.868-1.736,1.302-2.604,3.473-2.604h17.363c0.868,0,1.302,0.435,1.736,0.868\\n\\tc0,0.435,0.434,0.435,0.434,0.868c0,0.435,0,0.868-0.434,0.868l-25.176,46.012l26.479,48.183c0,0.435,0.434,0.868,0.434,0.868\\n\\tc0,0.435,0,0.868-0.434,0.868c-0.434,0.435-0.868,0.868-1.736,0.868H61.964c-2.17,0-2.604-1.302-3.473-2.604l-17.797-32.556\\n\\tl-17.797,32.556c-0.868,1.736-1.302,2.604-3.473,2.604H2.062c-0.868,0-1.302-0.434-1.736-0.868c-0.434-0.434-0.434-1.302,0-2.17\\n\\tl26.479-48.183L2.496,58.627c-0.434-0.868-0.434-1.303,0-2.171c0.434-0.434,0.868-0.868,1.736-0.868h17.363\\n\\tc2.17,0,2.604,1.303,3.473,2.604L41.128,88.578z M175.258,115.49V58.193c0-1.302,0.868-2.604,2.604-2.604h13.89\\n\\tc1.302,0,2.604,0.868,2.604,2.604v95.063c0,1.303-0.868,2.604-2.604,2.604h-14.324c-1.736,0-3.039-1.302-3.473-2.604l-29.517-57.298\\n\\tv57.298c0,1.303-0.868,2.604-2.604,2.604h-13.891c-1.302,0-2.604-0.868-2.604-2.604V58.193c0-1.302,1.302-2.604,2.604-2.604h14.325\\n\\tc2.17,0,2.604,1.303,3.473,2.604L175.258,115.49z M91.047,153.255V58.193c0-1.302,0.868-2.604,2.604-2.604h13.89\\n\\tc1.302,0,2.604,0.868,2.604,2.604v95.063c0,1.303-0.868,2.604-2.604,2.604h-13.89C91.916,155.86,91.047,154.558,91.047,153.255z\\n M250.787,71.65c-7.379,0-13.457,1.735-18.231,8.247c-4.341,6.077-6.945,13.891-6.945,25.176c0,10.853,0.435,19.534,4.341,25.177\\n\\tc3.473,5.643,9.55,9.55,16.929,9.55c8.247,0,14.325-2.171,14.325-2.171v-21.27H246.88c-1.302,0-2.604-1.302-2.604-2.604v-12.153\\n\\tc0-1.303,0.869-2.604,2.604-2.604h30.819c1.303,0,2.604,1.302,2.604,2.604v48.182c-0.868,0.435-16.061,7.813-34.292,7.813\\n\\tc-15.192,0-23.874-5.643-29.951-13.891c-6.945-9.115-9.549-24.308-9.549-38.198c0-9.983,1.302-19.1,4.774-26.913\\n\\tc3.473-8.247,9.55-14.758,15.626-18.23c6.945-3.907,15.193-5.644,23.44-5.644h2.171c12.588,0,19.967,3.039,22.572,4.341\\n\\tc2.17,0.868,2.604,1.736,2.604,3.039v11.72c0,0.868-0.434,1.302-0.868,1.736c-0.435,0.434-1.302,0.434-1.736,0.434\\n\\tc-4.774-1.736-12.155-4.495-22.138-4.34H250.787z\"}}),_c('path',{attrs:{\"id\":\"path4\",\"fill\":\"#B0D400\",\"d\":\"M381.877,0.461c-2.17,0-3.473,1.302-4.341,3.038c0,0-33.423,59.469-34.726,61.205l22.138,40.368\\n\\tc0.868,1.303,2.171,3.039,4.341,3.039h15.627c0.868,0,1.736-0.435,2.17-0.868c0.435-0.868,0.435-1.736,0-2.604l-21.703-39.935\\n\\tl34.292-60.771c0.434-0.868,0.434-1.736,0-2.604c-0.435-0.435-1.303-0.868-2.171-0.868H381.877z\"}}),_c('path',{attrs:{\"id\":\"path6\",\"fill\":\"#006567\",\"d\":\"M316.767,21.731c-0.868,0-1.736,0.434-2.171,0.868c-0.434,0.868-0.434,1.736,0,2.604\\n\\tl10.418,18.23l-16.061,29.083c-0.435,0.868-0.435,1.736,0,2.604c0.434,0.435,1.302,0.868,2.17,0.868h15.192\\n\\tc2.171,0,3.473-1.736,4.341-3.038c0,0,16.062-28.649,16.93-29.518l-10.853-18.665c-0.868-1.302-2.17-3.038-4.341-3.038H316.767z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"Xing\" v-bind=\"$attrs\" :viewBox=\"viewBox\">\n <path\n id=\"path2\"\n sodipodi:nodetypes=\"ccsscscccccsscccsssccccsscccsssssssccsssssssccsssssssssccscsccsssssscscsccsscssscscc\"\n fill=\"#006567\"\n d=\"\n\tM41.128,88.578l16.061-30.386c0.868-1.736,1.302-2.604,3.473-2.604h17.363c0.868,0,1.302,0.435,1.736,0.868\n\tc0,0.435,0.434,0.435,0.434,0.868c0,0.435,0,0.868-0.434,0.868l-25.176,46.012l26.479,48.183c0,0.435,0.434,0.868,0.434,0.868\n\tc0,0.435,0,0.868-0.434,0.868c-0.434,0.435-0.868,0.868-1.736,0.868H61.964c-2.17,0-2.604-1.302-3.473-2.604l-17.797-32.556\n\tl-17.797,32.556c-0.868,1.736-1.302,2.604-3.473,2.604H2.062c-0.868,0-1.302-0.434-1.736-0.868c-0.434-0.434-0.434-1.302,0-2.17\n\tl26.479-48.183L2.496,58.627c-0.434-0.868-0.434-1.303,0-2.171c0.434-0.434,0.868-0.868,1.736-0.868h17.363\n\tc2.17,0,2.604,1.303,3.473,2.604L41.128,88.578z M175.258,115.49V58.193c0-1.302,0.868-2.604,2.604-2.604h13.89\n\tc1.302,0,2.604,0.868,2.604,2.604v95.063c0,1.303-0.868,2.604-2.604,2.604h-14.324c-1.736,0-3.039-1.302-3.473-2.604l-29.517-57.298\n\tv57.298c0,1.303-0.868,2.604-2.604,2.604h-13.891c-1.302,0-2.604-0.868-2.604-2.604V58.193c0-1.302,1.302-2.604,2.604-2.604h14.325\n\tc2.17,0,2.604,1.303,3.473,2.604L175.258,115.49z M91.047,153.255V58.193c0-1.302,0.868-2.604,2.604-2.604h13.89\n\tc1.302,0,2.604,0.868,2.604,2.604v95.063c0,1.303-0.868,2.604-2.604,2.604h-13.89C91.916,155.86,91.047,154.558,91.047,153.255z\n M250.787,71.65c-7.379,0-13.457,1.735-18.231,8.247c-4.341,6.077-6.945,13.891-6.945,25.176c0,10.853,0.435,19.534,4.341,25.177\n\tc3.473,5.643,9.55,9.55,16.929,9.55c8.247,0,14.325-2.171,14.325-2.171v-21.27H246.88c-1.302,0-2.604-1.302-2.604-2.604v-12.153\n\tc0-1.303,0.869-2.604,2.604-2.604h30.819c1.303,0,2.604,1.302,2.604,2.604v48.182c-0.868,0.435-16.061,7.813-34.292,7.813\n\tc-15.192,0-23.874-5.643-29.951-13.891c-6.945-9.115-9.549-24.308-9.549-38.198c0-9.983,1.302-19.1,4.774-26.913\n\tc3.473-8.247,9.55-14.758,15.626-18.23c6.945-3.907,15.193-5.644,23.44-5.644h2.171c12.588,0,19.967,3.039,22.572,4.341\n\tc2.17,0.868,2.604,1.736,2.604,3.039v11.72c0,0.868-0.434,1.302-0.868,1.736c-0.435,0.434-1.302,0.434-1.736,0.434\n\tc-4.774-1.736-12.155-4.495-22.138-4.34H250.787z\"\n />\n <path\n id=\"path4\"\n fill=\"#B0D400\"\n d=\"M381.877,0.461c-2.17,0-3.473,1.302-4.341,3.038c0,0-33.423,59.469-34.726,61.205l22.138,40.368\n\tc0.868,1.303,2.171,3.039,4.341,3.039h15.627c0.868,0,1.736-0.435,2.17-0.868c0.435-0.868,0.435-1.736,0-2.604l-21.703-39.935\n\tl34.292-60.771c0.434-0.868,0.434-1.736,0-2.604c-0.435-0.435-1.303-0.868-2.171-0.868H381.877z\"\n />\n <path\n id=\"path6\"\n fill=\"#006567\"\n d=\"M316.767,21.731c-0.868,0-1.736,0.434-2.171,0.868c-0.434,0.868-0.434,1.736,0,2.604\n\tl10.418,18.23l-16.061,29.083c-0.435,0.868-0.435,1.736,0,2.604c0.434,0.435,1.302,0.868,2.17,0.868h15.192\n\tc2.171,0,3.473-1.736,4.341-3.038c0,0,16.062-28.649,16.93-29.518l-10.853-18.665c-0.868-1.302-2.17-3.038-4.341-3.038H316.767z\"\n />\n </ad-icon-base>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n@Component\nexport default class AdIconXing extends Vue {\n @Prop({ default: '0 30 400 157.135', type: String }) viewBox!: string;\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=01ce418a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-icon-base',_vm._b({attrs:{\"iconName\":\"xls\",\"viewBox\":\"10 10 25 25\"}},'ad-icon-base',_vm.$attrs,false),[_c('path',{attrs:{\"d\":\"M25.84,22H19a.5.5,0,0,0,0,1h6.84a.5.5,0,1,0,0-1ZM16,12H15a1,1,0,0,0-1,1v1a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V13A1,1,0,0,0,16,12Zm0,2H15V13h1Zm0,6H15a1,1,0,0,0-1,1v1a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V21A1,1,0,0,0,16,20Zm0,2H15V21h1Zm0-6H15a1,1,0,0,0-1,1v1a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V17A1,1,0,0,0,16,16Zm0,2H15V17h1Zm9.84,0H19a.5.5,0,0,0,0,1h6.84a.5.5,0,1,0,0-1Zm0-4H19a.5.5,0,0,0,0,1h6.84a.5.5,0,1,0,0-1Z\"}}),_c('path',{attrs:{\"d\":\"M12.5,8A1.5,1.5,0,0,0,11,9.5v21A1.5,1.5,0,0,0,12.5,32h6.93a1.59,1.59,0,0,0,.61-.13l8.08-3.64A1.52,1.52,0,0,0,29,26.86V9.5A1.5,1.5,0,0,0,27.5,8ZM20,30.79V28.5a.5.5,0,0,1,.5-.5h5.69ZM28,9.5V26.86A.74.74,0,0,1,28,27H20.5A1.5,1.5,0,0,0,19,28.5V31H12.5a.5.5,0,0,1-.5-.5V9.5a.5.5,0,0,1,.5-.5h15A.5.5,0,0,1,28,9.5Z\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-icon-base iconName=\"xls\" v-bind=\"$attrs\" viewBox=\"10 10 25 25\">\n <path\n d=\"M25.84,22H19a.5.5,0,0,0,0,1h6.84a.5.5,0,1,0,0-1ZM16,12H15a1,1,0,0,0-1,1v1a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V13A1,1,0,0,0,16,12Zm0,2H15V13h1Zm0,6H15a1,1,0,0,0-1,1v1a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V21A1,1,0,0,0,16,20Zm0,2H15V21h1Zm0-6H15a1,1,0,0,0-1,1v1a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V17A1,1,0,0,0,16,16Zm0,2H15V17h1Zm9.84,0H19a.5.5,0,0,0,0,1h6.84a.5.5,0,1,0,0-1Zm0-4H19a.5.5,0,0,0,0,1h6.84a.5.5,0,1,0,0-1Z\"\n /><path\n d=\"M12.5,8A1.5,1.5,0,0,0,11,9.5v21A1.5,1.5,0,0,0,12.5,32h6.93a1.59,1.59,0,0,0,.61-.13l8.08-3.64A1.52,1.52,0,0,0,29,26.86V9.5A1.5,1.5,0,0,0,27.5,8ZM20,30.79V28.5a.5.5,0,0,1,.5-.5h5.69ZM28,9.5V26.86A.74.74,0,0,1,28,27H20.5A1.5,1.5,0,0,0,19,28.5V31H12.5a.5.5,0,0,1-.5-.5V9.5a.5.5,0,0,1,.5-.5h15A.5.5,0,0,1,28,9.5Z\"\n />\n </ad-icon-base>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n@Component({})\nexport default class AdIconXls extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=364b3610\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('b-container',{staticClass:\"content-container mb-7 mb-md-8 mt-6 mt-md-7 mt-xl-8 px-md-4\",attrs:{\"fluid\":\"\"}},[_c('b-row',[(_vm.showNavigation)?_c('b-col',{staticClass:\"hide-empty\",attrs:{\"cols\":\"2\"}},[_vm._t(\"layout-navigation\")],2):_vm._e(),_c('b-col',{attrs:{\"cols\":_vm.showNavigation ? '10' : '12'}},[_vm._t(\"layout-content\")],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <b-container fluid class=\"content-container mb-7 mb-md-8 mt-6 mt-md-7 mt-xl-8 px-md-4\">\n <b-row>\n <b-col cols=\"2\" class=\"hide-empty\" v-if=\"showNavigation\">\n <slot name=\"layout-navigation\"></slot>\n </b-col>\n <b-col :cols=\"showNavigation ? '10' : '12'\">\n <slot name=\"layout-content\"></slot>\n </b-col>\n </b-row>\n </b-container>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component\n/**\n * Selects correct containers for a content area and a sidebar, to properly display the ad-anchor-navigation.\n */\nexport default class AdAnchorLayout extends Vue {\n @Prop({ required: true, type: Boolean })\n showNavigation!: boolean;\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=762b9045\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ad-anchor-navigation\"},[_c('div',{staticClass:\"ad-anchor-sticky\"},[_c('h4',{staticClass:\"anchor-heading\"},[_vm._t(\"anchor-navigation-headline\")],2),_c('b-nav',{directives:[{name:\"b-scrollspy\",rawName:\"v-b-scrollspy\",value:(100),expression:\"100\"}],staticClass:\"anchors-list\"},[_vm._t(\"anchors\")],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ad-anchor-navigation\">\n <div class=\"ad-anchor-sticky\">\n <h4 class=\"anchor-heading\">\n <slot name=\"anchor-navigation-headline\"></slot>\n </h4>\n <b-nav class=\"anchors-list\" v-b-scrollspy=\"100\">\n <slot name=\"anchors\"></slot>\n </b-nav>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\nimport { scrollToElement, jumpToAnchor } from '@src/utils/scroll-helpers';\n@Component\nexport default class AdAnchorNavigation extends Vue {\n mounted() {\n this.$on('anchor-nav-click', this.scrollToView);\n\n this.$nextTick(jumpToAnchor);\n }\n\n scrollToView(e: Event): void {\n e.preventDefault();\n\n const targetHref = e.target != null ? e.target['href'] : null;\n if (targetHref != null) {\n history.replaceState({}, '', targetHref); // to avoid browser behavior of jumping to element (would be incorrectly positioned)\n const $element = document.getElementById(location.hash.substr(1));\n scrollToElement($element, true);\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.ad-anchor-sticky {\n /* stylelint-disable-next-line */\n position: -webkit-sticky;\n position: sticky;\n top: 100px;\n bottom: 0;\n}\n\n.ad-anchor-navigation {\n // dotted line\n background-image: linear-gradient($marine-blue 33%, rgba(255, 255, 255, 0) 0%);\n background-position: left top;\n background-repeat: repeat-y;\n background-size: 2px 6px;\n height: 100%;\n\n .anchor-heading {\n margin: 0;\n margin-left: 0.7rem;\n text-transform: uppercase;\n font-size: $fs-14 !important;\n font-weight: bold;\n writing-mode: vertical-rl;\n text-orientation: mixed;\n }\n\n /* stylelint-disable selector-no-qualifying-type */\n ul.anchors-list {\n flex-direction: column;\n margin-left: -0.7rem;\n padding-left: 0.5rem !important;\n\n .anchor-navigation-li {\n margin: 1rem 0 1rem 0.5rem;\n\n &::before {\n // overwrite from _typography.scss\n margin-left: -0.52rem !important;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7ff96d38\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7ff96d38&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-nav-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showAnchor),expression:\"showAnchor\"}],staticClass:\"anchor-navigation-li\",attrs:{\"href\":'#' + _vm.contentId},on:{\"click\":_vm.passClick}},[_vm._t(\"anchor-header\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-nav-item class=\"anchor-navigation-li\" v-show=\"showAnchor\" v-bind:href=\"'#' + contentId\" @click=\"passClick\"\n ><slot name=\"anchor-header\"></slot\n ></b-nav-item>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\n\n@Component\nexport default class AdAnchor extends Vue {\n @Prop()\n contentId!: string;\n\n @Getter('registeredAnchors', { namespace: 'htmlAnchors' })\n registeredAnchors!: { [anchorId: string]: boolean };\n\n get showAnchor(): boolean {\n return this.registeredAnchors[this.contentId] ?? false;\n }\n\n passClick(e: Event): void {\n this.$parent?.$emit('anchor-nav-click', e);\n }\n}\n</script>\n<style lang=\"scss\">\n.anchor-navigation-li {\n .nav-link {\n padding-left: 0;\n font-size: $fs-14;\n }\n\n > a:not(.active) {\n color: $cool-grey;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4d14c284\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4d14c284&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-col',{staticClass:\"px-1 mb-2\",attrs:{\"cols\":\"6\",\"md\":\"4\"}},[_c('b-row',{staticClass:\"no-gutters border rounded h-49 d-flex align-items-center justify-content-center\"},[_c('b-link',{attrs:{\"href\":_vm.getBrokerUrl,\"title\":\"Broker Link\",\"target\":\"_blank\"},on:{\"click\":_vm.onClick}},[_vm._t(\"broker-image\")],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-col cols=\"6\" md=\"4\" class=\"px-1 mb-2\">\n <b-row class=\"no-gutters border rounded h-49 d-flex align-items-center justify-content-center\">\n <b-link :href=\"getBrokerUrl\" title=\"Broker Link\" target=\"_blank\" @click=\"onClick\">\n <slot name=\"broker-image\" />\n </b-link>\n </b-row>\n </b-col>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Inject, InjectReactive } from 'vue-property-decorator';\nimport { ProductModel } from '@src/types/the-q-api';\nimport { InstrumentFieldKeys } from '@/src/types/episerver-api';\nimport evaluateExpressionByKey from '@/src/utils/value-formatter/format-helper';\n\n@Component({})\nexport default class AdBroker extends Vue {\n @Prop({ required: true, type: String }) brokerUrl!: string;\n @Prop({ type: String }) brokerName?: string | null;\n /* eslint-disable @typescript-eslint/no-empty-function */\n @Prop({\n default: () => {},\n type: Function,\n })\n brokerClick!: (brokerName: string) => void;\n /* eslint-enable @typescript-eslint/no-empty-function */\n @InjectReactive() product!: ProductModel | null;\n @Inject({ default: null }) nsinKeys!: InstrumentFieldKeys | null;\n\n get getBrokerUrl(): string {\n let url = this.brokerUrl.toLowerCase();\n\n if (this.product) {\n if (this.nsinKeys?.productKey) {\n const value = evaluateExpressionByKey(this.nsinKeys.productKey, {\n // setting product to get value from productItem and set fieldkey, e.g. product.last\n product: this.product,\n });\n if (value)\n url = this.replaceKey(\n url,\n this.nsinKeys.productKey.substr(this.nsinKeys.productKey.indexOf('.') + 1, this.nsinKeys.productKey.length),\n value.toString()\n );\n }\n url = this.replaceKey(url, 'isin', this.product.isin.toString());\n }\n\n return url;\n }\n\n replaceKey(url: string, key: string, value: string) {\n return url.replace(`[[${key}]]`, value);\n }\n\n onClick() {\n if (this.brokerName) {\n this.brokerClick(this.brokerName);\n }\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.h-49 {\n height: rem(49) !important;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ef8dedec&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ef8dedec&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ef8dedec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-popover',{attrs:{\"popoverId\":_vm.popoverId,\"target\":_vm.targetId,\"triggers\":\"focus hover\",\"show\":_vm.isPopoverShow,\"placement\":_vm.placement,\"fallback-placement\":[],\"custom-class\":\"brokers-overlay\",\"boundary\":\"viewport\",\"boundary-padding\":\"5\"},on:{\"update:show\":function($event){_vm.isPopoverShow=$event}}},[_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"mt-3 pl-md-2\",attrs:{\"cols\":\"10\"}},[_c('h3',[_vm._t(\"overlay-headline\")],2)]),_c('b-col',{staticClass:\"mt-3 pr-md-3 text-right blue\",attrs:{\"cols\":\"2\"}},[_c('b-link',{staticClass:\"blue\",on:{\"click\":_vm.onClose}},[_c('ad-icon-close')],1)],1),_c('b-col',{staticClass:\"mt-2 mb-4 pr-md-3 ml-md-2\",attrs:{\"cols\":\"12\"}},[_vm._t(\"leaving-disclaimer\")],2),_c('b-col',{staticClass:\"px-md-1\",attrs:{\"cols\":\"12\"}},[_c('b-row',{staticClass:\"no-gutters mb-2\"},[_vm._t(\"brokers\",null,{\"onBrokerClick\":_vm.onBrokerClick})],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-popover\n :popoverId=\"popoverId\"\n :target=\"targetId\"\n triggers=\"focus hover\"\n :show.sync=\"isPopoverShow\"\n :placement=\"placement\"\n :fallback-placement=\"[]\"\n custom-class=\"brokers-overlay\"\n boundary=\"viewport\"\n boundary-padding=\"5\"\n >\n <b-row class=\"no-gutters\">\n <b-col cols=\"10\" class=\"mt-3 pl-md-2\">\n <h3><slot name=\"overlay-headline\"></slot></h3>\n </b-col>\n <b-col cols=\"2\" class=\"mt-3 pr-md-3 text-right blue\">\n <b-link @click=\"onClose\" class=\"blue\">\n <ad-icon-close />\n </b-link>\n </b-col>\n <b-col cols=\"12\" class=\"mt-2 mb-4 pr-md-3 ml-md-2\">\n <slot name=\"leaving-disclaimer\"></slot>\n </b-col>\n <b-col cols=\"12\" class=\"px-md-1\">\n <b-row class=\"no-gutters mb-2\">\n <slot name=\"brokers\" :on-broker-click=\"onBrokerClick\"></slot>\n </b-row>\n </b-col>\n </b-row>\n </b-popover>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({})\nexport default class AdBrokersOverlay extends Vue {\n @Prop({ required: true, type: String }) targetId!: string;\n @Prop({ required: true, type: String }) popoverId!: string;\n placement = 'rightbottom';\n isPopoverShow = false;\n\n onClose(): void {\n this.isPopoverShow = false;\n }\n\n created(): void {\n this.setOverlayPlacement();\n this.$watch('$screen.breakpoint', this.setOverlayPlacement);\n }\n setOverlayPlacement(): void {\n if (this.$screen.lg) {\n this.placement = 'rightbottom';\n } else {\n this.placement = 'bottomleft';\n }\n }\n\n onBrokerClick(brokerName: string) {\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'broker',\n items: [\n {\n item_id: brokerName,\n },\n ],\n });\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.brokers-overlay {\n @include media-breakpoint-up('md') {\n margin-left: 15px !important;\n min-width: rem(575) !important;\n }\n\n @include media-breakpoint-down('sm') {\n margin-top: 15px !important;\n min-width: 95% !important;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f00311ea&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f00311ea&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f00311ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-collapse-on-mobile',_vm._b({attrs:{\"show-collapsed\":_vm.showCollapsed},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(_vm._s(_vm.staticHeadline || _vm.headline))]},proxy:true},{key:\"default\",fn:function(){return [_vm._t(\"default\")]},proxy:true}],null,true)},'ad-collapse-on-mobile',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-collapse-on-mobile :show-collapsed=\"showCollapsed\" v-bind=\"$attrs\">\n <template #header>{{ staticHeadline || headline }}</template>\n <template #default><slot name=\"default\"></slot></template>\n </ad-collapse-on-mobile>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { HeadlineBlock } from '@/src/types/vue-api';\nimport { isHeadlineBlock } from '@src/types/type-guards';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdCollapseOnMobileGroup extends Vue {\n @Prop() staticHeadline: string | undefined;\n @Prop({ type: Boolean, default: false }) showCollapsed!: boolean;\n headline: string | null = null;\n items: HeadlineBlock[] = [];\n\n mounted() {\n if (!this.staticHeadline) {\n this.items = this.findChildrenWithHeadlines(this.$children);\n this.propagateFirstHeadline();\n }\n }\n\n propagateFirstHeadline() {\n const first = this.items.find((b) => b.isVisible);\n if (first && first.blockHeadline) {\n this.headline = first.blockHeadline;\n first.setHeadlineVisibility(false);\n }\n }\n\n findChildrenWithHeadlines(blockChildren: Vue[]): HeadlineBlock[] {\n let items: HeadlineBlock[] = [];\n for (let index = 0; index < blockChildren.length; index++) {\n const block = blockChildren[index];\n if (isHeadlineBlock(block)) {\n items.push(block);\n } else if (block.$children.length != 0) {\n const subItems = this.findChildrenWithHeadlines(block.$children);\n if (subItems.length != 0) items = items.concat(subItems);\n }\n }\n return items;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=76acf58b\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"px-3 px-md-4 pb-5 cookie-consent\"},[_c('b-row',[_c('b-col',[_c('h3',{staticClass:\"mb-2\"},[_vm._t(\"cookie-consent-header\")],2)])],1),_c('b-row',[_c('b-col',[_vm._t(\"cookie-consent\")],2)],1),_c('b-row',{staticClass:\"d-lg-none d-md-block mt-4\"},[_c('b-col',[_c('b-button',{attrs:{\"block\":\"\",\"variant\":\"secondary\",\"disabled\":!_vm.isAcceptButtonsEnabled},on:{\"click\":_vm.acceptAll}},[_vm._t(\"cookie-consent-acceptall\")],2)],1)],1),_c('b-row',{staticClass:\"flex-sm-row bg-light my-5 mb-lg-3 mt-lg-0 mx-0 rounded\"},[_c('b-col',{staticClass:\"pb-lg-3 pt-3\",attrs:{\"lg\":\"\"}},[_c('b-form-checkbox',{attrs:{\"switch\":\"\",\"size\":\"lg\"},on:{\"change\":_vm.onTechnicalChange},model:{value:(_vm.technical),callback:function ($$v) {_vm.technical=$$v},expression:\"technical\"}},[_vm._t(\"cookie-technical\")],2)],1),_c('b-col',{staticClass:\"pb-lg-3 pt-3\",attrs:{\"lg\":\"\"}},[_c('b-form-checkbox',{attrs:{\"name\":\"cookie-marketing\",\"switch\":\"\",\"size\":\"lg\"},model:{value:(_vm.marketing),callback:function ($$v) {_vm.marketing=$$v},expression:\"marketing\"}},[_vm._t(\"cookie-marketing\")],2)],1),_c('b-col',{class:['pb-lg-3', { 'py-3': _vm.canHideThirdPartyMedia, 'pt-3': !_vm.canHideThirdPartyMedia }],attrs:{\"lg\":\"\"}},[_c('b-form-checkbox',{attrs:{\"name\":\"cookie-comfort\",\"switch\":\"\",\"size\":\"lg\"},model:{value:(_vm.comfort),callback:function ($$v) {_vm.comfort=$$v},expression:\"comfort\"}},[_vm._t(\"cookie-comfort\")],2)],1),(!_vm.canHideThirdPartyMedia)?_c('b-col',{staticClass:\"py-3\",attrs:{\"lg\":\"\"}},[_c('b-form-checkbox',{attrs:{\"name\":\"cookie-third\",\"switch\":\"\",\"size\":\"lg\"},model:{value:(_vm.thirdPartyMedia),callback:function ($$v) {_vm.thirdPartyMedia=$$v},expression:\"thirdPartyMedia\"}},[_vm._t(\"cookie-third\")],2)],1):_vm._e()],1),_c('b-row',{staticClass:\"mt-lg-5\"},[(_vm.canReject)?_c('b-col',{staticClass:\"pb-3\",attrs:{\"lg\":\"4\"}},[_c('b-button',{attrs:{\"block\":\"\",\"text-wrap\":\"\",\"variant\":\"light\"},on:{\"click\":_vm.reject}},[_vm._t(\"cookie-consent-reject\")],2)],1):_vm._e(),_c('b-col',{staticClass:\"pb-3\",attrs:{\"lg\":\"4\"}},[_c('b-button',{attrs:{\"block\":\"\",\"text-wrap\":\"\",\"variant\":\"light\",\"disabled\":!_vm.isAcceptButtonsEnabled},on:{\"click\":_vm.accept}},[_vm._t(\"cookie-consent-acceptselected\")],2)],1),_c('b-col',{staticClass:\"d-none d-lg-block\",attrs:{\"lg\":\"4\"}},[_c('b-button',{attrs:{\"block\":\"\",\"text-wrap\":\"\",\"variant\":\"secondary\",\"disabled\":!_vm.isAcceptButtonsEnabled},on:{\"click\":_vm.acceptAll}},[_vm._t(\"cookie-consent-acceptall\")],2)],1)],1),_c('b-row',[_c('b-col',{staticClass:\"mt-lg-3\"},[_c('b-form-checkbox',{attrs:{\"disabled\":!_vm.comfort,\"size\":\"lg\"},model:{value:(_vm.remember),callback:function ($$v) {_vm.remember=$$v},expression:\"remember\"}},[_vm._t(\"cookie-remember-selection\")],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-container class=\"px-3 px-md-4 pb-5 cookie-consent\">\n <b-row>\n <b-col>\n <h3 class=\"mb-2\"><slot name=\"cookie-consent-header\"></slot></h3>\n </b-col>\n </b-row>\n <b-row>\n <b-col><slot name=\"cookie-consent\"></slot></b-col>\n </b-row>\n <b-row class=\"d-lg-none d-md-block mt-4\">\n <b-col>\n <b-button block variant=\"secondary\" @click=\"acceptAll\" :disabled=\"!isAcceptButtonsEnabled\"\n ><slot name=\"cookie-consent-acceptall\"></slot\n ></b-button>\n </b-col>\n </b-row>\n <b-row class=\"flex-sm-row bg-light my-5 mb-lg-3 mt-lg-0 mx-0 rounded\">\n <b-col lg class=\"pb-lg-3 pt-3\">\n <b-form-checkbox v-model=\"technical\" switch size=\"lg\" @change=\"onTechnicalChange\">\n <slot name=\"cookie-technical\"></slot>\n </b-form-checkbox>\n </b-col>\n <b-col lg class=\"pb-lg-3 pt-3\">\n <b-form-checkbox v-model=\"marketing\" name=\"cookie-marketing\" switch size=\"lg\">\n <slot name=\"cookie-marketing\"></slot>\n </b-form-checkbox>\n </b-col>\n <b-col lg :class=\"['pb-lg-3', { 'py-3': canHideThirdPartyMedia, 'pt-3': !canHideThirdPartyMedia }]\">\n <b-form-checkbox v-model=\"comfort\" name=\"cookie-comfort\" switch size=\"lg\">\n <slot name=\"cookie-comfort\"></slot>\n </b-form-checkbox>\n </b-col>\n <b-col lg class=\"py-3\" v-if=\"!canHideThirdPartyMedia\">\n <b-form-checkbox v-model=\"thirdPartyMedia\" name=\"cookie-third\" switch size=\"lg\">\n <slot name=\"cookie-third\"></slot>\n </b-form-checkbox>\n </b-col>\n </b-row>\n <b-row class=\"mt-lg-5\">\n <b-col lg=\"4\" class=\"pb-3\" v-if=\"canReject\">\n <b-button block text-wrap variant=\"light\" @click=\"reject\">\n <slot name=\"cookie-consent-reject\"></slot>\n </b-button>\n </b-col>\n <b-col lg=\"4\" class=\"pb-3\">\n <b-button block text-wrap variant=\"light\" @click=\"accept\" :disabled=\"!isAcceptButtonsEnabled\">\n <slot name=\"cookie-consent-acceptselected\"></slot>\n </b-button>\n </b-col>\n <b-col lg=\"4\" class=\"d-none d-lg-block\">\n <b-button block text-wrap variant=\"secondary\" @click=\"acceptAll\" :disabled=\"!isAcceptButtonsEnabled\">\n <slot name=\"cookie-consent-acceptall\"></slot>\n </b-button>\n </b-col>\n </b-row>\n <b-row>\n <b-col class=\"mt-lg-3\">\n <b-form-checkbox v-model=\"remember\" :disabled=\"!comfort\" size=\"lg\">\n <slot name=\"cookie-remember-selection\"></slot>\n </b-form-checkbox>\n </b-col>\n </b-row>\n </b-container>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue, Watch, Emit } from 'vue-property-decorator';\nimport CookieManager, { CookieSettings } from '@/src/utils/cookie';\n\n@Component\nexport default class AdCookieCConsent extends Vue {\n private cookieManager!: CookieManager;\n private technical = true;\n private marketing = false;\n private comfort = false;\n private thirdPartyMedia = false;\n private remember = false;\n\n @Prop()\n cookieconsentversion: string | undefined;\n\n @Prop({ type: Boolean, default: false })\n canReject;\n\n @Prop({ type: Boolean, default: false })\n canHideThirdPartyMedia;\n\n @Watch('comfort')\n onComfortChanged(): void {\n if (!this.comfort) this.remember = false;\n }\n\n @Prop({ type: Boolean, default: true })\n isAcceptButtonsEnabled;\n\n private async onTechnicalChange() {\n await this.$nextTick();\n this.technical = true;\n }\n\n private created(): void {\n this.cookieManager = new CookieManager(this.$cookies);\n this.marketing = this.cookieManager.marketing;\n this.comfort = this.cookieManager.comfort;\n this.thirdPartyMedia = this.cookieManager.thirdPartyMedia;\n }\n\n private mounted(): void {\n this.applyCanHideThirdPartyMedia();\n }\n private applyCanHideThirdPartyMedia() {\n this.thirdPartyMedia &&= !this.canHideThirdPartyMedia;\n }\n\n private acceptAll(): void {\n this.marketing = this.comfort = this.thirdPartyMedia = this.remember = true;\n this.applyCanHideThirdPartyMedia();\n this.accept();\n }\n\n private accept(): void {\n const cookieVersion = this.cookieconsentversion;\n this.cookieManager.saveSettings(\n new CookieSettings(cookieVersion || '', this.technical, this.marketing, this.comfort, this.thirdPartyMedia),\n this.remember\n );\n this.consent(true);\n }\n\n private reject(): void {\n this.consent(false);\n }\n\n @Emit()\n consent(state: boolean): boolean {\n return state;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=384340d5\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('div',[_c('b-row',[_c('b-col',[_c('h3',{staticClass:\"mb-2\"},[_vm._t(\"disclaimer-header\")],2)])],1),_c('b-row',[_c('b-col',[_c('b-alert',{staticClass:\"alert-disclaimer pr-3 px-md-2 mb-0\",class:{ full: _vm.disclaimerExpanded },attrs:{\"variant\":\"secondary\",\"show\":\"\"}},[_c('div',{staticClass:\"inner pr-0 pr-md-3\"},[_vm._t(\"risk-disclaimer\"),_vm._t(\"disclaimer-text\"),_c('div',{staticClass:\"readall\",on:{\"click\":_vm.expandDisclaimer}},[_vm._t(\"disclaimer-text-readall\"),_c('br'),_c('ad-icon-chevron',{attrs:{\"size\":\"s\",\"direction\":\"down\"}})],2)],2)])],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"isVisible\">\n <b-row>\n <b-col\n ><h3 class=\"mb-2\"><slot name=\"disclaimer-header\"></slot></h3\n ></b-col>\n </b-row>\n <b-row>\n <b-col>\n <b-alert\n variant=\"secondary\"\n class=\"alert-disclaimer pr-3 px-md-2 mb-0\"\n show\n v-bind:class=\"{ full: disclaimerExpanded }\"\n >\n <div class=\"inner pr-0 pr-md-3\">\n <slot name=\"risk-disclaimer\"></slot>\n <slot name=\"disclaimer-text\"></slot>\n <div class=\"readall\" @click=\"expandDisclaimer\">\n <slot name=\"disclaimer-text-readall\"></slot><br />\n <ad-icon-chevron size=\"s\" direction=\"down\" />\n </div>\n </div>\n </b-alert>\n </b-col>\n </b-row>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class AdDisclaimerItem extends Vue {\n @Prop({ required: true })\n websiteKey!: string;\n\n @Prop({ required: true })\n currentWebsite!: string;\n\n private disclaimerExpanded = false;\n expandDisclaimer(): void {\n this.disclaimerExpanded = true;\n }\n\n get isVisible(): boolean | null {\n return this.websiteKey === this.currentWebsite;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5cd60660\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-col',_vm._b({},'b-col',_vm.$attrs,false),_vm._l((_vm.files),function(file,index){return _c('b-row',{key:index,staticClass:\"mb-2\"},[_c('b-col',[(_vm.isDownloadGroup(file))?_c('ce-grouped-download-button',{key:index,attrs:{\"downloadGroups\":file.files,\"loadMoreCount\":_vm.settingsProperty.loadMoreCount,\"download-click\":_vm.downloadClick},on:{\"downloadError\":_vm.propagateError},scopedSlots:_vm._u([{key:\"summary-and-supplements\",fn:function(){return [_vm._v(_vm._s(file.childListName))]},proxy:true},{key:\"hide-older\",fn:function(){return [_vm._v(_vm._s(_vm.settingsProperty.downloadBlockTranslations.listHide))]},proxy:true},{key:\"show-older\",fn:function(){return [_vm._v(_vm._s(_vm.settingsProperty.downloadBlockTranslations.listShow))]},proxy:true}],null,true)}):(_vm.isDownload(file))?_c('ce-download',{key:index,attrs:{\"url\":file.link,\"download-click\":() => _vm.downloadClick(file.link, file.title, file.fileFormat)},on:{\"downloadError\":_vm.propagateError},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(file.title))]},proxy:true},{key:\"fileFormat\",fn:function(){return [_vm._v(_vm._s(_vm.getDownloadFileFormat(file)))]},proxy:true},(file.previewImageLink)?{key:\"image\",fn:function(){return [_c('picture',[_c('img',{staticClass:\"aspect-ratio-filler\",attrs:{\"src\":file.previewImageLink}})])]},proxy:true}:null],null,true)}):(_vm.isSingleDownload(file))?_c('ce-download',{key:index,attrs:{\"url\":file.files[0].link,\"download-click\":() => _vm.downloadClick(file.files[0].link, file.files[0].title, file.files[0].format)},on:{\"downloadError\":_vm.propagateError},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(file.files[0].title))]},proxy:true},{key:\"fileFormat\",fn:function(){return [_vm._v(_vm._s(_vm.getDownloadGroupFileFormat(file)))]},proxy:true}],null,true)}):(_vm.isDownloadLink(file))?_c('b-button',{key:index,staticClass:\"p-3 ce-download\",attrs:{\"href\":file.link,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.downloadClick(file.link, file.title)}}},[_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('ad-icon-link-four-five')],1),_c('b-col',{staticClass:\"text-left\",attrs:{\"cols\":\"10\"}},[_vm._v(_vm._s(file.title))])],1)],1):_vm._e()],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-col v-bind=\"$attrs\">\n <b-row v-for=\"(file, index) in files\" :key=\"index\" class=\"mb-2\">\n <b-col>\n <ce-grouped-download-button\n v-if=\"isDownloadGroup(file)\"\n :key=\"index\"\n :downloadGroups=\"file.files\"\n :loadMoreCount=\"settingsProperty.loadMoreCount\"\n @downloadError=\"propagateError\"\n :download-click=\"downloadClick\"\n >\n <template #summary-and-supplements>{{ file.childListName }}</template>\n <template #hide-older>{{ settingsProperty.downloadBlockTranslations.listHide }}</template>\n <template #show-older>{{ settingsProperty.downloadBlockTranslations.listShow }}</template>\n </ce-grouped-download-button>\n <ce-download\n v-else-if=\"isDownload(file)\"\n :url=\"file.link\"\n :key=\"index\"\n @downloadError=\"propagateError\"\n :download-click=\"() => downloadClick(file.link, file.title, file.fileFormat)\"\n >\n <template #text>{{ file.title }}</template>\n <template #fileFormat>{{ getDownloadFileFormat(file) }}</template>\n <template #image v-if=\"file.previewImageLink\">\n <picture>\n <img class=\"aspect-ratio-filler\" :src=\"file.previewImageLink\" />\n </picture>\n </template>\n </ce-download>\n <ce-download\n v-else-if=\"isSingleDownload(file)\"\n :url=\"file.files[0].link\"\n :key=\"index\"\n @downloadError=\"propagateError\"\n :download-click=\"() => downloadClick(file.files[0].link, file.files[0].title, file.files[0].format)\"\n >\n <template #text>{{ file.files[0].title }}</template>\n <template #fileFormat>{{ getDownloadGroupFileFormat(file) }}</template>\n </ce-download>\n <b-button\n v-else-if=\"isDownloadLink(file)\"\n class=\"p-3 ce-download\"\n :href=\"file.link\"\n variant=\"light\"\n :key=\"index\"\n @click=\"downloadClick(file.link, file.title)\"\n >\n <b-row class=\"no-gutters\">\n <b-col cols=\"2\"><ad-icon-link-four-five /></b-col>\n <b-col cols=\"10\" class=\"text-left\">{{ file.title }}</b-col>\n </b-row>\n </b-button>\n </b-col>\n </b-row>\n </b-col>\n</template>\n<script lang=\"ts\">\nimport { DownloadLink, Download, DownloadsBlockPayloadSettings } from '@/src/types/episerver-api';\nimport { DownloadGroupItem } from '@/src/types/vue-api';\nimport {\n downloadClick,\n isDownloadLink,\n isDownload,\n isDownloadGroup,\n isSingleDownload,\n getDownloadFileFormat,\n} from '@/src/utils/document-service';\nimport { Vue, Component, Prop, Inject } from 'vue-property-decorator';\n\n@Component\nexport default class AdDownloadsItems extends Vue {\n @Prop({ required: true }) files!: (DownloadLink | Download | DownloadGroupItem)[];\n @Inject() settingsProperty!: DownloadsBlockPayloadSettings;\n\n propagateError(statusCode: number): void {\n this.$emit('downloadError', statusCode);\n }\n\n isDownload(document: DownloadLink | Download | DownloadGroupItem): document is Download {\n return isDownload(document);\n }\n\n getDownloadFileFormat(file: Download) {\n return getDownloadFileFormat(file);\n }\n\n isDownloadLink(document: DownloadLink | Download | DownloadGroupItem): document is DownloadLink {\n return isDownloadLink(document);\n }\n\n isDownloadGroup(document: DownloadLink | Download | DownloadGroupItem): document is DownloadGroupItem {\n return isDownloadGroup(document);\n }\n\n isSingleDownload(document: DownloadLink | Download | DownloadGroupItem): document is DownloadGroupItem {\n return isSingleDownload(document);\n }\n\n getDownloadGroupFileFormat(file: DownloadGroupItem): string | undefined {\n return file.files.length !== 0 ? file.files[0].format?.toUpperCase() : undefined;\n }\n\n downloadClick(url: string, title: string, format?: string | null | undefined): void {\n downloadClick(url, title, format);\n }\n}\n</script>\n<style lang=\"scss\">\n.ad-download-column {\n width: rem(410);\n max-width: 100%;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-downloads-items.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-downloads-items.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-downloads-items.vue?vue&type=template&id=9b5bcadc\"\nimport script from \"./ad-downloads-items.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-downloads-items.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-downloads-items.vue?vue&type=style&index=0&id=9b5bcadc&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-col',_vm._b({staticClass:\"ad-downloads-list\"},'b-col',_vm.$attrs,false),[(_vm.flattenedFiles.length > 0)?_c('div',_vm._l((_vm.flattenedFiles),function({ depth, file },index){return _c('b-row',{key:index,class:['depth-' + depth]},[_c('b-col',[_c('div',{staticClass:\"wrapper\",class:{ 'pl-3': depth == 2, 'pl-6': depth == 3, 'pl-9': depth == 4 }},[(_vm.isDownload(file))?_c('ce-download',{key:index,staticClass:\"mb-0\",attrs:{\"url\":file.link,\"download-click\":() => _vm.downloadClick(file.link, file.title, file.fileFormat),\"is-full-width\":\"\",\"is-icon-at-right\":\"\",\"hide-file-format\":\"\"},on:{\"downloadError\":_vm.propagateError},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(file.title))]},proxy:true},(file.previewImageLink)?{key:\"image\",fn:function(){return [_c('picture',[_c('img',{staticClass:\"aspect-ratio-filler\",attrs:{\"src\":file.previewImageLink}})])]},proxy:true}:null],null,true)}):(_vm.isGroupedDownloadGroup(file))?_c('ce-download',{key:index,staticClass:\"mb-0\",attrs:{\"url\":file.link,\"download-click\":() => _vm.downloadClick(file.link, file.title, file.format),\"is-full-width\":\"\",\"is-icon-at-right\":\"\",\"hide-file-format\":\"\"},on:{\"downloadError\":_vm.propagateError},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(file.title))]},proxy:true}],null,true)}):(_vm.isDownloadLink(file))?_c('b-button',{key:index,staticClass:\"p-3 ce-download mb-0 full-width\",attrs:{\"href\":file.link,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.downloadClick(file.link, file.title)}}},[_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"text-left\",attrs:{\"cols\":\"10\"}},[_vm._v(_vm._s(file.title))]),_c('b-col',{attrs:{\"cols\":\"2\"}},[_c('ad-icon-link-four-five')],1)],1)],1):_vm._e()],1)])],1)}),1):_c('div',[_vm._t(\"no-data-found\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-col v-bind=\"$attrs\" class=\"ad-downloads-list\">\n <div v-if=\"flattenedFiles.length > 0\">\n <b-row v-for=\"({ depth, file }, index) in flattenedFiles\" :key=\"index\" :class=\"['depth-' + depth]\">\n <b-col>\n <div class=\"wrapper\" :class=\"{ 'pl-3': depth == 2, 'pl-6': depth == 3, 'pl-9': depth == 4 }\">\n <ce-download\n v-if=\"isDownload(file)\"\n :url=\"file.link\"\n :key=\"index\"\n @downloadError=\"propagateError\"\n :download-click=\"() => downloadClick(file.link, file.title, file.fileFormat)\"\n class=\"mb-0\"\n is-full-width\n is-icon-at-right\n hide-file-format\n >\n <template #text>{{ file.title }}</template>\n <template #image v-if=\"file.previewImageLink\">\n <picture>\n <img class=\"aspect-ratio-filler\" :src=\"file.previewImageLink\" />\n </picture>\n </template>\n </ce-download>\n <ce-download\n v-else-if=\"isGroupedDownloadGroup(file)\"\n :url=\"file.link\"\n :key=\"index\"\n @downloadError=\"propagateError\"\n :download-click=\"() => downloadClick(file.link, file.title, file.format)\"\n class=\"mb-0\"\n is-full-width\n is-icon-at-right\n hide-file-format\n >\n <template #text>{{ file.title }}</template>\n </ce-download>\n <b-button\n v-else-if=\"isDownloadLink(file)\"\n class=\"p-3 ce-download mb-0 full-width\"\n :href=\"file.link\"\n variant=\"light\"\n :key=\"index\"\n @click=\"downloadClick(file.link, file.title)\"\n >\n <b-row class=\"no-gutters\">\n <b-col cols=\"10\" class=\"text-left\">{{ file.title }}</b-col>\n <b-col cols=\"2\"><ad-icon-link-four-five /></b-col>\n </b-row>\n </b-button>\n </div>\n </b-col>\n </b-row>\n </div>\n <div v-else><slot name=\"no-data-found\" /> </div>\n </b-col>\n</template>\n<script lang=\"ts\">\nimport { DownloadLink, Download, DownloadsBlockPayloadSettings } from '@/src/types/episerver-api';\nimport { DownloadGroupItem, LayeredDownloadItem, GroupedDownloadGroupItem } from '@/src/types/vue-api';\nimport { Vue, Component, Prop, Inject, Watch } from 'vue-property-decorator';\nimport {\n flattenToLayeredDownloadItem,\n isGroupedDownloadGroup,\n isDownloadGroup,\n isDownloadLink,\n isDownload,\n downloadClick,\n} from '@src/utils/document-service';\nimport { GroupedDownloadGroup } from '@/src/types/ce-component-types';\n@Component\nexport default class AdDownloadsList extends Vue {\n @Prop({ required: true }) files!: (DownloadLink | Download | DownloadGroupItem)[];\n @Inject() settingsProperty!: DownloadsBlockPayloadSettings;\n\n flattenedFiles: LayeredDownloadItem[] = [];\n\n created() {\n this.prepareFiles();\n }\n\n @Watch('files')\n prepareFiles() {\n this.flattenedFiles = flattenToLayeredDownloadItem(this.sortedFiles);\n }\n\n get sortedFiles(): (DownloadLink | Download | DownloadGroupItem)[] {\n this.files\n .filter((f) => isDownloadGroup(f))\n .forEach((g) => {\n let group = g as DownloadGroupItem;\n group.files = this.SortRecursive(group.files as GroupedDownloadGroupItem[], true) as GroupedDownloadGroup[]; //first level newest documents first\n });\n return this.files;\n }\n\n SortRecursive(\n groups: GroupedDownloadGroupItem[] | undefined,\n isNewestFirst: boolean\n ): GroupedDownloadGroupItem[] | undefined {\n // Sort desc by date at first level\n // Sort asc by rank then asc by date\n if (!groups) {\n return groups;\n }\n\n const sorted = groups.sort((a, b) => {\n if (a.rank < b.rank) {\n return 1;\n }\n\n if (a.rank > b.rank) {\n return -1;\n }\n\n return isNewestFirst === a.date < b.date ? 1 : -1;\n });\n\n //from second level, newest documents at last\n sorted.forEach((g) => (g.childDownloads = this.SortRecursive(g.childDownloads, false)));\n\n return sorted;\n }\n\n isDownload(document: DownloadLink | Download | DownloadGroupItem): document is Download {\n return isDownload(document);\n }\n\n isDownloadGroup(document: DownloadLink | Download | DownloadGroupItem): document is DownloadGroupItem {\n return isDownloadGroup(document);\n }\n isGroupedDownloadGroup(document: DownloadGroupItem | GroupedDownloadGroupItem): document is GroupedDownloadGroupItem {\n return isGroupedDownloadGroup(document);\n }\n\n isDownloadLink(document: DownloadLink | Download | DownloadGroupItem): document is DownloadLink {\n return isDownloadLink(document);\n }\n\n downloadClick(url: string, title: string, format?: string | null | undefined): void {\n downloadClick(url, title, format);\n }\n\n getDownloadFileFormat(file: Download): string | undefined {\n return this.getDownloadFileFormat(file);\n }\n\n propagateError(statusCode: number): void {\n this.$emit('downloadError', statusCode);\n }\n}\n</script>\n<style lang=\"scss\">\n.ad-downloads-list {\n color: $gunmetal;\n .wrapper {\n display: flex;\n flex-wrap: wrap;\n background-color: $white;\n }\n /* stylelint-disable selector-max-compound-selectors */\n .row:nth-child(even) {\n .ce-download {\n &__text {\n color: $gunmetal;\n }\n }\n a,\n a:hover {\n background-color: $white;\n color: $gunmetal;\n }\n a:hover .ce-download {\n &__text {\n background-color: $white;\n color: $gunmetal;\n }\n &__icon,\n .ade-icon {\n color: $cool-grey;\n }\n }\n }\n\n .row:nth-child(odd) {\n .ce-download {\n &__text {\n color: $gunmetal;\n }\n }\n a,\n a:hover,\n .wrapper {\n background-color: $silver;\n color: $gunmetal;\n }\n\n a:hover .ce-download {\n &__text {\n background-color: $silver;\n color: $gunmetal;\n }\n &__icon,\n .ade-icon {\n color: $cool-grey;\n }\n }\n }\n /* stylelint-enable selector-max-compound-selectors */\n\n .ce-download {\n border: 0;\n }\n .depth-1 .ce-download {\n &__text {\n font-weight: bold;\n }\n }\n .row {\n &.depth-2,\n &.depth-3,\n &.depth-4 {\n a::before {\n display: inline-block;\n position: absolute;\n top: 1em;\n margin-left: -1em;\n width: 1em;\n color: $gunmetal;\n content: '\\2022';\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-downloads-list.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-downloads-list.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-downloads-list.vue?vue&type=template&id=f0fabf3c\"\nimport script from \"./ad-downloads-list.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-downloads-list.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-downloads-list.vue?vue&type=style&index=0&id=f0fabf3c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[(_vm.isGroupSelected && !_vm.hasListLayout)?_c('b-row',_vm._l((_vm.columnIndexes),function(index){return _c('ad-downloads-items',{key:index,attrs:{\"files\":_vm.columnFiles(index),\"cols\":12 / _vm.columnsCount}})}),1):_vm._e(),(_vm.isGroupSelected && _vm.hasListLayout)?_c('b-row',{staticClass:\"mt-2\"},_vm._l((_vm.columnIndexes),function(index){return _c('ad-downloads-list',{key:index,attrs:{\"files\":_vm.columnFiles(index),\"cols\":12 / _vm.columnsCount},scopedSlots:_vm._u([{key:\"no-data-found\",fn:function(){return [_vm._t(\"no-data-found\")]},proxy:true}],null,true)})}),1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <b-row v-if=\"isGroupSelected && !hasListLayout\">\n <ad-downloads-items\n v-for=\"index in columnIndexes\"\n :files=\"columnFiles(index)\"\n :key=\"index\"\n :cols=\"12 / columnsCount\"\n />\n </b-row>\n <b-row v-if=\"isGroupSelected && hasListLayout\" class=\"mt-2\">\n <ad-downloads-list\n v-for=\"index in columnIndexes\"\n :files=\"columnFiles(index)\"\n :key=\"index\"\n :cols=\"12 / columnsCount\"\n >\n <template #no-data-found><slot name=\"no-data-found\" /></template>\n </ad-downloads-list>\n </b-row>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport { Vue, Component, Inject, Prop, InjectReactive, Watch } from 'vue-property-decorator';\nimport { DownloadsBlockPayloadSettings, CommonFormatsFieldKeys } from '@/src/types/episerver-api';\nimport { getProductDocuments, getFolderDocuments } from '@/src/utils/document-service';\nimport { DownloadGroupItem, DocumentServiceConfiguration } from '@/src/types/vue-api';\nimport AdDownloadsItems from './ad-downloads-items.vue';\nimport AdDownloadsList from './ad-downloads-list.vue';\nimport { DefaultFormat, DocumentType, HttpStatusCodes } from '@/src/types/enumerations';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { range } from 'lodash';\n\n@Component({\n components: {\n AdDownloadsItems,\n AdDownloadsList,\n },\n})\nexport default class AdDownloads extends Vue {\n @Prop({ default: 1 }) cols!: number;\n @Prop({ default: null }) md!: number | null;\n @Prop({ default: null }) xl!: number | null;\n @Prop({ type: Boolean, default: false }) hasListLayout!: boolean | null;\n @Inject() settingsProperty!: DownloadsBlockPayloadSettings;\n @Inject({ default: null }) commonFormatsKeys!: CommonFormatsFieldKeys | null;\n @InjectReactive() product!: ProductModel | null;\n @Prop({ default: () => {} })\n filterState!: { [key: string]: string | number | null } | null;\n @Prop({ default: 'year' })\n yearFilterName!: string | null;\n @Prop({ default: 'group' })\n groupFilterName!: string | null;\n @Prop({ default: null })\n group!: string | null;\n\n apiDocuments: DownloadGroupItem[] | null = null;\n filteredApiDocuments: DownloadGroupItem[] | null = null;\n statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n\n @Watch('filterState', { immediate: true, deep: true })\n filterApiDocuments() {\n if (!this.isGroupSelected) {\n //no action, invisible anyway\n return;\n }\n\n if (!this.filterState || !this.yearFilterName || !this.filterState[this.yearFilterName!]) {\n this.filteredApiDocuments = this.apiDocuments;\n return;\n }\n\n this.filteredApiDocuments =\n this.apiDocuments\n ?.map((_) => {\n return {\n type: _.type,\n childListName: _.childListName,\n files: _.files.filter((f) => f.year == this.filterState![this.yearFilterName!]),\n } as DownloadGroupItem;\n })\n .filter((_) => _.files.length > 0) || [];\n }\n\n get isGroupSelected() {\n return (\n !this.group ||\n !this.filterState ||\n !this.groupFilterName ||\n !this.filterState[this.groupFilterName] ||\n this.filterState[this.groupFilterName] == this.group\n );\n }\n\n async created(): Promise<void> {\n // initially fetch documents (required especially for folder documents, e.g. on legal documents page)\n await this.fetchDocuments();\n }\n\n @Watch('product') // product is watched (i.e., fetch documents if product is changed)\n async fetchDocuments() {\n try {\n await this.requestApiDocuments();\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n } else {\n this.statusCode = HttpStatusCodes.UnknownError;\n }\n }\n }\n\n private async requestApiDocuments() {\n const config = new DocumentServiceConfiguration(DefaultFormat.DocumentDate);\n const requests: Promise<DownloadGroupItem[]>[] = [];\n if (this.product?.isin && this.settingsProperty.types.length > 0) {\n requests.push(getProductDocuments(this.product?.isin, this.settingsProperty.types, config));\n }\n if (this.settingsProperty.parentFolderIds.length > 0) {\n requests.push(\n getFolderDocuments(\n this.settingsProperty.parentFolderIds,\n this.settingsProperty.types,\n this.settingsProperty.linkedDocumentFolderIds,\n config\n )\n );\n }\n if (requests.length == 0) return;\n\n this.apiDocuments = (await Promise.all(requests)).flatMap((group) => group);\n this.filterApiDocuments();\n this.$forceUpdate();\n }\n\n get columnsCount(): number {\n if (this.$screen.xl) return this.xl || this.md || this.cols;\n if (this.$screen.md) return this.md || this.cols;\n return this.cols;\n }\n\n get columnIndexes(): number[] {\n return range(1, this.columnsCount + 1);\n }\n\n private get baseProspectus() {\n return (\n this.filteredApiDocuments?.filter(\n (d) => d.type === DocumentType.BaseProspectus || d.type === DocumentType.SecuritiesNote\n ) || []\n );\n }\n\n private get otherDownloads() {\n return [\n ...(this.filteredApiDocuments?.filter(\n (d) => d.type !== DocumentType.BaseProspectus && d.type !== DocumentType.SecuritiesNote\n ) || []),\n ...this.settingsProperty.files,\n ...this.settingsProperty.links,\n ];\n }\n\n private get downloadsPerColumn() {\n let otherColumnsCount = this.columnsCount;\n if (this.baseProspectus.length !== 0) otherColumnsCount--;\n return Math.ceil(this.otherDownloads.length / otherColumnsCount);\n }\n\n columnFiles(index: number) {\n if (this.columnsCount === 1) {\n return [...(this.filteredApiDocuments || []), ...this.settingsProperty.files, ...this.settingsProperty.links];\n }\n\n if (this.baseProspectus.length !== 0) {\n if (index == 1) return this.baseProspectus;\n else index--;\n }\n\n const from = this.downloadsPerColumn * (index - 1);\n const to = this.downloadsPerColumn * index;\n return this.otherDownloads.slice(from, to);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=641ed7ba\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ce-chapter-select',{staticClass:\"mt-6 mt-lg-8\",attrs:{\"chapters\":_vm.chapters,\"activeChapter\":_vm.activeChapter},scopedSlots:_vm._u([{key:\"heading\",fn:function(){return [_vm._t(\"headline\")]},proxy:true},{key:\"you-are-here\",fn:function(){return [_vm._t(\"you-are-here\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ce-chapter-select :chapters=\"chapters\" :activeChapter=\"activeChapter\" class=\"mt-6 mt-lg-8\">\n <template #heading><slot name=\"headline\"></slot></template>\n <template #you-are-here><slot name=\"you-are-here\"></slot></template>\n </ce-chapter-select>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { EducationContentTreeBlockSettings } from '@/src/types/episerver-api';\nimport { ChapterNavigationChapter } from '@/src/types/ce-component-types';\n\n@Component\nexport default class AdEducationContentTree extends Vue {\n @Inject() settingsProperty!: EducationContentTreeBlockSettings;\n\n get chapters(): ChapterNavigationChapter[] {\n return this.settingsProperty.chapters.map(\n (chapter) =>\n ({\n identifier: chapter.contentId.toString(),\n title: chapter.name ?? chapter.navigationName,\n url: chapter.url,\n }) as ChapterNavigationChapter\n );\n }\n get activeChapter(): ChapterNavigationChapter | null {\n if (this.settingsProperty.activeChapter == null) return null;\n\n const activeChapter = this.settingsProperty.activeChapter;\n\n return {\n identifier: activeChapter.contentId.toString(),\n title: activeChapter.name ?? activeChapter.navigationName,\n url: activeChapter.url,\n } as ChapterNavigationChapter;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4494357b\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'folder-group-filter-group' + _vm._uid,\"label-for\":'folder-group-filter-dropdownlist' + _vm._uid},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"label-text\")]},proxy:true}],null,true)},[_c('ad-drop-down-list',_vm._b({attrs:{\"input-id\":'folder-group-filter-dropdownlist' + _vm._uid,\"form-element-state-id\":'folder-group-filter-group' + _vm._uid,\"options\":_vm.items,\"value\":_vm.value},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-label\",function(){return [_vm._v(\"All\")]})]},proxy:true}],null,true),model:{value:(_vm.currentSelection),callback:function ($$v) {_vm.currentSelection=$$v},expression:\"currentSelection\"}},'ad-drop-down-list',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form-group\n :id=\"'folder-group-filter-group' + _uid\"\n :label-for=\"'folder-group-filter-dropdownlist' + _uid\"\n class=\"focus-white\"\n >\n <template #label>\n <slot name=\"label-text\" />\n </template>\n <ad-drop-down-list\n :input-id=\"'folder-group-filter-dropdownlist' + _uid\"\n :form-element-state-id=\"'folder-group-filter-group' + _uid\"\n :options=\"items\"\n v-model=\"currentSelection\"\n :value=\"value\"\n @input=\"setValue\"\n v-bind=\"$attrs\"\n >\n <template #all-items-label>\n <slot name=\"all-items-label\">All</slot>\n </template>\n </ad-drop-down-list>\n </b-form-group>\n</template>\n\n<script lang=\"ts\">\nimport { FolderDownloadsGroupNameFilterBlockPayloadSettings } from '@/src/types/episerver-api';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { convertOptions } from '@src/utils/dropdown-option-provider';\nimport { Vue, Component, Prop, Inject } from 'vue-property-decorator';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdFolderDownloadsGroupFilter extends Vue {\n @Inject()\n settingsProperty!: FolderDownloadsGroupNameFilterBlockPayloadSettings;\n @Prop()\n value!: string | null;\n currentSelection: string | null = '';\n\n mounted() {\n this.setDefaultSelection();\n }\n\n setDefaultSelection() {\n const hash = this.tryGetSelectionFromHash();\n if (hash && this.inGroups(hash)) {\n this.currentSelection = hash;\n this.removeHash();\n } else if (this.inGroups(this.settingsProperty.folderGroups.selectedValue)) {\n this.currentSelection = this.settingsProperty.folderGroups.selectedValue;\n }\n\n if (this.currentSelection) {\n this.setValue(this.currentSelection);\n }\n }\n\n inGroups(group: string | null): boolean {\n return this.settingsProperty.folderGroups.items.some((_) => _.value == group);\n }\n\n removeHash() {\n history.replaceState('', document.title, window.location.pathname);\n }\n\n get items(): DropDownItem[] {\n return convertOptions(this.settingsProperty.folderGroups.items, null);\n }\n\n private tryGetSelectionFromHash(): string | null | undefined {\n return location.hash.substring(1);\n }\n\n setValue(newValue) {\n this.$emit('input', newValue);\n this.$emit('set-filter', this.settingsProperty.name, newValue);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1a1132a3\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'year-filter-group' + _vm._uid,\"label-for\":'year-filter-dropdownlist' + _vm._uid},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"label-text\")]},proxy:true}],null,true)},[_c('ad-drop-down-list',_vm._b({attrs:{\"input-id\":'year-filter-dropdownlist' + _vm._uid,\"form-element-state-id\":'year-filter-group' + _vm._uid,\"options\":_vm.items,\"value\":_vm.value},on:{\"input\":_vm.setValue},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-label\",function(){return [_vm._v(\"All\")]})]},proxy:true}],null,true),model:{value:(_vm.currentSelection),callback:function ($$v) {_vm.currentSelection=$$v},expression:\"currentSelection\"}},'ad-drop-down-list',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form-group :id=\"'year-filter-group' + _uid\" :label-for=\"'year-filter-dropdownlist' + _uid\" class=\"focus-white\">\n <template #label>\n <slot name=\"label-text\" />\n </template>\n <ad-drop-down-list\n :input-id=\"'year-filter-dropdownlist' + _uid\"\n :form-element-state-id=\"'year-filter-group' + _uid\"\n :options=\"items\"\n :value=\"value\"\n v-model=\"currentSelection\"\n @input=\"setValue\"\n v-bind=\"$attrs\"\n >\n <template #all-items-label>\n <slot name=\"all-items-label\">All</slot>\n </template>\n </ad-drop-down-list>\n </b-form-group>\n</template>\n\n<script lang=\"ts\">\nimport { FolderDownloadsYearFilterBlockPayloadSettings } from '@/src/types/episerver-api';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { convertOptions } from '@src/utils/dropdown-option-provider';\nimport { Vue, Component, Prop, Inject } from 'vue-property-decorator';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdFolderDownloadsYearFilter extends Vue {\n @Inject()\n settingsProperty!: FolderDownloadsYearFilterBlockPayloadSettings;\n @Prop()\n value!: string | null;\n currentSelection: string | null = '';\n\n mounted() {\n this.currentSelection = this.settingsProperty.years.selectedValue;\n this.setValue(this.currentSelection);\n }\n\n get items(): DropDownItem[] {\n return convertOptions(this.settingsProperty.years.items, null);\n }\n\n setValue(newValue) {\n this.$emit('input', newValue);\n this.$emit('set-filter', this.settingsProperty.name, newValue);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f44f5192\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-col',_vm._b({},'b-col',_vm.$attrs,false),_vm._l((_vm.groups),function(group,index){return _c('div',{key:group.name},[_c('div',{class:['pt-3', 'pr-3', { hr: index !== 0 }]},[_c('h5',{staticClass:\"mb-0 fs-14 font-weight-bold\"},[_vm._v(_vm._s(group.name))]),_vm._l((group.data),function(item){return _c('div',{key:item.url},[_c('b-row',{staticClass:\"mt-1 mb-2\",attrs:{\"role\":\"button\"},on:{\"mouseenter\":function($event){return _vm.onMouseEnter(item.listIndex)},\"mouseleave\":_vm.onMouseLeave}},[_c('b-col',{class:['fs-18', 'cursor-pointer', _vm.currentIndex === item.listIndex ? 'peacock-blue' : 'gun-metal'],attrs:{\"cols\":item.detail ? 8 : 12}},[_vm._v(\" \"+_vm._s(item.name)+\" \")]),(item.detail)?_c('b-col',{staticClass:\"text-right\",attrs:{\"cols\":\"4\"}},[_vm._v(_vm._s(item.detail))]):_vm._e()],1)],1)})],2)])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-col v-bind=\"$attrs\">\n <div v-for=\"(group, index) in groups\" :key=\"group.name\">\n <div :class=\"['pt-3', 'pr-3', { hr: index !== 0 }]\">\n <h5 class=\"mb-0 fs-14 font-weight-bold\">{{ group.name }}</h5>\n <div v-for=\"item in group.data\" :key=\"item.url\">\n <b-row class=\"mt-1 mb-2\" @mouseenter=\"onMouseEnter(item.listIndex)\" @mouseleave=\"onMouseLeave\" role=\"button\">\n <b-col\n :cols=\"item.detail ? 8 : 12\"\n :class=\"['fs-18', 'cursor-pointer', currentIndex === item.listIndex ? 'peacock-blue' : 'gun-metal']\"\n >\n {{ item.name }}\n </b-col>\n <b-col v-if=\"item.detail\" cols=\"4\" class=\"text-right\">{{ item.detail }}</b-col>\n </b-row>\n </div>\n </div>\n </div>\n </b-col>\n</template>\n<script lang=\"ts\">\nimport { SearchSuggestionGroup } from '@/src/types/vue-api';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class AdSuggestDropdownColumn extends Vue {\n @Prop({ required: true, default: { data: [] } }) groups!: SearchSuggestionGroup[];\n @Prop({ required: true }) currentIndex!: number;\n\n onMouseEnter(index) {\n this.$emit('updateCurrentIndex', index);\n }\n onMouseLeave() {\n this.$emit('updateCurrentIndex', null);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-suggest-dropdown-column.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-suggest-dropdown-column.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-suggest-dropdown-column.vue?vue&type=template&id=68fb9092\"\nimport script from \"./ad-suggest-dropdown-column.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-suggest-dropdown-column.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.result)?_c('b-row',{staticClass:\"no-gutters hr\"},[(_vm.result.hasTheqItems)?_c('ad-suggest-dropdown-column',{attrs:{\"cols\":\"12\",\"md\":_vm.result.hasBothItemsGroups ? 6 : 12,\"currentIndex\":_vm.currentIndex,\"groups\":_vm.result.theqItems},on:{\"updateCurrentIndex\":_vm.updateCurrentIndex}}):_vm._e(),(_vm.result.hasEpiItems)?_c('ad-suggest-dropdown-column',{class:{ 'bl-md': _vm.result.hasTheqItems, 'pl-md-3': _vm.result.hasTheqItems },attrs:{\"cols\":\"12\",\"md\":_vm.result.hasBothItemsGroups ? 6 : 12,\"currentIndex\":_vm.currentIndex,\"groups\":_vm.result.epiItems},on:{\"updateCurrentIndex\":_vm.updateCurrentIndex}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-row class=\"no-gutters hr\" v-if=\"result\">\n <ad-suggest-dropdown-column\n cols=\"12\"\n :md=\"result.hasBothItemsGroups ? 6 : 12\"\n v-if=\"result.hasTheqItems\"\n :currentIndex=\"currentIndex\"\n :groups=\"result.theqItems\"\n @updateCurrentIndex=\"updateCurrentIndex\"\n />\n <ad-suggest-dropdown-column\n cols=\"12\"\n :md=\"result.hasBothItemsGroups ? 6 : 12\"\n v-if=\"result.hasEpiItems\"\n :class=\"{ 'bl-md': result.hasTheqItems, 'pl-md-3': result.hasTheqItems }\"\n :currentIndex=\"currentIndex\"\n :groups=\"result.epiItems\"\n @updateCurrentIndex=\"updateCurrentIndex\"\n />\n </b-row>\n</template>\n<script lang=\"ts\">\nimport { GlobalSearchSuggestions } from '@/src/types/vue-api';\nimport AdSuggestDropdownColumn from './ad-suggest-dropdown-column.vue';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({\n components: {\n AdSuggestDropdownColumn,\n },\n})\nexport default class AdSuggestSearchDropdown extends Vue {\n @Prop({ required: true, default: { name: 'unknown', data: [] } }) section!: { data: GlobalSearchSuggestions };\n @Prop({ type: [Number, String], required: false, default: Infinity }) currentIndex;\n\n get result() {\n return this.section.data;\n }\n\n getItemByIndex(itemIndex: number) {\n return itemIndex < this.section.data.length ? this.section.data.allItems[itemIndex] : undefined;\n }\n\n updateCurrentIndex(index) {\n this.$emit('updateCurrentIndex', index);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1c7cc28a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"suggest-search\"},[_c('vue-autosuggest',{ref:\"autocomplete\",attrs:{\"inputProps\":_vm.inputProps,\"sectionConfigs\":_vm.suggestionsGroups,\"suggestions\":_vm.suggestions,\"getSuggestionValue\":_vm.getCurrentQuery,\"componentAttrClassAutosuggestResults\":_vm.suggestionsContainerClass},on:{\"input\":_vm.fetchSuggestions,\"selected\":_vm.selectSuggestion,\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.rapidSearch.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"before-suggestions\",fn:function(){return [_c('div',{staticClass:\"pt-3 pt-md-0 pb-3 w-100\"},[_vm._v(_vm._s(_vm.query))])]},proxy:true},{key:\"after-suggestions\",fn:function(){return [_c('hr',{staticClass:\"mt-0\"})]},proxy:true}]),model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}}),(_vm.isErrorMessagePopoverEnabled)?_c('b-popover',{attrs:{\"target\":_vm.$refs.autocomplete,\"triggers\":\"focus hover\",\"show\":_vm.showPopover,\"variant\":\"danger\",\"placement\":\"bottom\"},on:{\"update:show\":function($event){_vm.showPopover=$event}}},[_c('div',{staticClass:\"text-danger\"},[_c('ad-icon-warnings',{staticClass:\"mr-2 align-top\"}),_vm._t(\"error-message\")],2)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import httpClient from './http-service';\nimport { Controller } from '../types/enumerations';\nimport { ContentSearchResultItem } from '../types/episerver-api';\nimport { SearchResult } from '../types/the-q-api';\nimport { getTheQApiUrl, getEpiserverApiUrl } from './url-helper';\n\nexport async function requestRapidSearch(isinNsinOrName: string): Promise<SearchResult | null> {\n if (!isinNsinOrName) return null;\n const response = await httpClient.get<SearchResult>(getTheQApiUrl(Controller.GlobalSearch, 'RapidSearch'), {\n params: { isinNsinOrName: isinNsinOrName },\n });\n return response.data;\n}\n\nexport async function requestSuggestSearchTheQ(query: string, controller: AbortController): Promise<SearchResult> {\n const theqRequest = await httpClient.get<SearchResult>(getTheQApiUrl(Controller.GlobalSearch, 'Suggest'), {\n params: { query: query },\n signal: controller.signal,\n });\n\n return theqRequest.data;\n}\n\nexport async function requestSuggestEpiServer(\n query: string,\n controller: AbortController\n): Promise<ContentSearchResultItem[]> {\n const epiServerRequest = await httpClient.get<ContentSearchResultItem[]>(\n getEpiserverApiUrl(Controller.GlobalSearch, 'Suggest'),\n {\n params: { query: query },\n signal: controller.signal,\n }\n );\n\n return epiServerRequest.data;\n}\n","import { Vue } from 'vue-property-decorator';\nimport axios from 'axios';\nimport {\n ContentSearchResultItem,\n GlobalSearchBlockSettings,\n GlobalSearchSuggestSettings,\n InstrumentFieldKeys,\n PageRoutes,\n} from '@src/types/episerver-api';\nimport {\n SearchResult,\n SearchResultProduct,\n SearchResultProductType,\n SearchResultUnderlying,\n} from '@src/types/the-q-api';\nimport {\n GlobalSearchSuggestions,\n SearchSuggestionGroup,\n SearchSuggestion,\n ProductSearchParametersFilter,\n} from '@src/types/vue-api';\nimport { tryCreateProductSearchLink, tryCreateProductLink, tryCreateUnderlyingLink } from '@src/utils/url-helper';\nimport evaluateExpressionByKey from '@src/utils/value-formatter/format-helper';\nimport { requestRapidSearch, requestSuggestSearchTheQ, requestSuggestEpiServer } from '@src/utils/global-search';\nimport { Prop } from 'vue-property-decorator';\n\nexport abstract class AdGlobalSearchBase extends Vue {\n @Prop({ default: false, type: Boolean }) showOnlyProductsInSearch!: boolean; // If this is true, only products are displayed in the search result and episerver search is deactiveted\n searchResult: GlobalSearchSuggestions | null = null;\n\n mapContentSuggestion(index: number, item: ContentSearchResultItem) {\n return new SearchSuggestion(index, item.name, item.url);\n }\n\n mapUnderlyingSuggestion(\n index: number,\n underlying: SearchResultUnderlying,\n routes: PageRoutes\n ): SearchSuggestion | undefined {\n if (!routes.urlKeys.underlyingKey) return;\n const id = evaluateExpressionByKey(routes.urlKeys.underlyingKey, { underlying: underlying });\n if (!id || typeof id !== 'string') return;\n const url = tryCreateUnderlyingLink(routes, id, underlying.name);\n return new SearchSuggestion(index, underlying.name, url);\n }\n\n mapProductTypeSuggestion(\n index: number,\n type: SearchResultProductType,\n suggestSettings: GlobalSearchSuggestSettings,\n routes: PageRoutes\n ): SearchSuggestion {\n const filter = new ProductSearchParametersFilter();\n filter.subType = type.productSubType;\n filter.underlyingIsinOrIsins = type.underlyingIsin;\n const name = `${type.productTypeSubtypeName} ${suggestSettings.productUnderlyingPreposition} ${type.underlyingName}`;\n const url = tryCreateProductSearchLink(routes, type.productType, filter);\n return new SearchSuggestion(index, name, url);\n }\n\n mapProductSuggestion(\n index: number,\n product: SearchResultProduct,\n routes: PageRoutes,\n productNsinKey: string | null | undefined\n ): SearchSuggestion | undefined {\n //TODO: implement correct name\n if (!routes.urlKeys.productKey) return;\n const name = product.productNameTranslation?.productNameFirstLine || product.isin;\n const urlId = evaluateExpressionByKey(routes.urlKeys.productKey, { product: product });\n if (!urlId || typeof urlId !== 'string') return;\n const url = tryCreateProductLink(routes, product.productType, product.underlyingName, urlId);\n if (!url) return;\n let nsinDetail;\n if (productNsinKey) {\n nsinDetail = evaluateExpressionByKey(productNsinKey, { product: product })?.toString();\n }\n return new SearchSuggestion(index, name, url, nsinDetail);\n }\n\n isDefinedSuggestion = (item: SearchSuggestion | undefined): item is SearchSuggestion => {\n return !!item;\n };\n\n mapSuggestSearchResult(\n theqResults: SearchResult,\n epiResults: ContentSearchResultItem[],\n searchSettings: GlobalSearchBlockSettings,\n routes: PageRoutes,\n nsinKeys: InstrumentFieldKeys | null\n ): GlobalSearchSuggestions {\n const result = new GlobalSearchSuggestions();\n let index = 0;\n\n if (!this.showOnlyProductsInSearch) {\n if (theqResults.underlyings && theqResults.underlyings.length !== 0) {\n result.underlyings = theqResults.underlyings.map(\n (group) =>\n new SearchSuggestionGroup(\n group.name || '',\n group.items.map((u) => this.mapUnderlyingSuggestion(index++, u, routes)).filter(this.isDefinedSuggestion)\n )\n );\n }\n }\n if (!this.showOnlyProductsInSearch) {\n if (theqResults.productTypes && theqResults.productTypes.length !== 0) {\n result.productTypes = new SearchSuggestionGroup(\n searchSettings.suggestSearchSettings.productTypesHeadline,\n theqResults.productTypes[0].items.map((t) =>\n this.mapProductTypeSuggestion(index++, t, searchSettings.suggestSearchSettings, routes)\n )\n );\n }\n }\n\n if (theqResults.products && theqResults.products?.length !== 0) {\n result.products = theqResults.products.map((group) => {\n return new SearchSuggestionGroup(\n `${group.name} ${searchSettings.suggestSearchSettings.productUnderlyingPreposition} ${group.underlyingName}`,\n group.items\n .map((p) => this.mapProductSuggestion(index++, p, routes, nsinKeys?.productKey))\n .filter(this.isDefinedSuggestion)\n );\n });\n }\n\n if (epiResults.length !== 0) {\n result.content = new SearchSuggestionGroup(\n searchSettings.suggestSearchSettings.websiteContentHeadline,\n epiResults.map((c) => this.mapContentSuggestion(index++, c))\n );\n }\n\n return result;\n }\n\n // AbortController is used to cancel all pending http requests, if a new page is loaded.\n // If pending requests are not cancelled, than the requested page loads first after the pending request resolves.\n protected abortController: AbortController | undefined;\n protected theQSearchResult: SearchResult = {} as SearchResult;\n protected epiServerSearchResult: ContentSearchResultItem[] = [];\n protected hasAnySuggestSearchResult: boolean = true;\n protected resetValidationState() {\n this.hasAnySuggestSearchResult = true;\n }\n\n async requestSuggestions(\n query: string,\n searchSettings: GlobalSearchBlockSettings,\n routes: PageRoutes,\n nsinKeys: InstrumentFieldKeys | null\n ): Promise<void> {\n this.resetValidationState();\n if (!this.abortController) {\n return;\n }\n if (query.length < 3) {\n return;\n }\n try {\n // The call to EPiServer takes significantly longer (i.e. 10s), Hence we want show the results from TheQ already\n // and when the results from EPiServer are there we update the results.\n const theqRequest = requestSuggestSearchTheQ(query, this.abortController).then((response) => {\n this.theQSearchResult = response;\n this.searchResult = this.mapSuggestSearchResult(\n response,\n this.epiServerSearchResult,\n searchSettings,\n routes,\n nsinKeys\n );\n });\n if (!this.showOnlyProductsInSearch) {\n const epiServerRequest = requestSuggestEpiServer(query, this.abortController).then((response) => {\n this.epiServerSearchResult = response;\n this.searchResult = this.mapSuggestSearchResult(\n this.theQSearchResult,\n response,\n searchSettings,\n routes,\n nsinKeys\n );\n });\n\n await Promise.allSettled([theqRequest, epiServerRequest]);\n } else {\n await Promise.allSettled([theqRequest]);\n }\n\n this.hasAnySuggestSearchResult = !!this.searchResult?.length;\n return;\n } catch (ex) {\n if (!axios.isCancel(ex)) {\n throw ex;\n }\n return;\n }\n }\n\n async rapidSearchBase(\n query: string,\n searchSettings: GlobalSearchBlockSettings,\n routes: PageRoutes\n ): Promise<string | null> {\n const searchResult: SearchResult | null = await requestRapidSearch(query);\n if (!searchResult) return null;\n\n if (\n searchResult.products?.length === 1 &&\n searchResult.products[0].items.length === 1 &&\n routes.urlKeys.productKey\n ) {\n const product = searchResult.products[0].items[0];\n const isinOrNsin = evaluateExpressionByKey(routes.urlKeys.productKey, { product: product })?.toString();\n if (!isinOrNsin || typeof isinOrNsin !== 'string') return null;\n return tryCreateProductLink(routes, product.productType, product.underlyingName, isinOrNsin);\n }\n\n if (\n searchResult.underlyings?.length === 1 &&\n searchResult.underlyings[0].items.length === 1 &&\n routes.urlKeys.underlyingKey\n ) {\n const underlying = searchResult.underlyings[0].items[0];\n const isinOrNsin = evaluateExpressionByKey(routes.urlKeys.underlyingKey, { underlying: underlying });\n if (!isinOrNsin || typeof isinOrNsin !== 'string') return null;\n return tryCreateUnderlyingLink(routes, isinOrNsin, underlying.name);\n }\n\n return null;\n //if not found, exits\n }\n}\n","<template>\n <div class=\"suggest-search\">\n <vue-autosuggest\n ref=\"autocomplete\"\n v-model=\"query\"\n :inputProps=\"inputProps\"\n @input=\"fetchSuggestions\"\n @selected=\"selectSuggestion\"\n @keypress.enter=\"rapidSearch\"\n :sectionConfigs=\"suggestionsGroups\"\n :suggestions=\"suggestions\"\n :getSuggestionValue=\"getCurrentQuery\"\n :componentAttrClassAutosuggestResults=\"suggestionsContainerClass\"\n >\n <template #before-suggestions>\n <div class=\"pt-3 pt-md-0 pb-3 w-100\">{{ query }}</div>\n </template>\n <template #after-suggestions>\n <hr class=\"mt-0\" />\n </template>\n </vue-autosuggest>\n <b-popover\n v-if=\"isErrorMessagePopoverEnabled\"\n :target=\"$refs.autocomplete\"\n triggers=\"focus hover\"\n :show.sync=\"showPopover\"\n variant=\"danger\"\n placement=\"bottom\"\n >\n <div class=\"text-danger\"><ad-icon-warnings class=\"mr-2 align-top\" /><slot name=\"error-message\"></slot></div>\n </b-popover>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Inject, Watch, Emit } from 'vue-property-decorator';\nimport { VueAutosuggest } from 'vue-autosuggest';\nimport { GlobalSearchBlockSettings, InstrumentFieldKeys, PageRoutes } from '@/src/types/episerver-api';\nimport { SearchSuggestion } from '@/src/types/vue-api';\n//using pDebounce because lodash does not support async\nimport pDebounce from 'p-debounce';\nimport { AdGlobalSearchBase } from './ad-global-search-base';\n\n@Component({\n components: {\n VueAutosuggest,\n },\n})\nexport default class AdGlobalSearch extends AdGlobalSearchBase {\n @Inject() settingsProperty!: GlobalSearchBlockSettings;\n @Inject() pageRoutes!: PageRoutes;\n @Inject() nsinKeys!: InstrumentFieldKeys | null;\n @Prop({ type: Boolean, default: false }) modalView!: boolean;\n @Watch('isErrorMessagePopoverEnabled')\n errorMessageState(newState: boolean, oldState: boolean) {\n this.changeValidationState(!newState);\n if (newState) {\n this.flashRapidSearchNotFoundMessage();\n }\n }\n\n @Emit('changeValidationState')\n changeValidationState(isValid: boolean) {\n return isValid;\n }\n\n protected resetValidationState(): void {\n super.resetValidationState();\n this.hasAnyRapidSearchResults = true;\n }\n\n private query = '';\n private hasAnyRapidSearchResults = true;\n private showPopover = false;\n private flashMessageTimeoutId = -1;\n\n private get inputProps() {\n return {\n class: this.inputClass,\n placeholder: this.settingsProperty.searchInputPlaceholder,\n };\n }\n\n private get inputClass() {\n return ['ce-header-quicksearch__input', 'w-100'];\n }\n\n getCurrentQuery(): string {\n return this.query;\n }\n\n get isTwoColumnView(): boolean {\n return this.$screen.md;\n }\n\n get suggestionsContainerClass(): string {\n let classes = 'suggest-search-results-container';\n if (this.$screen.xl) {\n classes += ' suggest-search-results-modal';\n }\n if (this.searchResult?.hasBothItemsGroups) {\n classes += ' two-column';\n }\n return classes;\n }\n\n get isErrorMessagePopoverEnabled(): boolean {\n return (\n this.settingsProperty.suggestSearchSettings.isErrorMessageEnabled &&\n !this.hasAnySuggestSearchResult &&\n !this.hasAnyRapidSearchResults\n );\n }\n\n private flashRapidSearchNotFoundMessage() {\n this.showPopover = true;\n const self = this;\n\n if (this.flashMessageTimeoutId > 0) {\n window.clearTimeout(this.flashMessageTimeoutId);\n this.flashMessageTimeoutId = -1;\n }\n this.flashMessageTimeoutId = window.setTimeout(() => {\n var timeoutId = self.flashMessageTimeoutId;\n self.hideRapidSearchNotFoundMessage(timeoutId);\n }, 5000);\n }\n\n private hideRapidSearchNotFoundMessage(timeoutId: number) {\n this.showPopover = false;\n if (timeoutId === this.flashMessageTimeoutId) {\n this.flashMessageTimeoutId = -1;\n }\n }\n\n get suggestionsGroups() {\n return {\n default: {\n label: 'dropdown',\n type: 'ad-suggest-search-dropdown',\n },\n };\n }\n\n get suggestions() {\n return this.searchResult ? [{ name: 'default', data: this.searchResult }] : [];\n }\n\n private selectSuggestion(selected: { item: SearchSuggestion } | undefined) {\n const url = selected?.item?.url;\n const anchorUrl = this.settingsProperty?.anchorUrl || '';\n if (url) {\n this.abortController?.abort(); // Abort all pending requests before loading another page\n const urlWithFragment = url + anchorUrl;\n document.location.href = urlWithFragment;\n return;\n }\n\n if (this.searchResult?.allItems.length == 1) {\n const singleSuggestionUrl = this.searchResult?.allItems[0].url;\n if (singleSuggestionUrl) {\n this.abortController?.abort(); // Abort all pending requests before loading another page\n\n const urlWithFragment = singleSuggestionUrl + anchorUrl;\n document.location.href = urlWithFragment;\n return;\n }\n }\n\n this.rapidSearch();\n }\n\n public async rapidSearch() {\n const anchorUrl = this.settingsProperty?.anchorUrl || '';\n if (!this.pageRoutes) return;\n this.hasAnyRapidSearchResults = true;\n try {\n const result = await this.rapidSearchBase(this.query, this.settingsProperty, this.pageRoutes);\n if (result) {\n this.abortController?.abort(); // Abort all pending requests before loading another page\n const urlWithFragment = result + anchorUrl;\n document.location.href = urlWithFragment;\n } else {\n this.hasAnyRapidSearchResults = false;\n }\n } catch (ex) {\n this.$log.error(ex);\n }\n }\n\n debounceDelay = 500;\n private debounceRequestSuggestions = pDebounce(this.requestSuggestions, this.debounceDelay);\n\n private async fetchSuggestions() {\n if (!this.pageRoutes) return;\n try {\n this.abortController = new AbortController();\n await this.debounceRequestSuggestions(this.query, this.settingsProperty, this.pageRoutes, this.nsinKeys);\n } catch (ex) {\n this.$log.error(ex);\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.suggest-search {\n width: 100%;\n & > div {\n width: 100%;\n }\n}\n.suggest-search-results-container {\n position: absolute;\n left: -30px;\n width: 100%;\n overflow-y: auto;\n\n .text-danger {\n color: $deep-red;\n }\n\n &.suggest-search-results-modal {\n top: 45px;\n right: 0;\n left: auto;\n\n border-radius: 10px;\n box-shadow: 0 1px 6px 0 rgba(165, 103, 103, 0.3);\n background-color: $white;\n padding: rem(20) rem(30) rem(20);\n width: 30vw;\n min-height: 150px;\n max-height: 70vh;\n\n &.two-column {\n width: 50vw;\n }\n }\n\n @include media-breakpoint-down('lg') {\n top: 44px;\n left: 0;\n z-index: 1000;\n border-radius: 10px;\n box-shadow: 0 1px 6px 0 rgba(165, 103, 103, 0.3);\n background-color: $light-grey;\n padding: rem(10) rem(20);\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4fefa53c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4fefa53c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ce-glossary-content',{attrs:{\"entries\":_vm.entries}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ce-glossary-content :entries=\"entries\" />\n</template>\n<script lang=\"ts\">\nimport { GlossaryEntry } from '@/src/types/ce-component-types';\nimport { GlossaryBlockSettings } from '@/src/types/episerver-api';\nimport { Vue, Component, Inject } from 'vue-property-decorator';\n\n@Component\nexport default class AdGlossaryContent extends Vue {\n @Inject() settingsProperty!: GlossaryBlockSettings | undefined;\n\n get entries(): GlossaryEntry[] {\n return this.settingsProperty?.entries ? this.settingsProperty?.entries : [];\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=73ab6c10\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ad-load-more-teaser-json\"},[_vm._t(\"headline\"),_c('div',[_vm._t(\"component\",null,{\"items\":_vm.contentSettings})],2),_c('div',{staticClass:\"row\"},[(_vm.canLoadMore)?_c('div',{staticClass:\"col-12 d-flex justify-content-center\"},[_c('button',{staticClass:\"btn btn-secondary w-100 w-md-auto\",on:{\"click\":function($event){return _vm.loadMore()}}},[_vm._t(\"show-more\")],2)]):_vm._e()])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ad-load-more-teaser-json\">\n <slot name=\"headline\"></slot>\n <div>\n <slot name=\"component\" :items=\"contentSettings\"></slot>\n </div>\n <div class=\"row\">\n <div v-if=\"canLoadMore\" class=\"col-12 d-flex justify-content-center\">\n <button class=\"btn btn-secondary w-100 w-md-auto\" @click=\"loadMore()\">\n <slot name=\"show-more\"></slot>\n </button>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Inject } from 'vue-property-decorator';\nimport { LoadMoreTeaserSettingsJson, RenderedPagedJsonContent, SerializedObject } from '@/src/types/episerver-api';\nimport { Controller } from '@src/types/enumerations';\nimport httpClient from '@/src/utils/http-service';\nimport { getEpiserverApiUrl } from '@/src/utils/url-helper';\n\n@Component({})\nexport default class AdLoadMoreTeasersJson extends Vue {\n @Inject() settingsProperty!: LoadMoreTeaserSettingsJson<SerializedObject>;\n\n isLoading = false;\n canLoadMore = false;\n contentItemsCount = 0;\n loadedItems: Array<SerializedObject> = [];\n\n created() {\n this.isLoading = false;\n this.canLoadMore = this.settingsProperty.hasMore;\n this.contentItemsCount = this.settingsProperty.initialItemsCount;\n }\n\n get contentSettings() {\n return [...this.settingsProperty.settings, ...this.loadedItems];\n }\n\n async loadMore() {\n try {\n this.isLoading = true;\n const response = await httpClient.get<RenderedPagedJsonContent>(\n getEpiserverApiUrl(Controller.DataSource, 'GetJson'),\n {\n params: {\n blockId: this.settingsProperty.blockId,\n skip: this.contentItemsCount,\n take: this.settingsProperty.loadMoreCount,\n },\n }\n );\n const result = response.data;\n this.contentItemsCount += result.contentItemsCount;\n this.canLoadMore = result.hasMore;\n this.loadedItems = [...this.loadedItems, ...result.contentSettings];\n } catch (ex) {\n this.$log.error(ex);\n }\n this.isLoading = false;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1eca1bf6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<script lang=\"ts\">\n/**\n * VRuntimeTemplate should not be used in a v-for loop directly.\n * That's why this component is created which uses VRuntimeComponent internally.\n */\nimport VRuntimeTemplate from 'v-runtime-template';\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\n@Component({ components: VRuntimeTemplate })\nexport default class AdRuntimeComponent extends Vue {\n @Prop({ required: true, type: String }) htmlTemplate;\n\n render(h) {\n return h(VRuntimeTemplate, { props: { template: this.htmlTemplate } });\n }\n}\n</script>\n","var render, staticRenderFns\nimport script from \"./ad-runtime-component.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-runtime-component.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-runtime-component.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-runtime-component.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h3',[_vm._t(\"headline\")],2),_c('div',[_vm._l((_vm.initialContent),function(h,i){return [_c('ce-node-renderer',{key:i + 'initialContent',attrs:{\"node\":h}})]}),_vm._l((_vm.loadedAdditionalContent),function(item,i){return [_c('ad-runtime-component',{key:i + 'loadedLater',attrs:{\"htmlTemplate\":item}})]})],2),(_vm.canLoadMore)?_c('div',[_c('b-button',{attrs:{\"variant\":\"secondary\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.loadMore}},[_vm._t(\"show-more\")],2)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <h3>\n <slot name=\"headline\"></slot>\n </h3>\n <div>\n <template v-for=\"(h, i) in initialContent\">\n <ce-node-renderer :node=\"h\" v-bind:key=\"i + 'initialContent'\" />\n </template>\n <template v-for=\"(item, i) in loadedAdditionalContent\">\n <ad-runtime-component :htmlTemplate=\"item\" v-bind:key=\"i + 'loadedLater'\" />\n </template>\n </div>\n <div v-if=\"canLoadMore\">\n <b-button variant=\"secondary\" @click=\"loadMore\" :disabled=\"isLoading\">\n <slot name=\"show-more\"></slot>\n </b-button>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Inject } from 'vue-property-decorator';\nimport { LoadMoreTeaserSettings, RenderedPagedContent } from '@/src/types/episerver-api';\nimport { Controller } from '@src/types/enumerations';\nimport httpClient from '@/src/utils/http-service';\nimport { getEpiserverApiUrl } from '@/src/utils/url-helper';\nimport { filterVNodes } from '@src/utils/vnodes-filter';\nimport AdRuntimeComponent from './ad-runtime-component.vue';\n\n@Component({ components: { AdRuntimeComponent } })\nexport default class AdLoadMoreTeasers extends Vue {\n @Inject() settingsProperty!: LoadMoreTeaserSettings;\n\n isLoading = false;\n canLoadMore = false;\n additionalContent: string[] = [];\n contentItemsCount = 0;\n\n get initialContent() {\n return filterVNodes(this.$slots['initial-content']);\n }\n\n get loadedAdditionalContent() {\n return this.additionalContent;\n }\n\n created() {\n this.canLoadMore = this.settingsProperty.hasMore;\n this.contentItemsCount = this.settingsProperty.initialItemsCount;\n }\n\n async loadMore() {\n try {\n this.isLoading = true;\n const response = await httpClient.get<RenderedPagedContent>(getEpiserverApiUrl(Controller.DataSource, 'Get'), {\n params: {\n blockId: this.settingsProperty.blockId,\n skip: this.contentItemsCount,\n take: this.settingsProperty.loadMoreCount,\n },\n });\n const result = response.data;\n this.contentItemsCount += result.contentItemsCount;\n this.canLoadMore = result.hasMore;\n this.additionalContent = this.additionalContent.concat(result.content);\n } catch (ex) {\n this.$log.error(ex);\n }\n this.isLoading = false;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=93dc4c90\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ade-paging\"},[_c('b-row',[(_vm.$screen.lg)?_c('b-col',{attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"pagination\"},[_c('span',{staticClass:\"pt-2\"},[_vm._t(\"views-per-page-text\",function(){return [_vm._v(\"Views\")]})],2),_c('b-button',{staticClass:\"btn-views ml-3\",attrs:{\"pressed\":_vm.currentTake == 25,\"disabled\":_vm.loading,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.pagingChange(true, 25, 1)}}},[_vm._v(\"25\")]),_c('b-button',{staticClass:\"btn-views ml-1\",attrs:{\"pressed\":_vm.currentTake == 50,\"disabled\":_vm.loading,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.pagingChange(true, 50, 1)}}},[_vm._v(\"50\")]),_c('b-button',{staticClass:\"btn-views ml-1\",attrs:{\"pressed\":_vm.currentTake == 100,\"disabled\":_vm.loading,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.pagingChange(true, 100, 1)}}},[_vm._v(\"100\")])],1)]):_vm._e(),(!_vm.$screen.md)?_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"pagination justify-content-center justify-content-lg-start mb-3\"},[_c('b-form-input',{staticClass:\"btn-page mx-4 px-4 default\",attrs:{\"min\":\"1\",\"max\":_vm.totalPages,\"disabled\":_vm.totalPages == 1 || _vm.loading,\"step\":\"1\",\"type\":\"number\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.pagingChange($event.target.validity.valid, _vm.currentTake, _vm.currentPageNumber)}},model:{value:(_vm.currentPageNumber),callback:function ($$v) {_vm.currentPageNumber=$$v},expression:\"currentPageNumber\"}}),_c('span',{staticClass:\"pt-2\"},[_c('ad-skeleton-text',{staticClass:\"b-skeleton-m\",attrs:{\"loading\":_vm.loading}},[_vm._t(\"page-of-text\",function(){return [_vm._v(\" of \"+_vm._s(_vm.totalPages))]},{\"totalPages\":_vm.totalPages})],2)],1)],1)]):_vm._e(),_c('b-col',{attrs:{\"lg\":\"8\",\"cols\":\"12\"}},[_c('div',{staticClass:\"pagination justify-content-center justify-content-lg-start\"},[_c('b-button',{staticClass:\"btn-step text-left\",attrs:{\"disabled\":_vm.currentPageNumber === 1 || _vm.loading,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.pagingChange(true, _vm.currentTake, _vm.currentPageNumber, -1)}}},[_c('ad-icon-chevron',{staticClass:\"clarinet\",attrs:{\"direction\":_vm.direction.left,\"size\":_vm.size.m}}),_c('span',{staticClass:\"d-inline-block float-right\"},[_vm._t(\"pervious-page-text\",function(){return [_vm._v(\"Previous\")]})],2)],1),(_vm.$screen.md)?_c('b-form-input',{staticClass:\"btn-page mx-4 px-4 default\",attrs:{\"min\":\"1\",\"max\":_vm.totalPages,\"disabled\":_vm.totalPages === 1 || _vm.loading,\"step\":\"1\",\"type\":\"number\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.pagingChange($event.target.validity.valid, _vm.currentTake, _vm.currentPageNumber)}},model:{value:(_vm.currentPageNumber),callback:function ($$v) {_vm.currentPageNumber=$$v},expression:\"currentPageNumber\"}}):_vm._e(),(_vm.$screen.md)?_c('span',{staticClass:\"pt-2\"},[_c('ad-skeleton-text',{staticClass:\"b-skeleton-m\",attrs:{\"loading\":_vm.loading}},[_vm._t(\"page-of-text\",function(){return [_vm._v(\" of \"+_vm._s(_vm.totalPages))]},{\"totalPages\":_vm.totalPages})],2)],1):_vm._e(),(!_vm.$screen.md)?_c('div',{staticClass:\"w-10\"}):_vm._e(),_c('b-button',{staticClass:\"ml-0 ml-sm-6 btn-step text-right\",attrs:{\"disabled\":_vm.currentPageNumber * _vm.currentTake >= _vm.rows || _vm.loading,\"variant\":\"light\"},on:{\"click\":function($event){return _vm.pagingChange(true, _vm.currentTake, _vm.currentPageNumber, 1)}}},[_c('span',{staticClass:\"d-inline-block float-left\"},[_vm._t(\"next-page-text\",function(){return [_vm._v(\"Next\")]})],2),_c('ad-icon-chevron',{staticClass:\"clarinet\",attrs:{\"direction\":_vm.direction.right,\"size\":_vm.size.m}})],1)],1)]),(!_vm.$screen.lg)?_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"text-center\"},[_c('b-form-group',{staticClass:\"focus-white mt-5 text-left input-step d-sm-inline-block\",attrs:{\"id\":\"input-group-1\",\"label-for\":\"input-1\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"views-per-page-text\",function(){return [_vm._v(\"Views\")]})]},proxy:true}],null,true)},[_c('ad-drop-down-list',{attrs:{\"options\":_vm.viewItems,\"disabled\":_vm.loading,\"form-element-state-id\":\"input-group-1\",\"id\":\"input-1\"},on:{\"input\":function($event){return _vm.pagingChange(true, _vm.currentTake, _vm.pageNumber)}},model:{value:(_vm.currentTake),callback:function ($$v) {_vm.currentTake=$$v},expression:\"currentTake\"}})],1)],1)]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ade-paging\">\n <b-row>\n <b-col cols=\"4\" v-if=\"$screen.lg\">\n <div class=\"pagination\">\n <span class=\"pt-2\"><slot name=\"views-per-page-text\">Views</slot></span>\n <b-button\n class=\"btn-views ml-3\"\n @click=\"pagingChange(true, 25, 1)\"\n :pressed=\"currentTake == 25\"\n :disabled=\"loading\"\n variant=\"light\"\n >25</b-button\n >\n <b-button\n class=\"btn-views ml-1\"\n @click=\"pagingChange(true, 50, 1)\"\n :pressed=\"currentTake == 50\"\n :disabled=\"loading\"\n variant=\"light\"\n >50</b-button\n >\n <b-button\n class=\"btn-views ml-1\"\n @click=\"pagingChange(true, 100, 1)\"\n :pressed=\"currentTake == 100\"\n :disabled=\"loading\"\n variant=\"light\"\n >100</b-button\n >\n </div>\n </b-col>\n <b-col cols=\"12\" v-if=\"!$screen.md\">\n <div class=\"pagination justify-content-center justify-content-lg-start mb-3\">\n <b-form-input\n @keyup.enter.prevent=\"pagingChange($event.target.validity.valid, currentTake, currentPageNumber)\"\n class=\"btn-page mx-4 px-4 default\"\n min=\"1\"\n :max=\"totalPages\"\n :disabled=\"totalPages == 1 || loading\"\n step=\"1\"\n type=\"number\"\n v-model=\"currentPageNumber\"\n ></b-form-input>\n <span class=\"pt-2\">\n <ad-skeleton-text class=\"b-skeleton-m\" :loading=\"loading\">\n <slot name=\"page-of-text\" :totalPages=\"totalPages\"> of {{ totalPages }}</slot>\n </ad-skeleton-text>\n </span>\n </div>\n </b-col>\n <b-col lg=\"8\" cols=\"12\">\n <div class=\"pagination justify-content-center justify-content-lg-start\">\n <b-button\n class=\"btn-step text-left\"\n @click=\"pagingChange(true, currentTake, currentPageNumber, -1)\"\n :disabled=\"currentPageNumber === 1 || loading\"\n variant=\"light\"\n >\n <ad-icon-chevron :direction=\"direction.left\" class=\"clarinet\" :size=\"size.m\" />\n <span class=\"d-inline-block float-right\"> <slot name=\"pervious-page-text\">Previous</slot></span>\n </b-button>\n\n <b-form-input\n v-if=\"$screen.md\"\n @keyup.enter.prevent=\"pagingChange($event.target.validity.valid, currentTake, currentPageNumber)\"\n class=\"btn-page mx-4 px-4 default\"\n min=\"1\"\n :max=\"totalPages\"\n :disabled=\"totalPages === 1 || loading\"\n step=\"1\"\n type=\"number\"\n v-model=\"currentPageNumber\"\n ></b-form-input>\n <span class=\"pt-2\" v-if=\"$screen.md\">\n <ad-skeleton-text class=\"b-skeleton-m\" :loading=\"loading\">\n <slot name=\"page-of-text\" :totalPages=\"totalPages\"> of {{ totalPages }}</slot>\n </ad-skeleton-text>\n </span>\n <div class=\"w-10\" v-if=\"!$screen.md\" />\n <b-button\n class=\"ml-0 ml-sm-6 btn-step text-right\"\n @click=\"pagingChange(true, currentTake, currentPageNumber, 1)\"\n :disabled=\"currentPageNumber * currentTake >= rows || loading\"\n variant=\"light\"\n >\n <span class=\"d-inline-block float-left\"><slot name=\"next-page-text\">Next</slot></span>\n <ad-icon-chevron :direction=\"direction.right\" class=\"clarinet\" :size=\"size.m\"\n /></b-button>\n </div>\n </b-col>\n\n <b-col cols=\"12\" v-if=\"!$screen.lg\">\n <div class=\"text-center\">\n <b-form-group\n id=\"input-group-1\"\n class=\"focus-white mt-5 text-left input-step d-sm-inline-block\"\n label-for=\"input-1\"\n >\n <template #label>\n <slot name=\"views-per-page-text\">Views</slot>\n </template>\n <ad-drop-down-list\n :options=\"viewItems\"\n :disabled=\"loading\"\n v-model=\"currentTake\"\n @input=\"pagingChange(true, currentTake, pageNumber)\"\n form-element-state-id=\"input-group-1\"\n id=\"input-1\"\n />\n </b-form-group>\n </div>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\n\nimport { Direction, DropDownItemType, Size } from '@/src/types/enumerations';\nimport { DropDownItem } from '@/src/types/vue-api';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdPagination extends Vue {\n @Prop({ required: true, type: Number })\n take!: number;\n @Prop({ required: true, type: Number })\n pageNumber!: number;\n @Prop({ required: true })\n rows!: number;\n @Prop({ required: true })\n viewsPerPageSelectionText!: string;\n private direction = Direction;\n private size = Size;\n private currentTake = 0;\n private currentPageNumber = 1;\n private viewItems!: Array<DropDownItem>;\n\n created() {\n this.viewItems = [\n {\n value: 25,\n text: this.replaceViewText(25),\n type: DropDownItemType.item,\n },\n {\n value: 50,\n text: this.replaceViewText(50),\n type: DropDownItemType.item,\n },\n {\n value: 100,\n text: this.replaceViewText(100),\n type: DropDownItemType.item,\n },\n ];\n this.currentTake = this.take;\n this.currentPageNumber = this.pageNumber;\n }\n\n @Watch('pageNumber')\n updateCurrentPageNumber(): void {\n this.currentPageNumber = this.pageNumber;\n }\n\n get totalPages() {\n return Math.ceil(this.rows / this.currentTake);\n }\n\n get loading() {\n return this.rows == null;\n }\n\n pagingChange(isValid: boolean, take: number, pageNumber: number | string, increase = 0) {\n pageNumber = this.currentPageNumber = parseInt(pageNumber.toString());\n pageNumber = pageNumber + increase;\n this.currentTake = take;\n\n if (!isValid) {\n this.currentPageNumber = pageNumber < 0 ? 1 : this.totalPages;\n } else {\n this.currentPageNumber = pageNumber;\n }\n\n this.$emit('paging-change', take, this.currentPageNumber);\n }\n\n private replaceViewText(views: number) {\n return this.viewsPerPageSelectionText.replace('{views}', views.toString());\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ade-paging {\n .btn-page {\n width: 100px;\n text-align: center;\n }\n .btn-step {\n width: 45%;\n }\n .btn-views {\n padding-right: 0;\n padding-left: 0;\n min-width: 50px;\n }\n .btn-step,\n .input-step {\n @include media-breakpoint-up('sm') {\n width: 160px;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ce47a18e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ce47a18e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('keep-alive',[(_vm.isRowVisible)?_c('b-tr',[_c('b-td',{staticClass:\"w-33\"},[_vm._t(\"headline\")],2),_c('b-td',{staticClass:\"text-center align-middle w-33\"},[_vm._t(\"first\",null,{\"setVisible\":_vm.setVisibleFirst,\"productItem\":_vm.firstProduct,\"fieldKey\":_vm.settingsProperty.fieldKey})],2),_c('b-td',{staticClass:\"text-center align-middle w-33\"},[_vm._t(\"second\",null,{\"setVisible\":_vm.setVisibleSecond,\"productItem\":_vm.secondProduct,\"fieldKey\":_vm.settingsProperty.fieldKey})],2)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <keep-alive>\n <b-tr v-if=\"isRowVisible\">\n <b-td class=\"w-33\">\n <slot name=\"headline\"></slot>\n </b-td>\n <b-td class=\"text-center align-middle w-33\">\n <slot\n name=\"first\"\n :setVisible=\"setVisibleFirst\"\n :productItem=\"firstProduct\"\n :field-Key=\"settingsProperty.fieldKey\"\n ></slot>\n </b-td>\n <b-td class=\"text-center align-middle w-33\">\n <slot\n name=\"second\"\n :setVisible=\"setVisibleSecond\"\n :productItem=\"secondProduct\"\n :field-Key=\"settingsProperty.fieldKey\"\n ></slot>\n </b-td>\n </b-tr>\n </keep-alive>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Inject } from 'vue-property-decorator';\nimport { InstrumentDataRow } from '@src/types/episerver-api-instrument';\nimport { ProductModel } from '@/src/types/the-q-api';\n@Component\nexport default class AdProductInfoTableRow extends Vue {\n @Inject() settingsProperty!: InstrumentDataRow;\n @Prop({ required: true }) firstProduct!: ProductModel;\n @Prop({ required: true }) secondProduct!: ProductModel;\n\n private isFirstValueVisible = true;\n private isSecondValueVisible = true;\n\n get isRowVisible(): boolean {\n return this.isFirstValueVisible || this.isSecondValueVisible;\n }\n\n public setVisibleFirst(hasValue: boolean): void {\n this.isFirstValueVisible = this.settingsProperty?.showOnEmpty || hasValue;\n }\n\n public setVisibleSecond(hasValue: boolean): void {\n this.isSecondValueVisible = this.settingsProperty?.showOnEmpty || hasValue;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=72babb50\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('div',[_c('b-table-simple',{attrs:{\"striped\":\"\",\"borderless\":\"\"}},[_c('b-tbody',[_c('b-tr',[_c('b-th',{staticClass:\"w-33\"}),_c('b-th',{staticClass:\"w-33 text-center align-middle\"},[_vm._t(\"first-product-header\")],2),_c('b-th',{staticClass:\"w-33 text-center align-middle\"},[_vm._t(\"second-product-header\")],2)],1),_vm._t(\"data-rows\",null,{\"firstProduct\":_vm.firstProduct,\"secondProduct\":_vm.secondProduct})],2)],1),(_vm.$slots['disclaimer-prospectus'])?_c('div',[_vm._t(\"disclaimer-prospectus\")],2):_vm._e()],1):_c('b-alert',{attrs:{\"variant\":\"warning\"}},[_vm._v(\" Product table is hidden: \"+_vm._s(_vm.isHiddenReason)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"isVisible\">\n <b-table-simple striped borderless>\n <b-tbody>\n <b-tr>\n <b-th class=\"w-33\"> </b-th>\n <b-th class=\"w-33 text-center align-middle\"><slot name=\"first-product-header\"></slot></b-th>\n <b-th class=\"w-33 text-center align-middle\"><slot name=\"second-product-header\"></slot></b-th>\n </b-tr>\n <slot name=\"data-rows\" :firstProduct=\"firstProduct\" :secondProduct=\"secondProduct\"></slot>\n </b-tbody>\n </b-table-simple>\n <div v-if=\"$slots['disclaimer-prospectus']\">\n <slot name=\"disclaimer-prospectus\"></slot>\n </div>\n </div>\n <b-alert variant=\"warning\" v-else> Product table is hidden: {{ isHiddenReason }} </b-alert>\n</template>\n<script lang=\"ts\">\nimport { ProductInfoTableSettings } from '@/src/types/episerver-api';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({})\nexport default class AdProductInfoTable extends Vue {\n @Inject() settingsProperty!: ProductInfoTableSettings;\n\n @Getter('productByIsin', { namespace: 'product' })\n productByIsin!: (isin: string) => ProductModel | null;\n @Action('loadConcatProductsAsync', { namespace: 'product' })\n loadConcatProductsAsync!: (isins: string[]) => Promise<void>;\n\n async created() {\n const isins = [this.settingsProperty.firstProductIsin, this.settingsProperty.secondProductIsin].filter(\n (s) => s !== null\n ) as string[];\n await this.loadConcatProductsAsync(isins);\n }\n\n get isVisible(): boolean {\n return this.isHiddenReason === null;\n }\n\n get isHiddenReason(): string | null {\n if (!this.firstProduct && !this.secondProduct) {\n return 'Both products do not exist';\n }\n if (this.firstProduct && this.secondProduct && this.firstProduct.productType !== this.secondProduct.productType) {\n return `Product types do not match: ${this.firstProduct.productType} and ${this.secondProduct.productType}`;\n }\n if (\n this.firstProduct?.productType &&\n !this.settingsProperty.allowedTypes.find((t) => this.firstProduct?.productType === t)\n ) {\n return `First product type is not allowed: ${this.firstProduct.productType}`;\n }\n if (\n this.secondProduct?.productType &&\n !this.settingsProperty.allowedTypes.find((t) => this.secondProduct?.productType === t)\n ) {\n return `Second product type is not allowed: ${this.secondProduct.productType}`;\n }\n return null;\n }\n\n get firstProduct(): ProductModel | null {\n return this.settingsProperty.firstProductIsin ? this.productByIsin(this.settingsProperty.firstProductIsin) : null;\n }\n\n get secondProduct(): ProductModel | null {\n return this.settingsProperty.secondProductIsin ? this.productByIsin(this.settingsProperty.secondProductIsin) : null;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5df3ffa4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-image',{attrs:{\"loading\":!_vm.realtimeUnderlyingIsin,\"width\":\"100%\",\"height\":\"600px\"}},[_c('div',{staticClass:\"bg-light pb-6 pt-6 pt-xl-7\"},[_c('b-container',{staticClass:\"content-container my-0\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"pr-xl-9\",attrs:{\"xl\":\"8\",\"cols\":\"12\"}},[_c('div',[_c('b-form-group',{staticClass:\"focus-white bg-white\",attrs:{\"label-for\":\"underlying-teaser-dropdownlist\",\"id\":\"underlying-teaser-dropdownlist-group\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"underlying-filter-label\",function(){return [_vm._v(\"Choose Underlying\")]})]},proxy:true}],null,true)},[_c('ad-underlying-list',{attrs:{\"form-element-state-id\":\"underlying-teaser-dropdownlist-group\",\"id\":\"underlying-filter-dropdownlist\",\"group-items\":\"\"},model:{value:(_vm.realtimeUnderlyingIsin),callback:function ($$v) {_vm.realtimeUnderlyingIsin=$$v},expression:\"realtimeUnderlyingIsin\"}})],1)],1),_c('ad-underlying-data-property',{key:_vm.teaserUnderlyingIsin,attrs:{\"underlying\":_vm.underlying}},[_c('div',[_c('div',{staticClass:\"mt-5 mb-3\"},[_vm._t(\"underlying-teaser\")],2),_c('div',[_vm._t(\"realtime-chart\")],2)])])],1),_c('b-col',{attrs:{\"xl\":\"4\",\"cols\":\"12\"}},[_c('ad-collapse-on-mobile',{staticClass:\"bg-white\",attrs:{\"show-collapsed\":\"\",\"breakpoint\":\"xl\",\"showDesktopHeader\":false},scopedSlots:_vm._u([(!_vm.cardView)?{key:\"header\",fn:function(){return [_vm._t(\"quick-search-header\",function(){return [_vm._v(\"Quick search\")]})]},proxy:true}:null],null,true)},[_c('div',{class:{ 'card p-3': _vm.cardView }},[(_vm.cardView)?_c('h3',{staticClass:\"mb-5\"},[_vm._t(\"quick-search-header\",function(){return [_vm._v(\"Quick search\")]})],2):_vm._e(),_vm._t(\"quick-search-block\",null,{\"initialUnderlying\":_vm.realtimeUnderlyingIsin})],2)])],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-image :loading=\"!realtimeUnderlyingIsin\" width=\"100%\" height=\"600px\">\n <div class=\"bg-light pb-6 pt-6 pt-xl-7\">\n <b-container fluid class=\"content-container my-0\">\n <b-row>\n <b-col xl=\"8\" cols=\"12\" class=\"pr-xl-9\">\n <div>\n <b-form-group\n class=\"focus-white bg-white\"\n label-for=\"underlying-teaser-dropdownlist\"\n id=\"underlying-teaser-dropdownlist-group\"\n >\n <template #label><slot name=\"underlying-filter-label\">Choose Underlying</slot></template>\n <ad-underlying-list\n form-element-state-id=\"underlying-teaser-dropdownlist-group\"\n id=\"underlying-filter-dropdownlist\"\n v-model=\"realtimeUnderlyingIsin\"\n group-items\n ></ad-underlying-list>\n </b-form-group>\n </div>\n <ad-underlying-data-property :underlying=\"underlying\" :key=\"teaserUnderlyingIsin\">\n <div>\n <div class=\"mt-5 mb-3\">\n <slot name=\"underlying-teaser\"></slot>\n </div>\n <div>\n <slot name=\"realtime-chart\"></slot>\n </div>\n </div>\n </ad-underlying-data-property>\n </b-col>\n <b-col xl=\"4\" cols=\"12\">\n <ad-collapse-on-mobile show-collapsed class=\"bg-white\" breakpoint=\"xl\" :showDesktopHeader=\"false\">\n <template v-if=\"!cardView\" #header><slot name=\"quick-search-header\">Quick search</slot></template>\n <div :class=\"{ 'card p-3': cardView }\">\n <h3 v-if=\"cardView\" class=\"mb-5\"><slot name=\"quick-search-header\">Quick search</slot></h3>\n <slot name=\"quick-search-block\" :initialUnderlying=\"realtimeUnderlyingIsin\"></slot>\n </div>\n </ad-collapse-on-mobile>\n </b-col>\n </b-row>\n </b-container>\n </div>\n </ad-skeleton-image>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { Action, Getter } from 'vuex-class';\nimport { Prop, Component, Watch } from 'vue-property-decorator';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\n\n@Component\nexport default class AdRealtimeBlock extends Vue {\n realtimeUnderlyingIsin: string | null = null;\n\n @Action('loadUnderlyingAsync', { namespace: 'underlying' })\n loadUnderlyingAsync!: (isin: string[] | string) => Promise<void>;\n\n @Getter('underlying', { namespace: 'underlying' })\n underlying!: UnderlyingModel | null;\n\n @Prop({ default: null }) selectedUnderlying!: string | null;\n\n get teaserUnderlyingIsin(): string | null {\n return this.underlying?.isin || null;\n }\n\n get cardView(): boolean {\n return this.$screen.xl;\n }\n\n @Watch('selectedUnderlying', { immediate: true })\n selectUnderlying() {\n if (this.selectedUnderlying !== null) {\n this.realtimeUnderlyingIsin = this.selectedUnderlying;\n }\n }\n\n @Watch('realtimeUnderlyingIsin', { immediate: true })\n async loadUnderlying(): Promise<void> {\n if (this.realtimeUnderlyingIsin) {\n await this.loadUnderlyingAsync(this.realtimeUnderlyingIsin);\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=58b001f3\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ce-text-image-teaser',{attrs:{\"teasers\":_vm.teasers,\"layout-mode\":_vm.layoutMode,\"showMoreButtonLink\":_vm.settingsProperty.showMoreButtonLink,\"maxItemCount\":_vm.settingsProperty.maxItemsPerRow},scopedSlots:_vm._u([(!!_vm.settingsProperty.showMoreButtonText)?{key:\"show-more\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.settingsProperty.showMoreButtonText)+\" \")]},proxy:true}:null],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ce-text-image-teaser\n :teasers=\"teasers\"\n :layout-mode=\"layoutMode\"\n :showMoreButtonLink=\"settingsProperty.showMoreButtonLink\"\n :maxItemCount=\"settingsProperty.maxItemsPerRow\"\n >\n <template v-if=\"!!settingsProperty.showMoreButtonText\" #show-more>\n {{ settingsProperty.showMoreButtonText }}\n </template>\n </ce-text-image-teaser>\n</template>\n<script lang=\"ts\">\nimport {\n TextImageTeaserBlock,\n TextImageTeaserImageBlock,\n TextImageTeaserVideoBlock,\n} from '@/src/types/ce-component-types';\nimport { TextImageTeaserBackground, TextImageTeaserTypes } from '@/src/types/enumerations';\nimport { TextImageTeaserSettings } from '@/src/types/episerver-api';\nimport { isTeaserImageSetting, isTeaserVideoSetting } from '@/src/types/type-guards';\nimport { getImageResizerUrl } from '@/src/utils/url-helper';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class AdTextImageTeasers extends Vue {\n @Inject() settingsProperty!: TextImageTeaserSettings;\n\n get layoutMode(): TextImageTeaserBackground {\n return this.settingsProperty.background ? TextImageTeaserBackground[this.settingsProperty.background] : null;\n }\n\n get teasers(): Array<TextImageTeaserBlock> {\n return this.settingsProperty.teasers.map((teaser) => {\n teaser.type = TextImageTeaserTypes[teaser.type];\n\n if (isTeaserImageSetting(teaser)) {\n return {\n type: teaser.type,\n link: teaser.link,\n headlineText: teaser.headlineText,\n preHeadlineText: teaser.preHeadlineText,\n copyText: teaser.copyText,\n callToActionText: teaser.callToActionText,\n image: {\n src: getImageResizerUrl(teaser.imageData.src, 316, 185),\n sources: [\n { Media: '(min-width:650px)', SrcSet: getImageResizerUrl(teaser.imageData.src, 1600, 540) },\n { Media: '(min-width:465py)', SrcSet: getImageResizerUrl(teaser.imageData.src, 500, 500) },\n ],\n },\n } as TextImageTeaserImageBlock;\n } else if (isTeaserVideoSetting(teaser)) {\n const video = {\n youtubeId: teaser.youtubeId,\n type: teaser.type,\n } as TextImageTeaserVideoBlock;\n\n if (teaser.previewImageSrc) {\n video.previewImageSrc = getImageResizerUrl(teaser.previewImageSrc, 316, 185);\n }\n\n return video;\n }\n\n return teaser as TextImageTeaserImageBlock;\n });\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7a85f828\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-container container-fluid mb-7\"},[_c('h2',[_vm._t(\"headline\")],2),(_vm.isSupPageTiles)?_c('ce-sub-page-tiles',{attrs:{\"tiles\":_vm.tiles}}):_c('ce-tiles',{attrs:{\"tiny\":_vm.isTinyTiles,\"tiles\":_vm.tiles}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"content-container container-fluid mb-7\">\n <h2><slot name=\"headline\"></slot></h2>\n <ce-sub-page-tiles v-if=\"isSupPageTiles\" :tiles=\"tiles\" />\n <ce-tiles v-else :tiny=\"isTinyTiles\" :tiles=\"tiles\" />\n </div>\n</template>\n<script lang=\"ts\">\nimport { TileContent } from '@/src/types/ce-component-types';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\nenum TileTeaserColor {\n PeacockBlue = 'PeacockBlue',\n DeepTurquoise = 'DeepTurquoise',\n Grape = 'Grape',\n Mulberry = 'Mulberry',\n}\n\nenum TileTeaserView {\n Tiles = 'Tiles',\n TinyTiles = 'TinyTiles',\n SupPageTiles = 'SupPageTiles',\n}\n\ninterface Tiles {\n items: Tile[];\n view: TileTeaserView;\n}\n\ninterface Tile {\n color: TileTeaserColor;\n title: string;\n text: string | null;\n link: string;\n}\n\n@Component\nexport default class AdTileTeasers extends Vue {\n @Inject() settingsProperty!: Tiles;\n\n private get isSupPageTiles(): boolean {\n return this.settingsProperty.view == TileTeaserView.SupPageTiles;\n }\n\n private get isTinyTiles(): boolean {\n return this.settingsProperty.view == TileTeaserView.TinyTiles;\n }\n\n private get tiles(): TileContent[] {\n return this.settingsProperty.items.map((t) => {\n return {\n color: this.mapTileColor(t.color),\n title: t.title,\n text: t.text,\n link: t.link,\n } as TileContent;\n });\n }\n\n private mapTileColor(color: TileTeaserColor): string {\n switch (color) {\n case TileTeaserColor.PeacockBlue:\n return 'peacock-blue';\n case TileTeaserColor.DeepTurquoise:\n return 'deep-turquoise';\n case TileTeaserColor.Grape:\n return 'grape';\n case TileTeaserColor.Mulberry:\n return 'mulberry';\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9777e5a6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-skeleton-text',{attrs:{\"loading\":_vm.underlying == null}},[(_vm.preHeadlineText)?_c('span',_vm._b({},'span',_vm.$attrs,false),[_vm._v(_vm._s(_vm.preHeadlineText))]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-skeleton-text :loading=\"underlying == null\">\n <span v-bind=\"$attrs\" v-if=\"preHeadlineText\">{{ preHeadlineText }}</span>\n </ad-skeleton-text>\n</template>\n<script lang=\"ts\">\nimport { UdpPreheadline } from '@/src/types/episerver-api';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdUnderlyingPreheadlineText extends Vue {\n @Prop() udpPreheadlines!: UdpPreheadline[];\n @Prop() underlying!: UnderlyingModel;\n\n get preHeadlineText(): string | null {\n if (this.udpPreheadlines === undefined || this.udpPreheadlines === null) {\n return null;\n }\n\n const udpPreheadline = this.udpPreheadlines.find((udpPreheadline) =>\n udpPreheadline.forUnderlyings?.some((isin) => isin === this.underlying?.isin)\n );\n\n if (udpPreheadline === null || udpPreheadline === undefined) {\n return null;\n }\n\n return udpPreheadline.preheadlineText;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4d4d1c24\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.iconVisible)?_c('ad-info-block',{attrs:{\"showOnMobileFullScreen\":true,\"placement\":_vm.placement,\"fallbackPlacement\":_vm.fallbackPlacement}},[_c('span',[_vm._v(_vm._s(_vm.popoverText))])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-info-block\n v-if=\"iconVisible\"\n :showOnMobileFullScreen=\"true\"\n :placement=\"placement\"\n :fallbackPlacement=\"fallbackPlacement\"\n >\n <span>{{ popoverText }}</span>\n </ad-info-block>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { KnockoutTimeIndicativeInfo, PopoverFallback, PopoverPosition } from '@/src/types/enumerations';\n\n@Component\nexport default class AdUnderlyingRelatedInfoPopup extends Vue {\n @Prop() underlyings!: UnderlyingModel[] | null;\n\n get placement(): PopoverPosition {\n return PopoverPosition.Right;\n }\n\n get fallbackPlacement(): PopoverFallback {\n return PopoverFallback.Flip;\n }\n\n get popoverText(): string | undefined {\n const indicativeSlot = this.$slots['ko-time-in-cet-is-indicative'];\n const indicativeText = indicativeSlot && indicativeSlot.length ? indicativeSlot[0].text?.trim() : undefined;\n const auctionSlot = this.$slots['closing-auction-may-also-lead-to-ko'];\n const auctionText = auctionSlot && auctionSlot.length ? auctionSlot[0].text?.trim() : undefined;\n return this.showKoTimeInCetIsIndicative ? indicativeText : auctionText;\n }\n\n get iconVisible(): boolean {\n const defaultUnderlying = this.underlyings?.[0];\n const notNull = defaultUnderlying?.koTimeIndicativeInfo !== null;\n const textPresent = this.popoverText !== undefined;\n return notNull && textPresent;\n }\n\n get showKoTimeInCetIsIndicative(): boolean {\n const defaultUnderlying = this.underlyings?.[0];\n return defaultUnderlying?.koTimeIndicativeInfo === KnockoutTimeIndicativeInfo.KoTimeInCetIsIndicative;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ddf24c34\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.cookiesAccepted)?[(_vm.cookiesAccepted)?_c('ce-video-preview',{attrs:{\"youtube-id\":_vm.settingsProperty.youtubeId},scopedSlots:_vm._u([{key:\"preview-image\",fn:function(){return [_vm._t(\"preview-image\")]},proxy:true}],null,true)}):_vm._e(),_c('ce-video-info',{attrs:{\"youtube-id\":_vm.settingsProperty.youtubeId},scopedSlots:_vm._u([{key:\"default\",fn:function({ title, duration }){return [(_vm.settingsProperty.showTitle)?_c('span',{staticClass:\"d-block video-title\"},[_vm._v(_vm._s(title))]):_vm._e(),_c('span',{staticClass:\"d-block\"},[_vm._v(_vm._s(duration))])]}}],null,false,952472760)})]:[_vm._t(\"missing-cookie\",null,{\"viewMode\":_vm.missingCookieBlockViewMode})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <template v-if=\"cookiesAccepted\">\n <ce-video-preview v-if=\"cookiesAccepted\" :youtube-id=\"settingsProperty.youtubeId\">\n <template #preview-image>\n <slot name=\"preview-image\"></slot>\n </template>\n </ce-video-preview>\n <ce-video-info :youtube-id=\"settingsProperty.youtubeId\">\n <template #default=\"{ title, duration }\">\n <span class=\"d-block video-title\" v-if=\"settingsProperty.showTitle\">{{ title }}</span>\n <span class=\"d-block\">{{ duration }}</span>\n </template>\n </ce-video-info>\n </template>\n <template v-else>\n <slot name=\"missing-cookie\" :view-mode=\"missingCookieBlockViewMode\"></slot>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { MissingCookieViewMode } from '@/src/types/enumerations';\nimport { VideoBlockSettings } from '@/src/types/episerver-api';\nimport CookieManager from '@/src/utils/cookie';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class AdVideo extends Vue {\n @Inject() settingsProperty!: VideoBlockSettings;\n private cookieManager!: CookieManager;\n\n missingCookieBlockViewMode = MissingCookieViewMode.Content;\n\n get cookiesAccepted(): boolean {\n return this.cookieManager?.thirdPartyMedia;\n }\n\n private created() {\n this.cookieManager = new CookieManager(this.$cookies);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.video-title {\n color: $marine-blue;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5b05ef20\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5b05ef20&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"accordion\"},_vm._l((_vm.headers),function(h,i){return _c('b-card',{key:i,staticClass:\"accordion__header important py-4\",attrs:{\"no-body\":\"\"}},[_c('b-card-header',{staticClass:\"bg-transparent border-0 p-0\"},[_c('div',{directives:[{name:\"b-toggle\",rawName:\"v-b-toggle\",value:('acc-' + i),expression:\"'acc-' + i\"}],staticClass:\"outline-none d-flex align-items-center\"},[_c('ad-icon-chevron',{staticClass:\"mr-3 fs-12 accordion-collapse-indicator\",attrs:{\"direction\":\"down\"}}),_c('div',{staticClass:\"accordion__header__big-text fs-26\"},[_c('ce-node-renderer',{attrs:{\"node\":h}})],1)],1)]),_c('b-collapse',{attrs:{\"id\":'acc-' + i,\"accordion\":\"ce-acc\",\"visible\":_vm.visibleAccordionIndex !== null && _vm.visibleAccordionIndex === i}},[_c('b-card-body',{staticClass:\"accordion__content px-0 fs-20\"},[_c('ce-node-renderer',{attrs:{\"node\":_vm.contents[i]}})],1)],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"accordion\">\n <b-card class=\"accordion__header important py-4\" no-body v-for=\"(h, i) in headers\" v-bind:key=\"i\">\n <b-card-header class=\"bg-transparent border-0 p-0\">\n <div class=\"outline-none d-flex align-items-center\" v-b-toggle=\"'acc-' + i\">\n <ad-icon-chevron class=\"mr-3 fs-12 accordion-collapse-indicator\" direction=\"down\" />\n <div class=\"accordion__header__big-text fs-26\"><ce-node-renderer :node=\"h\" /></div>\n </div>\n </b-card-header>\n <b-collapse\n :id=\"'acc-' + i\"\n accordion=\"ce-acc\"\n :visible=\"visibleAccordionIndex !== null && visibleAccordionIndex === i\"\n >\n <b-card-body class=\"accordion__content px-0 fs-20\"><ce-node-renderer :node=\"contents[i]\" /></b-card-body>\n </b-collapse>\n </b-card>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue, { VNode } from 'vue';\nimport { Prop } from 'vue-property-decorator';\nimport Component from 'vue-class-component';\nimport { filterVNodes } from '@src/utils/vnodes-filter';\n\n@Component\nexport default class CeAccordion extends Vue {\n @Prop({ default: null, type: Number })\n visibleAccordionIndex!: number | null;\n\n get headers(): VNode[] {\n return filterVNodes(this.$slots.header);\n }\n\n get contents(): VNode[] {\n return filterVNodes(this.$slots.content);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.accordion {\n &__header {\n &.important {\n border: 1px solid $peacock-blue;\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n box-shadow: none;\n background-color: $white;\n color: $peacock-blue;\n }\n &__small-text {\n color: $peacock-blue;\n }\n\n &__big-text {\n color: $peacock-blue;\n }\n\n .not-collapsed &__big-text,\n .card-header:hover &__big-text {\n color: $marine-blue;\n }\n\n .card-header:hover {\n .accordion-collapse-indicator {\n color: $bright-sky-blue;\n }\n }\n }\n .accordion-collapse-indicator {\n transition-duration: 0.5s;\n color: $clarinet;\n }\n .not-collapsed {\n .accordion-collapse-indicator {\n transform: rotate(180deg);\n }\n }\n .outline-none {\n outline: none;\n }\n &__content {\n color: $gunmetal;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2d5498bf\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2d5498bf&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-article-navigation\"},[(_vm.previousUrl)?_c('a',{staticClass:\"btn ce-article-navigation--previous justify-content-center d-flex align-items-center\",attrs:{\"href\":_vm.previousUrl}},[_c('ad-icon-chevron',{attrs:{\"rotate\":\"90\"}}),_vm._t(\"previous-button-text\",function(){return [_vm._v(\"Previous\")]})],2):_c('span',{staticClass:\"ce-article-navigation--previous\"}),(_vm.nextUrl)?_c('a',{staticClass:\"btn ce-article-navigation--next justify-content-center d-flex align-items-center\",attrs:{\"href\":_vm.nextUrl}},[_vm._t(\"next-button-text\",function(){return [_vm._v(\"Next\")]}),_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],2):_c('span',{staticClass:\"ce-article-navigation--next\"}),(_vm.backUrl)?_c('a',{staticClass:\"btn ce-article-navigation--back-to-overview justify-content-center d-flex align-items-center\",attrs:{\"href\":_vm.backUrl}},[_vm._t(\"back-button-text\",function(){return [_vm._v(\"Back to overview\")]})],2):_c('span',{staticClass:\"ce-article-navigation--back-to-overview\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-article-navigation\">\n <a\n v-if=\"previousUrl\"\n class=\"btn ce-article-navigation--previous justify-content-center d-flex align-items-center\"\n :href=\"previousUrl\"\n >\n <ad-icon-chevron rotate=\"90\"></ad-icon-chevron><slot name=\"previous-button-text\">Previous</slot>\n </a>\n <span v-else class=\"ce-article-navigation--previous\"></span>\n <a\n v-if=\"nextUrl\"\n class=\"btn ce-article-navigation--next justify-content-center d-flex align-items-center\"\n :href=\"nextUrl\"\n >\n <slot name=\"next-button-text\">Next</slot><ad-icon-chevron rotate=\"270\"></ad-icon-chevron>\n </a>\n <span v-else class=\"ce-article-navigation--next\"></span>\n <a\n v-if=\"backUrl\"\n class=\"btn ce-article-navigation--back-to-overview justify-content-center d-flex align-items-center\"\n :href=\"backUrl\"\n ><slot name=\"back-button-text\">Back to overview</slot></a\n >\n <span v-else class=\"ce-article-navigation--back-to-overview\"></span>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeArticleNavigation extends Vue {\n @Prop() previousUrl?: string;\n @Prop() backUrl?: string;\n @Prop() nextUrl?: string;\n}\n</script>\n\n<style lang=\"scss\">\n.ce-article-navigation {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n border-top: 1px dashed $gunmetal;\n border-bottom: 1px dashed $gunmetal;\n padding: map-get($spacers, 3) 0;\n\n & &--next,\n & &--previous {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: map-get($spacers, 2) map-get($spacers, 3);\n width: calc(50% - #{map-get($spacers, 2)});\n\n svg {\n font-size: 0.75rem;\n }\n\n @include media-breakpoint-up('md') {\n width: 12rem;\n }\n }\n\n &--previous {\n order: 0;\n }\n\n &--next {\n order: 1;\n\n @include media-breakpoint-up('md') {\n order: 2;\n }\n }\n\n &--back-to-overview {\n order: 2;\n margin-top: map-get($spacers, 4);\n width: 100%;\n\n @include media-breakpoint-up('md') {\n order: 1;\n margin-top: 0;\n width: 12rem;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1d012406\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1d012406&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row no-gutters ce-author-big\"},[(_vm.imageLink)?_c('div',{staticClass:\"ce-author-big-image-outer-wrapper col-12 col-md-4 mr-md-4\"},[_c('div',{staticClass:\"ce-author-big-image-inner-wrapper\"},[_c('img',{staticClass:\"ce-author-big-image\",attrs:{\"src\":_vm.imageLink}})])]):_vm._e(),_c('div',{staticClass:\"ce-author-big-text col-12 col-md p-0\"},[_c('div',{staticClass:\"ce-author-big-header fs-16 pt-2 pt-md-2\"},[_vm._t(\"headline\")],2),_c('div',{staticClass:\"ce-author-big-name fs-26 pt-0\"},[_vm._t(\"name\")],2),_c('div',{staticClass:\"ce-author-big-description fs-18 pt-2\"},[_vm._t(\"about\")],2),(_vm.linkedInUrl)?_c('a',{staticClass:\"link btn btn-default mt-3 mt-md-4 mr-2 w-100 w-md-auto\",attrs:{\"href\":_vm.linkedInUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('ad-icon-linked-in',{attrs:{\"height\":\"1.2em\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._t(\"linkedin-button-text\",function(){return [_vm._v(\"Connect with me\")]})],2)],1):_vm._e(),(_vm.xingUrl)?_c('a',{staticClass:\"link btn btn-default mt-3 mt-md-4 w-100 w-md-auto\",attrs:{\"href\":_vm.xingUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('ad-icon-xing',{attrs:{\"height\":\"1.2em\",\"width\":\"2.4em\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._t(\"xing-button-text\",function(){return [_vm._v(\"Connect with me\")]})],2)],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"row no-gutters ce-author-big\">\n <div class=\"ce-author-big-image-outer-wrapper col-12 col-md-4 mr-md-4\" v-if=\"imageLink\">\n <div class=\"ce-author-big-image-inner-wrapper\">\n <img :src=\"imageLink\" class=\"ce-author-big-image\" />\n </div>\n </div>\n <div class=\"ce-author-big-text col-12 col-md p-0\">\n <div class=\"ce-author-big-header fs-16 pt-2 pt-md-2\">\n <slot name=\"headline\"></slot>\n </div>\n <div class=\"ce-author-big-name fs-26 pt-0\">\n <slot name=\"name\"></slot>\n </div>\n <div class=\"ce-author-big-description fs-18 pt-2\">\n <slot name=\"about\"></slot>\n </div>\n <a\n v-if=\"linkedInUrl\"\n :href=\"linkedInUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"link btn btn-default mt-3 mt-md-4 mr-2 w-100 w-md-auto\"\n >\n <ad-icon-linked-in height=\"1.2em\"></ad-icon-linked-in>\n <span class=\"pl-1\">\n <slot name=\"linkedin-button-text\">Connect with me</slot>\n </span>\n </a>\n <a\n v-if=\"xingUrl\"\n :href=\"xingUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"link btn btn-default mt-3 mt-md-4 w-100 w-md-auto\"\n >\n <ad-icon-xing height=\"1.2em\" width=\"2.4em\"></ad-icon-xing>\n <span class=\"pl-1\">\n <slot name=\"xing-button-text\">Connect with me</slot>\n </span>\n </a>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { AuthorBlockSettings } from '@/src/types/episerver-api';\nimport { Vue, Component, Inject } from 'vue-property-decorator';\n\n@Component\nexport default class CeAuthorBig extends Vue {\n @Inject()\n settingsProperty!: AuthorBlockSettings;\n\n get imageLink(): string | null {\n return this.settingsProperty.imageUrl;\n }\n\n get linkedInUrl(): string | null {\n return this.settingsProperty.linkedInUrl;\n }\n\n get xingUrl(): string | null {\n return this.settingsProperty.xingUrl;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-author-big {\n .ce-author-big-image {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n padding: 0;\n object-fit: cover;\n width: 100%;\n height: 100%;\n }\n .ce-author-big-header {\n color: $peacock-blue;\n }\n .ce-author-big-name {\n color: $marine-blue;\n }\n .ce-author-big-description {\n color: $gunmetal;\n }\n\n .ce-author-big-image-inner-wrapper {\n position: relative;\n padding-top: 100%;\n width: 100%;\n }\n .ce-author-big-image-outer-wrapper {\n flex: 0 0 auto;\n padding: 0;\n width: rem(154);\n @include media-breakpoint-up('md') {\n width: rem(190);\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5c40321a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5c40321a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"row ce-author-small align-items-center justify-content-between mx-0 px-0\"},[_c('div',{staticClass:\"ce-author-small__author col-12 col-md-auto px-0\"},[(_vm.authorImageUrl)?_c('img',{staticClass:\"ce-author-small__image\",attrs:{\"src\":_vm.authorImageUrl}}):_vm._e(),_c('div',{staticClass:\"ce-author-small__text fs-16 d-flex flex-column\"},[_c('span',[_vm._t(\"author-name\")],2),_c('span',[_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey)))])])]),_c('div',{staticClass:\"col-12 col-md-auto ce-author-like-share d-flex justify-content-md-end px-0\"},[_c('div',{staticClass:\"row align-self-stretch mx-0 align-items-center flex-grow-1\"},[(_vm.settingsProperty.contentId)?_c('div',{staticClass:\"d-flex justify-content-start justify-content-md-end col-12 col-md-auto fs-14 ce-author-like__container px-0 my-3 mr-md-2\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId,\"show-count-on-left\":true}}),_c('span',{staticClass:\"pl-1\"},[_vm._t(\"social-like\")],2)],1):_vm._e(),_c('div',{staticClass:\"col-12 col-md-auto ce-author-like-share__buttons d-flex px-0\"},[_c('ce-facebook-button',{attrs:{\"shareURL\":_vm.shareUrl,\"facebookAppId\":_vm.settingsProperty.facebookAppId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"social-share-facebook\")]},proxy:true}],null,true)}),_c('div',{staticClass:\"spacer pr-4 pr-md-3 py-1\"}),_c('ce-twitter-button',{attrs:{\"shareURL\":_vm.shareUrl,\"tweetText\":_vm.settingsProperty.twitterTeaserText},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"social-share-twitter\")]},proxy:true}],null,true)})],1)])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"row ce-author-small align-items-center justify-content-between mx-0 px-0\">\n <div class=\"ce-author-small__author col-12 col-md-auto px-0\">\n <img :src=\"authorImageUrl\" class=\"ce-author-small__image\" v-if=\"authorImageUrl\" />\n <div class=\"ce-author-small__text fs-16 d-flex flex-column\">\n <span><slot name=\"author-name\"></slot></span>\n <span>{{ settingsProperty.publishedDate | formatField(dateFormatKey) }}</span>\n </div>\n </div>\n <div class=\"col-12 col-md-auto ce-author-like-share d-flex justify-content-md-end px-0\">\n <div class=\"row align-self-stretch mx-0 align-items-center flex-grow-1\">\n <div\n v-if=\"settingsProperty.contentId\"\n class=\"d-flex justify-content-start justify-content-md-end col-12 col-md-auto fs-14 ce-author-like__container px-0 my-3 mr-md-2\"\n >\n <ad-like-count :content-id=\"settingsProperty.contentId\" :show-count-on-left=\"true\"></ad-like-count>\n <span class=\"pl-1\"><slot name=\"social-like\"></slot></span>\n </div>\n <div class=\"col-12 col-md-auto ce-author-like-share__buttons d-flex px-0\">\n <ce-facebook-button :shareURL=\"shareUrl\" :facebookAppId=\"settingsProperty.facebookAppId\">\n <template #label><slot name=\"social-share-facebook\"></slot></template>\n </ce-facebook-button>\n <div class=\"spacer pr-4 pr-md-3 py-1\"></div>\n <ce-twitter-button :shareURL=\"shareUrl\" :tweetText=\"settingsProperty.twitterTeaserText\">\n <template #label><slot name=\"social-share-twitter\"></slot></template>\n </ce-twitter-button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { DefaultFormat } from '@/src/types/enumerations';\nimport { BlogPageSettings } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeAuthorSmall extends Vue {\n @Inject()\n settingsProperty!: BlogPageSettings;\n get authorImageUrl(): string {\n return this.settingsProperty.authorImageUrl ?? '';\n }\n\n get shareUrl(): string {\n return document.location.href;\n }\n\n get dateFormatKey(): string {\n return DefaultFormat.BlogDate;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-author-small {\n border-top: 1px dashed $gunmetal;\n border-bottom: 1px dashed $gunmetal;\n padding: map-get($spacers, 3) map-get($spacers, 2);\n\n &__author {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n &__text {\n padding-left: rem(8);\n }\n &__image {\n border-radius: 50%;\n width: 60px;\n height: 60px;\n object-fit: cover;\n }\n\n /* stylelint-disable-next-line media-query-no-invalid */\n @media (max-width: map-get($grid-breakpoints, md)) {\n padding: map-get($spacers, 2) map-get($spacers, 2);\n }\n}\n\n.ce-author-like-share {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n &__share-button {\n flex-shrink: 0;\n }\n\n &__buttons {\n flex-direction: column;\n\n @media (min-width: 400px) {\n flex-direction: row;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=24b27306\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=24b27306&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"position-relative\"},[_c('ce-ad-marker',[_vm._v(\"Advertisement\")]),_vm._m(0)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{staticClass:\"overflow-hidden d-block\",attrs:{\"href\":\"#\"}},[_c('picture',{staticClass:\"d-none d-md-block\"},[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":\"https://picsum.photos/seed/2/1300/300\"}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":\"https://picsum.photos/seed/2/1300/300\"}}),_c('img',{staticClass:\"w-100\",attrs:{\"src\":\"https://picsum.photos/seed/2/1300/300\"}})]),_c('picture',{staticClass:\"d-block d-md-none\"},[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":\"https://picsum.photos/seed/7/1600/700\"}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":\"https://picsum.photos/seed/7/1600/700\"}}),_c('img',{staticClass:\"w-100\",attrs:{\"src\":\"https://picsum.photos/seed/7/1600/700\"}})])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"position-relative\">\n <ce-ad-marker>Advertisement</ce-ad-marker>\n <a href=\"#\" class=\"overflow-hidden d-block\">\n <picture class=\"d-none d-md-block\">\n <source media=\"(min-width:650px)\" srcset=\"https://picsum.photos/seed/2/1300/300\" />\n <source media=\"(min-width:465px)\" srcset=\"https://picsum.photos/seed/2/1300/300\" />\n <img src=\"https://picsum.photos/seed/2/1300/300\" class=\"w-100\" />\n </picture>\n\n <picture class=\"d-block d-md-none\">\n <source media=\"(min-width:650px)\" srcset=\"https://picsum.photos/seed/7/1600/700\" />\n <source media=\"(min-width:465px)\" srcset=\"https://picsum.photos/seed/7/1600/700\" />\n <img src=\"https://picsum.photos/seed/7/1600/700\" class=\"w-100\" />\n </picture>\n </a>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeBannerAd extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6b973dd4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h1',[_vm._v(\"Short News\")]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-8 pb-4\"},[_c('div',{staticClass:\"px-md-0 py-4 ce-blog-short-news__news-tile\"},[_c('div',{staticClass:\"ce-blog-short-news__date fs-18\"},[_vm._v(\" 09 Dez 2019 \")]),_vm._m(0),_vm._m(1),_c('div',{staticClass:\"ce-blog-short-news__likes d-flex align-items-center pt-2\"},[_c('button',{staticClass:\"ce-author-like__button text-nowrap px-0\"},[_c('ad-icon-like',{attrs:{\"height\":\"1.71em\"}})],1),_c('span',{staticClass:\"font-weight-bold fs-14 pl-1\"},[_vm._v(\"12\")])])]),_c('div',{staticClass:\"px-md-0 py-4 ce-blog-short-news__news-tile\"},[_c('div',{staticClass:\"ce-blog-short-news__date fs-18\"},[_vm._v(\" 09 Dez 2019 \")]),_vm._m(2),_c('div',{staticClass:\"ce-blog-short-news__text\"},[_vm._v(\" Mit einem Jahresumsatz von rund 233 Milliarden Euro, mehr als 6.500 Unternehmen und 1,35 Millionen Beschäftigten gilt der Maschinen- und Anlagebau als Rückgrat der deutschen Industrie. \")]),_c('div',{staticClass:\"ce-blog-short-news__likes d-flex align-items-center pt-2\"},[_c('button',{staticClass:\"ce-author-like__button text-nowrap px-0\"},[_c('ad-icon-like',{attrs:{\"height\":\"1.71em\"}})],1),_c('span',{staticClass:\"font-weight-bold fs-14 pl-1\"},[_vm._v(\"12\")])])]),_c('div',{staticClass:\"px-md-0 py-4 ce-blog-short-news__news-tile\"},[_c('div',{staticClass:\"ce-blog-short-news__date fs-18\"},[_vm._v(\" 06 Dez 2019 \")]),_vm._m(3),_c('div',{staticClass:\"ce-blog-short-news__text\"},[_vm._v(\" Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. \")]),_c('div',{staticClass:\"ce-blog-short-news__likes d-flex align-items-center pt-2\"},[_c('button',{staticClass:\"ce-author-like__button text-nowrap px-0\"},[_c('ad-icon-like',{attrs:{\"height\":\"1.71em\"}})],1),_c('span',{staticClass:\"font-weight-bold fs-14 pl-1\"},[_vm._v(\"12\")])])])]),_vm._m(4)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h3',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Handelszeiten am Montag den 20. Januar (Martin Luther King Tag)\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-blog-short-news__text\"},[_c('ul',[_c('li',[_vm._v(\"Gold und Silber: 19 Uhr Handelsende.\")]),_c('li',[_vm._v(\"Brent: Normaler Handel.\")]),_c('li',[_vm._v(\"US Aktien: Kleinere Volumen und angepasste Spreads. \")]),_c('li',[_vm._v(\"US Indizes und Nikkei 225: Kleinere Volumen ab 19 Uhr.\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h3',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Maschinenbau: Viel Schatten, wenig Licht\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h3',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Gold - Edelmetall bereit für den nächsten Sprung? Startet Gold wieder durch?\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col-12 d-flex justify-content-start\"},[_c('button',{staticClass:\"btn btn-secondary w-100 w-md-auto\"},[_vm._v(\"Show more news\")])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div>\n <!-- this part is moved to CeAdShortNewsContainer -->\n <h1>Short News</h1>\n <div class=\"row\">\n <div class=\"col-12 col-md-8 pb-4\">\n <div class=\"px-md-0 py-4 ce-blog-short-news__news-tile\">\n <div class=\"ce-blog-short-news__date fs-18\"> 09 Dez 2019 </div>\n <h3><a href=\"#\">Handelszeiten am Montag den 20. Januar (Martin Luther King Tag)</a></h3>\n <div class=\"ce-blog-short-news__text\">\n <ul>\n <li>Gold und Silber: 19 Uhr Handelsende.</li>\n <li>Brent: Normaler Handel.</li>\n <li>US Aktien: Kleinere Volumen und angepasste Spreads. </li>\n <li>US Indizes und Nikkei 225: Kleinere Volumen ab 19 Uhr.</li>\n </ul>\n </div>\n <div class=\"ce-blog-short-news__likes d-flex align-items-center pt-2\">\n <button class=\"ce-author-like__button text-nowrap px-0\">\n <ad-icon-like height=\"1.71em\"></ad-icon-like>\n </button>\n <span class=\"font-weight-bold fs-14 pl-1\">12</span>\n </div>\n </div>\n <div class=\"px-md-0 py-4 ce-blog-short-news__news-tile\">\n <div class=\"ce-blog-short-news__date fs-18\"> 09 Dez 2019 </div>\n <h3><a href=\"#\">Maschinenbau: Viel Schatten, wenig Licht</a></h3>\n <div class=\"ce-blog-short-news__text\">\n Mit einem Jahresumsatz von rund 233 Milliarden Euro, mehr als 6.500 Unternehmen und 1,35 Millionen\n Beschäftigten gilt der Maschinen- und Anlagebau als Rückgrat der deutschen Industrie.\n </div>\n <div class=\"ce-blog-short-news__likes d-flex align-items-center pt-2\">\n <button class=\"ce-author-like__button text-nowrap px-0\">\n <ad-icon-like height=\"1.71em\"></ad-icon-like>\n </button>\n <span class=\"font-weight-bold fs-14 pl-1\">12</span>\n </div>\n </div>\n <div class=\"px-md-0 py-4 ce-blog-short-news__news-tile\">\n <div class=\"ce-blog-short-news__date fs-18\"> 06 Dez 2019 </div>\n <h3><a href=\"#\">Gold - Edelmetall bereit für den nächsten Sprung? Startet Gold wieder durch?</a></h3>\n <div class=\"ce-blog-short-news__text\">\n Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.\n Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis,\n ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.\n </div>\n <div class=\"ce-blog-short-news__likes d-flex align-items-center pt-2\">\n <button class=\"ce-author-like__button text-nowrap px-0\">\n <ad-icon-like height=\"1.71em\"></ad-icon-like>\n </button>\n <span class=\"font-weight-bold fs-14 pl-1\">12</span>\n </div>\n </div>\n </div>\n <div class=\"col-12 d-flex justify-content-start\">\n <button class=\"btn btn-secondary w-100 w-md-auto\">Show more news</button>\n </div>\n </div>\n <!-- till here CeAdShortNewsContainer -->\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeBlogShortNews extends Vue {}\n</script>\n\n<style lang=\"scss\">\n.ce-blog-short-news {\n &__news-tile {\n border-top: 1px dashed $peacock-blue;\n }\n\n &__date {\n color: $peacock-blue;\n }\n\n &__header {\n color: $marine-blue;\n }\n\n &__text {\n color: $gunmetal;\n }\n\n &__likes {\n color: $peacock-blue;\n svg {\n color: $clarinet;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5d6045af\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5d6045af&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-chapter-select\"},[_c('h2',[_vm._t(\"heading\",function(){return [_vm._v(\"Content\")]})],2),_c('ol',{staticClass:\"ce-chapter-select--chapter-list\"},_vm._l((_vm.chapters),function(chapter,i){return _c('li',{key:chapter.identifier || i},[_c('a',{staticClass:\"ce-chapter-select--chapter\",class:{ active: _vm.isChapterActive(chapter) },attrs:{\"href\":_vm.isChapterActive(chapter) ? undefined : chapter.url}},[_c('div',[_c('span',{staticClass:\"ce-chapter-select--active-chapter-indicator fs-14\"},[_vm._t(\"you-are-here\",function(){return [_vm._v(\"You are here\")]})],2),_c('span',{staticClass:\"ce-chapter-select--chapter-title fs-26\"},[_c('span',{staticClass:\"ce-chapter-select--chapter-number\"},[_vm._v(_vm._s(i + 1)+\". \")]),_c('span',{staticClass:\"ce-chapter-select--chapter-title-text\"},[_c('ad-template-renderer',{attrs:{\"text\":chapter.title}})],1)])]),_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],1)])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-chapter-select\">\n <h2><slot name=\"heading\">Content</slot></h2>\n\n <ol class=\"ce-chapter-select--chapter-list\">\n <li v-for=\"(chapter, i) in chapters\" v-bind:key=\"chapter.identifier || i\">\n <a\n class=\"ce-chapter-select--chapter\"\n :class=\"{ active: isChapterActive(chapter) }\"\n :href=\"isChapterActive(chapter) ? undefined : chapter.url\"\n >\n <div>\n <span class=\"ce-chapter-select--active-chapter-indicator fs-14\">\n <slot name=\"you-are-here\">You are here</slot>\n </span>\n <span class=\"ce-chapter-select--chapter-title fs-26\">\n <span class=\"ce-chapter-select--chapter-number\">{{ i + 1 }}. </span>\n <span class=\"ce-chapter-select--chapter-title-text\"\n ><ad-template-renderer :text=\"chapter.title\"></ad-template-renderer\n ></span>\n </span>\n </div>\n <ad-icon-chevron rotate=\"270\"></ad-icon-chevron>\n </a>\n </li>\n </ol>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { ChapterNavigationChapter } from '@/src/types/ce-component-types';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeChapterSelect extends Vue {\n /**\n * All chapters that will be displayed in the UI.\n */\n @Prop({ default: [] }) chapters!: ChapterNavigationChapter[];\n\n /**\n * Chapter that is marked as active in the UI\n * Can be provided as a string (identifier of the chapter) or as a chapter object.\n * When a chapter object is supplied, the identifier is used to determine if the chapter is active.\n */\n @Prop() activeChapter: ChapterNavigationChapter | string | undefined | null;\n\n isChapterActive(chapter: ChapterNavigationChapter) {\n if (!this.activeChapter) return false;\n\n if (typeof this.activeChapter === 'string') {\n return this.activeChapter === chapter.identifier;\n }\n\n if (this.activeChapter === chapter) return true;\n\n if (chapter.identifier && this.activeChapter.identifier) {\n return chapter.identifier === this.activeChapter.identifier;\n }\n\n return false;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-chapter-select {\n &--chapter-list {\n margin-top: map-get($spacers, 4);\n padding: 0;\n list-style-type: none;\n\n @include media-breakpoint-up('md') {\n margin-top: map-get($spacers, 5);\n }\n }\n\n &--chapter {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: space-between;\n margin-bottom: map-get($spacers, 2);\n border: 1px dashed $bright-sky-blue;\n border-radius: 0.5rem;\n cursor: pointer;\n padding: map-get($spacers, 3);\n color: $peacock-blue;\n\n &:hover,\n &:focus {\n background: transparentize($bright-sky-blue, 0.9);\n color: $marine-blue;\n\n svg {\n color: $bright-sky-blue;\n }\n }\n\n &:focus {\n border: 2px solid $peacock-blue;\n padding: calc(#{map-get($spacers, 3)} - 1px);\n }\n\n &.active {\n background: transparentize($bright-sky-blue, 0.9);\n cursor: default;\n padding-top: map-get($spacers, 4);\n color: $gunmetal;\n\n svg {\n display: none;\n }\n\n .ce-chapter-select--active-chapter-indicator {\n display: block;\n }\n }\n }\n\n &--active-chapter-indicator {\n display: none;\n position: absolute;\n top: map-get($spacers, 2);\n color: $peacock-blue;\n font-weight: bold;\n }\n\n &--chapter-title {\n display: flex;\n padding-right: 1.5rem;\n }\n\n &--chapter-number {\n margin-right: 0.5rem;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=02b41724\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=02b41724&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[_c('a',{staticClass:\"col-12 col-md-4 d-block mb-3 mb-md-0\",attrs:{\"href\":\"#\"}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":\"https://picsum.photos/seed/2/1600/900\"}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":\"https://picsum.photos/seed/2/1600/900\"}}),_c('img',{staticClass:\"w-100\",attrs:{\"src\":\"https://picsum.photos/seed/2/1600/900\"}})])]),_c('div',{staticClass:\"col-12 col-md-5 pt-md-2\"},[_c('p',{staticClass:\"fs-12 mb-2\"},[_vm._v(\"Advertisement\")]),_c('h3',[_vm._v(\"Lorem ipsum dolor med\")]),_c('p',[_vm._v(\"Lorem ipsum dolor sit amet consectetur adipisicing elit. Est magni similique dolores quasi \")]),_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Learn more\")])])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"row\">\n <a href=\"#\" class=\"col-12 col-md-4 d-block mb-3 mb-md-0\">\n <picture>\n <source media=\"(min-width:650px)\" srcset=\"https://picsum.photos/seed/2/1600/900\" />\n <source media=\"(min-width:465px)\" srcset=\"https://picsum.photos/seed/2/1600/900\" />\n <img src=\"https://picsum.photos/seed/2/1600/900\" class=\"w-100\" />\n </picture>\n </a>\n <div class=\"col-12 col-md-5 pt-md-2\">\n <p class=\"fs-12 mb-2\">Advertisement</p>\n <h3>Lorem ipsum dolor med</h3>\n <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Est magni similique dolores quasi </p>\n <a href=\"#\">Learn more</a>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeContentAd extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0b005312\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{class:['p-3 d-inline-block ce-download', _vm.buttonClass, { disabled: _vm.disabled, 'full-width': _vm.isFullWidth }],attrs:{\"href\":_vm.url},on:{\"click\":function($event){$event.preventDefault();_vm.disabled ? undefined : _vm.handleButtonClick()}}},[_c('div',{staticClass:\"row no-gutters\"},[(_vm.hasImageSlot)?_c('div',{staticClass:\"col-3\"},[_c('div',{staticClass:\"aspect-ratio-120-93 d-block\"},[_vm._t(\"image\")],2)]):_vm._e(),(!_vm.isIconAtRight)?_c('div',{staticClass:\"col-2 ce-download__icon d-flex justify-content-center\",class:_vm.alignment},[_c('ad-icon-download')],1):_vm._e(),_c('div',{staticClass:\"ce-download__text d-flex flex-column align-items-start text-left\",class:_vm.colNumber},[_c('div',{staticClass:\"d-flex align-items-start mb-1\"},[_vm._t(\"text\")],2),(!_vm.hideFileFormat)?_c('div',{staticClass:\"fs-14 ce-download__file-format\"},[_vm._t(\"fileFormat\")],2):_vm._e()]),(_vm.isIconAtRight)?_c('div',{staticClass:\"col-2 ce-download__icon d-flex justify-content-center align-items-center\"},[_c('ad-icon-download')],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <a\n :class=\"['p-3 d-inline-block ce-download', buttonClass, { disabled: disabled, 'full-width': isFullWidth }]\"\n :href=\"url\"\n @click.prevent=\"disabled ? undefined : handleButtonClick()\"\n >\n <div class=\"row no-gutters\">\n <div v-if=\"hasImageSlot\" class=\"col-3\">\n <div class=\"aspect-ratio-120-93 d-block\">\n <slot name=\"image\"></slot>\n </div>\n </div>\n <div v-if=\"!isIconAtRight\" :class=\"alignment\" class=\"col-2 ce-download__icon d-flex justify-content-center\">\n <ad-icon-download />\n </div>\n <div :class=\"colNumber\" class=\"ce-download__text d-flex flex-column align-items-start text-left\">\n <div class=\"d-flex align-items-start mb-1\">\n <slot name=\"text\"></slot>\n </div>\n <div v-if=\"!hideFileFormat\" class=\"fs-14 ce-download__file-format\">\n <slot name=\"fileFormat\"></slot>\n </div>\n </div>\n <div v-if=\"isIconAtRight\" class=\"col-2 ce-download__icon d-flex justify-content-center align-items-center\">\n <ad-icon-download />\n </div>\n </div>\n </a>\n</template>\n<script lang=\"ts\">\nimport { Prop, Vue, Component } from 'vue-property-decorator';\nimport { downloadFileGetOrOpenInNewWindowForExternalUrl } from '@src/utils/download-file';\nimport { HttpStatusCodes } from '@src/types/enumerations';\n\n@Component\nexport default class CeDownload extends Vue {\n @Prop({ default: '' }) url!: string;\n @Prop({ default: false }) disabled!: boolean;\n @Prop({ type: Boolean, default: false }) isIconAtRight!: boolean;\n @Prop({ type: Boolean, default: false }) hideFileFormat!: boolean;\n @Prop({ type: Boolean, default: false }) isFullWidth!: boolean;\n /* eslint-disable @typescript-eslint/no-empty-function */\n @Prop({\n default: () => {},\n type: Function,\n })\n downloadClick!: () => void;\n /* eslint-enable @typescript-eslint/no-empty-function */\n\n get hasImageSlot() {\n return !!this.$slots.image;\n }\n\n get colNumber() {\n if (this.$slots.image) return 'col-7';\n return 'col-10';\n }\n\n get alignment() {\n if (this.$slots.image) return 'pt-1 align-items-start';\n return 'align-items-center';\n }\n\n get buttonClass() {\n if (this.hasImageSlot) return '';\n return 'imageless';\n }\n\n async handleButtonClick() {\n if (this.disabled) return;\n this.downloadClick();\n\n const result = await downloadFileGetOrOpenInNewWindowForExternalUrl(this.url);\n\n if (result !== HttpStatusCodes.OK) {\n this.$emit('downloadError', result);\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.ce-download {\n margin-bottom: map-get($spacers, 2);\n border: 1px solid $silver;\n border-radius: 4px;\n background: $white;\n width: rem(410);\n max-width: 100%;\n\n &:hover {\n .ce-download {\n &__icon {\n color: $bright-sky-blue;\n }\n &__text {\n color: $marine-blue;\n }\n }\n }\n\n &:focus {\n outline-color: $peacock-blue;\n }\n\n &:disabled {\n background: $light-grey;\n cursor: default;\n\n .ce-download {\n &__text {\n color: $cool-grey;\n }\n &__file-format {\n color: $cool-grey;\n }\n &__icon {\n color: $cool-grey;\n }\n }\n }\n\n &__text {\n line-height: 1.3;\n color: $peacock-blue;\n }\n\n &__file-format {\n color: $peacock-blue;\n }\n\n &__icon {\n color: $clarinet;\n }\n\n &.full-width {\n width: 100%;\n }\n}\n\n.imageless:not(:disabled) {\n background: $silver;\n &:hover {\n background: $peacock-blue;\n .ce-download {\n &__text {\n color: $white;\n }\n &__icon {\n color: $white;\n }\n &__file-format {\n color: $white;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e5ecdf48\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e5ecdf48&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-glossary-content mt-6\"},[_c('div',{staticClass:\"ce-glossary-content--top-navigation\"},_vm._l((_vm.letters),function(letter){return _c('button',{key:letter,staticClass:\"ce-glossary-content--top-navigation-letter\",attrs:{\"disabled\":!_vm.entriesByLetter[letter] || _vm.entriesByLetter[letter].length === 0},on:{\"click\":function($event){return _vm.scrollToLetter(letter)}}},[_vm._v(\" \"+_vm._s(letter.toUpperCase())+\" \")])}),0),_c('ce-glossary-mobile-section-navigation-button',{attrs:{\"entriesByLetter\":_vm.entriesByLetter,\"letters\":_vm.letters},on:{\"scrollToLetter\":_vm.scrollToLetter}},[_vm._t(\"mobile-a-z-label\",function(){return [_vm._v(\"A-Z\")]})],2),_vm._l((_vm.lettersWithWords),function(letter){return _c('div',{key:letter,staticClass:\"pt-7\",attrs:{\"data-glossary-letter\":letter}},[_c('div',{staticClass:\"d-none d-md-block\"},[_c('ce-glossary-desktop-section-letter-selector',{attrs:{\"entriesByLetter\":_vm.entriesByLetter,\"currentLetter\":letter,\"letters\":_vm.letters},on:{\"scrollToLetter\":_vm.scrollToLetter}})],1),_c('div',{staticClass:\"ce-glossary-content--mobile-letter-heading d-md-none\"},[_vm._v(_vm._s(letter.toUpperCase()))]),_c('div',{staticClass:\"pb-4\"}),_vm._l((_vm.entriesByLetter[letter]),function(entry,index){return _c('div',{key:index,staticClass:\"ce-glossary-content--word p-0 pt-4 pb-4 col-12 col-lg-7\"},[_c('h3',[_vm._v(_vm._s(entry.word))]),_c('p',[_vm._v(_vm._s(entry.definition))])])})],2)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-glossary-content mt-6\">\n <div class=\"ce-glossary-content--top-navigation\">\n <button\n v-for=\"letter in letters\"\n :key=\"letter\"\n class=\"ce-glossary-content--top-navigation-letter\"\n :disabled=\"!entriesByLetter[letter] || entriesByLetter[letter].length === 0\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter.toUpperCase() }}\n </button>\n </div>\n <ce-glossary-mobile-section-navigation-button\n :entriesByLetter=\"entriesByLetter\"\n :letters=\"letters\"\n @scrollToLetter=\"scrollToLetter\"\n >\n <slot name=\"mobile-a-z-label\">A-Z</slot>\n </ce-glossary-mobile-section-navigation-button>\n <div class=\"pt-7\" v-for=\"letter in lettersWithWords\" :key=\"letter\" :data-glossary-letter=\"letter\">\n <div class=\"d-none d-md-block\">\n <ce-glossary-desktop-section-letter-selector\n :entriesByLetter=\"entriesByLetter\"\n :currentLetter=\"letter\"\n :letters=\"letters\"\n @scrollToLetter=\"scrollToLetter\"\n >\n </ce-glossary-desktop-section-letter-selector>\n </div>\n <div class=\"ce-glossary-content--mobile-letter-heading d-md-none\">{{ letter.toUpperCase() }}</div>\n <div class=\"pb-4\"></div>\n <div\n v-for=\"(entry, index) in entriesByLetter[letter]\"\n :key=\"index\"\n class=\"ce-glossary-content--word p-0 pt-4 pb-4 col-12 col-lg-7\"\n >\n <h3>{{ entry.word }}</h3>\n <p>{{ entry.definition }}</p>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { GlossaryEntry } from '@/src/types/ce-component-types';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeGlossaryContent extends Vue {\n @Prop({ default: [] }) entries!: GlossaryEntry[];\n letters = 'abcdefghijklmnopqrstuvwxyz'.split('');\n\n get entriesByLetter() {\n const entriesByLetter: Record<string, GlossaryEntry[]> = {};\n\n for (const entry of this.entries) {\n const letter = entry.word.toLowerCase()[0];\n if (!entriesByLetter[letter]) entriesByLetter[letter] = [];\n entriesByLetter[letter].push(entry);\n }\n return entriesByLetter;\n }\n\n get lettersWithWords() {\n return this.letters.filter((letter) => !!this.entriesByLetter[letter] && this.entriesByLetter[letter].length > 0);\n }\n\n scrollToLetter(letter: string) {\n const section = document.querySelector(`[data-glossary-letter=\"${letter}\"]`);\n\n if (!section) return;\n\n section.scrollIntoView({ behavior: 'smooth' });\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-glossary-content {\n &--word {\n border-top: 1px dashed $peacock-blue;\n\n p {\n margin: 0;\n }\n }\n\n &--top-navigation-letter {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-right: 1px;\n margin-bottom: 1px;\n border: 0;\n\n background: $light-grey;\n width: rem(48);\n height: rem(56);\n color: $peacock-blue;\n font-size: rem(28);\n\n &:disabled {\n color: $cool-grey;\n }\n\n &:hover:not(:disabled) {\n background: $peacock-blue;\n color: $white;\n }\n\n @include media-breakpoint-up('md') {\n margin-right: map-get($spacers, 4);\n margin-bottom: map-get($spacers, 4);\n border-radius: 50%;\n width: rem(56);\n }\n }\n\n &--mobile-letter-heading {\n color: $marine-blue;\n font-size: rem(42);\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8251b1ee\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8251b1ee&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-glossary-desktop-letter-selector\",class:{ open: _vm.open }},[_c('button',{staticClass:\"ce-glossary-desktop-letter-selector--current-letter-button\",on:{\"click\":function($event){_vm.open = !_vm.open}}},[_vm._v(\" \"+_vm._s(_vm.currentLetter.toUpperCase())+\" \")]),_c('div',{staticClass:\"ce-glossary-desktop-letter-selector--letter-container\"},[_c('div',{staticClass:\"ce-glossary-desktop-letter-selector--letter-row-container\"},_vm._l((_vm.firstLettersRow),function(letter,index){return _c('button',{key:index,staticClass:\"ce-glossary-desktop-letter-selector--letter-button\",class:{ 'is-current': letter === _vm.currentLetter },attrs:{\"disabled\":!_vm.entriesByLetter[letter] || _vm.entriesByLetter[letter].length === 0},on:{\"click\":function($event){return _vm.scrollToLetter(letter)}}},[_vm._v(\" \"+_vm._s(letter.toUpperCase())+\" \")])}),0),_c('div',{staticClass:\"ce-glossary-desktop-letter-selector--letter-row-container\"},_vm._l((_vm.secondLettersRow),function(letter,index){return _c('button',{key:index,staticClass:\"ce-glossary-desktop-letter-selector--letter-button\",class:{ 'is-current': letter === _vm.currentLetter },attrs:{\"disabled\":!_vm.entriesByLetter[letter] || _vm.entriesByLetter[letter].length === 0},on:{\"click\":function($event){return _vm.scrollToLetter(letter)}}},[_vm._v(\" \"+_vm._s(letter.toUpperCase())+\" \")])}),0)]),_c('button',{staticClass:\"ce-glossary-desktop-letter-selector--expansion-toggle\",on:{\"click\":function($event){_vm.open = !_vm.open}}},[(!_vm.open)?_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}}):_vm._e(),(_vm.open)?_c('ad-icon-chevron',{attrs:{\"rotate\":\"90\"}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-glossary-desktop-letter-selector\" :class=\"{ open }\">\n <button class=\"ce-glossary-desktop-letter-selector--current-letter-button\" @click=\"open = !open\">\n {{ currentLetter.toUpperCase() }}\n </button>\n\n <div class=\"ce-glossary-desktop-letter-selector--letter-container\">\n <div class=\"ce-glossary-desktop-letter-selector--letter-row-container\">\n <button\n v-for=\"(letter, index) in firstLettersRow\"\n :key=\"index\"\n class=\"ce-glossary-desktop-letter-selector--letter-button\"\n :class=\"{ 'is-current': letter === currentLetter }\"\n :disabled=\"!entriesByLetter[letter] || entriesByLetter[letter].length === 0\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter.toUpperCase() }}\n </button>\n </div>\n <div class=\"ce-glossary-desktop-letter-selector--letter-row-container\">\n <button\n v-for=\"(letter, index) in secondLettersRow\"\n :key=\"index\"\n class=\"ce-glossary-desktop-letter-selector--letter-button\"\n :class=\"{ 'is-current': letter === currentLetter }\"\n :disabled=\"!entriesByLetter[letter] || entriesByLetter[letter].length === 0\"\n @click=\"scrollToLetter(letter)\"\n >\n {{ letter.toUpperCase() }}\n </button>\n </div>\n </div>\n\n <button class=\"ce-glossary-desktop-letter-selector--expansion-toggle\" @click=\"open = !open\">\n <ad-icon-chevron rotate=\"270\" v-if=\"!open\"></ad-icon-chevron>\n <ad-icon-chevron rotate=\"90\" v-if=\"open\"></ad-icon-chevron>\n </button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { GlossaryEntry } from '@/src/types/ce-component-types';\nimport { Vue, Component, Prop, Emit } from 'vue-property-decorator';\n\n@Component\nexport default class CeGlossaryDesktopSectionLetterSelector extends Vue {\n @Prop({ default: {} }) entriesByLetter!: Record<string, GlossaryEntry[]>;\n @Prop() currentLetter!: string;\n @Prop() letters!: string[];\n\n open = false;\n\n @Emit('scrollToLetter')\n scrollToLetter(letter: string) {\n this.open = false;\n return letter;\n }\n\n get firstLettersRow() {\n const firstLetterOfSecondRow = Math.floor(this.letters.length / 2);\n return this.letters.slice(0, firstLetterOfSecondRow);\n }\n\n get secondLettersRow() {\n const firstLetterOfSecondRow = Math.floor(this.letters.length / 2);\n return this.letters.slice(firstLetterOfSecondRow);\n }\n}\n</script>\n\n<style lang=\"scss\">\n$letter-button-width: 40;\n\n.ce-glossary-desktop-letter-selector {\n display: flex;\n\n &--current-letter-button {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n transition: border-radius 0.5s;\n border: 0;\n border-radius: $border-radius;\n background: $silver;\n width: rem(58);\n color: $peacock-blue;\n\n &:hover {\n background: $peacock-blue;\n color: $white;\n }\n }\n\n &.open &--current-letter-button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n background: $peacock-blue;\n color: $white;\n }\n\n &--letter-container {\n display: flex;\n flex-direction: column;\n transition: width 0.5s;\n width: 0;\n overflow: hidden;\n white-space: nowrap;\n\n @include media-breakpoint-up('xl') {\n flex-direction: row;\n }\n }\n\n &--letter-row-container {\n flex: 0 0 auto;\n }\n\n &.open &--letter-container {\n width: rem($letter-button-width + 1) * 13;\n\n @include media-breakpoint-up('xl') {\n width: rem($letter-button-width + 1) * 26;\n }\n }\n\n &--letter-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 1px;\n margin-left: 1px;\n border: 0;\n background: $light-grey;\n width: rem($letter-button-width);\n min-width: 0;\n height: rem(56);\n color: $peacock-blue;\n\n &:disabled {\n color: $cool-grey;\n }\n\n &.is-current,\n &:hover:not(:disabled) {\n background: $peacock-blue;\n color: $white;\n }\n }\n\n &--expansion-toggle {\n margin-left: 1px;\n border: 0;\n background: transparent;\n color: $marine-blue;\n font-size: 0.6rem;\n }\n\n &.open &--expansion-toggle {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n background: $peacock-blue;\n color: $white;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=009cbcbe\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=009cbcbe&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-glossary-mobile-section-navigation-button d-block d-md-none\",class:{ open: _vm.open }},[_c('button',{staticClass:\"ce-glossary-mobile-section-navigation-button--open-button\",on:{\"click\":function($event){_vm.open = true}}},[_vm._t(\"default\")],2),_c('div',{staticClass:\"ce-glossary-mobile-section-navigation-button--letter-selection\"},[_c('div',{staticClass:\"ce-glossary-mobile-section-navigation-button--letter-selection-header\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"ce-glossary-mobile-section-navigation-button--letter-container\"},_vm._l((_vm.letters),function(letter){return _c('button',{key:letter,staticClass:\"ce-glossary-mobile-section-navigation-button--letter\",attrs:{\"disabled\":!_vm.entriesByLetter[letter] || _vm.entriesByLetter[letter].length === 0},on:{\"click\":function($event){return _vm.scrollToLetter(letter)}}},[_vm._v(\" \"+_vm._s(letter.toUpperCase())+\" \")])}),0),_c('div',{staticClass:\"ce-glossary-mobile-section-navigation-button--letter-selection-footer\"},[_c('button',{on:{\"click\":function($event){_vm.open = false}}},[_c('ad-icon-close')],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-glossary-mobile-section-navigation-button d-block d-md-none\" :class=\"{ open }\">\n <button class=\"ce-glossary-mobile-section-navigation-button--open-button\" @click=\"open = true\">\n <slot></slot>\n </button>\n <div class=\"ce-glossary-mobile-section-navigation-button--letter-selection\">\n <div class=\"ce-glossary-mobile-section-navigation-button--letter-selection-header\">\n <slot></slot>\n </div>\n <div class=\"ce-glossary-mobile-section-navigation-button--letter-container\">\n <button\n v-for=\"letter in letters\"\n :key=\"letter\"\n @click=\"scrollToLetter(letter)\"\n :disabled=\"!entriesByLetter[letter] || entriesByLetter[letter].length === 0\"\n class=\"ce-glossary-mobile-section-navigation-button--letter\"\n >\n {{ letter.toUpperCase() }}\n </button>\n </div>\n <div class=\"ce-glossary-mobile-section-navigation-button--letter-selection-footer\">\n <button @click=\"open = false\"><ad-icon-close></ad-icon-close></button>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { GlossaryEntry } from '@/src/types/ce-component-types';\nimport { Vue, Component, Prop, Emit } from 'vue-property-decorator';\n\n@Component\nexport default class CeGlossaryMobileSectionNavigationButton extends Vue {\n @Prop({ default: {} }) entriesByLetter!: Record<string, GlossaryEntry[]>;\n @Prop() letters!: string[];\n\n open = false;\n\n @Emit('scrollToLetter')\n scrollToLetter(letter: string) {\n this.open = false;\n return letter;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-glossary-mobile-section-navigation-button {\n position: fixed;\n right: 15px;\n bottom: calc(50vh - #{rem(100)});\n z-index: 5;\n\n &--open-button {\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.16s;\n border: 0;\n border-radius: 50%;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.24);\n background: $bright-sky-blue;\n width: rem(64);\n height: rem(64);\n color: $white;\n font-size: $fs-22;\n\n &:focus {\n // Only visible on mobile, so outline: none is okay\n outline: 0;\n }\n &:hover {\n background-color: $teal-blue;\n }\n }\n\n &--letter-selection {\n position: fixed;\n right: 15px;\n bottom: calc(50vh - #{rem(100)});\n left: 15px;\n transition: opacity 0.2s;\n opacity: 0;\n border-bottom-right-radius: 1rem;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.16);\n background: $white;\n color: $marine-blue;\n font-size: $fs-26;\n pointer-events: none;\n }\n\n &.open &--letter-selection {\n opacity: 1;\n pointer-events: all;\n }\n\n &--letter-selection-header {\n padding: map-get($spacers, 1);\n }\n\n &--letter-container {\n display: flex;\n flex-wrap: wrap;\n }\n\n &--letter {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n margin-right: 1px;\n margin-bottom: 1px;\n border: 0;\n background: $light-grey;\n width: calc(#{(100% / 7)} - 1px);\n height: rem(56);\n color: $peacock-blue;\n\n &:disabled {\n color: $cool-grey;\n }\n\n &:hover:not(:disabled) {\n background: $peacock-blue;\n color: $white;\n }\n }\n\n &--letter-selection-footer {\n display: flex;\n justify-content: flex-end;\n\n button {\n border: 0;\n background: transparent;\n padding: 1rem;\n color: $marine-blue;\n font-size: 1rem;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=dccd5fbe\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=dccd5fbe&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-grouped-download-button\"},[_vm._l((_vm.groupChunks),function(chunk,indexOfChunk){return _c('b-collapse',{key:indexOfChunk,attrs:{\"visible\":_vm.expandedChunks >= indexOfChunk}},_vm._l((chunk),function(group,index){return _c('div',{key:index,staticClass:\"ce-grouped-download-button--group\",class:{ expanded: _vm.openGroupIndices.has(_vm.getGlobalIndex(index, indexOfChunk)) }},[_c('a',{staticClass:\"ce-grouped-download-button--group-link\",class:{ '--has-children': !!group.childDownloads },attrs:{\"href\":group.link},on:{\"click\":function($event){$event.preventDefault();return _vm.handleDownloadClick(group)}}},[_c('span',{staticClass:\"ce-grouped-download-button--group-icon\"},[_c('ad-icon-download')],1),_c('span',{staticClass:\"ce-grouped-download-button--group-text-container\"},[_c('span',{staticClass:\"ce-grouped-download-button--group-title\"},[_vm._v(_vm._s(group.title))]),_c('span',{staticClass:\"ce-grouped-download-button--group-file-type fs-14\"},[_vm._v(_vm._s(group.format))])])]),(group.childDownloads)?_c('button',{staticClass:\"ce-grouped-download-button--group-button\",on:{\"click\":function($event){_vm.toggle(_vm.getGlobalIndex(index, indexOfChunk))}}},[_c('ad-icon-chevron',{attrs:{\"width\":\"12\"}}),_vm._t(\"summary-and-supplements\",function(){return [_vm._v(\"Summary and supplements\")]})],2):_vm._e(),_c('b-collapse',{staticClass:\"ce-grouped-download-button--child-groups\",attrs:{\"visible\":_vm.openGroupIndices.has(_vm.getGlobalIndex(index, indexOfChunk))}},[_vm._l((group.childDownloads),function(childGroup,index){return [_c('a',{key:index,staticClass:\"ce-grouped-download-button--group-link level-1\",class:{ '--has-children': !!childGroup.childDownloads },attrs:{\"href\":childGroup.link},on:{\"click\":function($event){$event.preventDefault();return _vm.handleDownloadClick(childGroup)}}},[_c('span',{staticClass:\"ce-grouped-download-button--group-icon\"},[_c('ad-icon-download')],1),_c('span',{staticClass:\"ce-grouped-download-button--group-text-container\"},[_c('span',{staticClass:\"ce-grouped-download-button--group-title\"},[_vm._v(_vm._s(childGroup.title))]),_c('span',{staticClass:\"ce-grouped-download-button--group-file-type fs-14\"},[_vm._v(_vm._s(childGroup.format))])])]),_vm._l((childGroup.childDownloads),function(group,childIndex){return _c('a',{key:childIndex + '' + index,staticClass:\"ce-grouped-download-button--group-link level-2\",attrs:{\"href\":group.link},on:{\"click\":function($event){$event.preventDefault();return _vm.handleDownloadClick(group)}}},[_c('span',{staticClass:\"ce-grouped-download-button--group-icon\"},[_c('ad-icon-download')],1),_c('span',{staticClass:\"ce-grouped-download-button--group-text-container\"},[_c('span',{staticClass:\"ce-grouped-download-button--group-title\"},[_vm._v(_vm._s(group.title))]),_c('span',{staticClass:\"ce-grouped-download-button--group-file-type fs-14\"},[_vm._v(_vm._s(group.format))])])])})]})],2)],1)}),0)}),(_vm.groupChunks.length > 1)?_c('button',{staticClass:\"ce-grouped-download-button--show-more-button\",class:{ 'shown-all': _vm.hasShownAll },on:{\"click\":function($event){return _vm.showOlder()}}},[(_vm.hasShownAll)?_c('span',[_vm._t(\"hide-older\",function(){return [_vm._v(\"Hide older\")]})],2):_c('span',[_vm._t(\"show-older\",function(){return [_vm._v(\"Show older\")]})],2),_c('ad-icon-chevron',{attrs:{\"width\":\"12\"}})],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-grouped-download-button\">\n <b-collapse\n v-for=\"(chunk, indexOfChunk) in groupChunks\"\n :key=\"indexOfChunk\"\n :visible=\"expandedChunks >= indexOfChunk\"\n >\n <div\n v-for=\"(group, index) in chunk\"\n :key=\"index\"\n class=\"ce-grouped-download-button--group\"\n :class=\"{ expanded: openGroupIndices.has(getGlobalIndex(index, indexOfChunk)) }\"\n >\n <a\n @click.prevent=\"handleDownloadClick(group)\"\n :href=\"group.link\"\n class=\"ce-grouped-download-button--group-link\"\n :class=\"{ '--has-children': !!group.childDownloads }\"\n >\n <span class=\"ce-grouped-download-button--group-icon\">\n <ad-icon-download></ad-icon-download>\n </span>\n <span class=\"ce-grouped-download-button--group-text-container\">\n <span class=\"ce-grouped-download-button--group-title\">{{ group.title }}</span>\n <span class=\"ce-grouped-download-button--group-file-type fs-14\">{{ group.format }}</span>\n </span>\n </a>\n <button\n v-if=\"group.childDownloads\"\n class=\"ce-grouped-download-button--group-button\"\n @click=\"toggle(getGlobalIndex(index, indexOfChunk))\"\n >\n <ad-icon-chevron width=\"12\"></ad-icon-chevron>\n <slot name=\"summary-and-supplements\">Summary and supplements</slot>\n </button>\n <b-collapse\n class=\"ce-grouped-download-button--child-groups\"\n :visible=\"openGroupIndices.has(getGlobalIndex(index, indexOfChunk))\"\n >\n <template v-for=\"(childGroup, index) in group.childDownloads\">\n <a\n :key=\"index\"\n @click.prevent=\"handleDownloadClick(childGroup)\"\n :href=\"childGroup.link\"\n class=\"ce-grouped-download-button--group-link level-1\"\n :class=\"{ '--has-children': !!childGroup.childDownloads }\"\n >\n <span class=\"ce-grouped-download-button--group-icon\">\n <ad-icon-download></ad-icon-download>\n </span>\n <span class=\"ce-grouped-download-button--group-text-container\">\n <span class=\"ce-grouped-download-button--group-title\">{{ childGroup.title }}</span>\n <span class=\"ce-grouped-download-button--group-file-type fs-14\">{{ childGroup.format }}</span>\n </span>\n </a>\n <a\n v-for=\"(group, childIndex) in childGroup.childDownloads\"\n :key=\"childIndex + '' + index\"\n @click.prevent=\"handleDownloadClick(group)\"\n :href=\"group.link\"\n class=\"ce-grouped-download-button--group-link level-2\"\n >\n <span class=\"ce-grouped-download-button--group-icon\">\n <ad-icon-download></ad-icon-download>\n </span>\n <span class=\"ce-grouped-download-button--group-text-container\">\n <span class=\"ce-grouped-download-button--group-title\">{{ group.title }}</span>\n <span class=\"ce-grouped-download-button--group-file-type fs-14\">{{ group.format }}</span>\n </span>\n </a>\n </template>\n </b-collapse>\n </div>\n </b-collapse>\n\n <button\n v-if=\"groupChunks.length > 1\"\n @click=\"showOlder()\"\n class=\"ce-grouped-download-button--show-more-button\"\n :class=\"{ 'shown-all': hasShownAll }\"\n >\n <span v-if=\"hasShownAll\"><slot name=\"hide-older\">Hide older</slot></span>\n <span v-else><slot name=\"show-older\">Show older</slot></span>\n <ad-icon-chevron width=\"12\"></ad-icon-chevron>\n </button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop } from 'vue-property-decorator';\nimport Vue from 'vue';\nimport chunk from 'lodash/chunk';\nimport { GroupedDownloadGroupItem } from '@/src/types/vue-api';\nimport { downloadFileGetOrOpenInNewWindowForExternalUrl } from '@src/utils/download-file';\nimport { HttpStatusCodes } from '@src/types/enumerations';\n\n@Component\nexport default class CeGroupedDownloadButton extends Vue {\n @Prop({ required: true }) downloadGroups!: GroupedDownloadGroupItem[];\n @Prop({ type: Number }) loadMoreCount!: number;\n /* eslint-disable @typescript-eslint/no-empty-function */\n @Prop({\n default: () => {},\n type: Function,\n })\n downloadClick!: (url: string, title: string, format: string) => void;\n /* eslint-enable @typescript-eslint/no-empty-function */\n\n // First chunk (the main download group) is always visible\n expandedChunks = 0;\n\n openGroupIndices = new Set<number>();\n\n get groupChunks() {\n // Sort newest to oldest\n const sorted = [...this.downloadGroups].sort((a, b) => (a.date < b.date ? 1 : -1));\n const [first, ...remaining] = sorted;\n\n const remainingChunks = chunk(remaining, this.loadMoreCount);\n return [[first], ...remainingChunks];\n }\n\n get hasShownAll() {\n return this.expandedChunks >= this.groupChunks.length - 1;\n }\n\n getGlobalIndex(indexInChunk: number, indexOfChunk: number) {\n if (indexOfChunk === 0) return indexInChunk;\n return 1 + indexInChunk + 3 * (indexOfChunk - 1);\n }\n\n toggle(globalIndex: number) {\n if (this.openGroupIndices.has(globalIndex)) {\n this.openGroupIndices.delete(globalIndex);\n } else {\n this.openGroupIndices.add(globalIndex);\n }\n // Set operations need force update\n this.$forceUpdate();\n }\n\n showOlder() {\n if (this.hasShownAll) this.expandedChunks = 0;\n else this.expandedChunks++;\n }\n\n async handleDownloadClick(groupItem: GroupedDownloadGroupItem) {\n this.downloadClick(groupItem.link, groupItem.title, groupItem.format);\n\n const result = await downloadFileGetOrOpenInNewWindowForExternalUrl(groupItem.link);\n\n if (result !== HttpStatusCodes.OK) {\n this.$emit('downloadError', result);\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-grouped-download-button {\n display: inline-flex;\n flex-direction: column;\n border-radius: 0.5rem;\n background: $silver;\n width: rem(410);\n max-width: 100%;\n overflow: hidden;\n\n &--group {\n display: flex;\n flex-direction: column;\n transition: background 0.15s;\n border-bottom: 1px solid $peacock-blue;\n\n &.expanded {\n background: $light-grey;\n }\n }\n\n &--group-link {\n display: flex;\n align-items: center;\n padding: map-get($spacers, 3) map-get($spacers, 3);\n color: $peacock-blue;\n\n &:hover {\n background: $peacock-blue;\n color: $white;\n\n svg {\n color: $white;\n }\n }\n\n &.--has-children {\n border-bottom: 1px dashed $peacock-blue;\n }\n\n &.level-1:first-of-type {\n padding-top: map-get($spacers, 2);\n }\n\n &.level-2 {\n border-bottom: 1px dashed $peacock-blue;\n padding-left: map-get($spacers, 6);\n }\n }\n\n &--group-icon {\n display: flex;\n\n flex: 0 0 auto;\n width: 2.5rem;\n color: $clarinet;\n }\n\n &--group-text-container {\n display: flex;\n flex-direction: column;\n }\n\n &--group-button {\n border: 0;\n background: inherit;\n padding: map-get($spacers, 3) map-get($spacers, 3);\n text-align: left;\n color: $peacock-blue;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n background: $peacock-blue;\n color: $white;\n\n svg {\n color: $white;\n }\n }\n\n svg {\n transition: transform 0.15s;\n margin-right: map-get($spacers, 1);\n color: $clarinet;\n\n .expanded & {\n transform: rotate(180deg);\n }\n }\n }\n\n &--show-more-button {\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n border: 0;\n background: inherit;\n padding: map-get($spacers, 5);\n color: $bright-sky-blue;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n color: $teal;\n }\n\n svg {\n position: absolute;\n top: 55%;\n transition: transform 0.15s;\n }\n }\n\n &--show-more-button.shown-all svg {\n transform: rotate(180deg);\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1030a0c1\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1030a0c1&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100 position-relative ce-header-image\"},[_c('div',{staticClass:\"aspect-ratio-1600-540 w-100 ce-header-image__image-container\"},[_vm._t(\"header-image\")],2),(_vm.$slots['left-block'] || _vm.$slots['right-block'])?_c('div',{staticClass:\"ce-header-image__overlay pt-3 pt-lg-0\"},[_c('div',{class:[\n 'content-container',\n 'content-container-x',\n 'container-fluid',\n 'd-flex',\n 'flex-column',\n 'flex-lg-row',\n 'align-items-center',\n 'h-100',\n 'my-0',\n { 'w-100': _vm.$screen.lg },\n ]},[_c('div',{staticClass:\"row justify-content-between w-100\"},[_c('div',{staticClass:\"col-12 col-lg-7 d-flex align-items-center\"},[(_vm.$slots['left-block'])?_c('div',{class:['ce-header-image__block', 'p-lg-3', 'p-xl-6', 'w-100', { 'bg-transparent': _vm.hideLightBox }]},[_c('div',{staticClass:\"ce-header-image__inner-block\"},[_vm._t(\"left-block\")],2)]):_vm._e()]),_c('div',{staticClass:\"col-12 col-lg-4 d-flex align-items-center\"},[_c('div',{staticClass:\"ce-header-image__block my-5 my-lg-0 w-100\"},[_c('div',{staticClass:\"ce-header-image__inner-block\"},[_vm._t(\"right-block\")],2)])])])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"w-100 position-relative ce-header-image\">\n <div class=\"aspect-ratio-1600-540 w-100 ce-header-image__image-container\">\n <slot name=\"header-image\" />\n </div>\n <div v-if=\"$slots['left-block'] || $slots['right-block']\" class=\"ce-header-image__overlay pt-3 pt-lg-0\">\n <div\n :class=\"[\n 'content-container',\n 'content-container-x',\n 'container-fluid',\n 'd-flex',\n 'flex-column',\n 'flex-lg-row',\n 'align-items-center',\n 'h-100',\n 'my-0',\n { 'w-100': $screen.lg },\n ]\"\n >\n <div class=\"row justify-content-between w-100\">\n <div class=\"col-12 col-lg-7 d-flex align-items-center\">\n <div\n v-if=\"$slots['left-block']\"\n :class=\"['ce-header-image__block', 'p-lg-3', 'p-xl-6', 'w-100', { 'bg-transparent': hideLightBox }]\"\n >\n <div class=\"ce-header-image__inner-block\">\n <slot name=\"left-block\" />\n </div>\n </div>\n </div>\n <div class=\"col-12 col-lg-4 d-flex align-items-center\">\n <div class=\"ce-header-image__block my-5 my-lg-0 w-100\">\n <div class=\"ce-header-image__inner-block\">\n <slot name=\"right-block\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeHeaderImage extends Vue {\n @Prop({ default: false, type: Boolean }) hideLightBox!: boolean;\n}\n</script>\n\n<style lang=\"scss\">\n.ce-header-image {\n & &__image-container {\n @include media-breakpoint-up('lg') {\n padding-top: 0;\n height: 650px;\n }\n }\n\n &__overlay {\n position: relative;\n background-color: $silver;\n @include media-breakpoint-up('lg') {\n position: absolute;\n top: 0;\n z-index: 2;\n background-color: transparent;\n width: 100%;\n height: 100%;\n pointer-events: none;\n }\n }\n\n &__slots {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n &__block {\n border-radius: 12px;\n background-color: $silver;\n @include media-breakpoint-up('lg') {\n background-color: rgba($white, 0.6);\n }\n }\n\n &__inner-block {\n pointer-events: all;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5de7e982\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5de7e982&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-gallery\"},[_c('b-carousel',{attrs:{\"id\":\"carousel-1\",\"interval\":0},model:{value:(_vm.index),callback:function ($$v) {_vm.index=$$v},expression:\"index\"}},_vm._l((_vm.filteredNodes),function(slide,i){return _c('b-carousel-slide',{key:i},[_c('ce-node-renderer',{attrs:{\"node\":slide}})],1)}),1),_c('div',{staticClass:\"ce-gallery--controls mt-3\"},[_c('button',{on:{\"click\":function($event){_vm.index--}}},[_c('ad-icon-chevron',{attrs:{\"direction\":\"left\"}})],1),_c('div',{staticClass:\"ce-gallery--indicators\"},_vm._l((_vm.filteredNodes),function(slide,i){return _c('div',{key:i,staticClass:\"ce-gallery--indicator\",class:{ active: i === _vm.index }})}),0),_c('button',{on:{\"click\":function($event){_vm.index++}}},[_c('ad-icon-chevron',{attrs:{\"direction\":\"right\"}})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-gallery\">\n <b-carousel id=\"carousel-1\" :interval=\"0\" v-model=\"index\">\n <b-carousel-slide v-for=\"(slide, i) in filteredNodes\" :key=\"i\">\n <ce-node-renderer :node=\"slide\"></ce-node-renderer>\n </b-carousel-slide>\n </b-carousel>\n <div class=\"ce-gallery--controls mt-3\">\n <button @click=\"index--\"><ad-icon-chevron direction=\"left\"></ad-icon-chevron></button>\n <div class=\"ce-gallery--indicators\">\n <div\n class=\"ce-gallery--indicator\"\n v-for=\"(slide, i) in filteredNodes\"\n :key=\"i\"\n :class=\"{ active: i === index }\"\n >\n </div>\n </div>\n <button @click=\"index++\"><ad-icon-chevron direction=\"right\"></ad-icon-chevron></button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component } from 'vue-property-decorator';\nimport Vue, { VNode } from 'vue';\nimport { filterVNodes } from '@/src/utils/vnodes-filter';\n\n@Component\nexport default class CeImageGallery extends Vue {\n index = 0;\n\n get filteredNodes(): VNode[] {\n return filterVNodes(this.$slots.default);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-gallery {\n &--controls {\n display: flex;\n align-items: center;\n justify-content: center;\n\n button {\n border: 0;\n background: transparent;\n color: $marine-blue;\n }\n }\n &--indicators {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n max-width: rem(800);\n }\n &--indicator {\n margin: 0 0.25rem;\n border-radius: 50%;\n background: $silver;\n width: 0.5rem;\n height: 0.5rem;\n\n &.active {\n background: $bright-sky-blue;\n }\n }\n\n .carousel-caption {\n position: relative;\n top: 0;\n left: 0;\n z-index: 0;\n margin: 0;\n padding: 0;\n text-align: left;\n color: inherit;\n }\n\n .carousel-item {\n display: block;\n transition: none;\n visibility: hidden;\n\n &-left,\n &-right {\n transition: transform 0.6s;\n }\n\n &-next,\n &-prev,\n &.active {\n visibility: visible;\n }\n }\n}\n\n.ce-gallery-image-container {\n display: flex;\n position: relative;\n border: 1px solid $silver;\n width: 100%;\n height: 600px;\n max-height: 50vh;\n overflow: hidden;\n\n img {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cde187ea\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=cde187ea&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-newsletter-registration\"},[_c('div',{staticClass:\"ce-newsletter-registration--checkmark-container\"},[_c('ad-icon-check')],1),_vm._m(0),_c('a',{staticClass:\"btn btn-secondary\",attrs:{\"href\":\"/\"}},[_vm._v(\"Visit home page\")])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"blog-container container-fluid\"},[_c('h2',[_vm._v(\"Your registration for our newsletters has been successful.\")])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-newsletter-registration\">\n <div class=\"ce-newsletter-registration--checkmark-container\">\n <ad-icon-check></ad-icon-check>\n </div>\n <div class=\"blog-container container-fluid\">\n <h2>Your registration for our newsletters has been successful.</h2>\n </div>\n <a href=\"/\" class=\"btn btn-secondary\">Visit home page</a>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeNewsletterRegistration extends Vue {}\n</script>\n\n<style lang=\"scss\">\n.ce-newsletter-registration {\n display: flex;\n flex-direction: column;\n align-items: center;\n background: $marine-blue;\n\n &--checkmark-container {\n display: flex;\n align-items: center;\n justify-content: center;\n transform: translate(0, -50%);\n border-radius: 50%;\n background: $turquoise-blue;\n width: 100px;\n height: 100px;\n color: $white;\n font-size: 2rem;\n }\n\n h2 {\n margin-bottom: map-get($spacers, 6);\n text-align: center;\n color: $white;\n }\n\n .btn {\n margin-bottom: map-get($spacers, 8);\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3fc53d62\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3fc53d62&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-radio-buttons\",class:{ 'dropdown-required-on-mobile': _vm.dropdownRequired, stretched: _vm.stretched !== false }},[(_vm.label)?_c('label',{staticClass:\"fs-14 ce-radio-buttons--buttons-label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('div',{ref:\"buttonContainer\",staticClass:\"ce-radio-buttons--buttons\"},_vm._l((_vm.getChildNodes()),function(option,i){return _c('button',{key:i,staticClass:\"fs-14\",class:{\n selected: option.data.attrs.value === _vm.value,\n 'sibling-hovered': _vm.hoveredOptionIndex !== -1 && _vm.hoveredOptionIndex !== i,\n 'last-of-row': _vm.lastOfRowIndices.has(i),\n 'first-of-row': _vm.firstOfRowIndices.has(i),\n 'first-of-first-row-with-multiple-rows': _vm.firstOfRowIndices.size > 1 && i === 0,\n 'last-row': _vm.rowIndexByOptionIndex[i] === _vm.rowCount - 1,\n },attrs:{\"disabled\":option.data.attrs.disabled,\"type\":'button'},on:{\"click\":function($event){return _vm.handleSelect(option.data.attrs.value)},\"mouseover\":function($event){_vm.hoveredOptionIndex = i},\"focus\":function($event){_vm.hoveredOptionIndex = i},\"mouseleave\":function($event){_vm.hoveredOptionIndex = -1},\"blur\":function($event){_vm.hoveredOptionIndex = -1}}},[_c('ce-node-renderer',{attrs:{\"node\":option}})],1)}),0),_c('div',{staticClass:\"ce-radio-buttons--dropdown\"},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'ce-radio-button-dropdown-form-group' + _vm._uid,\"label\":_vm.label,\"label-for\":'ce-radio-button-dropdown' + _vm._uid}},[_c('ad-drop-down-list',{attrs:{\"form-element-state-id\":'ce-radio-button-dropdown-form-group' + _vm._uid,\"options\":_vm.getDropdownOptions(),\"value\":_vm.value,\"id\":'ce-radio-button-dropdown' + _vm._uid},on:{\"input\":function($event){return _vm.handleSelect($event)}}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n class=\"ce-radio-buttons\"\n :class=\"{ 'dropdown-required-on-mobile': dropdownRequired, stretched: stretched !== false }\"\n >\n <label v-if=\"label\" class=\"fs-14 ce-radio-buttons--buttons-label\">{{ label }}</label>\n <div class=\"ce-radio-buttons--buttons\" ref=\"buttonContainer\">\n <button\n class=\"fs-14\"\n v-for=\"(option, i) in getChildNodes()\"\n :key=\"i\"\n @click=\"handleSelect(option.data.attrs.value)\"\n :disabled=\"option.data.attrs.disabled\"\n :type=\"'button'\"\n :class=\"{\n selected: option.data.attrs.value === value,\n 'sibling-hovered': hoveredOptionIndex !== -1 && hoveredOptionIndex !== i,\n 'last-of-row': lastOfRowIndices.has(i),\n 'first-of-row': firstOfRowIndices.has(i),\n 'first-of-first-row-with-multiple-rows': firstOfRowIndices.size > 1 && i === 0,\n 'last-row': rowIndexByOptionIndex[i] === rowCount - 1,\n }\"\n v-on:mouseover=\"hoveredOptionIndex = i\"\n v-on:focus=\"hoveredOptionIndex = i\"\n v-on:mouseleave=\"hoveredOptionIndex = -1\"\n v-on:blur=\"hoveredOptionIndex = -1\"\n >\n <ce-node-renderer :node=\"option\"></ce-node-renderer>\n </button>\n </div>\n\n <div class=\"ce-radio-buttons--dropdown\">\n <b-form-group\n :id=\"'ce-radio-button-dropdown-form-group' + _uid\"\n :label=\"label\"\n :label-for=\"'ce-radio-button-dropdown' + _uid\"\n class=\"focus-white\"\n >\n <ad-drop-down-list\n :form-element-state-id=\"'ce-radio-button-dropdown-form-group' + _uid\"\n :options=\"getDropdownOptions()\"\n :value=\"value\"\n @input=\"handleSelect($event)\"\n :id=\"'ce-radio-button-dropdown' + _uid\"\n />\n </b-form-group>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop } from 'vue-property-decorator';\nimport Vue, { VNode } from 'vue';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { DropDownItemType } from '@/src/types/enumerations';\nimport { filterVNodes } from '@/src/utils/vnodes-filter';\n\n@Component({})\nexport default class CeRadioButtons extends Vue {\n @Prop({ default: null }) label!: string;\n @Prop({ default: false }) stretched!: boolean;\n\n @Prop({ default: null }) value: unknown;\n\n dropdownRequired = false;\n\n /**\n * Radio buttons are placed in a flexbox that is allowed to wrap on desktop.\n * The indices of each rows first option is placed in the firstOfRowIndices\n */\n firstOfRowIndices = new Set<number>();\n lastOfRowIndices = new Set<number>();\n rowIndexByOptionIndex: { [key: number]: number } = {};\n rowCount = 1;\n\n hoveredOptionIndex = -1;\n\n observer = new IntersectionObserver(() => {\n this.handleResize();\n });\n\n get buttonContainer() {\n return this.$refs.buttonContainer as HTMLDivElement;\n }\n\n getChildNodes(): VNode[] {\n return filterVNodes(this.$slots.default);\n }\n\n getDropdownOptions(): DropDownItem[] {\n return (\n this.getChildNodes().map((node) => ({\n value: node.data?.attrs?.value,\n text: this.extractText(node),\n type: DropDownItemType.item,\n })) ?? []\n );\n }\n\n mounted() {\n window.addEventListener('resize', this.handleResize);\n if (this.buttonContainer.parentElement) {\n this.observer.observe(this.buttonContainer.parentElement);\n }\n this.handleResize();\n }\n\n updated() {\n this.handleResize();\n }\n\n destroyed() {\n window.removeEventListener('resize', this.handleResize);\n this.observer.disconnect();\n }\n\n extractText(node: VNode): string {\n return node.children ? node.children.map((child) => this.extractText(child)).join('') : node.text || '';\n }\n\n handleResize() {\n if (this.buttonContainer.parentElement) {\n this.buttonContainer.parentElement.classList.remove('dropdown-required-on-mobile');\n }\n\n const newFirstOfRowIndices = new Set<number>();\n const newLastOfRowIndices = new Set<number>();\n const newRowIndexByOptionIndex: { [key: number]: number } = {};\n let row = 0;\n let lastTopValue = -1;\n const options = this.buttonContainer.children;\n for (let i = 0; i < options.length; i++) {\n const top = options[i].getBoundingClientRect().top;\n if (top !== lastTopValue) {\n newFirstOfRowIndices.add(i);\n newLastOfRowIndices.add(i - 1);\n row++;\n }\n newRowIndexByOptionIndex[i] = row;\n lastTopValue = top;\n }\n\n this.rowCount = row + 1;\n\n if (options.length > 0) newLastOfRowIndices.add(options.length - 1);\n\n if (\n !this.areSetsEqual(this.firstOfRowIndices, newFirstOfRowIndices) ||\n !this.areSetsEqual(this.lastOfRowIndices, newLastOfRowIndices)\n ) {\n this.firstOfRowIndices = newFirstOfRowIndices;\n this.lastOfRowIndices = newLastOfRowIndices;\n this.rowIndexByOptionIndex = newRowIndexByOptionIndex;\n }\n\n const dropdownRequired = options.length > 4 || this.buttonContainer.clientWidth < this.buttonContainer.scrollWidth;\n this.dropdownRequired = dropdownRequired;\n if (dropdownRequired && this.buttonContainer.parentElement) {\n this.buttonContainer.parentElement.classList.add('dropdown-required-on-mobile');\n }\n }\n\n areSetsEqual<T>(setA: Set<T>, setB: Set<T>): boolean {\n if (setA.size !== setB.size) return false;\n return [...setA.values()].every((value) => setB.has(value));\n }\n\n handleSelect(value: unknown) {\n this.$emit('input', value);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-radio-buttons {\n &--buttons-label {\n display: block;\n margin-top: rem(-5);\n margin-bottom: map-get($spacers, 2);\n\n .dropdown-required-on-mobile & {\n display: none;\n }\n\n @include media-breakpoint-up('md') {\n .dropdown-required-on-mobile & {\n display: block;\n }\n }\n }\n\n &--buttons {\n display: flex;\n flex-wrap: nowrap;\n overflow-x: auto;\n\n .dropdown-required-on-mobile & {\n display: none;\n }\n button {\n flex: 0 0 auto;\n margin-right: 1px;\n margin-bottom: map-get($spacers, 2);\n border: 2px solid transparent;\n background: $silver;\n padding: rem(4) rem(12);\n color: $peacock-blue;\n\n &:hover {\n background: $peacock-blue;\n color: $white;\n }\n &:focus {\n outline: none;\n border: 2px solid $peacock-blue;\n }\n\n .stretched & {\n flex: 1 0 auto;\n }\n }\n .selected {\n background: $peacock-blue;\n color: $white;\n\n &.sibling-hovered {\n background: $windows-blue;\n color: $white;\n }\n }\n\n .last-of-row {\n margin-right: 0;\n border-top-right-radius: rem(8);\n border-bottom-right-radius: rem(8);\n }\n .first-of-row {\n border-top-left-radius: rem(8);\n border-bottom-left-radius: rem(8);\n }\n\n .last-row {\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up('md') {\n flex-wrap: wrap;\n\n .dropdown-required-on-mobile & {\n display: flex;\n }\n }\n }\n\n &--dropdown {\n display: none;\n\n .form-group.focus-white {\n margin-left: 0;\n }\n\n @include media-breakpoint-down('sm') {\n .dropdown-required-on-mobile & {\n display: block;\n }\n }\n }\n\n button:disabled {\n color: $light-blue-grey;\n\n &:hover {\n background: inherit;\n color: $grey;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=53308d6d\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=53308d6d&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-table-simple',{staticClass:\"fs-18\",attrs:{\"striped\":\"\"}},[_c('b-thead',[_c('th',[_vm._v(\"Supports\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Resistances\")])]),_c('b-tbody',[_c('b-tr',[_c('b-td',[_vm._v(\"13,255\")]),_c('b-td',{staticClass:\"text-right\"},[_vm._v(\"13,425\")])],1),_c('b-tr',[_c('b-td',[_vm._v(\"13,425\")]),_c('b-td',{staticClass:\"text-right\"},[_vm._v(\"13,425\")])],1),_c('b-tr',[_c('b-td',[_vm._v(\"13,425\")]),_c('b-td',{staticClass:\"text-right\"},[_vm._v(\"13,425\")])],1),_c('b-tr',[_c('b-td',[_vm._v(\"13,425\")]),_c('b-td',{staticClass:\"text-right\"},[_vm._v(\"13,425\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-table-simple striped class=\"fs-18\">\n <b-thead><th>Supports</th><th class=\"text-right\">Resistances</th></b-thead>\n <b-tbody>\n <b-tr><b-td>13,255</b-td><b-td class=\"text-right\">13,425</b-td></b-tr>\n <b-tr><b-td>13,425</b-td><b-td class=\"text-right\">13,425</b-td></b-tr>\n <b-tr><b-td>13,425</b-td><b-td class=\"text-right\">13,425</b-td></b-tr>\n <b-tr><b-td>13,425</b-td><b-td class=\"text-right\">13,425</b-td></b-tr>\n </b-tbody>\n </b-table-simple>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeSupportsAndResitancesTable extends Vue {}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=183b8eba\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-tab-element w-100 h-100\"},[_c('div',{staticClass:\"ce-tab-element__header\"},[(_vm.containerToSmall)?_c('button',{staticClass:\"ce-tab-element__scroll-button\",on:{\"click\":function($event){return _vm.adjustCurrentTab(-1)}}},[_c('ad-icon-chevron',{attrs:{\"direction\":\"left\"}})],1):_vm._e(),_c('ul',{ref:\"tabHeaderList\",staticClass:\"nav nav-tabs no-bullets\"},_vm._l((_vm.filteredHeaders),function(header,i){return _c('li',{key:i,staticClass:\"nav-item ce-tab-element__tab-header\",class:{ active: i === _vm.currentTab, 'sibling-hovered': _vm.hoveredTab !== -1 && _vm.hoveredTab !== i },attrs:{\"tabindex\":\"0\",\"role\":\"button\"},on:{\"click\":function($event){return _vm.changeTab(i)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.changeTab(i)},\"mouseover\":function($event){return _vm.changeHoveredTab(i)},\"focus\":function($event){return _vm.changeHoveredTab(i)},\"mouseleave\":function($event){return _vm.changeHoveredTab(-1)},\"blur\":function($event){return _vm.changeHoveredTab(-1)}}},[_c('vTabHeader',{attrs:{\"node\":header}})],1)}),0),(_vm.containerToSmall)?_c('button',{staticClass:\"ce-tab-element__scroll-button\",on:{\"click\":function($event){return _vm.adjustCurrentTab(+1)}}},[_c('ad-icon-chevron',{attrs:{\"direction\":\"right\"}})],1):_vm._e()]),_c('vTabContent',{key:_vm.currentTab,attrs:{\"tabs\":_vm.filteredTabs,\"index\":_vm.currentTab}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-tab-element w-100 h-100\">\n <div class=\"ce-tab-element__header\">\n <button class=\"ce-tab-element__scroll-button\" @click=\"adjustCurrentTab(-1)\" v-if=\"containerToSmall\">\n <ad-icon-chevron direction=\"left\"></ad-icon-chevron>\n </button>\n <ul ref=\"tabHeaderList\" class=\"nav nav-tabs no-bullets\">\n <li\n class=\"nav-item ce-tab-element__tab-header\"\n v-for=\"(header, i) in filteredHeaders\"\n v-bind:key=\"i\"\n v-bind:class=\"{ active: i === currentTab, 'sibling-hovered': hoveredTab !== -1 && hoveredTab !== i }\"\n v-on:click=\"changeTab(i)\"\n v-on:keydown.enter=\"changeTab(i)\"\n v-on:mouseover=\"changeHoveredTab(i)\"\n v-on:focus=\"changeHoveredTab(i)\"\n v-on:mouseleave=\"changeHoveredTab(-1)\"\n v-on:blur=\"changeHoveredTab(-1)\"\n tabindex=\"0\"\n role=\"button\"\n >\n <vTabHeader :node=\"header\" />\n </li>\n </ul>\n <button class=\"ce-tab-element__scroll-button\" @click=\"adjustCurrentTab(+1)\" v-if=\"containerToSmall\">\n <ad-icon-chevron direction=\"right\"></ad-icon-chevron>\n </button>\n </div>\n <vTabContent :tabs=\"filteredTabs\" :key=\"currentTab\" :index=\"currentTab\" />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component } from 'vue-property-decorator';\nimport Vue, { VNode } from 'vue';\nimport { filterVNodes } from '@src/utils/vnodes-filter';\n\n@Component\nexport default class CeTabElement extends Vue {\n $refs!: {\n tabHeaderList: HTMLUListElement;\n };\n\n get filteredHeaders(): VNode[] {\n return filterVNodes(this.$slots.headers);\n }\n\n get filteredTabs(): VNode[] {\n return filterVNodes(this.$slots.tabs);\n }\n\n private containerToSmall = false;\n\n currentTab = 0;\n changeTab(tabIndex: number): void {\n this.currentTab = tabIndex;\n this.$refs.tabHeaderList.children[tabIndex].scrollIntoView({\n behavior: 'smooth',\n inline: 'nearest',\n block: 'nearest',\n });\n }\n\n hoveredTab = -1;\n changeHoveredTab(tabIndex: number): void {\n this.hoveredTab = tabIndex;\n }\n\n mounted() {\n window.addEventListener('resize', this.handleResize);\n this.handleResize();\n }\n\n destroyed() {\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize() {\n this.containerToSmall = this.$refs.tabHeaderList.clientWidth < this.$refs.tabHeaderList.scrollWidth;\n }\n\n adjustCurrentTab(by: number) {\n const slotCount = this.filteredHeaders.length;\n this.changeTab((this.currentTab + slotCount + by) % slotCount);\n }\n}\n\nVue.component<Props>('vTabHeader', {\n functional: true,\n render: function (h, context) {\n return context.props.node;\n },\n});\n\nVue.component('vTabContent', {\n props: ['tabs', 'index'],\n render: function (h) {\n if (this.index > this.tabs.length - 1)\n return h('div', {}, ['Something is wrong. There are more tab headers then tab contents.']);\n return this.tabs[this.index];\n },\n});\n\ntype Props = {\n node: VNode;\n};\n</script>\n\n<style lang=\"scss\">\n.ce-tab-element {\n &__header {\n display: flex;\n flex-wrap: nowrap;\n justify-content: flex-start;\n margin-bottom: map-get($spacers, 5);\n border-bottom: 1px solid $gunmetal;\n\n .nav-tabs {\n display: flex;\n flex: 1 1 auto;\n flex-wrap: nowrap;\n justify-content: flex-start;\n border-bottom: 0;\n overflow: auto;\n\n @include media-breakpoint-up('md') {\n overflow: hidden;\n }\n }\n }\n\n &__scroll-button {\n border: 0;\n box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.16);\n background: $white;\n color: $marine-blue;\n }\n\n & &__tab-header.nav-item {\n flex: 1 0 auto;\n margin-bottom: 0;\n border-bottom: 4px solid transparent;\n cursor: pointer;\n padding: map-get($spacers, 2);\n color: $peacock-blue;\n\n &:hover,\n &:focus {\n border-color: $marine-blue;\n * {\n color: $marine-blue;\n }\n }\n\n &:focus {\n outline: 2px auto $peacock-blue;\n }\n\n * {\n color: $peacock-blue;\n }\n\n &.active {\n border-color: $peacock-blue;\n * {\n color: $marine-blue;\n }\n }\n\n &.sibling-hovered {\n * {\n color: $windows-blue;\n }\n\n &.active {\n border-color: $windows-blue;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=71da4942\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=71da4942&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-7 mb-md-8 ce-image-text-teaser\",class:{\n 'bg-light': _vm.isGrayLayoudMode,\n }},[(_vm.layoutMode === 'with-separating-line')?_c('div',{staticClass:\"separating-line\"}):_vm._e(),_c('div',{class:{\n 'container-fluid': _vm.isGrayLayoudMode,\n 'content-container': _vm.isGrayLayoudMode,\n 'py-6': _vm.isGrayLayoudMode,\n 'content-container-x': _vm.isGrayLayoudMode,\n }},[_vm._t(\"headline\"),_c('div',{staticClass:\"row\"},[_vm._l((_vm.teasers),function(teaser,i){return [(teaser.type === 'image' || teaser.type === 'video')?_c('div',{directives:[{name:\"appear-trigger\",rawName:\"v-appear-trigger\"}],key:i,staticClass:\"col d-flex align-self-stretch col-12 mb-5 mb-md-0\",class:[\n _vm.teasers.length === 1\n ? 'flex-column flex-md-row align-items-center col-md'\n : `flex-column align-items-start col-md-${_vm.teaserShare}`,\n ]},[_c('div',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(0),expression:\"0\"}],staticClass:\"w-100 overflow-hidden mb-3\",class:[_vm.teasers.length === 1 ? 'col-md-7 p-0' : 'mb-md-5']},[(teaser.type === 'image')?_c('a',{staticClass:\"zoom-animated-image d-block aspect-ratio-16-9\",attrs:{\"href\":teaser.link}},[_c('picture',[_vm._l((teaser.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.Media,\"srcset\":source.SrcSet}})}),_c('img',{staticClass:\"aspect-ratio-filler\",attrs:{\"src\":teaser.image.src,\"alt\":teaser.image.alt}})],2)]):_vm._e(),(teaser.type === 'video')?_c('ce-video-preview',{attrs:{\"youtubeId\":teaser.youtubeId,\"videoPath\":teaser.videoPath}}):_vm._e()],1),_c('div',{class:[_vm.teasers.length === 1 && 'pl-md-4']},[(teaser.preHeadlineText)?_c('div',{staticClass:\"pre-header fs-16\"},[_vm._v(\" \"+_vm._s(teaser.preHeadlineText)+\" \")]):_vm._e(),_c('h3',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(1),expression:\"1\"}]},[_c('a',{attrs:{\"href\":teaser.link}},[_c('ad-template-renderer',{attrs:{\"text\":teaser.headlineText}})],1)]),(teaser.copyText)?_c('p',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(2),expression:\"2\"}],domProps:{\"innerHTML\":_vm._s(teaser.copyText)}}):_vm._e(),(teaser.callToActionText && _vm.teasers.length !== 1)?_c('p',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(3),expression:\"3\"}]},[_c('a',{attrs:{\"href\":teaser.link}},[_vm._v(_vm._s(teaser.callToActionText))])]):_vm._e(),(teaser.subText || teaser.likeId != null)?_c('p',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(3),expression:\"3\"}],staticClass:\"fs-16\"},[(teaser.type === 'video' && teaser.youtubeId != null)?[_c('ce-video-info',{attrs:{\"youtube-id\":teaser.youtubeId},scopedSlots:_vm._u([{key:\"default\",fn:function({ duration }){return [_c('span',{staticClass:\"d-block\"},[_vm._v(_vm._s(teaser.subText)+\" | \"+_vm._s(duration))])]}}],null,true)})]:[_vm._v(\" \"+_vm._s(teaser.subText)+\" \")],(teaser.likeId != null)?[_c('ad-like-count',{attrs:{\"content-id\":teaser.likeId}})]:_vm._e()],2):_vm._e(),(_vm.teasers.length === 1)?_c('div',[_c('div',{staticClass:\"pt-3\"},[_c('a',{staticClass:\"btn btn-secondary w-100 w-md-auto\",attrs:{\"href\":teaser.link}},[_vm._t(\"show-more\",function(){return [_vm._v(_vm._s(teaser.callToActionText))]})],2)])]):_vm._e()])]):_vm._e(),(teaser.type === 'advertisement')?_c('div',{key:i,staticClass:\"position-relative align-self-stretch col-12 mb-5 mb-md-0\",class:`col-md-${_vm.teaserShare}`},[_c('div',{staticClass:\"position-relative\"},[_c('ce-ad-marker',[_vm._t(\"addvertisement\",function(){return [_vm._v(\"Advertisement\")]})],2),_c('a',{staticClass:\"d-block overflow-hidden\",attrs:{\"href\":teaser.link}},[_c('picture',[_vm._l((teaser.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.Media,\"srcset\":source.SrcSet}})}),_c('img',{staticClass:\"w-100\",attrs:{\"src\":teaser.image.src,\"alt\":teaser.image.alt}})],2)])],1)]):_vm._e()]})],2),(_vm.showMoreButtonLink && _vm.teasers.length !== 1)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col pt-4\"},[_c('a',{staticClass:\"btn btn-secondary w-100 w-md-auto\",attrs:{\"href\":_vm.showMoreButtonLink}},[_vm._t(\"show-more\",function(){return [_vm._v(\"Show More\")]})],2)])]):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n class=\"mb-7 mb-md-8 ce-image-text-teaser\"\n :class=\"{\n 'bg-light': isGrayLayoudMode,\n }\"\n >\n <div v-if=\"layoutMode === 'with-separating-line'\" class=\"separating-line\"></div>\n <div\n :class=\"{\n 'container-fluid': isGrayLayoudMode,\n 'content-container': isGrayLayoudMode,\n 'py-6': isGrayLayoudMode,\n 'content-container-x': isGrayLayoudMode,\n }\"\n >\n <slot name=\"headline\"></slot>\n <div class=\"row\">\n <template v-for=\"(teaser, i) in teasers\">\n <div\n v-if=\"teaser.type === 'image' || teaser.type === 'video'\"\n v-bind:key=\"i\"\n v-appear-trigger\n class=\"col d-flex align-self-stretch col-12 mb-5 mb-md-0\"\n :class=\"[\n teasers.length === 1\n ? 'flex-column flex-md-row align-items-center col-md'\n : `flex-column align-items-start col-md-${teaserShare}`,\n ]\"\n >\n <div\n v-appear-delay=\"0\"\n class=\"w-100 overflow-hidden mb-3\"\n :class=\"[teasers.length === 1 ? 'col-md-7 p-0' : 'mb-md-5']\"\n >\n <a\n v-if=\"teaser.type === 'image'\"\n :href=\"teaser.link\"\n class=\"zoom-animated-image d-block aspect-ratio-16-9\"\n >\n <picture>\n <source\n v-for=\"(source, i) in teaser.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.Media\"\n :srcset=\"source.SrcSet\"\n />\n <img class=\"aspect-ratio-filler\" :src=\"teaser.image.src\" :alt=\"teaser.image.alt\" />\n </picture>\n </a>\n\n <ce-video-preview\n v-if=\"teaser.type === 'video'\"\n :youtubeId=\"teaser.youtubeId\"\n :videoPath=\"teaser.videoPath\"\n >\n </ce-video-preview>\n </div>\n <div :class=\"[teasers.length === 1 && 'pl-md-4']\">\n <div v-if=\"teaser.preHeadlineText\" class=\"pre-header fs-16\">\n {{ teaser.preHeadlineText }}\n </div>\n <h3 v-appear-delay=\"1\">\n <a :href=\"teaser.link\"><ad-template-renderer :text=\"teaser.headlineText\"></ad-template-renderer></a>\n </h3>\n <p v-if=\"teaser.copyText\" v-appear-delay=\"2\" v-html=\"teaser.copyText\" />\n <p v-appear-delay=\"3\" v-if=\"teaser.callToActionText && teasers.length !== 1\">\n <a :href=\"teaser.link\">{{ teaser.callToActionText }}</a>\n </p>\n <p v-appear-delay=\"3\" v-if=\"teaser.subText || teaser.likeId != null\" class=\"fs-16\">\n <template v-if=\"teaser.type === 'video' && teaser.youtubeId != null\">\n <ce-video-info :youtube-id=\"teaser.youtubeId\">\n <template #default=\"{ duration }\">\n <span class=\"d-block\">{{ teaser.subText }} | {{ duration }}</span>\n </template>\n </ce-video-info>\n </template>\n <template v-else>\n {{ teaser.subText }}\n </template>\n <template v-if=\"teaser.likeId != null\">\n <ad-like-count :content-id=\"teaser.likeId\" />\n </template>\n </p>\n <div v-if=\"teasers.length === 1\">\n <div class=\"pt-3\">\n <a :href=\"teaser.link\" class=\"btn btn-secondary w-100 w-md-auto\">\n <slot name=\"show-more\">{{ teaser.callToActionText }}</slot>\n </a>\n </div>\n </div>\n </div>\n </div>\n\n <div\n v-if=\"teaser.type === 'advertisement'\"\n v-bind:key=\"i\"\n class=\"position-relative align-self-stretch col-12 mb-5 mb-md-0\"\n :class=\"`col-md-${teaserShare}`\"\n >\n <div class=\"position-relative\">\n <ce-ad-marker><slot name=\"addvertisement\">Advertisement</slot></ce-ad-marker>\n <a :href=\"teaser.link\" class=\"d-block overflow-hidden\">\n <picture>\n <source\n v-for=\"(source, i) in teaser.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.Media\"\n :srcset=\"source.SrcSet\"\n />\n <img class=\"w-100\" :src=\"teaser.image.src\" :alt=\"teaser.image.alt\" />\n </picture>\n </a>\n </div>\n </div>\n </template>\n </div>\n <div class=\"row\" v-if=\"showMoreButtonLink && teasers.length !== 1\">\n <div class=\"col pt-4\">\n <a :href=\"showMoreButtonLink\" class=\"btn btn-secondary w-100 w-md-auto\">\n <slot name=\"show-more\">Show More</slot>\n </a>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop } from 'vue-property-decorator';\nimport Vue from 'vue';\nimport { TextImageTeaserBlock } from '@/src/types/ce-component-types';\n\n@Component({})\nexport default class CeTextImageTeaser extends Vue {\n @Prop({ required: true }) teasers!: TextImageTeaserBlock[];\n @Prop() showMoreButtonLink?: string;\n @Prop({ default: 'white' }) layoutMode!: 'grey-background' | 'with-separating-line' | 'white';\n\n @Prop({ default: 3 }) maxItemCount!: number;\n\n get teaserShare() {\n return 12 / this.maxItemCount;\n }\n\n get isGrayLayoudMode() {\n return this.layoutMode === 'grey-background';\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.pre-header {\n color: $peacock-blue;\n}\n\n.like-count {\n color: $peacock-blue;\n}\n\n.separating-line {\n margin-top: map-get($spacers, 6);\n margin-bottom: map-get($spacers, 6);\n border-top: 1px dashed $bright-sky-blue;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0f19f6d8&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=0f19f6d8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f19f6d8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.initialized)?_c('div',[_vm._t(\"default\",null,{\"title\":_vm.title,\"duration\":_vm.duration})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/// <reference types=\"@types/youtube\" />;\n\nimport { getYoutubeIFrameAPIUrl } from '@/src/utils/url-helper';\n\nlet loadingPromise: Promise<typeof YT> | null = null;\n\n/**\n * Use this function to trigger the async loading of the youtube iFrame API.\n *\n * Always access the YT namespace through this function so that we can guarantee that it is\n * only loaded when truly needed.\n */\nexport async function loadYoutubeAPI() {\n if (loadingPromise) return loadingPromise;\n\n const scriptTag = document.createElement('script');\n\n scriptTag.src = getYoutubeIFrameAPIUrl();\n document.body.appendChild(scriptTag);\n\n loadingPromise = new Promise<typeof YT>((resolve) => {\n // eslint-disable-next-line\n (window as any).onYouTubeIframeAPIReady = function onYouTubeIframeAPIReady() {\n resolve(YT);\n };\n });\n\n return loadingPromise;\n}\n","<template>\n <div v-if=\"initialized\">\n <slot v-bind:title=\"title\" v-bind:duration=\"duration\"></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\n/// <reference types=\"@types/youtube\" />;\n\nimport { loadYoutubeAPI } from '@/src/utils/youtube-frame-api';\nimport { Prop, Vue, Component, Watch } from 'vue-property-decorator';\n\n@Component\nexport default class CeVideoInfo extends Vue {\n //youtubeId - id/code of the video to embed\n @Prop() youtubeId: string | undefined;\n @Prop() manualTitle: string | undefined;\n @Prop() manualDuration: string | undefined;\n\n youtubeTitle: string | undefined;\n youtubeDuration: string | undefined;\n\n initialized = false;\n\n get title() {\n if (!this.initialized) return '';\n if (this.youtubeId) return this.youtubeTitle;\n return this.manualTitle;\n }\n\n get duration() {\n if (!this.initialized) return '';\n if (this.youtubeId) return this.youtubeDuration;\n return this.manualDuration;\n }\n\n mounted() {\n this.retrieveYoutubeInfo();\n }\n\n @Watch('youtubeId')\n async retrieveYoutubeInfo() {\n if (!this.youtubeId) {\n this.initialized = true;\n return;\n }\n\n const yt = await loadYoutubeAPI();\n const d = document.createElement('div');\n d.style.display = 'none';\n document.body.appendChild(d);\n\n const player = new yt.Player(d, {\n host: 'https://www.youtube.com',\n videoId: this.youtubeId,\n events: {\n onReady: () => {\n // Somehow, the getVideoData func is not defined in type definitions\n // eslint-disable-next-line\n this.youtubeTitle = (player as any).getVideoData().title;\n const duration = player.getDuration();\n const minutes = Math.floor(duration / 60);\n const seconds = duration - minutes * 60;\n const format = (d: number) => d.toString().padStart(2, '0');\n this.youtubeDuration = [minutes, seconds].map(format).join(':');\n\n this.initialized = true;\n d.remove();\n player.destroy();\n },\n onError: () => {\n d.remove();\n player.destroy();\n },\n },\n });\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=67d8bf23\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-preview\"},[_c('div',{staticClass:\"aspect-ratio-16-9\"},[_c('div',{staticClass:\"aspect-ratio-filler\"},[(_vm.videoVisible)?_c('ce-video',{attrs:{\"videoPath\":_vm.videoPath,\"youtubeId\":_vm.youtubeId,\"autoPlay\":true}}):_vm._e(),(!_vm.videoVisible)?_c('div',{staticClass:\"ce-preview--preview-wrapper\"},[_vm._t(\"preview-image\",function(){return [(_vm.youtubeId)?_c('picture',[_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.youtubePreviewThumbnail}})]):_c('ce-video',{attrs:{\"videoPath\":_vm.videoPath + '#t=0.1',\"noControls\":true}})]})],2):_vm._e()],1),(!_vm.videoVisible)?_c('a',{staticClass:\"video-click-overlay\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.play}},[_c('button',{staticClass:\"ce-preview-play-button btn btn-secondary rounded-circle py-0 border-0\"},[_c('ad-icon-play',{attrs:{\"width\":\"40\",\"height\":\"40\"}})],1)]):_vm._e()]),_c('b-modal',{attrs:{\"id\":_vm.modalId,\"centered\":\"\",\"modal-class\":\"ce-video-modal\",\"hide-footer\":\"\",\"hide-header\":\"\",\"size\":\"xl\",\"visible\":_vm.modalVisible},on:{\"ok\":_vm.close,\"change\":function($event){return _vm.modalVisibilityChange($event)}}},[_c('div',{staticClass:\"video-preview-modal-video-wrapper\"},[_c('ce-video',{attrs:{\"videoPath\":_vm.videoPath,\"youtubeId\":_vm.youtubeId,\"autoPlay\":true}})],1),_c('div',{staticClass:\"ce-preview__close\"},[_c('button',{staticClass:\"ce-preview__button important btn rounded-circle px-0 py-0 border-0\",on:{\"click\":_vm.close}},[_c('ad-icon-close',{attrs:{\"height\":\"1em\"}})],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-preview\">\n <div class=\"aspect-ratio-16-9\">\n <div class=\"aspect-ratio-filler\">\n <ce-video v-if=\"videoVisible\" :videoPath=\"videoPath\" :youtubeId=\"youtubeId\" :autoPlay=\"true\"></ce-video>\n <div v-if=\"!videoVisible\" class=\"ce-preview--preview-wrapper\">\n <slot name=\"preview-image\">\n <picture v-if=\"youtubeId\">\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"youtubePreviewThumbnail\" />\n </picture>\n <ce-video v-else :videoPath=\"videoPath + '#t=0.1'\" :noControls=\"true\"></ce-video>\n </slot>\n </div>\n </div>\n <a v-if=\"!videoVisible\" href=\"javascript:void(0)\" class=\"video-click-overlay\" v-on:click=\"play\">\n <button class=\"ce-preview-play-button btn btn-secondary rounded-circle py-0 border-0\">\n <ad-icon-play width=\"40\" height=\"40\"></ad-icon-play>\n </button>\n </a>\n </div>\n <b-modal\n :id=\"modalId\"\n centered\n modal-class=\"ce-video-modal\"\n hide-footer\n hide-header\n size=\"xl\"\n @ok=\"close\"\n :visible=\"modalVisible\"\n @change=\"modalVisibilityChange($event)\"\n >\n <div class=\"video-preview-modal-video-wrapper\">\n <ce-video :videoPath=\"videoPath\" :youtubeId=\"youtubeId\" :autoPlay=\"true\"></ce-video>\n </div>\n <div class=\"ce-preview__close\">\n <button @click=\"close\" class=\"ce-preview__button important btn rounded-circle px-0 py-0 border-0\">\n <ad-icon-close height=\"1em\"></ad-icon-close>\n </button>\n </div>\n </b-modal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { getYoutubeThumbnail } from '@utils/url-helper';\nimport { Prop, Vue, Component } from 'vue-property-decorator';\n\n/**\n * Renders a preview of either a youtube video or a base html video\n *\n * This is decided by specifying either youtubeId (the id of the youtube video)\n * or the path to the video file itself.\n *\n * The preview extracts either the thumbnail from a youtube video or\n * uses a video player without controls as the preview for html videos.\n *\n * By filling the slot \"preview-image\", users of this component can overwrite\n * the default preview image.\n *\n * When clicking on the play button one of two things happens:\n * - on mobile: Preview is replaced with real video\n * - on desktop: A modal is openend which displays the real video.\n */\n@Component\nexport default class CeVideoPreview extends Vue {\n //youtubeId - id/code of the video to embed\n @Prop({ default: '' }) youtubeId!: string;\n @Prop({ default: '' }) videoPath!: string;\n private modalId = 'video-preview-modal-' + this.youtubeId + this.videoPath;\n\n /**\n * Represents the 3 states of this component:\n * - preview-visible: Initial state. Preview image + blue play button\n * - modal-visible: After clicking the play button on desktop, the modal is opened\n * - video-visible: After clicking the play button on mobile, the video is displayed inline.\n */\n private previewState: 'preview-visible' | 'modal-visible' | 'video-visible' = 'preview-visible';\n\n private get modalVisible(): boolean {\n return this.previewState === 'modal-visible';\n }\n\n private get videoVisible(): boolean {\n return this.previewState === 'video-visible';\n }\n\n private get youtubePreviewThumbnail(): string {\n if (!this.youtubeId) return '';\n return getYoutubeThumbnail(this.youtubeId);\n }\n\n modalVisibilityChange(isVisible: boolean) {\n if (isVisible) {\n this.previewState = 'modal-visible';\n } else {\n this.previewState = 'preview-visible';\n }\n }\n\n close(): void {\n this.previewState = 'preview-visible';\n }\n\n play(): void {\n const shouldModalBeUsed = window.matchMedia('(min-width: 768px)').matches;\n if (shouldModalBeUsed) {\n this.previewState = 'modal-visible';\n } else {\n this.previewState = 'video-visible';\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.video-preview-modal-video-wrapper {\n border-radius: 8px;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.modal-body.modal-body {\n padding: 0;\n width: 100%;\n height: 100%;\n}\n\n.ce-video-modal .modal-content {\n background: transparent;\n}\n\n.ce-video-modal .modal-dialog {\n padding: map-get($spacers, 5);\n max-width: calc((100vh - 10rem) * 16 / 9);\n}\n\n.ce-preview {\n .video-click-overlay {\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n z-index: 1;\n }\n &__close {\n position: absolute;\n top: -74px;\n right: 0;\n }\n &__button.important.important.important {\n display: flex;\n align-items: center;\n justify-content: center;\n width: rem(54);\n min-width: rem(54);\n height: rem(54);\n }\n}\n\n/**\n * This class is applied to an element that also has the .btn bootstrap class\n * The .btn handles the correct focus/hover/active styles but provides\n * values for padding and min-width, that are not appropriate here\n * Since the .btn class is using a very high specificity to declare the values\n * we have to use !important, as the linter would complain otherwise.\n */\n.ce-preview-play-button {\n position: absolute;\n padding: 0 0 0 0.5rem !important;\n width: rem(88);\n min-width: rem(88) !important;\n height: rem(88);\n vertical-align: center;\n text-align: center;\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ff051494\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ff051494&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"aspect-ratio-16-9 w-100\"},[(_vm.videoPath)?_c('video',{ref:\"htmlVideo\",staticClass:\"aspect-ratio-filler\",attrs:{\"controls\":!_vm.noControls}},[_c('source',{attrs:{\"src\":_vm.videoPath}}),_vm._v(\" Your browser does not support this type of video. \")]):(_vm.youtubeId)?_c('iframe',{ref:\"youtubeFrame\",staticClass:\"aspect-ratio-filler border-0\",style:({ objectFit: 'initial' }),attrs:{\"src\":_vm.youtubeUrl,\"allowfullscreen\":\"\",\"allow\":\"autoplay\"}}):(!_vm.videoPath && !_vm.youtubeId)?_c('div',[_vm._v(\"Can't display video component because neither a youtube URL nor a video path was provided\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"aspect-ratio-16-9 w-100\">\n <video v-if=\"videoPath\" class=\"aspect-ratio-filler\" :controls=\"!noControls\" ref=\"htmlVideo\">\n <source :src=\"videoPath\" />\n Your browser does not support this type of video.\n </video>\n <iframe\n v-else-if=\"youtubeId\"\n class=\"aspect-ratio-filler border-0\"\n :src=\"youtubeUrl\"\n allowfullscreen\n allow=\"autoplay\"\n ref=\"youtubeFrame\"\n :style=\"{ objectFit: 'initial' }\"\n ></iframe>\n <div v-else-if=\"!videoPath && !youtubeId\"\n >Can't display video component because neither a youtube URL nor a video path was provided</div\n >\n </div>\n</template>\n<script lang=\"ts\">\nimport { getYoutubeUrl } from '@utils/url-helper';\nimport { Prop, Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport default class CeVideo extends Vue {\n //youtubeId - code/id of the youtube video\n @Prop({ default: '' }) youtubeId!: string;\n @Prop({ default: '' }) videoPath!: string;\n @Prop({ default: false }) noControls!: boolean;\n @Prop({ default: false }) autoPlay!: boolean;\n\n get youtubeUrl(): string {\n return getYoutubeUrl(this.youtubeId, { enableJsAPI: true, autoPlay: this.autoPlay });\n }\n\n mounted() {\n if (this.autoPlay) this.play();\n }\n\n play() {\n if (this.videoPath) {\n const video = this.$refs.htmlVideo as HTMLVideoElement;\n video.play();\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=435f5f50\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',_vm._b({staticClass:\"ml-0 px-0 position-relative chart-legend fs-14 b-skeleton-m\",attrs:{\"fluid\":\"\"}},'b-container',_vm.$attrs,false),[_c('div',{staticClass:\"dot rounded position-absolute\",style:({ backgroundColor: this.color })}),_c('b-row',[_c('b-col',{staticClass:\"marine-blue font-weight-bold\"},[_vm._t(\"header\")],2)],1),_c('b-row',{staticClass:\"gun-metal text-nowrap\"},[_c('b-col',{attrs:{\"cols\":\"6\",\"sm\":_vm.smCols}},[_c('div',{staticClass:\"gun-metal font-weight-bold\"},[_vm._t(\"first-header\")],2),_c('div',{staticClass:\"values\"},[_vm._t(\"first-values\")],2)]),_c('b-col',{attrs:{\"cols\":\"6\",\"sm\":_vm.smCols}},[_c('div',{staticClass:\"gun-metal font-weight-bold\"},[_vm._t(\"second-header\")],2),_c('div',{staticClass:\"values\"},[_vm._t(\"second-values\")],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-container fluid class=\"ml-0 px-0 position-relative chart-legend fs-14 b-skeleton-m\" v-bind=\"$attrs\">\n <div class=\"dot rounded position-absolute\" :style=\"{ backgroundColor: this.color }\"></div>\n <b-row>\n <b-col class=\"marine-blue font-weight-bold\"><slot name=\"header\"></slot></b-col>\n </b-row>\n\n <b-row class=\"gun-metal text-nowrap\">\n <b-col cols=\"6\" :sm=\"smCols\">\n <div class=\"gun-metal font-weight-bold\"><slot name=\"first-header\"></slot></div>\n <div class=\"values\"><slot name=\"first-values\"></slot></div>\n </b-col>\n <b-col cols=\"6\" :sm=\"smCols\">\n <div class=\"gun-metal font-weight-bold\"><slot name=\"second-header\"></slot></div>\n <div class=\"values\"><slot name=\"second-values\"></slot></div>\n </b-col>\n </b-row>\n </b-container>\n</template>\n\n<script lang=\"ts\">\nimport { ChartColors } from '@/src/types/enumerations';\nimport { ChartConfiguration } from '@/src/types/vue-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdChartLegend extends Vue {\n @Prop() color?: ChartColors;\n @Inject({ default: new ChartConfiguration() }) chartConfigurationProperty!: ChartConfiguration;\n\n get smCols() {\n return this.chartConfigurationProperty.legendInTwoLineModeAtTablet ? 12 : 6;\n }\n}\n</script>\n<style lang=\"scss\">\n.chart-legend {\n .dot {\n top: rem(5);\n left: rem(-17);\n width: rem(10);\n height: rem(10);\n }\n\n /* stylelint-disable selector-max-compound-selectors */\n .values span + span::before {\n content: '/';\n }\n /* stylelint-enable selector-max-compound-selectors */\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-chart-legend.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-chart-legend.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-chart-legend.vue?vue&type=template&id=fc9580ee\"\nimport script from \"./ad-chart-legend.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-chart-legend.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-chart-legend.vue?vue&type=style&index=0&id=fc9580ee&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.options && _vm.options.length == 1)?_c('div',[_c('div',{staticClass:\"fs-14\"},[_vm._v(_vm._s(_vm.options[0].translation))])]):(_vm.options)?_c('div',{staticClass:\"mb-2 mb-lg-3\"},[_c('b-form-radio-group',_vm._b({class:[\n 'd-none',\n { 'd-xl-block': !_vm.chartConfigurationProperty.forceDropDownForChartPeriods },\n { 'd-md-block': _vm.chartConfigurationProperty.forceRadioButtonsForChartPeriods },\n 'text-nowrap',\n ],attrs:{\"id\":\"btn-radios-periods\",\"name\":\"radios-btn-periods\",\"size\":\"sm\",\"button-variant\":\"default\",\"checked\":_vm.value,\"options\":_vm.options,\"buttons\":\"\"},on:{\"input\":_vm.input}},'b-form-radio-group',_vm.$attrs,false)),_c('b-form-group',{class:[\n 'focus-white',\n { 'd-xl-none': !_vm.chartConfigurationProperty.forceDropDownForChartPeriods },\n { 'd-md-none': _vm.chartConfigurationProperty.forceRadioButtonsForChartPeriods },\n 'mb-0',\n ],attrs:{\"id\":'input-group-periods' + _vm._uid,\"label-for\":\"periods-input\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"header\")]},proxy:true}],null,true)},[_c('ad-drop-down-list',_vm._b({attrs:{\"options\":_vm.dropdownOptions,\"value\":_vm.value,\"form-element-state-id\":'input-group-periods' + _vm._uid},on:{\"input\":_vm.input}},'ad-drop-down-list',_vm.$attrs,false))],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"options && options.length == 1\">\n <div class=\"fs-14\">{{ options[0].translation }}</div>\n </div>\n <div v-else-if=\"options\" class=\"mb-2 mb-lg-3\">\n <b-form-radio-group\n v-bind=\"$attrs\"\n id=\"btn-radios-periods\"\n name=\"radios-btn-periods\"\n size=\"sm\"\n button-variant=\"default\"\n :checked=\"value\"\n :options=\"options\"\n @input=\"input\"\n buttons\n :class=\"[\n 'd-none',\n { 'd-xl-block': !chartConfigurationProperty.forceDropDownForChartPeriods },\n { 'd-md-block': chartConfigurationProperty.forceRadioButtonsForChartPeriods },\n 'text-nowrap',\n ]\"\n ></b-form-radio-group>\n\n <b-form-group\n :id=\"'input-group-periods' + _uid\"\n label-for=\"periods-input\"\n :class=\"[\n 'focus-white',\n { 'd-xl-none': !chartConfigurationProperty.forceDropDownForChartPeriods },\n { 'd-md-none': chartConfigurationProperty.forceRadioButtonsForChartPeriods },\n 'mb-0',\n ]\"\n >\n <template #label><slot name=\"header\"></slot></template>\n <ad-drop-down-list\n v-bind=\"$attrs\"\n :options=\"dropdownOptions\"\n :value=\"value\"\n @input=\"input\"\n :form-element-state-id=\"'input-group-periods' + _uid\"\n />\n </b-form-group>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Inject } from 'vue-property-decorator';\nimport { ChartPeriod } from '@/src/types/episerver-api';\nimport { ChartConfiguration, DropDownItem } from '@/src/types/vue-api';\nimport { DropDownItemType } from '@/src/types/enumerations';\n@Component({})\nexport default class AdChartPeriods extends Vue {\n @Prop() options: ChartPeriod[] | undefined;\n @Prop() value: string | undefined;\n @Inject({ default: new ChartConfiguration() }) chartConfigurationProperty!: ChartConfiguration;\n\n input(selected) {\n this.$emit('input', selected);\n }\n\n get dropdownOptions(): DropDownItem[] {\n return (\n this.options?.map((option) => {\n return {\n type: DropDownItemType.item,\n text: option.translation,\n value: option.key,\n } as DropDownItem;\n }) || []\n );\n }\n}\n</script>\n<style lang=\"scss\">\n.btn-group-toggle .btn.btn-default {\n background-color: $light-grey;\n color: $button-color;\n &.active,\n &:hover {\n background-color: $button-color;\n color: $button-text-highlight-color;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-chart-periods.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-chart-periods.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-chart-periods.vue?vue&type=template&id=569bd8a1\"\nimport script from \"./ad-chart-periods.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-chart-periods.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-chart-periods.vue?vue&type=style&index=0&id=569bd8a1&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-5 mb-xl-0\"},[(_vm.selectedPeriod)?_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',[_c('ad-chart-periods',{attrs:{\"options\":_vm.periods,\"valueField\":\"key\",\"textField\":\"translation\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"periods-header\")]},proxy:true}],null,true),model:{value:(_vm.selectedPeriodKey),callback:function ($$v) {_vm.selectedPeriodKey=$$v},expression:\"selectedPeriodKey\"}})],1)],1):_vm._e(),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',[_c('ad-stock-chart',{ref:\"chart\",attrs:{\"series\":_vm.data,\"labelDateFormatter\":_vm.formatLabelDate,\"labelValueFormatter\":_vm.formatLabelValue,\"tooltipDateFormatter\":_vm.formatTooltipDate,\"tooltipValueFormatter\":_vm.formatTooltipValue,\"pointInterval\":_vm.selectedPeriod.pointInterval,\"xAxisTickInterval\":_vm.xAxisTickInterval,\"xAxisLabelStep\":_vm.xAxisStep,\"xAxisMax\":_vm.xAxisMax,\"xAxisMin\":_vm.xAxisMin,\"height\":_vm.chartHeight,\"navigator\":_vm.showNavigator,\"scrollbar\":_vm.showScrollbar,\"breakThreshold\":_vm.dayBreakThreshold,\"repeatedBreaks\":_vm.repeatedBreaks,\"tickOffset\":_vm.tickOffset},on:{\"marginChange\":_vm.updateChartMargin}})],1)],1),(_vm.isLegendEnabled)?_c('b-row',{staticClass:\"pt-1 pt-md-3 no-gutters\",style:(_vm.chartLegendMarginStyle)},[_c('b-col',{attrs:{\"sm\":_vm.selectedUnderlying ? 6 : 12}},[_c('ad-chart-legend',{attrs:{\"color\":_vm.bidColor,\"smColumns\":_vm.selectedUnderlying ? 12 : 6},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"second-legend-header\")]},proxy:true},{key:\"first-header\",fn:function(){return [_vm._t(\"second-legend-first-header\")]},proxy:true},{key:\"first-values\",fn:function(){return [_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.performance.dailyHigh\"}}),_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.performance.dailyLow\"}})]},proxy:true},{key:\"second-header\",fn:function(){return [_vm._t(\"second-legend-second-header\")]},proxy:true},{key:\"second-values\",fn:function(){return [(!_vm.isProduct52WeeksHighLowHidden)?_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.performance.fiftyTwoWeeksHigh\"}}):_vm._e(),(!_vm.isProduct52WeeksHighLowHidden)?_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.performance.fiftyTwoWeeksLow\"}}):_vm._e()]},proxy:true}],null,true)})],1),(_vm.selectedUnderlying)?_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('ad-chart-legend',{attrs:{\"color\":_vm.underlyingColor},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"legend-header\")]},proxy:true},{key:\"first-header\",fn:function(){return [_vm._t(\"legend-first-header\")]},proxy:true},{key:\"first-values\",fn:function(){return [_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.dailyHigh\",\"underlyingItem\":_vm.selectedUnderlying}}),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.dailyLow\",\"underlyingItem\":_vm.selectedUnderlying}})]},proxy:true},{key:\"second-header\",fn:function(){return [_vm._t(\"legend-second-header\")]},proxy:true},{key:\"second-values\",fn:function(){return [(!_vm.isUnderlying52WeeksHighLowHidden)?_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.fiftyTwoWeeksHigh\",\"underlyingItem\":_vm.selectedUnderlying}}):_vm._e(),(!_vm.isUnderlying52WeeksHighLowHidden)?_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.fiftyTwoWeeksLow\",\"underlyingItem\":_vm.selectedUnderlying}}):_vm._e()]},proxy:true}],null,true)})],1):_vm._e()],1):_vm._e(),(!_vm.hideSwitches)?_c('b-row',{staticClass:\"pt-2 no-gutters\",style:(_vm.chartButtonsMarginStyle)},[_c('b-col',[_c('ad-switch-button',{attrs:{\"activeStateClass\":\"bg-ask\",\"disabled\":!_vm.isIntraday},model:{value:(_vm.showAsk),callback:function ($$v) {_vm.showAsk=$$v},expression:\"showAsk\"}},[_vm._t(\"button-ask\")],2),(_vm.settingsProperty.multipleUnderlyings)?_c('b-form-group',{class:[\n 'mb-2',\n 'pt-2',\n 'align-bottom',\n 'focus-white',\n { 'underlying-dropdown-inline': _vm.$screen.sm },\n { 'mr-1': _vm.$screen.sm },\n ],attrs:{\"id\":\"input-underlyings\",\"label-for\":\"underlyings-input\"}},[_c('ad-drop-down-list',_vm._b({attrs:{\"options\":_vm.productUnderlyingsOptions,\"value\":_vm.selectedUnderlyingIsin,\"form-element-state-id\":\"input-underlyings\"},on:{\"input\":_vm.selectUnderlying}},'ad-drop-down-list',_vm.$attrs,false))],1):(_vm.settingsProperty.isUnderlyingButtonAvailable)?_c('ad-switch-button',{attrs:{\"value\":!!_vm.selectedUnderlyingIsin,\"activeStateClass\":\"bg-underlying\"},on:{\"input\":_vm.selectUnderlying}},[_vm._t(\"button-underlying\")],2):_vm._e(),_c('ad-switch-button',{model:{value:(_vm.relative),callback:function ($$v) {_vm.relative=$$v},expression:\"relative\"}},[_vm._t(\"button-relative\")],2),_c('ad-switch-button',{model:{value:(_vm.realtime),callback:function ($$v) {_vm.realtime=$$v},expression:\"realtime\"}},[_vm._t(\"button-realtime\")],2)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mb-5 mb-xl-0\">\n <b-row v-if=\"selectedPeriod\" class=\"no-gutters\">\n <b-col>\n <ad-chart-periods :options=\"periods\" v-model=\"selectedPeriodKey\" valueField=\"key\" textField=\"translation\">\n <template #header><slot name=\"periods-header\"></slot></template>\n </ad-chart-periods>\n </b-col>\n </b-row>\n <b-row class=\"no-gutters\">\n <b-col>\n <ad-stock-chart\n :series=\"data\"\n :labelDateFormatter=\"formatLabelDate\"\n :labelValueFormatter=\"formatLabelValue\"\n :tooltipDateFormatter=\"formatTooltipDate\"\n :tooltipValueFormatter=\"formatTooltipValue\"\n :pointInterval=\"selectedPeriod.pointInterval\"\n :xAxisTickInterval=\"xAxisTickInterval\"\n :xAxisLabelStep=\"xAxisStep\"\n :xAxisMax=\"xAxisMax\"\n :xAxisMin=\"xAxisMin\"\n :height=\"chartHeight\"\n :navigator=\"showNavigator\"\n :scrollbar=\"showScrollbar\"\n :breakThreshold=\"dayBreakThreshold\"\n :repeatedBreaks=\"repeatedBreaks\"\n :tickOffset=\"tickOffset\"\n @marginChange=\"updateChartMargin\"\n ref=\"chart\"\n ></ad-stock-chart>\n </b-col>\n </b-row>\n <b-row class=\"pt-1 pt-md-3 no-gutters\" :style=\"chartLegendMarginStyle\" v-if=\"isLegendEnabled\">\n <b-col :sm=\"selectedUnderlying ? 6 : 12\">\n <ad-chart-legend :color=\"bidColor\" :smColumns=\"selectedUnderlying ? 12 : 6\">\n <template #header><slot name=\"second-legend-header\"></slot></template>\n <template #first-header><slot name=\"second-legend-first-header\"></slot></template>\n <template #first-values>\n <ad-product-data-value fieldKey=\"product.performance.dailyHigh\"></ad-product-data-value>\n <ad-product-data-value fieldKey=\"product.performance.dailyLow\"></ad-product-data-value>\n </template>\n <template #second-header><slot name=\"second-legend-second-header\"></slot></template>\n <template #second-values>\n <ad-product-data-value\n fieldKey=\"product.performance.fiftyTwoWeeksHigh\"\n v-if=\"!isProduct52WeeksHighLowHidden\"\n ></ad-product-data-value>\n <ad-product-data-value\n fieldKey=\"product.performance.fiftyTwoWeeksLow\"\n v-if=\"!isProduct52WeeksHighLowHidden\"\n ></ad-product-data-value>\n </template>\n </ad-chart-legend>\n </b-col>\n <b-col sm=\"6\" v-if=\"selectedUnderlying\">\n <ad-chart-legend :color=\"underlyingColor\">\n <template #header><slot name=\"legend-header\"></slot></template>\n <template #first-header><slot name=\"legend-first-header\"></slot></template>\n <template #first-values>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.dailyHigh\"\n :underlyingItem=\"selectedUnderlying\"\n ></ad-underlying-data-value>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.dailyLow\"\n :underlyingItem=\"selectedUnderlying\"\n ></ad-underlying-data-value>\n </template>\n <template #second-header><slot name=\"legend-second-header\"></slot></template>\n <template #second-values>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.fiftyTwoWeeksHigh\"\n v-if=\"!isUnderlying52WeeksHighLowHidden\"\n :underlyingItem=\"selectedUnderlying\"\n ></ad-underlying-data-value>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.fiftyTwoWeeksLow\"\n v-if=\"!isUnderlying52WeeksHighLowHidden\"\n :underlyingItem=\"selectedUnderlying\"\n ></ad-underlying-data-value>\n </template>\n </ad-chart-legend>\n </b-col>\n </b-row>\n <b-row class=\"pt-2 no-gutters\" :style=\"chartButtonsMarginStyle\" v-if=\"!hideSwitches\">\n <b-col>\n <ad-switch-button v-model=\"showAsk\" activeStateClass=\"bg-ask\" :disabled=\"!isIntraday\">\n <slot name=\"button-ask\"></slot>\n </ad-switch-button>\n <b-form-group\n v-if=\"settingsProperty.multipleUnderlyings\"\n id=\"input-underlyings\"\n label-for=\"underlyings-input\"\n :class=\"[\n 'mb-2',\n 'pt-2',\n 'align-bottom',\n 'focus-white',\n { 'underlying-dropdown-inline': $screen.sm },\n { 'mr-1': $screen.sm },\n ]\"\n >\n <ad-drop-down-list\n v-bind=\"$attrs\"\n :options=\"productUnderlyingsOptions\"\n :value=\"selectedUnderlyingIsin\"\n @input=\"selectUnderlying\"\n form-element-state-id=\"input-underlyings\"\n />\n </b-form-group>\n <ad-switch-button\n v-else-if=\"settingsProperty.isUnderlyingButtonAvailable\"\n :value=\"!!selectedUnderlyingIsin\"\n @input=\"selectUnderlying\"\n activeStateClass=\"bg-underlying\"\n >\n <slot name=\"button-underlying\"></slot>\n </ad-switch-button>\n <ad-switch-button v-model=\"relative\">\n <slot name=\"button-relative\"></slot>\n </ad-switch-button>\n <ad-switch-button v-model=\"realtime\">\n <slot name=\"button-realtime\"></slot>\n </ad-switch-button>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Ref, Prop, InjectReactive, Watch } from 'vue-property-decorator';\nimport AdStockChart from '@components/molecules/charts/ad-stock-chart.vue';\nimport AdChartPeriods from '@components/molecules/charts/ad-chart-periods.vue';\nimport AdChartLegend from '@components/molecules/charts/ad-chart-legend.vue';\nimport { PriceModel, ProductModel, UnderlyingModel } from '@/src/types/the-q-api';\nimport { DataSeries, DropDownItem, LabelPosition } from '@/src/types/vue-api';\nimport { AdChartBase } from '@components/molecules/charts/ad-chart-base';\nimport { ProductChartSettings } from '@/src/types/episerver-api';\nimport { ChartColors, ChartSeries, DropDownItemType, InstrumentOriginTimeZone } from '@/src/types/enumerations';\nimport { utcParse } from '@/src/utils/date-helper';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n components: {\n 'ad-stock-chart': AdStockChart,\n 'ad-chart-periods': AdChartPeriods,\n 'ad-chart-legend': AdChartLegend,\n },\n})\nexport default class AdProductChart extends AdChartBase {\n @Ref() readonly chart!: AdStockChart;\n @InjectReactive() product!: ProductModel | null;\n @Prop({ default: false }) disableUnderlying!: boolean;\n\n @Getter('teaserUnderlyings', { namespace: 'underlying' })\n teaserUnderlyings!: Array<UnderlyingModel>;\n\n @Action('loadTeaserUnderlyingsAsync', { namespace: 'underlying' })\n loadTeaserUnderlyingsAsync!: (isins: string[]) => Promise<void>;\n\n @Action('subscribePushValue', { namespace: 'product' })\n subscribePushValue!: (key: string) => Promise<void>;\n\n created() {\n this.showAsk = (this.settingsProperty as ProductChartSettings).askButtonState;\n this.selectUnderlying((this.settingsProperty as ProductChartSettings).underlyingButtonState);\n\n this.subscribePushValue('product.price.bid.amount');\n this.subscribePushValue('product.price.ask.amount');\n this.subscribePushValue('product.price.timeStamp');\n\n this.$watch('product.price.bid.amount', this.pushBidChart);\n this.$watch('product.price.ask.amount', this.pushAskChart);\n this.$watch('teaserUnderlyings', this.pushUnderlyingPriceChart, { deep: true });\n\n super.created();\n }\n\n priceFormat(axis: LabelPosition): string {\n switch (axis) {\n case LabelPosition.Left:\n return (this.settingsProperty as ProductChartSettings).productTooltipValueFormatFieldKey || 'product.last';\n case LabelPosition.Right:\n return this.settingsProperty.tooltipValueFormatFieldKey || 'underlying.last';\n }\n }\n currencyCode(axis: LabelPosition): string {\n switch (axis) {\n case LabelPosition.Left:\n return this.product?.currencyCode || '';\n case LabelPosition.Right:\n return this.selectedUnderlying?.currencyCode || '';\n }\n }\n\n private get bidColor(): ChartColors {\n return ChartColors.productBid;\n }\n\n private get askColor(): ChartColors {\n return ChartColors.productAsk;\n }\n\n private get underlyingColor(): ChartColors {\n return ChartColors.underlying;\n }\n\n private get isProduct52WeeksHighLowHidden() {\n return (this.settingsProperty as ProductChartSettings).isProduct52WeeksHighLowHidden || false;\n }\n\n private get isLegendEnabled() {\n return (this.settingsProperty as ProductChartSettings).isLegendEnabled;\n }\n\n @Watch('product')\n protected async loadChartData() {\n if (!this.product) return;\n const [productData, underlyingData, productInitialData, underlyingInitialData] = await Promise.all([\n this.loadProductData(),\n this.loadUnderlyingData(),\n this.loadProductInitialData(),\n this.loadUnderlyingInitialData(),\n ]);\n\n this.initialValueForRelativeData = { ...productInitialData, ...underlyingInitialData };\n let data = [productData, underlyingData].reduce(\n (previousValue, currentValue) => (currentValue ? [...previousValue, ...currentValue] : previousValue),\n []\n );\n //If there is no data for product, series have to be filtered out for correct rendering. But only if push not activated.\n if (this.relative && data.find((s) => s.labels == LabelPosition.Left && s.data.length !== 0) === undefined) {\n data = data.filter((s) => s.labels == LabelPosition.Right);\n data.forEach((s) => (s.labels = LabelPosition.Left));\n }\n this.data = data;\n }\n\n async loadProductData(): Promise<DataSeries[]> {\n if (!this.product?.isin) return [];\n const action = 'GetProduct' + (this.relative ? 'Relative' : '');\n const series = this.getProductSeries();\n const data = await this.requestChartData(\n action,\n this.product.origin.timeZone == InstrumentOriginTimeZone.AET\n ? this.product.securityCode ?? this.product.isin\n : this.product.isin,\n this.product.origin.timeZone,\n series\n );\n const result: DataSeries[] = [];\n\n if (data && data[ChartSeries.bid]) {\n result.push(new DataSeries(ChartSeries.bid, data[ChartSeries.bid], ChartColors.productBid, LabelPosition.Left));\n }\n if (data && data[ChartSeries.ask]) {\n result.push(new DataSeries(ChartSeries.ask, data[ChartSeries.ask], ChartColors.productAsk, LabelPosition.Left));\n }\n return result;\n }\n\n async loadUnderlyingData(): Promise<DataSeries[]> {\n if (!(this.selectedUnderlying && this.selectedUnderlying.isin && this.product)) {\n return [];\n }\n\n const action = 'GetUnderlying' + (this.relative ? 'Relative' : '');\n const data = await this.requestChartData(\n action,\n this.product.origin.timeZone == InstrumentOriginTimeZone.AET\n ? this.selectedUnderlying.nsins.wkn ?? this.selectedUnderlying.isin\n : this.selectedUnderlying.isin,\n this.product.origin.timeZone\n );\n if (data && data[ChartSeries.price]) {\n const position = this.relative ? LabelPosition.Left : LabelPosition.Right;\n return [new DataSeries(ChartSeries.price, data[ChartSeries.price], ChartColors.underlying, position)];\n }\n return [];\n }\n\n private async loadProductInitialData(): Promise<{ [key: string]: number }> {\n if (!(this.relative && this.product)) {\n return {};\n }\n const series = this.getProductSeries();\n return this.requestInitialData(\n 'GetProductInitialPrice',\n this.product.origin.timeZone == InstrumentOriginTimeZone.AET\n ? this.product.securityCode ?? this.product.isin\n : this.product.isin,\n this.product.origin.timeZone,\n series\n );\n }\n\n private async loadUnderlyingInitialData(): Promise<{ [key: string]: number }> {\n if (!(this.relative && this.selectedUnderlying && this.selectedUnderlying.isin && this.product)) {\n return {};\n }\n\n return this.requestInitialData(\n 'GetUnderlyingInitialPrice',\n this.selectedUnderlying.nsins.isin,\n this.product.origin.timeZone\n );\n }\n\n private getProductSeries(): ChartSeries[] {\n const series = [ChartSeries.bid];\n if (this.showAsk) {\n series.push(ChartSeries.ask);\n }\n return series;\n }\n\n protected _ask = true;\n get showAsk(): boolean {\n return this.isIntraday && this.$data._ask;\n }\n set showAsk(value: boolean) {\n this.$data._ask = value;\n this.updateData();\n }\n\n selectedUnderlyingIsin = '';\n\n selectUnderlying(value: string | boolean): void {\n if (value === true && this.product && this.product.underlyings && this.product.underlyings.length > 0) {\n this.selectedUnderlyingIsin = this.product.underlyings[0].isin;\n } else if (typeof value == 'string') {\n this.selectedUnderlyingIsin = value;\n } else {\n this.selectedUnderlyingIsin = '';\n }\n if (\n this.selectedUnderlyingIsin &&\n this.product?.underlyings &&\n (!this.teaserUnderlyings || this.teaserUnderlyings.length == 0)\n ) {\n this.loadTeaserUnderlyingsAsync(this.product.underlyings.map((u) => u.isin));\n }\n this.updateData();\n }\n\n get selectedUnderlying(): UnderlyingModel | undefined {\n if (this.disableUnderlying) return undefined;\n const underlying = this.product?.underlyings?.filter((u) => u.isin === this.selectedUnderlyingIsin);\n return underlying && underlying?.length != 0 ? underlying[0] : undefined;\n }\n\n get productUnderlyingsOptions(): DropDownItem[] {\n const items =\n this.product?.underlyings?.map((option) => {\n return {\n type: DropDownItemType.item,\n text: option.name,\n value: option.isin,\n } as DropDownItem;\n }) || [];\n items.unshift({\n type: DropDownItemType.item,\n text: (this.settingsProperty as ProductChartSettings).noUnderlyingText,\n value: '',\n } as DropDownItem);\n return items;\n }\n\n pushBidChart(): void {\n const price = this.product?.price?.bid;\n const chartSerie = ChartSeries.bid;\n this.pushPriceChart(price, chartSerie);\n }\n\n pushAskChart(): void {\n if (!this.showAsk) {\n return;\n }\n const price = this.product?.price?.ask;\n const chartSerie = ChartSeries.ask;\n this.pushPriceChart(price, chartSerie);\n }\n\n private pushPriceChart(price: PriceModel | undefined, chartSerie: ChartSeries): void {\n if (!!price && !!this.product?.price?.timeStamp) {\n const pushValue = this.getChartPushValue(chartSerie, price.amount);\n this.pushChart(this.getSeriesIndex(chartSerie), pushValue, utcParse(this.product.price.timeStamp));\n }\n }\n\n pushUnderlyingPriceChart(): void {\n if (!this.selectedUnderlyingIsin) return;\n const underlying = this.teaserUnderlyings.find((u) => u.isin == this.selectedUnderlyingIsin);\n if (!underlying || underlying.last === null || underlying.timeStamp === null) return;\n const chartSerie = ChartSeries.price;\n const pushValue = this.getChartPushValue(chartSerie, underlying.last.amount);\n\n this.pushChart(this.getSeriesIndex(chartSerie), pushValue, utcParse(underlying.timeStamp));\n }\n\n getSeriesIndex(series: ChartSeries): number {\n return this.data.findIndex((ds) => ds.series === series);\n }\n\n pushChart(seriesIndex: number, pushValue: number | null, pushTimestamp: number): void {\n if (\n seriesIndex >= 0 &&\n //push the value if chart is already initialised, value has amount and timestamp\n this.realtime &&\n this.chart &&\n pushValue &&\n //if there is a min-max limitation for the xAsis, timestamp has to fit into that range\n (!this.xAxisMin || pushTimestamp >= this.xAxisMin) &&\n (!this.xAxisMax || pushTimestamp <= this.xAxisMax)\n ) {\n const updateThreshold = this.selectedPeriod?.pointInterval\n ? this.selectedPeriod?.pointInterval * 1000\n : undefined;\n this.chart.pushValue(seriesIndex, pushTimestamp, pushValue, updateThreshold, false);\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.bg-ask {\n background-color: $deep-red;\n label {\n color: $white;\n }\n}\n\n.bg-underlying {\n background-color: $black;\n label {\n color: $white;\n }\n}\n\n.underlying-dropdown-inline {\n display: inline-block;\n width: rem(277);\n height: rem(48);\n\n /* stylelint-disable selector-class-pattern */\n &.form-group .ad-drop-down-list .vs__actions {\n top: 0;\n }\n /* stylelint-enable selector-class-pattern */\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4101a3a6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4101a3a6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-5 mb-xl-0\"},[_c('b-row',[_c('b-col',{staticClass:\"py-1 pr-3\"},[_c('b-button',{class:['px-1', 'pt-1', 'ml-2', 'float-right', 'btn-chart-type', { active: !_vm.candlestick }],attrs:{\"variant\":\"light\"},on:{\"click\":function($event){return _vm.setChartType(_vm.chartPatterns.Line)}}},[_c('ad-icon-chart-line',{attrs:{\"height\":\"2em\",\"width\":\"2em\",\"iconName\":_vm.settingsProperty.lineChartName}})],1),_c('b-button',{class:['px-1', 'pt-1', 'float-right', 'btn-chart-type', { active: _vm.candlestick }],attrs:{\"variant\":\"light\"},on:{\"click\":function($event){return _vm.setChartType(_vm.chartPatterns.Candlestick)}}},[_c('ad-icon-chart-candlestick',{attrs:{\"height\":\"2em\",\"width\":\"2em\",\"iconName\":_vm.settingsProperty.candlestickChartName}})],1)],1)],1),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',[_c('ad-stock-chart',{ref:\"chart\",staticClass:\"realtime-chart\",attrs:{\"series\":_vm.data,\"pointInterval\":_vm.pointInterval,\"labelDateFormatter\":_vm.formatLabelDate,\"labelValueFormatter\":_vm.formatLabelValue,\"tooltipDateFormatter\":_vm.formatTooltipDate,\"tooltipValueFormatter\":_vm.formatTooltipValue,\"xAxisTickInterval\":_vm.xAxisTickInterval,\"xAxisMax\":_vm.xAxisMax,\"xAxisMin\":_vm.xAxisMin,\"marginRight\":5,\"navigator\":true,\"scrollbar\":_vm.showScrollbar,\"type\":_vm.chartType}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mb-5 mb-xl-0\">\n <b-row>\n <b-col class=\"py-1 pr-3\">\n <b-button\n variant=\"light\"\n :class=\"['px-1', 'pt-1', 'ml-2', 'float-right', 'btn-chart-type', { active: !candlestick }]\"\n @click=\"setChartType(chartPatterns.Line)\"\n >\n <ad-icon-chart-line height=\"2em\" width=\"2em\" :iconName=\"settingsProperty.lineChartName\" />\n </b-button>\n <b-button\n variant=\"light\"\n :class=\"['px-1', 'pt-1', 'float-right', 'btn-chart-type', { active: candlestick }]\"\n @click=\"setChartType(chartPatterns.Candlestick)\"\n >\n <ad-icon-chart-candlestick height=\"2em\" width=\"2em\" :iconName=\"settingsProperty.candlestickChartName\" />\n </b-button>\n </b-col>\n </b-row>\n <b-row class=\"no-gutters\">\n <b-col>\n <ad-stock-chart\n :series=\"data\"\n :pointInterval=\"pointInterval\"\n :labelDateFormatter=\"formatLabelDate\"\n :labelValueFormatter=\"formatLabelValue\"\n :tooltipDateFormatter=\"formatTooltipDate\"\n :tooltipValueFormatter=\"formatTooltipValue\"\n :xAxisTickInterval=\"xAxisTickInterval\"\n :xAxisMax=\"xAxisMax\"\n :xAxisMin=\"xAxisMin\"\n :marginRight=\"5\"\n :navigator=\"true\"\n :scrollbar=\"showScrollbar\"\n :type=\"chartType\"\n ref=\"chart\"\n class=\"realtime-chart\"\n ></ad-stock-chart></b-col\n ></b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { getTheQApiUrl } from '@src/utils/url-helper';\nimport httpClient from '@/src/utils/http-service';\nimport { Component, Inject, Ref, Vue } from 'vue-property-decorator';\nimport AdStockChart from '@components/molecules/charts/ad-stock-chart.vue';\nimport { ChartPoint, OhlcChartPoint, PriceModel, UnderlyingModel } from '@src/types/the-q-api';\nimport { DataSeries, OhlcDataSeries, ChartsApiFilterItem } from '@src/types/vue-api';\nimport { Getter, Action } from 'vuex-class';\nimport {\n Controller,\n InstrumentOriginTimeZone,\n ChartPeriods,\n ChartPatterns,\n ChartSeries,\n ChartColors,\n DefaultFormat,\n} from '@src/types/enumerations';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\nimport { utcDate, utcParse, utcToday } from '@/src/utils/date-helper';\nimport { ChartsApiFilter, RealtimeChartSettings } from '@/src/types/episerver-api';\nimport { InstrumentDataFieldBase } from '@/src/types/episerver-api-instrument';\nimport { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\n\nexport class RealtimeChartsApiFilterItem implements ChartsApiFilter {\n timeZone: InstrumentOriginTimeZone;\n symbol: string;\n pointInterval: number | null;\n timeFrom: number | null;\n timeTo: number | null;\n period: ChartPeriods;\n series: string | null;\n constructor(\n symbol: string,\n timeZone: InstrumentOriginTimeZone,\n pointInterval: number | null,\n timeFrom: number | null,\n timeTo: number | null\n ) {\n this.symbol = symbol;\n this.timeZone = timeZone;\n this.pointInterval = null;\n this.timeFrom = null;\n this.timeTo = null;\n this.pointInterval = pointInterval;\n this.timeFrom = timeFrom;\n this.timeTo = timeTo;\n this.period = ChartPeriods.Intraday;\n this.series = null;\n }\n}\n\n@Component({\n components: {\n 'ad-stock-chart': AdStockChart,\n },\n})\nexport default class AdRealtimeChart extends Vue {\n @Ref() readonly chart!: AdStockChart;\n @Inject() settingsProperty!: RealtimeChartSettings;\n\n @Getter('underlying', { namespace: 'underlying' })\n private underlying!: UnderlyingModel | null;\n\n @Action('subscribePushValue', { namespace: 'underlying' })\n subscribePushValue!: (fieldKey: string) => Promise<void>;\n\n protected data: OhlcDataSeries[] | DataSeries[] = [];\n protected candlestick = true;\n protected chartPatterns = ChartPatterns;\n get priceFormat(): string {\n return 'underlying.last';\n }\n currencyCode(): string {\n return this.underlying?.currencyCode || '';\n }\n\n get chartType() {\n return this.candlestick ? ChartPatterns.Candlestick : ChartPatterns.Line;\n }\n\n setChartType(type: string) {\n switch (type) {\n case ChartPatterns.Candlestick:\n this.candlestick = true;\n break;\n case ChartPatterns.Line:\n this.candlestick = false;\n break;\n default:\n break;\n }\n this.loadChartData();\n }\n\n private get pointInterval(): number | null {\n return this.candlestick ? this.settingsProperty.candlestickPointInterval : this.settingsProperty.linePointInterval;\n }\n protected get xAxisTickInterval(): number | null {\n return this.settingsProperty?.axisTickInterval || null;\n }\n protected get xAxisMin(): number | undefined {\n return this.settingsProperty.tradingTimeStart\n ? utcToday() + this.settingsProperty.tradingTimeStart * 1000 * 0.99 //additional padding to prevent label cut off\n : undefined;\n }\n protected get xAxisMax(): number | undefined {\n return this.settingsProperty.tradingTimeEnd\n ? utcToday() + this.settingsProperty.tradingTimeEnd * 1000 * 1.01 //additional padding to prevent label cut off\n : undefined;\n }\n\n get showScrollbar() {\n return !this.$screen.md;\n }\n\n protected formatTooltipDate(chart: AdRealtimeChart, value: number): string {\n return formatField(utcDate(value), chart.settingsProperty.tooltipDateFormatFieldKey || DefaultFormat.DateTime);\n }\n\n protected formatTooltipValue(chart: AdRealtimeChart, value: Highcharts.TooltipFormatterContextObject): string {\n const point = value.point as unknown as OhlcChartPoint;\n const format = chart.settingsProperty.tooltipValueFormatFieldKey || DefaultFormat.Decimal;\n if (this.chartType === ChartPatterns.Candlestick) {\n const close = formatField({ amount: point.close, currencyCode: chart.currencyCode() }, format);\n const open = formatField({ amount: point.open, currencyCode: chart.currencyCode() }, format);\n const low = formatField({ amount: point.low, currencyCode: chart.currencyCode() }, format);\n const high = formatField({ amount: point.high, currencyCode: chart.currencyCode() }, format);\n return `${chart.settingsProperty.labelOpen}: ${open}<br/>\n ${chart.settingsProperty.labelHigh}: ${high}<br/>\n ${chart.settingsProperty.labelLow}: ${low}<br/>\n ${chart.settingsProperty.labelClose}: ${close}`;\n } else if (value.point.y) {\n return `${formatField({ amount: value.point.y, currencyCode: chart.currencyCode() }, format)}`;\n } else {\n return `${value.point.y}`;\n }\n }\n\n protected formatLabelDate(chart: AdRealtimeChart, value: number): string {\n return formatField(utcDate(value), chart.settingsProperty.xAxisLabelFormatFieldKey || DefaultFormat.Time);\n }\n\n protected formatLabelValue(chart: AdRealtimeChart, value: number): string {\n return formatField(value, chart.settingsProperty.yAxisLabelFormatFieldKey || DefaultFormat.Decimal);\n }\n\n get chartHeight(): number {\n let height: number;\n if (this.$screen.lg) height = 425;\n else if (this.$screen.md) height = 335;\n else height = 240;\n height += 75;\n return height;\n }\n\n protected async loadChartData() {\n if (!this.underlying) return;\n const action = 'GetUnderlying';\n if (this.chartType === ChartPatterns.Candlestick) {\n const data = await this.requestCandlestickChartData(\n action,\n this.underlying.origin.timeZone == InstrumentOriginTimeZone.AET\n ? this.underlying.nsins.wkn ?? this.underlying.nsins.isin\n : this.underlying.nsins.isin,\n this.underlying.origin.timeZone\n );\n if (data) {\n this.data = [new OhlcDataSeries(data)];\n }\n } else if (this.chartType === ChartPatterns.Line) {\n const data = await this.requestLineChartData(action, this.underlying.nsins.isin, this.underlying.origin.timeZone);\n if (data) {\n this.data = [new DataSeries(ChartSeries.realtime, data, ChartColors.underlying)];\n }\n }\n }\n /**\n * Requests realtime chart data for Candlestick pattern\n */\n protected async requestCandlestickChartData(\n action: string,\n isin: string | undefined,\n timezone: InstrumentOriginTimeZone\n ): Promise<OhlcChartPoint[] | null> {\n if (!isin) return null;\n try {\n const response = await httpClient.get<OhlcChartPoint[]>(getTheQApiUrl(Controller.RealtimeCharts, action), {\n params: new RealtimeChartsApiFilterItem(\n isin,\n timezone,\n this.pointInterval,\n this.settingsProperty.tradingTimeStart,\n this.settingsProperty.tradingTimeEnd\n ),\n });\n return response.data;\n } catch (ex) {\n this.$log.error(ex);\n return null;\n }\n }\n\n /**\n * Requests realtime chart data for Line pattern\n */\n protected async requestLineChartData(\n action: string,\n isin: string | undefined,\n timezone: InstrumentOriginTimeZone\n ): Promise<ChartPoint[] | null> {\n if (!isin) return null;\n try {\n const response = await httpClient.get<{ [key: string]: ChartPoint[] }>(getTheQApiUrl(Controller.Charts, action), {\n params: new ChartsApiFilterItem(\n ChartPeriods.Intraday,\n [ChartSeries.price],\n isin,\n timezone,\n this.pointInterval,\n this.settingsProperty.tradingTimeStart,\n this.settingsProperty.tradingTimeEnd\n ),\n });\n return response.data[ChartSeries.price];\n } catch (ex) {\n this.$log.error(ex);\n return null;\n }\n }\n\n pushValueFieldKey = 'underlying.last';\n get pushValue(): PriceModel | null | undefined {\n return this.underlying?.last;\n }\n\n get pushTimestamp(): number | undefined {\n return this.underlying?.timeStamp ? utcParse(this.underlying.timeStamp) : undefined;\n }\n\n pushChart() {\n if (\n this.chart &&\n this.pointInterval &&\n this.pushValue &&\n this.pushValue.amount != null &&\n //if there is a min-max limitation for the xAxis, timestamp has to fit into that range\n this.pushTimestamp &&\n (!this.xAxisMin || this.pushTimestamp >= this.xAxisMin) &&\n (!this.xAxisMax || this.pushTimestamp <= this.xAxisMax)\n ) {\n this.chart.pushValue(0, this.pushTimestamp, this.pushValue.amount, this.pointInterval * 1000, true);\n }\n }\n\n created() {\n this.loadChartData();\n if ((getFormatDataField(this.pushValueFieldKey) as InstrumentDataFieldBase)?.push) {\n this.subscribePushValue(this.pushValueFieldKey);\n this.$watch('pushValue', this.pushChart);\n }\n }\n}\n</script>\n<style lang=\"scss\">\n$chart-real-font-size: $fs-10;\n$chart-real-tooltip-value-font-size: $fs-14;\n$chart-real-tooltip-value-font-size-sm: $fs-10;\n\n.highcharts-point-down {\n fill: $mulberry;\n}\n.highcharts-point-up {\n fill: $kelley-green;\n}\n.btn-chart-type {\n background-color: $light-blue-grey;\n width: rem(46);\n min-width: rem(46);\n height: rem(46);\n color: $peacock-blue;\n}\n.btn-chart-type.active {\n background-color: $peacock-blue;\n color: $light-blue-grey;\n}\n\n.realtime-chart {\n .highcharts-background {\n fill: $silver;\n }\n .highcharts-plot-background {\n fill: $white;\n }\n .highcharts-tooltip {\n .timestamp {\n font-size: $chart-real-font-size !important;\n }\n\n .value {\n font-size: $chart-real-tooltip-value-font-size !important;\n\n @include media-breakpoint-down('sm') {\n font-size: $chart-real-tooltip-value-font-size-sm !important;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=50e7589c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=50e7589c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',_vm._b({ref:\"chartContainer\"},'div',_vm.$attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-bind=\"$attrs\" ref=\"chartContainer\"></div>\n</template>\n<script lang=\"ts\">\nimport * as Highcharts from 'highcharts';\nimport Stock from 'highcharts/modules/stock';\nimport { Component, Vue, Prop, Watch, Ref } from 'vue-property-decorator';\nimport { DataSeries, LabelPosition } from '@/src/types/vue-api';\nimport { AdChartBase } from './ad-chart-base';\nimport BrokenAxisModule from 'highcharts/modules/broken-axis';\nimport { millisecondsInDay, utcDate } from '@/src/utils/date-helper';\nimport { ChartPatterns } from '@src/types/enumerations';\n\nBrokenAxisModule(Highcharts);\nStock(Highcharts);\n\n@Component({})\nexport default class AdStockChart extends Vue {\n @Ref() chartContainer;\n @Prop() series!: DataSeries[];\n @Prop() pointInterval?: number | undefined;\n @Prop() xAxisTickInterval?: number | undefined;\n @Prop() xAxisLabelStep?: number | undefined;\n @Prop() xAxisLabelMargin?: number | undefined;\n @Prop() xAxisMin?: number | undefined;\n @Prop() xAxisMax?: number | undefined;\n @Prop() marginLeft?: number;\n @Prop() marginRight?: number;\n @Prop() height?: number | undefined;\n @Prop({ required: true }) labelDateFormatter!: (chart: AdChartBase, value: number) => string;\n @Prop({ required: true }) labelValueFormatter!: (chart: AdChartBase, value: number) => string;\n @Prop({ required: true }) tooltipDateFormatter!: (chart: AdChartBase, value: number) => string;\n @Prop({ required: true }) tooltipValueFormatter!: (\n chart: AdChartBase,\n value: Highcharts.TooltipFormatterContextObject,\n label: LabelPosition\n ) => string;\n @Prop({ default: false }) navigator!: boolean;\n @Prop({ default: false }) scrollbar!: boolean;\n @Prop({ default: 'line' }) type!: string;\n @Prop() breakThreshold: number | undefined;\n @Prop() repeatedBreaks?: Highcharts.XAxisBreaksOptions[];\n @Prop({ default: 0 }) tickOffset!: number;\n\n formatTooltip(point: Highcharts.TooltipFormatterContextObject) {\n const labelPosition = point.series.yAxis.side == 3 ? LabelPosition.Left : LabelPosition.Right;\n return `<span class=\"timestamp\">${\n typeof point.x == 'number' ? this.tooltipDateFormatter(this.$parent as AdChartBase, point.x) : ''\n }</span>\n <br/>\n <span class=\"value\">${this.tooltipValueFormatter(\n this.$parent as AdChartBase,\n point,\n labelPosition\n )}</span>`;\n }\n\n private get _xAxisLabelMargin() {\n if (this.xAxisLabelMargin) return this.xAxisLabelMargin;\n else if (!this.$screen.md) return 20;\n return 30;\n }\n\n private stockChart: Highcharts.Chart | undefined;\n\n @Watch('$screen.breakpoint')\n @Watch('series', { immediate: true })\n initChart(): void {\n if (!this.chartContainer) return;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n const breaks = context.findThresholdBreaks();\n\n const tickPositioner = function (this: Highcharts.Axis) {\n return this.tickPositions?.map((t) => {\n //if a label falls on a holiday move it to the end of the break\n const holidayBreak = breaks.find((b) => b.from && b.to && b.from < t && b.to > t);\n if (holidayBreak) return holidayBreak.to;\n //else move them to the beginning of the trade time\n if (context.tickOffset) return Math.floor(t / millisecondsInDay) * millisecondsInDay + context.tickOffset;\n return t;\n });\n };\n\n const options = {\n series: context.mapChartSeries(),\n yAxis: context.mapYAxis(),\n xAxis: {\n type: 'datetime',\n gridLineWidth: 1,\n gridLineDashStyle: 'Dot',\n minTickInterval: context.xAxisTickInterval,\n tickPixelInterval: 110,\n labels: {\n step: context.xAxisLabelStep,\n formatter: (point) => context.labelDateFormatter(context.$parent as AdChartBase, point.value as number),\n y: context._xAxisLabelMargin,\n },\n tickLength: 0,\n tickPositioner: tickPositioner,\n min: context.xAxisMin,\n max: context.xAxisMax,\n ordinal: false,\n breaks: breaks.length != 0 ? breaks.concat(...(context.repeatedBreaks || [])) : undefined,\n },\n plotOptions: {\n series: {\n stickyTracking: false,\n turboThreshold: 6000,\n connectNulls: true,\n dataGrouping: {\n enabled: context.pointInterval == undefined,\n },\n },\n },\n rangeSelector: {\n enabled: false,\n },\n chart: {\n styledMode: false,\n height: context.height,\n marginLeft: context.marginLeft,\n marginRight: context.marginRight,\n },\n tooltip: {\n useHTML: true,\n borderWidth: 0,\n shared: false,\n split: false,\n followPointer: true,\n formatter: function (this: Highcharts.TooltipFormatterContextObject) {\n return context.formatTooltip(this);\n },\n },\n scrollbar: {\n enabled: context.scrollbar,\n },\n navigator: {\n enabled: context.navigator,\n adaptToUpdatedData: false,\n margin: 10,\n height: 30,\n xAxis: {\n labels: {\n formatter: (point) => context.labelDateFormatter(context.$parent as AdChartBase, point.value as number),\n },\n },\n yAxis: {\n visible: false,\n },\n },\n credits: {\n enabled: false,\n },\n } as Highcharts.Options;\n\n this.stockChart = Highcharts.stockChart(this.chartContainer, options);\n this.$log.debug(options);\n this.calcChartMarginLeft(this.stockChart.yAxis);\n this.calcChartMarginRight(this.stockChart.yAxis);\n }\n\n labelLength(axis: Highcharts.Axis[], side: number): number {\n const labels = axis\n .filter((a) => a.side == side)\n .flatMap((a) => a.tickPositions)\n .filter((n: number | undefined): n is number => !!n);\n const max = Math.max(0, ...labels);\n const digits = this.labelValueFormatter(this.$parent as AdChartBase, max).length;\n //We have to calculate the label margin manually based on the length of the longest value.\n return digits;\n }\n\n calcChartMarginLeft(axis: Highcharts.Axis[]): number {\n const length = this.labelLength(axis, 3);\n this.$emit('marginChange', this.$parent, LabelPosition.Left, length);\n return length;\n }\n calcChartMarginRight(axis: Highcharts.Axis[]): number {\n const length = this.labelLength(axis, 1);\n this.$emit('marginChange', this.$parent, LabelPosition.Right, length);\n return length;\n }\n\n private lastSeriesUpdate: number[] = [];\n private mapChartSeries(): Highcharts.SeriesLineOptions[] {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n this.lastSeriesUpdate = this.series.map((s) => (s.data.length != 0 ? s.data[s.data.length - 1].x : 0));\n return this.series.map((s) => {\n return {\n type: context.type,\n data: s.data,\n color: s.color,\n yAxis: s.labels == LabelPosition.Left ? 0 : 1,\n stickyTracking: true,\n pointWidth: context.type == ChartPatterns.Candlestick ? 3 : undefined,\n } as Highcharts.SeriesLineOptions;\n });\n }\n\n //flat all the series and look for periods where there is no points\n private findThresholdBreaks(): Highcharts.XAxisBreaksOptions[] {\n if (!this.breakThreshold || !this.series?.length) return [];\n const breaks: Highcharts.XAxisBreaksOptions[] = [];\n let prevPoint: number | undefined;\n const points = this.series.flatMap((s) => s.data.map((p) => p.x)).sort();\n for (const point of points) {\n if (prevPoint && point - prevPoint >= this.breakThreshold) {\n breaks.push({\n from: prevPoint,\n to: point,\n breakSize: 0,\n });\n }\n prevPoint = point;\n }\n return breaks;\n }\n\n private mapYAxis(): Highcharts.YAxisOptions[] {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n const leftColor = this.series.find((s) => s.labels == LabelPosition.Left && s.data.length !== 0)?.color;\n const rightColor = this.series.find((s) => s.labels == LabelPosition.Right && s.data.length !== 0)?.color;\n const axis = [\n {\n gridLineDashStyle: 'Dot' as Highcharts.DashStyleValue,\n opposite: false,\n labels: {\n style: {\n align: 'right',\n color: leftColor,\n whiteSpace: 'nowrap',\n textOverflow: 'none',\n },\n formatter: (point) => this.labelValueFormatter(context.$parent as AdChartBase, point.value),\n },\n },\n {\n gridLineDashStyle: 'Dot' as Highcharts.DashStyleValue,\n opposite: true,\n visible: !!rightColor,\n labels: {\n style: {\n align: 'left',\n color: rightColor,\n whiteSpace: 'nowrap',\n textOverflow: 'none',\n },\n formatter: (point) => this.labelValueFormatter(this.$parent as AdChartBase, point.value),\n },\n },\n ];\n return axis;\n }\n\n public pushValue(series: number, x: number, y: number, updateTreshold: number | undefined, isOhlc = false) {\n if (\n !this.stockChart ||\n this.lastSeriesUpdate.length < series ||\n series < 0 ||\n this.stockChart.series.length - 1 < series\n ) {\n return;\n }\n const delta = x - this.lastSeriesUpdate[series];\n const seriesData = this.stockChart.series[series];\n const pointsCount = seriesData.points.length;\n\n /*if (isRelative && !isOhlc) {\n const first = pointsCount > 0 ? seriesData.points[pointsCount - 1].y : undefined;\n y = !first ? 1 : y / first;\n }*/\n\n if (pointsCount == 0 || (updateTreshold && delta > updateTreshold)) {\n this.lastSeriesUpdate[series] = x;\n this.addPoint(seriesData, x, y, isOhlc);\n this.$log.debug(\n `Pushed new chart point ${utcDate(\n x\n )}, ${y} with delta from previois ${delta}ms over threshold ${updateTreshold}`\n );\n if (this.navigator && series == 0) {\n const navigator = this.stockChart as Highcharts.Chart & { navigator: Highcharts.NavigatorOptions };\n this.addPoint(navigator.series[0], x, y, isOhlc);\n }\n } else if (delta > 0) {\n this.$log.debug(\n `Updated chart point ${utcDate(\n x\n )} with ${y} with delta from previois ${delta}ms under threshold ${updateTreshold}`\n );\n this.updatePoint(seriesData.points[pointsCount - 1], x, y, isOhlc);\n }\n }\n\n private addPoint(series: Highcharts.Series, x: number, y: number, isOhlc: boolean): void {\n series.addPoint(isOhlc ? { x: x, open: y, high: y, low: y, close: y } : { x: x, y: y });\n }\n\n private updatePoint(\n point: Highcharts.Point & { high?: number; low?: number },\n x: number,\n y: number,\n isOhlc: boolean\n ): void {\n if (!isOhlc) {\n point.update(y);\n }\n const high = Math.max(point.high || 0, y);\n const low = Math.min(point.low || 0, y);\n point.update({\n x: x,\n high: high,\n low: low,\n close: y,\n y: y,\n });\n }\n\n public mounted() {\n this.initChart();\n }\n}\n</script>\n<style lang=\"scss\">\n$chart-date-font-size: $fs-14;\n$chart-date-font-size-md: $fs-10;\n$chart-date-font-size-navigator: $fs-12;\n$chart-font-size: $fs-14;\n$chart-font-size-sm: $fs-10;\n$chart-tooltip-value-font-size: $fs-18;\n\n.highcharts-plot-background {\n fill: $light-grey;\n stroke: $gunmetal;\n stroke-width: 1;\n}\n\n.highcharts-axis .highcharts-axis-line {\n display: none;\n}\n\n.highcharts-crosshair-thin {\n stroke: $cool-grey;\n stroke-width: 1;\n}\n\n.highcharts-grid .highcharts-grid-line {\n stroke: $cool-grey;\n}\n\n.highcharts-xaxis-labels text {\n fill: $marine-blue !important;\n font-size: $chart-date-font-size !important;\n\n @include media-breakpoint-down('md') {\n font-size: $chart-date-font-size-md !important;\n }\n}\n\n.highcharts-navigator-xaxis.highcharts-xaxis-labels text {\n font-size: $chart-date-font-size-navigator !important;\n\n @include media-breakpoint-down('md') {\n font-size: $chart-date-font-size-md !important;\n }\n}\n\n.highcharts-yaxis-labels text {\n font-size: $chart-font-size !important;\n font-weight: bold;\n\n @include media-breakpoint-down('sm') {\n font-size: $chart-font-size-sm !important;\n }\n}\n\n.highcharts-tooltip {\n font-size: $chart-font-size;\n\n .highcharts-tooltip-box {\n background-color: $white;\n fill: $white;\n\n .highcharts-label-box {\n margin-top: rem(5);\n fill: $white;\n }\n }\n .value {\n font-size: $chart-tooltip-value-font-size;\n }\n}\n.highcharts-crosshair {\n stroke: $bright-sky-blue;\n}\n.highcharts-navigator-handle {\n stroke: $light-grey;\n fill: $bright-sky-blue;\n}\n\n.highcharts-background {\n fill: transparent !important;\n}\n\n.highcharts-scrollbar {\n .highcharts-scrollbar-track {\n fill: $white;\n }\n\n .highcharts-scrollbar-thumb {\n stroke: $bright-sky-blue;\n fill: $bright-sky-blue;\n }\n\n .highcharts-scrollbar-rifles {\n stroke: $white;\n }\n\n .highcharts-scrollbar-button {\n fill: $white;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-stock-chart.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-stock-chart.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-stock-chart.vue?vue&type=template&id=6bab7b28\"\nimport script from \"./ad-stock-chart.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-stock-chart.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-stock-chart.vue?vue&type=style&index=0&id=6bab7b28&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-5 mb-xl-0 mx-n2 mx-md-0\"},[(_vm.selectedPeriod)?_c('b-row',{staticClass:\"no-gutters\",style:(_vm.chartPeriodsMarginStyle)},[_c('b-col',[_c('ad-chart-periods',{attrs:{\"options\":_vm.periods,\"valueField\":\"key\",\"textField\":\"translation\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"periods-header\")]},proxy:true}],null,true),model:{value:(_vm.selectedPeriodKey),callback:function ($$v) {_vm.selectedPeriodKey=$$v},expression:\"selectedPeriodKey\"}})],1)],1):_vm._e(),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',[_c('ad-stock-chart',{ref:\"chart\",attrs:{\"series\":_vm.data,\"labelDateFormatter\":_vm.formatLabelDate,\"labelValueFormatter\":_vm.formatLabelValue,\"tooltipDateFormatter\":_vm.formatTooltipDate,\"tooltipValueFormatter\":_vm.formatTooltipValue,\"pointInterval\":_vm.selectedPeriod.pointInterval,\"xAxisTickInterval\":_vm.xAxisTickInterval,\"xAxisLabelStep\":_vm.xAxisStep,\"xAxisLabelMargin\":_vm.teaserLayout ? 20 : undefined,\"xAxisMax\":_vm.xAxisMax,\"xAxisMin\":_vm.xAxisMin,\"marginRight\":5,\"navigator\":_vm.showNavigator,\"scrollbar\":_vm.showScrollbar,\"height\":_vm.chartHeight,\"breakThreshold\":_vm.dayBreakThreshold,\"repeatedBreaks\":_vm.repeatedBreaks,\"tickOffset\":_vm.tickOffset},on:{\"marginChange\":_vm.updateChartMargin}})],1)],1),_c('b-row',{staticClass:\"pt-1 no-gutters\",style:(_vm.chartLegendMarginStyle)},[_c('b-col',{attrs:{\"xl\":_vm.teaserLayout ? 12 : 8}},[_c('ad-chart-legend',{attrs:{\"color\":_vm.underlyingColor},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"legend-header\")]},proxy:true},{key:\"first-header\",fn:function(){return [_vm._t(\"legend-first-header\")]},proxy:true},{key:\"first-values\",fn:function(){return [_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.dailyHigh\",\"underlyingItem\":_vm.underlying}}),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.dailyLow\",\"underlyingItem\":_vm.underlying}})]},proxy:true},{key:\"second-header\",fn:function(){return [_vm._t(\"legend-second-header\")]},proxy:true},{key:\"second-values\",fn:function(){return [(!_vm.isUnderlying52WeeksHighLowHidden)?_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.fiftyTwoWeeksHigh\",\"underlyingItem\":_vm.underlying}}):_vm._e(),(!_vm.isUnderlying52WeeksHighLowHidden)?_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.performance.fiftyTwoWeeksLow\",\"underlyingItem\":_vm.underlying}}):_vm._e()]},proxy:true}],null,true)})],1)],1),_c('b-row',[(!_vm.hideSwitches)?_c('b-col',{staticClass:\"pt-2 no-gutters\",style:(_vm.chartButtonsMarginStyle)},[_c('ad-switch-button',{model:{value:(_vm.relative),callback:function ($$v) {_vm.relative=$$v},expression:\"relative\"}},[_vm._t(\"button-relative\")],2),_c('ad-switch-button',{model:{value:(_vm.realtime),callback:function ($$v) {_vm.realtime=$$v},expression:\"realtime\"}},[_vm._t(\"button-realtime\")],2)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mb-5 mb-xl-0 mx-n2 mx-md-0\">\n <b-row v-if=\"selectedPeriod\" class=\"no-gutters\" :style=\"chartPeriodsMarginStyle\"\n ><b-col\n ><ad-chart-periods :options=\"periods\" v-model=\"selectedPeriodKey\" valueField=\"key\" textField=\"translation\">\n <template #header><slot name=\"periods-header\"></slot></template>\n </ad-chart-periods>\n </b-col>\n </b-row>\n <b-row class=\"no-gutters\">\n <b-col>\n <ad-stock-chart\n :series=\"data\"\n :labelDateFormatter=\"formatLabelDate\"\n :labelValueFormatter=\"formatLabelValue\"\n :tooltipDateFormatter=\"formatTooltipDate\"\n :tooltipValueFormatter=\"formatTooltipValue\"\n :pointInterval=\"selectedPeriod.pointInterval\"\n :xAxisTickInterval=\"xAxisTickInterval\"\n :xAxisLabelStep=\"xAxisStep\"\n :xAxisLabelMargin=\"teaserLayout ? 20 : undefined\"\n :xAxisMax=\"xAxisMax\"\n :xAxisMin=\"xAxisMin\"\n :marginRight=\"5\"\n :navigator=\"showNavigator\"\n :scrollbar=\"showScrollbar\"\n :height=\"chartHeight\"\n :breakThreshold=\"dayBreakThreshold\"\n :repeatedBreaks=\"repeatedBreaks\"\n :tickOffset=\"tickOffset\"\n @marginChange=\"updateChartMargin\"\n ref=\"chart\"\n ></ad-stock-chart></b-col\n ></b-row>\n <b-row class=\"pt-1 no-gutters\" :style=\"chartLegendMarginStyle\">\n <b-col :xl=\"teaserLayout ? 12 : 8\">\n <ad-chart-legend :color=\"underlyingColor\">\n <template #header><slot name=\"legend-header\"></slot></template>\n <template #first-header><slot name=\"legend-first-header\"></slot></template>\n <template #first-values>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.dailyHigh\"\n :underlyingItem=\"underlying\"\n ></ad-underlying-data-value>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.dailyLow\"\n :underlyingItem=\"underlying\"\n ></ad-underlying-data-value>\n </template>\n <template #second-header><slot name=\"legend-second-header\"></slot></template>\n <template #second-values>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.fiftyTwoWeeksHigh\"\n v-if=\"!isUnderlying52WeeksHighLowHidden\"\n :underlyingItem=\"underlying\"\n ></ad-underlying-data-value>\n <ad-underlying-data-value\n fieldKey=\"underlying.performance.fiftyTwoWeeksLow\"\n v-if=\"!isUnderlying52WeeksHighLowHidden\"\n :underlyingItem=\"underlying\"\n ></ad-underlying-data-value>\n </template>\n </ad-chart-legend>\n </b-col>\n </b-row>\n <b-row>\n <b-col class=\"pt-2 no-gutters\" :style=\"chartButtonsMarginStyle\" v-if=\"!hideSwitches\">\n <ad-switch-button v-model=\"relative\"><slot name=\"button-relative\"></slot></ad-switch-button>\n <ad-switch-button v-model=\"realtime\"><slot name=\"button-realtime\"></slot></ad-switch-button>\n </b-col>\n </b-row>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Ref, InjectReactive, Watch } from 'vue-property-decorator';\nimport AdStockChart from '@components/molecules/charts/ad-stock-chart.vue';\nimport AdChartPeriods from '@components/molecules/charts/ad-chart-periods.vue';\nimport AdChartLegend from '@components/molecules/charts/ad-chart-legend.vue';\nimport { PriceModel, UnderlyingModel } from '@src/types/the-q-api';\nimport { DataSeries, LabelPosition } from '@src/types/vue-api';\nimport { Action } from 'vuex-class';\nimport { AdChartBase } from '@components/molecules/charts/ad-chart-base';\nimport { ChartColors, ChartSeries, InstrumentOriginTimeZone } from '@src/types/enumerations';\nimport { utcParse } from '@/src/utils/date-helper';\nimport { InstrumentDataFieldBase } from '@/src/types/episerver-api-instrument';\nimport { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\n\n@Component({\n components: {\n 'ad-stock-chart': AdStockChart,\n 'ad-chart-periods': AdChartPeriods,\n 'ad-chart-legend': AdChartLegend,\n },\n})\nexport default class AdUnderlyingChart extends AdChartBase {\n @Ref() readonly chart!: AdStockChart;\n @InjectReactive() underlying!: UnderlyingModel | null;\n @Action('subscribePushValue', { namespace: 'underlying' })\n subscribePushValue!: (fieldKey: string) => Promise<void>;\n\n priceFormat(): string {\n return this.settingsProperty.tooltipValueFormatFieldKey || 'underlying.last';\n }\n\n currencyCode(): string {\n return this.underlying?.currencyCode || '';\n }\n\n private get underlyingColor(): ChartColors {\n return ChartColors.underlying;\n }\n\n @Watch('underlying')\n protected async loadChartData() {\n if (!this.underlying) return;\n\n [this.data, this.initialValueForRelativeData] = await Promise.all([\n this.loadUnderlyingData(),\n this.loadInitialData(),\n ]);\n }\n\n async loadUnderlyingData(): Promise<DataSeries[]> {\n if (!this.underlying) {\n return [];\n }\n\n const action = 'GetUnderlying' + (this.relative ? 'Relative' : '');\n const data =\n (await this.requestChartData(\n action,\n this.underlying.origin.timeZone == InstrumentOriginTimeZone.AET\n ? this.underlying.nsins.wkn ?? this.underlying.nsins.isin\n : this.underlying.nsins.isin,\n this.underlying.origin.timeZone\n )) ?? {};\n\n return data[ChartSeries.price]\n ? [new DataSeries(ChartSeries.price, data[ChartSeries.price], ChartColors.underlying, LabelPosition.Left)]\n : [];\n }\n\n private async loadInitialData(): Promise<{ [key: string]: number }> {\n if (!this.relative || !this.underlying) {\n return {};\n }\n return this.requestInitialData(\n 'GetUnderlyingInitialPrice',\n this.underlying.nsins.isin,\n this.underlying.origin.timeZone\n );\n }\n\n pushValueFieldKey = 'underlying.last';\n pushTimestampFieldKey = 'underlying.timeStamp';\n\n get pushValue(): PriceModel | null | undefined {\n return this.underlying?.last;\n }\n\n get pushTimestamp(): number | undefined {\n return this.underlying?.timeStamp ? utcParse(this.underlying.timeStamp) : undefined;\n }\n\n pushChart() {\n this.$log.debug('try push chart');\n if (\n //push the value if chart is already initialised, value has amount and timestamp\n this.realtime &&\n this.chart &&\n this.pushValue &&\n this.pushValue.amount != null &&\n //if there is a min-max limitation for the xAsis, timestamp has to fit into that range\n this.pushTimestamp &&\n (!this.xAxisMin || this.pushTimestamp >= this.xAxisMin) &&\n (!this.xAxisMax || this.pushTimestamp <= this.xAxisMax)\n ) {\n const updateThreshold = this.selectedPeriod?.pointInterval\n ? this.selectedPeriod?.pointInterval * 1000\n : undefined;\n const pushValue = this.getChartPushValue(ChartSeries.price, this.pushValue.amount);\n if (pushValue) {\n this.chart.pushValue(0, this.pushTimestamp, pushValue, updateThreshold, false);\n }\n }\n }\n\n created() {\n super.created();\n if ((getFormatDataField(this.pushValueFieldKey) as InstrumentDataFieldBase)?.push) {\n this.subscribePushValue(this.pushValueFieldKey);\n this.subscribePushValue(this.pushTimestampFieldKey);\n this.$watch('pushValue', this.pushChart);\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a5a1e688\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'search-filter-daterange-one' + _vm._uid,\"label-for\":\"date-from-list-filter\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-label-one\",function(){return [_vm._v(\"[DATE FROM]\")]}),(!_vm.$slots['all-items-label'])?_c('span',{staticClass:\"deep-red\"},[_vm._v(\"*\")]):_vm._e()]},proxy:true}],null,true)},[_c('ad-drop-down-list',_vm._b({attrs:{\"loading\":_vm.isLoading,\"options\":_vm.dropdownItems,\"value\":_vm.value,\"form-element-state-id\":'search-filter-daterange-one' + _vm._uid,\"id\":\"date-from-list-filter\"},on:{\"input\":_vm.onChangeDate},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-label\")]},proxy:true}],null,true)},'ad-drop-down-list',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form-group :id=\"'search-filter-daterange-one' + _uid\" class=\"focus-white\" label-for=\"date-from-list-filter\">\n <template #label>\n <slot name=\"filter-label-one\">[DATE FROM]</slot>\n <span class=\"deep-red\" v-if=\"!$slots['all-items-label']\">*</span></template\n >\n <ad-drop-down-list\n :loading=\"isLoading\"\n v-bind=\"$attrs\"\n :options=\"dropdownItems\"\n :value=\"value\"\n @input=\"onChangeDate\"\n :form-element-state-id=\"'search-filter-daterange-one' + _uid\"\n id=\"date-from-list-filter\"\n >\n <template #all-items-label><slot name=\"all-items-label\"></slot></template>\n </ad-drop-down-list>\n </b-form-group>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Prop } from 'vue-property-decorator';\n\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { convertToDropdownItems } from '@/src/utils/dropdown-option-provider';\nimport { DateRangeParameterModel } from '@/src/types/the-q-api';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdFilterDaterangeOne extends Vue {\n @Prop() availableValues!: string[];\n @Prop({ required: true }) value!: DateRangeParameterModel | null;\n\n get isLoading(): boolean {\n return !this.availableValues;\n }\n\n get dropdownItems(): DropDownItem[] {\n return convertToDropdownItems(null, this.availableValues, (x) => formatField(x, 'date'));\n }\n\n onChangeDate(newValue: string | undefined): void {\n this.$emit('input', newValue);\n this.$emit('selected-value-changed');\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=334551ca\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product-search-filter-daterange\"},[_c('label',{staticClass:\"form-group bg-transparent border-0 mb-0 p-0 fs-18\"},[_vm._t(\"filter-label\",function(){return [_vm._v(\"[Filter]\")]})],2),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":\"product-search-filter-daterange-from\",\"label-for\":\"date-from-list-filter\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-label-from\",function(){return [_vm._v(\"[DATE FROM]\")]})]},proxy:true}],null,true)},[_c('ad-drop-down-list',_vm._b({attrs:{\"loading\":_vm.loading,\"options\":_vm.dropdownItems,\"is-selectable\":_vm.isSelectableDateFrom,\"value\":_vm.currentSelectedValueFrom,\"form-element-state-id\":\"product-search-filter-daterange-from\",\"id\":\"date-from-list-filter\"},on:{\"input\":_vm.onChangeDateFromValue}},'ad-drop-down-list',_vm.$attrs,false))],1)],1),_c('b-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"form-range-divider\"},[_vm._v(\"-\")]),_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":\"product-search-filter-daterange-to\",\"label-for\":\"date-to-list-filter\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-label-to\",function(){return [_vm._v(\"[DATE TO]\")]})]},proxy:true}],null,true)},[_c('ad-drop-down-list',_vm._b({attrs:{\"loading\":_vm.loading,\"options\":_vm.dropdownItems,\"is-selectable\":_vm.isSelectableDateTo,\"value\":_vm.currentSelectedValueTo,\"form-element-state-id\":\"product-search-filter-daterange-to\",\"id\":\"date-to-list-filter\"},on:{\"input\":_vm.onChangeDateToValue}},'ad-drop-down-list',_vm.$attrs,false))],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"product-search-filter-daterange\">\n <label class=\"form-group bg-transparent border-0 mb-0 p-0 fs-18\"><slot name=\"filter-label\">[Filter]</slot></label>\n <b-row no-gutters>\n <b-col cols=\"6\">\n <b-form-group id=\"product-search-filter-daterange-from\" class=\"focus-white\" label-for=\"date-from-list-filter\">\n <template #label> <slot name=\"filter-label-from\">[DATE FROM]</slot></template>\n\n <ad-drop-down-list\n :loading=\"loading\"\n v-bind=\"$attrs\"\n :options=\"dropdownItems\"\n :is-selectable=\"isSelectableDateFrom\"\n :value=\"currentSelectedValueFrom\"\n @input=\"onChangeDateFromValue\"\n form-element-state-id=\"product-search-filter-daterange-from\"\n id=\"date-from-list-filter\"\n />\n </b-form-group>\n </b-col>\n <b-col cols=\"6\">\n <div class=\"form-range-divider\">-</div>\n <b-form-group id=\"product-search-filter-daterange-to\" class=\"focus-white\" label-for=\"date-to-list-filter\">\n <template #label> <slot name=\"filter-label-to\">[DATE TO]</slot></template>\n\n <ad-drop-down-list\n :loading=\"loading\"\n v-bind=\"$attrs\"\n :options=\"dropdownItems\"\n :is-selectable=\"isSelectableDateTo\"\n :value=\"currentSelectedValueTo\"\n @input=\"onChangeDateToValue\"\n form-element-state-id=\"product-search-filter-daterange-to\"\n id=\"date-to-list-filter\"\n />\n </b-form-group>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { convertToDropdownItems } from '@/src/utils/dropdown-option-provider';\nimport { DateRangeParameterModel } from '@/src/types/the-q-api';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdFilterDaterange extends Vue {\n @Prop() availableValues!: string[];\n @Prop({ required: true }) value!: DateRangeParameterModel | null;\n @Prop({ required: false }) loading!: boolean;\n\n private selectedValueIndexFrom = 0;\n private selectedValueIndexTo = 0;\n\n private selectedValueFrom: DropDownItem | null = null;\n private selectedValueTo: DropDownItem | null = null;\n\n private dropdownItems: Array<DropDownItem> = [];\n\n setDefaultValues(): void {\n if (this.dropdownItems.length) {\n const fromIndex = this.getItemIndexByValueOrDefault(this.value?.min);\n this.selectedValueFrom = this.dropdownItems[fromIndex];\n this.selectedValueIndexFrom = fromIndex;\n\n const lastIndex = this.getItemIndexByValueOrDefault(this.value?.max, this.dropdownItems.length - 1);\n this.selectedValueTo = this.dropdownItems[lastIndex];\n this.selectedValueIndexTo = lastIndex;\n }\n }\n\n @Watch('availableValues')\n changeAvailableItems(): void {\n this.dropdownItems = convertToDropdownItems(null, this.availableValues, (x) => formatField(x, 'date'));\n this.setDefaultValues();\n }\n\n get currentSelectedValueFrom(): DropDownItem | null {\n if (this.dropdownItems.length === 0) {\n return null;\n }\n let matchingItem = this.value?.min ? this.findItemByValue(this.value.min) : this.dropdownItems[0];\n matchingItem = matchingItem ?? this.dropdownItems[0];\n\n return matchingItem;\n }\n\n get currentSelectedValueTo(): DropDownItem | null {\n if (this.dropdownItems.length === 0) {\n return null;\n }\n\n const lastIndex = this.dropdownItems.length - 1;\n let matchingItem = this.value?.max ? this.findItemByValue(this.value.max) : this.dropdownItems[lastIndex];\n matchingItem = matchingItem ?? this.dropdownItems[lastIndex];\n\n return matchingItem;\n }\n\n isSelectableDateFrom(item: DropDownItem): boolean {\n const selectedIndex = this.findItemIndex(item);\n this.$log.debug('index', this.selectedValueIndexTo, selectedIndex);\n return this.selectedValueIndexTo < 0 || selectedIndex <= this.selectedValueIndexTo;\n }\n\n isSelectableDateTo(item: DropDownItem): boolean {\n const selectedIndex = this.findItemIndex(item);\n return this.selectedValueIndexFrom < 0 || selectedIndex >= this.selectedValueIndexFrom;\n }\n\n findItemIndex(item: DropDownItem): number {\n return this.getItemIndexByValueOrDefault(item.value);\n }\n\n getItemIndexByValueOrDefault(val: string | number | null | undefined, defaultVal = 0) {\n let index = defaultVal;\n\n if (val) index = this.dropdownItems.findIndex((x) => x.value == val);\n\n return index;\n }\n\n findItemByValue(val: string | undefined): DropDownItem | null {\n return this.dropdownItems.find((x) => x.value == val) ?? null;\n }\n\n createDateRange(\n minValue: string | number | null | undefined,\n maxValue: string | number | null | undefined\n ): DateRangeParameterModel {\n return { min: minValue ?? null, max: maxValue ?? null } as DateRangeParameterModel;\n }\n\n onChangeDateFromValue(newValue: string | undefined): void {\n this.selectedValueIndexFrom = this.getItemIndexByValueOrDefault(newValue);\n this.selectedValueFrom = this.findItemByValue(newValue);\n\n const emittedValue = this.createDateRange(newValue, this.selectedValueTo?.value);\n this.$emit('input', emittedValue);\n this.$emit('selected-value-changed');\n }\n\n onChangeDateToValue(newValue: string | undefined): void {\n this.selectedValueIndexTo = this.getItemIndexByValueOrDefault(newValue);\n this.selectedValueTo = this.findItemByValue(newValue);\n\n const emittedValue = this.createDateRange(this.selectedValueFrom?.value, newValue);\n this.$emit('input', emittedValue);\n this.$emit('selected-value-changed');\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=91a11fe8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product-search-filter-numericrange\"},[_c('label',{staticClass:\"form-group bg-transparent border-0 mb-0 p-0 fs-18\"},[_vm._t(\"filter-label\",function(){return [_vm._v(\"[Filter]\")]})],2),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',[_c('ad-filter-numeric-input',{attrs:{\"value\":_vm.selectedValueFrom,\"borderValue\":_vm.borderValueMin,\"fieldFormat\":_vm.fieldFormat,\"loading\":_vm.loading},on:{\"input\":_vm.onChangeFromValue},scopedSlots:_vm._u([{key:\"filter-label-text\",fn:function(){return [_vm._t(\"filter-label-from\",function(){return [_vm._v(\"[TO]\")]})]},proxy:true}],null,true)})],1),_c('b-col',[_c('div',{staticClass:\"form-range-divider\"},[_vm._v(\"-\")]),_c('ad-filter-numeric-input',{attrs:{\"value\":_vm.selectedValueTo,\"borderValue\":_vm.borderValueMax,\"fieldFormat\":_vm.fieldFormat,\"loading\":_vm.loading},on:{\"input\":_vm.onChangeToValue},scopedSlots:_vm._u([{key:\"filter-label-text\",fn:function(){return [_vm._t(\"filter-label-to\",function(){return [_vm._v(\"[TO]\")]})]},proxy:true}],null,true)})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"product-search-filter-numericrange\">\n <label class=\"form-group bg-transparent border-0 mb-0 p-0 fs-18\"><slot name=\"filter-label\">[Filter]</slot></label>\n <b-row no-gutters>\n <b-col>\n <ad-filter-numeric-input\n :value=\"selectedValueFrom\"\n :borderValue=\"borderValueMin\"\n @input=\"onChangeFromValue\"\n :fieldFormat=\"fieldFormat\"\n :loading=\"loading\"\n >\n <template #filter-label-text> <slot name=\"filter-label-from\">[TO]</slot></template>\n </ad-filter-numeric-input>\n </b-col>\n <b-col>\n <div class=\"form-range-divider\">-</div>\n <ad-filter-numeric-input\n :value=\"selectedValueTo\"\n :borderValue=\"borderValueMax\"\n @input=\"onChangeToValue\"\n :fieldFormat=\"fieldFormat\"\n :loading=\"loading\"\n >\n <template #filter-label-text> <slot name=\"filter-label-to\">[TO]</slot></template>\n </ad-filter-numeric-input>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\nimport { ValueRangeModel, ValueRangeParameterModel } from '@/src/types/the-q-api';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdFilterNumericRangeHolder extends Vue {\n @Prop() availableValues!: ValueRangeModel<number>;\n @Prop() value!: ValueRangeParameterModel | null;\n @Prop({ required: true }) fieldFormat!: string;\n @Prop({ required: false }) loading!: boolean;\n\n private readonly changeValueEventName = 'selected-value-changed';\n\n get borderValueMin(): number | null {\n return this.availableValues?.min;\n }\n\n get borderValueMax(): number | null {\n return this.availableValues?.max;\n }\n\n get selectedValueFrom() {\n return this.value?.min ?? null;\n }\n\n get selectedValueTo() {\n return this.value?.max ?? null;\n }\n\n isValueWithinRange(val: number | null): boolean {\n if (val === null || isNaN(val)) {\n return false;\n }\n\n return this.isInRange(val, this.availableValues);\n }\n\n onChangeFromValue(newValue: number | null): void {\n if (!this.checkFromValueAndResetIfNeeded(newValue))\n this.$emit('input', this.createNumericRange(newValue, this.selectedValueTo));\n\n this.$emit(this.changeValueEventName);\n }\n\n onChangeToValue(newValue: number | null): void {\n if (!this.checkToValueAndResetIfNeeded(newValue))\n this.$emit('input', this.createNumericRange(this.selectedValueFrom, newValue));\n\n this.$emit(this.changeValueEventName);\n }\n\n @Watch('value.min')\n checkFromValueAndResetIfNeeded(newValue: number | null): boolean {\n if (this.availableValues === null) {\n return false;\n }\n\n let selectedValueTo = this.selectedValueTo;\n let isValueReset = false;\n\n if (newValue != null) {\n if (newValue < this.availableValues.min) {\n newValue = this.availableValues.min;\n isValueReset = true;\n } else if (newValue > this.availableValues.max) {\n newValue = this.availableValues.max;\n isValueReset = true;\n }\n\n if (selectedValueTo != null && newValue > selectedValueTo) {\n selectedValueTo = newValue;\n isValueReset = true;\n }\n }\n\n if (isValueReset) this.$emit('input', this.createNumericRange(newValue, selectedValueTo));\n\n return isValueReset;\n }\n\n @Watch('value.max')\n checkToValueAndResetIfNeeded(newValue: number | null): boolean {\n if (this.availableValues === null) {\n return false;\n }\n let selectedValueFrom = this.selectedValueFrom;\n let isValueReset = false;\n\n if (newValue !== null) {\n if (newValue < this.availableValues.min) {\n newValue = this.availableValues.min;\n isValueReset = true;\n } else if (newValue > this.availableValues.max) {\n newValue = this.availableValues.max;\n isValueReset = true;\n }\n\n if (selectedValueFrom !== null && newValue < selectedValueFrom) {\n selectedValueFrom = newValue;\n isValueReset = true;\n }\n }\n\n if (isValueReset) this.$emit('input', this.createNumericRange(selectedValueFrom, newValue));\n\n return isValueReset;\n }\n\n @Watch('availableValues', { deep: false })\n changeAvailableItems(): void {\n if (this.availableValues === null) {\n return;\n }\n\n if (!this.isValueWithinRange(this.selectedValueFrom)) {\n this.$emit('input', this.createNumericRange(null, this.selectedValueTo));\n }\n if (!this.isValueWithinRange(this.selectedValueTo)) {\n this.$emit('input', this.createNumericRange(this.selectedValueFrom, null));\n }\n }\n\n isInRange(val: number | null, range: ValueRangeModel<number> | null) {\n if (val == null || range == null) {\n return false;\n }\n\n return val >= range.min && val <= range.max;\n }\n\n createNumericRange(minValue: number | null, maxValue: number | null): ValueRangeParameterModel | null {\n if (minValue === null && maxValue == null) return null;\n\n return { min: minValue, max: maxValue } as ValueRangeParameterModel;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=9c2a7e6e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"best-match-search-filter-container\",class:[{ 'show-invalid': _vm.showInvalid }]},[(_vm.$slots['filter-headline'])?_c('p',{staticClass:\"mb-3 filter-headline\"},[_vm._t(\"filter-headline\")],2):_vm._e(),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":_vm.teaser ? 12 : 10}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'product-type-filter-group' + _vm._uid,\"label-for\":\"product-type-filter-dropdownlist\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-label-text\",function(){return [_vm._v(\"[Dropdown label]\")]})]},proxy:true}],null,true)},[_c('ad-product-type-list',{attrs:{\"form-element-state-id\":'product-type-filter-group' + _vm._uid,\"id\":\"product-type-filter-dropdownlist\",\"value\":_vm.value.productType,\"only-leverage\":\"\"},on:{\"input\":_vm.productTypeChanged}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":_vm.teaser ? 6 : 5}},[_c('ad-product-search-filter-subtype',{attrs:{\"loading\":_vm.isLoading},on:{\"selected-value-changed\":_vm.loadBestMatchMetaData},scopedSlots:_vm._u([{key:\"subtype-label-put\",fn:function(){return [_vm._t(\"filter-subtype-label-put\",function(){return [_vm._v(_vm._s(_vm.bestMatchMetadataResultModel.translation.put))]})]},proxy:true},{key:\"subtype-label-call\",fn:function(){return [_vm._t(\"filter-subtype-label-call\",function(){return [_vm._v(_vm._s(_vm.bestMatchMetadataResultModel.translation.call))]})]},proxy:true}],null,true),model:{value:(_vm.value.subType),callback:function ($$v) {_vm.$set(_vm.value, \"subType\", $$v)},expression:\"value.subType\"}})],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":_vm.teaser ? 12 : 10}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'underlying-filter-group' + _vm._uid,\"label-for\":\"underlying-filter-dropdownlist\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-label-text\",function(){return [_vm._v(\"[Dropdown label]\")]}),_c('span',{staticClass:\"deep-red\"},[_vm._v(\"*\")])]},proxy:true}],null,true)},[_c('ad-underlying-list',{attrs:{\"form-element-state-id\":'underlying-filter-group' + _vm._uid,\"id\":\"underlying-filter-dropdownlist\",\"available-items\":_vm.underlyingNames,\"loading\":_vm.isLoading,\"group-items\":\"\"},on:{\"selected-value-changed\":_vm.underlyingChanged},scopedSlots:_vm._u([{key:\"multiple-placeholder\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-multiple-placeholder\",function(){return [_vm._v(\"[Select items label]\")]})]},proxy:true}],null,true),model:{value:(_vm.value.underlyingIsin),callback:function ($$v) {_vm.$set(_vm.value, \"underlyingIsin\", $$v)},expression:\"value.underlyingIsin\"}})],1),_c('ad-icon-warnings',{staticClass:\"error-icon\"})],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":_vm.teaser ? 12 : 10}},[_vm._t(\"maturity-date-filter\",null,{\"onFilterValueChanged\":_vm.onFilterValueChanged,\"availableValues\":_vm.availableValues})],2)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":_vm.teaser ? 12 : 10}},[_c('b-row',{staticClass:\"mt-2\"},[(_vm.isBestMatchSearchBlockSettings(_vm.settingsProperty) && _vm.settingsProperty.numericFilters.length > 1)?_c('b-col',{class:{ 'best-match-numeric-filters': _vm.teaser },attrs:{\"cols\":\"6\"}},[_c('b-form-group',{staticClass:\"bg-transparent border-0 p-0\"},[_c('ad-skeleton-radio-buttons',{attrs:{\"loading\":_vm.isLoading}},[_c('ce-radio-buttons',{attrs:{\"id\":\"product-sub-type-buttons\",\"stretched\":\"\"},model:{value:(_vm.value.filterProperty),callback:function ($$v) {_vm.$set(_vm.value, \"filterProperty\", $$v)},expression:\"value.filterProperty\"}},_vm._l((_vm.settingsProperty.numericFilters),function(filters){return _c('span',{key:filters.filterProperty,attrs:{\"value\":filters.filterProperty}},[_vm._t(\"{{filters.filterLabel}}\",function(){return [_vm._v(_vm._s(filters.filterLabel))]})],2)}),0)],1)],1)],1):_vm._e(),_c('b-col',{attrs:{\"cols\":\"6\",\"align-self\":\"center\"}},[_vm._t(\"additional-numeric-range-filter-elements\",null,{\"isNumericFilterVisible\":_vm.isNumericFilterVisible,\"onFilterValueChanged\":_vm.onFilterValueChanged,\"availableValues\":_vm.availableValues,\"isLoading\":_vm.isLoading})],2)],1)],1)],1),_c('b-row',[_c('b-col',[_c('b-button',{staticClass:\"w-100 w-md-auto\",attrs:{\"disabled\":_vm.isButtonDisabled,\"variant\":\"primary\",\"size\":\"s\"},on:{\"click\":function($event){return _vm.onButtonClick()}}},[_vm._t(\"filter-show-best-match-button-text\",function(){return [_vm._v(\"[filter show best match button text placeholder]\")]})],2)],1),_c('b-col',{staticClass:\"pt-2\"},[_c('b-button',{staticClass:\"fs-12\",attrs:{\"variant\":\"link\"},on:{\"click\":_vm.goToProductSearchPage}},[_vm._t(\"go-to-full-seach-button-text\",function(){return [_vm._v(\"[Go to search]\")]}),_c('ad-icon-chevron',{attrs:{\"size\":\"xxs\",\"direction\":\"right\",\"aria-hidden\":\"true\"}})],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"best-match-search-filter-container\" :class=\"[{ 'show-invalid': showInvalid }]\">\n <p v-if=\"$slots['filter-headline']\" class=\"mb-3 filter-headline\"><slot name=\"filter-headline\" /></p>\n <b-row no-gutters>\n <b-col cols=\"12\" :xl=\"teaser ? 12 : 10\">\n <b-form-group\n :id=\"'product-type-filter-group' + _uid\"\n class=\"focus-white\"\n label-for=\"product-type-filter-dropdownlist\"\n >\n <template #label>\n <slot name=\"filter-product-type-dropdown-label-text\">[Dropdown label]</slot>\n </template>\n <ad-product-type-list\n :form-element-state-id=\"'product-type-filter-group' + _uid\"\n id=\"product-type-filter-dropdownlist\"\n :value=\"value.productType\"\n only-leverage\n @input=\"productTypeChanged\"\n >\n </ad-product-type-list>\n </b-form-group>\n </b-col>\n\n <b-col cols=\"12\" :xl=\"teaser ? 6 : 5\">\n <ad-product-search-filter-subtype\n :loading=\"isLoading\"\n v-model=\"value.subType\"\n @selected-value-changed=\"loadBestMatchMetaData\"\n >\n <template #subtype-label-put>\n <slot name=\"filter-subtype-label-put\">{{ bestMatchMetadataResultModel.translation.put }}</slot>\n </template>\n\n <template #subtype-label-call>\n <slot name=\"filter-subtype-label-call\">{{ bestMatchMetadataResultModel.translation.call }}</slot>\n </template>\n </ad-product-search-filter-subtype>\n </b-col>\n </b-row>\n\n <b-row no-gutters>\n <b-col cols=\"12\" :xl=\"teaser ? 12 : 10\">\n <b-form-group\n :id=\"'underlying-filter-group' + _uid\"\n class=\"focus-white\"\n label-for=\"underlying-filter-dropdownlist\"\n >\n <template #label>\n <slot name=\"filter-underlying-dropdown-label-text\">[Dropdown label]</slot>\n <span class=\"deep-red\">*</span>\n </template>\n <ad-underlying-list\n :form-element-state-id=\"'underlying-filter-group' + _uid\"\n id=\"underlying-filter-dropdownlist\"\n v-model=\"value.underlyingIsin\"\n :available-items=\"underlyingNames\"\n :loading=\"isLoading\"\n group-items\n @selected-value-changed=\"underlyingChanged\"\n >\n <template #multiple-placeholder>\n <slot name=\"filter-underlying-dropdown-multiple-placeholder\">[Select items label]</slot>\n </template>\n </ad-underlying-list>\n </b-form-group>\n <ad-icon-warnings class=\"error-icon\" />\n </b-col>\n </b-row>\n\n <b-row no-gutters>\n <b-col cols=\"12\" :xl=\"teaser ? 12 : 10\">\n <slot\n name=\"maturity-date-filter\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n :availableValues=\"availableValues\"\n ></slot>\n </b-col>\n </b-row>\n\n <b-row no-gutters>\n <b-col cols=\"12\" :xl=\"teaser ? 12 : 10\">\n <b-row class=\"mt-2\">\n <b-col\n cols=\"6\"\n :class=\"{ 'best-match-numeric-filters': teaser }\"\n v-if=\"isBestMatchSearchBlockSettings(settingsProperty) && settingsProperty.numericFilters.length > 1\"\n >\n <b-form-group class=\"bg-transparent border-0 p-0\">\n <ad-skeleton-radio-buttons :loading=\"isLoading\">\n <ce-radio-buttons id=\"product-sub-type-buttons\" stretched v-model=\"value.filterProperty\">\n <span\n v-for=\"filters in settingsProperty.numericFilters\"\n :key=\"filters.filterProperty\"\n :value=\"filters.filterProperty\"\n >\n <slot name=\"{{filters.filterLabel}}\">{{ filters.filterLabel }}</slot>\n </span>\n </ce-radio-buttons>\n </ad-skeleton-radio-buttons>\n </b-form-group>\n </b-col>\n <b-col cols=\"6\" align-self=\"center\">\n <slot\n name=\"additional-numeric-range-filter-elements\"\n :isNumericFilterVisible=\"isNumericFilterVisible\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n :availableValues=\"availableValues\"\n :isLoading=\"isLoading\"\n ></slot>\n </b-col>\n </b-row>\n </b-col>\n </b-row>\n\n <b-row>\n <b-col>\n <b-button\n :disabled=\"isButtonDisabled\"\n @click=\"onButtonClick()\"\n class=\"w-100 w-md-auto\"\n variant=\"primary\"\n size=\"s\"\n ><slot name=\"filter-show-best-match-button-text\"\n >[filter show best match button text placeholder]</slot\n ></b-button\n ></b-col\n >\n <b-col class=\"pt-2\"\n ><b-button @click=\"goToProductSearchPage\" variant=\"link\" class=\"fs-12\"\n ><slot name=\"go-to-full-seach-button-text\">[Go to search]</slot>\n <ad-icon-chevron size=\"xxs\" direction=\"right\" aria-hidden=\"true\"></ad-icon-chevron> </b-button\n ></b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { BestMatchSearchRequestFilter } from '@/src/types/vue-api';\nimport {\n BestMatchAvailableValuesModel,\n BestMatchMetadataResultModel,\n BestMatchSearchRequestModel,\n} from '@/src/types/the-q-api';\nimport { BestMatchSearchPageSetting, BestMatchSearchBlockSetting, PageRoutes } from '@/src/types/episerver-api';\nimport { redirectToSearchProducts } from '@/src/utils/url-helper';\nimport { setBestMatchSearchFilterForRequest } from '@/src/utils/instrument-search-helper';\nimport { ProductTypeBo } from '@/src/types/enumerations';\nimport { Action } from 'vuex-class';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdBestMatchSearchFilterContainer extends Vue {\n @Inject() pageRoutes!: PageRoutes;\n @Inject() settingsProperty!: BestMatchSearchPageSetting | BestMatchSearchBlockSetting;\n @Prop({ default: false, type: Boolean }) wide!: boolean;\n\n @Prop({ required: true })\n value!: BestMatchSearchRequestFilter;\n\n @Prop({ required: true })\n bestMatchMetadataResultModel!: BestMatchMetadataResultModel;\n\n @Prop({ default: false, type: Boolean })\n teaser!: boolean;\n\n @Action('loadBestMatchMetadataResultModelAsync', { namespace: 'bestMatch' })\n loadBestMatchMetadataResultModelAsync!: (filter: BestMatchSearchRequestModel) => Promise<void>;\n\n private showInvalid = false;\n\n get isButtonDisabled() {\n setBestMatchSearchFilterForRequest(this.value);\n\n return !this.value.keyDataValue;\n }\n\n get availableValues(): BestMatchAvailableValuesModel {\n return this.bestMatchMetadataResultModel?.availableValues ?? ({} as BestMatchAvailableValuesModel);\n }\n\n get isLoading() {\n return this.bestMatchMetadataResultModel?.availableValues == null;\n }\n\n get underlyingNames() {\n return this.availableValues.underlyingNames;\n }\n\n onButtonClick(): void {\n this.showInvalid = true;\n setBestMatchSearchFilterForRequest(this.value);\n\n if (this.value.keyDataValue) {\n this.trackBestMatch();\n this.$emit('best-match-button-click');\n }\n }\n\n private trackBestMatch(): void {\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'best_match',\n items: [{ item_id: this.value.productType + '_' + this.value.subType }],\n });\n }\n\n onFilterValueChanged() {\n // no action neccessary\n }\n\n async underlyingChanged(value: ProductTypeBo) {\n await this.loadBestMatchMetaData();\n this.$emit('underlying-changed', value);\n }\n\n async loadBestMatchMetaData() {\n this.loadBestMatchMetadataResultModelAsync(this.value);\n }\n\n productTypeChanged(value: ProductTypeBo) {\n this.$emit('product-type-changed', value);\n }\n\n isNumericFilterVisible(valueProperty: string) {\n return valueProperty === this.value.filterProperty;\n }\n\n goToProductSearchPage() {\n redirectToSearchProducts(this.value.underlyingIsin, this.pageRoutes, false, this.value.productType);\n }\n\n isBestMatchSearchBlockSettings(\n settings: BestMatchSearchPageSetting | BestMatchSearchBlockSetting\n ): settings is BestMatchSearchBlockSetting {\n const castedSettings = settings as BestMatchSearchBlockSetting;\n return castedSettings.numericFilters != undefined;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.product-search-sorting-container {\n @include media-breakpoint-down('sm') {\n margin-right: -$grid-gutter-spacer;\n margin-left: -$grid-gutter-spacer;\n border-radius: 0;\n }\n}\n\n.best-match-search-filter-container {\n .best-match-numeric-filters {\n .ce-radio-buttons--buttons {\n display: block !important;\n\n /* stylelint-disable-next-line */\n button {\n width: 100%;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f6a0744a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f6a0744a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('ad-collapse-on-mobile',_vm._b({scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"block-header\")]},proxy:true}],null,true)},'ad-collapse-on-mobile',_vm.$attrs,false),[_vm._t(\"block-description\"),_c('div',[_vm._t(\"block-button\")],2),(_vm.hasNotes)?_c('div',{staticClass:\"mt-6 mt-md-5 mt-lg-6\"},[_vm._t(\"notes\")],2):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-collapse-on-mobile v-bind=\"$attrs\" v-if=\"isVisible\">\n <template #header>\n <slot name=\"block-header\"></slot>\n </template>\n <slot name=\"block-description\"></slot>\n <div>\n <slot name=\"block-button\"></slot>\n </div>\n <div v-if=\"hasNotes\" class=\"mt-6 mt-md-5 mt-lg-6\">\n <slot name=\"notes\"></slot>\n </div>\n </ad-collapse-on-mobile>\n</template>\n<script lang=\"ts\">\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { Component, InjectReactive, Prop } from 'vue-property-decorator';\nimport { Vue } from 'vue-property-decorator';\nimport { AnyCheckOptions, ProductSubTypeAny, ProductSubTypeBo } from '@/src/types/enumerations';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductDescription extends Vue {\n @Prop({ required: true }) quantoCheckOption!: AnyCheckOptions;\n @Prop({ required: true }) barrierBreachedOption!: AnyCheckOptions;\n @Prop({ required: true }) europeanUnderlyingOption!: AnyCheckOptions;\n @Prop({ required: true }) ProductSubTypeOption!: ProductSubTypeAny;\n @Prop({ default: false, type: Boolean }) isPageInEditMode!: boolean;\n @InjectReactive() product!: ProductModel | null;\n\n get isVisible() {\n if (this.product) {\n return (\n ((this.ProductSubTypeOption === ProductSubTypeAny.Any ||\n this.product.subType === ProductSubTypeBo[this.ProductSubTypeOption]) &&\n this.checkOptions(this.quantoCheckOption, this.product.isQuanto) &&\n this.checkOptions(this.barrierBreachedOption, this.product.barrierBreached) &&\n this.checkOptions(this.europeanUnderlyingOption, this.product.isEuropean)) ||\n this.isPageInEditMode\n );\n }\n\n return this.isPageInEditMode;\n }\n\n get hasNotes() {\n //Check if there is a note slot defined and it has content in order to adjust the bottom margin\n return this.$scopedSlots.notes && !!this.$scopedSlots.notes({});\n }\n\n checkOptions(checkOption: AnyCheckOptions, value: boolean | null) {\n switch (checkOption) {\n case AnyCheckOptions.No:\n return !value;\n case AnyCheckOptions.Yes:\n return !!value;\n default:\n return true;\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=dea4f596\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('div',{staticClass:\"pb-6 px-0 pt-2 pl-md-2 pr-md-1 pt-md-0 px-lg-5 pt-lg-1\"},[_c('b-row',[_c('b-col',[_c('ad-product-header',{attrs:{\"productModel\":_vm.product,\"small-header\":true}})],1)],1),_c('b-row',[_c('b-col',[_c('ad-product-column-list',{scopedSlots:_vm._u([{key:\"isin-label\",fn:function(){return [_vm._v(\"ISIN\")]},proxy:true},{key:\"nsin-label\",fn:function(){return [_vm._t(\"nsin-label\")]},proxy:true},{key:\"nsin-field\",fn:function(){return [_vm._t(\"nsin-field\")]},proxy:true}],null,true)})],1)],1),_c('b-row',{staticClass:\"no-gutters\"},[_c('b-col',{staticClass:\"pr-xl-5\",attrs:{\"xl\":\"6\",\"cols\":\"12\"}},[_c('b-row',[_c('b-col',[_vm._t(\"product-price-data\")],2)],1),_c('b-row',{class:['py-3', 'py-xl-0'],attrs:{\"align-h\":\"end\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_vm._t(\"underlying-price-data\")],2)],1)],1),_c('b-col',{class:['pt-5', 'pt-xl-0', { hr: !_vm.$screen.xl }],attrs:{\"xl\":\"6\",\"cols\":\"12\"}},[_vm._t(\"chart\")],2)],1),_c('b-row',{class:['mt-0', 'mt-xl-n6']},[_c('b-col',[_c('ad-product-link',{staticClass:\"w-sm-100\",attrs:{\"product-item\":_vm.product}},[_vm._t(\"teaser-view-details-text\",function(){return [_vm._v(\"View details\")]})],2)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"isVisible\" class=\"pb-6 px-0 pt-2 pl-md-2 pr-md-1 pt-md-0 px-lg-5 pt-lg-1\">\n <b-row>\n <b-col>\n <ad-product-header :productModel=\"product\" :small-header=\"true\" />\n </b-col>\n </b-row>\n <b-row>\n <b-col>\n <ad-product-column-list>\n <template #isin-label>ISIN</template>\n <template #nsin-label><slot name=\"nsin-label\"></slot></template>\n <template #nsin-field><slot name=\"nsin-field\"></slot></template>\n </ad-product-column-list>\n </b-col>\n </b-row>\n <b-row class=\"no-gutters\">\n <b-col class=\"pr-xl-5\" xl=\"6\" cols=\"12\">\n <b-row>\n <b-col><slot name=\"product-price-data\"></slot></b-col>\n </b-row>\n <b-row align-h=\"end\" :class=\"['py-3', 'py-xl-0']\">\n <b-col cols=\"12\" xl=\"4\"><slot name=\"underlying-price-data\"></slot></b-col>\n </b-row>\n </b-col>\n <b-col xl=\"6\" cols=\"12\" :class=\"['pt-5', 'pt-xl-0', { hr: !$screen.xl }]\">\n <slot name=\"chart\"></slot>\n </b-col>\n </b-row>\n <b-row :class=\"['mt-0', 'mt-xl-n6']\">\n <b-col>\n <ad-product-link :product-item=\"product\" class=\"w-sm-100\">\n <slot name=\"teaser-view-details-text\">View details</slot>\n </ad-product-link>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { ProductDetailBlockSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, InjectReactive, Vue } from 'vue-property-decorator';\nimport AdProductHeader from '@/src/components/organisms/ad-product-details/ad-product-header.vue';\n\n@Component({\n components: {\n AdProductHeader,\n },\n})\nexport default class AdProductDetailBlockTeaser extends Vue {\n @Inject()\n settingsProperty?: ProductDetailBlockSetting;\n @InjectReactive()\n product!: ProductModel | null;\n\n get isVisible() {\n return this.product && this.settingsProperty?.productType == this.product.productType;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=28395be9\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',[_c('b-col',{staticClass:\"pt-4 py-lg-3 hr align-self-start\",attrs:{\"cols\":\"12\",\"lg\":_vm.isArchiveDetail ? 12 : 9}},[_c('b-row',{staticClass:\"align-items-start\"},[_c('b-col',{staticClass:\"mb-2\",attrs:{\"cols\":\"12\",\"lg\":_vm.isArchiveDetail ? 3 : 4}},[_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"isin-label\")],2),_c('div',{staticClass:\"fs-26 gun-metal font-weight-normal\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.isin\"}}),(_vm.product)?_c('span',{directives:[{name:\"clipboard\",rawName:\"v-clipboard\",value:(_vm.product.isin),expression:\"product.isin\"},{name:\"clipboard\",rawName:\"v-clipboard:success\",value:(_vm.clipboardSuccessHandler),expression:\"clipboardSuccessHandler\",arg:\"success\"},{name:\"b-popover\",rawName:\"v-b-popover.top.click\",value:(_vm.copyConfirmationText),expression:\"copyConfirmationText\",modifiers:{\"top\":true,\"click\":true}}],staticClass:\"mt-0 blue icon-copy\",attrs:{\"role\":\"button\"},on:{\"click\":_vm.onCloseCopyPopover}},[_c('ad-icon-copy',{attrs:{\"id\":\"icon-copy\",\"height\":\"0.8em\"}})],1):_vm._e()],1)]),_c('b-col',{staticClass:\"mb-0\",attrs:{\"cols\":\"12\",\"lg\":_vm.isArchiveDetail ? 2 : 3}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"5\",\"md\":\"4\",\"lg\":\"12\"}},[_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"nsin-label\")],2)]),_c('b-col',{attrs:{\"cols\":\"7\",\"md\":\"8\",\"lg\":\"12\"}},[_c('div',{staticClass:\"fs-18 gun-metal font-weight-normal\"},[_vm._t(\"nsin-field\"),(_vm.product)?_c('span',{directives:[{name:\"clipboard\",rawName:\"v-clipboard\",value:(_vm.productNsinKeyValue),expression:\"productNsinKeyValue\"},{name:\"clipboard\",rawName:\"v-clipboard:success\",value:(_vm.clipboardSuccessHandler),expression:\"clipboardSuccessHandler\",arg:\"success\"},{name:\"b-popover\",rawName:\"v-b-popover.top.click\",value:(_vm.nsinCopiedText),expression:\"nsinCopiedText\",modifiers:{\"top\":true,\"click\":true}}],staticClass:\"mt-0 blue icon-copy\",attrs:{\"role\":\"button\"},on:{\"click\":_vm.onCloseCopyPopover}},[_c('ad-icon-copy',{attrs:{\"id\":\"icon-copy\",\"height\":\"0.8em\"}})],1):_vm._e()],2)])],1)],1),_c('b-col',{staticClass:\"mb-0\",attrs:{\"cols\":\"12\",\"lg\":_vm.isArchiveDetail ? 2 : 3}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"5\",\"md\":\"4\",\"lg\":\"12\"}},[_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"product-type-label\")],2)]),_c('b-col',{attrs:{\"cols\":\"7\",\"md\":\"8\",\"lg\":\"12\"}},[_c('div',{staticClass:\"fs-18 gun-metal font-weight-normal\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.typeTranslations.singular\"}})],1)])],1)],1),_c('b-col',{staticClass:\"mb-0\",attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"5\",\"md\":\"4\",\"lg\":\"12\"}},[_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"maturity-date-label\")],2)]),_c('b-col',{attrs:{\"cols\":\"7\",\"md\":\"8\",\"lg\":\"12\"}},[_c('div',{staticClass:\"fs-18 gun-metal font-weight-normal\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.maturityDate\"}}),(_vm.product && !_vm.product.maturityDate)?_vm._t(\"maturity-date-open\"):_vm._e()],2)])],1)],1),(_vm.isArchiveDetail)?_c('b-col',{staticClass:\"mb-0\",attrs:{\"cols\":\"12\",\"lg\":\"2\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"5\",\"md\":\"4\",\"lg\":\"12\"}},[_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"underlying-label\")],2)]),_c('b-col',{attrs:{\"cols\":\"7\",\"md\":\"8\",\"lg\":\"12\"}},[_c('div',{staticClass:\"fs-18 gun-metal font-weight-normal\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.name\"}})],1)])],1)],1):_vm._e()],1)],1),(!_vm.isArchiveDetail)?_c('b-col',{staticClass:\"pb-4 py-lg-3 hr-lg bl-lg align-items-stretch\",attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('b-row',{staticClass:\"align-items-start flex-grow-1\"},[_c('ad-skeleton-text',{staticClass:\"col\",attrs:{\"loading\":_vm.underlying == null}},[(_vm.tradingHoursVisible)?_c('b-col',{staticClass:\"mb-2 align-self-start\",attrs:{\"cols\":\"12\",\"lg\":\"12\"}},[_c('b-row',{staticClass:\"align-items-start\"},[_c('b-col',{attrs:{\"cols\":\"5\",\"md\":\"4\",\"lg\":\"12\"}},[_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"trading-time-label\")],2)]),_c('b-col',{attrs:{\"cols\":\"7\",\"md\":\"8\",\"lg\":\"12\"}},[_c('div',{staticClass:\"mt-sm-0 fs-18 gun-metal font-weight-normal align-self-start\"},[_c('span',[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.tradingTimes.productTime.from\"}}),_vm._v(\" - \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.tradingTimes.productTime.to\"}})],1),_c('br'),(_vm.euronextTimesVisible)?_c('span',[_vm._v(\"(\"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.tradingTimes.euronextTime.from\"}}),_vm._v(\" - \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.tradingTimes.euronextTime.to\"}}),_vm._v(\" Euronext)\")],1):_vm._e()])])],1),_c('b-row',{staticClass:\"align-items-start\"},[_c('b-col',{attrs:{\"cols\":\"5\",\"md\":\"4\",\"lg\":\"12\"}},[(_vm.knockoutTimesVisible)?_c('div',{staticClass:\"mb-0 fs-14 font-weight-bold blue\"},[_vm._t(\"knock-out-time-label\")],2):_vm._e()]),_c('b-col',{attrs:{\"cols\":\"7\",\"md\":\"8\",\"lg\":\"12\"}},[(_vm.knockoutTimesVisible)?_c('div',{staticClass:\"mt-sm-0 fs-18 gun-metal font-weight-normal align-self-start\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.tradingTimes.knockoutTime.from\"}}),_vm._v(\" - \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.tradingTimes.knockoutTime.to\"}}),_vm._t(\"underlying-related-info-popup\",null,{\"underlyings\":_vm.product.underlyings})],2):_vm._e()])],1)],1):_vm._e()],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-row>\n <b-col cols=\"12\" :lg=\"isArchiveDetail ? 12 : 9\" class=\"pt-4 py-lg-3 hr align-self-start\">\n <b-row class=\"align-items-start\">\n <b-col cols=\"12\" :lg=\"isArchiveDetail ? 3 : 4\" class=\"mb-2\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\"><slot name=\"isin-label\"></slot></div>\n <div class=\"fs-26 gun-metal font-weight-normal\">\n <ad-product-data-value fieldKey=\"product.isin\" />\n <span\n class=\"mt-0 blue icon-copy\"\n v-if=\"product\"\n v-clipboard=\"product.isin\"\n v-clipboard:success=\"clipboardSuccessHandler\"\n @click=\"onCloseCopyPopover\"\n v-b-popover.top.click=\"copyConfirmationText\"\n role=\"button\"\n ><ad-icon-copy id=\"icon-copy\" height=\"0.8em\" />\n </span>\n </div>\n </b-col>\n <b-col cols=\"12\" :lg=\"isArchiveDetail ? 2 : 3\" class=\"mb-0\">\n <b-row>\n <b-col cols=\"5\" md=\"4\" lg=\"12\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\"><slot name=\"nsin-label\"></slot></div>\n </b-col>\n <b-col cols=\"7\" md=\"8\" lg=\"12\">\n <div class=\"fs-18 gun-metal font-weight-normal\">\n <slot name=\"nsin-field\"></slot>\n <span\n class=\"mt-0 blue icon-copy\"\n v-if=\"product\"\n v-clipboard=\"productNsinKeyValue\"\n v-clipboard:success=\"clipboardSuccessHandler\"\n @click=\"onCloseCopyPopover\"\n v-b-popover.top.click=\"nsinCopiedText\"\n role=\"button\"\n >\n <ad-icon-copy id=\"icon-copy\" height=\"0.8em\" />\n </span>\n </div>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"12\" :lg=\"isArchiveDetail ? 2 : 3\" class=\"mb-0\">\n <b-row>\n <b-col cols=\"5\" md=\"4\" lg=\"12\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\"><slot name=\"product-type-label\"></slot></div>\n </b-col>\n <b-col cols=\"7\" md=\"8\" lg=\"12\">\n <div class=\"fs-18 gun-metal font-weight-normal\">\n <ad-product-data-value fieldKey=\"product.typeTranslations.singular\" />\n </div>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"12\" lg=\"2\" class=\"mb-0\">\n <b-row>\n <b-col cols=\"5\" md=\"4\" lg=\"12\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\"><slot name=\"maturity-date-label\"></slot></div>\n </b-col>\n <b-col cols=\"7\" md=\"8\" lg=\"12\">\n <div class=\"fs-18 gun-metal font-weight-normal\">\n <ad-product-data-value fieldKey=\"product.maturityDate\" />\n <slot name=\"maturity-date-open\" v-if=\"product && !product.maturityDate\"></slot>\n </div>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"12\" lg=\"2\" class=\"mb-0\" v-if=\"isArchiveDetail\">\n <b-row>\n <b-col cols=\"5\" md=\"4\" lg=\"12\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\"><slot name=\"underlying-label\"></slot></div>\n </b-col>\n <b-col cols=\"7\" md=\"8\" lg=\"12\">\n <div class=\"fs-18 gun-metal font-weight-normal\">\n <ad-underlying-data-value fieldKey=\"underlying.name\" />\n </div>\n </b-col>\n </b-row>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"12\" lg=\"3\" class=\"pb-4 py-lg-3 hr-lg bl-lg align-items-stretch\" v-if=\"!isArchiveDetail\">\n <b-row class=\"align-items-start flex-grow-1\">\n <ad-skeleton-text class=\"col\" :loading=\"underlying == null\">\n <b-col cols=\"12\" lg=\"12\" class=\"mb-2 align-self-start\" v-if=\"tradingHoursVisible\">\n <b-row class=\"align-items-start\">\n <b-col cols=\"5\" md=\"4\" lg=\"12\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\"><slot name=\"trading-time-label\"></slot></div>\n </b-col>\n <b-col cols=\"7\" md=\"8\" lg=\"12\">\n <div class=\"mt-sm-0 fs-18 gun-metal font-weight-normal align-self-start\">\n <span\n ><ad-underlying-data-value fieldKey=\"underlying.tradingTimes.productTime.from\" /> -\n <ad-underlying-data-value fieldKey=\"underlying.tradingTimes.productTime.to\" /></span\n ><br />\n <span v-if=\"euronextTimesVisible\"\n >(<ad-underlying-data-value fieldKey=\"underlying.tradingTimes.euronextTime.from\" /> -\n <ad-underlying-data-value fieldKey=\"underlying.tradingTimes.euronextTime.to\" />\n Euronext)</span\n >\n </div>\n </b-col>\n </b-row>\n <b-row class=\"align-items-start\">\n <b-col cols=\"5\" md=\"4\" lg=\"12\">\n <div class=\"mb-0 fs-14 font-weight-bold blue\" v-if=\"knockoutTimesVisible\">\n <slot name=\"knock-out-time-label\"></slot>\n </div>\n </b-col>\n <b-col cols=\"7\" md=\"8\" lg=\"12\">\n <div class=\"mt-sm-0 fs-18 gun-metal font-weight-normal align-self-start\" v-if=\"knockoutTimesVisible\">\n <ad-underlying-data-value fieldKey=\"underlying.tradingTimes.knockoutTime.from\" /> -\n <ad-underlying-data-value fieldKey=\"underlying.tradingTimes.knockoutTime.to\" />\n <slot name=\"underlying-related-info-popup\" :underlyings=\"product.underlyings\"></slot>\n </div>\n </b-col>\n </b-row>\n </b-col>\n </ad-skeleton-text>\n </b-row>\n </b-col>\n </b-row>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Inject, InjectReactive, Prop, Vue } from 'vue-property-decorator';\nimport { ProductModel, UnderlyingModel, UnderlyingTradingTimes } from '@src/types/the-q-api';\nimport { InstrumentFieldKeys, ProductDetailBlockSetting } from '@/src/types/episerver-api';\nimport evaluateExpressionByKey from '@/src/utils/value-formatter/format-helper';\nimport { ApiTypeValue } from '@/src/types/vue-api';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({})\nexport default class AdProductMainInformation extends Vue {\n @Prop({ default: false }) displayKnockOutTime!: boolean;\n @Inject() settingsProperty?: ProductDetailBlockSetting;\n @Inject() nsinKeys!: InstrumentFieldKeys | null;\n\n @InjectReactive() product!: ProductModel | null;\n @InjectReactive() underlying!: UnderlyingModel | null;\n\n get isArchiveDetail(): boolean | null {\n if (!this.product) return null;\n return this.product?.lifetimeCycle != null;\n }\n\n get productNsinKeyValue(): ApiTypeValue {\n if (!this.nsinKeys?.productKey) {\n return null;\n }\n\n return evaluateExpressionByKey(this.nsinKeys?.productKey, {\n // setting product to get value from productItem and set fieldkey, e.g. product.last\n product: this.product,\n });\n }\n\n getTradingTimes(): UnderlyingTradingTimes | null {\n if (\n this.underlying?.tradingTimes?.productTime === null ||\n this.underlying?.tradingTimes?.productTime === undefined\n ) {\n return null;\n }\n return this.underlying.tradingTimes;\n }\n\n clipboardSuccessHandler({ value }) {\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'product_identifier',\n items: [{ item_id: value }],\n });\n }\n get knockoutTimesVisible(): boolean {\n return (\n (this.settingsProperty?.displayKnockOutTime === undefined ? false : this.settingsProperty?.displayKnockOutTime) &&\n this.getTradingTimes()?.knockoutTime !== null\n );\n }\n\n get euronextTimesVisible(): boolean {\n return (\n (this.settingsProperty?.displayEuronextTime === undefined ? false : this.settingsProperty?.displayEuronextTime) &&\n this.getTradingTimes()?.euronextTime !== null\n );\n }\n\n get tradingHoursVisible(): boolean {\n const tradingTimes = this.getTradingTimes();\n if (tradingTimes !== null) {\n if (tradingTimes.productTime !== null) {\n return true;\n }\n }\n return false;\n }\n\n get copyConfirmationText(): string {\n return this.settingsProperty?.isinCopiedText ? this.settingsProperty?.isinCopiedText : 'Copied';\n }\n\n get nsinCopiedText(): string {\n return this.settingsProperty?.nsinCopiedText ? this.settingsProperty?.nsinCopiedText : 'Copied';\n }\n\n onCloseCopyPopover(): void {\n setTimeout(() => {\n this.$root.$emit('bv::hide::popover');\n }, 3000);\n }\n}\n</script>\n<style scoped lang=\"scss\">\n.icon-copy {\n color: $marine-blue;\n\n :hover {\n color: $bright-sky-blue;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3d7f6f4b&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3d7f6f4b&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d7f6f4b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',{attrs:{\"id\":\"productPriceDataRow\"}},[_c('b-col',{staticClass:\"mb-2\",attrs:{\"cols\":\"7\",\"md\":\"4\"}},[_c('h3',{staticClass:\"mb-0\"},[_vm._t(\"bid-label\")],2),_c('div',{staticClass:\"fs-26 gun-metal font-weight-bold\"},[(_vm.product && !_vm.isMarketClosedOrInterruption && !_vm.isProductKoed && !_vm.isProductMatured)?_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.bid\"}}):_c('div',[(_vm.isMarketClosedOrInterruption && !_vm.isProductKoed && !_vm.isProductMatured)?_c('span',[_vm._v(\"-\")]):_vm._e(),(_vm.isProductKoed || _vm.isBarrierReached)?_vm._t(\"knocked-out-label\"):_vm._e(),(_vm.isProductMatured)?_vm._t(\"matured-label\"):_vm._e()],2)],1),(!_vm.product || (!_vm.isMarketClosedOrInterruption && !_vm.isProductKoed && !_vm.isProductMatured))?_c('div',{staticClass:\"fs-18 gun-metal font-weight-light\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.bidSize\"}}),_vm._v(\" \"),_vm._t(\"bid-ask-size-unit\")],2):_vm._e(),(_vm.showSellButton)?_c('div',{staticClass:\"d-none d-md-inline-block mt-2\"},[_c('b-button',{staticClass:\"d-none d-md-inline-block\",attrs:{\"size\":\"trade\",\"variant\":\"danger\",\"id\":_vm.sellBrokersOverlayTargetId,\"disabled\":_vm.showSellButtonDisabled},on:{\"click\":function($event){return _vm.trackBuySellButton('sell')}}},[_vm._t(\"sell-button-label\")],2),_vm._t(\"sell-brokers-overlay\")],2):_vm._e(),(_vm.showBuySellButton)?_c('div',{staticClass:\"d-none d-md-block mt-2\"},[_c('b-button',{staticClass:\"w-100\",attrs:{\"variant\":\"success\",\"size\":\"sm\",\"id\":_vm.buySellBrokersOverlayTargetId,\"disabled\":_vm.showBuySellButtonDisabled},on:{\"click\":function($event){return _vm.trackBuySellButton('buysell')}}},[_vm._t(\"buy-sell-button-label\")],2),_vm._t(\"buy-sell-brokers-overlay\")],2):_vm._e()]),(_vm.showSellButton)?_c('b-col',{staticClass:\"mb-2 text-right d-md-none\",attrs:{\"cols\":\"5\",\"md\":\"4\"}},[_c('b-button',{attrs:{\"variant\":\"danger\",\"size\":\"trade\",\"id\":_vm.sellBrokersOverlayMobileTargetId,\"disabled\":_vm.showSellButtonDisabled},on:{\"click\":function($event){return _vm.trackBuySellButton('sell')}}},[_vm._t(\"sell-button-label\")],2),_vm._t(\"sell-brokers-overlay-mobile\")],2):_vm._e(),_c('b-col',{staticClass:\"mb-2\",attrs:{\"cols\":\"7\",\"md\":\"4\"}},[_c('h3',{staticClass:\"mb-0\"},[_vm._t(\"ask-label\")],2),_c('div',{staticClass:\"fs-26 gun-metal font-weight-bold\"},[(_vm.product && !_vm.isMarketClosedOrInterruption && !_vm.isBidOnlyPhase && !_vm.isProductKoed && !_vm.isProductMatured)?_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.ask\"}}):_c('div',[((_vm.isMarketClosedOrInterruption || _vm.isBidOnlyPhase) && !_vm.isProductKoed && !_vm.isProductMatured)?_c('span',[_vm._v(\"-\")]):_vm._e(),(_vm.isProductKoed || _vm.isBarrierReached)?_vm._t(\"knocked-out-label\"):_vm._e(),(_vm.isProductMatured)?_vm._t(\"matured-label\"):_vm._e()],2)],1),(!_vm.product || (!_vm.isMarketClosedOrInterruption && !_vm.isBidOnlyPhase && !_vm.isProductKoed && !_vm.isProductMatured))?_c('div',{staticClass:\"fs-18 gun-metal font-weight-light\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.askSize\"}}),_vm._t(\"bid-ask-size-unit\")],2):_vm._e(),(_vm.isBidOnlyPhase)?_c('div',{staticClass:\"fs-18 visibility-hidden\"},[_vm._v(\" -\")]):_vm._e(),(_vm.showBuyButton)?_c('div',{staticClass:\"d-none d-md-inline-block mt-2\"},[_c('b-button',{attrs:{\"variant\":\"success\",\"size\":\"trade\",\"id\":_vm.buyBrokersOverlayTargetId,\"disabled\":_vm.showBuyButtonDisabled},on:{\"click\":function($event){return _vm.trackBuySellButton('buy')}}},[_vm._t(\"buy-button-label\")],2),_vm._t(\"buy-brokers-overlay\")],2):_vm._e()]),(_vm.showBuyButton)?_c('b-col',{staticClass:\"d-md-none mb-2 text-right\",attrs:{\"cols\":\"5\",\"md\":\"4\"}},[_c('b-button',{attrs:{\"variant\":\"success\",\"size\":\"trade\",\"id\":_vm.buyBrokersOverlayMobileTargetId,\"disabled\":_vm.showBuyButtonDisabled},on:{\"click\":function($event){return _vm.trackBuySellButton('buy')}}},[_vm._t(\"buy-button-label\")],2),_vm._t(\"buy-brokers-overlay-mobile\")],2):_vm._e(),_c('b-col',{staticClass:\"mb-2 d-md-none\",attrs:{\"cols\":\"12\"}},[(_vm.showBuySellButton)?_c('b-button',{staticClass:\"w-100\",attrs:{\"variant\":\"success\",\"size\":\"sm\",\"id\":_vm.buySellBrokersOverlayMobileTargetId,\"disabled\":_vm.showBuySellButtonDisabled},on:{\"click\":function($event){return _vm.trackBuySellButton('buysell')}}},[_vm._t(\"buy-sell-button-label\")],2):_vm._e(),_vm._t(\"buy-sell-brokers-overlay-mobile\"),(_vm.isSecondaryMarket)?_c('b-button',{staticClass:\"w-100\",attrs:{\"size\":\"sm\",\"disabled\":\"\"}},[_vm._t(\"is-secondary-market-button-label\")],2):_vm._e()],2),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('h3',{staticClass:\"mb-0\"},[_vm._t(\"change-label\")],2),(!_vm.product || (!_vm.isMarketClosedOrInterruption && !_vm.isProductKoed && !_vm.isProductMatured))?_c('div',{staticClass:\"fs-26 gun-metal font-weight-bold\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.changePercent\"}})],1):_vm._e(),(!_vm.product || (!_vm.isMarketClosedOrInterruption && !_vm.isProductKoed && !_vm.isProductMatured))?_c('div',{staticClass:\"mt-2 mt-sm-0 fs-18 gun-metal font-weight-light\"},[_c('ad-product-data-value',{attrs:{\"fieldKey\":\"product.price.timeStamp\"}})],1):_vm._e(),(_vm.product && (_vm.isMarketClosedOrInterruption || _vm.isProductKoed || _vm.isProductMatured))?_c('div',{staticClass:\"fs-26 gun-metal font-weight-bold\"},[_vm._v(\" - \")]):_vm._e()]),(_vm.isSecondaryMarket)?_c('b-col',{staticClass:\"d-none d-md-inline\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"d-none d-md-block\"},[_c('b-button',{staticClass:\"w-100\",attrs:{\"size\":\"sm\",\"disabled\":\"\"}},[_vm._t(\"is-secondary-market-button-label\")],2)],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-row id=\"productPriceDataRow\">\n <b-col cols=\"7\" md=\"4\" class=\"mb-2\">\n <h3 class=\"mb-0\"><slot name=\"bid-label\"></slot></h3>\n <div class=\"fs-26 gun-metal font-weight-bold\">\n <ad-product-data-value\n v-if=\"product && !isMarketClosedOrInterruption && !isProductKoed && !isProductMatured\"\n fieldKey=\"product.price.bid\"\n />\n <div v-else>\n <span v-if=\"isMarketClosedOrInterruption && !isProductKoed && !isProductMatured\">-</span>\n <slot name=\"knocked-out-label\" v-if=\"isProductKoed || isBarrierReached\"></slot>\n <slot name=\"matured-label\" v-if=\"isProductMatured\"></slot>\n </div>\n </div>\n <div\n v-if=\"!product || (!isMarketClosedOrInterruption && !isProductKoed && !isProductMatured)\"\n class=\"fs-18 gun-metal font-weight-light\"\n >\n <ad-product-data-value fieldKey=\"product.price.bidSize\" /> <slot name=\"bid-ask-size-unit\"></slot>\n </div>\n <div class=\"d-none d-md-inline-block mt-2\" v-if=\"showSellButton\">\n <b-button\n class=\"d-none d-md-inline-block\"\n size=\"trade\"\n variant=\"danger\"\n :id=\"sellBrokersOverlayTargetId\"\n :disabled=\"showSellButtonDisabled\"\n @click=\"trackBuySellButton('sell')\"\n >\n <slot name=\"sell-button-label\"></slot>\n </b-button>\n <slot name=\"sell-brokers-overlay\"></slot>\n </div>\n <div class=\"d-none d-md-block mt-2\" v-if=\"showBuySellButton\">\n <b-button\n variant=\"success\"\n size=\"sm\"\n class=\"w-100\"\n :id=\"buySellBrokersOverlayTargetId\"\n :disabled=\"showBuySellButtonDisabled\"\n @click=\"trackBuySellButton('buysell')\"\n ><slot name=\"buy-sell-button-label\"></slot\n ></b-button>\n <slot name=\"buy-sell-brokers-overlay\"></slot>\n </div>\n </b-col>\n <b-col cols=\"5\" md=\"4\" class=\"mb-2 text-right d-md-none\" v-if=\"showSellButton\">\n <b-button\n variant=\"danger\"\n size=\"trade\"\n :id=\"sellBrokersOverlayMobileTargetId\"\n :disabled=\"showSellButtonDisabled\"\n @click=\"trackBuySellButton('sell')\"\n ><slot name=\"sell-button-label\"></slot\n ></b-button>\n <slot name=\"sell-brokers-overlay-mobile\"></slot>\n </b-col>\n <b-col cols=\"7\" md=\"4\" class=\"mb-2\">\n <h3 class=\"mb-0\"><slot name=\"ask-label\"></slot></h3>\n <div class=\"fs-26 gun-metal font-weight-bold\">\n <ad-product-data-value\n v-if=\"product && !isMarketClosedOrInterruption && !isBidOnlyPhase && !isProductKoed && !isProductMatured\"\n fieldKey=\"product.price.ask\"\n />\n <div v-else>\n <span v-if=\"(isMarketClosedOrInterruption || isBidOnlyPhase) && !isProductKoed && !isProductMatured\">-</span>\n <slot name=\"knocked-out-label\" v-if=\"isProductKoed || isBarrierReached\"></slot>\n <slot name=\"matured-label\" v-if=\"isProductMatured\"></slot>\n </div>\n </div>\n <div\n v-if=\"!product || (!isMarketClosedOrInterruption && !isBidOnlyPhase && !isProductKoed && !isProductMatured)\"\n class=\"fs-18 gun-metal font-weight-light\"\n >\n <ad-product-data-value fieldKey=\"product.price.askSize\" />\n <slot name=\"bid-ask-size-unit\"></slot>\n </div>\n <div v-if=\"isBidOnlyPhase\" class=\"fs-18 visibility-hidden\"> -</div>\n <div class=\"d-none d-md-inline-block mt-2\" v-if=\"showBuyButton\">\n <b-button\n variant=\"success\"\n size=\"trade\"\n :id=\"buyBrokersOverlayTargetId\"\n :disabled=\"showBuyButtonDisabled\"\n @click=\"trackBuySellButton('buy')\"\n ><slot name=\"buy-button-label\"></slot\n ></b-button>\n <slot name=\"buy-brokers-overlay\"></slot>\n </div>\n </b-col>\n <b-col cols=\"5\" md=\"4\" class=\"d-md-none mb-2 text-right\" v-if=\"showBuyButton\">\n <b-button\n variant=\"success\"\n size=\"trade\"\n :id=\"buyBrokersOverlayMobileTargetId\"\n :disabled=\"showBuyButtonDisabled\"\n @click=\"trackBuySellButton('buy')\"\n ><slot name=\"buy-button-label\"></slot\n ></b-button>\n <slot name=\"buy-brokers-overlay-mobile\"></slot>\n </b-col>\n <b-col cols=\"12\" class=\"mb-2 d-md-none\">\n <b-button\n variant=\"success\"\n size=\"sm\"\n class=\"w-100\"\n :id=\"buySellBrokersOverlayMobileTargetId\"\n v-if=\"showBuySellButton\"\n :disabled=\"showBuySellButtonDisabled\"\n @click=\"trackBuySellButton('buysell')\"\n ><slot name=\"buy-sell-button-label\"></slot\n ></b-button>\n <slot name=\"buy-sell-brokers-overlay-mobile\"></slot>\n <b-button size=\"sm\" class=\"w-100\" disabled v-if=\"isSecondaryMarket\">\n <slot name=\"is-secondary-market-button-label\"></slot\n ></b-button>\n </b-col>\n <b-col cols=\"12\" md=\"4\" class=\"\">\n <h3 class=\"mb-0\"><slot name=\"change-label\"></slot></h3>\n <div\n v-if=\"!product || (!isMarketClosedOrInterruption && !isProductKoed && !isProductMatured)\"\n class=\"fs-26 gun-metal font-weight-bold\"\n >\n <ad-product-data-value fieldKey=\"product.price.changeAbsolute\" /> /\n <ad-product-data-value fieldKey=\"product.price.changePercent\" />\n </div>\n <div\n v-if=\"!product || (!isMarketClosedOrInterruption && !isProductKoed && !isProductMatured)\"\n class=\"mt-2 mt-sm-0 fs-18 gun-metal font-weight-light\"\n >\n <ad-product-data-value fieldKey=\"product.price.timeStamp\" />\n </div>\n <div\n v-if=\"product && (isMarketClosedOrInterruption || isProductKoed || isProductMatured)\"\n class=\"fs-26 gun-metal font-weight-bold\"\n >\n -\n </div>\n </b-col>\n <b-col cols=\"8\" class=\"d-none d-md-inline\" v-if=\"isSecondaryMarket\">\n <div class=\"d-none d-md-block\">\n <b-button size=\"sm\" class=\"w-100\" disabled><slot name=\"is-secondary-market-button-label\"></slot></b-button>\n </div>\n </b-col>\n </b-row>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue, InjectReactive } from 'vue-property-decorator';\nimport { ProductModel } from '@src/types/the-q-api';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component\nexport default class AdProductPriceData extends Vue {\n @Prop({ default: false, type: Boolean }) isBuySellConfigured!: boolean;\n @Prop({ default: true, type: Boolean }) isBuyConfigured!: boolean;\n @Prop({ default: true, type: Boolean }) isSellConfigured!: boolean;\n @Prop({ required: true, type: String }) sellBrokersOverlayTargetId!: string;\n @Prop({ required: true, type: String }) sellBrokersOverlayMobileTargetId!: string;\n @Prop({ required: true, type: String }) buyBrokersOverlayTargetId!: string;\n @Prop({ required: true, type: String }) buyBrokersOverlayMobileTargetId!: string;\n @Prop({ required: true, type: String }) buySellBrokersOverlayTargetId!: string;\n @Prop({ required: true, type: String }) buySellBrokersOverlayMobileTargetId!: string;\n\n @InjectReactive() product!: ProductModel | null;\n\n get showBuyButton(): boolean {\n return this.isBuyConfigured && !this.showBuySellButton && !this.isSecondaryMarket && !!this.product;\n }\n\n get showBuyButtonDisabled(): boolean {\n return this.isMarketClosedOrInterruption || this.isBidOnlyPhase || this.isProductKoed || this.isProductMatured;\n }\n\n get showSellButton(): boolean {\n return this.isSellConfigured && !this.showBuySellButton && !this.isSecondaryMarket && !!this.product;\n }\n\n get showSellButtonDisabled(): boolean {\n return this.isMarketClosedOrInterruption || this.isProductKoed || this.isProductMatured;\n }\n\n get showBuySellButton(): boolean {\n return this.isBuySellConfigured && !this.isSecondaryMarket && !!this.product;\n }\n\n get showBuySellButtonDisabled(): boolean {\n return (this.showBuyButtonDisabled && this.showSellButtonDisabled) || this.isProductKoed || this.isProductMatured;\n }\n\n get isProductMatured(): boolean {\n return !!this.product?.isMatured;\n }\n\n get isProductKoed(): boolean {\n return this.product?.knockout != null;\n }\n\n get isBarrierReached(): boolean {\n return this.product?.barrierBreached != null && this.product.barrierBreached;\n }\n\n get isMarketClosedOrInterruption(): boolean {\n return (\n (this.product?.price?.bid?.amount === null || this.product?.price.bid.amount === 0) &&\n (this.product?.price?.ask?.amount === null || this.product?.price.ask.amount === 0)\n );\n }\n\n get isBidOnlyPhaset(): boolean {\n return this.product?.price?.ask?.amount == 0;\n }\n\n get isSecondaryMarket(): boolean {\n return this.product?.isSecondaryMarket != null && this.product?.isSecondaryMarket;\n }\n\n get isBidOnlyPhase(): boolean {\n return this.product?.price.bid.amount &&\n this.product?.price?.bidSize !== null &&\n !this.product?.price.ask.amount &&\n !this.isProductKoed\n ? true\n : false;\n }\n\n trackBuySellButton(buttonType: string): void {\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'buysell',\n items: [{ item_id: buttonType }],\n });\n }\n}\n</script>\n<style scoped>\n.btn-trade {\n padding: 0;\n width: 125px;\n height: 45px;\n}\n.visibility-hidden {\n visibility: hidden;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=19e09163&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=19e09163&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19e09163\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('ad-instrument-table',_vm._b({attrs:{\"loading\":_vm.isLoading,\"settings\":_vm.settingsProperty,\"instruments\":_vm.products},scopedSlots:_vm._u([{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-product-data-value',{attrs:{\"is-link-to-detail-page\":setting.isLinkToDetailPage,\"product-item\":instrument,\"field-key\":setting.formatId}})]}},{key:\"row-watch-list\",fn:function({ instrument }){return [_c('ad-product-watchlist-toggle',{attrs:{\"product-item\":instrument}})]}}])},'ad-instrument-table',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <ad-instrument-table :loading=\"isLoading\" :settings=\"settingsProperty\" v-bind=\"$attrs\" :instruments=\"products\">\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-product-data-value\n :is-link-to-detail-page=\"setting.isLinkToDetailPage\"\n :product-item=\"instrument\"\n :field-key=\"setting.formatId\"\n />\n </template>\n <template #row-watch-list=\"{ instrument }\">\n <ad-product-watchlist-toggle :product-item=\"instrument\" />\n </template>\n </ad-instrument-table>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport { TopLeverageTableBlockSettings } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { HttpStatusCodes, TopLeverageTableFilter } from '@/src/types/enumerations';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { Getter, Action } from 'vuex-class';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdTopLeverageTable extends Vue {\n @Inject() settingsProperty!: TopLeverageTableBlockSettings;\n\n @Getter('topLeverageSearchResult', { namespace: 'product' })\n topLeverageSearchResult!: (key: TopLeverageTableFilter) => Array<ProductModel>;\n\n @Action('loadTopLeverageTableSearchAsync', { namespace: 'product' })\n loadTopLeverageTableSearchAsync!: (filter: TopLeverageTableFilter) => Promise<void>;\n\n private statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n private isLoading = true;\n\n get products(): Array<ProductModel> {\n return this.topLeverageSearchResult(this.settingsProperty.filter);\n }\n\n async created(): Promise<void> {\n await this.loadProductsWithErrorHandling();\n }\n\n async loadProductsWithErrorHandling() {\n this.isLoading = true;\n\n try {\n await this.loadTopLeverageTableSearchAsync(this.settingsProperty.filter);\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n } else {\n this.statusCode = HttpStatusCodes.UnknownError;\n }\n }\n\n this.isLoading = false;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=053040d2\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"underlying-indications-block\"},[_c('b-row',{staticClass:\"pb-3\"},[_c('b-col',[_c('div',[_c('h2',{staticClass:\"mb-n2 d-inline\"},[_vm._t(\"headline\")],2),_c('span',[_vm._t(\"info-icon\")],2)]),_c('span',{staticClass:\"marine-blue fs-14\"},[_vm._t(\"subline\")],2)])],1),_c('b-row',[_c('b-col',{staticClass:\"px-1 pr-lg-0 pr-lg-2\",attrs:{\"cols\":\"12\",\"xl\":\"6\"}},[_c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('ad-instrument-table',_vm._b({ref:\"table\",attrs:{\"loading\":_vm.isLoading,\"settings\":_vm.settings,\"instruments\":_vm.teaserUnderlyings,\"selectable\":\"\",\"select-mode\":\"single\",\"selected-variant\":\"secondary\"},on:{\"row-clicked\":_vm.selectUnderlying},scopedSlots:_vm._u([{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-underlying-data-value',{attrs:{\"isLinkToDetailPage\":setting.isLinkToDetailPage,\"underlying-item\":instrument,\"field-key\":setting.formatId}})]}},{key:\"row-custom-instrument\",fn:function({}){return [_c('div',{staticClass:\"chart-icon\"},[_c('ad-icon-chart-line',{attrs:{\"height\":\"1em\",\"width\":\"1em\",\"iconName\":\"\"}})],1)]}}])},'ad-instrument-table',_vm.$attrs,false))],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"6\"}},[_c('ad-underlying-data-property',{key:_vm.teaserKey,attrs:{\"underlying\":_vm.selectedUnderlying}},[_vm._t(\"indication-teaser-chart\")],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"underlying-indications-block\">\n <b-row class=\"pb-3\">\n <b-col>\n <div>\n <h2 class=\"mb-n2 d-inline\"><slot name=\"headline\"></slot> </h2>\n <span><slot name=\"info-icon\"></slot></span>\n </div>\n <span class=\"marine-blue fs-14\"><slot name=\"subline\"></slot></span>\n </b-col>\n </b-row>\n <b-row>\n <b-col cols=\"12\" xl=\"6\" class=\"px-1 pr-lg-0 pr-lg-2\">\n <ad-error :http-status-code=\"statusCode\">\n <ad-instrument-table\n :loading=\"isLoading\"\n ref=\"table\"\n :settings=\"settings\"\n v-bind=\"$attrs\"\n :instruments=\"teaserUnderlyings\"\n selectable\n select-mode=\"single\"\n selected-variant=\"secondary\"\n @row-clicked=\"selectUnderlying\"\n >\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-underlying-data-value\n :isLinkToDetailPage=\"setting.isLinkToDetailPage\"\n :underlying-item=\"instrument\"\n :field-key=\"setting.formatId\"\n />\n </template>\n <template #row-custom-instrument=\"{}\">\n <div class=\"chart-icon\">\n <ad-icon-chart-line height=\"1em\" width=\"1em\" iconName=\"\" />\n </div>\n </template>\n </ad-instrument-table>\n </ad-error>\n </b-col>\n <b-col cols=\"12\" xl=\"6\">\n <ad-underlying-data-property :underlying=\"selectedUnderlying\" :key=\"teaserKey\">\n <slot name=\"indication-teaser-chart\"></slot>\n </ad-underlying-data-property>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Action, Getter } from 'vuex-class';\nimport { Direction, HttpStatusCodes, Separator, TextAlign } from '@/src/types/enumerations';\nimport { UnderlyingIndicationTableBlockSetting, TableColumnSettingBase } from '@/src/types/episerver-api';\n\nimport { InstrumentTableSettingData, TableField } from '@/src/types/vue-api';\nimport { Component, Inject, Ref, Vue } from 'vue-property-decorator';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { BTable } from 'bootstrap-vue';\nimport { isAxiosError } from '@/src/types/type-guards';\n\n@Component\nexport default class AdUnderlyingIndicationsTable extends Vue {\n @Inject() settingsProperty!: UnderlyingIndicationTableBlockSetting;\n\n @Action('loadTeaserUnderlyingsAsync', { namespace: 'underlying' })\n loadTeaserUnderlyingsAsync!: (isin: string[] | string) => Promise<void>;\n\n @Getter('teaserUnderlyings', { namespace: 'underlying' })\n teaserUnderlyings!: Array<UnderlyingModel> | null;\n\n private fields: Array<TableField> = [];\n\n private separator = Separator;\n private direction = Direction;\n private settings!: InstrumentTableSettingData;\n private statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n private isLoading = true;\n @Ref()\n private table;\n\n selectedUnderlying: UnderlyingModel | null = null;\n\n selectUnderlying(item: UnderlyingModel) {\n this.selectedUnderlying = item;\n }\n\n async created(): Promise<void> {\n this.settings = {\n desktopTableColumnsSetting: [\n ...this.settingsProperty.desktopTableColumnsSetting,\n { headline: '', textAlign: TextAlign.Right, isEllipsis: false, columnWidth: null } as TableColumnSettingBase,\n ],\n tabletTableColumnsSetting: [\n ...this.settingsProperty.tabletTableColumnsSetting,\n { headline: '', textAlign: TextAlign.Right, isEllipsis: false, columnWidth: null } as TableColumnSettingBase,\n ],\n mobileTableColumnsSetting: [\n ...this.settingsProperty.mobileTableColumnsSetting,\n { headline: '', textAlign: TextAlign.Right, isEllipsis: false, columnWidth: null } as TableColumnSettingBase,\n ],\n tableColumnSorting: [],\n hideDetailColumn: this.settingsProperty.hideDetailColumn,\n } as InstrumentTableSettingData;\n\n await this.loadUnderlyingsWithErrorHandling();\n\n if (this.teaserUnderlyings && this.teaserUnderlyings?.length != 0) {\n this.selectUnderlying(this.teaserUnderlyings[0]);\n (this.table.$refs.table as BTable).selectRow(0);\n }\n }\n\n async loadUnderlyingsWithErrorHandling() {\n this.isLoading = true;\n\n try {\n await this.loadTeaserUnderlyingsAsync(this.settingsProperty.underlyingIsins);\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n this.$log.error('Status of error', error?.response?.status);\n } else {\n this.statusCode = HttpStatusCodes.UnknownError;\n }\n }\n\n this.isLoading = false;\n }\n\n get teaserKey() {\n return this.selectedUnderlying?.isin || null;\n }\n}\n</script>\n\n<style lang=\"scss\">\n$chart-value-font-size: $fs-12;\n$chart-date-font-size: $fs-10;\n\n.underlying-indications-block {\n .table th {\n padding-top: 0 !important; //has to be more important than table th\n\n &:last-child {\n // fixes chart-icon being cut off\n width: 52px !important;\n }\n }\n\n td:last-child {\n .ade-icon {\n background-color: $light-blue-grey;\n width: 28px;\n min-width: 28px;\n height: 28px;\n }\n }\n\n .highcharts-yaxis-labels text {\n font-size: $chart-value-font-size !important;\n }\n .highcharts-xaxis-labels text {\n font-size: $chart-date-font-size !important;\n }\n\n .icon-size {\n .ade-icon {\n width: rem(20);\n height: rem(20);\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=89594c7c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=89594c7c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.underlying)?_c('div',{staticClass:\"mb-6\"},[_c('ad-chart-configuration-property',{attrs:{\"chart-configuration-property\":_vm.chartConfiguration}},[_c('ad-underlying-data-property',{key:_vm.underlying.isin,attrs:{\"underlying\":_vm.underlying}},[_c('b-card',{staticClass:\"mb-2 mb-3\"},[_c('b-row',{staticClass:\"mb-md-3\"},[_c('b-col',[_c('b-row',[_c('b-col',[_c('h3',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(_vm.underlying.name)+\" \")]),_c('span',{staticClass:\"fs-18\"},[_c('ad-underlying-data-value',{attrs:{\"underlyingItem\":_vm.underlying,\"fieldKey\":\"underlying.last\"}})],1),_c('span',{staticClass:\"mr-lg-5 pl-1\"},[_vm._t(\"indications-info-block\")],2)])],1),_c('b-row',[_c('b-col',{staticClass:\"d-md-none\"},[_c('span',{staticClass:\"font-weight-normal\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\",\"underlyingItem\":_vm.underlying[0]}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\",\"underlyingItem\":_vm.underlying[0]}})],1)]),_c('b-col',{staticClass:\"mt-3 d-none d-md-inline\"},[_c('div',{staticClass:\"fs-14 font-weight-bold blue\"},[_vm._t(\"price-change-label\")],2),_c('div',{staticClass:\"d-none d-md-block fs-18 font-weight-normal\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\",\"underlyingItem\":_vm.underlying[0]}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\",\"underlyingItem\":_vm.underlying[0]}})],1)])],1),_c('b-row',{staticClass:\"mt-2 d-none d-md-block\"},[_c('b-col',{staticClass:\"mt-1 fs-14\"},[_vm._t(\"indications-text\")],2)],1),_c('b-row',{staticClass:\"fs-14 mt-3\"},[_c('b-col',[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._t(\"nsin-label\",function(){return [_vm._v(\"Nsin\")]})],2),_c('span',{staticClass:\"ml-1\"},[(_vm.nsinKey)?_c('ad-underlying-data-value',{attrs:{\"fieldKey\":_vm.nsinKey,\"underlyingItem\":_vm.underlying}}):_vm._e()],1)]),_c('b-col',{attrs:{\"cols\":\"12 pr-0\"}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._t(\"isin-label\",function(){return [_vm._v(\"ISIN\")]})],2),_c('span',{staticClass:\"ml-1\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.isin\",\"underlyingItem\":_vm.underlying}})],1)])],1)],1),_c('b-col',{staticClass:\"d-md-none\"},[_c('span',{staticClass:\"text-right\"},[_vm._t(\"indications-text\")],2)])],1),_c('b-row',{staticClass:\"mt-3 no-gutters d-md-none\"},[_c('b-col',[_vm._t(\"teaser-chart\")],2)],1)],1),_c('b-col',{staticClass:\"d-none d-md-block\",attrs:{\"md\":\"8\"}},[_vm._t(\"teaser-chart\")],2)],1)],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"underlying\" class=\"mb-6\">\n <ad-chart-configuration-property :chart-configuration-property=\"chartConfiguration\">\n <ad-underlying-data-property :underlying=\"underlying\" :key=\"underlying.isin\">\n <b-card class=\"mb-2 mb-3\">\n <b-row class=\"mb-md-3\">\n <b-col>\n <b-row>\n <b-col>\n <h3 class=\"mb-0\">\n {{ underlying.name }}\n </h3>\n <span class=\"fs-18\"\n ><ad-underlying-data-value :underlyingItem=\"underlying\" fieldKey=\"underlying.last\"\n /></span>\n <span class=\"mr-lg-5 pl-1\"><slot name=\"indications-info-block\"></slot></span>\n </b-col>\n </b-row>\n <b-row>\n <b-col class=\"d-md-none\">\n <span class=\"font-weight-normal\"\n ><ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" :underlyingItem=\"underlying[0]\" />\n / \n <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" :underlyingItem=\"underlying[0]\" />\n </span>\n </b-col>\n <b-col class=\"mt-3 d-none d-md-inline\">\n <div class=\"fs-14 font-weight-bold blue\"><slot name=\"price-change-label\"></slot></div>\n <div class=\"d-none d-md-block fs-18 font-weight-normal\"\n ><ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" :underlyingItem=\"underlying[0]\" />\n / \n <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" :underlyingItem=\"underlying[0]\"\n /></div>\n </b-col>\n </b-row>\n <b-row class=\"mt-2 d-none d-md-block\">\n <b-col class=\"mt-1 fs-14\"><slot name=\"indications-text\"></slot> </b-col>\n </b-row>\n <b-row class=\"fs-14 mt-3\">\n <b-col>\n <b-row>\n <b-col cols=\"12\">\n <span class=\"font-weight-bold\"><slot name=\"nsin-label\">Nsin</slot></span>\n <span class=\"ml-1\"\n ><ad-underlying-data-value v-if=\"nsinKey\" :fieldKey=\"nsinKey\" :underlyingItem=\"underlying\"\n /></span>\n </b-col>\n <b-col cols=\"12 pr-0\">\n <span class=\"font-weight-bold\"><slot name=\"isin-label\">ISIN</slot></span>\n <span class=\"ml-1\"\n ><ad-underlying-data-value fieldKey=\"underlying.isin\" :underlyingItem=\"underlying\"\n /></span>\n </b-col>\n </b-row>\n </b-col>\n <b-col class=\"d-md-none\">\n <span class=\"text-right\"><slot name=\"indications-text\"></slot></span>\n </b-col>\n </b-row>\n <b-row class=\"mt-3 no-gutters d-md-none\">\n <b-col>\n <slot name=\"teaser-chart\" />\n </b-col>\n </b-row>\n </b-col>\n <b-col md=\"8\" class=\"d-none d-md-block\">\n <slot name=\"teaser-chart\" />\n </b-col>\n </b-row>\n </b-card>\n </ad-underlying-data-property>\n </ad-chart-configuration-property>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { InstrumentFieldKeys } from '@/src/types/episerver-api';\nimport { ChartConfiguration } from '@/src/types/vue-api';\nimport { Component, Inject, Vue, Prop } from 'vue-property-decorator';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { HttpStatusCodes } from '@/src/types/enumerations';\nimport { Action, Getter } from 'vuex-class';\n@Component({})\nexport default class AdUnderlyingTeaserBlog extends Vue {\n @Prop() underlyingIsin!: string;\n\n @Inject({ default: null }) nsinKeys!: InstrumentFieldKeys | null;\n\n @Getter('underlyingByKey', { namespace: 'underlying' })\n underlyingByKey!: (isin: string) => UnderlyingModel;\n\n @Action('loadUnderlyingsAndSaveByIsinKeyAsync', { namespace: 'underlying' })\n loadUnderlyingsAndSaveByIsinKeyAsync!: (isins: string[]) => Promise<void>;\n\n statusCode: number | HttpStatusCodes = 200;\n chartConfiguration = new ChartConfiguration();\n\n async created(): Promise<void> {\n try {\n await this.loadUnderlyingsAndSaveByIsinKeyAsync([this.underlyingIsin]);\n } catch (error: unknown) {\n this.$log.debug('Error:', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n }\n }\n\n this.chartConfiguration.forceDropDownForChartPeriods = true;\n this.chartConfiguration.legendInTwoLineModeAtTablet = true;\n }\n\n get nsinKey(): string | null {\n return this.nsinKeys?.underlyingKey || null;\n }\n\n get underlying(): UnderlyingModel | null {\n return this.underlyingByKey(this.underlyingIsin);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=602edb12\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.underlying)?_c('div',[_c('h6',{staticClass:\"teaser-title fs-14 mb-0 font-weight-bold\"},[_c('ad-underlying-preheadline-text',{staticClass:\"fs-10\",attrs:{\"udp-preheadlines\":_vm.settingsProperty.udpPreHeadlines,\"underlying\":_vm.underlying}}),_vm._t(\"teaser-title\")],2),_c('h5',{staticClass:\"marine-blue\"},[_vm._v(_vm._s(_vm.underlying.name))]),_vm._t(\"teaser-chart\")],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"underlying\">\n <h6 class=\"teaser-title fs-14 mb-0 font-weight-bold\">\n <ad-underlying-preheadline-text\n class=\"fs-10\"\n :udp-preheadlines=\"settingsProperty.udpPreHeadlines\"\n :underlying=\"underlying\"\n ></ad-underlying-preheadline-text>\n <slot name=\"teaser-title\"></slot>\n </h6>\n <h5 class=\"marine-blue\">{{ underlying.name }}</h5>\n <slot name=\"teaser-chart\"></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { UnderlyingDetailPageSetting } from '@/src/types/episerver-api';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { Component, Vue, Inject, InjectReactive } from 'vue-property-decorator';\n\n@Component\nexport default class AdUnderlyingTeaserChart extends Vue {\n @InjectReactive() underlying!: UnderlyingModel | null;\n @Inject()\n settingsProperty?: UnderlyingDetailPageSetting;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5d8e19e1\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.teaserUnderlyings)?_c('div',{staticClass:\"mb-6\"},[_c('h2',{staticClass:\"fs-18 gun-metal mb-2\"},[_vm._t(\"teaser-title\",function(){return [_vm._v(\"Underlyings\")]})],2),(_vm.teaserUnderlyings.length === 1 && _vm.$screen.xl)?[_c('ad-chart-configuration-property',{attrs:{\"chart-configuration-property\":_vm.chartConfiguration}},[_c('ad-underlying-data-property',{key:_vm.teaserUnderlyings[0].isin,attrs:{\"underlying\":_vm.teaserUnderlyings[0]}},[_c('b-card',{staticClass:\"mb-2 mb-3\"},[_c('h3',{staticClass:\"mb-0\"},[_c('ad-underlying-preheadline-text',{staticClass:\"fs-12\",attrs:{\"udp-preheadlines\":_vm.settingsProperty.udpPreHeadlines,\"underlying\":_vm.teaserUnderlyings[0]}}),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.name\"}})],1),_c('b-row',{staticClass:\"mb-3\"},[_c('b-col',{staticClass:\"fs-18 font-weight-bold blue\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.last\"}}),_c('span',{staticClass:\"mr-lg-5 pl-1\"},[_vm._t(\"indications-info-block\")],2)],1),_c('b-col',{staticClass:\"font-weight-bold\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\"}})],1)],1),_c('b-row',{staticClass:\"fs-14 mb-3\"},[_c('b-col',[_c('b-row',[(_vm.nsinKey)?_c('b-col',{staticClass:\"font-weight-bold\",attrs:{\"cols\":\"4\"}},[_vm._t(\"nsin-label\",function(){return [_vm._v(\"Nsin\")]})],2):_vm._e(),(_vm.nsinKey)?_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":_vm.nsinKey}})],1):_vm._e(),_c('b-col',{staticClass:\"font-weight-bold\",attrs:{\"cols\":\"4\"}},[_vm._t(\"isin-label\",function(){return [_vm._v(\"ISIN\")]})],2),_c('b-col',{attrs:{\"cols\":\"8\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.isin\"}})],1)],1)],1),_c('b-col',[_vm._t(\"indications-text\")],2)],1),_vm._t(\"teaser-chart\")],2)],1)],1)]:_vm._l((_vm.teaserUnderlyings),function(teaserUnderlying){return _c('b-card',{key:teaserUnderlying.id,staticClass:\"mb-2 mb-lg-3 b-skeleton-m\",attrs:{\"no-body\":\"\"}},[_c('ad-underlying-data-property',{attrs:{\"underlying\":teaserUnderlying}},[_c('b-row',{staticClass:\"px-2 pl-sm-3 pr-sm-0 px-lg-3 py-3\"},[_c('b-col',{staticClass:\"fs-26 font-weight-normal blue\",attrs:{\"cols\":\"12\"}},[_c('ad-underlying-preheadline-text',{staticClass:\"fs-12\",attrs:{\"underlying\":teaserUnderlying,\"udp-preheadlines\":_vm.settingsProperty.udpPreHeadlines}}),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.name\"}})],1),_c('b-col',{staticClass:\"fs-18 font-weight-bold blue d-lg-none\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.last\"}}),_c('span',{staticClass:\"mr-lg-5 pl-1\"},[_vm._t(\"indications-info-block\")],2)],1),_c('b-col',{staticClass:\"fs-16 font-weight-bold blue d-none d-lg-inline\",attrs:{\"lg\":\"6\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.last\"}}),_c('span',{staticClass:\"pl-1 label\"},[_vm._t(\"indications-info-block\")],2)],1),_c('b-col',{staticClass:\"mt-1 mb-2 fs-16 font-weight-bold gun-metal d-lg-none\",attrs:{\"cols\":\"12\"}},[_c('div',[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\"}})],1)]),_c('b-col',{staticClass:\"pb-3 fs-16 font-weight-bold gun-metal d-none d-lg-inline text-right\",attrs:{\"lg\":\"6\"}},[_c('div',[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\"}})],1)]),_c('b-col',{staticClass:\"pt-1 fs-14 font-weight-light d-flex\",attrs:{\"cols\":\"6\",\"sm\":\"5\",\"lg\":\"4\"}},[_c('div',{staticClass:\"d-inline\"},[(_vm.nsinKey)?_c('span',{staticClass:\"font-weight-bold d-block\"},[_vm._t(\"nsin-label\")],2):_vm._e(),_c('span',{staticClass:\"font-weight-bold d-block\"},[_vm._t(\"isin-label\",function(){return [_vm._v(\"ISIN\")]})],2)]),_c('div',{staticClass:\"d-inline ml-2\"},[(_vm.nsinKey)?_c('span',{staticClass:\"d-block\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":_vm.nsinKey}}),_vm._v(\"  \")],1):_vm._e(),_c('span',{staticClass:\"d-block\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.isin\"}})],1)])]),_c('b-col',{staticClass:\"pt-1 pr-1 pr-sm-4 fs-14 text-right d-lg-none\",attrs:{\"cols\":\"5\",\"sm\":\"7\"}},[_c('div',{staticClass:\"font-weight-light\"},[_c('span',{staticClass:\"d-inline\"},[_vm._t(\"indications-text\")],2)])]),_c('b-col',{staticClass:\"pt-1 pr-2 fs-14 text-right d-none d-lg-inline\",attrs:{\"lg\":\"8\"}},[_c('div',{staticClass:\"font-weight-light d-inline-flex\"},[_c('span',{staticClass:\"d-inline\"},[_vm._t(\"indications-text\")],2)])])],1)],1)],1)})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"teaserUnderlyings\" class=\"mb-6\">\n <h2 class=\"fs-18 gun-metal mb-2\"><slot name=\"teaser-title\">Underlyings</slot></h2>\n <template v-if=\"teaserUnderlyings.length === 1 && $screen.xl\">\n <ad-chart-configuration-property :chart-configuration-property=\"chartConfiguration\">\n <ad-underlying-data-property :underlying=\"teaserUnderlyings[0]\" :key=\"teaserUnderlyings[0].isin\">\n <b-card class=\"mb-2 mb-3\">\n <h3 class=\"mb-0\">\n <ad-underlying-preheadline-text\n class=\"fs-12\"\n :udp-preheadlines=\"settingsProperty.udpPreHeadlines\"\n :underlying=\"teaserUnderlyings[0]\"\n ></ad-underlying-preheadline-text>\n <ad-underlying-data-value fieldKey=\"underlying.name\" />\n </h3>\n <b-row class=\"mb-3\">\n <b-col class=\"fs-18 font-weight-bold blue\">\n <ad-underlying-data-value fieldKey=\"underlying.last\" />\n <span class=\"mr-lg-5 pl-1\"><slot name=\"indications-info-block\"></slot></span>\n </b-col>\n <b-col class=\"font-weight-bold\">\n <ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" />\n / \n <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" />\n </b-col>\n </b-row>\n <b-row class=\"fs-14 mb-3\">\n <b-col>\n <b-row>\n <b-col v-if=\"nsinKey\" class=\"font-weight-bold\" cols=\"4\">\n <slot name=\"nsin-label\">Nsin</slot>\n </b-col>\n <b-col v-if=\"nsinKey\" cols=\"8\">\n <ad-underlying-data-value :fieldKey=\"nsinKey\" />\n </b-col>\n <b-col class=\"font-weight-bold\" cols=\"4\">\n <slot name=\"isin-label\">ISIN</slot>\n </b-col>\n <b-col cols=\"8\">\n <ad-underlying-data-value fieldKey=\"underlying.isin\" />\n </b-col>\n </b-row>\n </b-col>\n <b-col>\n <slot name=\"indications-text\"></slot>\n </b-col>\n </b-row>\n <slot name=\"teaser-chart\" />\n </b-card>\n </ad-underlying-data-property>\n </ad-chart-configuration-property>\n </template>\n <template v-else>\n <b-card\n no-body\n class=\"mb-2 mb-lg-3 b-skeleton-m\"\n v-for=\"teaserUnderlying in teaserUnderlyings\"\n :key=\"teaserUnderlying.id\"\n >\n <ad-underlying-data-property :underlying=\"teaserUnderlying\">\n <b-row class=\"px-2 pl-sm-3 pr-sm-0 px-lg-3 py-3\">\n <b-col cols=\"12\" class=\"fs-26 font-weight-normal blue\">\n <ad-underlying-preheadline-text\n class=\"fs-12\"\n :underlying=\"teaserUnderlying\"\n :udp-preheadlines=\"settingsProperty.udpPreHeadlines\"\n ></ad-underlying-preheadline-text>\n <ad-underlying-data-value fieldKey=\"underlying.name\" />\n </b-col>\n <b-col class=\"fs-18 font-weight-bold blue d-lg-none\">\n <ad-underlying-data-value fieldKey=\"underlying.last\" />\n <span class=\"mr-lg-5 pl-1\"><slot name=\"indications-info-block\"></slot></span>\n </b-col>\n <b-col lg=\"6\" class=\"fs-16 font-weight-bold blue d-none d-lg-inline\">\n <ad-underlying-data-value fieldKey=\"underlying.last\" />\n <span class=\"pl-1 label\"><slot name=\"indications-info-block\"></slot></span>\n </b-col>\n <b-col cols=\"12\" class=\"mt-1 mb-2 fs-16 font-weight-bold gun-metal d-lg-none\">\n <div>\n <ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" />\n / \n <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" />\n </div>\n </b-col>\n <b-col lg=\"6\" class=\"pb-3 fs-16 font-weight-bold gun-metal d-none d-lg-inline text-right\">\n <div>\n <ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" />\n / \n <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" />\n </div>\n </b-col>\n <b-col cols=\"6\" sm=\"5\" lg=\"4\" class=\"pt-1 fs-14 font-weight-light d-flex\">\n <div class=\"d-inline\">\n <span class=\"font-weight-bold d-block\" v-if=\"nsinKey\"><slot name=\"nsin-label\"></slot></span>\n <span class=\"font-weight-bold d-block\"><slot name=\"isin-label\">ISIN</slot></span>\n </div>\n <div class=\"d-inline ml-2\">\n <span class=\"d-block\" v-if=\"nsinKey\"> <ad-underlying-data-value :fieldKey=\"nsinKey\" /> </span>\n <span class=\"d-block\">\n <ad-underlying-data-value fieldKey=\"underlying.isin\" />\n </span>\n </div>\n </b-col>\n <b-col cols=\"5\" sm=\"7\" class=\"pt-1 pr-1 pr-sm-4 fs-14 text-right d-lg-none\">\n <div class=\"font-weight-light\">\n <span class=\"d-inline\"><slot name=\"indications-text\"></slot> </span>\n </div>\n </b-col>\n <b-col lg=\"8\" class=\"pt-1 pr-2 fs-14 text-right d-none d-lg-inline\">\n <div class=\"font-weight-light d-inline-flex\">\n <span class=\"d-inline\"><slot name=\"indications-text\"></slot> </span>\n </div>\n </b-col>\n </b-row>\n </ad-underlying-data-property>\n </b-card>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { InstrumentFieldKeys, UnderlyingDetailPageSetting } from '@/src/types/episerver-api';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { ChartConfiguration } from '@/src/types/vue-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\n\n@Component({})\nexport default class AdUnderlyingTeaserDefault extends Vue {\n @Getter('teaserUnderlyings', { namespace: 'underlying' })\n teaserUnderlyings!: UnderlyingModel[];\n @Inject({ default: null })\n nsinKeys!: InstrumentFieldKeys | null;\n @Inject()\n settingsProperty?: UnderlyingDetailPageSetting;\n\n chartConfiguration = new ChartConfiguration();\n\n get nsinKey(): string | null {\n return this.nsinKeys?.underlyingKey || null;\n }\n\n created() {\n this.chartConfiguration.forceDropDownForChartPeriods = true;\n this.chartConfiguration.legendInTwoLineModeAtTablet = true;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7eaf1669\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',_vm._b({staticClass:\"ade-underlying-teaser-price-data b-skeleton-m\"},'b-row',_vm.$attrs,false),[_c('b-col',{staticClass:\"mr-lg-4 d-flex\",attrs:{\"cols\":\"12\"}},[_c('h3',{staticClass:\"mb-0\"},[_c('ad-underlying-preheadline-text',{staticClass:\"fs-12\",attrs:{\"udp-preheadlines\":_vm.settingsProperty.udpPreHeadlines,\"underlying\":_vm.underlying}}),_vm._t(\"teaser-title\")],2),_c('span',{staticClass:\"pl-1 blue\"},[_vm._t(\"info-icon-block\")],2)]),_c('b-col',{staticClass:\"fs-26 gun-metal\",attrs:{\"cols\":\"12\",\"lg\":\"6\"}},[_c('div',[_c('ad-underlying-data-value',{staticClass:\"text-nowrap\",attrs:{\"fieldKey\":\"underlying.last\"}})],1)]),(!_vm.hideChange)?_c('b-col',{staticClass:\"mt-2 mt-sm-3 mt-lg-1\",attrs:{\"sm\":\"6\",\"lg\":\"6\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"6\",\"sm\":\"12\",\"lg\":\"12\"}},[_c('div',{staticClass:\"fs-14 font-weight-bold blue\"},[_vm._t(\"price-change-label\")],2)]),_c('b-col',{staticClass:\"pl-lg-3 pr-sm-0\",attrs:{\"cols\":\"6\",\"sm\":\"12\",\"lg\":\"12\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\"}})],1)],1)],1):_vm._e(),_c('b-col',{staticClass:\"mt-2 mt-sm-3 mt-lg-0 ml-lg-0 fs-18 font-weight-light\",attrs:{\"cols\":\"12\",\"sm\":_vm.hideChange ? 12 : 6,\"lg\":_vm.hideChange ? 12 : 6}},[_vm._t(\"price-indications-label\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-row v-bind=\"$attrs\" class=\"ade-underlying-teaser-price-data b-skeleton-m\">\n <b-col cols=\"12\" class=\"mr-lg-4 d-flex\">\n <h3 class=\"mb-0\">\n <ad-underlying-preheadline-text\n class=\"fs-12\"\n :udp-preheadlines=\"settingsProperty.udpPreHeadlines\"\n :underlying=\"underlying\"\n ></ad-underlying-preheadline-text>\n <slot name=\"teaser-title\"></slot>\n </h3>\n <span class=\"pl-1 blue\"><slot name=\"info-icon-block\"></slot></span>\n </b-col>\n <b-col cols=\"12\" lg=\"6\" class=\"fs-26 gun-metal\"\n ><div>\n <ad-underlying-data-value fieldKey=\"underlying.last\" class=\"text-nowrap\" />\n </div>\n </b-col>\n <b-col sm=\"6\" lg=\"6\" class=\"mt-2 mt-sm-3 mt-lg-1\" v-if=\"!hideChange\">\n <b-row>\n <b-col cols=\"6\" sm=\"12\" lg=\"12\" class=\"\">\n <div class=\"fs-14 font-weight-bold blue\"><slot name=\"price-change-label\"></slot></div>\n </b-col>\n <b-col cols=\"6\" sm=\"12\" lg=\"12\" class=\"pl-lg-3 pr-sm-0\">\n <ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" />\n / <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" />\n </b-col>\n </b-row>\n </b-col>\n <b-col\n cols=\"12\"\n :sm=\"hideChange ? 12 : 6\"\n :lg=\"hideChange ? 12 : 6\"\n class=\"mt-2 mt-sm-3 mt-lg-0 ml-lg-0 fs-18 font-weight-light\"\n >\n <slot class=\"mb-0\" name=\"price-indications-label\"></slot>\n </b-col>\n </b-row>\n</template>\n\n<script lang=\"ts\">\nimport { UnderlyingDetailPageSetting } from '@/src/types/episerver-api';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { Component, Vue, Prop, Inject, InjectReactive } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdUnderlyingTeaserPriceData extends Vue {\n @Inject()\n settingsProperty?: UnderlyingDetailPageSetting;\n @InjectReactive() underlying!: UnderlyingModel | null;\n @Prop({ default: false, type: Boolean }) hideChange!: boolean;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c43e046e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.underlying)?_c('b-row',_vm._b({staticClass:\"ade-underlying-teaser-realtime-data\"},'b-row',_vm.$attrs,false),[_c('b-col',{staticClass:\"fs-16\",attrs:{\"cols\":\"12\",\"md\":\"9\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"6\",\"md\":\"3\",\"xl\":\"12\"}},[_c('b-row',[_c('b-col',{staticClass:\"font-weight-bold blue\",attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_vm._t(\"price-value-label\")],2),_c('b-col',{staticClass:\"font-weight-bold blue\",attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_vm._t(\"price-change-label\")],2),_c('b-col',{staticClass:\"font-weight-bold blue\",attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_vm._t(\"price-close-label\")],2)],1)],1),_c('b-col',{attrs:{\"cols\":\"6\",\"md\":\"9\",\"xl\":\"12\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.last\"}}),_c('span',{staticClass:\"pl-1 blue\"},[_vm._t(\"info-icon-block\")],2)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\"}})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"xl\":\"4\"}},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.close\"}})],1)],1)],1)],1)],1),_c('b-col',{staticClass:\"text-md-right fs-12 font-weight-light pt-3 pt-md-0\",attrs:{\"cols\":\"12\",\"md\":\"3\"}},[_vm._t(\"price-indications-label\")],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-row v-bind=\"$attrs\" class=\"ade-underlying-teaser-realtime-data\" v-if=\"underlying\">\n <b-col cols=\"12\" md=\"9\" class=\"fs-16\">\n <b-row>\n <b-col cols=\"6\" md=\"3\" xl=\"12\">\n <b-row>\n <b-col cols=\"12\" xl=\"4\" class=\"font-weight-bold blue\">\n <slot name=\"price-value-label\"></slot>\n </b-col>\n <b-col cols=\"12\" xl=\"4\" class=\"font-weight-bold blue\">\n <slot name=\"price-change-label\"></slot>\n </b-col>\n <b-col cols=\"12\" xl=\"4\" class=\"font-weight-bold blue\">\n <slot name=\"price-close-label\"></slot>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"6\" md=\"9\" xl=\"12\">\n <b-row>\n <b-col cols=\"12\" xl=\"4\">\n <ad-underlying-data-value fieldKey=\"underlying.last\" /><span class=\"pl-1 blue\"\n ><slot name=\"info-icon-block\"></slot\n ></span>\n </b-col>\n <b-col cols=\"12\" xl=\"4\">\n <ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\" />\n / <ad-underlying-data-value fieldKey=\"underlying.changePercentage\" />\n </b-col>\n <b-col cols=\"12\" xl=\"4\">\n <ad-underlying-data-value fieldKey=\"underlying.close\" />\n </b-col>\n </b-row>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"12\" md=\"3\" class=\"text-md-right fs-12 font-weight-light pt-3 pt-md-0\">\n <slot class=\"mb-0\" name=\"price-indications-label\"></slot>\n </b-col>\n </b-row>\n</template>\n\n<script lang=\"ts\">\nimport { UnderlyingDetailPageSetting } from '@/src/types/episerver-api';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { Component, Vue, Inject, InjectReactive } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdUnderlyingTeaserRealtimeData extends Vue {\n @Inject()\n settingsProperty?: UnderlyingDetailPageSetting;\n @InjectReactive() underlying!: UnderlyingModel | null;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=586d4ecc\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"underlying-top-flop-tabel\"},[_c('ad-instrument-table',_vm._b({attrs:{\"settings\":_vm.settingsProperty,\"instruments\":_vm.items},scopedSlots:_vm._u([{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-underlying-data-value',{attrs:{\"isLinkToDetailPage\":setting.isLinkToDetailPage,\"underlying-item\":instrument,\"field-key\":setting.key}})]}}])},'ad-instrument-table',_vm.$attrs,false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"underlying-top-flop-tabel\">\n <ad-instrument-table :settings=\"settingsProperty\" v-bind=\"$attrs\" :instruments=\"items\">\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-underlying-data-value\n :isLinkToDetailPage=\"setting.isLinkToDetailPage\"\n :underlying-item=\"instrument\"\n :field-key=\"setting.key\"\n />\n </template>\n </ad-instrument-table>\n </div>\n</template>\n<script lang=\"ts\">\nimport { UnderlyingTopFlopTableBlockSetting } from '@/src/types/episerver-api';\nimport { Getter, Action } from 'vuex-class';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { TopFlopTableSearchFilter, TopFlopTableSearchPayload, UnderlyingModel } from '@/src/types/the-q-api';\n\n@Component({})\nexport default class AdUnderlyingTopFlopTable extends Vue {\n @Inject() settingsProperty!: UnderlyingTopFlopTableBlockSetting;\n\n @Getter('topFlopTableSearchResult', { namespace: 'underlying' })\n topFlopTableSearchResult!: (contentId: number) => Array<UnderlyingModel>;\n\n @Action('loadTopFlopTableSearchAsync', { namespace: 'underlying' })\n loadTopFlopTableSearchAsync!: (filter: TopFlopTableSearchPayload) => Promise<void>;\n\n get items() {\n return this.topFlopTableSearchResult(this.settingsProperty.contentId);\n }\n\n async created(): Promise<void> {\n await this.loadTopFlopTableSearchAsync({\n contentId: this.settingsProperty.contentId,\n filter: {\n isins: this.settingsProperty.underlyingIsins,\n topFlop: this.settingsProperty.topFlop,\n pageSize: this.settingsProperty.pageSize,\n } as TopFlopTableSearchFilter,\n } as TopFlopTableSearchPayload);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=54e6bbb1\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('ce-text-image-teaser',{attrs:{\"teasers\":_vm.teasers,\"maxItemCount\":3,\"layout-mode\":_vm.layoutMode,\"showMoreButtonLink\":_vm.settingsProperty.showMoreButtonLink},scopedSlots:_vm._u([{key:\"headline\",fn:function(){return [_c('h2',[_vm._t(\"headline\")],2)]},proxy:true},(!!_vm.settingsProperty.showMoreButtonText)?{key:\"show-more\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.settingsProperty.showMoreButtonText)+\" \")]},proxy:true}:null],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <ce-text-image-teaser\n :teasers=\"teasers\"\n :maxItemCount=\"3\"\n :layout-mode=\"layoutMode\"\n :showMoreButtonLink=\"settingsProperty.showMoreButtonLink\"\n >\n <template #headline>\n <h2><slot name=\"headline\"></slot></h2>\n </template>\n <template v-if=\"!!settingsProperty.showMoreButtonText\" #show-more>\n {{ settingsProperty.showMoreButtonText }}\n </template>\n </ce-text-image-teaser>\n </div>\n</template>\n<script lang=\"ts\">\nimport { ImageData, TextImageTeaserImageBlock, TextImageTeaserVideoBlock } from '@/src/types/ce-component-types';\nimport { DefaultFormat, TextImageTeaserBackground, TextImageTeaserTypes } from '@/src/types/enumerations';\nimport { NewsTeaserContainerSettings } from '@/src/types/episerver-api';\nimport { getImageResizerUrl } from '@/src/utils/url-helper';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class AdNewsTeasers extends Vue {\n @Inject() settingsProperty!: NewsTeaserContainerSettings;\n\n get layoutMode(): TextImageTeaserBackground {\n return this.settingsProperty.background ? TextImageTeaserBackground[this.settingsProperty.background] : null;\n }\n\n get teasers(): Array<TextImageTeaserImageBlock | TextImageTeaserVideoBlock> {\n return this.settingsProperty.teasers.map((teaser) => {\n return teaser.video != null\n ? ({\n type: TextImageTeaserTypes.Video,\n link: teaser.url,\n headlineText: teaser.headline,\n youtubeId: teaser.video.youtubeId,\n previewImageSrc: teaser.video.previewImageSrc,\n copyText: teaser.previewText,\n subText: formatField(teaser.publishedDate, DefaultFormat.BlogDate),\n preHeadlineText: teaser.translatedPageName,\n } as TextImageTeaserVideoBlock)\n : ({\n link: teaser.url,\n headlineText: teaser.headline,\n subText: formatField(teaser.publishedDate, DefaultFormat.BlogDate),\n copyText: teaser.previewText,\n preHeadlineText: teaser.translatedPageName,\n image: {\n src: getImageResizerUrl(teaser.imageUrlWithSizeParameter, 316, 185),\n sources: [\n { Media: '(min-width:650px)', SrcSet: getImageResizerUrl(teaser.imageUrlWithSizeParameter, 1600, 540) },\n { Media: '(min-width:465py)', SrcSet: getImageResizerUrl(teaser.imageUrlWithSizeParameter, 500, 500) },\n ],\n } as ImageData,\n type: TextImageTeaserTypes.Image,\n } as TextImageTeaserImageBlock);\n });\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0eed9be0\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.newTeaserType === _vm.newTeaserTypeEnum.ImageTop)?_c('div',{staticClass:\"d-flex flex-column col-12 col-md-6 mb-5 mb-md-0\"},[_c('a',{staticClass:\"aspect-ratio-16-9 d-block\",attrs:{\"href\":_vm.pageUrl}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":_vm.getImageUrl(631, 370)}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":_vm.getImageUrl(316, 185)}}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.getImageUrl(500, 500)}})])]),_c('div',{staticClass:\"ce-short-news-teaser__text mt-3 mt-md-5\"},[_c('div',{staticClass:\"ce-short-news-teaser__date fs-16\"},[_vm._t(\"new-teaser-date\",function(){return [_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey)))]})],2),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-10\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.pageUrl}},[_vm._t(\"news-teaser-headline\",function(){return [_vm._v(\"[news-teaser-headline]\")]})],2)])])])]),_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('div',{staticClass:\"ce-short-news-teaser__author fs-16\"},[_vm._t(\"news-teaser-author\")],2),_c('div',{staticClass:\"ce-short-news-teaser__likes fs-14 ml-3 d-flex align-items-center\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId}})],1)])]):(_vm.newTeaserType === _vm.newTeaserTypeEnum.ImageBottom)?_c('div',{staticClass:\"d-flex flex-column-reverse flex-md-column col-12 col-md-5 mb-5 mb-md-0\"},[_c('div',{staticClass:\"ce-short-news-teaser__container d-flex flex-column mb-md-5\"},[_c('div',{staticClass:\"ce-short-news-teaser__text fs-26 mt-3 mt-md-0\"},[_c('div',{staticClass:\"ce-short-news-teaser__date fs-16\"},[_vm._t(\"new-teaser-date\",function(){return [_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey)))]})],2),_c('div',[_c('h3',[_c('a',{attrs:{\"href\":_vm.pageUrl}},[_vm._t(\"news-teaser-headline\",function(){return [_vm._v(\"[news-teaser-headline]\")]})],2)])])]),_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('div',{staticClass:\"ce-short-news-teaser__author fs-16\"},[_vm._t(\"news-teaser-author\")],2),_c('div',{staticClass:\"ce-short-news-teaser__likes fs-14 ml-3 d-flex align-items-center\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId}})],1)])]),_c('a',{staticClass:\"aspect-ratio-16-9 d-block\",attrs:{\"href\":_vm.pageUrl}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":_vm.getImageUrl(549, 306)}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":_vm.getImageUrl(275, 153)}}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.getImageUrl(500, 500)}})])])]):(_vm.newTeaserType === _vm.newTeaserTypeEnum.ImageRight)?_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-lg-7\"},[_c('a',{staticClass:\"aspect-ratio-16-9 d-block\",attrs:{\"href\":_vm.pageUrl}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":_vm.getImageUrl(444, 247)}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":_vm.getImageUrl(444, 247)}}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.getImageUrl(500, 500)}})])])]),_c('div',{staticClass:\"d-flex flex-column pl-lg-3 col-12 col-lg-5\"},[_c('div',{staticClass:\"ce-short-news-teaser__text mt-3 mt-lg-0\"},[_c('div',{staticClass:\"ce-short-news-teaser__date fs-16\"},[_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey)))]),_c('div',[_c('h3',[_c('a',{attrs:{\"href\":_vm.pageUrl}},[_vm._t(\"news-teaser-headline\",function(){return [_vm._v(\"[news-teaser-headline]\")]})],2)])])]),_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('div',{staticClass:\"ce-short-news-teaser__author fs-16\"},[_vm._t(\"news-teaser-author\")],2),_c('div',{staticClass:\"ce-short-news-teaser__likes fs-14 ml-3 d-flex align-items-center\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId}})],1)])])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"newTeaserType === newTeaserTypeEnum.ImageTop\" class=\"d-flex flex-column col-12 col-md-6 mb-5 mb-md-0\">\n <a :href=\"pageUrl\" class=\"aspect-ratio-16-9 d-block\">\n <picture>\n <source media=\"(min-width:650px)\" :srcset=\"getImageUrl(631, 370)\" />\n <source media=\"(min-width:465px)\" :srcset=\"getImageUrl(316, 185)\" />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"getImageUrl(500, 500)\" />\n </picture>\n </a>\n <div class=\"ce-short-news-teaser__text mt-3 mt-md-5\">\n <div class=\"ce-short-news-teaser__date fs-16\"\n ><slot name=\"new-teaser-date\">{{ settingsProperty.publishedDate | formatField(dateFormatKey) }}</slot></div\n >\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h3>\n <a :href=\"pageUrl\">\n <slot name=\"news-teaser-headline\">[news-teaser-headline]</slot>\n </a>\n </h3>\n </div>\n </div>\n </div>\n <div class=\"d-flex flex-row align-items-center\">\n <div class=\"ce-short-news-teaser__author fs-16\"><slot name=\"news-teaser-author\"></slot></div>\n <div class=\"ce-short-news-teaser__likes fs-14 ml-3 d-flex align-items-center\">\n <ad-like-count :content-id=\"settingsProperty.contentId\" />\n </div>\n </div>\n </div>\n <div\n v-else-if=\"newTeaserType === newTeaserTypeEnum.ImageBottom\"\n class=\"d-flex flex-column-reverse flex-md-column col-12 col-md-5 mb-5 mb-md-0\"\n >\n <div class=\"ce-short-news-teaser__container d-flex flex-column mb-md-5\">\n <div class=\"ce-short-news-teaser__text fs-26 mt-3 mt-md-0\">\n <div class=\"ce-short-news-teaser__date fs-16\"\n ><slot name=\"new-teaser-date\">{{ settingsProperty.publishedDate | formatField(dateFormatKey) }}</slot></div\n >\n <div>\n <h3\n ><a :href=\"pageUrl\"><slot name=\"news-teaser-headline\">[news-teaser-headline]</slot></a></h3\n >\n </div>\n </div>\n <div class=\"d-flex flex-row align-items-center\">\n <div class=\"ce-short-news-teaser__author fs-16\"><slot name=\"news-teaser-author\"></slot></div>\n <div class=\"ce-short-news-teaser__likes fs-14 ml-3 d-flex align-items-center\">\n <ad-like-count :content-id=\"settingsProperty.contentId\" />\n </div>\n </div>\n </div>\n <a :href=\"pageUrl\" class=\"aspect-ratio-16-9 d-block\">\n <picture>\n <source media=\"(min-width:650px)\" :srcset=\"getImageUrl(549, 306)\" />\n <source media=\"(min-width:465px)\" :srcset=\"getImageUrl(275, 153)\" />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"getImageUrl(500, 500)\" />\n </picture>\n </a>\n </div>\n <div v-else-if=\"newTeaserType === newTeaserTypeEnum.ImageRight\" class=\"col-12\">\n <div class=\"row\">\n <div class=\"col-12 col-lg-7\">\n <a :href=\"pageUrl\" class=\"aspect-ratio-16-9 d-block\">\n <picture>\n <source media=\"(min-width:650px)\" :srcset=\"getImageUrl(444, 247)\" />\n <source media=\"(min-width:465px)\" :srcset=\"getImageUrl(444, 247)\" />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"getImageUrl(500, 500)\" />\n </picture>\n </a>\n </div>\n <div class=\"d-flex flex-column pl-lg-3 col-12 col-lg-5\">\n <div class=\"ce-short-news-teaser__text mt-3 mt-lg-0\">\n <div class=\"ce-short-news-teaser__date fs-16\">{{\n settingsProperty.publishedDate | formatField(dateFormatKey)\n }}</div>\n <div>\n <h3>\n <a :href=\"pageUrl\"><slot name=\"news-teaser-headline\">[news-teaser-headline]</slot></a>\n </h3>\n </div>\n </div>\n <div class=\"d-flex flex-row align-items-center\">\n <div class=\"ce-short-news-teaser__author fs-16\"><slot name=\"news-teaser-author\"></slot></div>\n <div class=\"ce-short-news-teaser__likes fs-14 ml-3 d-flex align-items-center\">\n <ad-like-count :content-id=\"settingsProperty.contentId\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { DefaultFormat, NewTeaserType } from '@/src/types/enumerations';\nimport { BlogPageSettings } from '@/src/types/episerver-api';\nimport { getImageResizerUrl } from '@/src/utils/url-helper';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Inject, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeAdNewsTeaser extends Vue {\n @Prop({ required: true }) newTeaserType!: NewTeaserType;\n @Inject() settingsProperty!: BlogPageSettings;\n\n private newTeaserTypeEnum = NewTeaserType;\n\n get pageUrl() {\n return this.settingsProperty?.url;\n }\n\n private getImageUrl(width: number, height: number) {\n if (this.settingsProperty.imageUrlWithSizeParameter)\n return getImageResizerUrl(this.settingsProperty?.imageUrlWithSizeParameter, width, height);\n\n return;\n }\n\n get dateFormatKey(): string {\n return DefaultFormat.BlogDate;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-short-news-teaser {\n &__item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px dashed $peacock-blue;\n padding: map-get($spacers, 2);\n padding-left: 0;\n color: $marine-blue;\n }\n &__date {\n color: $peacock-blue;\n }\n &__icon {\n transform: rotate(270deg);\n color: $clarinet;\n }\n\n .btn {\n margin-top: map-get($spacers, 3);\n }\n\n &__text {\n color: $marine-blue;\n }\n\n &__author {\n color: $gunmetal;\n }\n\n &__container {\n @include media-breakpoint-up('md') {\n padding-left: map-get($spacers, 5);\n }\n }\n\n &__likes {\n color: $peacock-blue;\n\n svg {\n color: $clarinet;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1203e456\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1203e456&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-6\"},[(_vm.$slots['news-with-short-news-teaser-headline'])?_c('h2',[_vm._t(\"news-with-short-news-teaser-headline\")],2):_vm._e(),_c('div',{staticClass:\"row justify-content-between mb-0 mb-md-5 pb-md-3\"},[_vm._t(\"news-with-short-news-teaser-image-top\"),_vm._t(\"news-with-short-news-teaser-image-bottom\")],2),_c('div',{staticClass:\"row justify-content-md-between\"},[_c('div',{staticClass:\"d-flex flex-column flex-lg-row col-12 col-md-7 mb-5 mb-md-0\"},[_c('div',{staticClass:\"row w-100\"},[_vm._t(\"news-with-short-news-teaser-image-right\"),(_vm.globalPageOverviewUrl)?_c('div',{staticClass:\"col-12\"},[_c('a',{staticClass:\"btn btn-secondary mt-5 mb-3 mb-md-0 w-100 w-md-auto\",attrs:{\"href\":_vm.globalPageOverviewUrl}},[_vm._t(\"news-with-short-news-teaser-more-button-text\")],2)]):_vm._e()],2)]),(_vm.$slots['news-with-short-news-teaser-short-news-teaser'])?_c('div',{staticClass:\"col-12 col-md-4\"},[_vm._t(\"news-with-short-news-teaser-short-news-teaser\")],2):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mb-6\">\n <h2 v-if=\"$slots['news-with-short-news-teaser-headline']\">\n <slot name=\"news-with-short-news-teaser-headline\"></slot>\n </h2>\n <div class=\"row justify-content-between mb-0 mb-md-5 pb-md-3\">\n <slot name=\"news-with-short-news-teaser-image-top\"></slot>\n <slot name=\"news-with-short-news-teaser-image-bottom\"></slot>\n </div>\n <div class=\"row justify-content-md-between\">\n <div class=\"d-flex flex-column flex-lg-row col-12 col-md-7 mb-5 mb-md-0\">\n <div class=\"row w-100\">\n <slot name=\"news-with-short-news-teaser-image-right\"></slot>\n <div v-if=\"globalPageOverviewUrl\" class=\"col-12\">\n <a :href=\"globalPageOverviewUrl\" class=\"btn btn-secondary mt-5 mb-3 mb-md-0 w-100 w-md-auto\">\n <slot name=\"news-with-short-news-teaser-more-button-text\"></slot>\n </a>\n </div>\n </div>\n </div>\n <div v-if=\"$slots['news-with-short-news-teaser-short-news-teaser']\" class=\"col-12 col-md-4\">\n <slot name=\"news-with-short-news-teaser-short-news-teaser\"></slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeAdNewsShortNewsTeaser extends Vue {\n @Prop()\n globalPageOverviewUrl!: string | null;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0569483c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{staticClass:\"ce-ad-short-news-item-teaser__item\",attrs:{\"href\":_vm.settingsProperty.linkToShortNewsDetailPage + '#' + _vm.contentId}},[_c('div',[_c('div',{staticClass:\"ce-ad-short-news-item-teaser__date fs-16\"},[_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.publicationDate,_vm.dateFormat)))]),_c('div',[_vm._t(\"headline\")],2)]),_c('ad-icon-chevron',{staticClass:\"ce-ad-short-news-item-teaser__icon\",attrs:{\"height\":\"0.89em\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <a :href=\"settingsProperty.linkToShortNewsDetailPage + '#' + contentId\" class=\"ce-ad-short-news-item-teaser__item\">\n <div>\n <div class=\"ce-ad-short-news-item-teaser__date fs-16\">{{ publicationDate | formatField(dateFormat) }}</div>\n <div><slot name=\"headline\"></slot></div>\n </div>\n <ad-icon-chevron height=\"0.89em\" class=\"ce-ad-short-news-item-teaser__icon\"></ad-icon-chevron>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport { DefaultFormat } from '@/src/types/enumerations';\nimport { ShortNewsTeaserSettings } from '@/src/types/episerver-api';\nimport { Component, Vue, Prop, Inject } from 'vue-property-decorator';\n\n@Component\nexport default class CeAdShortNewsItemTeaser extends Vue {\n @Prop({ type: String }) contentId!: string;\n @Prop({ type: String }) publicationDateTimestamp!: string;\n\n dateFormat = DefaultFormat.Date;\n\n get publicationDate(): Date {\n return new Date(Number.parseInt(this.publicationDateTimestamp));\n }\n\n @Inject() settingsProperty!: ShortNewsTeaserSettings;\n}\n</script>\n\n<style lang=\"scss\">\n.ce-ad-short-news-item-teaser {\n &__item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px dashed $peacock-blue;\n padding: map-get($spacers, 2);\n padding-left: 0;\n color: $marine-blue;\n }\n &__date {\n color: $peacock-blue;\n }\n &__icon {\n transform: rotate(270deg);\n color: $clarinet;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=bf52fea8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=bf52fea8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"px-md-0 py-4 ce-ad-short-news-item__news-tile\"},[_c('div',{staticClass:\"ce-ad-short-news-item__date fs-18\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.publicationDate,_vm.dateFormat))+\" \")]),_c('h3',[_c('a',{attrs:{\"href\":\"#\",\"id\":this.shortNewsId}},[_vm._t(\"headline\")],2)]),_c('div',{staticClass:\"ce-ad-short-news-item__text\"},[_vm._t(\"text\")],2),_c('div',{staticClass:\"ce-ad-short-news-item__likes d-flex align-items-center pt-2\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.parsedId}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"px-md-0 py-4 ce-ad-short-news-item__news-tile\">\n <div class=\"ce-ad-short-news-item__date fs-18\">\n {{ publicationDate | formatField(dateFormat) }}\n </div>\n <h3>\n <a href=\"#\" :id=\"this.shortNewsId\"><slot name=\"headline\"></slot></a>\n </h3>\n <div class=\"ce-ad-short-news-item__text\">\n <slot name=\"text\"></slot>\n </div>\n <div class=\"ce-ad-short-news-item__likes d-flex align-items-center pt-2\">\n <ad-like-count :content-id=\"parsedId\" />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { DefaultFormat } from '@/src/types/enumerations';\nimport { jumpToAnchor } from '@/src/utils/scroll-helpers';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeAdShortNewsItem extends Vue {\n @Prop({ type: String }) shortNewsId!: string;\n @Prop({ type: String }) publicationDateTimestamp!: string;\n\n dateFormat = DefaultFormat.BlogDate;\n\n get parsedId(): number {\n return this.shortNewsId !== undefined ? Number.parseInt(this.shortNewsId) : 0;\n }\n\n get publicationDate(): Date {\n return new Date(Number.parseInt(this.publicationDateTimestamp));\n }\n\n created() {\n this.$nextTick(jumpToAnchor);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-ad-short-news-item {\n &__news-tile {\n border-top: 1px dashed $peacock-blue;\n }\n\n &__date {\n color: $peacock-blue;\n }\n\n &__header {\n color: $marine-blue;\n }\n\n &__text {\n color: $gunmetal;\n }\n\n &__likes {\n color: $peacock-blue;\n svg {\n color: $clarinet;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=99ccf6c4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=99ccf6c4&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-6 ce-short-news-teaser\"},[_vm._t(\"short-news-headline\"),_vm._t(\"newslist\"),(_vm.settingsProperty.showMoreButton)?_c('a',{staticClass:\"btn btn-secondary w-100 w-md-auto\",attrs:{\"href\":_vm.settingsProperty.linkToShortNewsDetailPage}},[_vm._t(\"showmore\",function(){return [_vm._v(\"Show more\")]})],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mb-6 ce-short-news-teaser\">\n <slot name=\"short-news-headline\"></slot>\n <slot name=\"newslist\"></slot>\n <a\n :href=\"settingsProperty.linkToShortNewsDetailPage\"\n class=\"btn btn-secondary w-100 w-md-auto\"\n v-if=\"settingsProperty.showMoreButton\"\n >\n <slot name=\"showmore\">Show more</slot>\n </a>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { ShortNewsTeaserSettings } from '@/src/types/episerver-api';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Inject } from 'vue-property-decorator';\n\n@Component\nexport default class CeAdShortNewsTeaserContainer extends Vue {\n @Inject() settingsProperty!: ShortNewsTeaserSettings;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3db937a5\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-container container-fluid mb-7 mb-md-8\"},[_c('h2',[_vm._v(\"Markets\")]),_c('div',{staticClass:\"row mb-0 mb-md-5\"},[_vm._m(0),_c('div',{staticClass:\"d-flex flex-column justify-content-md-center col-12 col-md-4 mb-5 mb-md-0\"},[_c('div',{staticClass:\"w-100 ce-news-teaser-markets__small-header\"},[_vm._v(\"Markt vor 9\")]),_vm._m(1),_c('div',{staticClass:\"w-100 mb-3\"},[_vm._v(\" Die Korrekturversuche der letzten Woche haben die Bullen im Dax relativ gut kontern können. Wird man sich diese Woche wieder gen Norden orientieren? \")]),_c('div',{staticClass:\"w-100 ce-news-teaser-markets__date\"},[_vm._v(\" 05.11.2019 \"),_c('span',{staticClass:\"ce-news-teaser-markets__like d-md-none\"},[_c('ad-icon-like'),_vm._v(\" 12\")],1)])])]),_c('div',{staticClass:\"row mb-0 mb-md-5 pt-md-5 d-flex justify-content-md-between mb-0 mb-md-5\"},[_c('div',{staticClass:\"d-flex col-12 col-md-6 flex-column-reverse flex-md-column\"},[_c('div',{staticClass:\"row p-0 d-flex justify-content-md-center mt-3 mt-md-0\"},[_c('div',{staticClass:\"d-flex col flex-column justify-content-md-center col-12 col-md-8\"},[_c('div',{staticClass:\"w-100 ce-news-teaser-markets__small-header\"},[_vm._v(\"Fokus Wallstreet\")]),_vm._m(2),_c('div',{staticClass:\"w-100 ce-news-teaser-markets__date\"},[_vm._v(\" 05.11.2019 | 03:03 \"),_c('span',{staticClass:\"ce-news-teaser-markets__like d-md-none\"},[_c('ad-icon-like'),_vm._v(\" 12\")],1)])])]),_vm._m(3)]),_c('div',{staticClass:\"col-12 col-md-5 mt-5 mt-md-0 d-flex flex-column justify-content-start\"},[_c('div',{staticClass:\"row\"},[_vm._m(4),_c('div',{staticClass:\"d-flex flex-column col-12 col-md-8 mt-3 mt-md-5\"},[_c('div',{staticClass:\"w-100 ce-news-teaser-markets__small-header\"},[_vm._v(\"Weekly Market Forecast\")]),_vm._m(5),_c('div',{staticClass:\"w-100 ce-news-teaser-markets__date\"},[_vm._v(\"05.11.2019 | 02:53 \"),_c('span',{staticClass:\"ce-news-teaser-markets__like d-md-none\"},[_c('ad-icon-like'),_vm._v(\" 12\")],1)])])])])]),_vm._m(6)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col-12 col-md-7 mb-3 mb-md-0\"},[_c('a',{staticClass:\"aspect-ratio-16-9 d-block\",attrs:{\"href\":\"#\"}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":\"https://picsum.photos/seed/12/740/414\"}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":\"https://picsum.photos/seed/12/316/185\"}}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":\"https://picsum.photos/seed/12/500/500\"}})])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Robuster Aufwärtstrend im Dax\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Caterpillar – Neues Jahreshoch! Und jetzt?\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col-12 p-0 mt-0 mt-md-5\"},[_c('a',{staticClass:\"aspect-ratio-16-9 d-block\",attrs:{\"href\":\"#\"}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":\"https://picsum.photos/seed/1/631/370\"}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":\"https://picsum.photos/seed/1/316/185\"}}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":\"https://picsum.photos/seed/1/500/500\"}})])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col-12 mb-0 mb-md-0\"},[_c('a',{staticClass:\"aspect-ratio-16-9 w-100 d-block\",attrs:{\"href\":\"#\"}},[_c('picture',[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":\"https://picsum.photos/seed/14/520/292\"}}),_c('source',{attrs:{\"media\":\"(min-width:465px)\",\"srcset\":\"https://picsum.photos/seed/14/316/185\"}}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":\"https://picsum.photos/seed/1/500/500\"}})])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":\"#\"}},[_vm._v(\"Lorem ipsum dolor sit amet consectetuer!\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row pt-0 mt-5 mt-md-0 pt-md-5\"},[_c('div',{staticClass:\"col-12\"},[_c('a',{staticClass:\"btn btn-secondary w-100 w-md-auto\",attrs:{\"href\":\"#\"}},[_vm._v(\"Show more\")])])])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div class=\"content-container container-fluid mb-7 mb-md-8\">\n <h2>Markets</h2>\n <div class=\"row mb-0 mb-md-5\">\n <div class=\"col-12 col-md-7 mb-3 mb-md-0\">\n <a class=\"aspect-ratio-16-9 d-block\" href=\"#\">\n <picture>\n <source media=\"(min-width:650px)\" srcset=\"https://picsum.photos/seed/12/740/414\" />\n <source media=\"(min-width:465px)\" srcset=\"https://picsum.photos/seed/12/316/185\" />\n <img class=\"aspect-ratio-filler zoom-animated-image\" src=\"https://picsum.photos/seed/12/500/500\" />\n </picture>\n </a>\n </div>\n <div class=\"d-flex flex-column justify-content-md-center col-12 col-md-4 mb-5 mb-md-0\"\n ><div class=\"w-100 ce-news-teaser-markets__small-header\">Markt vor 9</div>\n <div class=\"w-100\">\n <h3>\n <a href=\"#\">Robuster Aufwärtstrend im Dax</a>\n </h3>\n </div>\n <div class=\"w-100 mb-3\">\n Die Korrekturversuche der letzten Woche haben die Bullen im Dax relativ gut kontern können. Wird man sich\n diese Woche wieder gen Norden orientieren?\n </div>\n <div class=\"w-100 ce-news-teaser-markets__date\">\n 05.11.2019 <span class=\"ce-news-teaser-markets__like d-md-none\"><ad-icon-like /> 12</span>\n </div>\n </div>\n </div>\n <div class=\"row mb-0 mb-md-5 pt-md-5 d-flex justify-content-md-between mb-0 mb-md-5\">\n <div class=\"d-flex col-12 col-md-6 flex-column-reverse flex-md-column\">\n <div class=\"row p-0 d-flex justify-content-md-center mt-3 mt-md-0\">\n <div class=\"d-flex col flex-column justify-content-md-center col-12 col-md-8\"\n ><div class=\"w-100 ce-news-teaser-markets__small-header\">Fokus Wallstreet</div>\n <div class=\"w-100\">\n <h3>\n <a href=\"#\">Caterpillar – Neues Jahreshoch! Und jetzt?</a>\n </h3>\n </div>\n <div class=\"w-100 ce-news-teaser-markets__date\">\n 05.11.2019 | 03:03 <span class=\"ce-news-teaser-markets__like d-md-none\"><ad-icon-like /> 12</span>\n </div>\n </div>\n </div>\n <div class=\"col-12 p-0 mt-0 mt-md-5\">\n <a href=\"#\" class=\"aspect-ratio-16-9 d-block\">\n <picture>\n <source media=\"(min-width:650px)\" srcset=\"https://picsum.photos/seed/1/631/370\" />\n <source media=\"(min-width:465px)\" srcset=\"https://picsum.photos/seed/1/316/185\" />\n <img class=\"aspect-ratio-filler zoom-animated-image\" src=\"https://picsum.photos/seed/1/500/500\" />\n </picture>\n </a>\n </div>\n </div>\n <div class=\"col-12 col-md-5 mt-5 mt-md-0 d-flex flex-column justify-content-start\">\n <div class=\"row\">\n <div class=\"col-12 mb-0 mb-md-0\">\n <a href=\"#\" class=\"aspect-ratio-16-9 w-100 d-block\">\n <picture>\n <source media=\"(min-width:650px)\" srcset=\"https://picsum.photos/seed/14/520/292\" />\n <source media=\"(min-width:465px)\" srcset=\"https://picsum.photos/seed/14/316/185\" />\n <img class=\"aspect-ratio-filler zoom-animated-image\" src=\"https://picsum.photos/seed/1/500/500\" />\n </picture>\n </a>\n </div>\n <div class=\"d-flex flex-column col-12 col-md-8 mt-3 mt-md-5\"\n ><div class=\"w-100 ce-news-teaser-markets__small-header\">Weekly Market Forecast</div>\n <div class=\"w-100\">\n <h3>\n <a href=\"#\">Lorem ipsum dolor sit amet consectetuer!</a>\n </h3>\n </div>\n <div class=\"w-100 ce-news-teaser-markets__date\"\n >05.11.2019 | 02:53 <span class=\"ce-news-teaser-markets__like d-md-none\"><ad-icon-like /> 12</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row pt-0 mt-5 mt-md-0 pt-md-5\">\n <div class=\"col-12\">\n <a href=\"#\" class=\"btn btn-secondary w-100 w-md-auto\">Show more</a>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\n\n@Component\nexport default class CeNewsTeaserMarkets extends Vue {}\n</script>\n\n<style lang=\"scss\">\n.ce-news-teaser-markets {\n &__small-header {\n color: $peacock-blue;\n font-size: rem(16);\n }\n\n &__date {\n font-size: rem(16);\n }\n\n &__like {\n padding-left: map-get($spacers, 2);\n color: $peacock-blue;\n font-weight: bold;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3804efd4\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3804efd4&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-container container-fluid mb-7 mb-md-8\"},[_c('h2',[_vm._t(\"headline\")],2),(_vm.items[0])?_c('ad-index',{attrs:{\"index\":0}},[_c('ce-node-renderer',{attrs:{\"node\":_vm.items[0]}})],1):_vm._e(),_c('div',{staticClass:\"row mb-0 mb-md-5 pt-md-5 d-flex justify-content-md-between mb-0 mb-md-5\"},[(_vm.items[1])?_c('ad-index',{attrs:{\"index\":1}},[_c('ce-node-renderer',{attrs:{\"node\":_vm.items[1]}})],1):_vm._e(),(_vm.items[2])?_c('ad-index',{attrs:{\"index\":2}},[_c('ce-node-renderer',{attrs:{\"node\":_vm.items[2]}})],1):_vm._e()],1),(_vm.showMoreUrl)?_c('div',{staticClass:\"row pt-0 mt-5 mt-md-0 pt-md-5\"},[_c('div',{staticClass:\"col-12\"},[_c('a',{staticClass:\"btn btn-secondary w-100 w-md-auto\",attrs:{\"href\":_vm.showMoreUrl}},[_vm._t(\"showmore\",function(){return [_vm._v(\"Show more\")]})],2)])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"content-container container-fluid mb-7 mb-md-8\">\n <h2><slot name=\"headline\"></slot></h2>\n <ad-index :index=\"0\" v-if=\"items[0]\">\n <ce-node-renderer :node=\"items[0]\" />\n </ad-index>\n <div class=\"row mb-0 mb-md-5 pt-md-5 d-flex justify-content-md-between mb-0 mb-md-5\">\n <ad-index :index=\"1\" v-if=\"items[1]\">\n <ce-node-renderer :node=\"items[1]\" />\n </ad-index>\n <ad-index :index=\"2\" v-if=\"items[2]\">\n <ce-node-renderer :node=\"items[2]\" />\n </ad-index>\n </div>\n <div class=\"row pt-0 mt-5 mt-md-0 pt-md-5\" v-if=\"showMoreUrl\">\n <div class=\"col-12\">\n <a :href=\"showMoreUrl\" class=\"btn btn-secondary w-100 w-md-auto\"><slot name=\"showmore\">Show more</slot></a>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { filterVNodes } from '@src/utils/vnodes-filter';\nimport { VNode } from 'vue';\n\n@Component\nexport default class CeAdNewsTeaserMarketsContainer extends Vue {\n @Prop() showMoreUrl: string | undefined;\n\n get items(): VNode[] {\n return filterVNodes(this.$slots.items);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-news-teaser-markets {\n &__small-header {\n color: $peacock-blue;\n font-size: rem(16);\n }\n\n &__date {\n font-size: rem(16);\n }\n\n &__like {\n padding-left: map-get($spacers, 2);\n color: $peacock-blue;\n font-weight: bold;\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1f3770bf\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1f3770bf&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.index === 0)?_c('div',{staticClass:\"row mb-0 mb-md-5\"},[_c('div',{staticClass:\"col-12 col-md-7 mb-3 mb-md-0\"},[(_vm.$slots['picture'])?_c('a',{staticClass:\"w-100 d-block aspect-ratio-16-9\",attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"picture\")],2):_vm._e(),(_vm.$slots['video'])?_c('a',{staticClass:\"w-100\",attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"video\")],2):_vm._e()]),_c('div',{staticClass:\"d-flex flex-column justify-content-md-center col-12 col-md-4 mb-5 mb-md-0\"},[_c('div',{staticClass:\"w-100 ce-news-teaser-markets__small-header\"},[_vm._t(\"page-type\")],2),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"headline\")],2)])]),_c('div',{staticClass:\"w-100 mb-3\"},[_vm._t(\"preview-text\")],2),_c('div',{staticClass:\"w-100 ce-news-teaser-markets__date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey))+\" \"),_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId}})],1)])]):(_vm.index === 1)?_c('div',{staticClass:\"d-flex col-12 col-md-6 flex-column-reverse flex-md-column\"},[_c('div',{staticClass:\"row p-0 d-flex justify-content-md-center mt-3 mt-md-0\"},[_c('div',{staticClass:\"d-flex col flex-column justify-content-md-center col-12 col-md-8\"},[_c('div',{staticClass:\"w-100 ce-news-teaser-markets__small-header\"},[_vm._t(\"page-type\")],2),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"headline\")],2)])]),_c('div',{staticClass:\"w-100 ce-news-teaser-markets__date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey))+\" \"),_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId}})],1)])]),_c('div',{staticClass:\"col-12 p-0 mt-0 mt-md-5\"},[(_vm.$slots['picture'])?_c('a',{staticClass:\"w-100 d-block aspect-ratio-16-9\",attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"picture\")],2):_vm._e(),(_vm.$slots['video'])?_c('a',{staticClass:\"w-100\",attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"video\")],2):_vm._e()])]):(_vm.index === 2)?_c('div',{staticClass:\"col-12 col-md-5 mt-5 mt-md-0 d-flex flex-column justify-content-start\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 mb-0 mb-md-0\"},[(_vm.$slots['picture'])?_c('a',{staticClass:\"w-100 d-block aspect-ratio-16-9\",attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"picture\")],2):_vm._e(),(_vm.$slots['video'])?_c('a',{staticClass:\"w-100\",attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"video\")],2):_vm._e()]),_c('div',{staticClass:\"d-flex flex-column col-12 col-md-8 mt-3 mt-md-5\"},[_c('div',{staticClass:\"w-100 ce-news-teaser-markets__small-header\"},[_vm._t(\"page-type\")],2),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.settingsProperty.url}},[_vm._t(\"headline\")],2)])]),_c('div',{staticClass:\"w-100 ce-news-teaser-markets__date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.settingsProperty.publishedDate,_vm.dateFormatKey))+\" \"),_c('ad-like-count',{attrs:{\"content-id\":_vm.settingsProperty.contentId}})],1)])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <!-- First tile -->\n <div class=\"row mb-0 mb-md-5\" v-if=\"index === 0\">\n <div class=\"col-12 col-md-7 mb-3 mb-md-0\">\n <a :href=\"settingsProperty.url\" v-if=\"$slots['picture']\" class=\"w-100 d-block aspect-ratio-16-9\">\n <slot name=\"picture\"></slot>\n </a>\n <a :href=\"settingsProperty.url\" v-if=\"$slots['video']\" class=\"w-100\">\n <slot name=\"video\"></slot>\n </a>\n </div>\n <div class=\"d-flex flex-column justify-content-md-center col-12 col-md-4 mb-5 mb-md-0\"\n ><div class=\"w-100 ce-news-teaser-markets__small-header\"><slot name=\"page-type\"></slot></div>\n <div class=\"w-100\">\n <h3>\n <a :href=\"settingsProperty.url\"><slot name=\"headline\"></slot></a>\n </h3>\n </div>\n <div class=\"w-100 mb-3\">\n <slot name=\"preview-text\"></slot>\n </div>\n <div class=\"w-100 ce-news-teaser-markets__date\">\n {{ settingsProperty.publishedDate | formatField(dateFormatKey) }}\n <ad-like-count :content-id=\"settingsProperty.contentId\" />\n </div>\n </div>\n </div>\n <!-- Second tile -->\n <div class=\"d-flex col-12 col-md-6 flex-column-reverse flex-md-column\" v-else-if=\"index === 1\">\n <div class=\"row p-0 d-flex justify-content-md-center mt-3 mt-md-0\">\n <div class=\"d-flex col flex-column justify-content-md-center col-12 col-md-8\"\n ><div class=\"w-100 ce-news-teaser-markets__small-header\"><slot name=\"page-type\"></slot></div>\n <div class=\"w-100\">\n <h3>\n <a :href=\"settingsProperty.url\"><slot name=\"headline\"></slot></a>\n </h3>\n </div>\n <div class=\"w-100 ce-news-teaser-markets__date\">\n {{ settingsProperty.publishedDate | formatField(dateFormatKey) }}\n <ad-like-count :content-id=\"settingsProperty.contentId\" />\n </div>\n </div>\n </div>\n <div class=\"col-12 p-0 mt-0 mt-md-5\">\n <a :href=\"settingsProperty.url\" v-if=\"$slots['picture']\" class=\"w-100 d-block aspect-ratio-16-9\">\n <slot name=\"picture\"></slot>\n </a>\n <a :href=\"settingsProperty.url\" v-if=\"$slots['video']\" class=\"w-100\">\n <slot name=\"video\"></slot>\n </a>\n </div>\n </div>\n <!-- Third tile -->\n <div class=\"col-12 col-md-5 mt-5 mt-md-0 d-flex flex-column justify-content-start\" v-else-if=\"index === 2\">\n <div class=\"row\">\n <div class=\"col-12 mb-0 mb-md-0\">\n <a :href=\"settingsProperty.url\" v-if=\"$slots['picture']\" class=\"w-100 d-block aspect-ratio-16-9\">\n <slot name=\"picture\"></slot>\n </a>\n <a :href=\"settingsProperty.url\" v-if=\"$slots['video']\" class=\"w-100\">\n <slot name=\"video\"></slot>\n </a>\n </div>\n <div class=\"d-flex flex-column col-12 col-md-8 mt-3 mt-md-5\"\n ><div class=\"w-100 ce-news-teaser-markets__small-header\"><slot name=\"page-type\"></slot></div>\n <div class=\"w-100\">\n <h3>\n <a :href=\"settingsProperty.url\"><slot name=\"headline\"></slot></a>\n </h3>\n </div>\n <div class=\"w-100 ce-news-teaser-markets__date\">\n {{ settingsProperty.publishedDate | formatField(dateFormatKey) }}\n <ad-like-count :content-id=\"settingsProperty.contentId\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { BlogPageSettings } from '@/src/types/episerver-api';\nimport { DefaultFormat } from '@/src/types/enumerations';\n\n@Component\nexport default class CeAdNewsTeaserMarketsItem extends Vue {\n @Inject() index!: number;\n @Inject() settingsProperty!: BlogPageSettings;\n\n get dateFormatKey(): string {\n return DefaultFormat.BlogDate;\n }\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d04e5926\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.rows)?_c('ad-collapse-on-mobile',{attrs:{\"showCollapsed\":\"\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"block-header\")]},proxy:true}],null,true)},[_c('ad-simple-table',{attrs:{\"headers\":_vm.headers,\"rows\":_vm.rows}}),_c('b-button',{staticClass:\"mt-3 w-sm-100\",attrs:{\"variant\":\"light\"},on:{\"click\":_vm.excelExport}},[_c('ad-icon-xls'),_vm._t(\"button-excel-export\")],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-collapse-on-mobile showCollapsed v-if=\"rows\">\n <template #header>\n <slot name=\"block-header\"></slot>\n </template>\n <ad-simple-table :headers=\"headers\" :rows=\"rows\" />\n <b-button class=\"mt-3 w-sm-100\" variant=\"light\" @click=\"excelExport\">\n <ad-icon-xls /><slot name=\"button-excel-export\"></slot>\n </b-button>\n </ad-collapse-on-mobile>\n</template>\n<script lang=\"ts\">\nimport { mapGetters } from 'vuex';\nimport { RollingHistoryModel } from '@/src/types/the-q-api';\nimport { Component } from 'vue-property-decorator';\nimport AdProductHistoryBase from '../ad-product-history-base';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { downloadFilePost } from '@/src/utils/download-file';\n\n@Component({\n computed: {\n ...mapGetters('product', ['product']),\n },\n})\nexport default class AdProductRollingHistory extends AdProductHistoryBase {\n getData(): RollingHistoryModel[] | null | undefined {\n return this.product?.rollingHistory;\n }\n excelExport(): void {\n const url = getTheQApiUrl(Controller.RollingHistory, 'Excel');\n downloadFilePost(url, this.buildExcelRequest(), 'RollingHistory.xlsx');\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=665a7780\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.rows)?_c('ad-collapse-on-mobile',{attrs:{\"showCollapsed\":\"\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"block-header\")]},proxy:true}],null,true)},[_c('ad-simple-table',{attrs:{\"headers\":_vm.headers,\"rows\":_vm.rows}}),_c('b-button',{staticClass:\"mt-3 w-sm-100\",attrs:{\"variant\":\"light\"},on:{\"click\":_vm.excelExport}},[_c('ad-icon-xls'),_vm._t(\"button-excel-export\")],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-collapse-on-mobile showCollapsed v-if=\"rows\">\n <template #header>\n <slot name=\"block-header\"></slot>\n </template>\n <ad-simple-table :headers=\"headers\" :rows=\"rows\" />\n <b-button class=\"mt-3 w-sm-100\" variant=\"light\" @click=\"excelExport\">\n <ad-icon-xls /><slot name=\"button-excel-export\"></slot>\n </b-button>\n </ad-collapse-on-mobile>\n</template>\n<script lang=\"ts\">\nimport { mapGetters } from 'vuex';\nimport { StrikeHistoryModel } from '@/src/types/the-q-api';\nimport { Component } from 'vue-property-decorator';\nimport AdProductHistoryBase from '../ad-product-history-base';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { downloadFilePost } from '@/src/utils/download-file';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({\n computed: {\n ...mapGetters('product', ['product']),\n },\n})\nexport default class AdProductRollingHistory extends AdProductHistoryBase {\n getData(): StrikeHistoryModel[] | null | undefined {\n return this.product?.strikeHistory;\n }\n excelExport(): void {\n const url = getTheQApiUrl(Controller.StrikeHistory, 'Excel');\n this.trackExport(url);\n downloadFilePost(url, this.buildExcelRequest(), 'StrikeHistory.xlsx');\n }\n\n trackExport(url: string) {\n trackEvent(GaEvent.ClickDownload, {\n displayName: 'StrikeHistory.xlsx',\n extension: 'xlsx',\n url: url,\n });\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=46c0513a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-skeleton-wrapper',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('b-skeleton-img',_vm._b({},'b-skeleton-img',_vm.$attrs,false))]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-skeleton-wrapper :loading=\"loading\">\n <template #loading>\n <b-skeleton-img v-bind=\"$attrs\" />\n </template>\n <slot></slot>\n </b-skeleton-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdSkeletonImage extends Vue {\n @Prop({ default: true, type: Boolean, required: true }) loading;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4f3d9d12\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-skeleton-wrapper',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('b-skeleton',{attrs:{\"type\":\"input\"}})]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-skeleton-wrapper :loading=\"loading\">\n <template #loading>\n <b-skeleton type=\"input\"></b-skeleton>\n </template>\n <slot></slot>\n </b-skeleton-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdSkeletonInput extends Vue {\n @Prop({ default: true, type: Boolean, required: true }) loading;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=161235ae\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-skeleton-wrapper',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [(_vm.label)?_c('label',{staticClass:\"fs-14 ce-radio-buttons--buttons-label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('b-skeleton',{attrs:{\"type\":\"input\"}})]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-skeleton-wrapper :loading=\"loading\">\n <template #loading>\n <label v-if=\"label\" class=\"fs-14 ce-radio-buttons--buttons-label\">{{ label }}</label>\n <b-skeleton type=\"input\"></b-skeleton>\n </template>\n <slot></slot>\n </b-skeleton-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdSkeletonRadioButtons extends Vue {\n @Prop({ default: true, type: Boolean }) loading;\n @Prop({ default: null, type: String }) label;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4a8d594e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-skeleton-wrapper',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('b-skeleton-table',{attrs:{\"rows\":_vm.rows,\"columns\":_vm.columns,\"table-props\":{ striped: true }}})]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-skeleton-wrapper :loading=\"loading\">\n <template #loading>\n <b-skeleton-table :rows=\"rows\" :columns=\"columns\" :table-props=\"{ striped: true }\"></b-skeleton-table>\n </template>\n <slot></slot>\n </b-skeleton-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdSkeletonTable extends Vue {\n @Prop({ default: true, type: Boolean, required: true }) loading;\n @Prop({ default: 5, type: Number }) columns;\n @Prop({ default: 5, type: Number }) rows;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0d599f34\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-skeleton-wrapper',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('b-skeleton',{staticClass:\"w-90\"})]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-skeleton-wrapper :loading=\"loading\">\n <template #loading>\n <b-skeleton class=\"w-90\"></b-skeleton>\n </template>\n <slot></slot>\n </b-skeleton-wrapper>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdSkeletonText extends Vue {\n @Prop({ default: true, type: Boolean, required: true }) loading;\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=16e2dc5f\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.loading || _vm.bestMatchSearchResultModel)?_c('ad-product-teaser-property',{attrs:{\"teaserSettingsProperty\":_vm.teaserSettings}},[_c('div',{staticClass:\"best-match-search-table\"},[_c('ad-instrument-table',_vm._b({ref:\"table\",staticClass:\"mb-4\",attrs:{\"sort-orders\":_vm.sortOrders,\"instruments\":_vm.products,\"settings\":_vm.settingsProperty,\"loading\":_vm.loading,\"selectable\":\"\",\"no-select-on-click\":true,\"select-mode\":\"multi\",\"selected-variant\":\"primary\"},scopedSlots:_vm._u([{key:\"top-row\",fn:function({ fieldCount }){return [_c('b-td',{attrs:{\"colspan\":fieldCount || 1}},[_c('b-button',{staticClass:\"my-3\",attrs:{\"disabled\":_vm.isButtonTopDisabled},on:{\"click\":_vm.showMoreAbove}},[_vm._t(\"table-show-more-item-text\",function(){return [_vm._v(\"[show 10 more table placeholder]\")]})],2)],1)]}},{key:\"row-details\",fn:function({ data }){return [_c('ad-product-data-property',{attrs:{\"product\":data.item.instrument.product}},[_c('div',{staticClass:\"wrap\"},[_vm._t(\"product-detail-page-teaser\",function(){return [_vm._v(_vm._s(data.item.instrument))]},{\"data\":data})],2)])]}},{key:\"row-instrument\",fn:function({ setting, instrument }){return [(setting.key === 'bestMatch')?_c('div',{staticClass:\"best-match-badge\"},[(instrument.isBestMatch)?_c('b-badge',{attrs:{\"variant\":\"light\"}},[_vm._v(_vm._s(setting.tanslation))]):_vm._e()],1):_c('ad-product-data-value',{attrs:{\"is-link-to-detail-page\":setting.isLinkToDetailPage,\"product-item\":instrument.product,\"field-key\":setting.formatId}})]}},{key:\"row-watch-list\",fn:function({ instrument }){return [_c('ad-product-watchlist-toggle',{attrs:{\"product-item\":instrument.product}})]}}],null,true)},'ad-instrument-table',_vm.$attrs,false)),_c('div',{staticClass:\"text-center\"},[_c('b-button',{attrs:{\"disabled\":_vm.isButtonBottomDisabled},on:{\"click\":_vm.showMoreBelow}},[_vm._t(\"table-show-more-item-text\",function(){return [_vm._v(\"[show 10 more table placeholder]\")]})],2)],1)],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-product-teaser-property :teaserSettingsProperty=\"teaserSettings\" v-if=\"loading || bestMatchSearchResultModel\">\n <div class=\"best-match-search-table\">\n <ad-instrument-table\n :sort-orders=\"sortOrders\"\n v-bind=\"$attrs\"\n :instruments=\"products\"\n :settings=\"settingsProperty\"\n :loading=\"loading\"\n class=\"mb-4\"\n ref=\"table\"\n selectable\n :no-select-on-click=\"true\"\n select-mode=\"multi\"\n selected-variant=\"primary\"\n >\n <template #top-row=\"{ fieldCount }\">\n <b-td :colspan=\"fieldCount || 1\"\n ><b-button class=\"my-3\" @click=\"showMoreAbove\" :disabled=\"isButtonTopDisabled\"\n ><slot name=\"table-show-more-item-text\">[show 10 more table placeholder]</slot></b-button\n ></b-td\n >\n </template>\n <template #row-details=\"{ data }\">\n <ad-product-data-property :product=\"data.item.instrument.product\">\n <!-- wrap in div to prevent multiple root nodes returned from render function error -->\n <div class=\"wrap\">\n <slot name=\"product-detail-page-teaser\" :data=\"data\">{{ data.item.instrument }}</slot>\n </div>\n </ad-product-data-property>\n </template>\n <template #row-instrument=\"{ setting, instrument }\">\n <div class=\"best-match-badge\" v-if=\"setting.key === 'bestMatch'\">\n <b-badge variant=\"light\" v-if=\"instrument.isBestMatch\">{{ setting.tanslation }}</b-badge>\n </div>\n <ad-product-data-value\n v-else\n :is-link-to-detail-page=\"setting.isLinkToDetailPage\"\n :product-item=\"instrument.product\"\n :field-key=\"setting.formatId\"\n />\n </template>\n <template #row-watch-list=\"{ instrument }\">\n <ad-product-watchlist-toggle :product-item=\"instrument.product\" />\n </template>\n </ad-instrument-table>\n <div class=\"text-center\">\n <b-button @click=\"showMoreBelow\" :disabled=\"isButtonBottomDisabled\"\n ><slot name=\"table-show-more-item-text\">[show 10 more table placeholder]</slot></b-button\n >\n </div>\n </div>\n </ad-product-teaser-property>\n</template>\n\n<script lang=\"ts\">\nimport { PageRoutes, BestMatchSearchBlockSetting } from '@t/episerver-api';\nimport { BestMatchSearchResultModel, SortOrder } from '@t/the-q-api';\nimport { Component, Inject, Prop, Ref, Vue, Watch } from 'vue-property-decorator';\nimport { scrollToElement } from '@src/utils/scroll-helpers';\n\nimport { BestMatchSearchRequestFilter, ProductTeaserSettings } from '@t/vue-api';\nimport { BRow, BTable } from 'bootstrap-vue';\nimport { getProductTeaserSettings } from '@src/utils/table-columns-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdBestMatchSearchTable extends Vue {\n @Inject() settingsProperty!: BestMatchSearchBlockSetting;\n @Inject() pageRoutes!: PageRoutes;\n @Prop({ required: true }) filter!: BestMatchSearchRequestFilter;\n @Prop({ required: true }) bestMatchSearchResultModel!: BestMatchSearchResultModel;\n @Prop({ required: true }) sortOrders!: Array<SortOrder>;\n @Prop({ required: true }) refreshTrigger!: number;\n @Prop({ required: true }) loading!: boolean;\n\n private currentOpenItem;\n private aboveItemsCount = 0;\n private belowItemsCount = 0;\n\n @Ref() table;\n\n created() {\n this.resetItemCount();\n }\n\n get products() {\n if (this.bestMatchSearchResultModel) {\n const aboveItems = this.bestMatchSearchResultModel.aboveMatches.slice(\n this.bestMatchSearchResultModel.aboveMatches.length - this.aboveItemsCount,\n this.bestMatchSearchResultModel.aboveMatches.length\n );\n const belowItems = this.bestMatchSearchResultModel.belowMatches.slice(0, this.belowItemsCount);\n return [...aboveItems, ...this.bestMatchSearchResultModel.bestMatches, ...belowItems];\n }\n\n return null;\n }\n\n get isButtonTopDisabled() {\n return this.aboveItemsCount >= this.bestMatchSearchResultModel?.aboveMatches.length;\n }\n\n get isButtonBottomDisabled() {\n return this.belowItemsCount >= this.bestMatchSearchResultModel?.belowMatches.length;\n }\n\n get teaserSettings(): ProductTeaserSettings {\n return getProductTeaserSettings(this.settingsProperty);\n }\n\n @Watch('refreshTrigger')\n refresh() {\n this.resetItemCount();\n this.$nextTick(() => this.highlightBestMatches());\n this.scrollBestMatchIntoView();\n }\n\n showMoreBelow() {\n this.belowItemsCount += this.settingsProperty.showMoreItem;\n this.$nextTick(this.highlightBestMatches); // workaround to select items\n }\n\n showMoreAbove() {\n this.increaseAboveItemCount();\n this.$nextTick(this.highlightBestMatches); // workaround to select items\n }\n\n highlightBestMatches() {\n for (let i = 0; i < this.bestMatchSearchResultModel?.bestMatches.length; i++) {\n (this.table.$refs.table as BTable).selectRow(this.aboveItemsCount + i);\n }\n }\n\n resetItemCount() {\n this.aboveItemsCount = 0;\n this.increaseAboveItemCount();\n this.belowItemsCount = this.settingsProperty.showMoreItem;\n }\n\n increaseAboveItemCount() {\n this.aboveItemsCount += this.settingsProperty.showMoreItem;\n\n if (this.aboveItemsCount > this.bestMatchSearchResultModel?.aboveMatches.length)\n this.aboveItemsCount = this.bestMatchSearchResultModel.aboveMatches.length;\n }\n\n toggleDetails(e: Event, row: BRow) {\n row.toggleDetails(e);\n\n if (this.currentOpenItem && this.currentOpenItem !== row.item) {\n this.currentOpenItem._showDetails = false;\n }\n this.currentOpenItem = row.item;\n }\n\n scrollBestMatchIntoView(): void {\n const $bestMatchTableRef = this.table.$refs.table;\n if (!$bestMatchTableRef) return;\n\n const $firstHighlightedRow = $bestMatchTableRef.$el as HTMLElement;\n scrollToElement($firstHighlightedRow);\n }\n}\n</script>\n\n<style lang=\"scss\">\n.best-match-search-table {\n .table {\n .b-table-top-row {\n text-align: center;\n }\n /* stylelint-disable-next-line */\n th {\n border-bottom: 1px solid $cool-grey;\n }\n\n tr:nth-of-type(2n + 1) {\n background: transparent;\n }\n\n tr:nth-of-type(2n + 2) {\n background: $table-accent-bg;\n }\n\n .td-col-detail {\n background-color: #d8e1e9;\n }\n\n /* stylelint-disable-next-line */\n tr:nth-of-type(2n + 1) .td-col-detail {\n background-color: #e4ebf1;\n }\n\n @include media-breakpoint-down('md') {\n .best-match-badge {\n display: inline-block;\n margin-top: rem(15);\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-best-match-search-table.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-best-match-search-table.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-best-match-search-table.vue?vue&type=template&id=2be9bace\"\nimport script from \"./ad-best-match-search-table.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-best-match-search-table.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-best-match-search-table.vue?vue&type=style&index=0&id=2be9bace&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('ad-error',{key:_vm.settingsProperty.productType,attrs:{\"http-status-code\":_vm.statusCode}},[_c('b-form',{attrs:{\"id\":\"product-search-page\",\"novalidate\":\"\"}},[_c('b-container',{staticClass:\"content-container mb-8 content-container-t\"},[_c('b-row',[_c('b-col',[_c('h1',[_vm._t(\"headline\")],2)])],1),_c('b-row',[_c('b-col',{attrs:{\"md\":\"6\",\"lg\":\"5\"}},[_c('ad-best-match-search-filter-container',{staticClass:\"alert mb-6 alert-light\",attrs:{\"best-match-metadata-result-model\":_vm.bestMatchMetadataResultModelItem},on:{\"best-match-button-click\":_vm.onBestMatchValueClick,\"product-type-changed\":_vm.productFilterChanged,\"underlying-changed\":_vm.loadUnderlyingsAsync},scopedSlots:_vm._u([{key:\"filter-headline\",fn:function(){return [_vm._t(\"filter-headline\",function(){return [_vm._v(\"Placeholder filter headline\")]})]},proxy:true},{key:\"filter-product-type-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-label-text\",function(){return [_vm._v(\"Placeholder product type label\")]})]},proxy:true},{key:\"filter-subtype-label-both\",fn:function(){return [_vm._t(\"filter-subtype-label-both\")]},proxy:true},{key:\"filter-underlying-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-label-text\",function(){return [_vm._v(\"Dropdown label\")]})]},proxy:true},{key:\"filter-show-best-match-button-text\",fn:function(){return [_vm._t(\"filter-show-best-match-button-text\",function(){return [_vm._v(\"[filter show best match button text placeholder]\")]})]},proxy:true},{key:\"maturity-date-filter\",fn:function({ onFilterValueChanged, availableValues }){return [_vm._t(\"maturity-date-filter\",null,{\"availableValues\":availableValues,\"currentSearchFilter\":_vm.filter,\"onFilterValueChanged\":onFilterValueChanged})]}},{key:\"additional-numeric-range-filter-elements\",fn:function({\n onFilterValueChanged,\n isNumericFilterVisible,\n availableValues,\n isLoading,\n }){return [_vm._t(\"additional-numeric-range-filter-elements\",null,{\"availableValues\":availableValues,\"currentSearchFilter\":_vm.filter,\"onFilterValueChanged\":onFilterValueChanged,\"required\":true,\"isVisibleFunc\":isNumericFilterVisible,\"isLoading\":isLoading})]}},{key:\"go-to-full-seach-button-text\",fn:function(){return [_vm._t(\"go-to-full-seach-button-text\",function(){return [_vm._v(\"[go to full seach button text]\")]})]},proxy:true}],null,true),model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('b-col',{attrs:{\"md\":\"6\",\"lg\":\"4\"}},[_vm._t(\"underlying-teaser\"),_c('div',{staticClass:\"d-none d-md-block d-lg-none\"},[_vm._t(\"explanatory-text\")],2)],2),_c('b-col',{staticClass:\"d-md-none d-lg-block\"},[_vm._t(\"explanatory-text\")],2)],1)],1),(_vm.settingsProperty.isInEditMode || (_vm.$screen.sm && _vm.bestMatchSearchResultModel))?_c('div',{staticClass:\"float-right content-container-y\"},[(_vm.settingsProperty.isInEditMode || _vm.$screen.xl)?_c('b-button',{attrs:{\"variant\":\"light\"},on:{\"click\":_vm.excelExport}},[_c('ad-icon-xls'),_vm._t(\"button-excel-export-text\",function(){return [_vm._v(\"Excel Export\")]})],2):_vm._e()],1):_vm._e(),(_vm.bestMatchSearchResultModel)?_c('b-container',{staticClass:\"content-container content-container-x my-0\",attrs:{\"id\":\"table-search-top\"}},[_c('h3',[_vm._t(\"search-headline\",function(){return [_vm._v(\"[Your Best Match Results]\")]})],2)]):_vm._e(),_c('b-container',{staticClass:\"mb-7 mb-md-8 mt-5\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('ad-error',{attrs:{\"http-status-code\":_vm.statusCodeTable}},[_c('ad-best-match-search-table',{ref:\"table\",attrs:{\"loading\":_vm.isTableLoding,\"sort-orders\":_vm.currentSorting,\"best-match-search-result-model\":_vm.bestMatchSearchResultModel,\"filter\":_vm.filter,\"refresh-trigger\":_vm.refreshTrigger},scopedSlots:_vm._u([{key:\"product-detail-page-teaser\",fn:function(){return [_vm._t(\"product-detail-page-teaser\")]},proxy:true},{key:\"table-show-more-item-text\",fn:function(){return [_vm._t(\"table-show-more-item-text\",function(){return [_vm._v(\"[show 10 more placeholder]\")]})]},proxy:true}],null,true)})],1)],1)],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\" v-if=\"isVisible\" :key=\"settingsProperty.productType\">\n <b-form id=\"product-search-page\" novalidate>\n <b-container class=\"content-container mb-8 content-container-t\">\n <b-row>\n <b-col>\n <h1><slot name=\"headline\"></slot></h1>\n </b-col>\n </b-row>\n <b-row>\n <b-col md=\"6\" lg=\"5\">\n <ad-best-match-search-filter-container\n class=\"alert mb-6 alert-light\"\n v-model=\"filter\"\n :best-match-metadata-result-model=\"bestMatchMetadataResultModelItem\"\n @best-match-button-click=\"onBestMatchValueClick\"\n @product-type-changed=\"productFilterChanged\"\n @underlying-changed=\"loadUnderlyingsAsync\"\n >\n <template #filter-headline>\n <slot name=\"filter-headline\">Placeholder filter headline</slot>\n </template>\n <template #filter-product-type-dropdown-label-text>\n <slot name=\"filter-product-type-dropdown-label-text\">Placeholder product type label</slot>\n </template>\n\n <template #filter-subtype-label-both>\n <slot name=\"filter-subtype-label-both\"></slot>\n </template>\n\n <template #filter-underlying-dropdown-label-text>\n <slot name=\"filter-underlying-dropdown-label-text\">Dropdown label</slot>\n </template>\n\n <template #filter-show-best-match-button-text>\n <slot name=\"filter-show-best-match-button-text\">[filter show best match button text placeholder]</slot>\n </template>\n\n <template #maturity-date-filter=\"{ onFilterValueChanged, availableValues }\">\n <slot\n name=\"maturity-date-filter\"\n :availableValues=\"availableValues\"\n :currentSearchFilter=\"filter\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n ></slot>\n </template>\n\n <template\n #additional-numeric-range-filter-elements=\"{\n onFilterValueChanged,\n isNumericFilterVisible,\n availableValues,\n isLoading,\n }\"\n >\n <slot\n name=\"additional-numeric-range-filter-elements\"\n :availableValues=\"availableValues\"\n :currentSearchFilter=\"filter\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n :required=\"true\"\n :isVisibleFunc=\"isNumericFilterVisible\"\n :isLoading=\"isLoading\"\n ></slot>\n </template>\n\n <template #go-to-full-seach-button-text>\n <slot name=\"go-to-full-seach-button-text\">[go to full seach button text]</slot>\n </template>\n </ad-best-match-search-filter-container>\n </b-col>\n <b-col md=\"6\" lg=\"4\">\n <slot name=\"underlying-teaser\"></slot>\n <div class=\"d-none d-md-block d-lg-none\">\n <slot name=\"explanatory-text\"> </slot>\n </div>\n </b-col>\n <b-col class=\"d-md-none d-lg-block\"><slot name=\"explanatory-text\"> </slot></b-col>\n </b-row>\n </b-container>\n <div\n v-if=\"settingsProperty.isInEditMode || ($screen.sm && bestMatchSearchResultModel)\"\n class=\"float-right content-container-y\"\n >\n <b-button variant=\"light\" v-if=\"settingsProperty.isInEditMode || $screen.xl\" @click=\"excelExport\">\n <ad-icon-xls /><slot name=\"button-excel-export-text\">Excel Export</slot>\n </b-button>\n </div>\n <b-container\n v-if=\"bestMatchSearchResultModel\"\n class=\"content-container content-container-x my-0\"\n id=\"table-search-top\"\n >\n <h3> <slot name=\"search-headline\">[Your Best Match Results]</slot></h3>\n </b-container>\n <b-container fluid class=\"mb-7 mb-md-8 mt-5\">\n <b-row>\n <b-col>\n <ad-error :http-status-code=\"statusCodeTable\">\n <ad-best-match-search-table\n :loading=\"isTableLoding\"\n :sort-orders=\"currentSorting\"\n :best-match-search-result-model=\"bestMatchSearchResultModel\"\n :filter=\"filter\"\n :refresh-trigger=\"refreshTrigger\"\n ref=\"table\"\n >\n <template #product-detail-page-teaser>\n <slot name=\"product-detail-page-teaser\" />\n </template>\n <template #table-show-more-item-text>\n <slot name=\"table-show-more-item-text\">[show 10 more placeholder]</slot>\n </template>\n </ad-best-match-search-table>\n </ad-error>\n </b-col>\n </b-row>\n </b-container>\n </b-form>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport {\n BestMatchSearchRequestModel,\n BestMatchSearchResultModel,\n BestMatchMetadataResultModel,\n BestMatchExcelRequestModel,\n SortOrder,\n UnderlyingModel,\n} from '@/src/types/the-q-api';\nimport { BestMatchSearchBlockSetting, PageRoutes } from '@/src/types/episerver-api';\nimport { Component, Inject, Prop, Ref, Vue, Watch } from 'vue-property-decorator';\nimport AdBestMatchSearchTable from './ad-best-match-search-table.vue';\nimport { getTheQApiUrl, tryCreateBestMatchSearchLink } from '@/src/utils/url-helper';\nimport { Controller, HttpStatusCodes, ProductKey, ProductTypeBo, SortingDirection } from '@/src/types/enumerations';\nimport { downloadFilePost } from '@/src/utils/download-file';\nimport { parseQueryObject } from '@/src/utils/query-param-helper';\nimport qs from 'qs';\nimport { BestMatchSearchRequestFilter } from '@/src/types/vue-api';\nimport { Action, Getter } from 'vuex-class';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { setBestMatchSearchFilterForRequest } from '@/src/utils/instrument-search-helper';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({\n components: {\n AdBestMatchSearchTable,\n },\n})\nexport default class AdBestMatchSearch extends Vue {\n @Inject() settingsProperty!: BestMatchSearchBlockSetting;\n @Inject() pageRoutes!: PageRoutes;\n @Ref() table;\n @Prop({ required: true }) productType!: ProductTypeBo;\n @Prop({ required: true }) pageLink!: string;\n\n @Getter('bestMatchSearchResultModel', { namespace: 'bestMatch' })\n bestMatchSearchResultModel!: BestMatchSearchResultModel | null;\n\n @Getter('bestMatchMetadataResultModel', { namespace: 'bestMatch' })\n bestMatchMetadataResultModel!: (filter: BestMatchSearchRequestModel) => BestMatchMetadataResultModel | null;\n\n @Getter('teaserUnderlyings', { namespace: 'underlying' })\n teaserUnderlyings!: Array<UnderlyingModel> | undefined;\n @Action('loadBestMatchMetadataResultModelAsync', { namespace: 'bestMatch' })\n loadBestMatchMetadataResultModelAsync!: (filter: BestMatchSearchRequestModel) => Promise<void>;\n\n @Action('loadBestMatchSearchResultModelAsync', { namespace: 'bestMatch' })\n loadBestMatchSearchResultModelAsync!: (filter: BestMatchSearchRequestModel) => Promise<void>;\n\n @Action('loadTeaserUnderlyingsAsync', { namespace: 'underlying' })\n loadTeaserUnderlyingsAsync!: (isin: string[] | string) => Promise<void>;\n\n @Action('clearTeaserUnderlyings', { namespace: 'underlying' })\n clearTeaserUnderlyings!: () => void;\n\n private filter = new BestMatchSearchRequestFilter();\n private currentSorting: Array<SortOrder> = [];\n private refreshTrigger = 0;\n private isTableLoading = false;\n statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n statusCodeTable: number | HttpStatusCodes = HttpStatusCodes.OK;\n\n get isVisible() {\n return this.productType == this.settingsProperty.productType;\n }\n\n get bestMatchMetadataResultModelItem() {\n return this.bestMatchMetadataResultModel(this.filter);\n }\n\n async onBestMatchValueClick(): Promise<void> {\n await this.loadBestMatchResultAsync();\n }\n\n async created(): Promise<void> {\n this.setFilterDefaults();\n this.setFilterFromUrl();\n await this.loadBestMatchMetaWithErrorHandlingAsync();\n\n if (this.filter.underlyingIsin) {\n await this.loadUnderlyingsAsync();\n }\n if (this.filter.keyDataField && this.filter.keyDataValue) await this.loadBestMatchResultAsync();\n }\n\n async loadBestMatchResultAsync() {\n await this.loadBestMatchResultWithErrorHandlingAsync();\n this.updateSortOrder();\n this.refreshTrigger++;\n }\n\n async loadBestMatchMetaWithErrorHandlingAsync() {\n try {\n await this.loadBestMatchMetadataResultModelAsync(this.filter);\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n }\n }\n }\n\n async loadBestMatchResultWithErrorHandlingAsync() {\n this.isTableLoading = true;\n this.statusCodeTable = HttpStatusCodes.OK;\n\n try {\n await this.loadBestMatchSearchResultModelAsync(this.filter);\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCodeTable = error?.response?.status ?? HttpStatusCodes.UnknownError;\n }\n }\n\n this.isTableLoading = false;\n }\n\n updateSortOrder() {\n this.currentSorting = [\n {\n key: ProductKey.UnderlyingName,\n direction: SortingDirection.Ascending,\n } as SortOrder,\n ];\n\n if (this.filter.maturityDate)\n this.currentSorting.push({\n key: ProductKey.MaturityDate,\n direction: SortingDirection.Ascending,\n } as SortOrder);\n\n this.currentSorting.push({\n key: this.filter.keyDataField ?? '',\n direction: SortingDirection.Ascending,\n });\n }\n\n async loadUnderlyingsAsync() {\n if (this.filter.underlyingIsin !== null) {\n await this.loadTeaserUnderlyingsAsync(this.filter.underlyingIsin);\n } else {\n this.clearTeaserUnderlyings();\n }\n }\n\n async onUnderlyingChangedAsync() {\n await this.loadUnderlyingsAsync();\n }\n\n excelExport() {\n const url = getTheQApiUrl(Controller.BestMatch, 'Excel');\n this.trackExport(url);\n downloadFilePost(url, this.buildExcelRequest(), 'BestMatchSearch.xlsx');\n }\n\n trackExport(url: string) {\n trackEvent(GaEvent.ClickDownload, {\n displayName: 'BestMatchSearch.xlsx',\n extension: 'xlsx',\n url: url,\n });\n }\n\n buildExcelRequest(): BestMatchExcelRequestModel {\n setBestMatchSearchFilterForRequest(this.filter);\n\n const excelFilter = {\n searchRequest: this.filter,\n columnList: this.settingsProperty.excelExportColumnSettings,\n } as BestMatchExcelRequestModel;\n\n return excelFilter;\n }\n\n productFilterChanged(value: ProductTypeBo): void {\n this.$emit('update-product-type', value);\n }\n\n @Watch('productType')\n async productTypeChanged() {\n if (this.isVisible) {\n this.validateUnderlyingAndUpdateUrl();\n this.updateUrl();\n this.updateTeaserItemIfChanged();\n }\n }\n\n @Watch('filter', { deep: true })\n async filterChanged() {\n if (this.isVisible) {\n this.validateUnderlyingAndUpdateUrl();\n this.updateUrl();\n }\n\n this.updateTeaserItemIfChanged();\n }\n\n async validateUnderlyingAndUpdateUrl() {\n // check if underlying is still set, otherwise it is cleared by available values in ad-underlying-list\n if (\n this.bestMatchMetadataResultModelItem?.availableValues.underlyingNames &&\n (this.filter.underlyingIsin === null ||\n !this.bestMatchMetadataResultModelItem?.availableValues.underlyingNames[this.filter.underlyingIsin])\n ) {\n if (\n this.settingsProperty.underlyingDefaultIsin &&\n this.bestMatchMetadataResultModelItem?.availableValues.underlyingNames[\n this.settingsProperty.underlyingDefaultIsin\n ]\n ) {\n this.filter.underlyingIsin = this.settingsProperty.underlyingDefaultIsin;\n } else {\n this.filter.underlyingIsin =\n Object.keys(this.bestMatchMetadataResultModelItem?.availableValues.underlyingNames)[0] ?? null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n await this.loadTeaserUnderlyingsAsync(this.filter.underlyingIsin!);\n }\n }\n\n async updateTeaserItemIfChanged() {\n // check if displayed teaser underlying is still as underlying in dropdown, when product type and set visible window has changed\n if (\n this.teaserUnderlyings?.length === 1 &&\n this.filter.underlyingIsin != null &&\n this.filter.underlyingIsin !== this.teaserUnderlyings[0].isin\n ) {\n await this.loadTeaserUnderlyingsAsync(this.filter.underlyingIsin);\n }\n }\n\n updateUrl() {\n this.$nextTick(() =>\n window.history.pushState({}, window.document.title, tryCreateBestMatchSearchLink(this.pageLink, this.filter))\n );\n }\n\n private setFilterDefaults(): void {\n this.filter.productType = this.settingsProperty.productType;\n this.filter.filterProperty = this.settingsProperty.numericFilters[0].filterProperty;\n this.filter.numberOfItems = this.settingsProperty.loadMaxItems;\n\n if (this.settingsProperty.underlyingDefaultIsin) {\n this.filter.underlyingIsin = this.settingsProperty.underlyingDefaultIsin;\n }\n }\n\n private setFilterFromUrl(): void {\n const filter = qs.parse(window.location.search, { ignoreQueryPrefix: true });\n\n if (filter) {\n const parsedFilter = parseQueryObject(filter) as BestMatchSearchRequestFilter;\n\n if (parsedFilter.productType == this.settingsProperty.productType) {\n this.$emit('update-product-type', parsedFilter.productType);\n parsedFilter.productType = this.settingsProperty.productType;\n\n this.filter = Object.assign(this.filter, parsedFilter);\n }\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=509d1cef\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-4\"},[_c('b-container',{staticClass:\"px-3 px-md-4 pb-4\"},[(_vm.isSharedWebsite)?_c('div',[_c('b-row',[_c('b-col',[_c('h3',{staticClass:\"mb-2\"},[_vm._t(\"website-selection-header\")],2)])],1),_c('b-row',[_c('b-col',[_c('div',{staticClass:\"inner pr-0 pr-md-3\"},[_vm._t(\"website-selection-description\")],2)])],1),_c('b-row',[_c('b-col',[_c('b-form-group',{staticClass:\"bg-transparent border-0\"},[_c('b-form-radio-group',{attrs:{\"id\":\"website-group\",\"options\":_vm.getWebsiteOptions(),\"name\":\"website-options\",\"stacked\":\"\"},model:{value:(_vm.currentWebsite),callback:function ($$v) {_vm.currentWebsite=$$v},expression:\"currentWebsite\"}})],1)],1)],1)],1):_vm._e(),_vm._t(\"disclaimer-block\",null,{\"currentWebsite\":_vm.currentWebsite})],2),_c('ad-cookie-consent',{attrs:{\"canReject\":\"\",\"cookieconsentversion\":_vm.cookieconsentversion,\"is-accept-buttons-enabled\":_vm.isSingleWebsiteOrSelected,\"can-hide-third-party-media\":_vm.canHideThirdPartyMedia},on:{\"consent\":_vm.onConsent},scopedSlots:_vm._u([{key:\"cookie-consent-header\",fn:function(){return [_vm._t(\"cookie-cookie-consent-header\")]},proxy:true},{key:\"cookie-consent\",fn:function(){return [_vm._t(\"cookie-cookie-consent\")]},proxy:true},{key:\"cookie-consent-acceptall\",fn:function(){return [_vm._t(\"disclaimer-cookie-consent-acceptall\")]},proxy:true},{key:\"cookie-consent-acceptselected\",fn:function(){return [_vm._t(\"disclaimer-cookie-consent-acceptselected\")]},proxy:true},{key:\"cookie-consent-reject\",fn:function(){return [_vm._t(\"disclaimer-cookie-consent-reject\")]},proxy:true},{key:\"cookie-technical\",fn:function(){return [_vm._t(\"cookie-cookie-technical\")]},proxy:true},{key:\"cookie-marketing\",fn:function(){return [_vm._t(\"cookie-cookie-marketing\")]},proxy:true},{key:\"cookie-comfort\",fn:function(){return [_vm._t(\"cookie-cookie-comfort\")]},proxy:true},{key:\"cookie-third\",fn:function(){return [_vm._t(\"cookie-cookie-third\")]},proxy:true},{key:\"cookie-remember-selection\",fn:function(){return [_vm._t(\"cookie-cookie-remember-selection\")]},proxy:true}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"mt-4\">\n <b-container class=\"px-3 px-md-4 pb-4\">\n <div v-if=\"isSharedWebsite\">\n <b-row>\n <b-col>\n <h3 class=\"mb-2\"><slot name=\"website-selection-header\"></slot></h3\n ></b-col>\n </b-row>\n <b-row>\n <b-col>\n <div class=\"inner pr-0 pr-md-3\">\n <slot name=\"website-selection-description\"></slot>\n </div>\n </b-col>\n </b-row>\n <b-row>\n <b-col>\n <b-form-group class=\"bg-transparent border-0\">\n <b-form-radio-group\n v-model=\"currentWebsite\"\n id=\"website-group\"\n :options=\"getWebsiteOptions()\"\n name=\"website-options\"\n stacked\n ></b-form-radio-group>\n </b-form-group>\n </b-col>\n </b-row>\n </div>\n <slot name=\"disclaimer-block\" :current-website=\"currentWebsite\"></slot>\n </b-container>\n <ad-cookie-consent\n @consent=\"onConsent\"\n canReject\n :cookieconsentversion=\"cookieconsentversion\"\n :is-accept-buttons-enabled=\"isSingleWebsiteOrSelected\"\n :can-hide-third-party-media=\"canHideThirdPartyMedia\"\n >\n <template v-slot:cookie-consent-header><slot name=\"cookie-cookie-consent-header\"></slot></template>\n <template #cookie-consent><slot name=\"cookie-cookie-consent\"></slot></template>\n <template #cookie-consent-acceptall><slot name=\"disclaimer-cookie-consent-acceptall\"></slot></template>\n <template #cookie-consent-acceptselected>\n <slot name=\"disclaimer-cookie-consent-acceptselected\"></slot>\n </template>\n <template #cookie-consent-reject><slot name=\"disclaimer-cookie-consent-reject\"></slot></template>\n <template #cookie-technical><slot name=\"cookie-cookie-technical\"></slot></template>\n <template #cookie-marketing><slot name=\"cookie-cookie-marketing\"></slot></template>\n <template #cookie-comfort><slot name=\"cookie-cookie-comfort\"></slot></template>\n <template #cookie-third><slot name=\"cookie-cookie-third\"></slot></template>\n <template #cookie-remember-selection><slot name=\"cookie-cookie-remember-selection\"></slot></template>\n </ad-cookie-consent>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Prop, Inject } from 'vue-property-decorator';\nimport { CookiePageSettings } from '@/src/types/episerver-api';\nimport { SelectOption } from '@/src/types/vue-api';\nimport CookieManager, { CookieWebSelection } from '@/src/utils/cookie';\n\n@Component\nexport default class AdDisclaimerModal extends Vue {\n private cookieManager!: CookieManager;\n @Inject() settingsProperty!: CookiePageSettings;\n\n @Prop({ default: '#' })\n rejecturl!: string;\n\n @Prop({ default: undefined })\n cookieconsentversion: string | undefined;\n\n @Prop({ type: Boolean, default: false })\n canHideThirdPartyMedia;\n\n currentWebsite: string | null = null;\n isSharedWebsite = false;\n\n get isSingleWebsiteOrSelected(): boolean {\n return !this.isSharedWebsite || this.currentWebsite !== null;\n }\n\n created(): void {\n this.cookieManager = new CookieManager(this.$cookies);\n }\n\n mounted(): void {\n if (this.settingsProperty.disclaimerItemBlockSettings.length > 1) {\n this.isSharedWebsite = true;\n }\n if (this.settingsProperty.disclaimerItemBlockSettings.length == 1) {\n this.currentWebsite = this.settingsProperty.disclaimerItemBlockSettings[0].websiteKey;\n }\n }\n\n onConsent(state: boolean): void {\n if (state) {\n this.saveCookie(state);\n this.$bvModal.hide('ad-disclaimer-modal');\n\n //load data again after cookie setting.\n document.location.reload();\n } else {\n document.location.href = this.rejecturl;\n }\n }\n\n private getWebsiteOptions(): Array<SelectOption> {\n return this.settingsProperty.disclaimerItemBlockSettings.map((_) => new SelectOption(_.websiteKey, _.websiteName));\n }\n\n private saveCookie(remember: boolean): void {\n if (!this.currentWebsite) {\n return;\n }\n const cookieSetting = this.settingsProperty.disclaimerItemBlockSettings.find(\n (_) => _.websiteKey === this.currentWebsite\n );\n if (!(cookieSetting && cookieSetting.cookieName)) {\n return;\n }\n\n this.cookieManager.saveSelectedWebsite(\n new CookieWebSelection(cookieSetting.cookieName, cookieSetting.cookieValue),\n remember\n );\n }\n}\n</script>\n<style lang=\"scss\">\n.cookie-disclaimer-footer {\n justify-content: left !important;\n background: $marine-blue;\n text-align: left;\n\n a {\n margin-right: 1rem;\n color: $white;\n }\n}\n.alert-disclaimer {\n position: relative;\n overflow-x: hidden;\n overflow-y: auto;\n\n .inner {\n position: relative;\n max-height: rem(162);\n overflow-y: auto;\n }\n\n .readall {\n display: none;\n cursor: pointer;\n color: $secondary;\n }\n}\n\n@include media-breakpoint-down(sm) {\n .alert-disclaimer {\n border-radius: 0;\n max-width: none !important;\n overflow-y: hidden;\n\n .inner {\n height: auto;\n max-height: auto;\n overflow-y: hidden;\n }\n\n .readall {\n display: block;\n position: absolute;\n bottom: rem(-5);\n background: $pale-blue;\n background: linear-gradient(0deg, $pale-blue 0%, $pale-blue 40%, rgba(255, 255, 255, 0) 100%);\n padding-top: rem(35);\n padding-bottom: rem(2);\n width: 100%;\n text-align: center;\n color: $bright-sky-blue;\n }\n\n &.full {\n height: auto;\n max-height: none;\n\n .inner {\n height: auto;\n max-height: none;\n }\n\n .readall {\n display: none;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=05c6b776\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=05c6b776&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('div',{staticClass:\"content-container container-fluid mb-7 mb-md-8\"},[_c('h1',{staticClass:\"mb-md-3 mb-2\"},[_vm._v(_vm._s(_vm.headline))]),_c('h2',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}})])]):_c('div',[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"content-container container-fluid mb-7 mb-md-8\" v-if=\"isVisible\">\n <h1 class=\"mb-md-3 mb-2\">{{ headline }}</h1>\n <h2><span v-html=\"errorMessage\"></span></h2>\n </div>\n <div v-else><slot></slot></div>\n</template>\n<script lang=\"ts\">\nimport { HttpStatusCodes } from '@/src/types/enumerations';\nimport { CustomErrorMessage } from '@/src/types/episerver-api';\nimport { mapErrorCodes } from '@/src/utils/enum-value-helper';\nimport { Inject, Component, Prop, Watch } from 'vue-property-decorator';\nimport { Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdError extends Vue {\n @Inject({ default: [] }) errorMessages!: CustomErrorMessage[];\n @Prop({ default: HttpStatusCodes.OK }) httpStatusCode!: string | HttpStatusCodes;\n\n isVisible = false;\n headline = '';\n errorMessage = '';\n\n get errorCode(): HttpStatusCodes {\n if (typeof this.httpStatusCode === 'string') {\n return mapErrorCodes(Number.parseInt(this.httpStatusCode));\n }\n return this.httpStatusCode;\n }\n\n @Watch('httpStatusCode', { immediate: true })\n throwError(): void {\n this.isVisible = false;\n\n if (this.errorCode != HttpStatusCodes.OK) {\n this.populateError();\n this.isVisible = true;\n }\n }\n\n populateError(): void {\n const currentError = this.errorMessages.find((e) => e.statusCodes?.indexOf(this.errorCode) != -1);\n\n if (currentError) {\n this.headline = currentError.headline ? currentError.headline : '';\n this.errorMessage = currentError.errorMessage ? currentError.errorMessage : '';\n return;\n }\n\n const defaultError = this.errorMessages.find((e) => e.isDefault);\n\n if (defaultError) {\n this.headline = defaultError.headline ? defaultError.headline : '';\n this.errorMessage = defaultError.errorMessage ? defaultError.errorMessage : '';\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8648144e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-form',{attrs:{\"id\":\"general-search\",\"novalidate\":\"\"}},[_c('div',{staticClass:\"row\"},[_vm._t(\"filters\",function(){return [_vm._v(\"Filter Placeholder\")]},{\"filterState\":_vm.filterState,\"setFilter\":_vm.setFilter})],2),_c('div',{staticClass:\"row\"},[_vm._t(\"content\",function(){return [_vm._v(\"Data Placeholder\")]},{\"filterState\":_vm.filterState})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form id=\"general-search\" novalidate>\n <div class=\"row\">\n <slot name=\"filters\" :filter-state=\"filterState\" :set-filter=\"setFilter\">Filter Placeholder</slot>\n </div>\n <div class=\"row\">\n <slot name=\"content\" :filter-state=\"filterState\">Data Placeholder</slot>\n </div>\n </b-form>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class AdGeneralSearch extends Vue {\n filterState: { [key: string]: string | number | null } = {};\n setFilter(key: string, value: string | null) {\n this.$set(this.filterState, key, value);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a9da3dc8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.hasProduct || (!_vm.hasUnderlyings && !_vm.hasProducts) || _vm.matchesUnderlying || _vm.matchesProduct)?_c('div',{staticClass:\"ad-important-notice\",attrs:{\"clas\":\"w-100\"}},[_c('b-alert',{staticClass:\"mb-4\",attrs:{\"show\":\"\",\"variant\":\"danger\"}},[_c('strong',[_vm._t(\"headline\")],2),_c('div',[_vm._t(\"description\")],2)])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div\n class=\"ad-important-notice\"\n v-if=\"!hasProduct || (!hasUnderlyings && !hasProducts) || matchesUnderlying || matchesProduct\"\n clas=\"w-100\"\n >\n <b-alert show variant=\"danger\" class=\"mb-4\">\n <strong><slot name=\"headline\"></slot></strong>\n <div>\n <slot name=\"description\"></slot>\n </div>\n </b-alert>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { ImportantNoticeSettings } from '@/src/types/vue-api';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { Getter } from 'vuex-class';\n\n@Component\nexport default class AdImportantNotice extends Vue {\n @Inject()\n settingsProperty?: ImportantNoticeSettings;\n\n @Getter('product', { namespace: 'product' })\n private product?: ProductModel | null;\n\n get hasUnderlyings() {\n const underlyingCount = this.settingsProperty?.underlyingIsins.length ?? 0;\n return underlyingCount > 0;\n }\n\n get hasProducts() {\n const productCount = this.settingsProperty?.productIsins.length ?? 0;\n return productCount > 0;\n }\n\n get hasProduct() {\n return this.product != null;\n }\n\n get matchesUnderlying() {\n if (!this.hasProduct || !this.hasUnderlyings) {\n return false;\n }\n\n const productUnderlyingIsins = this.product!.underlyings?.map((underlying) => underlying.isin) ?? [];\n const targetUnderlyingIsins = this.settingsProperty!.underlyingIsins;\n const matchingUnderlyingIsins = targetUnderlyingIsins.filter((isin) => productUnderlyingIsins.indexOf(isin) > -1);\n\n return matchingUnderlyingIsins.length > 0;\n }\n\n get matchesProduct() {\n if (!this.hasProduct || !this.hasProducts) {\n return false;\n }\n\n return this.settingsProperty!.productIsins.indexOf(this.product!.isin.toUpperCase()) > -1;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7af90f04\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('main',_vm._b({staticClass:\"ce-content\"},'main',_vm.$attrs,false),[((_vm.isFieldStoreLoaded && _vm.isUnderlyingTranslationLoaded) || _vm.isPageEditMode)?_c('div',{staticClass:\"guard-wrap\"},[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <main class=\"ce-content\" v-bind=\"$attrs\">\n <div v-if=\"(isFieldStoreLoaded && isUnderlyingTranslationLoaded) || isPageEditMode\" class=\"guard-wrap\">\n <slot name=\"default\"></slot>\n </div>\n </main>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdMainLoadDataGuard extends Vue {\n @Prop({ default: false, type: Boolean }) isPageEditMode!: boolean;\n\n @Getter('isFieldStoreLoaded', { namespace: 'fieldFormats' })\n isFieldStoreLoaded!: boolean;\n\n @Getter('isUnderlyingTranslationsLoaded', { namespace: 'underlying' })\n isUnderlyingTranslationLoaded!: boolean;\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2655dd4a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"content-container-sm container-fluid mb-7 mb-md-8\"},[_c('b-row',[_c('b-col',{staticClass:\"col-12 offset-md-2 col-md-8\"},[_c('div',{class:_vm.containerClass},[_c('b-input-group',{ref:\"searchInput\",class:_vm.inputClass},[_c('b-input-group-prepend',{staticClass:\"ad-priip-search__icon fs-18 pr-2 py-0\"},[(_vm.isLoading)?_c('b-spinner'):_c('ad-icon-search')],1),_c('b-form-input',{staticClass:\"border-0 bg-transparent\",attrs:{\"placeholder\":_vm.settingsProperty?.inputPlaceholder},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.search.apply(null, arguments)},\"input\":_vm.resetSearchState},model:{value:(_vm.isin),callback:function ($$v) {_vm.isin=$$v},expression:\"isin\"}}),(_vm.hasFailed)?_c('b-popover',{attrs:{\"target\":_vm.$refs.searchInput,\"triggers\":\"focus hover\",\"show\":_vm.showPopover,\"variant\":\"danger\",\"placement\":\"bottom\"},on:{\"update:show\":function($event){_vm.showPopover=$event}}},[_c('div',{staticClass:\"text-danger\"},[_c('ad-icon-warnings',{staticClass:\"mr-2 align-top\"}),_vm._t(\"error-message\")],2)]):_vm._e(),(!_vm.isInputValid)?_c('b-popover',{attrs:{\"target\":_vm.$refs.searchInput,\"triggers\":\"focus hover\",\"show\":_vm.showPopover,\"variant\":\"danger\",\"placement\":\"bottom\"},on:{\"update:show\":function($event){_vm.showPopover=$event}}},[_c('div',{staticClass:\"text-danger\"},[_c('ad-icon-warnings',{staticClass:\"mr-2 align-top\"}),_vm._t(\"no-results-message\")],2)]):_vm._e()],1),_c('button',{staticClass:\"btn btn-secondary py-1 fs-18\",on:{\"click\":_vm.search}},[_vm._t(\"search-button-label\")],2)],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-container class=\"content-container-sm container-fluid mb-7 mb-md-8\">\n <b-row>\n <b-col class=\"col-12 offset-md-2 col-md-8\">\n <div :class=\"containerClass\">\n <b-input-group :class=\"inputClass\" ref=\"searchInput\">\n <b-input-group-prepend class=\"ad-priip-search__icon fs-18 pr-2 py-0\">\n <b-spinner v-if=\"isLoading\"></b-spinner>\n <ad-icon-search v-else></ad-icon-search>\n </b-input-group-prepend>\n <b-form-input\n :placeholder=\"settingsProperty?.inputPlaceholder\"\n class=\"border-0 bg-transparent\"\n v-model=\"isin\"\n @keypress.enter=\"search\"\n @input=\"resetSearchState\"\n ></b-form-input>\n <b-popover\n v-if=\"hasFailed\"\n :target=\"$refs.searchInput\"\n triggers=\"focus hover\"\n :show.sync=\"showPopover\"\n variant=\"danger\"\n placement=\"bottom\"\n ><div class=\"text-danger\"\n ><ad-icon-warnings class=\"mr-2 align-top\" /><slot name=\"error-message\"></slot></div\n ></b-popover>\n <b-popover\n v-if=\"!isInputValid\"\n :target=\"$refs.searchInput\"\n triggers=\"focus hover\"\n :show.sync=\"showPopover\"\n variant=\"danger\"\n placement=\"bottom\"\n ><div class=\"text-danger\"\n ><ad-icon-warnings class=\"mr-2 align-top\" /><slot name=\"no-results-message\"></slot></div\n ></b-popover>\n </b-input-group>\n <button class=\"btn btn-secondary py-1 fs-18\" @click=\"search\">\n <slot name=\"search-button-label\" />\n </button>\n </div> </b-col\n ></b-row>\n </b-container>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue, Inject, Watch } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { isAxiosError } from 'axios';\nimport pDebounce from 'p-debounce';\nimport { PriipSearchBlockSettings } from '@/src/types/episerver-api';\nimport { PriipModel } from '@/src/types/the-q-api';\nimport { SearchState } from '@/src/types/enumerations';\n\n@Component\nexport default class AdPriipSearch extends Vue {\n @Prop()\n public detailPagePath!: string | null;\n\n @Prop()\n public minInputLength!: number;\n\n @Inject() settingsProperty?: PriipSearchBlockSettings;\n\n @Getter('product', { namespace: 'priip' })\n product!: PriipModel | null;\n\n @Action('loadProductAsync', { namespace: 'priip' })\n loadProductAsync!: (isin: string) => Promise<void>;\n\n private isin = null as string | null;\n private searchState = SearchState.Initial;\n private isLoading = false;\n private showPopover = false;\n private flashMessageTimeoutId = -1;\n private debounceDelay = 500;\n\n @Watch('searchState')\n private stateChanged(newValue: SearchState, oldValue: SearchState) {\n if (newValue != SearchState.Initial) {\n this.flashMessage();\n }\n }\n\n private debounceSearch = pDebounce(this.startSearch, this.debounceDelay);\n\n private async search() {\n if ((this.isin?.length ?? 0) < this.minInputLength) {\n this.searchState = SearchState.NotFound;\n return;\n }\n this.debounceSearch();\n }\n\n private async startSearch() {\n this.resetSearchState();\n this.isLoading = true;\n\n try {\n await this.loadProductAsync(this.isin!);\n if (this.product) {\n this.resetSearchState();\n this.navigateToDetailPage(this.product.isin);\n } else {\n this.searchState = SearchState.NotFound;\n }\n } catch (error: unknown) {\n console.log(error);\n if (isAxiosError(error) && (error?.response?.status === 404 || error?.response?.status === 400)) {\n this.searchState = SearchState.NotFound;\n } else {\n this.searchState = SearchState.Failed;\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private navigateToDetailPage(isin: string) {\n const urlWithFragment = this.detailPagePath + isin;\n document.location.href = urlWithFragment;\n }\n\n private resetSearchState() {\n this.searchState = SearchState.Initial;\n }\n\n private get hasFailed(): boolean {\n return this.searchState == SearchState.Failed;\n }\n\n private get isInputValid(): boolean {\n return this.searchState != SearchState.NotFound;\n }\n\n private get isFine(): boolean {\n return this.searchState == SearchState.Initial;\n }\n\n private get containerClass(): (string | Record<string, boolean>)[] {\n return ['d-flex align-items-center', { 'show-invalid': !this.isFine }];\n }\n\n private get inputClass(): (string | Record<string, boolean>)[] {\n return ['ad-priip-search-input-group mr-2 p-2', { 'in-valid': !this.isFine }];\n }\n\n private flashMessage() {\n this.showPopover = true;\n const self = this;\n\n if (this.flashMessageTimeoutId > 0) {\n window.clearTimeout(this.flashMessageTimeoutId);\n this.flashMessageTimeoutId = -1;\n }\n this.flashMessageTimeoutId = window.setTimeout(() => {\n var timeoutId = self.flashMessageTimeoutId;\n self.hideMessage(timeoutId);\n }, 5000);\n }\n\n private hideMessage(timeoutId: number) {\n this.showPopover = false;\n if (timeoutId === this.flashMessageTimeoutId) {\n this.flashMessageTimeoutId = -1;\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.ad-priip-search-input-group {\n border: 1px solid $cool-grey;\n border-radius: $border-radius;\n\n &:focus-within {\n background: $light-grey;\n }\n\n input {\n height: 20px;\n }\n .spinner-border {\n width: 1.3em;\n height: 1.3em;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=45c7568e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=45c7568e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('div',[(!_vm.isArchiveDetail)?_vm._t(\"product-detail-page\",null,{\"product\":_vm.product}):_vm._e(),(_vm.isArchiveDetail)?_vm._t(\"archive-detail-page\",null,{\"product\":_vm.product}):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <div>\n <slot v-if=\"!isArchiveDetail\" :product=\"product\" name=\"product-detail-page\"></slot>\n <slot v-if=\"isArchiveDetail\" :product=\"product\" name=\"archive-detail-page\"></slot>\n </div>\n </ad-error>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\nimport AdProductDetails from '@/src/components/organisms/ad-product-details/index.vue';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { HttpStatusCodes } from '@/src/types/enumerations';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n components: {\n AdProductDetails,\n },\n})\nexport default class AdProductDetailsLoadGuard extends Vue {\n @Prop()\n isinOrNsin!: string;\n\n @Action('loadProductAsync', { namespace: 'product' })\n loadProductAsync!: (isinOrNsin: string) => Promise<void>;\n\n @Action('loadFirstProductAsync', { namespace: 'product' })\n loadFirstProductAsync!: (leverageType: string) => Promise<void>;\n\n @Getter('product', { namespace: 'product' })\n product!: ProductModel | null;\n\n statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n\n get isArchiveDetail() {\n if (this.product) {\n return this.product.lifetimeCycle != null;\n }\n\n return false;\n }\n\n async created(): Promise<void> {\n try {\n await this.loadProductAsync(this.isinOrNsin);\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n } else {\n this.statusCode = HttpStatusCodes.UnknownError;\n }\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=46bf66ea\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-row',[_c('b-col',{attrs:{\"lg\":\"8\",\"order\":\"2\"}},[(!_vm.isProductHeaderReduced)?[(!_vm.smallHeader)?[_c('h1',{class:_vm.twoLinesVisible ? 'm-40-20' : 'm-60-30'},[_c('ad-product-data-value',{attrs:{\"field-key\":\"product.productNameTranslation.productNameFirstLine\"}})],1),(_vm.twoLinesVisible)?_c('h2',{staticClass:\"m-60-30\"},[_c('ad-product-data-value',{attrs:{\"field-key\":\"product.productNameTranslation.productNameSecondLine\"}})],1):_vm._e()]:[_c('h3',[_c('ad-product-data-value',{attrs:{\"field-key\":\"product.productNameTranslation.productNameFirstLine\"}})],1),(_vm.twoLinesVisible)?_c('h3',[_c('ad-product-data-value',{attrs:{\"field-key\":\"product.productNameTranslation.productNameSecondLine\"}})],1):_vm._e()]]:_vm._e()],2),_c('b-col',{staticClass:\"text-right\",attrs:{\"lg\":\"3\",\"order\":\"3\"}},[_c('b-row',[_vm._t(\"status-icons\")],2)],1),_c('b-col',{staticClass:\"text-right pt-lg-3 pb-3 pb-lg-0\",attrs:{\"lg\":\"1\",\"order\":\"1\",\"order-lg\":\"4\"}},[_c('ad-product-watchlist-toggle')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-row>\n <b-col lg=\"8\" order=\"2\">\n <template v-if=\"!isProductHeaderReduced\">\n <template v-if=\"!smallHeader\">\n <h1 :class=\"twoLinesVisible ? 'm-40-20' : 'm-60-30'\">\n <ad-product-data-value\n field-key=\"product.productNameTranslation.productNameFirstLine\"\n ></ad-product-data-value>\n </h1>\n <h2 class=\"m-60-30\" v-if=\"twoLinesVisible\">\n <ad-product-data-value\n field-key=\"product.productNameTranslation.productNameSecondLine\"\n ></ad-product-data-value>\n </h2>\n </template>\n <template v-else>\n <h3>\n <ad-product-data-value\n field-key=\"product.productNameTranslation.productNameFirstLine\"\n ></ad-product-data-value\n ></h3>\n <h3 v-if=\"twoLinesVisible\">\n <ad-product-data-value\n field-key=\"product.productNameTranslation.productNameSecondLine\"\n ></ad-product-data-value>\n </h3>\n </template>\n </template>\n </b-col>\n <b-col lg=\"3\" class=\"text-right\" order=\"3\">\n <b-row>\n <slot name=\"status-icons\"></slot>\n </b-row>\n </b-col>\n <b-col lg=\"1\" class=\"text-right pt-lg-3 pb-3 pb-lg-0\" order=\"1\" order-lg=\"4\">\n <ad-product-watchlist-toggle />\n </b-col>\n </b-row>\n</template>\n<script lang=\"ts\">\nimport { ProductDetailBlockSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { ProductHeadlineLines } from '@/src/types/enumerations';\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductHeader extends Vue {\n @Inject({ default: { reduceProductHeader: true } })\n settingsProperty?: ProductDetailBlockSetting;\n @Prop() headerMode?: ProductHeadlineLines;\n @Prop({ default: false }) smallHeader!: boolean;\n\n get twoLinesVisible(): boolean {\n return this.settingsProperty?.headlineMode === ProductHeadlineLines.TwoLines;\n }\n\n // true if reduceProductHeader is true\n // false if reduceProductHeader is false or null\n get isProductHeaderReduced(): boolean {\n return this.settingsProperty?.reduceProductHeader == true;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-header.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-header.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-header.vue?vue&type=template&id=dc0ea6ac\"\nimport script from \"./ad-product-header.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-header.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{on:{\"subscribe-to-push\":_vm.subscribePushValue}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <!-- Component has no Template -->\n <span @subscribe-to-push=\"subscribePushValue\" />\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { ProductModel } from '@/src/types/the-q-api';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\nimport { Component, Prop, Inject, Watch } from 'vue-property-decorator';\nimport { InstrumentDataFieldBase } from '@/src/types/episerver-api-instrument';\nimport { InstrumentFieldKeys, ProductDetailBlockSetting } from '@/src/types/episerver-api';\nimport { Action } from 'vuex-class';\nimport evaluateExpressionByKey, { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\n\nconst CITIFIRST_TEXT = 'CitiFirst\\u00A9';\nconst SYMBOL_CHANGE_UP = '\\u25B2';\nconst SYMBOL_CHANGE_DOWN = '\\u25BC';\n\n@Component({})\nexport default class AdProductPageTitle extends Vue {\n @Inject() settingsProperty?: ProductDetailBlockSetting;\n @Inject({ default: null }) nsinKeys!: InstrumentFieldKeys | null;\n @Prop() productModel!: ProductModel;\n @Prop({ default: false }) hidePrices!: boolean;\n\n @Action('subscribePushValue', { namespace: 'product' })\n subscribePushValue!: (key: string) => Promise<void>;\n\n created() {\n this.updateTitle();\n\n // start push listener\n this.subscribePushValue('product.price.bid.amount');\n this.subscribePushValue('product.price.ask.amount');\n }\n\n private getNSINValue(): string | undefined {\n if (!this.settingsProperty) return;\n if (!this.nsinKeys?.productKey) return;\n\n const expression = (getFormatDataField(this.nsinKeys.productKey) as InstrumentDataFieldBase)?.valueExpression;\n if (!expression) {\n return;\n }\n const productNsinValue = evaluateExpressionByKey(expression, { product: this.productModel });\n const productNsin = formatField(productNsinValue, this.nsinKeys.productKey);\n return productNsin;\n }\n\n private getPriceData(): string | undefined {\n if (!this.productModel.price) {\n // hide if no price information available\n return;\n }\n\n const ask = formatField(this.productModel.price?.ask?.amount, 'product.price.ask.amount');\n const bid = formatField(this.productModel.price?.bid?.amount, 'product.price.bid.amount');\n\n const changeAbsolute = this.productModel.price?.changeAbsolute?.amount;\n\n let changeIndicator = '';\n\n // no change indicator if change is 0\n if (changeAbsolute && !isNaN(changeAbsolute) && Math.abs(changeAbsolute) > 0.0) {\n changeIndicator = changeAbsolute > 0 ? SYMBOL_CHANGE_UP : SYMBOL_CHANGE_DOWN;\n }\n\n return `${bid} / ${ask} ${changeIndicator}`;\n }\n\n @Watch('productModel', { deep: true })\n private updateTitle(): void {\n if (this.productModel) {\n const nsin = this.getNSINValue();\n const price = this.hidePrices ? null : this.getPriceData();\n const productName = formatField(\n this.productModel.productNameTranslation?.productNameFirstLine ?? null,\n 'productNameTranslation.productNameFirstLine',\n this.productModel\n );\n\n const titleString = [price, nsin, productName, CITIFIRST_TEXT]\n .filter((val: string | null | undefined): boolean => !!val)\n .join(' - ');\n\n document.title = titleString;\n }\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-page-title.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-page-title.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-page-title.vue?vue&type=template&id=28502250\"\nimport script from \"./ad-product-page-title.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-page-title.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-product-data-property',{attrs:{\"product\":_vm.product}},[_c('ad-underlying-data-property',{attrs:{\"underlying\":_vm.underlying}},[_c('ad-chart-configuration-property',{attrs:{\"chart-configuration-property\":_vm.chartConfiguration}},[_c('ad-anchor-layout',{attrs:{\"show-navigation\":_vm.$screen.xl},scopedSlots:_vm._u([{key:\"layout-navigation\",fn:function(){return [_vm._t(\"anchor-navigation\")]},proxy:true},{key:\"layout-content\",fn:function(){return [(_vm.isProductHeaderVisible)?_c('ad-product-page-title',{attrs:{\"productModel\":_vm.product,\"hidePrices\":_vm.isProductHeaderReduced}}):_vm._e(),(_vm.isProductHeaderVisible)?_c('ad-product-header',{attrs:{\"productModel\":_vm.product},scopedSlots:_vm._u([{key:\"status-icons\",fn:function(){return [(_vm.product)?_vm._t(\"status-icons\"):_vm._e()]},proxy:true}],null,true)}):_vm._e(),(_vm.product && _vm.isProductHeaderVisible && !_vm.isProductHeaderReduced)?_vm._t(\"important-notices\"):_vm._e(),(_vm.isProductHeaderVisible)?_vm._t(\"product-main-information\"):_vm._e(),(_vm.isProductHeaderVisible && !_vm.isProductHeaderReduced)?[(!_vm.isArchiveDetails)?_c('b-row',[_c('b-col',{staticClass:\"pt-3 pb-3 hr\",attrs:{\"cols\":\"12\",\"lg\":\"7\"}},[_vm._t(\"product-price-data\")],2),_c('b-col',{staticClass:\"pt-3 pb-5 pb-lg-3 hr bl-lg\",attrs:{\"cols\":\"12\",\"lg\":\"5\"}},[_vm._t(\"underlying-price-data\")],2)],1):_vm._e(),_c('b-row',[(_vm.$slots['risk-disclaimer'] === undefined)?_c('div',{staticClass:\"col-12 pt-lg-7 pt-4 hr d-none d-sm-block\"}):_vm._e(),(_vm.$slots['risk-disclaimer'])?_c('div',{staticClass:\"col-12 hr pt-lg-6 mb-lg-3 pt-4\"},[_vm._t(\"risk-disclaimer\")],2):_vm._e()])]:_vm._e(),_c('b-row',[_vm._t(\"items\")],2)]},proxy:true}],null,true)})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-product-data-property :product=\"product\">\n <ad-underlying-data-property :underlying=\"underlying\">\n <ad-chart-configuration-property :chart-configuration-property=\"chartConfiguration\">\n <ad-anchor-layout :show-navigation=\"$screen.xl\">\n <template #layout-navigation>\n <slot name=\"anchor-navigation\"></slot>\n </template>\n <template #layout-content>\n <ad-product-page-title\n :productModel=\"product\"\n :hidePrices=\"isProductHeaderReduced\"\n v-if=\"isProductHeaderVisible\"\n />\n <ad-product-header :productModel=\"product\" v-if=\"isProductHeaderVisible\">\n <template #status-icons>\n <slot name=\"status-icons\" v-if=\"product\"></slot>\n </template>\n </ad-product-header>\n <slot name=\"important-notices\" v-if=\"product && isProductHeaderVisible && !isProductHeaderReduced\"></slot>\n <slot name=\"product-main-information\" v-if=\"isProductHeaderVisible\"></slot>\n <template v-if=\"isProductHeaderVisible && !isProductHeaderReduced\">\n <b-row v-if=\"!isArchiveDetails\">\n <b-col cols=\"12\" lg=\"7\" class=\"pt-3 pb-3 hr\">\n <slot name=\"product-price-data\"></slot>\n </b-col>\n <b-col cols=\"12\" lg=\"5\" class=\"pt-3 pb-5 pb-lg-3 hr bl-lg\">\n <slot name=\"underlying-price-data\"></slot>\n </b-col>\n </b-row>\n <b-row>\n <div v-if=\"$slots['risk-disclaimer'] === undefined\" class=\"col-12 pt-lg-7 pt-4 hr d-none d-sm-block\">\n </div>\n <div v-if=\"$slots['risk-disclaimer']\" class=\"col-12 hr pt-lg-6 mb-lg-3 pt-4\">\n <slot name=\"risk-disclaimer\"></slot>\n </div>\n </b-row>\n </template>\n <b-row>\n <slot name=\"items\"></slot>\n </b-row>\n </template>\n </ad-anchor-layout>\n </ad-chart-configuration-property>\n </ad-underlying-data-property>\n </ad-product-data-property>\n</template>\n<script lang=\"ts\">\nimport { ProductModel, UnderlyingModel } from '@/src/types/the-q-api';\nimport { ProductDetailBlockSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue, Prop } from 'vue-property-decorator';\nimport AdProductHeader from '@/src/components/organisms/ad-product-details/ad-product-header.vue';\nimport AdProductPageTitle from '@/src/components/organisms/ad-product-details/ad-product-page-title.vue';\nimport AdAnchorLayout from '@components/molecules/ad-anchor-layout/index.vue';\nimport { ChartConfiguration } from '@/src/types/vue-api';\nimport { ProductHeadlineLines, UnderlyingType } from '@/src/types/enumerations';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n components: {\n AdProductHeader,\n AdProductPageTitle,\n AdAnchorLayout,\n },\n})\nexport default class AdProductDetails extends Vue {\n @Inject({ default: { hideProductHeader: false, reduceProductHeader: true } })\n settingsProperty?: ProductDetailBlockSetting;\n @Prop()\n productHeaderMode!: ProductHeadlineLines;\n\n @Getter('product', { namespace: 'product' })\n product!: ProductModel | null;\n\n @Action('registerProductUnderlyingForPush', { namespace: 'underlying' })\n registerProductUnderlyingForPush!: (underlying: UnderlyingModel) => void;\n\n get isArchiveDetails(): boolean | null {\n if (!this.product) return null;\n return this.product?.lifetimeCycle != null;\n }\n\n // true if hideProductHeader is false or null\n // false if hideProductHeader is true\n get isProductHeaderVisible(): boolean {\n return !this.settingsProperty?.hideProductHeader;\n }\n\n // true if reduceProductHeader is true\n // false if reduceProductHeader is false or null\n // will be ignored if product header is hidden\n get isProductHeaderReduced(): boolean {\n return this.settingsProperty?.reduceProductHeader == true;\n }\n\n get underlying() {\n if (this.product && this.product.underlyings) {\n const underlyingDefault = this.product.underlyings.find((u) => u.underlyingType === UnderlyingType.Default);\n if (underlyingDefault !== undefined) {\n if (!this.isProductHeaderReduced) {\n this.registerProductUnderlyingForPush(underlyingDefault);\n }\n return underlyingDefault;\n }\n // return empty object so ad-underlying-data-value don't show skeleton loading item\n return {};\n }\n\n return null;\n }\n\n chartConfiguration = new ChartConfiguration();\n\n created(): void {\n this.chartConfiguration.legendInTwoLineModeAtTablet = true;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d711c96e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ad-quick-search\"},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"px-0\"},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'input-group-1' + _vm._uid,\"label-for\":'input-1' + _vm._uid},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"underlying-list-placeholder\")]},proxy:true}],null,true)},[_c('ad-underlying-list',{attrs:{\"input-id\":'input-1' + _vm._uid,\"form-element-state-id\":'input-group-1' + _vm._uid,\"group-items\":true},on:{\"input\":_vm.onUnderlyingChanged},model:{value:(_vm.selectedUnderlying),callback:function ($$v) {_vm.selectedUnderlying=$$v},expression:\"selectedUnderlying\"}})],1)],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"pl-2 fs-16 mb-2\"},[_vm._t(\"product-types-header\")],2)],1),_c('b-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"pl-0 pr-2\"},_vm._l((_vm.productTypesCol(false)),function(type){return _c('ad-product-type-button',{key:type.id,attrs:{\"type\":type,\"disabled\":!_vm.isTypeAvailable(type)},on:{\"click\":function($event){return _vm.doSearch(type)}}})}),1),_c('b-col',{staticClass:\"pl-0 pr-0\"},_vm._l((_vm.productTypesCol(true)),function(type){return _c('ad-product-type-button',{key:type.id,attrs:{\"type\":type,\"disabled\":!_vm.isTypeAvailable(type)},on:{\"click\":function($event){return _vm.doSearch(type)}}})}),1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"pt-3 px-0\"},[_c('a',{staticClass:\"fs-12\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.doSearch()}}},[_vm._t(\"full-search-text\"),_c('ad-icon-chevron',{attrs:{\"size\":\"xxs\",\"direction\":\"right\",\"aria-hidden\":\"true\"}})],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ad-quick-search\">\n <b-row no-gutters>\n <b-col class=\"px-0\">\n <b-form-group :id=\"'input-group-1' + _uid\" :label-for=\"'input-1' + _uid\" class=\"focus-white\">\n <template #label><slot name=\"underlying-list-placeholder\"></slot></template>\n <ad-underlying-list\n :input-id=\"'input-1' + _uid\"\n :form-element-state-id=\"'input-group-1' + _uid\"\n v-model=\"selectedUnderlying\"\n :group-items=\"true\"\n @input=\"onUnderlyingChanged\"\n >\n </ad-underlying-list>\n </b-form-group>\n </b-col>\n </b-row>\n <b-row no-gutters>\n <b-col class=\"pl-2 fs-16 mb-2\">\n <slot name=\"product-types-header\"></slot>\n </b-col>\n </b-row>\n <b-row no-gutters class=\"flex-nowrap\">\n <b-col class=\"pl-0 pr-2\">\n <ad-product-type-button\n v-for=\"type in productTypesCol(false)\"\n :key=\"type.id\"\n @click=\"doSearch(type)\"\n :type=\"type\"\n :disabled=\"!isTypeAvailable(type)\"\n />\n </b-col>\n <b-col class=\"pl-0 pr-0\">\n <ad-product-type-button\n v-for=\"type in productTypesCol(true)\"\n :key=\"type.id\"\n @click=\"doSearch(type)\"\n :type=\"type\"\n :disabled=\"!isTypeAvailable(type)\"\n />\n </b-col>\n </b-row>\n <b-row no-gutters>\n <b-col class=\"pt-3 px-0\">\n <a @click=\"doSearch()\" href=\"#\" class=\"fs-12\"\n ><slot name=\"full-search-text\"></slot>\n <ad-icon-chevron size=\"xxs\" direction=\"right\" aria-hidden=\"true\"></ad-icon-chevron>\n </a>\n </b-col>\n </b-row>\n </div>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { Prop, Component, Watch, Inject } from 'vue-property-decorator';\nimport {\n PageRoutes,\n ProductType,\n ProductUnderlyingFilter,\n ProductTypeFilterModel,\n ProductTypeModel,\n BlockSetting,\n} from '@/src/types/episerver-api';\nimport { Action, Getter } from 'vuex-class';\nimport { redirectToSearchProducts } from '@/src/utils/url-helper';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component\nexport default class AdQuickSearch extends Vue {\n private selectedUnderlying: string | null = null;\n private filter = {\n underlyingIsin: '',\n types: [],\n } as ProductUnderlyingFilter;\n\n @Prop()\n initialUnderlying: string | undefined;\n\n @Inject()\n settingsProperty: BlockSetting | undefined;\n\n @Inject() pageRoutes!: PageRoutes;\n\n @Getter('productUnderlyingTypes', { namespace: 'product' })\n productUnderlyingTypes!: (filter: ProductUnderlyingFilter) => ProductType[];\n\n @Action('getUnderlyingTypesAsync', { namespace: 'product' })\n getUnderlyingTypesAsync!: (filter: ProductUnderlyingFilter) => Promise<void>;\n\n get isSearchPageToOpenInParent(): boolean {\n return this.settingsProperty!.isEmbeddedInExternPage;\n }\n\n private get availableTypes() {\n return this.productUnderlyingTypes(this.filter);\n }\n\n private isTypeAvailable(typ: ProductType): boolean {\n const isAvailable =\n !!this.availableTypes &&\n this.availableTypes.some((at) => at.typeCode === typ.typeCode && at.subTypeCode === typ.subTypeCode);\n return isAvailable;\n }\n\n private get displayedTypes(): ProductTypeFilterModel[] | undefined {\n return this.settingsProperty?.productTypes?.map(\n (t) =>\n ({\n typeCode: t.typeCode,\n subTypeCode: t.subTypeCode,\n }) as ProductTypeFilterModel\n );\n }\n\n @Watch('availableTypes', { immediate: true, deep: true })\n private productTypesCol(odd: boolean): ProductTypeModel[] {\n const types = [] as ProductTypeModel[];\n if (!!this.settingsProperty?.productTypes && this.settingsProperty?.productTypes.length !== 0) {\n for (let i = odd ? 1 : 0; i < this.settingsProperty?.productTypes.length; i += 2) {\n const typ = this.settingsProperty?.productTypes[i];\n types.push(typ);\n }\n }\n return types;\n }\n\n @Watch('initialUnderlying', { immediate: true })\n private selectUnderlying() {\n if (this.initialUnderlying) {\n this.selectedUnderlying = this.initialUnderlying;\n } else {\n this.selectedUnderlying = this.settingsProperty?.defaultUnderlyingIsin || null;\n }\n this.updateProductTypesForUnderlying();\n }\n\n private async onUnderlyingChanged() {\n this.updateProductTypesForUnderlying();\n }\n\n public doSearch(type: ProductTypeModel | undefined): void {\n if (this.selectedUnderlying) {\n this.trackQuickSearch(type);\n redirectToSearchProducts(\n this.selectedUnderlying,\n this.pageRoutes,\n this.isSearchPageToOpenInParent,\n type?.typeCode,\n type?.subTypeCode\n );\n }\n }\n\n private async updateProductTypesForUnderlying(): Promise<void> {\n if (!this.selectedUnderlying || !this.displayedTypes || this.displayedTypes.length === 0) {\n return;\n }\n try {\n this.filter = {\n underlyingIsin: this.selectedUnderlying,\n types: this.displayedTypes,\n } as ProductUnderlyingFilter;\n\n await this.getUnderlyingTypesAsync(this.filter);\n } catch (ex) {\n this.$log.error('Loading Error', ex);\n }\n }\n\n private trackQuickSearch(type: ProductTypeModel | undefined): void {\n if (!type) {\n return;\n }\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'quick_search',\n items: [{ item_id: type?.typeCode + '_' + type?.subTypeCode }],\n });\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6571ccb2\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"row mb-5 mb-md-7\"},[(_vm.first)?_c('div',{staticClass:\"col-12 col-md-6 mb-5 mb-md-0\"},[_c('div',{staticClass:\"row d-flex\"},[_c('div',{staticClass:\"col-12 mb-3 mb-md-5\"},[_c('a',{staticClass:\"aspect-ratio-16-9 w-100 d-block\",attrs:{\"href\":_vm.first.link}},[_c('picture',[_vm._l((_vm.first.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.media,\"srcset\":source.srcset}})}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.first.image.src,\"alt\":_vm.first.image.alt}})],2)])]),_c('div',{staticClass:\"col-0 col-md-2\"}),_c('div',{staticClass:\"col-12 col-md-10\"},[_c('div',{staticClass:\"w-100 fs-16 ce-blog-article-overview__date\"},[_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.first.date,_vm.dateFormatKey)))]),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.first.link}},[_c('ad-template-renderer',{attrs:{\"text\":_vm.first.title}})],1)])]),_c('div',{staticClass:\"w-100 fs-16 mb-3 ce-blog-article-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.first.teaser)+\" \")]),_c('div',{staticClass:\"ce-blog-article-overview__author fs-16\"},[_vm._v(\" \"+_vm._s(_vm.first.author)+\" \"),_c('span',{staticClass:\"ce-blog-article-overview__like fs-14 ml-3\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.first.likeId,\"show-count-on-left\":true}})],1)])])])]):_vm._e(),_c('div',{staticClass:\"col-0 col-md-1\"}),(_vm.second)?_c('div',{staticClass:\"col-12 col-md-5\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 mb-3 mb-md-5\"},[_c('a',{staticClass:\"aspect-ratio-16-9 w-100 d-block\",attrs:{\"href\":\"#\"}},[_c('picture',[_vm._l((_vm.second.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.media,\"srcset\":source.srcset}})}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.second.image.src,\"alt\":_vm.second.image.alt}})],2)])]),_c('div',{staticClass:\"col-12 col-md-10\"},[_c('div',{staticClass:\"w-100 fs-16 ce-blog-article-overview__date\"},[_vm._v(_vm._s(_vm._f(\"formatField\")(_vm.second.date,_vm.dateFormatKey)))]),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.second.link}},[_c('ad-template-renderer',{attrs:{\"text\":_vm.second.title}})],1)])]),_c('div',{staticClass:\"w-100 fs-16 mb-3 ce-blog-article-overview__text\"},[_vm._v(_vm._s(_vm.second.teaser)+\" \")]),_c('div',{staticClass:\"ce-blog-article-overview__author fs-16\"},[_vm._v(\" \"+_vm._s(_vm.second.author)+\" \"),_c('span',{staticClass:\"ce-blog-article-overview__like fs-14 ml-3\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.second.likeId,\"show-count-on-left\":true}})],1)])])])]):_vm._e()]),_c('div',{staticClass:\"row d-flex mb-5 mb-md-7\"},[(_vm.third)?_c('div',{staticClass:\"col-12 col-md-6 mb-5 mb-md-0\"},[_c('div',{staticClass:\"aspect-ratio-16-9 mb-3 mb-md-5\"},[_c('div',{staticClass:\"row aspect-ratio-filler\"},[_c('div',{staticClass:\"col-12 col-md-10 px-0 d-flex align-items-end\"},[_c('a',{staticClass:\"aspect-ratio-16-9 d-block\",attrs:{\"href\":_vm.third.link}},[_c('picture',[_vm._l((_vm.third.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.media,\"srcset\":source.srcset}})}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.third.image.src,\"alt\":_vm.third.image.alt}})],2)])])])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-8\"},[_c('div',{staticClass:\"w-100 fs-16 ce-blog-article-overview__date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.third.date,_vm.dateFormatKey))+\" \")]),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.third.link}},[_c('ad-template-renderer',{attrs:{\"text\":_vm.third.title}})],1)])]),_c('div',{staticClass:\"w-100 fs-16 mb-3 ce-blog-article-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.third.teaser)+\" \")]),_c('div',{staticClass:\"ce-blog-article-overview__author fs-16\"},[_vm._v(\" \"+_vm._s(_vm.third.author)+\" \"),_c('span',{staticClass:\"ce-blog-article-overview__like fs-14 ml-3\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.third.likeId,\"show-count-on-left\":true}})],1)])])])]):_vm._e(),(_vm.fourth)?_c('div',{staticClass:\"col-12 col-md-6 pb-0 pb-md-6\"},[_c('div',{staticClass:\"row d-flex\"},[_c('div',{staticClass:\"col-12 mb-3 mb-md-5\"},[_c('a',{staticClass:\"aspect-ratio-16-9 w-100 d-block\",attrs:{\"href\":_vm.fourth.link}},[_c('picture',[_vm._l((_vm.fourth.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.media,\"srcset\":source.srcset}})}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.fourth.image.src,\"alt\":_vm.fourth.image.alt}})],2)])]),_c('div',{staticClass:\"col-0 col-md-2\"}),_c('div',{staticClass:\"col-12 col-md-10\"},[_c('div',{staticClass:\"w-100 fs-16 ce-blog-article-overview__date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.fourth.date,_vm.dateFormatKey)))]),_c('div',{staticClass:\"w-100\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.fourth.link}},[_c('ad-template-renderer',{attrs:{\"text\":_vm.fourth.title}})],1)])]),_c('div',{staticClass:\"w-100 fs-16 mb-3 ce-blog-article-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.fourth.teaser)+\" \")]),_c('div',{staticClass:\"ce-blog-article-overview__author fs-16\"},[_vm._v(\" \"+_vm._s(_vm.fourth.author)+\" \"),_c('span',{staticClass:\"ce-blog-article-overview__like fs-14 ml-3\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.fourth.likeId,\"show-count-on-left\":true}})],1)])])])]):_vm._e()]),(_vm.fifth)?_c('div',{staticClass:\"row d-flex flex-column-reverse flex-lg-row align-items-center mb-5 mb-lg-7\",class:{ 'flex-lg-row-reverse': _vm.fifthChunkReversed }},[_c('div',{staticClass:\"col-12 col-lg-4\"},[_c('div',{staticClass:\"w-100 fs-16 ce-blog-article-overview__date\"},[_vm._v(\" \"+_vm._s(_vm._f(\"formatField\")(_vm.fifth.date,_vm.dateFormatKey)))]),_c('div',{staticClass:\"w-100 pb-0 pb-lg-2\"},[_c('h3',[_c('a',{attrs:{\"href\":_vm.fifth.link}},[_c('ad-template-renderer',{attrs:{\"text\":_vm.fifth.title}})],1)])]),_c('div',{staticClass:\"w-100 fs-16 mb-3 ce-blog-article-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.fifth.teaser)+\" \")]),_c('div',{staticClass:\"ce-blog-article-overview__author fs-16\"},[_vm._v(\" \"+_vm._s(_vm.fifth.author)+\" \"),_c('span',{staticClass:\"ce-blog-article-overview__like fs-14 ml-3\"},[_c('button',{staticClass:\"ce-author-like__button text-nowrap px-0\",on:{\"click\":function($event){return _vm.likeArticle(_vm.fifth)}}},[_c('ad-icon-like',{attrs:{\"height\":\"1.71em\"}})],1),_vm._v(\" \"+_vm._s(_vm.fifth.likes)+\" \")])])]),_c('div',{staticClass:\"col-12 col-lg-8 mb-3 mb-lg-0\"},[_c('a',{staticClass:\"aspect-ratio-16-9 w-100 d-block\",attrs:{\"href\":_vm.fifth.link}},[_c('picture',[_vm._l((_vm.fifth.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.media,\"srcset\":source.srcset}})}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.fifth.image.src,\"alt\":_vm.fifth.image.alt}})],2)])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"row mb-5 mb-md-7\">\n <div v-if=\"first\" class=\"col-12 col-md-6 mb-5 mb-md-0\">\n <div class=\"row d-flex\">\n <div class=\"col-12 mb-3 mb-md-5\">\n <a :href=\"first.link\" class=\"aspect-ratio-16-9 w-100 d-block\">\n <picture>\n <source\n v-for=\"(source, i) in first.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.media\"\n :srcset=\"source.srcset\"\n />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"first.image.src\" :alt=\"first.image.alt\" />\n </picture>\n </a>\n </div>\n <div class=\"col-0 col-md-2\" />\n <div class=\"col-12 col-md-10\">\n <div class=\"w-100 fs-16 ce-blog-article-overview__date\">{{ first.date | formatField(dateFormatKey) }}</div>\n <div class=\"w-100\">\n <h3>\n <a :href=\"first.link\"><ad-template-renderer :text=\"first.title\"></ad-template-renderer></a>\n </h3>\n </div>\n <div class=\"w-100 fs-16 mb-3 ce-blog-article-overview__text\">\n {{ first.teaser }}\n </div>\n <div class=\"ce-blog-article-overview__author fs-16\">\n {{ first.author }}\n <span class=\"ce-blog-article-overview__like fs-14 ml-3\">\n <ad-like-count :content-id=\"first.likeId\" :show-count-on-left=\"true\"></ad-like-count>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-0 col-md-1\"></div>\n <div v-if=\"second\" class=\"col-12 col-md-5\">\n <div class=\"row\">\n <div class=\"col-12 mb-3 mb-md-5\">\n <a href=\"#\" class=\"aspect-ratio-16-9 w-100 d-block\">\n <picture>\n <source\n v-for=\"(source, i) in second.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.media\"\n :srcset=\"source.srcset\"\n />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"second.image.src\" :alt=\"second.image.alt\" />\n </picture>\n </a>\n </div>\n <div class=\"col-12 col-md-10\">\n <div class=\"w-100 fs-16 ce-blog-article-overview__date\">{{ second.date | formatField(dateFormatKey) }}</div>\n <div class=\"w-100\">\n <h3>\n <a :href=\"second.link\"><ad-template-renderer :text=\"second.title\"></ad-template-renderer></a>\n </h3>\n </div>\n <div class=\"w-100 fs-16 mb-3 ce-blog-article-overview__text\">{{ second.teaser }} </div>\n <div class=\"ce-blog-article-overview__author fs-16\">\n {{ second.author }}\n <span class=\"ce-blog-article-overview__like fs-14 ml-3\">\n <ad-like-count :content-id=\"second.likeId\" :show-count-on-left=\"true\"></ad-like-count>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row d-flex mb-5 mb-md-7\">\n <div v-if=\"third\" class=\"col-12 col-md-6 mb-5 mb-md-0\">\n <div class=\"aspect-ratio-16-9 mb-3 mb-md-5\">\n <div class=\"row aspect-ratio-filler\">\n <div class=\"col-12 col-md-10 px-0 d-flex align-items-end\">\n <a :href=\"third.link\" class=\"aspect-ratio-16-9 d-block\">\n <picture>\n <source\n v-for=\"(source, i) in third.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.media\"\n :srcset=\"source.srcset\"\n />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"third.image.src\" :alt=\"third.image.alt\" />\n </picture>\n </a>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 col-md-8\">\n <div class=\"w-100 fs-16 ce-blog-article-overview__date\">\n {{ third.date | formatField(dateFormatKey) }}\n </div>\n <div class=\"w-100\">\n <h3>\n <a :href=\"third.link\"><ad-template-renderer :text=\"third.title\"></ad-template-renderer></a>\n </h3>\n </div>\n <div class=\"w-100 fs-16 mb-3 ce-blog-article-overview__text\">\n {{ third.teaser }}\n </div>\n <div class=\"ce-blog-article-overview__author fs-16\">\n {{ third.author }}\n <span class=\"ce-blog-article-overview__like fs-14 ml-3\">\n <ad-like-count :content-id=\"third.likeId\" :show-count-on-left=\"true\"></ad-like-count>\n </span>\n </div>\n </div>\n </div>\n </div>\n <div v-if=\"fourth\" class=\"col-12 col-md-6 pb-0 pb-md-6\">\n <div class=\"row d-flex\">\n <div class=\"col-12 mb-3 mb-md-5\">\n <a :href=\"fourth.link\" class=\"aspect-ratio-16-9 w-100 d-block\">\n <picture>\n <source\n v-for=\"(source, i) in fourth.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.media\"\n :srcset=\"source.srcset\"\n />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"fourth.image.src\" :alt=\"fourth.image.alt\" />\n </picture>\n </a>\n </div>\n <div class=\"col-0 col-md-2\" />\n <div class=\"col-12 col-md-10\">\n <div class=\"w-100 fs-16 ce-blog-article-overview__date\">\n {{ fourth.date | formatField(dateFormatKey) }}</div\n >\n <div class=\"w-100\">\n <h3>\n <a :href=\"fourth.link\"><ad-template-renderer :text=\"fourth.title\"></ad-template-renderer></a>\n </h3>\n </div>\n <div class=\"w-100 fs-16 mb-3 ce-blog-article-overview__text\">\n {{ fourth.teaser }}\n </div>\n <div class=\"ce-blog-article-overview__author fs-16\">\n {{ fourth.author }}\n <span class=\"ce-blog-article-overview__like fs-14 ml-3\">\n <ad-like-count :content-id=\"fourth.likeId\" :show-count-on-left=\"true\"></ad-like-count>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div\n v-if=\"fifth\"\n class=\"row d-flex flex-column-reverse flex-lg-row align-items-center mb-5 mb-lg-7\"\n :class=\"{ 'flex-lg-row-reverse': fifthChunkReversed }\"\n >\n <div class=\"col-12 col-lg-4\">\n <div class=\"w-100 fs-16 ce-blog-article-overview__date\"> {{ fifth.date | formatField(dateFormatKey) }}</div>\n <div class=\"w-100 pb-0 pb-lg-2\">\n <h3>\n <a :href=\"fifth.link\">\n <ad-template-renderer :text=\"fifth.title\"></ad-template-renderer>\n </a>\n </h3>\n </div>\n <div class=\"w-100 fs-16 mb-3 ce-blog-article-overview__text\">\n {{ fifth.teaser }}\n </div>\n <div class=\"ce-blog-article-overview__author fs-16\">\n {{ fifth.author }}\n <span class=\"ce-blog-article-overview__like fs-14 ml-3\">\n <button class=\"ce-author-like__button text-nowrap px-0\" @click=\"likeArticle(fifth)\">\n <ad-icon-like height=\"1.71em\"></ad-icon-like>\n </button>\n {{ fifth.likes }}\n </span>\n </div>\n </div>\n <div class=\"col-12 col-lg-8 mb-3 mb-lg-0\">\n <a :href=\"fifth.link\" class=\"aspect-ratio-16-9 w-100 d-block\">\n <picture>\n <source\n v-for=\"(source, i) in fifth.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.media\"\n :srcset=\"source.srcset\"\n />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"fifth.image.src\" :alt=\"fifth.image.alt\" />\n </picture>\n </a>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Emit, Prop, Inject } from 'vue-property-decorator';\nimport Vue from 'vue';\nimport { BlogArticleOverviewBlogArticle } from '@/src/types/ce-component-types';\nimport { CommonFormatsFieldKeys } from '@/src/types/episerver-api';\n\n/**\n * Renders a chunk of 5 blog overview articles in a specific layout\n */\n@Component\nexport default class CeBlogArticleOverviewArticleChunk extends Vue {\n @Inject({ default: null }) commonFormatsKeys!: CommonFormatsFieldKeys | null;\n @Prop({ required: true }) articles!: BlogArticleOverviewBlogArticle[];\n\n /**\n * Indicates the index of this chunk in the list of all chunks\n * Is required to decide if the fifth block of this chunk should be reversed or not.\n */\n @Prop({ required: true }) chunkIndex!: number;\n\n get first() {\n return this.articles[0];\n }\n get second() {\n return this.articles[1];\n }\n get third() {\n return this.articles[2];\n }\n get fourth() {\n return this.articles[3];\n }\n get fifth() {\n return this.articles[4];\n }\n\n get fifthChunkReversed() {\n return this.chunkIndex % 2 !== 0;\n }\n\n get dateFormatKey(): string {\n return this.commonFormatsKeys?.publishDateFormatFieldKey || 'date';\n }\n\n @Emit('likeArticle')\n likeArticle(article: BlogArticleOverviewBlogArticle) {\n return article;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./_blog-article-overview-article-chunk.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./_blog-article-overview-article-chunk.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./_blog-article-overview-article-chunk.vue?vue&type=template&id=71290f5c\"\nimport script from \"./_blog-article-overview-article-chunk.vue?vue&type=script&lang=ts\"\nexport * from \"./_blog-article-overview-article-chunk.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!!_vm.article)?_c('div',[_c('div',{staticClass:\"row mb-4\"},[_c('div',{staticClass:\"col-12 mb-3 mb-md-5\"},[_c('a',{staticClass:\"aspect-ratio-silver w-100 d-block\",attrs:{\"href\":_vm.article.link}},[_c('picture',[_vm._l((_vm.article.image.sources),function(source,i){return _c('source',{key:i,attrs:{\"media\":source.media,\"srcset\":source.srcset}})}),_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":_vm.article.image.src,\"alt\":_vm.article.image.alt}})],2)])]),_c('div',{staticClass:\"col-12 col-md-8\"},[_c('div',{staticClass:\"w-100\"},[_c('h2',[_c('a',{attrs:{\"href\":_vm.article.link}},[_c('ad-template-renderer',{attrs:{\"text\":_vm.article.title}})],1)])]),_c('div',{staticClass:\"w-100 fs-22 mb-3 ce-blog-article-overview__text\"},[_vm._v(\" \"+_vm._s(_vm.article.teaser)+\" \")]),_c('div',{staticClass:\"ce-blog-article-overview__author fs-16\"},[_vm._v(\" \"+_vm._s(_vm.article.author)+\" \"),_c('span',{staticClass:\"ce-blog-article-overview__like fs-14 ml-3\"},[_c('ad-like-count',{attrs:{\"content-id\":_vm.article.likeId,\"show-count-on-left\":true}})],1)])])]),_c('div',{staticClass:\"row mb-6 mb-md-8\"},[_c('div',{staticClass:\"col-12 d-flex justify-content-center justify-content-md-start\"},[_c('a',{staticClass:\"btn btn-secondary w-100 w-md-auto\",attrs:{\"href\":_vm.article.link}},[_vm._t(\"read-more\",function(){return [_vm._v(\"Read More\")]})],2)])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!!article\">\n <div class=\"row mb-4\">\n <div class=\"col-12 mb-3 mb-md-5\">\n <a :href=\"article.link\" class=\"aspect-ratio-silver w-100 d-block\">\n <picture>\n <source\n v-for=\"(source, i) in article.image.sources\"\n v-bind:key=\"i\"\n :media=\"source.media\"\n :srcset=\"source.srcset\"\n />\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"article.image.src\" :alt=\"article.image.alt\" />\n </picture>\n </a>\n </div>\n <div class=\"col-12 col-md-8\">\n <div class=\"w-100\">\n <h2>\n <a :href=\"article.link\"><ad-template-renderer :text=\"article.title\"></ad-template-renderer></a>\n </h2>\n </div>\n <div class=\"w-100 fs-22 mb-3 ce-blog-article-overview__text\">\n {{ article.teaser }}\n </div>\n <div class=\"ce-blog-article-overview__author fs-16\">\n {{ article.author }}\n <span class=\"ce-blog-article-overview__like fs-14 ml-3\">\n <ad-like-count :content-id=\"article.likeId\" :show-count-on-left=\"true\"></ad-like-count>\n </span>\n </div>\n </div>\n </div>\n <div class=\"row mb-6 mb-md-8\">\n <div class=\"col-12 d-flex justify-content-center justify-content-md-start\">\n <a :href=\"article.link\" class=\"btn btn-secondary w-100 w-md-auto\"><slot name=\"read-more\">Read More</slot></a>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Emit, Prop } from 'vue-property-decorator';\nimport Vue from 'vue';\nimport { BlogArticleOverviewBlogArticle } from '@/src/types/ce-component-types';\n\n@Component\nexport default class CeBlogArticleOverviewHighlightArticle extends Vue {\n @Prop({ required: true }) article!: BlogArticleOverviewBlogArticle;\n\n @Emit('likeArticle')\n likeArticle(article: BlogArticleOverviewBlogArticle) {\n return article;\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./_blog-article-overview-highlight-article.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./_blog-article-overview-highlight-article.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./_blog-article-overview-highlight-article.vue?vue&type=template&id=32891833\"\nimport script from \"./_blog-article-overview-highlight-article.vue?vue&type=script&lang=ts\"\nexport * from \"./_blog-article-overview-highlight-article.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-blog-article-overview\"},[(_vm.$slots['heading'])?_c('h1',[_vm._t(\"heading\")],2):_vm._e(),_c('ce-blog-article-overview-highlight-article',{attrs:{\"article\":_vm.highlightArticle},on:{\"likeArticle\":function($event){return _vm.likeArticle($event)}},scopedSlots:_vm._u([{key:\"read-more\",fn:function(){return [_vm._t(\"read-more\",function(){return [_vm._v(\"Read More\")]})]},proxy:true}],null,true)}),_vm._l((_vm.articleChunks),function(chunk,i){return _c('ce-blog-article-overview-article-chunk',{key:i,attrs:{\"articles\":chunk,\"chunkIndex\":i},on:{\"likeArticle\":function($event){return _vm.likeArticle($event)}}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-blog-article-overview\">\n <h1 v-if=\"$slots['heading']\"><slot name=\"heading\"></slot></h1>\n <ce-blog-article-overview-highlight-article :article=\"highlightArticle\" @likeArticle=\"likeArticle($event)\">\n <template #read-more>\n <slot name=\"read-more\">Read More</slot>\n </template>\n </ce-blog-article-overview-highlight-article>\n <ce-blog-article-overview-article-chunk\n v-for=\"(chunk, i) in articleChunks\"\n v-bind:key=\"i\"\n :articles=\"chunk\"\n @likeArticle=\"likeArticle($event)\"\n :chunkIndex=\"i\"\n >\n </ce-blog-article-overview-article-chunk>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop } from 'vue-property-decorator';\nimport Vue from 'vue';\nimport CeBlogArticleOverviewHighlightArticle from './_blog-article-overview-highlight-article.vue';\nimport CeBlogArticleOverviewArticleChunk from './_blog-article-overview-article-chunk.vue';\nimport { BlogArticleOverviewBlogArticle } from '@/src/types/ce-component-types';\n\n@Component({\n components: {\n CeBlogArticleOverviewHighlightArticle,\n CeBlogArticleOverviewArticleChunk,\n },\n})\nexport default class CeBlogArticleOverview extends Vue {\n @Prop({ required: true }) articles!: BlogArticleOverviewBlogArticle[];\n\n get highlightArticle(): BlogArticleOverviewBlogArticle {\n return this.articles[0];\n }\n\n get articleChunks(): BlogArticleOverviewBlogArticle[][] {\n const chunks: BlogArticleOverviewBlogArticle[][] = [];\n\n const [, ...nonHighlightArticles] = this.articles;\n\n let chunk: BlogArticleOverviewBlogArticle[] = [];\n for (let i = 0; i < nonHighlightArticles.length; i++) {\n if (chunk.length === 5) {\n chunks.push(chunk);\n chunk = [];\n }\n chunk.push(nonHighlightArticles[i]);\n }\n\n chunks.push(chunk);\n\n return chunks;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-blog-article-overview {\n &__date {\n color: $peacock-blue;\n }\n &__header {\n color: $marine-blue;\n }\n &__text {\n color: $gunmetal;\n }\n &__author {\n color: $gunmetal;\n }\n &__like {\n color: $peacock-blue;\n font-weight: bold;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=10df47d6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=10df47d6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-contact bg-light overflow-hidden\"},[_c('div',{staticClass:\"container content-container content-container-x my-0\"},[_c('div',{staticClass:\"row align-items-stretch\"},[_c('div',{staticClass:\"col-12 col-lg-4 py-6 pr-lg-4 d-flex flex-column justify-content-center\"},[_c('div',{staticClass:\"ce-contact-text--header fs-44 mb-3\"},[_vm._t(\"contact-header\")],2),_c('div',{staticClass:\"ce-contact-text--default fs-18\"},[_vm._t(\"contact-phone-label\")],2),_c('div',{staticClass:\"ce-contact-text--bold fs-26\"},[_c('a',{staticClass:\"phone\",attrs:{\"href\":_vm.phoneLink}},[_vm._t(\"contact-phone-number\")],2)]),_c('div',{staticClass:\"ce-contact-text--default fs-18 mb-3\"},[_vm._t(\"contact-office-hours\")],2),_c('div',{staticClass:\"ce-contact-text--default fs-18\"},[_vm._t(\"contact-email-label\")],2),_c('a',{staticClass:\"ce-contact-text--mail fs-26\",attrs:{\"href\":_vm.emailLink}},[_vm._t(\"contact-email\")],2)]),_c('div',{staticClass:\"col-12 col-lg-8 p-0\"},[_c('picture',{staticClass:\"ce-contact-image__picture\"},[_c('source',{attrs:{\"media\":\"(min-width:650px)\",\"srcset\":this.image}}),_c('source',{attrs:{\"media\":\"(max-width:649px)\",\"srcset\":this.imageSmall}}),_c('img',{staticClass:\"h-100\",attrs:{\"src\":this.image}})])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-contact bg-light overflow-hidden\">\n <div class=\"container content-container content-container-x my-0\">\n <div class=\"row align-items-stretch\">\n <div class=\"col-12 col-lg-4 py-6 pr-lg-4 d-flex flex-column justify-content-center\">\n <div class=\"ce-contact-text--header fs-44 mb-3\"><slot name=\"contact-header\"></slot></div>\n <div class=\"ce-contact-text--default fs-18\"><slot name=\"contact-phone-label\"></slot></div>\n <div class=\"ce-contact-text--bold fs-26\">\n <a class=\"phone\" :href=\"phoneLink\"><slot name=\"contact-phone-number\"></slot></a>\n </div>\n <div class=\"ce-contact-text--default fs-18 mb-3\"><slot name=\"contact-office-hours\"></slot></div>\n <div class=\"ce-contact-text--default fs-18\"><slot name=\"contact-email-label\"></slot></div>\n <a :href=\"emailLink\" class=\"ce-contact-text--mail fs-26\">\n <slot name=\"contact-email\"></slot>\n </a>\n </div>\n <div class=\"col-12 col-lg-8 p-0\">\n <picture class=\"ce-contact-image__picture\">\n <source media=\"(min-width:650px)\" :srcset=\"this.image\" />\n <source media=\"(max-width:649px)\" :srcset=\"this.imageSmall\" />\n <img :src=\"this.image\" class=\"h-100\" />\n </picture>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\n@Component\nexport default class CeContact extends Vue {\n @Prop({ type: String })\n image;\n @Prop({ type: String })\n imageSmall;\n @Prop({ type: String })\n contactPhone;\n @Prop({ type: String })\n contactEmail;\n\n get phoneLink() {\n return this.contactPhone ? `tel:${this.contactPhone}` : '';\n }\n\n get emailLink() {\n return this.contactPhone ? `mailto:${this.contactEmail}` : '';\n }\n}\n</script>\n\n<style lang=\"scss\">\n/*------------------------------------*\\\n #Different types of text in whole contact\n\\*------------------------------------*/\n.ce-contact-text--header {\n line-height: rem(38);\n color: $heading-line-color;\n}\n\n.ce-contact-text--default {\n line-height: rem(22);\n color: $gunmetal;\n}\n.ce-contact-text--bold {\n padding-top: map-get($spacers, 1);\n padding-bottom: map-get($spacers, 2);\n line-height: rem(26);\n color: $gunmetal;\n font-weight: bold;\n\n & .phone {\n color: $gunmetal;\n }\n}\n\n.ce-contact-text--mail {\n line-height: rem(31);\n color: $bright-sky-blue;\n}\n\n/*------------------------------------*\\\n #Image\n\\*------------------------------------*/\n.ce-contact-image {\n &__picture img {\n object-fit: cover;\n object-position: center;\n width: calc((100vw - 100% * 12 / 8) / 2 + 100%);\n\n @include media-breakpoint-down('md') {\n width: 100%;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=215a989c\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=215a989c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('footer',{staticClass:\"ce-footer\"},[_c('div',{staticClass:\"back-to-top\"},[_c('ce-back-to-top-button')],1),_c('div',{staticClass:\"d-flex flex-lg-row flex-column align-items-lg-center\"},[_c('div',{staticClass:\"ce-footer__logo\"},[_c('a',{attrs:{\"href\":_vm.logoLinkHref,\"title\":_vm.logoLinkTitle}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@assets/citi_logo_footer.svg\"),\"alt\":\"Citi Logo\",\"width\":\"90\"}})])]),_c('b-navbar',{staticClass:\"flex-fill\",attrs:{\"type\":\"dark\"}},[_c('b-navbar-nav',{staticClass:\"ce-footer__service border-bottom\"},[_vm._t(\"default\")],2),_c('b-navbar-nav',{staticClass:\"ce-footer__legal\"},[_vm._t(\"legal\"),_c('b-nav-text',{staticClass:\"ce-footer__copyright\"},[_vm._v(\"© \"+_vm._s(' ' + _vm.brandName))])],2)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <footer class=\"ce-footer\">\n <div class=\"back-to-top\">\n <ce-back-to-top-button />\n </div>\n <div class=\"d-flex flex-lg-row flex-column align-items-lg-center\">\n <div class=\"ce-footer__logo\">\n <a :href=\"logoLinkHref\" :title=\"logoLinkTitle\"\n ><img class=\"logo\" src=\"~@assets/citi_logo_footer.svg\" alt=\"Citi Logo\" width=\"90\"\n /></a>\n </div>\n <b-navbar type=\"dark\" class=\"flex-fill\">\n <b-navbar-nav class=\"ce-footer__service border-bottom\">\n <slot></slot>\n </b-navbar-nav>\n <b-navbar-nav class=\"ce-footer__legal\">\n <slot name=\"legal\"></slot>\n <b-nav-text class=\"ce-footer__copyright\">© {{ ' ' + brandName }}</b-nav-text>\n </b-navbar-nav>\n </b-navbar>\n </div>\n </footer>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeFooter extends Vue {\n @Prop({ default: 'Citigroup Inc.' }) private brandName!: string;\n @Prop({ default: '/' }) private logoLinkHref!: string;\n @Prop({ default: 'Back to Start' }) private logoLinkTitle: string | undefined;\n}\n</script>\n\n<style lang=\"scss\">\n$ce-footer-spacing-y-xs: calc(#{$grid-gutter-width * 2} - #{$nav-link-padding-y});\n$ce-footer-spacing-y-lg: calc(#{$grid-gutter-width} - #{$nav-link-padding-y});\n\n.ce-footer {\n background: $footer-color;\n line-height: 1.1112;\n\n .back-to-top {\n display: flex;\n position: absolute;\n top: -6.25rem;\n justify-content: center;\n z-index: 2;\n width: 100%;\n height: 0;\n }\n\n &__logo {\n padding: 0 0 0 $grid-gutter-width;\n\n @include media-breakpoint-down('md') {\n padding: $grid-gutter-width 0 0 0;\n text-align: center;\n }\n }\n\n .navbar {\n flex-flow: column;\n padding: 0 $grid-gutter-width;\n\n .navbar-nav {\n padding: $ce-footer-spacing-y-xs 0;\n width: 100%;\n\n @include media-breakpoint-down('md') {\n flex-direction: column;\n }\n\n @include media-breakpoint-up('lg') {\n padding: $ce-footer-spacing-y-lg 0;\n }\n }\n\n .nav-link {\n margin-right: $nav-link-padding-x * 2;\n padding: $nav-link-padding-y 0;\n &:hover,\n &:focus {\n text-decoration: underline;\n color: $white;\n }\n }\n\n @include media-breakpoint-up('lg') {\n padding: $grid-gutter-width;\n }\n }\n\n &__service {\n border-color: rgba($white, 0.4);\n }\n\n &__copyright {\n @include media-breakpoint-down('md') {\n margin-top: $ce-footer-spacing-y-xs;\n }\n\n @include media-breakpoint-up('lg') {\n flex-grow: 1;\n text-align: right;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5ea9d7ed\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5ea9d7ed&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_vm.documentSearchClass},[_c('div',{class:_vm.globalSearchInputClass},[_c('b-input-group',{staticClass:\"py-0 align-items-center\"},[_c('b-input-group-append',{staticClass:\"ce-header-quicksearch__icon fs-18 py-0\"},[_c('ad-icon-search')],1),_c('ad-global-search',{ref:\"globalSearch\",attrs:{\"showOnlyProductsInSearch\":_vm.showOnlyProductsInSearch},on:{\"changeValidationState\":_vm.changeGlobalSearchInputValidationState},scopedSlots:_vm._u([{key:\"error-message\",fn:function(){return [_vm._t(\"search-error-message\")]},proxy:true}],null,true)})],1)],1),_c('button',{staticClass:\"btn btn-secondary py-1 fs-18\",on:{\"click\":_vm.onClickSearchButton}},[_c('ad-icon-search'),_vm._t(\"document-search-button-text\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :class=\"documentSearchClass\">\n <!-- Search input -->\n <div :class=\"globalSearchInputClass\">\n <b-input-group class=\"py-0 align-items-center\">\n <b-input-group-append class=\"ce-header-quicksearch__icon fs-18 py-0\">\n <ad-icon-search></ad-icon-search>\n </b-input-group-append>\n <ad-global-search\n :showOnlyProductsInSearch=\"showOnlyProductsInSearch\"\n @changeValidationState=\"changeGlobalSearchInputValidationState\"\n ref=\"globalSearch\"\n >\n <template #error-message> <slot name=\"search-error-message\"></slot></template>\n </ad-global-search>\n </b-input-group>\n </div>\n <button class=\"btn btn-secondary py-1 fs-18\" @click=\"onClickSearchButton\">\n <ad-icon-search></ad-icon-search>\n <slot name=\"document-search-button-text\"></slot>\n </button>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport AdGlobalSearch from '@/src/components/molecules/ad-global-search/index.vue';\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeDocumentSearch extends Vue {\n protected showOnlyProductsInSearch = true;\n private isGlobalSearchInputValid: boolean = true;\n\n async onClickSearchButton() {\n await (this.$refs?.globalSearch as AdGlobalSearch)?.rapidSearch?.();\n }\n get documentSearchClass(): (string | Record<string, boolean>)[] {\n return ['ce-document-search d-flex align-items-center', { 'show-invalid': !this.isGlobalSearchInputValid }];\n }\n\n get globalSearchInputClass(): (string | Record<string, boolean>)[] {\n return ['ce-header-quicksearch mr-2 py-0', { 'in-valid': !this.isGlobalSearchInputValid }];\n }\n\n private changeGlobalSearchInputValidationState(isValid: boolean) {\n this.isGlobalSearchInputValid = isValid;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-document-search {\n .v-select {\n flex: 1 1 0;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=15aa2cfc\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=15aa2cfc&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-header-search-flyout\"},[_c('b-navbar-toggle',{staticClass:\"ce-header-search-flyout__toggler ce-header-back fs-14\",attrs:{\"target\":\"nav-collapse-back\"}},[_c('ad-icon-go-back',{staticClass:\"mr-2\",attrs:{\"width\":\"1.71em\",\"height\":\"100%\"}}),_c('span',[_vm._t(\"go-back\")],2)],1),_c('b-collapse',{staticClass:\"ce-header-flyout ce-header-search-flyout__flyout\",attrs:{\"accordion\":\"header\",\"id\":\"nav-collapse-back\",\"is-nav\":\"\"}},[_c('b-navbar-nav',{staticClass:\"ce-header-nav-main ce-header-search-flyout__background ce-header-back-slot\"},[_vm._t(\"back-menu\")],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-header-search-flyout\">\n <b-navbar-toggle class=\"ce-header-search-flyout__toggler ce-header-back fs-14\" target=\"nav-collapse-back\"\n ><ad-icon-go-back width=\"1.71em\" height=\"100%\" class=\"mr-2\"></ad-icon-go-back\n ><span><slot name=\"go-back\"></slot></span\n ></b-navbar-toggle>\n <b-collapse\n accordion=\"header\"\n id=\"nav-collapse-back\"\n class=\"ce-header-flyout ce-header-search-flyout__flyout\"\n is-nav\n >\n <b-navbar-nav class=\"ce-header-nav-main ce-header-search-flyout__background ce-header-back-slot\">\n <slot name=\"back-menu\"></slot>\n </b-navbar-nav>\n </b-collapse>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeHeaderBack extends Vue {}\n</script>\n\n<style lang=\"scss\">\n.sticky {\n .ce-header-back {\n display: flex;\n }\n}\n\n.ce-header-back {\n display: none;\n align-items: center;\n &:active,\n &:focus {\n span,\n svg {\n color: $bright-sky-blue;\n }\n }\n &.not-collapsed.not-collapsed {\n span,\n svg {\n color: $link-color;\n }\n }\n}\n.ce-header-back-slot.ce-header-back-slot {\n .nav-item {\n padding-left: map-get($spacers, 3);\n .nav-link {\n color: $gunmetal;\n }\n }\n\n li:last-child {\n a,\n .nav-link {\n margin-right: map-get($spacers, 3);\n border-bottom: 4px solid $peacock-blue;\n padding-bottom: rem(10);\n color: $peacock-blue;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=85f528a6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=85f528a6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{staticClass:\"nav-item d-flex ce-nav-item-dropdown\"},[(_vm.href)?_c('a',{staticClass:\"nav-link\",attrs:{\"href\":_vm.href,\"title\":_vm.title}},[_vm._v(_vm._s(_vm.text))]):_c('a',{staticClass:\"nav-link\",attrs:{\"aria-expanded\":_vm.isExpanded,\"aria-haspopup\":\"true\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleMenu.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]),_c('button',{staticClass:\"ce-nav-item-dropdown-open d-xl-none\",attrs:{\"type\":\"button\",\"aria-expanded\":_vm.isExpanded,\"aria-haspopup\":\"true\"},on:{\"click\":_vm.toggleMenu}},[_c('b-icon',{attrs:{\"icon\":\"chevron-right\"}})],1),_c('ul',{staticClass:\"ce-nav-item-dropdown-menu ce-header-nav-flyout no-bullets\",class:_vm.expandedClass,attrs:{\"tabindex\":\"-1\"}},[_c('li',{staticClass:\"ce-sub-nav-item d-xl-none\"},[_c('button',{staticClass:\"ce-nav-item-dropdown-close\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleMenu}},[_c('span',{staticClass:\"ce-nav-item-dropdown-close__icon\"},[_c('b-icon',{attrs:{\"icon\":\"chevron-left\"}})],1),_c('span',{staticClass:\"ce-nav-item-dropdown-close__text\"},[_vm._v(_vm._s(_vm.text))])])]),_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <li class=\"nav-item d-flex ce-nav-item-dropdown\">\n <a v-if=\"href\" class=\"nav-link\" v-bind:href=\"href\" v-bind:title=\"title\">{{ text }}</a>\n <a v-else class=\"nav-link\" :aria-expanded=\"isExpanded\" aria-haspopup=\"true\" v-on:click.stop=\"toggleMenu\">\n {{ text }}\n </a>\n <button\n type=\"button\"\n class=\"ce-nav-item-dropdown-open d-xl-none\"\n :aria-expanded=\"isExpanded\"\n aria-haspopup=\"true\"\n v-on:click=\"toggleMenu\"\n >\n <b-icon icon=\"chevron-right\"></b-icon>\n </button>\n <ul tabindex=\"-1\" class=\"ce-nav-item-dropdown-menu ce-header-nav-flyout no-bullets\" :class=\"expandedClass\">\n <li class=\"ce-sub-nav-item d-xl-none\">\n <button type=\"button\" class=\"ce-nav-item-dropdown-close\" v-on:click=\"toggleMenu\">\n <span class=\"ce-nav-item-dropdown-close__icon\"><b-icon icon=\"chevron-left\"></b-icon></span\n ><span class=\"ce-nav-item-dropdown-close__text\">{{ text }}</span>\n </button>\n </li>\n <slot></slot>\n </ul>\n </li>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeNavItemDropdown extends Vue {\n /**\n * If no href is provided, this item is simply a wrapper for child menu items.\n */\n @Prop() private href: string | undefined;\n @Prop() private text!: string;\n @Prop() private title: string | undefined;\n\n isExpanded = false;\n\n get expandedClass(): string {\n return this.isExpanded ? 'show' : '';\n }\n\n toggleMenu(): void {\n this.isExpanded = !this.isExpanded;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-nav-item-dropdown {\n > .nav-link {\n flex: 1;\n }\n\n button {\n border: 0;\n background: transparent;\n color: $clarinet;\n }\n\n & &-open {\n width: rem(56);\n }\n\n & &-close {\n display: flex;\n border-bottom: 4px solid $header-highlight-color;\n padding: rem(14) calc($grid-gutter-width / 2) rem(10) 0;\n width: 100%;\n text-align: left;\n\n &__icon {\n display: block;\n width: rem(56);\n text-align: center;\n }\n\n &__text {\n color: $header-highlight-color;\n }\n }\n\n @include media-breakpoint-up('xl') {\n position: relative;\n }\n}\n\n.ce-nav-item-dropdown-menu {\n padding: 0;\n min-width: 300px;\n list-style: none;\n font-size: $header-font-size;\n\n @include media-breakpoint-down('lg') {\n position: absolute !important;\n top: 0;\n right: -100vw;\n transition: right 0.2s ease-in-out;\n z-index: 10;\n width: $header-flyout-width;\n height: 100%;\n\n &.show {\n right: 0;\n }\n }\n\n @include media-breakpoint-up('xl') {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n box-shadow: $header-sub-menu-box-shadow;\n background: $white;\n padding-right: $grid-gutter-width;\n\n .ce-nav-item-dropdown:hover & {\n display: block;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=070b3862\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=070b3862&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-sub-nav-item-info\"},[_c('h2',{staticClass:\"ce-sub-nav-item-info__headline m-0 mb-1 fs-16\"},[_vm._v(_vm._s(_vm.headline))]),_c('p',{staticClass:\"m-0\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-sub-nav-item-info\">\n <h2 class=\"ce-sub-nav-item-info__headline m-0 mb-1 fs-16\">{{ headline }}</h2>\n <p class=\"m-0\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeSubNavItemInfo extends Vue {\n @Prop() private headline!: string;\n}\n</script>\n\n<style lang=\"scss\">\n$ce-sub-nav-item-spacer-x: $grid-gutter-width;\n$ce-sub-nav-item-spacer-y: 20px;\n\n/** @define ce-sub-nav-item-info */\n.ce-sub-nav-item-info {\n display: none;\n position: absolute;\n top: 0;\n left: 100%;\n z-index: 0;\n box-shadow: $header-sub-menu-box-shadow;\n background-color: $light-grey;\n padding: $ce-sub-nav-item-spacer-y $ce-sub-nav-item-spacer-x;\n width: 410px;\n min-height: 100%;\n font-size: $h6-font-size;\n\n &::before {\n position: absolute;\n top: 0;\n left: -$ce-sub-nav-item-spacer-x;\n background-color: $white;\n width: $ce-sub-nav-item-spacer-x;\n height: 100%;\n content: '';\n }\n\n &__headline {\n color: $header-highlight-color;\n font-size: $h6-font-size;\n font-weight: $font-weight-bold;\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fb4c90a8\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=fb4c90a8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible())?_c('li',{staticClass:\"ce-sub-nav-item\"},[_c('a',{attrs:{\"href\":_vm.href,\"title\":_vm.title},on:{\"click\":_vm.onClick}},[_vm._v(_vm._s(_vm.text))]),_vm._t(\"default\")],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <li class=\"ce-sub-nav-item\" v-if=\"isVisible()\">\n <a v-bind:href=\"href\" v-bind:title=\"title\" @click=\"onClick\">{{ text }}</a>\n <slot></slot>\n </li>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { OptionGroup, ProductTypeGroupOptionsFilter } from '@src/types/the-q-api';\nimport { Action, Getter } from 'vuex-class';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component\nexport default class CeSubNavItem extends Vue {\n @Prop() private href!: string;\n @Prop() private text!: string;\n @Prop() private title: string | undefined;\n @Prop({ default: false, type: Boolean }) public isProductItem!: boolean;\n\n /**\n * Set a product type here if this sub menu item should be displayed\n * only if there are active products for this product type.\n * Set <c>null</c> here if this sub menu item should always be displayed.\n */\n @Prop() private typeOfRequiredProducts: string | undefined;\n\n @Getter('productTypeGroupOptions', { namespace: 'product' })\n productTypeGroupOptions!: (filter: ProductTypeGroupOptionsFilter) => OptionGroup[];\n\n @Action('getProductTypeGroupOptionsAsync', { namespace: 'product' })\n getProductTypeGroupOptionsAsync!: (filter: ProductTypeGroupOptionsFilter) => Promise<void>;\n\n private filter = {} as ProductTypeGroupOptionsFilter;\n\n private async created() {\n this.filter = { onlyLeverage: false } as ProductTypeGroupOptionsFilter;\n try {\n await this.getProductTypeGroupOptionsAsync(this.filter);\n } catch (e) {\n this.$log.error('Error occured loading data in sub menu item', e);\n }\n }\n\n /**\n * Returns whether the sub menu item has to be displayed.\n */\n private isVisible(): boolean {\n if (!this.typeOfRequiredProducts) {\n // no type of required products specified -> show the sub menu item\n return true;\n }\n\n const groupOptions = this.productTypeGroupOptions(this.filter);\n\n if (!groupOptions || groupOptions.length == 0) {\n // no information about active products available -> show the sub menu item\n return true;\n }\n\n for (const group of groupOptions) {\n for (const option of group.options) {\n if (option.value == this.typeOfRequiredProducts && option.count && option.count > 0) {\n // active products of the specified type exist -> show the sub menu item\n return true;\n }\n }\n }\n\n //otherwise hide the sub menu item\n return false;\n }\n\n onClick(): void {\n this.trackNavItem();\n }\n\n public trackNavItem(): void {\n if (!this.isProductItem) {\n return;\n }\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'product_navigation',\n items: [{ item_id: this.text }],\n });\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-sub-nav-item {\n border-bottom: 1px solid $cool-grey;\n\n a {\n display: block;\n border-bottom: 4px solid transparent;\n padding: rem(18) calc($grid-gutter-width / 2) rem(14);\n text-decoration: none;\n line-height: 1;\n color: $carbon;\n }\n\n a:hover,\n a:focus {\n border-color: $header-highlight-color;\n padding-bottom: rem(14) !important;\n text-decoration: none;\n color: $header-highlight-color;\n }\n\n @include media-breakpoint-up('lg') {\n &:last-child {\n border-bottom: 0;\n }\n // stylelint-disable\n & a:focus + &-info,\n & a:hover + &-info {\n display: block;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=10c6e66b\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=10c6e66b&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-header-nav\"},[_c('b-navbar-toggle',{staticClass:\"ce-header-nav__toggler ce-hamburger\",attrs:{\"target\":\"nav-collapse-main\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Menu\")]),_c('span',{staticClass:\"ce-hamburger__box\",attrs:{\"aria-hidden\":\"true\"}},[_c('span',{staticClass:\"ce-hamburger__bars\"})])]),_c('b-collapse',{staticClass:\"ce-header-flyout ce-header-nav-flyout\",attrs:{\"accordion\":\"header\",\"id\":\"nav-collapse-main\",\"is-nav\":\"\"}},[_c('b-navbar-nav',{staticClass:\"ce-header-nav-main\"},[_vm._t(\"main-menu\")],2),_c('b-navbar-nav',{staticClass:\"ce-header-nav-meta d-xl-none\"},[_c('b-nav-item-dropdown',{attrs:{\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"ce-header-nav-meta__selected\",attrs:{\"data-label\":_vm.countryLabel}},[_vm._v(\" \"+_vm._s(_vm.selectedCountry)+\" \")]),_c('b-icon',{attrs:{\"icon\":\"caret-down\"}})]},proxy:true}])},[_vm._t(\"countries\")],2),_c('b-nav-item-dropdown',{attrs:{\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"ce-header-nav-meta__selected\",attrs:{\"data-label\":_vm.languageLabel}},[_vm._v(\" \"+_vm._s(_vm.selectedLanguage)+\" \")]),_c('b-icon',{attrs:{\"icon\":\"caret-down\"}})]},proxy:true}])},[_vm._t(\"languages\")],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-header-nav\">\n <b-navbar-toggle class=\"ce-header-nav__toggler ce-hamburger\" target=\"nav-collapse-main\">\n <span class=\"sr-only\">Menu</span>\n <span class=\"ce-hamburger__box\" aria-hidden=\"true\">\n <span class=\"ce-hamburger__bars\"></span>\n </span>\n </b-navbar-toggle>\n\n <b-collapse accordion=\"header\" id=\"nav-collapse-main\" class=\"ce-header-flyout ce-header-nav-flyout\" is-nav>\n <b-navbar-nav class=\"ce-header-nav-main\">\n <slot name=\"main-menu\"></slot>\n </b-navbar-nav>\n\n <b-navbar-nav class=\"ce-header-nav-meta d-xl-none\">\n <b-nav-item-dropdown no-caret>\n <template v-slot:button-content>\n <span class=\"ce-header-nav-meta__selected\" :data-label=\"countryLabel\">\n {{ selectedCountry }}\n </span>\n <b-icon icon=\"caret-down\" />\n </template>\n <slot name=\"countries\"></slot>\n </b-nav-item-dropdown>\n <b-nav-item-dropdown no-caret>\n <template v-slot:button-content>\n <span class=\"ce-header-nav-meta__selected\" :data-label=\"languageLabel\">\n {{ selectedLanguage }}\n </span>\n <b-icon icon=\"caret-down\" />\n </template>\n <slot name=\"languages\"></slot>\n </b-nav-item-dropdown>\n </b-navbar-nav>\n </b-collapse>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeHeaderNav extends Vue {\n @Prop() private selectedCountry!: string;\n @Prop() private countryDropdownLabel: string | undefined;\n @Prop() private selectedLanguage!: string;\n @Prop() private languageDropdownLabel: string | undefined;\n\n get countryLabel(): string {\n return this.countryDropdownLabel ?? 'Choose Country';\n }\n get languageLabel(): string {\n return this.languageDropdownLabel ?? 'Choose Language';\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-header-nav {\n padding: inherit 0;\n & &-flyout {\n @include media-breakpoint-down('lg') {\n background: $light-grey;\n padding: map-get($spacers, 3) (map-get($spacers, 4) / 2);\n }\n }\n\n @include media-breakpoint-up('xl') {\n flex-grow: 1;\n }\n}\n.sticky .ce-hamburger {\n &__bars,\n &__bars::before,\n &__bars::after {\n @include media-breakpoint-down('lg') {\n background-color: $black;\n }\n }\n}\n\n.ce-hamburger.not-collapsed.ce-hamburger.not-collapsed {\n .ce-hamburger {\n &__bars,\n &__bars::after,\n &__bars::before {\n background-color: $black;\n }\n }\n}\n\n.ce-hamburger {\n &.navbar-toggler {\n border-color: transparent !important;\n background: transparent;\n }\n\n &__box {\n display: inline-block;\n position: relative;\n width: 24px;\n height: 16px;\n }\n\n &__bars {\n display: block;\n top: 2px;\n margin-top: -2px;\n\n &::before,\n &::after {\n display: block;\n content: '';\n }\n\n &::before {\n top: 7px;\n transition-property: transform, opacity;\n }\n\n &::after {\n top: 14px;\n }\n\n &,\n &::before,\n &::after {\n position: absolute;\n transition-duration: 0.15s;\n transition-property: transform;\n transition-timing-function: ease;\n border-radius: 1px;\n background-color: $black;\n width: 24px;\n height: 2px;\n }\n }\n\n &.not-collapsed &__bars {\n transform: translate3d(0, 10px, 0) rotate(45deg);\n }\n\n &.not-collapsed &__bars::before {\n transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);\n opacity: 0;\n }\n\n &.not-collapsed &__bars::after {\n transform: translate3d(0, -15px, 0) rotate(-90deg);\n }\n}\n\n.ce-header-nav-main {\n .nav-item {\n a {\n padding-top: 14px;\n padding-bottom: 14px;\n }\n a:active,\n a:hover,\n a:focus,\n &.show > a {\n border-bottom: 4px solid $header-highlight-color;\n padding-bottom: 10px;\n }\n\n @include media-breakpoint-down('lg') {\n border-bottom: 1px solid $cool-grey;\n\n a {\n color: $header-highlight-color !important;\n }\n }\n }\n}\n\n.ce-header-nav-meta {\n margin-top: map-get($spacers, 4);\n\n .dropdown {\n margin-top: map-get($spacers, 4);\n border-radius: $border-radius;\n background: $silver;\n padding: 10px;\n\n &.show {\n background: $white;\n }\n }\n\n .dropdown-toggle {\n display: flex;\n align-items: center;\n padding: rem(2) 0 !important;\n }\n\n .dropdown-menu {\n border: 0;\n\n a {\n border-bottom: 4px solid transparent;\n padding: map-get($spacers, 2);\n color: $gunmetal;\n\n &:hover,\n &:focus {\n border-bottom-color: $header-highlight-color;\n background: transparent;\n color: $header-highlight-color;\n }\n }\n\n li {\n border-bottom: 1px solid $gunmetal;\n }\n }\n\n &__selected {\n display: inline-block;\n flex: 1;\n line-height: 1;\n\n &::before {\n display: block;\n font-size: 12px;\n content: attr(data-label) '';\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7f3a9439\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7f3a9439&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_vm.headerSearchClass},[_c('div',{staticClass:\"ce-header-search-flyout\"},[_c('b-navbar-toggle',{staticClass:\"ce-header-search-flyout__toggler\",attrs:{\"target\":\"header-search-flyout\"}},[_c('ad-icon-search'),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Search\")])],1),_c('b-collapse',{staticClass:\"ce-header-flyout ce-header-search-flyout__flyout\",attrs:{\"accordion\":\"header\",\"id\":\"header-search-flyout\",\"is-nav\":\"\"}},[_c('b-navbar-nav',{staticClass:\"ce-header-nav-main ce-header-search-flyout__background px-3 py-3\"},[_c('b-input-group',{class:_vm.globalSearchFlyoutInputClass},[_c('b-input-group-append',{staticClass:\"ce-header-quicksearch__icon fs-18 py-0\"},[_c('ad-icon-search')],1),_c('ad-global-search',{on:{\"changeValidationState\":_vm.changeGlobalSearchFlyoutInputValidationState},scopedSlots:_vm._u([{key:\"error-message\",fn:function(){return [_vm._t(\"global-search-error-message\")]},proxy:true}],null,true)})],1)],1),_vm._t(\"best-match\")],2)],1),(_vm.bestMatchEnabled)?_c('b-dropdown',{staticClass:\"ce-header-bestmatch bv-d-lg-down-none py-1\",attrs:{\"variant\":\"match\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('ad-icon-best-match'),_c('span',{staticClass:\"fs-16\"},[_vm._t(\"find-best-match-dropdown-button-text\",function(){return [_vm._v(\"Find Best Match\")]})],2)]},proxy:true}],null,true)},[_c('b-dropdown-form',{attrs:{\"form-class\":\"ce-header-bestmatch-form\"}},[_vm._t(\"best-match\")],2)],1):_vm._e(),_c('div',{class:_vm.globalSearchInputClass},[_c('b-input-group',{staticClass:\"py-0 align-items-center\"},[_c('b-input-group-append',{staticClass:\"ce-header-quicksearch__icon fs-18 py-0\"},[_c('ad-icon-search')],1),_c('ad-global-search',{on:{\"changeValidationState\":_vm.changeGlobalSearchInputValidationState},scopedSlots:_vm._u([{key:\"error-message\",fn:function(){return [_vm._t(\"global-search-error-message\")]},proxy:true}],null,true)})],1)],1),(_vm.pageRoutes.watchlistUrl)?_c('b-link',{staticClass:\"ce-header-search-watchlist\",attrs:{\"variant\":\"link\"},on:{\"click\":_vm.watchlistClicked}},[_c('span',{staticClass:\"sr-only\"},[_vm._t(\"watchist-tooltip\",function(){return [_vm._v(\"Entries on watchlist\")]})],2),_c('ad-icon-watchlist',{attrs:{\"height\":\"100%\",\"width\":\"2.3125em\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"watchist-tooltip\",function(){return [_vm._v(\"Entries on watchlist\")]})]},proxy:true}],null,true)}),(_vm.watchlistCount && _vm.cookieComfortAccepted)?_c('b-badge',{attrs:{\"variant\":\"pink\"}},[_vm._v(_vm._s(_vm.watchlistCount))]):_vm._e()],1):_vm._e(),(_vm.youtubeChannelUrlExist)?_c('b-link',{staticClass:\"youtube-link\",attrs:{\"href\":_vm.youtubeChannelUrl,\"title\":_vm.youtubeTooltip,\"target\":\"_blank\"}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@assets/yt_icon_rgb.png\"),\"alt\":\"YouTube Logo\"}})]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :class=\"headerSearchClass\">\n <!-- mobile only search flyout -->\n <div class=\"ce-header-search-flyout\">\n <b-navbar-toggle class=\"ce-header-search-flyout__toggler\" target=\"header-search-flyout\"\n ><ad-icon-search></ad-icon-search><span class=\"sr-only\">Search</span></b-navbar-toggle\n >\n <b-collapse\n accordion=\"header\"\n id=\"header-search-flyout\"\n class=\"ce-header-flyout ce-header-search-flyout__flyout\"\n is-nav\n >\n <!-- @todo adesso: placeholder for search functionality - START -->\n <b-navbar-nav class=\"ce-header-nav-main ce-header-search-flyout__background px-3 py-3\">\n <b-input-group :class=\"globalSearchFlyoutInputClass\">\n <b-input-group-append class=\"ce-header-quicksearch__icon fs-18 py-0\">\n <ad-icon-search></ad-icon-search>\n </b-input-group-append>\n <ad-global-search @changeValidationState=\"changeGlobalSearchFlyoutInputValidationState\">\n <template #error-message><slot name=\"global-search-error-message\"></slot></template\n ></ad-global-search>\n </b-input-group>\n </b-navbar-nav>\n\n <slot name=\"best-match\"> </slot>\n <!-- @todo adesso: placeholder for search functionality - END -->\n </b-collapse>\n </div>\n\n <b-dropdown v-if=\"bestMatchEnabled\" variant=\"match\" class=\"ce-header-bestmatch bv-d-lg-down-none py-1\">\n <template v-slot:button-content\n ><ad-icon-best-match></ad-icon-best-match\n ><span class=\"fs-16\"><slot name=\"find-best-match-dropdown-button-text\">Find Best Match</slot></span></template\n >\n <b-dropdown-form form-class=\"ce-header-bestmatch-form\">\n <!-- @todo adesso: placeholder for search functionality - START -->\n <slot name=\"best-match\"> </slot>\n <!-- @todo adesso: placeholder for search functionality - END -->\n </b-dropdown-form>\n </b-dropdown>\n\n <div :class=\"globalSearchInputClass\">\n <!-- @todo adesso: placeholder for search form functionality - START -->\n <b-input-group class=\"py-0 align-items-center\">\n <b-input-group-append class=\"ce-header-quicksearch__icon fs-18 py-0\">\n <ad-icon-search></ad-icon-search>\n </b-input-group-append>\n <ad-global-search @changeValidationState=\"changeGlobalSearchInputValidationState\"\n ><template #error-message><slot name=\"global-search-error-message\"></slot></template\n ></ad-global-search>\n </b-input-group>\n <!-- @todo adesso: placeholder for search form functionality - END -->\n </div>\n <b-link variant=\"link\" v-if=\"pageRoutes.watchlistUrl\" @click=\"watchlistClicked\" class=\"ce-header-search-watchlist\">\n <span class=\"sr-only\"><slot name=\"watchist-tooltip\">Entries on watchlist</slot></span>\n <ad-icon-watchlist height=\"100%\" width=\"2.3125em\">\n <template #title>\n <slot name=\"watchist-tooltip\">Entries on watchlist</slot>\n </template>\n </ad-icon-watchlist>\n <b-badge variant=\"pink\" v-if=\"watchlistCount && cookieComfortAccepted\">{{ watchlistCount }}</b-badge>\n </b-link>\n <b-link\n :href=\"youtubeChannelUrl\"\n :title=\"youtubeTooltip\"\n target=\"_blank\"\n class=\"youtube-link\"\n v-if=\"youtubeChannelUrlExist\"\n >\n <img class=\"logo\" src=\"~@assets/yt_icon_rgb.png\" alt=\"YouTube Logo\" />\n </b-link>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PageRoutes } from '@/src/types/episerver-api';\nimport CookieManager from '@/src/utils/cookie';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\n\n@Component\nexport default class CeHeaderSearch extends Vue {\n @Prop({ default: false, type: Boolean }) private bestMatchEnabled!: boolean;\n\n @Getter('totalCount', { namespace: 'watchlist' })\n watchlistCount!: number;\n\n @Action('fetchActiveAsync', { namespace: 'watchlist' })\n fetchWatchlistAsync!: () => Promise<void>;\n\n @Inject() pageRoutes!: PageRoutes;\n\n private cookieManager!: CookieManager;\n private isGlobalSearchInputValid: boolean = true;\n private isGlobalSearchFlyoutInputValid: boolean = true;\n\n get cookieComfortAccepted(): boolean {\n return this.cookieManager?.comfort || false;\n }\n\n get headerSearchClass(): (string | Record<string, boolean>)[] {\n return [\n 'ce-header-search d-flex align-items-center',\n { 'show-invalid': !(this.isGlobalSearchInputValid && this.isGlobalSearchFlyoutInputValid) },\n ];\n }\n\n get globalSearchInputClass(): (string | Record<string, boolean>)[] {\n return ['ce-header-quicksearch bv-d-lg-down-none py-0', { 'in-valid': !this.isGlobalSearchInputValid }];\n }\n\n get globalSearchFlyoutInputClass(): (string | Record<string, boolean>)[] {\n return [\n 'ce-header-quicksearch__input-group py-0 align-items-center',\n { 'in-valid': !this.isGlobalSearchFlyoutInputValid },\n ];\n }\n\n created() {\n this.fetchWatchlistAsync();\n this.cookieManager = new CookieManager(this.$cookies);\n }\n\n private watchlistClicked() {\n if (this.pageRoutes.watchlistUrl) {\n window.location.href = this.pageRoutes.watchlistUrl;\n }\n }\n\n private get youtubeChannelUrlExist() {\n const slot = this.$slots['youtube-channel-url'];\n return slot && slot[0] && typeof slot[0].text === 'string';\n }\n\n private get youtubeChannelUrl() {\n return this.$slots['youtube-channel-url']\n ? this.$slots['youtube-channel-url'][0].text?.trim()\n : this.$props.youtubeChannelUrl.trim();\n }\n\n private get youtubeTooltip() {\n return this.$slots['youtube-tooltip'] ? this.$slots['youtube-tooltip'][0].text?.trim() : '';\n }\n private changeGlobalSearchInputValidationState(isValid: boolean) {\n this.isGlobalSearchInputValid = isValid;\n }\n private changeGlobalSearchFlyoutInputValidationState(isValid: boolean) {\n this.isGlobalSearchFlyoutInputValid = isValid;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-header-search-flyout {\n &__toggler.navbar-toggler.navbar-toggler {\n border-color: transparent;\n color: $heading-line-color;\n\n &.not-collapsed.not-collapsed {\n color: $link-color;\n }\n }\n &__flyout.navbar-collapse {\n @include media-breakpoint-down('lg') {\n background: $light-grey;\n }\n }\n &__background {\n background: $light-grey;\n }\n\n @include media-breakpoint-up('xl') {\n display: none;\n }\n}\n.sticky .ce-header-search-flyout {\n &__toggler.navbar-toggler {\n @include media-breakpoint-down('lg') {\n color: $black;\n }\n }\n}\n.ce-header-bestmatch {\n svg {\n margin-right: rem(8);\n }\n\n .dropdown-toggle {\n border-color: $header-highlight-color;\n background-color: $header-highlight-color;\n }\n\n .dropdown-menu {\n margin: 0;\n border-width: 0;\n border-radius: 0;\n background-color: transparent;\n padding: 0;\n min-width: 410px;\n }\n\n button {\n // Important required to overwrite .btn class to match spacings of design\n padding: 0.25rem 1rem !important;\n }\n}\n\n/* CSS class for YouTube link */\n.youtube-link {\n display: inline-block;\n}\n\n.youtube-link img {\n margin-left: 16px;\n height: 36px;\n}\n\n.ce-header-bestmatch-form {\n padding: 0;\n}\n\n.ce-header-quicksearch {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: map-get($spacers, 4);\n border: 1px solid $cool-grey;\n border-radius: $border-radius;\n width: 300px;\n &:focus-within {\n background: $light-grey;\n }\n &.is-invalid {\n border-color: $deep-red;\n }\n\n &__icon {\n padding: rem(9) map-get($spacers, 2) rem(9) map-get($spacers, 3);\n color: $clarinet;\n }\n\n &__input.form-control.form-control.form-control {\n border-color: transparent;\n background-color: transparent;\n height: 20px;\n &::placeholder {\n color: $gunmetal;\n }\n }\n\n & .input-group {\n flex-wrap: nowrap;\n }\n\n &__input-group.input-group {\n display: flex;\n flex-wrap: nowrap;\n border: 1px solid $cool-grey;\n border-radius: $border-radius;\n background: $white;\n padding: 5px 0;\n &:focus-within {\n background: $light-grey;\n }\n }\n\n &__input {\n outline: none;\n border: 0;\n background: transparent;\n padding: 5.75px;\n padding-left: 0;\n width: 100%;\n }\n}\n\n.show-invalid .ce-header-quicksearch {\n &__input-group.input-group.in-valid {\n border-color: $deep-red;\n }\n}\n\n.ce-header-search {\n .v-select {\n flex: 1 1 0;\n }\n}\n\n.sticky .ce-header-search-watchlist {\n @include media-breakpoint-down('lg') {\n &,\n &:focus,\n &:hover {\n color: $black;\n }\n }\n}\n\n.ce-header-search-watchlist {\n display: block;\n position: relative;\n margin: 0;\n padding: rem(2) map-get($spacers, 2);\n color: $black;\n\n &:focus,\n &:hover {\n color: $black;\n }\n\n .badge {\n position: absolute;\n top: 0;\n right: 0;\n border-radius: 50%;\n background: $pink;\n padding: 0 0.3rem;\n line-height: rem(22);\n color: $white;\n }\n\n @include media-breakpoint-down('lg') {\n margin-top: -5px;\n }\n\n @include media-breakpoint-up('xl') {\n margin-left: map-get($spacers, 2);\n color: $black;\n\n &:hover {\n color: $black;\n }\n\n &:focus {\n color: $black;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2bab3bed\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2bab3bed&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('header',{staticClass:\"ce-header fs-16\"},[_c('b-navbar',{staticClass:\"ce-header__meta important\",attrs:{\"type\":\"light\",\"variant\":\"light\"}},[_c('b-navbar-nav',{staticClass:\"bv-d-lg-down-none ml-auto\"},[(_vm.selectedCountry)?_c('b-nav-item-dropdown',{staticClass:\"ce-header__selection-dropdown\",attrs:{\"right\":\"\",\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(_vm._s(_vm.selectedCountry)),_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"caret-down\"}})]},proxy:true}],null,false,3799841425)},[_vm._t(\"countries\")],2):_vm._e(),(_vm.selectedLanguage)?_c('b-nav-item-dropdown',{staticClass:\"ce-header__selection-dropdown\",attrs:{\"right\":\"\",\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_vm._v(_vm._s(_vm.selectedLanguage)),_c('b-icon',{staticClass:\"ml-2\",attrs:{\"icon\":\"caret-down\"}})]},proxy:true}],null,false,155332107)},[_vm._t(\"languages\")],2):_vm._e()],1)],1),_c('div',{staticClass:\"ce-header__logo d-xl-none py-1\"},[_c('a',{staticClass:\"h-100\",attrs:{\"href\":_vm.logoLinkHref,\"title\":_vm.logoLinkTitle}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@assets/citi_logo_header.svg\"),\"alt\":\"Citi Logo\",\"width\":\"64\"}})])]),_vm._l((_vm.navInstanceClasses),function(classes,index){return _c('b-navbar',{key:index,staticClass:\"ce-header__navbar-menu pt-0\",class:classes,attrs:{\"toggleable\":\"xl\"}},[_c('div',{staticClass:\"row w-100 d-flex align-items-center accordion\"},[_c('div',{staticClass:\"col-6 d-xl-none\"},[(_vm.enableGoBack)?_c('ce-header-back',{staticClass:\"ce-header__back\",scopedSlots:_vm._u([{key:\"back-menu\",fn:function(){return [_vm._t(\"back-menu\")]},proxy:true},{key:\"go-back\",fn:function(){return [_vm._t(\"go-back\")]},proxy:true}],null,true)}):_vm._e()],1),_c('div',{staticClass:\"col-6 col-xl-12 d-flex justify-content-end justify-content-xl-between align-items-center ce-header__menu py-1 py-xl-0 pr-xl-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"ce-header__logo d-none d-xl-block pb-3 pt-2\"},[_c('a',{staticClass:\"h-100\",attrs:{\"href\":_vm.logoLinkHref,\"title\":_vm.logoLinkTitle}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@assets/citi_logo_header.svg\"),\"alt\":\"Citi Logo\",\"width\":\"64\"}})])]),_c('ce-header-nav',{staticClass:\"align-self-end\",attrs:{\"selectedCountry\":_vm.selectedCountry,\"countryDropdownLabel\":_vm.countryDropdownLabel,\"selectedLanguage\":_vm.selectedLanguage,\"languageDropdownLabel\":_vm.languageDropdownLabel,\"id\":\"collapse\"},scopedSlots:_vm._u([{key:\"main-menu\",fn:function(){return [_vm._t(\"main-menu\")]},proxy:true},{key:\"countries\",fn:function(){return [_vm._t(\"countries\")]},proxy:true},{key:\"languages\",fn:function(){return [_vm._t(\"languages\")]},proxy:true}],null,true)})],1),_vm._t(\"header-search\")],2)])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <header class=\"ce-header fs-16\">\n <b-navbar type=\"light\" variant=\"light\" class=\"ce-header__meta important\">\n <!-- Right aligned nav items -->\n <b-navbar-nav class=\"bv-d-lg-down-none ml-auto\">\n <b-nav-item-dropdown class=\"ce-header__selection-dropdown\" right no-caret v-if=\"selectedCountry\">\n <template v-slot:button-content\n >{{ selectedCountry }}<b-icon icon=\"caret-down\" class=\"ml-2\"></b-icon>\n </template>\n <slot name=\"countries\"></slot>\n </b-nav-item-dropdown>\n <b-nav-item-dropdown class=\"ce-header__selection-dropdown\" right no-caret v-if=\"selectedLanguage\">\n <template v-slot:button-content\n >{{ selectedLanguage }}<b-icon icon=\"caret-down\" class=\"ml-2\"></b-icon>\n </template>\n <slot name=\"languages\"></slot>\n </b-nav-item-dropdown>\n </b-navbar-nav>\n </b-navbar>\n <div class=\"ce-header__logo d-xl-none py-1\">\n <a class=\"h-100\" v-bind:href=\"logoLinkHref\" v-bind:title=\"logoLinkTitle\">\n <img class=\"logo\" src=\"~@assets/citi_logo_header.svg\" alt=\"Citi Logo\" width=\"64\" />\n </a>\n </div>\n <b-navbar\n toggleable=\"xl\"\n class=\"ce-header__navbar-menu pt-0\"\n v-for=\"(classes, index) of navInstanceClasses\"\n v-bind:key=\"index\"\n v-bind:class=\"classes\"\n >\n <div class=\"row w-100 d-flex align-items-center accordion\">\n <div class=\"col-6 d-xl-none\">\n <ce-header-back class=\"ce-header__back\" v-if=\"enableGoBack\"\n ><template v-slot:back-menu><slot name=\"back-menu\" /></template>\n <template #go-back><slot name=\"go-back\" /></template\n ></ce-header-back>\n </div>\n <div\n class=\"col-6 col-xl-12 d-flex justify-content-end justify-content-xl-between align-items-center ce-header__menu py-1 py-xl-0 pr-xl-0\"\n >\n <div class=\"d-flex\">\n <div class=\"ce-header__logo d-none d-xl-block pb-3 pt-2\">\n <a class=\"h-100\" v-bind:href=\"logoLinkHref\" v-bind:title=\"logoLinkTitle\">\n <img class=\"logo\" src=\"~@assets/citi_logo_header.svg\" alt=\"Citi Logo\" width=\"64\" />\n </a>\n </div>\n <ce-header-nav\n :selectedCountry=\"selectedCountry\"\n :countryDropdownLabel=\"countryDropdownLabel\"\n :selectedLanguage=\"selectedLanguage\"\n :languageDropdownLabel=\"languageDropdownLabel\"\n class=\"align-self-end\"\n id=\"collapse\"\n >\n <template v-slot:main-menu><slot name=\"main-menu\"></slot></template>\n <template v-slot:countries><slot name=\"countries\"></slot></template>\n <template v-slot:languages><slot name=\"languages\"></slot></template>\n </ce-header-nav>\n </div>\n <slot name=\"header-search\"></slot>\n </div>\n </div>\n </b-navbar>\n </header>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class CeHeader extends Vue {\n @Prop({ default: '/' }) private logoLinkHref!: string;\n @Prop({ default: 'Back to Start' }) private logoLinkTitle: string | undefined;\n @Prop({ default: '/' }) private watchlistLinkHref!: string;\n @Prop() private selectedCountry!: string;\n @Prop() private countryDropdownLabel: string | undefined;\n @Prop() private selectedLanguage!: string;\n @Prop() private languageDropdownLabel: string | undefined;\n @Prop({ type: Boolean, default: false }) private enableGoBack!: boolean;\n\n private shouldStick = false;\n\n /** @todo: get number from list */\n get watchlistCount(): number {\n return 12;\n }\n\n get navInstanceClasses() {\n /**\n * We need to use position: fixed for the sticky nav, because it has to be\n * inside of the <header> tag, so that we can not use position: sticky\n * without reworking the layout of this component.\n *\n * switching to position fixed leads to a layout shift of the whole page,\n * so that we have to keep the original nav in place (but hide it visually)\n * when we need to display the fixed navigation.\n */\n if (this.shouldStick) return ['sticky', 'hidden'];\n return [''];\n }\n\n mounted(): void {\n window.addEventListener('scroll', this.updateStickyness);\n this.updateStickyness();\n }\n\n destroy(): void {\n window.removeEventListener('scroll', this.updateStickyness);\n }\n updateStickyness(): void {\n this.shouldStick = Math.round(window.scrollY) >= 131;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-header {\n background: $white;\n\n &,\n .navbar-brand {\n font-size: $h6-font-size;\n }\n\n .navbar-brand {\n margin: 0;\n padding: 0;\n }\n &__selection-dropdown {\n ul {\n height: 220px;\n overflow-y: scroll;\n }\n }\n .bg-light {\n background: transparent !important;\n }\n\n &__meta.important {\n padding: 0 $grid-gutter-width;\n line-height: 1.875;\n\n .dropdown-menu {\n margin: 0;\n border: 0;\n border-radius: 0;\n box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.3);\n padding: map-get($spacers, 2) calc($grid-gutter-width / 2) map-get($spacers, 3);\n min-width: 300px;\n\n li {\n border-bottom: 1px solid $cool-grey;\n }\n }\n\n .dropdown-item {\n padding: rem(14) 0;\n line-height: 1;\n color: $gunmetal;\n font-size: $fs-14;\n\n &:hover,\n &:focus {\n background: transparent;\n color: $marine-blue;\n }\n\n &.active {\n border-bottom: 4px solid $header-highlight-color;\n background: transparent;\n padding-bottom: rem(10);\n color: $header-highlight-color;\n }\n }\n }\n\n &__logo {\n z-index: 2;\n padding: 0 $grid-gutter-width 0;\n }\n\n &__navbar-menu-slots {\n display: flex;\n align-items: center;\n justify-content: space-between;\n @include media-breakpoint-up('lg') {\n width: 100%;\n }\n }\n\n &__menu {\n pointer-events: all;\n }\n & &__navbar-menu {\n display: flex;\n justify-content: space-between;\n padding-top: 0;\n padding-bottom: 0;\n width: 100%;\n pointer-events: none;\n\n &.sticky {\n position: fixed;\n top: 0;\n left: 0;\n border-bottom: 1px solid $cool-grey;\n background-color: $white;\n padding: 0.5rem;\n width: 100%;\n pointer-events: all;\n @include media-breakpoint-up('xl') {\n padding: 0 1.25rem;\n }\n }\n\n &.hidden {\n visibility: hidden;\n }\n\n @include media-breakpoint-down('lg') {\n position: absolute;\n top: 0;\n right: 0;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n padding-top: rem(50);\n &.sticky {\n justify-content: space-between;\n }\n }\n }\n\n @include media-breakpoint-up('xl') {\n border-bottom: 1px solid $cool-grey;\n }\n}\n\n.sticky .ce-header-flyout {\n @include media-breakpoint-down('lg') {\n position: fixed !important;\n top: rem(66.25);\n left: 100vw;\n transition: left 0.2s ease-in-out;\n width: 100vw;\n height: calc(100vh - #{$header-height-default});\n overflow-x: hidden;\n &.show {\n left: 0;\n }\n }\n}\n\n.ce-header-flyout {\n background: $white;\n overflow-y: visible;\n\n @include media-breakpoint-down('lg') {\n position: fixed !important;\n top: rem(116);\n left: 100vw;\n transition: left 0.2s ease-in-out;\n width: 100vw;\n height: calc(100vh - #{$header-height-default});\n overflow-y: scroll;\n overscroll-behavior: contain;\n\n &.show {\n left: 0;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=400223f6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=400223f6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-newsletter-subscription py-7 mb-7\"},[_c('h2',{staticClass:\"text-center\"},[_c('b-collapse',{attrs:{\"visible\":_vm.subscribed}},[_c('h2',{staticClass:\"text-center\"},[_vm._t(\"confirmation-first-headline\")],2),_c('span',{staticClass:\"ce-newsletter-subscription--thank-you\"},[_vm._t(\"confirmation-second-headline\")],2)]),_c('b-collapse',{attrs:{\"visible\":_vm.confirmOptInPanel}},[(_vm.confirmOptInSuccess)?_c('h2',{staticClass:\"text-center\"},[_vm._t(\"confirmation-optin-success-headline\")],2):_c('h2',{staticClass:\"text-center\"},[_vm._t(\"confirmation-optin-error-headline\")],2)])],1),_c('div',{staticClass:\"blog-container container-fluid\"},[_c('b-collapse',{attrs:{\"visible\":!_vm.open && !_vm.subscribed && !_vm.confirmOptInPanel}},[(!_vm.subscribed)?_c('h2',{staticClass:\"text-center\"},[_vm._t(\"hidden-headline\")],2):_vm._e(),(!_vm.subscribed && _vm.$slots['hidden-description-text'])?_c('p',{staticClass:\"ce-newsletter-subscription--collapsed-subtext fs-26 text-center pb-5 m-0\"},[_vm._t(\"hidden-description-text\")],2):_vm._e()])],1),_c('b-collapse',{model:{value:(_vm.open),callback:function ($$v) {_vm.open=$$v},expression:\"open\"}},[_c('b-collapse',{attrs:{\"visible\":_vm.subscribed && !_vm.confirmOptInPanel}},[_c('div',{staticClass:\"blog-container container-fluid\"},[_c('p',{staticClass:\"mb-5\"},[(_vm.subscribeSuccess)?_c('span',[_vm._t(\"confirmation-description-text\")],2):_c('span',[_vm._t(\"confirmation-error-description-text\")],2)])])]),_c('b-collapse',{attrs:{\"visible\":_vm.confirmOptInPanel}},[_c('div',{staticClass:\"blog-container container-fluid\"},[_c('p',{staticClass:\"mb-5\"},[(_vm.subscribeSuccess)?_c('span',[_vm._t(\"confirmOptIn-description-text\")],2):_c('span',[_vm._t(\"confirmOptIn-error-description-text\")],2)])])]),_c('b-collapse',{attrs:{\"visible\":!_vm.subscribed && !_vm.confirmOptInPanel}},[_c('div',{staticClass:\"ce-newsletter-subscription--collapsible-content pt-3\"},[_c('div',{staticClass:\"blog-container container-fluid\"},[_c('h2',{staticClass:\"text-center\"},[_vm._t(\"unhidden-headline\")],2),(_vm.$slots['unhidden-description-text'])?_c('p',{staticClass:\"mb-5\"},[_vm._t(\"unhidden-description-text\")],2):_vm._e(),_c('b-form',{ref:\"form\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){return _vm.handleSubmit($event)}}},[_c('b-form-radio-group',{staticClass:\"mb-5\",attrs:{\"name\":\"salutation\"},model:{value:(_vm.salutation),callback:function ($$v) {_vm.salutation=$$v},expression:\"salutation\"}},_vm._l((_vm.settingsProperty.newsletterSalutations),function(salutationItem,i){return _c('span',{key:i},[_c('b-form-radio',{attrs:{\"value\":salutationItem}},[_c('span',{staticClass:\"ce-newsletter-subscription--checkbox-and-radio-label fs-16\"},[_vm._v(_vm._s(salutationItem))])])],1)}),0),_c('div',{staticClass:\"ce-newsletter-subscription--input-fields mb-5\"},[_c('div',{staticClass:\"d-flex flex-column flex-md-row justify-content-between\"},[_c('div',{staticClass:\"ce-newsletter-subscription--form-field-container\",attrs:{\"data-show-error\":!!_vm.errors.firstname && _vm.firstnameTouched}},[_c('b-form-group',{attrs:{\"label\":_vm.settingsProperty.nameLabel,\"label-for\":\"newsletter-subscription-form--firstname\"}},[_c('b-form-input',{attrs:{\"id\":\"newsletter-subscription-form--firstname\",\"name\":\"firstname\"},model:{value:(_vm.firstname),callback:function ($$v) {_vm.firstname=$$v},expression:\"firstname\"}})],1),_c('span',{staticClass:\"ce-newsletter-subscription--form-error\"},[_c('ad-icon-warnings'),_vm._v(\" \"+_vm._s(_vm.errors.firstname)+\" \")],1)],1),_c('div',{staticClass:\"ce-newsletter-subscription--form-field-container\",attrs:{\"data-show-error\":!!_vm.errors.surname && _vm.surnameTouched}},[_c('b-form-group',{attrs:{\"label\":_vm.settingsProperty.surnameLabel,\"label-for\":\"newsletter-subscription-form--surname\"}},[_c('b-form-input',{attrs:{\"id\":\"newsletter-subscription-form--surname\",\"name\":\"surname\"},model:{value:(_vm.surname),callback:function ($$v) {_vm.surname=$$v},expression:\"surname\"}})],1),_c('span',{staticClass:\"ce-newsletter-subscription--form-error\"},[_c('ad-icon-warnings'),_vm._v(\" \"+_vm._s(_vm.errors.surname)+\" \")],1)],1)]),_c('div',{staticClass:\"ce-newsletter-subscription--form-field-container\",attrs:{\"data-show-error\":!!_vm.errors.email && _vm.emailTouched}},[_c('b-form-group',{attrs:{\"label\":_vm.settingsProperty.emailLabel,\"label-for\":\"newsletter-subscription-form--email\"}},[_c('b-form-input',{attrs:{\"type\":\"email\",\"id\":\"newsletter-subscription-form--email\",\"name\":\"email\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('span',{staticClass:\"ce-newsletter-subscription--form-error\"},[_c('ad-icon-warnings'),_vm._v(\" \"+_vm._s(_vm.errors.email)+\" \")],1)],1),(_vm.settingsProperty.showEmailConfirmationField)?_c('div',{staticClass:\"ce-newsletter-subscription--form-field-container\",attrs:{\"data-show-error\":!!_vm.errors.confirmemail && _vm.confirmemailTouched}},[_c('b-form-group',{attrs:{\"label\":_vm.settingsProperty.confirmEmailLabel,\"label-for\":\"newsletter-subscription-form--confirmemail\"}},[_c('b-form-input',{attrs:{\"type\":\"email\",\"id\":\"newsletter-subscription-form--confirmemail\",\"name\":\"confirmemail\"},model:{value:(_vm.confirmemail),callback:function ($$v) {_vm.confirmemail=$$v},expression:\"confirmemail\"}})],1),_c('span',{staticClass:\"ce-newsletter-subscription--form-error\"},[_c('ad-icon-warnings'),_vm._v(\" \"+_vm._s(_vm.errors.confirmemail)+\" \")],1)],1):_vm._e()]),_c('div',{staticClass:\"ce-newsletter-subscription--form-field-container mb-5\",attrs:{\"data-show-error\":!!_vm.errors.topics && _vm.topicsTouched}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"newsletter-subscription-form--topic\",\"name\":\"newsletter-topic\"},model:{value:(_vm.topics),callback:function ($$v) {_vm.topics=$$v},expression:\"topics\"}},[_c('p',{staticClass:\"fs-16 m-0 mb-2\"},[_vm._t(\"newsletter-topic-label\")],2),_c('div',{staticClass:\"d-flex flex-column flex-md-row\"},_vm._l((_vm.topicDescriptions),function(description,i){return _c('b-form-checkbox',{key:i,class:['mb-md-0', { 'mb-3': i !== _vm.topicDescriptions.length - 1 }],attrs:{\"value\":description}},[_c('span',{staticClass:\"ce-newsletter-subscription--checkbox-and-radio-label fs-16\"},[_vm._v(\" \"+_vm._s(description.title)+\" \"),_c('button',{directives:[{name:\"b-modal\",rawName:\"v-b-modal\",value:(`newsletter-topic--${description.title}--${_vm.randomId}`),expression:\"`newsletter-topic--${description.title}--${randomId}`\"}],staticClass:\"ce-newsletter-subscription--topic-info-icon\",attrs:{\"type\":\"button\"}},[_c('ad-icon-info'),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Info\")])],1),_c('b-modal',{attrs:{\"id\":`newsletter-topic--${description.title}--${_vm.randomId}`,\"dialog-class\":\"ce-newsletter-subscription--topic-modal\",\"hide-footer\":\"\",\"centered\":\"\"},scopedSlots:_vm._u([{key:\"modal-header\",fn:function(){return undefined},proxy:true},{key:\"modal-header-close\",fn:function(){return [_c('ad-icon-close')]},proxy:true}],null,true)},[_c('h3',[_vm._v(_vm._s(description.title))]),_c('p',[_vm._v(_vm._s(description.description))])])],1)])}),1)]),_c('span',{staticClass:\"ce-newsletter-subscription--form-error\"},[_c('ad-icon-warnings'),_vm._v(\" \"+_vm._s(_vm.errors.topics)+\" \")],1)],1),(_vm.settingsProperty.displayTermsAndConditions)?_c('div',{staticClass:\"ce-newsletter-subscription--form-field-container mb-5\",attrs:{\"data-show-error\":_vm.errors.termsAndConditionsAccepted && _vm.termsAndConiditionsTouched}},[_c('b-form-checkbox',{attrs:{\"name\":\"terms-and-conditions\",\"value\":\"terms-and-conditions-accepted\"},model:{value:(_vm.termsAndConditionsAccepted),callback:function ($$v) {_vm.termsAndConditionsAccepted=$$v},expression:\"termsAndConditionsAccepted\"}},[_c('span',{staticClass:\"ce-newsletter-subscription--checkbox-and-radio-label fs-16 w-100\"},[_vm._t(\"terms-and-conditions-checkbox-text\")],2)]),_c('span',{staticClass:\"ce-newsletter-subscription--form-error\"},[_c('ad-icon-warnings'),_vm._v(\" \"+_vm._s(_vm.errors.termsAndConditionsAccepted)+\" \")],1)],1):_vm._e(),_c('button',{staticClass:\"btn btn-primary px-6 mb-6 mb-md-7 w-100 w-md-auto\",attrs:{\"type\":\"submit\"}},[_vm._t(\"sign-up-button-text\")],2)],1)],1),_c('div',{staticClass:\"content-container content-container-t container-fluid justify-content-center d-none d-lg-flex mb-6\"},_vm._l((_vm.topicDescriptions),function(description,i){return _c('div',{key:i,class:`ce-tile ce-tile__gradient-${_vm.topicColors[i]} no-hover p-3 p-lg-5`},[_c('div',[_c('h3',[_vm._v(_vm._s(description.title))]),_c('p',[_vm._v(_vm._s(description.description))])])])}),0)])])],1),_c('div',{staticClass:\"text-center ce-newsletter-subscription--subscribe-button-container blog-container container-fluid\"},[(!_vm.subscribed && !_vm.confirmOptInPanel)?_c('button',{staticClass:\"btn btn-secondary px-6 w-100 w-md-auto\",on:{\"click\":function($event){_vm.open = !_vm.open}}},[(_vm.open)?_c('span',[_vm._t(\"close-view-button-text\")],2):_c('span',[_vm._t(\"subscribe-button-text\")],2),_c('br'),_c('span',{staticClass:\"ce-newsletter-subscription--subscribe-button-chevron\"},[(_vm.open)?_c('ad-icon-chevron',{attrs:{\"direction\":\"up\"}}):_c('ad-icon-chevron',{attrs:{\"direction\":\"down\"}})],1)]):_vm._e()]),_c('div',{staticClass:\"text-center ce-newsletter-subscription--home-button-container blog-container container-fluid\"},[(_vm.confirmOptInPanel)?_c('button',{staticClass:\"btn btn-secondary px-6 w-100 w-md-auto\",on:{\"click\":function($event){return _vm.redirectToHome()}}},[_vm._t(\"homepage-button-text\")],2):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-newsletter-subscription py-7 mb-7\">\n <h2 class=\"text-center\">\n <b-collapse :visible=\"subscribed\">\n <h2 class=\"text-center\"><slot name=\"confirmation-first-headline\"></slot></h2>\n <span class=\"ce-newsletter-subscription--thank-you\"><slot name=\"confirmation-second-headline\"></slot></span>\n </b-collapse>\n <b-collapse :visible=\"confirmOptInPanel\">\n <h2 v-if=\"confirmOptInSuccess\" class=\"text-center\"><slot name=\"confirmation-optin-success-headline\"></slot></h2>\n <h2 v-else class=\"text-center\"><slot name=\"confirmation-optin-error-headline\"></slot></h2>\n </b-collapse>\n </h2>\n\n <div class=\"blog-container container-fluid\">\n <b-collapse :visible=\"!open && !subscribed && !confirmOptInPanel\">\n <h2 v-if=\"!subscribed\" class=\"text-center\"><slot name=\"hidden-headline\"></slot></h2>\n <p\n v-if=\"!subscribed && $slots['hidden-description-text']\"\n class=\"ce-newsletter-subscription--collapsed-subtext fs-26 text-center pb-5 m-0\"\n >\n <slot name=\"hidden-description-text\"></slot>\n </p>\n </b-collapse>\n </div>\n <b-collapse v-model=\"open\">\n <b-collapse :visible=\"subscribed && !confirmOptInPanel\">\n <div class=\"blog-container container-fluid\">\n <p class=\"mb-5\">\n <span v-if=\"subscribeSuccess\"><slot name=\"confirmation-description-text\"></slot></span>\n <span v-else><slot name=\"confirmation-error-description-text\"></slot></span>\n </p>\n </div>\n </b-collapse>\n <b-collapse :visible=\"confirmOptInPanel\">\n <div class=\"blog-container container-fluid\">\n <p class=\"mb-5\">\n <span v-if=\"subscribeSuccess\"><slot name=\"confirmOptIn-description-text\"></slot></span>\n <span v-else><slot name=\"confirmOptIn-error-description-text\"></slot></span>\n </p>\n </div>\n </b-collapse>\n <b-collapse :visible=\"!subscribed && !confirmOptInPanel\">\n <div class=\"ce-newsletter-subscription--collapsible-content pt-3\">\n <div class=\"blog-container container-fluid\">\n <h2 class=\"text-center\"><slot name=\"unhidden-headline\"></slot></h2>\n <p class=\"mb-5\" v-if=\"$slots['unhidden-description-text']\">\n <slot name=\"unhidden-description-text\"></slot>\n </p>\n\n <b-form ref=\"form\" @submit=\"handleSubmit($event)\" novalidate>\n <b-form-radio-group name=\"salutation\" class=\"mb-5\" v-model=\"salutation\">\n <span v-for=\"(salutationItem, i) in settingsProperty.newsletterSalutations\" v-bind:key=\"i\">\n <b-form-radio :value=\"salutationItem\">\n <span class=\"ce-newsletter-subscription--checkbox-and-radio-label fs-16\">{{ salutationItem }}</span>\n </b-form-radio>\n </span>\n </b-form-radio-group>\n\n <!-- Text fields -->\n <div class=\"ce-newsletter-subscription--input-fields mb-5\">\n <div class=\"d-flex flex-column flex-md-row justify-content-between\">\n <div\n class=\"ce-newsletter-subscription--form-field-container\"\n :data-show-error=\"!!errors.firstname && firstnameTouched\"\n >\n <b-form-group\n :label=\"settingsProperty.nameLabel\"\n label-for=\"newsletter-subscription-form--firstname\"\n >\n <b-form-input\n id=\"newsletter-subscription-form--firstname\"\n name=\"firstname\"\n v-model=\"firstname\"\n ></b-form-input>\n </b-form-group>\n <span class=\"ce-newsletter-subscription--form-error\">\n <ad-icon-warnings></ad-icon-warnings>\n {{ errors.firstname }}\n </span>\n </div>\n <div\n class=\"ce-newsletter-subscription--form-field-container\"\n :data-show-error=\"!!errors.surname && surnameTouched\"\n >\n <b-form-group\n :label=\"settingsProperty.surnameLabel\"\n label-for=\"newsletter-subscription-form--surname\"\n >\n <b-form-input\n id=\"newsletter-subscription-form--surname\"\n name=\"surname\"\n v-model=\"surname\"\n ></b-form-input>\n </b-form-group>\n <span class=\"ce-newsletter-subscription--form-error\">\n <ad-icon-warnings></ad-icon-warnings>\n {{ errors.surname }}\n </span>\n </div>\n </div>\n <div\n class=\"ce-newsletter-subscription--form-field-container\"\n :data-show-error=\"!!errors.email && emailTouched\"\n >\n <b-form-group :label=\"settingsProperty.emailLabel\" label-for=\"newsletter-subscription-form--email\">\n <b-form-input type=\"email\" id=\"newsletter-subscription-form--email\" name=\"email\" v-model=\"email\">\n </b-form-input>\n </b-form-group>\n <span class=\"ce-newsletter-subscription--form-error\">\n <ad-icon-warnings></ad-icon-warnings>\n {{ errors.email }}\n </span>\n </div>\n <div\n v-if=\"settingsProperty.showEmailConfirmationField\"\n class=\"ce-newsletter-subscription--form-field-container\"\n :data-show-error=\"!!errors.confirmemail && confirmemailTouched\"\n >\n <b-form-group\n :label=\"settingsProperty.confirmEmailLabel\"\n label-for=\"newsletter-subscription-form--confirmemail\"\n >\n <b-form-input\n type=\"email\"\n id=\"newsletter-subscription-form--confirmemail\"\n name=\"confirmemail\"\n v-model=\"confirmemail\"\n >\n </b-form-input>\n </b-form-group>\n <span class=\"ce-newsletter-subscription--form-error\">\n <ad-icon-warnings></ad-icon-warnings>\n {{ errors.confirmemail }}\n </span>\n </div>\n </div>\n\n <!-- Topics -->\n <div\n class=\"ce-newsletter-subscription--form-field-container mb-5\"\n :data-show-error=\"!!errors.topics && topicsTouched\"\n >\n <b-form-checkbox-group\n id=\"newsletter-subscription-form--topic\"\n name=\"newsletter-topic\"\n v-model=\"topics\"\n >\n <p class=\"fs-16 m-0 mb-2\"><slot name=\"newsletter-topic-label\"></slot></p>\n <div class=\"d-flex flex-column flex-md-row\">\n <b-form-checkbox\n v-for=\"(description, i) in topicDescriptions\"\n v-bind:key=\"i\"\n :value=\"description\"\n :class=\"['mb-md-0', { 'mb-3': i !== topicDescriptions.length - 1 }]\"\n >\n <span class=\"ce-newsletter-subscription--checkbox-and-radio-label fs-16\">\n {{ description.title }}\n\n <button\n v-b-modal=\"`newsletter-topic--${description.title}--${randomId}`\"\n type=\"button\"\n class=\"ce-newsletter-subscription--topic-info-icon\"\n >\n <ad-icon-info></ad-icon-info><span class=\"sr-only\">Info</span>\n </button>\n <b-modal\n :id=\"`newsletter-topic--${description.title}--${randomId}`\"\n dialog-class=\"ce-newsletter-subscription--topic-modal\"\n hide-footer\n centered\n >\n <template #modal-header></template>\n <template #modal-header-close>\n <ad-icon-close></ad-icon-close>\n </template>\n <h3>{{ description.title }}</h3>\n <p>{{ description.description }}</p>\n </b-modal>\n </span>\n </b-form-checkbox>\n </div>\n </b-form-checkbox-group>\n <span class=\"ce-newsletter-subscription--form-error\">\n <ad-icon-warnings></ad-icon-warnings>\n {{ errors.topics }}\n </span>\n </div>\n\n <div\n class=\"ce-newsletter-subscription--form-field-container mb-5\"\n :data-show-error=\"errors.termsAndConditionsAccepted && termsAndConiditionsTouched\"\n v-if=\"settingsProperty.displayTermsAndConditions\"\n >\n <b-form-checkbox\n name=\"terms-and-conditions\"\n value=\"terms-and-conditions-accepted\"\n v-model=\"termsAndConditionsAccepted\"\n >\n <span class=\"ce-newsletter-subscription--checkbox-and-radio-label fs-16 w-100\">\n <slot name=\"terms-and-conditions-checkbox-text\"></slot>\n </span>\n </b-form-checkbox>\n <span class=\"ce-newsletter-subscription--form-error\">\n <ad-icon-warnings></ad-icon-warnings>\n {{ errors.termsAndConditionsAccepted }}\n </span>\n </div>\n\n <button type=\"submit\" class=\"btn btn-primary px-6 mb-6 mb-md-7 w-100 w-md-auto\"\n ><slot name=\"sign-up-button-text\"></slot\n ></button>\n </b-form>\n </div>\n\n <div\n class=\"content-container content-container-t container-fluid justify-content-center d-none d-lg-flex mb-6\"\n >\n <div\n v-for=\"(description, i) in topicDescriptions\"\n v-bind:key=\"i\"\n :class=\"`ce-tile ce-tile__gradient-${topicColors[i]} no-hover p-3 p-lg-5`\"\n >\n <div>\n <h3>{{ description.title }}</h3>\n <p>{{ description.description }}</p>\n </div>\n </div>\n </div>\n </div>\n </b-collapse>\n </b-collapse>\n\n <div class=\"text-center ce-newsletter-subscription--subscribe-button-container blog-container container-fluid\">\n <button\n class=\"btn btn-secondary px-6 w-100 w-md-auto\"\n @click=\"open = !open\"\n v-if=\"!subscribed && !confirmOptInPanel\"\n >\n <span v-if=\"open\"><slot name=\"close-view-button-text\"></slot></span>\n <span v-else><slot name=\"subscribe-button-text\"></slot></span>\n <br />\n <span class=\"ce-newsletter-subscription--subscribe-button-chevron\">\n <ad-icon-chevron v-if=\"open\" direction=\"up\"> </ad-icon-chevron>\n <ad-icon-chevron v-else direction=\"down\"> </ad-icon-chevron>\n </span>\n </button>\n </div>\n <div class=\"text-center ce-newsletter-subscription--home-button-container blog-container container-fluid\">\n <button class=\"btn btn-secondary px-6 w-100 w-md-auto\" @click=\"redirectToHome()\" v-if=\"confirmOptInPanel\">\n <slot name=\"homepage-button-text\"></slot>\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { NewsletterSignupData, NewsletterTopicDescription } from '@/src/types/ce-component-types';\nimport { Controller, HttpStatusCodes } from '@/src/types/enumerations';\nimport { NewsletterSubscriptionSettings, SubscriptionRequest } from '@/src/types/episerver-api';\nimport { getEpiserverApiUrl } from '@/src/utils/url-helper';\nimport httpClient from '@/src/utils/http-service';\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Emit, Inject } from 'vue-property-decorator';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({})\nexport default class CeNewsletterSubscription extends Vue {\n @Inject() settingsProperty!: NewsletterSubscriptionSettings;\n\n get topicDescriptions() {\n return this.settingsProperty?.newsletterTopicDescriptions ?? [];\n }\n\n get homepageUrl() {\n return this.settingsProperty?.homepageUrl;\n }\n\n open = false;\n subscribed = false;\n subscribeSuccess = false;\n confirmOptInPanel = false;\n confirmOptInSuccess = false;\n\n salutation = '';\n firstname = '';\n firstnameTouched = false;\n surname = '';\n surnameTouched = false;\n email = '';\n emailTouched = false;\n confirmemail = '';\n confirmemailTouched = false;\n topics: NewsletterTopicDescription[] = [];\n topicsTouched = false;\n topicColors = ['mulberry', 'grape', 'peacock-blue'];\n termsAndConditionsAccepted = false;\n termsAndConiditionsTouched = false;\n\n /**\n * Needed so that multiple newsletter subscriptions do not get conflicting modals and collapses\n */\n randomId = Math.random().toString();\n\n mounted(): void {\n const uri = window.location.search.substring(1);\n const params = new URLSearchParams(uri);\n let code = params.get('code');\n let guid = params.get('guid');\n if (code != null && guid != null) {\n // code and quid might include some special characters that might need to be encoded before being sent to server\n code = encodeURIComponent(code);\n guid = encodeURIComponent(guid);\n this.confirmOptIn(code, guid);\n }\n }\n\n get errors(): {\n firstname: null | string;\n surname: null | string;\n email: null | string;\n confirmemail: null | string;\n topics: null | string;\n termsAndConditionsAccepted: null | string;\n } {\n const errorByField = {\n firstname: null as null | string,\n surname: null as null | string,\n email: null as null | string,\n confirmemail: null as null | string,\n topics: null as null | string,\n termsAndConditionsAccepted: null as null | string,\n };\n\n if (this.settingsProperty.nameIsRequired) {\n if (this.firstname.trim().length === 0) {\n errorByField.firstname = this.settingsProperty.nameErrorMessage;\n }\n }\n if (this.settingsProperty.surnameIsRequired) {\n if (this.surname.trim().length === 0) {\n errorByField.surname = this.settingsProperty.surnameErrorMessage;\n }\n }\n if (this.email.trim().length === 0) {\n errorByField.email = this.settingsProperty.requiredEmailErrorMessage;\n } else if (!this.email.match(/[^@]+@[^.@]/)) {\n errorByField.email = this.settingsProperty.invalidEmailErrorMessage;\n }\n if (this.settingsProperty.showEmailConfirmationField) {\n if (this.email.trim().toLowerCase() !== this.confirmemail.trim().toLowerCase()) {\n errorByField.confirmemail = this.settingsProperty.emailMatchErrorMessage;\n }\n }\n if (this.topics.length === 0) {\n errorByField.topics = this.settingsProperty.newsletterTopicErrorMessage;\n }\n if (!this.termsAndConditionsAccepted && this.settingsProperty.displayTermsAndConditions) {\n errorByField.termsAndConditionsAccepted = this.settingsProperty.termsAndConditionsErrorMessage;\n }\n\n return errorByField;\n }\n\n get getSubscriptionCodes(): string {\n let subscriptionCodes = '';\n this.topics.map((topic) => {\n subscriptionCodes += `${topic.subscriptionCode};`;\n });\n return subscriptionCodes;\n }\n\n get getSubscriptionTitles(): string {\n return this.topics.map((topic) => topic.title).join(';');\n }\n\n handleSubmit(e: Event) {\n e.preventDefault();\n\n const hasErrors = Object.values(this.errors).some((e) => e !== null);\n if (hasErrors) {\n this.firstnameTouched = true;\n this.surnameTouched = true;\n this.emailTouched = true;\n this.confirmemailTouched = true;\n this.topicsTouched = true;\n this.termsAndConiditionsTouched = true;\n return;\n }\n\n this.trackSubscription();\n this.signup();\n }\n\n async subscribe(): Promise<void> {\n const subscriptionRequest: SubscriptionRequest = {\n salutation: this.salutation,\n firstName: this.firstname,\n lastName: this.surname,\n email: this.email,\n subscriptionCodes: this.getSubscriptionCodes,\n };\n\n try {\n const response = await httpClient.post(getEpiserverApiUrl(Controller.NewsletterSubscription, 'subscribe'), {\n subscription: subscriptionRequest,\n });\n\n this.open = true;\n this.subscribed = true;\n this.subscribeSuccess = response.status == HttpStatusCodes.Created;\n } catch (ex) {\n this.open = true;\n this.subscribed = true;\n this.subscribeSuccess = false;\n }\n }\n\n async confirmOptIn(code: string, guid: string): Promise<void> {\n try {\n const response = await httpClient.get<string>(\n getEpiserverApiUrl(Controller.NewsletterSubscription, 'confirmOptIn'),\n {\n params: { code: code, guid: guid },\n }\n );\n this.confirmOptInPanel = true;\n this.confirmOptInSuccess = response.status == HttpStatusCodes.NoContent;\n } catch (ex) {\n this.confirmOptInPanel = true;\n this.confirmOptInSuccess = false;\n }\n }\n redirectToHome(): void {\n if (this.settingsProperty.homepageUrl != null) {\n window.location.href = this.settingsProperty.homepageUrl;\n }\n }\n\n trackSubscription(): void {\n trackEvent(GaEvent.JoinGroup, {\n group_id: 'newsletter_' + this.getSubscriptionTitles,\n });\n }\n @Emit('signup')\n signup(): NewsletterSignupData {\n this.subscribe();\n return {\n salutation: this.salutation,\n firstname: this.firstname,\n surname: this.surname,\n email: this.email,\n topics: this.topics,\n termsAndConditionsAccepted: !!this.termsAndConditionsAccepted,\n };\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-newsletter-subscription {\n background: $footer-color;\n color: $white;\n\n .collapsing {\n transition: 0.5s ease-in-out height;\n }\n\n h2 {\n color: $white;\n }\n\n &--thank-you {\n color: #84bd00;\n }\n\n &--collapsed-subtext {\n transition: opacity 0.4s;\n opacity: 1;\n\n &.hidden {\n opacity: 0;\n }\n }\n\n &--collapsible-content {\n .custom-radio .custom-control-label {\n padding-top: 0.1rem;\n }\n\n .custom-checkbox .custom-control-label {\n padding-top: 0.1rem;\n }\n\n .ce-tile {\n flex: 0 1 425px;\n }\n\n .ce-tile + .ce-tile {\n margin-left: map-get($spacers, 3);\n }\n }\n\n & .custom-radio {\n width: calc(50% - 1rem);\n\n @include media-breakpoint-up('md') {\n width: 12rem;\n }\n }\n\n &--checkbox-and-radio-label {\n color: $white;\n font-weight: normal;\n\n @include media-breakpoint-up('md') {\n display: inline-block;\n min-width: 11rem;\n }\n }\n\n &--form-field-container {\n transition:\n padding 0.2s,\n background 0.2s,\n color 0.2s;\n margin-bottom: map-get($spacers, 3);\n border-radius: 0.4rem;\n padding: 0;\n\n .form-group {\n margin: 0;\n }\n\n &[data-show-error='true'] {\n border-radius: 0.4rem;\n background: #e7cedd;\n padding: map-get($spacers, 2);\n color: $mulberry;\n\n .form-group {\n border: 2px solid $mulberry;\n }\n\n label {\n color: $mulberry;\n }\n\n .custom-checkbox .custom-control-label::before {\n border: 2px solid $mulberry;\n background: $white;\n }\n\n .ce-newsletter-subscription--checkbox-and-radio-label {\n color: $mulberry;\n }\n\n .ce-newsletter-subscription--checkbox-and-radio-label a {\n text-decoration: underline;\n color: $mulberry;\n }\n\n .ce-newsletter-subscription--topic-info-icon {\n color: $mulberry;\n }\n }\n }\n\n &--form-error {\n display: none;\n padding-top: map-get($spacers, 1);\n font-size: 16px;\n font-weight: bold;\n\n [data-show-error='true'] & {\n display: inline-block;\n }\n }\n\n &--input-fields {\n .ce-newsletter-subscription--form-field-container {\n width: 100%;\n\n @include media-breakpoint-up('md') {\n width: calc(50% - #{map-get($spacers, 4) / 2});\n }\n }\n }\n\n &--topic-info-icon {\n display: inline-block;\n border: 0;\n background: transparent;\n color: $white;\n\n @include media-breakpoint-up('lg') {\n display: none;\n }\n }\n\n &--topic-modal {\n .close {\n font-size: 1rem;\n }\n\n .modal-header {\n border: 0;\n padding: map-get($spacers, 3) map-get($spacers, 3) 0 0;\n font-size: 12px;\n }\n\n .modal-body {\n padding: 0 map-get($spacers, 4) 2rem;\n }\n }\n\n &--subscribe-button-container .btn {\n line-height: 1rem;\n }\n\n &--subscribe-button-chevron {\n line-height: 0.5rem;\n font-size: 0.5rem;\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44c20351\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44c20351&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ce-sub-page-tiles\"},_vm._l((_vm.tiles),function(tile,i){return _c('a',{key:i,staticClass:\"ce-sub-page-tiles--tile-container\",attrs:{\"href\":tile.link}},[_c('div',{staticClass:\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\",class:'ce-tile__gradient-' + tile.color},[_c('div',{staticClass:\"col-11 p-0\"},[_c('h3',[_vm._v(_vm._s(tile.title))]),_c('p',[_vm._v(\" \"+_vm._s(tile.text)+\" \")])]),_c('div',{staticClass:\"col-1 fs-18\"},[_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],1)])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"ce-sub-page-tiles\">\n <a v-for=\"(tile, i) in tiles\" v-bind:key=\"i\" :href=\"tile.link\" class=\"ce-sub-page-tiles--tile-container\">\n <div :class=\"'ce-tile__gradient-' + tile.color\" class=\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\">\n <div class=\"col-11 p-0\">\n <h3>{{ tile.title }}</h3>\n <p>\n {{ tile.text }}\n </p>\n </div>\n <div class=\"col-1 fs-18\"><ad-icon-chevron rotate=\"270\" /></div>\n </div>\n </a>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { TileContent } from '@/src/types/ce-component-types';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeSubPageTiles extends Vue {\n @Prop({ required: true }) tiles!: TileContent[];\n}\n</script>\n\n<style lang=\"scss\">\n.ce-sub-page-tiles {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n &--tile-container {\n margin-bottom: map-get($spacers, 4);\n width: 100%;\n\n @include media-breakpoint-up('lg') {\n flex: 0 0 auto;\n margin-right: map-get($spacers, 4);\n width: calc(33.333% - #{map-get($spacers, 4) * 2 / 3});\n\n &:nth-child(3n) {\n margin-right: 0;\n }\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6768b6ab\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6768b6ab&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:{ 'mb-0 mb-md-4': !_vm.lastChunk }},[_c('div',{staticClass:\"d-flex flex-column flex-md-row align-items-end mb-0 mb-md-4\"},[_c('a',{class:_vm.firstClasses,attrs:{\"href\":_vm.first.link}},[_c('div',{staticClass:\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\",class:'ce-tile__gradient-' + _vm.first.color},[_c('div',{staticClass:\"col-11 p-0\"},[_c('h3',[_vm._v(_vm._s(_vm.first.title))]),(!_vm.tiny)?_c('p',[_vm._v(\" \"+_vm._s(_vm.first.text)+\" \")]):_vm._e()]),_c('div',{staticClass:\"col-1 fs-18\"},[_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],1)])]),(_vm.tiles.length > 1)?[_c('a',{class:_vm.secondClasses,attrs:{\"href\":_vm.second.link}},[_c('div',{staticClass:\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\",class:'ce-tile__gradient-' + _vm.second.color},[_c('div',{staticClass:\"col-11 p-0\"},[_c('h3',[_vm._v(_vm._s(_vm.second.title))]),(!_vm.tiny)?_c('p',[_vm._v(_vm._s(_vm.second.text))]):_vm._e()]),_c('div',{staticClass:\"col-1 fs-18\"},[_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],1)])])]:_vm._e()],2),(_vm.tiles.length > 2)?_c('div',{staticClass:\"d-flex flex-column flex-md-row\"},[(_vm.tiles.length > 2)?[_c('a',{class:_vm.thirdClasses,attrs:{\"href\":_vm.third.link}},[_c('div',{staticClass:\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\",class:'ce-tile__gradient-' + _vm.third.color},[_c('div',{staticClass:\"col-11 p-0\"},[_c('h3',[_vm._v(_vm._s(_vm.third.title))]),(!_vm.tiny)?_c('p',[_vm._v(_vm._s(_vm.third.text))]):_vm._e()]),_c('div',{staticClass:\"col-1 fs-18\"},[_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],1)])])]:_vm._e(),(_vm.tiles.length > 3)?[_c('a',{class:_vm.fourthClasses,attrs:{\"href\":_vm.fourth.link}},[_c('div',{staticClass:\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\",class:'ce-tile__gradient-' + _vm.fourth.color},[_c('div',{staticClass:\"col-11 p-0\"},[_c('h3',[_vm._v(_vm._s(_vm.fourth.title))]),(!_vm.tiny)?_c('p',[_vm._v(_vm._s(_vm.fourth.text))]):_vm._e()]),_c('div',{staticClass:\"col-1 fs-18\"},[_c('ad-icon-chevron',{attrs:{\"rotate\":\"270\"}})],1)])])]:_vm._e()],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :class=\"{ 'mb-0 mb-md-4': !lastChunk }\">\n <div class=\"d-flex flex-column flex-md-row align-items-end mb-0 mb-md-4\">\n <a :href=\"first.link\" :class=\"firstClasses\">\n <div :class=\"'ce-tile__gradient-' + first.color\" class=\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\">\n <div class=\"col-11 p-0\">\n <h3>{{ first.title }}</h3>\n <p v-if=\"!tiny\">\n {{ first.text }}\n </p>\n </div>\n <div class=\"col-1 fs-18\"><ad-icon-chevron rotate=\"270\" /></div>\n </div>\n </a>\n <template v-if=\"tiles.length > 1\">\n <a :href=\"second.link\" :class=\"secondClasses\">\n <div :class=\"'ce-tile__gradient-' + second.color\" class=\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\">\n <div class=\"col-11 p-0\">\n <h3>{{ second.title }}</h3>\n <p v-if=\"!tiny\">{{ second.text }}</p></div\n >\n <div class=\"col-1 fs-18\"><ad-icon-chevron rotate=\"270\" /></div>\n </div>\n </a>\n </template>\n </div>\n\n <div v-if=\"tiles.length > 2\" class=\"d-flex flex-column flex-md-row\">\n <template v-if=\"tiles.length > 2\">\n <a :href=\"third.link\" :class=\"thirdClasses\">\n <div :class=\"'ce-tile__gradient-' + third.color\" class=\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\">\n <div class=\"col-11 p-0\">\n <h3>{{ third.title }}</h3>\n <p v-if=\"!tiny\">{{ third.text }}</p>\n </div>\n <div class=\"col-1 fs-18\"><ad-icon-chevron rotate=\"270\" /></div>\n </div>\n </a>\n </template>\n <template v-if=\"tiles.length > 3\">\n <a :href=\"fourth.link\" :class=\"fourthClasses\">\n <div :class=\"'ce-tile__gradient-' + fourth.color\" class=\"w-100 ce-tile h-100 p-3 p-md-5 d-flex flex-nowrap\">\n <div class=\"col-11 p-0\">\n <h3>{{ fourth.title }}</h3>\n <p v-if=\"!tiny\">{{ fourth.text }}</p>\n </div>\n <div class=\"col-1 fs-18\"><ad-icon-chevron rotate=\"270\" /></div>\n </div>\n </a>\n </template>\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { TileContent } from '@/src/types/ce-component-types';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class CeTileChunk extends Vue {\n @Prop({ required: true }) tiles!: TileContent[];\n @Prop({ required: true }) lastChunk!: boolean;\n @Prop({ default: false }) tiny!: boolean;\n\n get first() {\n return this.tiles[0];\n }\n get second() {\n return this.tiles[1];\n }\n get third() {\n return this.tiles[2];\n }\n get fourth() {\n return this.tiles[3];\n }\n get firstClasses() {\n return `ce-tile__${this.tiny ? 'tiny' : 'size1'} mb-5 mb-md-0 mr-md-4`;\n }\n get secondClasses() {\n return `ce-tile__${this.tiny ? 'tiny' : this.tiles.length === 2 ? 'size1' : 'size2'} mb-5 mb-md-0`;\n }\n get thirdClasses() {\n return `ce-tile__${this.tiny ? 'tiny' : 'size3'} mb-5 mb-md-0 mr-md-4`;\n }\n get fourthClasses() {\n return `ce-tile__${this.tiny ? 'tiny' : 'size4'} mb-5 mb-md-0`;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.ce-tile {\n position: relative;\n transition: background-position-x 2s ease;\n border: 0;\n background-position: 0 0;\n background-size: 200%, 200%;\n color: $white;\n\n &:not(.no-hover) {\n cursor: pointer;\n\n &:hover {\n background-position: 100% 0;\n }\n }\n\n h1,\n h2,\n h3,\n h4 {\n color: $white;\n }\n &__gradient-mulberry {\n background-image: linear-gradient(113deg, $mulberry, $magenta, $mulberry);\n\n &:not(.no-hover):active {\n background: $magenta;\n }\n }\n &__gradient-grape {\n background-image: linear-gradient(115deg, $grape, $lavender, $grape);\n\n &:not(.no-hover):active {\n background: $lavender;\n }\n }\n &__gradient-deep-turquoise {\n background-image: linear-gradient(109deg, $deep-turquoise, #0098a0, $deep-turquoise);\n\n &:not(.no-hover):active {\n background: #0098a0;\n }\n }\n &__gradient-peacock-blue {\n background-image: linear-gradient(135deg, $peacock-blue, #3089cc, $peacock-blue);\n\n &:not(.no-hover):active {\n background: #3089cc;\n }\n }\n\n &__size1 {\n width: 100%;\n height: 100%;\n @include media-breakpoint-up('md') {\n max-width: 50%;\n height: rem(397);\n }\n }\n\n &__size2 {\n width: 100%;\n height: 100%;\n @include media-breakpoint-up('md') {\n max-width: 50%;\n height: rem(300);\n }\n }\n &__size3 {\n width: 100%;\n height: 100%;\n @include media-breakpoint-up('md') {\n max-width: 66%;\n height: rem(300);\n }\n }\n &__size4 {\n width: 100%;\n height: 100%;\n @include media-breakpoint-up('md') {\n max-width: 34%;\n height: rem(410);\n }\n }\n &__tiny {\n width: 100%;\n height: rem(88);\n\n @include media-breakpoint-up('md') {\n width: calc(50% - #{map-get($spacers, 4) / 2});\n height: rem(145);\n }\n }\n}\n</style>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./_tile-chunk.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./_tile-chunk.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./_tile-chunk.vue?vue&type=template&id=aee81ae0\"\nimport script from \"./_tile-chunk.vue?vue&type=script&lang=ts\"\nexport * from \"./_tile-chunk.vue?vue&type=script&lang=ts\"\nimport style0 from \"./_tile-chunk.vue?vue&type=style&index=0&id=aee81ae0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',_vm._l((_vm.tileChunks),function(chunk,i){return _c('ce-tile-chunk',{key:i,attrs:{\"tiles\":chunk,\"lastChunk\":i + 1 === _vm.numberOfChunks,\"tiny\":_vm.tiny}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <ce-tile-chunk\n v-for=\"(chunk, i) in tileChunks\"\n v-bind:key=\"i\"\n :tiles=\"chunk\"\n :lastChunk=\"i + 1 === numberOfChunks\"\n :tiny=\"tiny\"\n ></ce-tile-chunk>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport CeTileChunk from './_tile-chunk.vue';\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { TileContent } from '@/src/types/ce-component-types';\n\n@Component({\n components: {\n CeTileChunk,\n },\n})\nexport default class CeTile extends Vue {\n @Prop({ required: true }) tiles!: TileContent[];\n @Prop({ default: false }) tiny!: boolean;\n\n get tileChunks(): TileContent[][] {\n const chunks: TileContent[][] = [];\n const tileList = [...this.tiles];\n let chunk: TileContent[] = [];\n for (let i = 0; i < tileList.length; i++) {\n if (chunk.length === 4) {\n chunks.push(chunk);\n chunk = [];\n }\n chunk.push(tileList[i]);\n }\n chunks.push(chunk);\n return chunks;\n }\n\n get numberOfChunks() {\n return Math.ceil(this.tiles.length / 4);\n }\n}\n</script>\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tiles.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./tiles.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./tiles.vue?vue&type=template&id=e5ca4af8\"\nimport script from \"./tiles.vue?vue&type=script&lang=ts\"\nexport * from \"./tiles.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._t(\"search\",null,{\"currentProductType\":_vm.currentProductType,\"updateProductType\":_vm.updateProductType,\"pageLink\":_vm.settingsProperty.pageLink}),_vm._t(\"content-area\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <slot\n name=\"search\"\n :currentProductType=\"currentProductType\"\n :updateProductType=\"updateProductType\"\n :pageLink=\"settingsProperty.pageLink\"\n ></slot>\n <slot name=\"content-area\"></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { ProductTypeBo } from '@/src/types/enumerations';\nimport { BestMatchSearchPageSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { Action } from 'vuex-class';\n\n@Component({})\nexport default class AdBestMatchSearchPage extends Vue {\n @Inject() settingsProperty!: BestMatchSearchPageSetting;\n\n @Action('bestMatchTableClear', { namespace: 'bestMatch' })\n bestMatchTableClear!: () => Promise<void>;\n\n currentProductType: ProductTypeBo = ProductTypeBo.Warrant;\n\n created() {\n this.currentProductType = this.settingsProperty.productType;\n }\n\n updateProductType(productType: ProductTypeBo) {\n this.bestMatchTableClear();\n this.currentProductType = productType;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=38e819dc\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"content-container container-fluid mb-0\"},[_c('div',{staticClass:\"position-relative\"},[_c('div',{staticClass:\"a-d-marker fs-12\"},[_vm._t(\"advertisment\")],2),_vm._t(\"header-image\")],2)]),_c('b-container',{staticClass:\"blog-container mt-6 mt-md-7 mt-xl-8 mb-7\",attrs:{\"fluid\":\"\"}},[_c('h2',[_vm._t(\"headline\")],2),(_vm.$slots['preview-text'])?_c('p',{staticClass:\"mb-4 fs-26 marine-blue\"},[_vm._t(\"preview-text\")],2):_vm._e(),_c('div',[_c('ce-author-small',{scopedSlots:_vm._u([{key:\"author-name\",fn:function(){return [_vm._t(\"author-name\")]},proxy:true},{key:\"author-headline\",fn:function(){return [_vm._t(\"author-headline\")]},proxy:true},{key:\"social-like\",fn:function(){return [_vm._t(\"social-like\")]},proxy:true},{key:\"social-share-twitter\",fn:function(){return [_vm._t(\"social-share-twitter\")]},proxy:true},{key:\"social-share-facebook\",fn:function(){return [_vm._t(\"social-share-facebook\")]},proxy:true}],null,true)})],1)]),(_vm.$slots['content'])?_c('div',{class:[\n 'mt-7',\n { 'mb-7 mb-md-8 ': !_vm.displayContainer && !_vm.settingsProperty.showNewsletterSubscription && !_vm.$slots['teasers'] },\n ]},[_c('ad-json-settings-property',{attrs:{\"settings\":_vm.settingsProperty.accordionAnchorSettings}},[_vm._t(\"content\")],2)],1):_vm._e(),(_vm.displayContainer)?_c('b-container',{staticClass:\"blog-container mb-7 mb-md-8\",attrs:{\"fluid\":\"\"}},[(_vm.settingsProperty.showProspectusDisclaimer)?_c('div',{staticClass:\"mt-7\"},[_vm._t(\"disclaimer-prospectus\")],2):_vm._e(),(_vm.settingsProperty.showLegalDisclaimer)?_c('div',{staticClass:\"mt-7\"},[_vm._t(\"disclaimer-legal\")],2):_vm._e(),(_vm.settingsProperty.showAuthor)?_c('div',{staticClass:\"mt-7\"},[_vm._t(\"author-block\")],2):_vm._e(),(_vm.settingsProperty.showBlogNavigation)?_c('div',{staticClass:\"mt-6\"},[_vm._t(\"blog-navigation-block\")],2):_vm._e()]):_vm._e(),(_vm.settingsProperty.showNewsletterSubscription)?_c('div',{staticClass:\"mt-7 mb-7\"},[_vm._t(\"newsletter-subscription-block\")],2):_vm._e(),_vm._t(\"teasers\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"content-container container-fluid mb-0\">\n <div class=\"position-relative\">\n <!-- a-d is separated by the dash to not trigger a-d-blockers -->\n <div class=\"a-d-marker fs-12\"><slot name=\"advertisment\"></slot></div>\n <slot name=\"header-image\"></slot>\n </div>\n </div>\n <b-container fluid class=\"blog-container mt-6 mt-md-7 mt-xl-8 mb-7\">\n <h2><slot name=\"headline\"></slot></h2>\n <p class=\"mb-4 fs-26 marine-blue\" v-if=\"$slots['preview-text']\">\n <slot name=\"preview-text\"></slot>\n </p>\n <div>\n <ce-author-small>\n <template #author-name><slot name=\"author-name\"></slot></template>\n <template #author-headline><slot name=\"author-headline\"></slot></template>\n <template #social-like><slot name=\"social-like\"></slot></template>\n <template #social-share-twitter><slot name=\"social-share-twitter\"></slot></template>\n <template #social-share-facebook><slot name=\"social-share-facebook\"></slot></template>\n </ce-author-small>\n </div>\n </b-container>\n <div\n v-if=\"$slots['content']\"\n :class=\"[\n 'mt-7',\n { 'mb-7 mb-md-8 ': !displayContainer && !settingsProperty.showNewsletterSubscription && !$slots['teasers'] },\n ]\"\n >\n <ad-json-settings-property :settings=\"settingsProperty.accordionAnchorSettings\">\n <slot name=\"content\"></slot>\n </ad-json-settings-property>\n </div>\n <b-container fluid class=\"blog-container mb-7 mb-md-8\" v-if=\"displayContainer\">\n <div class=\"mt-7\" v-if=\"settingsProperty.showProspectusDisclaimer\">\n <slot name=\"disclaimer-prospectus\"></slot>\n </div>\n <div class=\"mt-7\" v-if=\"settingsProperty.showLegalDisclaimer\">\n <slot name=\"disclaimer-legal\"></slot>\n </div>\n <div class=\"mt-7\" v-if=\"settingsProperty.showAuthor\">\n <slot name=\"author-block\"></slot>\n </div>\n <div class=\"mt-6\" v-if=\"settingsProperty.showBlogNavigation\">\n <slot name=\"blog-navigation-block\"></slot>\n </div>\n </b-container>\n <div class=\"mt-7 mb-7\" v-if=\"settingsProperty.showNewsletterSubscription\">\n <slot name=\"newsletter-subscription-block\"></slot>\n </div>\n <slot name=\"teasers\"></slot>\n </div>\n</template>\n<script lang=\"ts\">\nimport { BlogPageSettings } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class AdBlogPageBase extends Vue {\n @Inject() settingsProperty?: BlogPageSettings;\n\n get displayContainer(): boolean | undefined {\n return (\n this.settingsProperty?.showAuthor ||\n this.settingsProperty?.showBlogNavigation ||\n this.settingsProperty?.showProspectusDisclaimer ||\n this.settingsProperty?.showLegalDisclaimer\n );\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=40278d9b\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-container',{staticClass:\"content-container mb-0\",attrs:{\"fluid\":\"\"}},[_vm._t(\"main-video\"),_c('div',{staticClass:\"row\"},[_vm._l((_vm.teasers),function(teaser,i){return [_c('div',{directives:[{name:\"appear-trigger\",rawName:\"v-appear-trigger\"}],key:i,staticClass:\"col d-flex align-self-stretch col-12 mb-5 mb-md-0\",class:[\n _vm.teasers.length === 1\n ? 'flex-column flex-md-row align-items-center col-md'\n : `flex-column align-items-start col-md-3`,\n ]},[_c('div',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(0),expression:\"0\"}],staticClass:\"w-100 overflow-hidden mb-3\",class:[_vm.teasers.length === 1 ? 'col-12 col-md-7 p-0' : 'mb-md-5']},[_c('ce-video-preview',{attrs:{\"youtubeId\":teaser.youtubeId},scopedSlots:_vm._u([(teaser.previewImageSrc)?{key:\"preview-image\",fn:function(){return [_c('img',{staticClass:\"aspect-ratio-filler zoom-animated-image\",attrs:{\"src\":teaser.previewImageSrc}})]},proxy:true}:null],null,true)})],1),_c('div',{class:[_vm.teasers.length === 1 && 'pl-md-4']},[_c('h3',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(1),expression:\"1\"}]},[_c('a',{attrs:{\"href\":teaser.link}},[_c('ad-template-renderer',{attrs:{\"text\":teaser.headlineText}})],1)]),(teaser.previewText)?_c('p',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(2),expression:\"2\"}]},[_vm._v(\" \"+_vm._s(teaser.previewText)+\" \")]):_vm._e(),(teaser.youtubeId != null)?_c('p',{directives:[{name:\"appear-delay\",rawName:\"v-appear-delay\",value:(3),expression:\"3\"}],staticClass:\"fs-16\"},[_c('ce-video-info',{attrs:{\"youtube-id\":teaser.youtubeId},scopedSlots:_vm._u([{key:\"default\",fn:function({ duration }){return [_c('span',{staticClass:\"d-block\"},[_vm._v(_vm._s(_vm._f(\"formatField\")(teaser.publishedDate,_vm.dateFormatKey))+\" | \"+_vm._s(duration))])]}}],null,true)})],1):_vm._e()])])]})],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-container fluid class=\"content-container mb-0\">\n <slot name=\"main-video\"></slot>\n <div class=\"row\">\n <template v-for=\"(teaser, i) in teasers\">\n <div\n v-bind:key=\"i\"\n v-appear-trigger\n class=\"col d-flex align-self-stretch col-12 mb-5 mb-md-0\"\n :class=\"[\n teasers.length === 1\n ? 'flex-column flex-md-row align-items-center col-md'\n : `flex-column align-items-start col-md-3`,\n ]\"\n >\n <div\n v-appear-delay=\"0\"\n class=\"w-100 overflow-hidden mb-3\"\n :class=\"[teasers.length === 1 ? 'col-12 col-md-7 p-0' : 'mb-md-5']\"\n >\n <ce-video-preview :youtubeId=\"teaser.youtubeId\">\n <template #preview-image v-if=\"teaser.previewImageSrc\">\n <img class=\"aspect-ratio-filler zoom-animated-image\" :src=\"teaser.previewImageSrc\" />\n </template>\n </ce-video-preview>\n </div>\n <div :class=\"[teasers.length === 1 && 'pl-md-4']\">\n <h3 v-appear-delay=\"1\">\n <a :href=\"teaser.link\"><ad-template-renderer :text=\"teaser.headlineText\"></ad-template-renderer></a>\n </h3>\n <p v-if=\"teaser.previewText\" v-appear-delay=\"2\">\n {{ teaser.previewText }}\n </p>\n <p v-appear-delay=\"3\" v-if=\"teaser.youtubeId != null\" class=\"fs-16\">\n <ce-video-info :youtube-id=\"teaser.youtubeId\">\n <template #default=\"{ duration }\">\n <span class=\"d-block\">{{ teaser.publishedDate | formatField(dateFormatKey) }} | {{ duration }}</span>\n </template>\n </ce-video-info>\n </p>\n </div>\n </div>\n </template>\n </div>\n </b-container>\n</template>\n<script lang=\"ts\">\nimport { EducationVideoPageSettings, EducationVideoPageTeaserSettings } from '@/src/types/episerver-api';\nimport { DefaultFormat } from '@/src/types/enumerations';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class AdEducationVideoPage extends Vue {\n @Inject() settingsProperty?: EducationVideoPageSettings;\n\n get teasers(): Array<EducationVideoPageTeaserSettings> {\n return this.settingsProperty?.teasers ?? [];\n }\n\n get dateFormatKey(): string {\n return DefaultFormat.BlogDate;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=77f56b12\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[(_vm.product)?_c('div',{staticClass:\"content-container container-fluid mb-0 mt-7\"},[_c('div',{staticClass:\"mb-5 mb-lg-7\"},[_c('h1',{staticClass:\"mb-1\"},[_vm._v(\" \"+_vm._s(_vm._f(\"uppercase\")(_vm.product.name))+\" \")]),_c('div',{staticClass:\"fs-26 gun-metal mb-5\"},[_c('span',[_vm._v(_vm._s(_vm._f(\"uppercase\")(_vm.product.isin)))]),(_vm.product)?_c('span',{directives:[{name:\"clipboard\",rawName:\"v-clipboard\",value:(_vm.product.isin),expression:\"product.isin\"},{name:\"clipboard\",rawName:\"v-clipboard:success\",value:(_vm.clipboardSuccessHandler),expression:\"clipboardSuccessHandler\",arg:\"success\"},{name:\"b-popover\",rawName:\"v-b-popover.top.click\",value:(_vm.copyConfirmationText),expression:\"copyConfirmationText\",modifiers:{\"top\":true,\"click\":true}}],staticClass:\"mt-0 blue icon-copy\",attrs:{\"role\":\"button\"},on:{\"click\":_vm.onCloseCopyPopover}},[_c('ad-icon-copy',{attrs:{\"id\":\"icon-copy\",\"height\":\"0.8em\"}})],1):_vm._e()])]),_c('h2',{staticClass:\"mb-2 mb-lg-5\"},[_vm._t(\"downloads-label\")],2),_c('div',[_c('ce-download',{attrs:{\"url\":_vm.product.pricingSupplementPath,\"download-click\":_vm.downloadClick},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(_vm.pricingSupplementLabel))]},proxy:true}],null,false,210252638)})],1),_c('div',[(_vm.product.isAmendmentNoticeFinal != null)?_c('ce-download',{attrs:{\"url\":_vm.product.amendmentNoticePath,\"download-click\":_vm.downloadAmendmentNoticeClick},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(_vm._s(_vm.amendmentNoticeLabel))]},proxy:true}],null,false,2662921152)}):_vm._e()],1)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <div class=\"content-container container-fluid mb-0 mt-7\" v-if=\"product\">\n <div class=\"mb-5 mb-lg-7\">\n <h1 class=\"mb-1\"> {{ product.name | uppercase }} </h1>\n <div class=\"fs-26 gun-metal mb-5\">\n <span>{{ product.isin | uppercase }}</span>\n <span\n class=\"mt-0 blue icon-copy\"\n v-if=\"product\"\n v-clipboard=\"product.isin\"\n v-clipboard:success=\"clipboardSuccessHandler\"\n @click=\"onCloseCopyPopover\"\n v-b-popover.top.click=\"copyConfirmationText\"\n role=\"button\"\n ><ad-icon-copy id=\"icon-copy\" height=\"0.8em\" />\n </span>\n </div>\n </div>\n <h2 class=\"mb-2 mb-lg-5\"><slot name=\"downloads-label\"></slot></h2>\n <div>\n <ce-download :url=\"product.pricingSupplementPath\" :download-click=\"downloadClick\">\n <template #text>{{ pricingSupplementLabel }}</template>\n </ce-download>\n </div>\n <div>\n <ce-download\n :url=\"product.amendmentNoticePath\"\n :download-click=\"downloadAmendmentNoticeClick\"\n v-if=\"product.isAmendmentNoticeFinal != null\"\n >\n <template #text>{{ amendmentNoticeLabel }}</template>\n </ce-download>\n </div>\n </div>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport { HttpStatusCodes } from '@/src/types/enumerations';\nimport { Vue, Component, Prop, Inject } from 'vue-property-decorator';\nimport { PriipModel } from '@/src/types/the-q-api';\nimport { PriipPageSettings } from '@/src/types/episerver-api';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { Action, Getter } from 'vuex-class';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\nimport { downloadClick } from '@/src/utils/document-service';\n\n@Component({\n filters: {\n uppercase: function (value: string) {\n return !value ? '' : value.toUpperCase();\n },\n },\n})\nexport default class AdPriipPage extends Vue {\n @Prop() isin!: string | undefined;\n @Prop({ default: 'Copied' }) isinCopiedText!: string;\n @Inject() settingsProperty?: PriipPageSettings;\n\n @Getter('product', { namespace: 'priip' })\n product!: PriipModel | null;\n\n @Action('loadProductAsync', { namespace: 'priip' })\n loadProductAsync!: (isin: string) => Promise<void>;\n\n private statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n\n private get pricingSupplementLabelWithPlaceholder(): string | undefined {\n return this.product?.isFinal\n ? this.settingsProperty?.finalPricingSupplementLabel\n : this.settingsProperty?.preliminaryPricingSupplementLabel;\n }\n\n private get pricingSupplementLabel(): string | null | undefined {\n return this.product?.isin == null\n ? null\n : this.pricingSupplementLabelWithPlaceholder?.replace('{{ISIN}}', this.product.isin.toUpperCase());\n }\n\n private get amendmentNoticeLabel(): string | null | undefined {\n return this.product?.isin == null\n ? null\n : this.settingsProperty?.amendmentNoticeLabel?.replace('{{ISIN}}', this.product.isin.toUpperCase());\n }\n\n public async created() {\n if (this.isin) {\n try {\n await this.loadProductAsync(this.isin);\n return;\n } catch (error: unknown) {\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n return;\n }\n }\n }\n\n this.statusCode = HttpStatusCodes.NotFound;\n }\n\n private get copyConfirmationText(): string {\n return this.settingsProperty?.isinCopiedText ?? 'Copied';\n }\n\n private onCloseCopyPopover(): void {\n setTimeout(() => {\n this.$root.$emit('bv::hide::popover');\n }, 3000);\n }\n\n private clipboardSuccessHandler({ value }) {\n trackEvent(GaEvent.SelectItem, {\n item_list_id: 'product_identifier',\n items: [{ item_id: value }],\n });\n }\n\n private downloadClick() {\n if (!this.product || !this.pricingSupplementLabel) {\n return;\n }\n downloadClick(this.product.pricingSupplementPath, this.pricingSupplementLabel, 'pdf');\n }\n\n private downloadAmendmentNoticeClick() {\n if (!this.product || !this.amendmentNoticeLabel || !this.product.amendmentNoticePath) {\n return;\n }\n downloadClick(this.product.amendmentNoticePath, this.amendmentNoticeLabel, 'pdf');\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=db7e4656\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product-search-sorting\",attrs:{\"id\":\"product-search-sorting-container\"}},[_c('b-button',_vm._b({ref:\"button\",class:{ 'w-100': _vm.wide },attrs:{\"variant\":\"light\",\"id\":\"popover-sorting-reactive\"}},'b-button',_vm.$attrs,false),[_c('ad-icon-sort'),_vm._t(\"button-sorting-text\",function(){return [_vm._v(\"Sorting\")]})],2),_c('b-popover',{ref:\"popover\",attrs:{\"target\":\"popover-sorting-reactive\",\"triggers\":\"click\",\"show\":_vm.isPopoverShow,\"placement\":\"bottom\",\"fallback-placement\":[],\"container\":\"product-search-sorting-container\"},on:{\"update:show\":function($event){_vm.isPopoverShow=$event}}},[_c('b-row',[_c('b-col',[_c('h3',[_vm._t(\"sorting-headline-text\",function(){return [_vm._v(\"Sort By\")]})],2)]),_c('b-col',[_c('div',{staticClass:\"text-right\"},[_c('b-button',{attrs:{\"variant\":\"link\",\"aria-label\":\"Close\"},on:{\"click\":_vm.close}},[_c('ad-icon-close')],1)],1)])],1),_c('b-row',{staticClass:\"no-gutters mb-2\"},[_c('b-col',{attrs:{\"cols\":\"7\"}},[_vm._t(\"sorting-column-headline-text\",function(){return [_vm._v(\" Columns \")]})],2),_c('b-col',{attrs:{\"cols\":\"5\"}},[_c('div',{staticClass:\"ml-3\"},[_vm._t(\"sorting-direction-headline-text\",function(){return [_vm._v(\" Ascending/Descending \")]})],2)])],1),_vm._l((_vm.sortings),function(sort,index){return _c('b-row',{key:index,attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"7\"}},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{staticClass:\"text-nowrap pt-3\",attrs:{\"cols\":\"1\"}},[_vm._v(\" \"+_vm._s(index + 1)+\". \")]),_c('b-col',{attrs:{\"cols\":\"11\"}},[_c('b-form-group',{staticClass:\"focus-white form-group-xl-spacing\",attrs:{\"id\":'input-group-' + index}},[_c('ad-drop-down-list',{attrs:{\"options\":_vm.items,\"form-element-state-id\":'input-group-' + index,\"id\":'input-' + index,\"is-selectable\":_vm.isSelectable},model:{value:(sort.key),callback:function ($$v) {_vm.$set(sort, \"key\", $$v)},expression:\"sort.key\"}})],1)],1)],1)],1),_c('b-col',{attrs:{\"cols\":\"5\"}},[_c('div',{staticClass:\"ml-3 mt-2\"},[_c('b-button',{staticClass:\"miw-auto sorting right\",attrs:{\"variant\":\"light\",\"pressed\":sort.direction == _vm.sortingDirection.Ascending},on:{\"click\":function($event){return _vm.sortingDirectionChanged(sort, _vm.sortingDirection.Ascending)}}},[_c('ad-icon-chevron',{attrs:{\"direction\":_vm.direction.up,\"size\":_vm.size.s}})],1),_c('b-button',{staticClass:\"miw-auto sorting left\",attrs:{\"variant\":\"light\",\"pressed\":sort.direction == _vm.sortingDirection.Descending},on:{\"click\":function($event){return _vm.sortingDirectionChanged(sort, _vm.sortingDirection.Descending)}}},[_c('ad-icon-chevron',{attrs:{\"size\":_vm.size.s}})],1)],1)])],1)}),(_vm.isDistributionFeeVisible)?_c('div',{staticClass:\"mt-3\"},[_vm._t(\"sorting-add-columns-text\",function(){return [_vm._v(\"Add columns (optional)\")]}),_c('b-form-checkbox',{attrs:{\"name\":\"switch-button\",\"switch\":\"\"},model:{value:(_vm.filter.isAddColumnDistributionFee),callback:function ($$v) {_vm.$set(_vm.filter, \"isAddColumnDistributionFee\", $$v)},expression:\"filter.isAddColumnDistributionFee\"}},[_vm._t(\"sorting-distribution-fee-text\",function(){return [_vm._v(\"Distribution Fee\")]})],2)],2):_vm._e(),_c('div',{staticClass:\"text-center mt-5\"},[_c('b-button',{staticClass:\"mb-2 mb-md-0\",attrs:{\"variant\":\"light\",\"size\":\"s\"},on:{\"click\":_vm.resetFilter}},[_vm._t(\"sorting-reset-button-text\",function(){return [_vm._v(\"Reset\")]})],2),_c('b-button',{staticClass:\"ml-2\",attrs:{\"size\":\"s\"},on:{\"click\":_vm.sortingChanged}},[_vm._t(\"sorting-apply-button-text\",function(){return [_vm._v(\"Apply\")]})],2)],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div id=\"product-search-sorting-container\" class=\"product-search-sorting\">\n <b-button\n variant=\"light\"\n v-bind=\"$attrs\"\n id=\"popover-sorting-reactive\"\n v-bind:class=\"{ 'w-100': wide }\"\n ref=\"button\"\n >\n <ad-icon-sort />\n <slot name=\"button-sorting-text\">Sorting</slot>\n </b-button>\n\n <!-- Our popover title and content render container -->\n <!-- We use placement 'auto' so popover fits in the best spot on viewport -->\n <!-- We specify the same container as the trigger button, so that popover is close to button -->\n <b-popover\n target=\"popover-sorting-reactive\"\n triggers=\"click\"\n :show.sync=\"isPopoverShow\"\n placement=\"bottom\"\n :fallback-placement=\"[]\"\n container=\"product-search-sorting-container\"\n ref=\"popover\"\n >\n <b-row>\n <b-col\n ><h3>\n <slot name=\"sorting-headline-text\">Sort By</slot>\n </h3></b-col\n >\n <b-col>\n <div class=\"text-right\">\n <b-button @click=\"close\" variant=\"link\" aria-label=\"Close\">\n <ad-icon-close />\n </b-button>\n </div>\n </b-col>\n </b-row>\n <b-row class=\"no-gutters mb-2\">\n <b-col cols=\"7\">\n <slot name=\"sorting-column-headline-text\"> Columns </slot>\n </b-col>\n <b-col cols=\"5\">\n <div class=\"ml-3\">\n <slot name=\"sorting-direction-headline-text\"> Ascending/Descending </slot>\n </div>\n </b-col>\n </b-row>\n <b-row no-gutters v-for=\"(sort, index) in sortings\" :key=\"index\">\n <b-col cols=\"7\">\n <b-row no-gutters>\n <b-col cols=\"1\" class=\"text-nowrap pt-3\"> {{ index + 1 }}. </b-col>\n <b-col cols=\"11\">\n <b-form-group :id=\"'input-group-' + index\" class=\"focus-white form-group-xl-spacing\">\n <ad-drop-down-list\n :options=\"items\"\n v-model=\"sort.key\"\n :form-element-state-id=\"'input-group-' + index\"\n :id=\"'input-' + index\"\n :is-selectable=\"isSelectable\"\n />\n </b-form-group>\n </b-col>\n </b-row>\n </b-col>\n <b-col cols=\"5\">\n <div class=\"ml-3 mt-2\">\n <b-button\n variant=\"light\"\n @click=\"sortingDirectionChanged(sort, sortingDirection.Ascending)\"\n :pressed=\"sort.direction == sortingDirection.Ascending\"\n class=\"miw-auto sorting right\"\n >\n <ad-icon-chevron :direction=\"direction.up\" :size=\"size.s\" />\n </b-button>\n <b-button\n variant=\"light\"\n @click=\"sortingDirectionChanged(sort, sortingDirection.Descending)\"\n :pressed=\"sort.direction == sortingDirection.Descending\"\n class=\"miw-auto sorting left\"\n >\n <ad-icon-chevron :size=\"size.s\" />\n </b-button>\n </div>\n </b-col>\n </b-row>\n\n <div class=\"mt-3\" v-if=\"isDistributionFeeVisible\">\n <slot name=\"sorting-add-columns-text\">Add columns (optional)</slot>\n <b-form-checkbox name=\"switch-button\" v-model=\"filter.isAddColumnDistributionFee\" switch>\n <slot name=\"sorting-distribution-fee-text\">Distribution Fee</slot>\n </b-form-checkbox>\n </div>\n\n <div class=\"text-center mt-5\">\n <b-button @click=\"resetFilter\" class=\"mb-2 mb-md-0\" variant=\"light\" size=\"s\"\n ><slot name=\"sorting-reset-button-text\">Reset</slot></b-button\n >\n <b-button @click=\"sortingChanged\" class=\"ml-2\" size=\"s\"\n ><slot name=\"sorting-apply-button-text\">Apply</slot></b-button\n >\n </div>\n </b-popover>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n InstrumentTableColumnSetting,\n ProductSearchPageSetting,\n ProductSearchTableSetting,\n} from '@/src/types/episerver-api';\nimport { Component, Inject, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { Direction, DropDownItemType, Size, SortingDirection } from '@/src/types/enumerations';\nimport { DropDownItem, ProductSearchParametersFilter } from '@/src/types/vue-api';\nimport { SortOrder } from '@/src/types/the-q-api';\nimport { convertOptions } from '@/src/utils/dropdown-option-provider';\nimport { flatMapMergeColumns } from '@src/utils/table-columns-helper';\n\ninterface SortItem extends Omit<SortOrder, 'key'> {\n key: string | null;\n}\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductSearchSorting extends Vue {\n @Inject() settingsProperty!: ProductSearchPageSetting;\n @Prop({ default: false, type: Boolean }) wide!: boolean;\n @Prop({ required: true })\n filter!: ProductSearchParametersFilter;\n\n // needed to use in enum in template\n direction = Direction;\n size = Size;\n sortingDirection = SortingDirection;\n\n items!: Array<DropDownItem>;\n isPopoverShow = false;\n sortings: Array<SortItem> = [];\n formItems = 4;\n restFilter: Array<SortItem> = [];\n\n get isDistributionFeeVisible(): boolean {\n const hiddenCols = this.settingsProperty.searchResultHiddenValuesSetting;\n\n let cols: InstrumentTableColumnSetting[];\n if (this.$screen.xl) {\n cols = flatMapMergeColumns(this.settingsProperty.desktopTableColumnsSetting);\n } else if (this.$screen.lg || this.$screen.md) {\n cols = flatMapMergeColumns(this.settingsProperty.tabletTableColumnsSetting);\n } else {\n cols = flatMapMergeColumns(this.settingsProperty.mobileTableColumnsSetting);\n }\n\n return [...cols, ...hiddenCols].some((c) => (c as ProductSearchTableSetting).isDistributionSwitchColumn);\n }\n\n created(): void {\n this.items = convertOptions(() => {\n return flatMapMergeColumns(this.settingsProperty.desktopTableColumnsSetting).map(\n (setting) =>\n ({\n value: setting.key,\n text: setting.headline,\n type: DropDownItemType.item,\n }) as DropDownItem\n );\n }, this.settingsProperty.sortingDropDownClearSelectionText);\n\n this.bindFilter();\n }\n\n sortingDirectionChanged(sort: SortOrder, direction: SortingDirection): void {\n sort.direction = direction;\n }\n\n resetFilter() {\n this.sortings = [];\n this.filter.resetSortOrders.forEach((s) => this.sortings.push(this.copySortOrderItem(s)));\n this.filter.isAddColumnDistributionFee = false;\n\n this.sortingChanged();\n }\n\n copySortOrderItem(s: SortItem | SortOrder): SortItem {\n return {\n key: s.key,\n direction: s.direction,\n };\n }\n\n sortingChanged(): void {\n const filter = this.sortings\n .filter((s) => s.key)\n .map((s) => {\n return {\n key: s.key,\n direction: s.direction,\n } as SortOrder;\n });\n\n this.filter.sortOrders = filter;\n\n this.$emit('sorting-value-changed');\n\n this.close();\n }\n\n setSortingArray(sortOrder: Array<SortOrder>, sortings: Array<SortItem>) {\n for (let i = 0; i < this.formItems; i++) {\n if (sortOrder && i < sortOrder.length) {\n sortings.push({\n key: this.filter.sortOrders[i].key,\n direction: this.filter.sortOrders[i].direction,\n });\n } else {\n sortings.push({\n key: null,\n direction: SortingDirection.Ascending,\n });\n }\n }\n }\n\n @Watch('filter.sortOrders')\n bindFilter(): void {\n this.sortings = [];\n this.setSortingArray(this.filter.sortOrders, this.sortings);\n }\n\n isSelectable(option: DropDownItem): boolean {\n return !(option.value && this.sortings.some((s) => s.key == option.value));\n }\n\n close(): void {\n this.isPopoverShow = false;\n }\n}\n</script>\n\n<style lang=\"scss\">\n.product-search-sorting {\n position: relative;\n\n .arrow {\n display: none;\n }\n .popover {\n top: auto !important;\n right: 0 !important;\n left: auto !important;\n transform: none !important;\n margin-top: rem(10);\n border-width: 0;\n box-shadow: $box-shadow-grey;\n padding: rem(30);\n padding-bottom: rem(60);\n width: 100%;\n max-width: 100%;\n\n @include media-breakpoint-up('sm') {\n width: rem(520);\n max-width: rem(520);\n }\n }\n\n .popover-body {\n padding: 0;\n }\n\n .sorting {\n border-width: 0;\n padding-top: rem(5);\n padding-right: 0;\n padding-bottom: rem(5);\n padding-left: 0;\n width: 50%;\n\n &.right {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &.left {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-sorting.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-sorting.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-search-sorting.vue?vue&type=template&id=7671e754\"\nimport script from \"./ad-product-search-sorting.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-search-sorting.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-product-search-sorting.vue?vue&type=style&index=0&id=7671e754&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-product-teaser-property',{attrs:{\"teaserSettingsProperty\":_vm.teaserSettings,\"isAddColumnDistributionFee\":_vm.filter.isAddColumnDistributionFee}},[_c('div',{staticClass:\"product-search-table\"},[_c('ad-instrument-table',_vm._b({attrs:{\"instruments\":_vm.products,\"sort-orders\":_vm.filter.sortOrders,\"is-show-column\":_vm.isShowColumn,\"sorting\":\"\",\"settings\":_vm.settingsProperty,\"rows\":25,\"loading\":_vm.loading},on:{\"sorting-value-changed\":_vm.sortingChanged,\"pushing-items\":_vm.pushingItems},scopedSlots:_vm._u([{key:\"row-details\",fn:function({ data }){return [_c('ad-product-data-property',{attrs:{\"product\":data.item.instrument}},[_c('div',{staticClass:\"wrap\"},[_vm._t(\"product-detail-page-teaser\",function(){return [_vm._v(_vm._s(data.item.instrument))]},{\"data\":data})],2)])]}},{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-product-data-value',{attrs:{\"is-link-to-detail-page\":setting.isLinkToDetailPage,\"product-item\":instrument,\"field-key\":setting.formatId}})]}},{key:\"row-watch-list\",fn:function({ instrument }){return [_c('ad-product-watchlist-toggle',{attrs:{\"product-item\":instrument}})]}}],null,true)},'ad-instrument-table',_vm.$attrs,false))],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-product-teaser-property\n :teaserSettingsProperty=\"teaserSettings\"\n :isAddColumnDistributionFee=\"filter.isAddColumnDistributionFee\"\n >\n <div class=\"product-search-table\">\n <ad-instrument-table\n v-bind=\"$attrs\"\n @sorting-value-changed=\"sortingChanged\"\n :instruments=\"products\"\n :sort-orders=\"filter.sortOrders\"\n :is-show-column=\"isShowColumn\"\n sorting\n :settings=\"settingsProperty\"\n :rows=\"25\"\n :loading=\"loading\"\n @pushing-items=\"pushingItems\"\n >\n <template #row-details=\"{ data }\">\n <ad-product-data-property :product=\"data.item.instrument\">\n <!-- wrap in div to prevent multiple root nodes returned from render function error -->\n <div class=\"wrap\">\n <slot name=\"product-detail-page-teaser\" :data=\"data\">{{ data.item.instrument }}</slot>\n </div>\n </ad-product-data-property>\n </template>\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-product-data-value\n :is-link-to-detail-page=\"setting.isLinkToDetailPage\"\n :product-item=\"instrument\"\n :field-key=\"setting.formatId\"\n />\n </template>\n <template #row-watch-list=\"{ instrument }\">\n <ad-product-watchlist-toggle :product-item=\"instrument\" />\n </template>\n </ad-instrument-table>\n </div>\n </ad-product-teaser-property>\n</template>\n\n<script lang=\"ts\">\nimport {\n ProductSearchPageSetting,\n InstrumentMergeColumnSetting,\n PageRoutes,\n ProductSearchTableSetting,\n} from '@t/episerver-api';\nimport { ProductModel, SortOrder } from '@t/the-q-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\n\nimport { ProductSearchParametersFilter, ProductTeaserSettings } from '@t/vue-api';\nimport { BRow } from 'bootstrap-vue';\nimport { flatMapMergeColumns, getProductTeaserSettings } from '@src/utils/table-columns-helper';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductSearchTable extends Vue {\n @Inject() settingsProperty!: ProductSearchPageSetting;\n @Inject() pageRoutes!: PageRoutes;\n @Prop({ required: true }) filter!: ProductSearchParametersFilter;\n @Prop({ required: true }) products!: Array<ProductModel>;\n @Prop({ required: true, type: Boolean }) loading!: boolean;\n\n private currentOpenItem;\n\n private pushingItems(min: number, max: number) {\n this.$emit('pushing-items', min, max);\n }\n\n sortingChanged(sortOrders: Array<SortOrder>) {\n this.filter.sortOrders = sortOrders;\n this.$emit('sorting-value-changed');\n }\n\n isShowColumn(column: InstrumentMergeColumnSetting) {\n return (\n !flatMapMergeColumns([column]).find((c) => (c as ProductSearchTableSetting).isDistributionSwitchColumn) ||\n this.filter.isAddColumnDistributionFee\n );\n }\n\n toggleDetails(e: Event, row: BRow) {\n row.toggleDetails(e);\n\n if (this.currentOpenItem && this.currentOpenItem !== row.item) {\n this.currentOpenItem._showDetails = false;\n }\n this.currentOpenItem = row.item;\n }\n\n get teaserSettings(): ProductTeaserSettings {\n return getProductTeaserSettings(this.settingsProperty);\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-table.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-table.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-search-table.vue?vue&type=template&id=6375d3eb\"\nimport script from \"./ad-product-search-table.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-search-table.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-form-group',{staticClass:\"bg-transparent border-0 p-0\"},[_c('ad-skeleton-radio-buttons',{attrs:{\"label\":_vm.label,\"loading\":_vm.loading}},[_c('ce-radio-buttons',{attrs:{\"label\":_vm.label,\"value\":_vm.value},on:{\"input\":_vm.setValue}},_vm._l((_vm.dropdownItems),function(element){return _c('span',{key:element.value,attrs:{\"value\":element.value,\"disabled\":element.value && !_vm.availableItemsContains(element.text)}},[_vm._t(\"{{element.text}}\",function(){return [_vm._v(_vm._s(element.text))]})],2)}),0)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form-group class=\"bg-transparent border-0 p-0\">\n <ad-skeleton-radio-buttons :label=\"label\" :loading=\"loading\">\n <ce-radio-buttons :label=\"label\" :value=\"value\" @input=\"setValue\">\n <span\n v-for=\"element in dropdownItems\"\n :key=\"element.value\"\n :value=\"element.value\"\n :disabled=\"element.value && !availableItemsContains(element.text)\"\n >\n <slot name=\"{{element.text}}\">{{ element.text }}</slot>\n </span>\n </ce-radio-buttons>\n </ad-skeleton-radio-buttons>\n </b-form-group>\n</template>\n\n<script lang=\"ts\">\nimport { ProductSearchPageSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue, Watch, Prop } from 'vue-property-decorator';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport AdProductSearchFilterDropdown from './ad-product-search-filter-dropdown.vue';\nimport { convertToDropdownItems } from '@/src/utils/dropdown-option-provider';\n\n@Component({\n inheritAttrs: false,\n components: {\n AdProductSearchFilterDropdown,\n },\n})\nexport default class AdProductSearchFilterCategory extends Vue {\n @Inject() settingsProperty!: ProductSearchPageSetting;\n @Prop({ default: false, type: Boolean }) wide!: boolean;\n @Prop({ required: true })\n translations!: string[];\n @Prop() value!: string;\n @Prop({ required: true })\n availableItems!: string[];\n @Prop({ required: true, type: Boolean }) loading!: boolean;\n\n selectedRadioButtonValue: string | null = null;\n\n get dropdownItems(): DropDownItem[] {\n return convertToDropdownItems(this.allItemsLabelText, this.translations);\n }\n\n get label(): string | undefined {\n return this.$slots['category-label-text'] === undefined ? undefined : this.$slots['category-label-text'][0].text;\n }\n\n get allItemsLabelText(): string {\n const defaultEmpty = '';\n const key = 'all-items-label-text';\n const slot = this.$slots[key];\n return slot && slot.length ? slot[0].text ?? defaultEmpty : defaultEmpty;\n }\n\n isSelectable(option: DropDownItem): boolean {\n if (!option.value) {\n return true;\n }\n\n const strToCompare = option.value?.toString().toUpperCase();\n\n return this.availableItems?.some((x) => x.toUpperCase() === strToCompare) === true;\n }\n\n setValue(newValue: string | null): void {\n this.$emit('input', newValue);\n this.$emit('selected-value-changed');\n }\n\n @Watch('availableItems')\n changeFilter(): void {\n const isPresent = this.value && this.availableItemsContains(this.value);\n\n if (this.value && !isPresent) {\n this.$emit('input', null);\n }\n }\n\n availableItemsContains(value: string): boolean {\n const strToCompare = value.toUpperCase();\n return this.availableItems?.some((x) => x.toUpperCase() === strToCompare) === true;\n }\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-filter-category.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-filter-category.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-search-filter-category.vue?vue&type=template&id=15bc81c6\"\nimport script from \"./ad-product-search-filter-category.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-search-filter-category.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product-search-sorting-container\",attrs:{\"id\":\"product-search-filter-container\"}},[_c('p',{staticClass:\"mb-3 filter-headline\"},[_vm._t(\"filter-headline\",function(){return [_vm._v(\"Placeholder product type\")]})],2),_c('b-card',{staticClass:\"mb-3\",attrs:{\"body-class\":\"pl-0\"}},[_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":\"product-type-filter-group\",\"label-for\":\"product-type-filter-dropdownlist\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-label-text\",function(){return [_vm._v(\"Dropdown label\")]})]},proxy:true}],null,true)},[_c('ad-product-type-list',{attrs:{\"form-element-state-id\":\"product-type-filter-group\",\"id\":\"product-type-filter-dropdownlist\"},on:{\"selected-value-changed\":_vm.onProductTypeChange},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-allitems-text\",function(){return [_vm._v(\"Filter all label\")]})]},proxy:true}],null,true),model:{value:(_vm.value.productType),callback:function ($$v) {_vm.$set(_vm.value, \"productType\", $$v)},expression:\"value.productType\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.settingsProperty.hasSubTypeFilter)?_c('ad-product-search-filter-subtype',{attrs:{\"loading\":_vm.loading},on:{\"selected-value-changed\":_vm.onProductSubTypeChange},scopedSlots:_vm._u([{key:\"filter-label-text\",fn:function(){return [_vm._t(\"filter-subtype-label-text\",function(){return [_vm._v(\"...\")]})]},proxy:true},{key:\"subtype-label-put\",fn:function(){return [_vm._t(\"filter-subtype-label-put\",function(){return [_vm._v(\"Put label\")]})]},proxy:true},{key:\"subtype-label-call\",fn:function(){return [_vm._t(\"filter-subtype-label-call\",function(){return [_vm._v(\"Call label\")]})]},proxy:true},{key:\"subtype-label-both\",fn:function(){return [_vm._t(\"filter-subtype-label-both\",function(){return [_vm._v(\"Both label\")]})]},proxy:true}],null,true),model:{value:(_vm.value.subType),callback:function ($$v) {_vm.$set(_vm.value, \"subType\", $$v)},expression:\"value.subType\"}}):_vm._e()],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',[(_vm.settingsProperty.hasCategoryFilter)?_c('ad-product-search-filter-category',{attrs:{\"filter\":_vm.value,\"availableItems\":_vm.categoryNames,\"translations\":_vm.categories,\"loading\":_vm.loading},on:{\"selected-value-changed\":_vm.onFilterValueChanged},scopedSlots:_vm._u([{key:\"category-label-text\",fn:function(){return [_vm._t(\"filter-category-dropdown-label-text\",function(){return [_vm._v(\"Select category\")]})]},proxy:true},{key:\"all-items-label-text\",fn:function(){return [_vm._t(\"filter-category-dropdown-allitems-text\",function(){return [_vm._v(\"All categories\")]})]},proxy:true}],null,true),model:{value:(_vm.value.categoryName),callback:function ($$v) {_vm.$set(_vm.value, \"categoryName\", $$v)},expression:\"value.categoryName\"}}):_vm._e()],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.settingsProperty.hasCountryFilter)?_c('ad-product-search-filter-dropdown',{attrs:{\"availableItems\":_vm.countryNames,\"translations\":_vm.countries,\"loading\":_vm.loading},on:{\"selected-value-changed\":_vm.onFilterValueChanged},scopedSlots:_vm._u([{key:\"dropdown-label-text\",fn:function(){return [_vm._t(\"filter-country-dropdown-label-text\",function(){return [_vm._v(\"Select country\")]})]},proxy:true},{key:\"all-items-label-text\",fn:function(){return [_vm._t(\"filter-country-dropdown-allitems-text\",function(){return [_vm._v(\"All countries\")]})]},proxy:true}],null,true),model:{value:(_vm.value.countryName),callback:function ($$v) {_vm.$set(_vm.value, \"countryName\", $$v)},expression:\"value.countryName\"}}):_vm._e()],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[(_vm.settingsProperty.hasSectorFilter)?_c('ad-product-search-filter-dropdown',{attrs:{\"availableItems\":_vm.sectorNames,\"translations\":_vm.sectors,\"loading\":_vm.loading,\"hide-disabled-items\":\"\"},on:{\"selected-value-changed\":_vm.onFilterValueChanged},scopedSlots:_vm._u([{key:\"dropdown-label-text\",fn:function(){return [_vm._t(\"filter-sector-dropdown-label-text\",function(){return [_vm._v(\"Select sector\")]})]},proxy:true},{key:\"all-items-label-text\",fn:function(){return [_vm._t(\"filter-sector-dropdown-allitems-text\",function(){return [_vm._v(\"All sectors\")]})]},proxy:true}],null,true),model:{value:(_vm.value.sectorName),callback:function ($$v) {_vm.$set(_vm.value, \"sectorName\", $$v)},expression:\"value.sectorName\"}}):_vm._e()],1)],1)],1),_c('div',{staticClass:\"arrow\"}),_c('b-row',[_c('b-form-group',{staticClass:\"bg-transparent mt-4 border-0\"},[_c('b-form-radio',{class:{ 'mb-3': !_vm.$screen.md },attrs:{\"inline\":_vm.$screen.md,\"value\":false,\"name\":\"underlying-filter-multi-radios\"},on:{\"change\":_vm.onIsMultiUnderlyingChange},model:{value:(_vm.isMultiUnderlying),callback:function ($$v) {_vm.isMultiUnderlying=$$v},expression:\"isMultiUnderlying\"}},[_vm._t(\"filter-underlying-radio-single-label-text\",function(){return [_vm._v(\"Single underlying placholder\")]})],2),_c('b-form-radio',{class:{ 'mb-2': !_vm.$screen.md },attrs:{\"inline\":_vm.$screen.md,\"value\":true,\"name\":\"underlying-filter-multi-radios\"},on:{\"change\":_vm.onIsMultiUnderlyingChange},model:{value:(_vm.isMultiUnderlying),callback:function ($$v) {_vm.isMultiUnderlying=$$v},expression:\"isMultiUnderlying\"}},[_vm._t(\"filter-underlying-radio-multi-text\",function(){return [_vm._v(\"Multi underlying placholder\")]})],2)],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":\"underlying-filter-group\",\"label-for\":\"underlying-filter-dropdownlist\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-label-text\",function(){return [_vm._v(\"Dropdown label\")]})]},proxy:true}],null,true)},[_c('ad-underlying-list',{class:{ 'd-none': _vm.isMultiUnderlying },attrs:{\"form-element-state-id\":\"underlying-filter-group\",\"id\":\"underlying-filter-dropdownlist\",\"available-items\":_vm.underlyingNames,\"group-items\":\"\",\"loading\":_vm.loading},on:{\"selected-value-changed\":_vm.onUnderlyingChange},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-allitems-text\",function(){return [_vm._v(\"Filter all label\")]})]},proxy:true},{key:\"multiple-placeholder\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-multiple-placeholder\",function(){return [_vm._v(\"Select items label\")]})]},proxy:true}],null,true),model:{value:(_vm.value.underlyingIsinOrIsins),callback:function ($$v) {_vm.$set(_vm.value, \"underlyingIsinOrIsins\", $$v)},expression:\"value.underlyingIsinOrIsins\"}}),_c('ad-underlying-list',{class:{ 'd-none': !_vm.isMultiUnderlying },attrs:{\"form-element-state-id\":\"underlying-filter-group\",\"id\":\"underlying-filter-dropdownlist\",\"multiple\":\"\",\"required\":_vm.isMultiUnderlying,\"max-selecteable-items\":_vm.settingsProperty.multiUnderlyingMaxItems,\"available-items\":_vm.underlyingNames,\"group-items\":\"\",\"loading\":_vm.loading},on:{\"selected-value-changed\":_vm.onUnderlyingChange},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-allitems-text\",function(){return [_vm._v(\"Filter all label\")]})]},proxy:true},{key:\"multiple-placeholder\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-multiple-placeholder\",function(){return [_vm._v(\"Select items label\")]})]},proxy:true}],null,true),model:{value:(_vm.value.underlyingIsinOrIsins),callback:function ($$v) {_vm.$set(_vm.value, \"underlyingIsinOrIsins\", $$v)},expression:\"value.underlyingIsinOrIsins\"}})],1),_c('ad-icon-warnings',{staticClass:\"error-icon\"})],1)],1),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_vm._t(\"additional-date-range-filter-elements\",null,{\"availableValues\":_vm.availableValues,\"isLoading\":_vm.loading})],2),_c('b-row',{attrs:{\"no-gutters\":\"\"}},[_vm._t(\"additional-numeric-range-filter-elements\",null,{\"availableValues\":_vm.availableValues,\"isLoading\":_vm.loading})],2),_c('div',{staticClass:\"text-right mt-3\"},[_c('b-button',{staticClass:\"w-100 w-md-auto\",attrs:{\"disabled\":_vm.loading,\"variant\":\"light\",\"size\":\"s\"},on:{\"click\":function($event){return _vm.resetFilter()}}},[_vm._t(\"filter-clear-button-text\",function(){return [_vm._v(\"Clear filter placeholder\")]})],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div id=\"product-search-filter-container\" class=\"product-search-sorting-container\">\n <p class=\"mb-3 filter-headline\"><slot name=\"filter-headline\">Placeholder product type</slot></p>\n <b-card class=\"mb-3\" body-class=\"pl-0\">\n <b-row no-gutters>\n <b-col cols=\"12\" md=\"6\">\n <b-form-group id=\"product-type-filter-group\" class=\"focus-white\" label-for=\"product-type-filter-dropdownlist\">\n <template #label>\n <slot name=\"filter-product-type-dropdown-label-text\">Dropdown label</slot>\n </template>\n <ad-product-type-list\n form-element-state-id=\"product-type-filter-group\"\n id=\"product-type-filter-dropdownlist\"\n v-model=\"value.productType\"\n @selected-value-changed=\"onProductTypeChange\"\n >\n <template #all-items-label>\n <slot name=\"filter-product-type-dropdown-allitems-text\">Filter all label</slot>\n </template>\n </ad-product-type-list>\n </b-form-group>\n </b-col>\n\n <b-col cols=\"12\" md=\"6\">\n <ad-product-search-filter-subtype\n :loading=\"loading\"\n v-model=\"value.subType\"\n v-if=\"settingsProperty.hasSubTypeFilter\"\n @selected-value-changed=\"onProductSubTypeChange\"\n >\n <template #filter-label-text>\n <slot name=\"filter-subtype-label-text\">...</slot>\n </template>\n\n <template #subtype-label-put>\n <slot name=\"filter-subtype-label-put\">Put label</slot>\n </template>\n\n <template #subtype-label-call>\n <slot name=\"filter-subtype-label-call\">Call label</slot>\n </template>\n\n <template #subtype-label-both>\n <slot name=\"filter-subtype-label-both\">Both label</slot>\n </template>\n </ad-product-search-filter-subtype>\n </b-col>\n </b-row>\n\n <b-row no-gutters>\n <b-col>\n <ad-product-search-filter-category\n :filter=\"value\"\n v-if=\"settingsProperty.hasCategoryFilter\"\n :availableItems=\"categoryNames\"\n :translations=\"categories\"\n v-model=\"value.categoryName\"\n @selected-value-changed=\"onFilterValueChanged\"\n :loading=\"loading\"\n >\n <template #category-label-text>\n <slot name=\"filter-category-dropdown-label-text\">Select category</slot>\n </template>\n\n <template #all-items-label-text>\n <slot name=\"filter-category-dropdown-allitems-text\">All categories</slot>\n </template>\n </ad-product-search-filter-category>\n </b-col>\n </b-row>\n\n <b-row no-gutters>\n <b-col cols=\"12\" md=\"6\">\n <ad-product-search-filter-dropdown\n v-if=\"settingsProperty.hasCountryFilter\"\n :availableItems=\"countryNames\"\n :translations=\"countries\"\n v-model=\"value.countryName\"\n @selected-value-changed=\"onFilterValueChanged\"\n :loading=\"loading\"\n >\n <template #dropdown-label-text>\n <slot name=\"filter-country-dropdown-label-text\">Select country</slot>\n </template>\n\n <template #all-items-label-text>\n <slot name=\"filter-country-dropdown-allitems-text\">All countries</slot>\n </template>\n </ad-product-search-filter-dropdown>\n </b-col>\n <b-col cols=\"12\" md=\"6\">\n <ad-product-search-filter-dropdown\n v-if=\"settingsProperty.hasSectorFilter\"\n :availableItems=\"sectorNames\"\n :translations=\"sectors\"\n v-model=\"value.sectorName\"\n @selected-value-changed=\"onFilterValueChanged\"\n :loading=\"loading\"\n hide-disabled-items\n >\n <template #dropdown-label-text>\n <slot name=\"filter-sector-dropdown-label-text\">Select sector</slot>\n </template>\n\n <template #all-items-label-text>\n <slot name=\"filter-sector-dropdown-allitems-text\">All sectors</slot>\n </template>\n </ad-product-search-filter-dropdown>\n </b-col>\n </b-row>\n </b-card>\n <div class=\"arrow\"></div>\n <b-row>\n <b-form-group class=\"bg-transparent mt-4 border-0\">\n <b-form-radio\n :inline=\"$screen.md\"\n :class=\"{ 'mb-3': !$screen.md }\"\n :value=\"false\"\n v-model=\"isMultiUnderlying\"\n @change=\"onIsMultiUnderlyingChange\"\n name=\"underlying-filter-multi-radios\"\n ><slot name=\"filter-underlying-radio-single-label-text\">Single underlying placholder</slot></b-form-radio\n >\n <b-form-radio\n :inline=\"$screen.md\"\n :class=\"{ 'mb-2': !$screen.md }\"\n :value=\"true\"\n v-model=\"isMultiUnderlying\"\n @change=\"onIsMultiUnderlyingChange\"\n name=\"underlying-filter-multi-radios\"\n ><slot name=\"filter-underlying-radio-multi-text\">Multi underlying placholder</slot></b-form-radio\n >\n </b-form-group>\n </b-row>\n <b-row no-gutters>\n <b-col cols=\"12\" md=\"6\">\n <b-form-group id=\"underlying-filter-group\" class=\"focus-white\" label-for=\"underlying-filter-dropdownlist\">\n <template #label>\n <slot name=\"filter-underlying-dropdown-label-text\">Dropdown label</slot>\n </template>\n <ad-underlying-list\n form-element-state-id=\"underlying-filter-group\"\n id=\"underlying-filter-dropdownlist\"\n v-model=\"value.underlyingIsinOrIsins\"\n @selected-value-changed=\"onUnderlyingChange\"\n :class=\"{ 'd-none': isMultiUnderlying }\"\n :available-items=\"underlyingNames\"\n group-items\n :loading=\"loading\"\n >\n <template #all-items-label>\n <slot name=\"filter-underlying-dropdown-allitems-text\">Filter all label</slot>\n </template>\n <template #multiple-placeholder>\n <slot name=\"filter-underlying-dropdown-multiple-placeholder\">Select items label</slot>\n </template>\n </ad-underlying-list>\n <ad-underlying-list\n form-element-state-id=\"underlying-filter-group\"\n id=\"underlying-filter-dropdownlist\"\n v-model=\"value.underlyingIsinOrIsins\"\n @selected-value-changed=\"onUnderlyingChange\"\n :class=\"{ 'd-none': !isMultiUnderlying }\"\n multiple\n :required=\"isMultiUnderlying\"\n :max-selecteable-items=\"settingsProperty.multiUnderlyingMaxItems\"\n :available-items=\"underlyingNames\"\n group-items\n :loading=\"loading\"\n >\n <template #all-items-label>\n <slot name=\"filter-underlying-dropdown-allitems-text\">Filter all label</slot>\n </template>\n <template #multiple-placeholder>\n <slot name=\"filter-underlying-dropdown-multiple-placeholder\">Select items label</slot>\n </template>\n </ad-underlying-list>\n </b-form-group>\n <ad-icon-warnings class=\"error-icon\" />\n </b-col>\n </b-row>\n\n <b-row no-gutters>\n <slot name=\"additional-date-range-filter-elements\" :availableValues=\"availableValues\" :isLoading=\"loading\"></slot>\n </b-row>\n <b-row no-gutters>\n <slot\n name=\"additional-numeric-range-filter-elements\"\n :availableValues=\"availableValues\"\n :isLoading=\"loading\"\n ></slot>\n </b-row>\n\n <div class=\"text-right mt-3\">\n <b-button @click=\"resetFilter()\" :disabled=\"loading\" class=\"w-100 w-md-auto\" variant=\"light\" size=\"s\"\n ><slot name=\"filter-clear-button-text\">Clear filter placeholder</slot></b-button\n >\n </div>\n </div>\n</template>\n<script lang=\"ts\">\nimport { ProductSearchPageSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { ProductSearchParametersFilter } from '@/src/types/vue-api';\nimport AdProductSearchFilterDropdown from './ad-product-search-filter-dropdown.vue';\nimport AdProductSearchFilterCategory from './ad-product-search-filter-category.vue';\nimport { GeneralAvailableValuesModel, ProductSearchDetailedResultModel } from '@/src/types/the-q-api';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n inheritAttrs: false,\n components: {\n AdProductSearchFilterDropdown,\n AdProductSearchFilterCategory,\n },\n})\nexport default class AdProductSearchFilterContainer extends Vue {\n @Inject() settingsProperty!: ProductSearchPageSetting;\n @Prop({ default: false, type: Boolean }) wide!: boolean;\n @Prop({ required: true })\n value!: ProductSearchParametersFilter;\n @Prop({ required: true })\n productSearchDetailResult!: ProductSearchDetailedResultModel | null;\n @Prop({ required: true, type: Boolean }) loading!: boolean;\n\n @Action('loadTranslationsAsync', { namespace: 'translations' })\n loadTranslationsAsync!: () => Promise<void>;\n\n @Getter('countries', { namespace: 'translations' })\n countries!: Array<string>;\n @Getter('categories', { namespace: 'translations' })\n categories!: Array<string>;\n @Getter('sectors', { namespace: 'translations' })\n sectors!: Array<string>;\n\n isMultiUnderlying = false;\n\n async created(): Promise<void> {\n this.isMultiUnderlying = Array.isArray(this.value.underlyingIsinOrIsins);\n try {\n await this.loadTranslationsAsync();\n } catch (e) {\n this.$log.fatal('translations can not be loaded', e);\n }\n }\n\n get isFilterValid() {\n return !(\n this.isMultiUnderlying &&\n (this.value.underlyingIsinOrIsins === null || this.value.underlyingIsinOrIsins.length === 0)\n );\n }\n\n get availableValues(): GeneralAvailableValuesModel {\n return this.productSearchDetailResult?.availableValues ?? ({} as GeneralAvailableValuesModel);\n }\n\n get sectorNames(): string[] | undefined {\n return this.availableValues.sectorNames;\n }\n\n get countryNames(): string[] | undefined {\n return this.availableValues.countryNames;\n }\n\n get categoryNames(): string[] | undefined {\n return this.availableValues.categoryNames;\n }\n\n get underlyingNames(): { [key: string]: string } | undefined {\n return this.availableValues.underlyingNames;\n }\n\n onFilterValueChanged(): void {\n if (this.isFilterValid) this.$emit('selected-value-changed');\n }\n\n onProductSubTypeChange(): void {\n this.$emit('selected-product-sub-type-changed');\n }\n\n onProductTypeChange(): void {\n this.$emit('selected-product-type-changed');\n }\n\n onUnderlyingChange(): void {\n if (this.isFilterValid) this.$emit('selected-underlying-changed');\n }\n\n onIsMultiUnderlyingChange(isMultiUnderlying: boolean) {\n if (!(this.value.underlyingIsinOrIsins === null || this.value.underlyingIsinOrIsins.length === 0)) {\n const emitEvent = this.value.underlyingIsinOrIsins.length > 0;\n this.value.underlyingIsinOrIsins = isMultiUnderlying\n ? [this.value.underlyingIsinOrIsins as string]\n : this.value.underlyingIsinOrIsins[0];\n\n if (emitEvent) this.$emit('selected-underlying-changed');\n } else {\n this.value.underlyingIsinOrIsins = isMultiUnderlying ? [] : null; // set to null to select all item or set to multi selection\n }\n }\n\n resetFilter() {\n const filter = new ProductSearchParametersFilter();\n filter.underlyingIsinOrIsins =\n this.isMultiUnderlying && this.value.defaultUnderlying\n ? [this.value.defaultUnderlying]\n : this.value.defaultUnderlying;\n filter.sortOrders = this.value.resetSortOrders;\n filter.resetSortOrders = this.value.resetSortOrders;\n filter.isAddColumnDistributionFee = this.value.isAddColumnDistributionFee;\n filter.productType = this.settingsProperty.productType;\n filter.pageNumber = this.value.pageNumber;\n filter.pageSize = this.value.pageSize;\n filter.defaultUnderlying = this.value.defaultUnderlying;\n\n this.$emit('input', filter);\n this.$emit('reset-filter');\n }\n}\n</script>\n\n<style lang=\"scss\">\n.product-search-sorting-container {\n $arrow-width: rem(15);\n $arrow-height: rem(20);\n\n .arrow {\n position: relative;\n left: calc(50% - #{$arrow-width});\n\n // prevents rendering issue making the page larger than viewport\n width: 0;\n\n &::after,\n &::before {\n display: block;\n position: absolute;\n border-style: solid;\n border-color: transparent;\n content: '';\n }\n\n &::before {\n bottom: 0;\n border-width: $arrow-height $arrow-width 0;\n border-top-color: #eaebeb;\n }\n\n &::after {\n bottom: 2px;\n border-width: $arrow-height $arrow-width 0;\n border-top-color: #fff;\n }\n }\n\n @include media-breakpoint-down('sm') {\n margin-right: -$grid-gutter-spacer;\n margin-left: -$grid-gutter-spacer;\n border-radius: 0;\n\n .card {\n margin-right: -$alert-padding-x;\n margin-left: -$alert-padding-x;\n border-radius: 0;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-filter-container.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-filter-container.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-search-filter-container.vue?vue&type=template&id=17c14f54\"\nimport script from \"./ad-product-search-filter-container.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-search-filter-container.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ad-product-search-filter-container.vue?vue&type=style&index=0&id=17c14f54&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product-search-filter-dropdownlist-container\"},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":'dropdown-list-filter-group' + _vm._uid,\"label-for\":'dropdown-list-filter' + _vm._uid},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"dropdown-label-text\",function(){return [_vm._v(\"Dropdown label\")]})]},proxy:true}],null,true)},[_c('ad-skeleton-input',{attrs:{\"loading\":_vm.loading}},[_c('ad-drop-down-list',_vm._b({attrs:{\"options\":_vm.dropdownItems,\"placeholder\":_vm.allItemsLabelText,\"is-selectable\":_vm.isSelectable,\"value\":_vm.value,\"form-element-state-id\":'dropdown-list-filter-group' + _vm._uid,\"id\":\"dropdown-list-filter\"},on:{\"input\":_vm.setValue}},'ad-drop-down-list',_vm.$attrs,false))],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"product-search-filter-dropdownlist-container\">\n <b-form-group\n :id=\"'dropdown-list-filter-group' + _uid\"\n class=\"focus-white\"\n :label-for=\"'dropdown-list-filter' + _uid\"\n >\n <template #label><slot name=\"dropdown-label-text\">Dropdown label</slot></template>\n <ad-skeleton-input :loading=\"loading\">\n <ad-drop-down-list\n v-bind=\"$attrs\"\n :options=\"dropdownItems\"\n :placeholder=\"allItemsLabelText\"\n :is-selectable=\"isSelectable\"\n :value=\"value\"\n @input=\"setValue\"\n :form-element-state-id=\"'dropdown-list-filter-group' + _uid\"\n id=\"dropdown-list-filter\"\n />\n </ad-skeleton-input>\n </b-form-group>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\nimport { DropDownItem } from '@/src/types/vue-api';\nimport { convertToDropdownItems } from '@/src/utils/dropdown-option-provider';\n\n@Component({\n inheritAttrs: false,\n})\nexport default class AdProductSearchFilterDropdown extends Vue {\n @Prop({ default: false, type: Boolean }) wide!: boolean;\n @Prop({ required: true })\n translations!: string[];\n @Prop({ required: true, default: null })\n value!: string | null;\n @Prop({ required: true })\n availableItems!: string[];\n @Prop({ required: true, type: Boolean }) loading!: boolean;\n @Prop({ default: false, type: Boolean }) hideDisabledItems!: boolean;\n\n dropDownItems: DropDownItem[] = [];\n\n get dropdownItems(): DropDownItem[] {\n const allDropDownItems = convertToDropdownItems(this.allItemsLabelText, this.translations);\n return this.hideDisabledItems === true\n ? allDropDownItems.filter(\n (item) =>\n // Remove all items that are not available in the 'availableItems' array and is not allItemsLabel\n item.text === this.allItemsLabelText || (item.value && this.availableItemsContains(item.value as string))\n )\n : allDropDownItems;\n }\n\n get allItemsLabelText(): string | null {\n const slot = this.$slots['all-items-label-text'];\n return slot && slot.length ? slot[0].text ?? null : null;\n }\n\n @Watch('availableItems', { deep: true })\n changeFilter(): void {\n const isPresent = this.value && this.availableItemsContains(this.value);\n\n if (this.value && !isPresent) {\n this.$emit('input', null);\n }\n }\n\n setValue(newValue: string | null): void {\n this.$emit('input', newValue);\n this.$emit('selected-value-changed');\n }\n\n isSelectable(option: DropDownItem): boolean {\n if (!option.value?.toString()) {\n return true;\n }\n\n const strToCompare = option.value?.toString();\n return this.availableItemsContains(strToCompare);\n }\n\n availableItemsContains(value: string): boolean {\n const strToCompare = value.toUpperCase();\n return this.availableItems?.some((x) => x.toUpperCase() === strToCompare) === true;\n }\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-filter-dropdown.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-search-filter-dropdown.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-search-filter-dropdown.vue?vue&type=template&id=292f6f10\"\nimport script from \"./ad-product-search-filter-dropdown.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-search-filter-dropdown.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('b-form',{attrs:{\"id\":\"product-search-page\",\"novalidate\":\"\"}},[_c('b-container',{staticClass:\"content-container content-container-t\"},[_c('b-row',[_c('b-col',[_c('h1',[_vm._t(\"headline\")],2),_vm._t(\"risk-disclaimer\")],2)],1),_c('b-row',[_c('b-col',{attrs:{\"lg\":\"7\"}},[_c('ad-product-search-filter-container',{staticClass:\"alert form-card-helper mb-6 alert-light\",attrs:{\"productSearchDetailResult\":_vm.productSearchDetailResult,\"loading\":_vm.isLoading},on:{\"selected-value-changed\":_vm.onFilterValueChangedWithResetSecondaryFilters,\"selected-product-type-changed\":_vm.onProductTypeChange,\"selected-product-sub-type-changed\":_vm.onProductSubTypeChange,\"selected-underlying-changed\":_vm.onUnderlyingChangedAsync,\"reset-filter\":_vm.onUnderlyingChangedAsync},scopedSlots:_vm._u([{key:\"filter-headline\",fn:function(){return [_vm._t(\"filter-headline\",function(){return [_vm._v(\"Placeholder filter headline\")]})]},proxy:true},{key:\"filter-product-type-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-label-text\",function(){return [_vm._v(\"Placeholder product type label\")]})]},proxy:true},{key:\"filter-product-type-dropdown-allitems-text\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-allitems-text\",function(){return [_vm._v(\"Placeholder product type all label\")]})]},proxy:true},{key:\"filter-subtype-label-text\",fn:function(){return [_vm._t(\"filter-subtype-label-text\",function(){return [_vm._v(\"Select sub type\")]})]},proxy:true},{key:\"filter-subtype-label-put\",fn:function(){return [_vm._t(\"filter-subtype-label-put\",function(){return [_vm._v(\"Put label\")]})]},proxy:true},{key:\"filter-subtype-label-call\",fn:function(){return [_vm._t(\"filter-subtype-label-call\",function(){return [_vm._v(\"Call label\")]})]},proxy:true},{key:\"filter-subtype-label-both\",fn:function(){return [_vm._t(\"filter-subtype-label-both\")]},proxy:true},{key:\"filter-category-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-category-dropdown-label-text\",function(){return [_vm._v(\"Select category\")]})]},proxy:true},{key:\"filter-category-dropdown-allitems-text\",fn:function(){return [_vm._t(\"filter-category-dropdown-allitems-text\",function(){return [_vm._v(\"All categories\")]})]},proxy:true},{key:\"filter-country-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-country-dropdown-label-text\")]},proxy:true},{key:\"filter-country-dropdown-allitems-text\",fn:function(){return [_vm._t(\"filter-country-dropdown-allitems-text\")]},proxy:true},{key:\"filter-sector-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-sector-dropdown-label-text\")]},proxy:true},{key:\"filter-sector-dropdown-allitems-text\",fn:function(){return [_vm._t(\"filter-sector-dropdown-allitems-text\")]},proxy:true},{key:\"sorting-apply-button-text\",fn:function(){return [_vm._t(\"sorting-apply-button-text\",function(){return [_vm._v(\"Apply\")]})]},proxy:true},{key:\"filter-underlying-radio-single-label-text\",fn:function(){return [_vm._t(\"filter-underlying-radio-single-label-text\",function(){return [_vm._v(\"Single underlying placholder\")]})]},proxy:true},{key:\"filter-underlying-radio-multi-text\",fn:function(){return [_vm._t(\"filter-underlying-radio-multi-text\",function(){return [_vm._v(\"Multi underlying placholder\")]})]},proxy:true},{key:\"filter-underlying-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-label-text\",function(){return [_vm._v(\"Dropdown label\")]})]},proxy:true},{key:\"filter-underlying-dropdown-allitems-text\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-allitems-text\",function(){return [_vm._v(\"Filter all label\")]})]},proxy:true},{key:\"filter-underlying-dropdown-multiple-placeholder\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-multiple-placeholder\",function(){return [_vm._v(\"Select items label\")]})]},proxy:true},{key:\"filter-clear-button-text\",fn:function(){return [_vm._t(\"filter-clear-button-text\",function(){return [_vm._v(\"Clear filter placeholder\")]})]},proxy:true},{key:\"additional-date-range-filter-elements\",fn:function({ availableValues, isLoading }){return [_vm._t(\"additional-date-range-filter-elements\",null,{\"availableValues\":availableValues,\"currentSearchFilter\":_vm.filter,\"isLoading\":isLoading,\"onFilterValueChanged\":_vm.onFilterValueChanged})]}},{key:\"additional-numeric-range-filter-elements\",fn:function({ availableValues, isLoading }){return [_vm._t(\"additional-numeric-range-filter-elements\",null,{\"availableValues\":availableValues,\"currentSearchFilter\":_vm.filter,\"onFilterValueChanged\":_vm.onFilterValueChanged,\"isLoading\":isLoading})]}}],null,true),model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('b-col',{attrs:{\"lg\":\"5\"}},[_vm._t(\"underlying-teaser\")],2)],1)],1),(_vm.settingsProperty.isInEditMode || _vm.$screen.sm)?_c('div',{staticClass:\"float-right content-container-y\"},[(_vm.settingsProperty.isInEditMode || _vm.$screen.xl)?_c('b-button',{attrs:{\"variant\":\"light\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.excelExport}},[_c('ad-icon-xls'),_vm._t(\"button-excel-export-text\",function(){return [_vm._v(\"Excel Export\")]})],2):_vm._e(),_c('ad-product-search-sorting',{staticClass:\"ml-3 d-inline-block\",attrs:{\"disabled\":_vm.isLoading,\"wide\":\"\",\"filter\":_vm.filter},on:{\"sorting-value-changed\":_vm.onFilterValueChanged},scopedSlots:_vm._u([{key:\"button-sorting-text\",fn:function(){return [_vm._t(\"button-sorting-text\",function(){return [_vm._v(\"Sorting\")]})]},proxy:true},{key:\"sorting-headline-text\",fn:function(){return [_vm._t(\"sorting-headline-text\",function(){return [_vm._v(\"Sort By\")]})]},proxy:true},{key:\"sorting-column-headline-text\",fn:function(){return [_vm._t(\"sorting-column-headline-text\",function(){return [_vm._v(\"Columns\")]})]},proxy:true},{key:\"sorting-direction-headline-text\",fn:function(){return [_vm._t(\"sorting-direction-headline-text\",function(){return [_vm._v(\"Ascending/Descending\")]})]},proxy:true},{key:\"sorting-add-columns-text\",fn:function(){return [_vm._t(\"sorting-add-columns-text\",function(){return [_vm._v(\"Add columns (optional)\")]})]},proxy:true},{key:\"sorting-distribution-fee-text\",fn:function(){return [_vm._t(\"sorting-distribution-fee-text\",function(){return [_vm._v(\"Distribution Fee\")]})]},proxy:true},{key:\"sorting-reset-button-text\",fn:function(){return [_vm._t(\"sorting-reset-button-text\",function(){return [_vm._v(\"Reset\")]})]},proxy:true},{key:\"sorting-apply-button-text\",fn:function(){return [_vm._t(\"sorting-apply-button-text\",function(){return [_vm._v(\"Apply\")]})]},proxy:true}],null,true)})],1):_vm._e(),_c('b-container',{staticClass:\"content-container content-container-x my-0\",attrs:{\"id\":\"table-search-top\"}},[_c('ad-skeleton-text',{attrs:{\"loading\":_vm.isLoading}},[_c('h3',[(_vm.productSearchDetailResult.totalElementsCount === 0 || _vm.settingsProperty.isInEditMode)?_vm._t(\"search-headline-no-result\",function(){return [_vm._v(\"No Result\")]}):_vm._e(),(_vm.productSearchDetailResult.totalElementsCount === 1 || _vm.settingsProperty.isInEditMode)?_vm._t(\"search-headline-one-result\",function(){return [_vm._v(\"One Result\")]}):_vm._e(),(_vm.productSearchDetailResult.totalElementsCount > 1 || _vm.settingsProperty.isInEditMode)?_vm._t(\"search-headline\",function(){return [_vm._v(\"Many Result \"+_vm._s(_vm.productSearchDetailResult.totalElementsCount))]},{\"count\":_vm._f(\"formatField\")(_vm.productSearchDetailResult.totalElementsCount,_vm.formatNumber)}):_vm._e()],2)]),(!_vm.$screen.sm)?_c('ad-product-search-sorting',{key:_vm.updateKey,staticClass:\"mt-2\",attrs:{\"wide\":\"\",\"filter\":_vm.filter,\"disabled\":_vm.isLoading},on:{\"sorting-value-changed\":_vm.onFilterValueChanged},scopedSlots:_vm._u([{key:\"button-sorting-text\",fn:function(){return [_vm._t(\"button-sorting-text\",function(){return [_vm._v(\"Sorting\")]})]},proxy:true},{key:\"sorting-headline-text\",fn:function(){return [_vm._t(\"sorting-headline-text\",function(){return [_vm._v(\"Sort By\")]})]},proxy:true},{key:\"sorting-column-headline-text\",fn:function(){return [_vm._t(\"sorting-column-headline-text\",function(){return [_vm._v(\"Columns\")]})]},proxy:true},{key:\"sorting-direction-headline-text\",fn:function(){return [_vm._t(\"sorting-direction-headline-text\",function(){return [_vm._v(\"Ascending/Descending\")]})]},proxy:true},{key:\"sorting-add-columns-text\",fn:function(){return [_vm._t(\"sorting-add-columns-text\",function(){return [_vm._v(\"Add columns (optional)\")]})]},proxy:true},{key:\"sorting-distribution-fee-text\",fn:function(){return [_vm._t(\"sorting-distribution-fee-text\",function(){return [_vm._v(\"Distribution Fee\")]})]},proxy:true},{key:\"sorting-reset-button-text\",fn:function(){return [_vm._t(\"sorting-reset-button-text\",function(){return [_vm._v(\"Reset\")]})]},proxy:true},{key:\"sorting-apply-button-text\",fn:function(){return [_vm._t(\"sorting-apply-button-text\",function(){return [_vm._v(\"Apply\")]})]},proxy:true}],null,true)}):_vm._e()],1),_c('b-container',{staticClass:\"mb-7 mb-md-8 mt-5\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('ad-product-search-table',{attrs:{\"products\":_vm.productSearchDetailResult.items,\"filter\":_vm.filter,\"loading\":_vm.isLoading},on:{\"sorting-value-changed\":_vm.onFilterValueChanged,\"pushing-items\":_vm.pushingItems},scopedSlots:_vm._u([{key:\"product-detail-page-teaser\",fn:function(){return [_vm._t(\"product-detail-page-teaser\")]},proxy:true}],null,true)})],1)],1),_c('ad-pagination',{attrs:{\"views-per-page-selection-text\":_vm.settingsProperty.viewsPerPageSelectionText,\"take\":_vm.filter.pageSize,\"pageNumber\":_vm.filter.pageNumber,\"rows\":_vm.productSearchDetailResult.totalElementsCount},on:{\"paging-change\":_vm.updatePagination},scopedSlots:_vm._u([{key:\"views-per-page-text\",fn:function(){return [_vm._t(\"views-per-page-text\")]},proxy:true},{key:\"page-of-text\",fn:function({ totalPages }){return [_vm._t(\"page-of-text\",null,{\"totalPages\":totalPages})]}},{key:\"pervious-page-text\",fn:function(){return [_vm._t(\"pervious-page-text\")]},proxy:true},{key:\"next-page-text\",fn:function(){return [_vm._t(\"next-page-text\")]},proxy:true}],null,true)})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <b-form id=\"product-search-page\" novalidate>\n <b-container class=\"content-container content-container-t\">\n <b-row>\n <b-col>\n <h1><slot name=\"headline\"></slot></h1>\n <slot name=\"risk-disclaimer\"></slot>\n </b-col>\n </b-row>\n <b-row>\n <b-col lg=\"7\">\n <ad-product-search-filter-container\n class=\"alert form-card-helper mb-6 alert-light\"\n v-model=\"filter\"\n :productSearchDetailResult=\"productSearchDetailResult\"\n @selected-value-changed=\"onFilterValueChangedWithResetSecondaryFilters\"\n @selected-product-type-changed=\"onProductTypeChange\"\n @selected-product-sub-type-changed=\"onProductSubTypeChange\"\n @selected-underlying-changed=\"onUnderlyingChangedAsync\"\n @reset-filter=\"onUnderlyingChangedAsync\"\n :loading=\"isLoading\"\n >\n <template #filter-headline>\n <slot name=\"filter-headline\">Placeholder filter headline</slot>\n </template>\n <template #filter-product-type-dropdown-label-text>\n <slot name=\"filter-product-type-dropdown-label-text\">Placeholder product type label</slot>\n </template>\n <template #filter-product-type-dropdown-allitems-text>\n <slot name=\"filter-product-type-dropdown-allitems-text\">Placeholder product type all label</slot>\n </template>\n <template #filter-subtype-label-text>\n <slot name=\"filter-subtype-label-text\">Select sub type</slot>\n </template>\n <template #filter-subtype-label-put>\n <slot name=\"filter-subtype-label-put\">Put label</slot>\n </template>\n\n <template #filter-subtype-label-call>\n <slot name=\"filter-subtype-label-call\">Call label</slot>\n </template>\n\n <template #filter-subtype-label-both>\n <slot name=\"filter-subtype-label-both\"></slot>\n </template>\n\n <template #filter-category-dropdown-label-text>\n <slot name=\"filter-category-dropdown-label-text\">Select category</slot>\n </template>\n\n <template #filter-category-dropdown-allitems-text>\n <slot name=\"filter-category-dropdown-allitems-text\">All categories</slot>\n </template>\n\n <template #filter-country-dropdown-label-text>\n <slot name=\"filter-country-dropdown-label-text\"></slot>\n </template>\n <template #filter-country-dropdown-allitems-text>\n <slot name=\"filter-country-dropdown-allitems-text\"></slot>\n </template>\n <template #filter-sector-dropdown-label-text>\n <slot name=\"filter-sector-dropdown-label-text\"></slot>\n </template>\n <template #filter-sector-dropdown-allitems-text>\n <slot name=\"filter-sector-dropdown-allitems-text\"></slot>\n </template>\n\n <template #sorting-apply-button-text>\n <slot name=\"sorting-apply-button-text\">Apply</slot>\n </template>\n\n <template #filter-underlying-radio-single-label-text>\n <slot name=\"filter-underlying-radio-single-label-text\">Single underlying placholder</slot>\n </template>\n\n <template #filter-underlying-radio-multi-text>\n <slot name=\"filter-underlying-radio-multi-text\">Multi underlying placholder</slot>\n </template>\n\n <template #filter-underlying-dropdown-label-text>\n <slot name=\"filter-underlying-dropdown-label-text\">Dropdown label</slot>\n </template>\n\n <template #filter-underlying-dropdown-allitems-text>\n <slot name=\"filter-underlying-dropdown-allitems-text\">Filter all label</slot>\n </template>\n <template #filter-underlying-dropdown-multiple-placeholder>\n <slot name=\"filter-underlying-dropdown-multiple-placeholder\">Select items label</slot>\n </template>\n\n <template #filter-clear-button-text>\n <slot name=\"filter-clear-button-text\">Clear filter placeholder</slot>\n </template>\n\n <template #additional-date-range-filter-elements=\"{ availableValues, isLoading }\">\n <slot\n name=\"additional-date-range-filter-elements\"\n :availableValues=\"availableValues\"\n :currentSearchFilter=\"filter\"\n :isLoading=\"isLoading\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n ></slot>\n </template>\n <template #additional-numeric-range-filter-elements=\"{ availableValues, isLoading }\">\n <slot\n name=\"additional-numeric-range-filter-elements\"\n :availableValues=\"availableValues\"\n :currentSearchFilter=\"filter\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n :isLoading=\"isLoading\"\n ></slot>\n </template>\n </ad-product-search-filter-container>\n </b-col>\n <b-col lg=\"5\">\n <slot name=\"underlying-teaser\"></slot>\n </b-col>\n </b-row>\n </b-container>\n <div v-if=\"settingsProperty.isInEditMode || $screen.sm\" class=\"float-right content-container-y\">\n <b-button\n variant=\"light\"\n :disabled=\"isLoading\"\n v-if=\"settingsProperty.isInEditMode || $screen.xl\"\n @click=\"excelExport\"\n >\n <ad-icon-xls /><slot name=\"button-excel-export-text\">Excel Export</slot>\n </b-button>\n <ad-product-search-sorting\n :disabled=\"isLoading\"\n wide\n :filter=\"filter\"\n class=\"ml-3 d-inline-block\"\n @sorting-value-changed=\"onFilterValueChanged\"\n >\n <template #button-sorting-text>\n <slot name=\"button-sorting-text\">Sorting</slot>\n </template>\n <template #sorting-headline-text>\n <slot name=\"sorting-headline-text\">Sort By</slot>\n </template>\n <template #sorting-column-headline-text>\n <slot name=\"sorting-column-headline-text\">Columns</slot>\n </template>\n <template #sorting-direction-headline-text>\n <slot name=\"sorting-direction-headline-text\">Ascending/Descending</slot>\n </template>\n <template #sorting-add-columns-text>\n <slot name=\"sorting-add-columns-text\">Add columns (optional)</slot>\n </template>\n <template #sorting-distribution-fee-text>\n <slot name=\"sorting-distribution-fee-text\">Distribution Fee</slot>\n </template>\n <template #sorting-reset-button-text>\n <slot name=\"sorting-reset-button-text\">Reset</slot>\n </template>\n <template #sorting-apply-button-text>\n <slot name=\"sorting-apply-button-text\">Apply</slot>\n </template>\n </ad-product-search-sorting>\n </div>\n <b-container class=\"content-container content-container-x my-0\" id=\"table-search-top\">\n <ad-skeleton-text :loading=\"isLoading\">\n <h3>\n <slot\n name=\"search-headline-no-result\"\n v-if=\"productSearchDetailResult.totalElementsCount === 0 || settingsProperty.isInEditMode\"\n >No Result</slot\n >\n <slot\n name=\"search-headline-one-result\"\n v-if=\"productSearchDetailResult.totalElementsCount === 1 || settingsProperty.isInEditMode\"\n >One Result</slot\n >\n <slot\n name=\"search-headline\"\n :count=\"productSearchDetailResult.totalElementsCount | formatField(formatNumber)\"\n v-if=\"productSearchDetailResult.totalElementsCount > 1 || settingsProperty.isInEditMode\"\n >Many Result {{ productSearchDetailResult.totalElementsCount }}</slot\n ></h3\n >\n </ad-skeleton-text>\n <ad-product-search-sorting\n wide\n class=\"mt-2\"\n :filter=\"filter\"\n v-if=\"!$screen.sm\"\n :disabled=\"isLoading\"\n @sorting-value-changed=\"onFilterValueChanged\"\n :key=\"updateKey\"\n >\n <template #button-sorting-text>\n <slot name=\"button-sorting-text\">Sorting</slot>\n </template>\n <template #sorting-headline-text>\n <slot name=\"sorting-headline-text\">Sort By</slot>\n </template>\n <template #sorting-column-headline-text>\n <slot name=\"sorting-column-headline-text\">Columns</slot>\n </template>\n <template #sorting-direction-headline-text>\n <slot name=\"sorting-direction-headline-text\">Ascending/Descending</slot>\n </template>\n <template #sorting-add-columns-text>\n <slot name=\"sorting-add-columns-text\">Add columns (optional)</slot>\n </template>\n <template #sorting-distribution-fee-text>\n <slot name=\"sorting-distribution-fee-text\">Distribution Fee</slot>\n </template>\n <template #sorting-reset-button-text>\n <slot name=\"sorting-reset-button-text\">Reset</slot>\n </template>\n <template #sorting-apply-button-text>\n <slot name=\"sorting-apply-button-text\">Apply</slot>\n </template>\n </ad-product-search-sorting>\n </b-container>\n <b-container fluid class=\"mb-7 mb-md-8 mt-5\">\n <b-row>\n <b-col>\n <ad-product-search-table\n :products=\"productSearchDetailResult.items\"\n :filter=\"filter\"\n @sorting-value-changed=\"onFilterValueChanged\"\n :loading=\"isLoading\"\n @pushing-items=\"pushingItems\"\n >\n <template #product-detail-page-teaser>\n <slot name=\"product-detail-page-teaser\" />\n </template>\n </ad-product-search-table>\n </b-col>\n </b-row>\n <ad-pagination\n :views-per-page-selection-text=\"settingsProperty.viewsPerPageSelectionText\"\n @paging-change=\"updatePagination\"\n :take=\"filter.pageSize\"\n :pageNumber=\"filter.pageNumber\"\n :rows=\"productSearchDetailResult.totalElementsCount\"\n >\n <template #views-per-page-text>\n <slot name=\"views-per-page-text\" />\n </template>\n <template v-slot:page-of-text=\"{ totalPages }\">\n <slot name=\"page-of-text\" v-bind:totalPages=\"totalPages\"></slot>\n </template>\n <template #pervious-page-text>\n <slot name=\"pervious-page-text\" />\n </template>\n <template #next-page-text>\n <slot name=\"next-page-text\" />\n </template>\n </ad-pagination>\n </b-container>\n </b-form>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport {\n ProductSearchDetailedResultModel,\n ProductSearchParametersModel,\n SortOrder,\n ExcelExportSearchParameterModel,\n} from '@/src/types/the-q-api';\nimport { PageRoutes, ProductSearchPageSetting, SortingColumnSetting } from '@/src/types/episerver-api';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport AdProductSearchTable from './ad-product-search-table.vue';\nimport AdProductSearchSorting from './ad-product-search-sorting.vue';\nimport AdProductSearchFilterContainer from './filter-components/ad-product-search-filter-container.vue';\nimport { redirectToSearchProducts, tryCreateProductSearchLink } from '@/src/utils/url-helper';\nimport { getTheQApiUrl, getParamFromUrl } from '@/src/utils/url-helper';\nimport {\n Controller,\n DefaultFormat,\n HttpStatusCodes,\n ProductSubTypeAnyMap,\n ProductSubTypeAny,\n} from '@/src/types/enumerations';\nimport { downloadFilePost } from '@/src/utils/download-file';\nimport { parseQueryObject } from '@/src/utils/query-param-helper';\nimport qs from 'qs';\nimport { ProductSearchParametersFilter } from '@/src/types/vue-api';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { Action, Getter } from 'vuex-class';\nimport { pushPufferNumber } from '@/src/state/plugins/light-streamer/pushing-helper';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\n@Component({\n components: {\n AdProductSearchTable,\n AdProductSearchSorting,\n AdProductSearchFilterContainer,\n },\n})\nexport default class AdProductSearchPage extends Vue {\n @Inject() settingsProperty!: ProductSearchPageSetting;\n @Inject() pageRoutes!: PageRoutes;\n\n @Getter('productSearchDetailResult', { namespace: 'product' })\n productSearchDetailResult!: ProductSearchDetailedResultModel | null;\n\n @Action('loadProductSearchDetailedResultAsync', { namespace: 'product' })\n loadProductSearchDetailedResultAsync!: (params: {\n filter: ProductSearchParametersModel;\n minPushItem: number;\n maxPushItem: number;\n }) => Promise<void>;\n\n @Action('updateProductSearchDetailedResultPushItems', { namespace: 'product' })\n updateProductSearchDetailedResultPushItems!: (params: { minPushItem: number; maxPushItem: number }) => void;\n\n @Action('loadTeaserUnderlyingsAsync', { namespace: 'underlying' })\n loadTeaserUnderlyingsAsync!: (isin: string[] | string) => Promise<void>;\n\n @Action('clearTeaserUnderlyings', { namespace: 'underlying' })\n clearTeaserUnderlyings!: () => void;\n\n statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n\n private filter = new ProductSearchParametersFilter();\n private firstRequestSwitch = true;\n private formatNumber = DefaultFormat.Number;\n private isLoading = true;\n private updateKey = 0;\n\n async onFilterValueChangedWithResetSecondaryFilters(): Promise<void> {\n this.filter = this.filter.getResetSecondaryFilter();\n await this.onFilterValueChanged();\n }\n\n async onFilterValueChanged(): Promise<void> {\n this.filter.pageNumber = 1;\n await this.loadProductsAsync();\n }\n\n async created(): Promise<void> {\n this.setFilterDefaults();\n this.setSortOrders();\n this.setFilterFromUrl();\n this.filter.isRequestWithoutUnderlyingWhenNoResult = true;\n\n await this.loadProductsAsync();\n //check if item is available and if not request had loaded all items,\n //so therefore reset default underlying, because it is not in the request\n const underlyingIdToCheck = this.preSelectedUnderlyingId;\n\n if (underlyingIdToCheck && this.productSearchDetailResult?.availableValues?.underlyingNames[underlyingIdToCheck]) {\n await this.loadUnderlyingsAsync();\n } else {\n this.filter.underlyingIsinOrIsins = null;\n this.filter.defaultUnderlying = null;\n }\n\n this.filter.isRequestWithoutUnderlyingWhenNoResult = false;\n }\n\n async loadProductsAsync() {\n if (!this.firstRequestSwitch) {\n const url = tryCreateProductSearchLink(\n this.pageRoutes,\n this.filter.productType,\n this.filter,\n this.shouldItemBeSerializedInQuery\n );\n\n window.history.pushState({}, window.document.title, url);\n }\n\n this.firstRequestSwitch = false;\n await this.loadProductsWithErrorHandling();\n this.updateKey++;\n }\n\n private pushingItems(min: number, max: number) {\n this.updateProductSearchDetailedResultPushItems({\n minPushItem: min,\n maxPushItem: max,\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private shouldItemBeSerializedInQuery(prefix: string, value: any) {\n switch (prefix) {\n case 'sortOrders':\n if (JSON.stringify(value) === JSON.stringify(this.filter.resetSortOrders)) value = undefined;\n return value;\n case 'underlyingIsinOrIsins':\n if (value === this.settingsProperty.defaultUnderlyingIsin) value = undefined;\n return value;\n default:\n return value;\n }\n }\n\n private get preSelectedUnderlyingId(): string | null {\n if (typeof this.filter.underlyingIsinOrIsins === 'string') {\n return this.filter.underlyingIsinOrIsins;\n } else if (Array.isArray(this.filter.underlyingIsinOrIsins)) {\n return this.filter.underlyingIsinOrIsins[0];\n }\n return this.filter.defaultUnderlying;\n }\n\n async updatePagination(take: number, pageNumber: number) {\n this.filter.pageSize = take;\n this.filter.pageNumber = pageNumber;\n document.getElementById('table-search-top')?.scrollIntoView({\n behavior: 'smooth',\n });\n\n await this.loadProductsWithErrorHandling();\n }\n\n async loadProductsWithErrorHandling() {\n this.isLoading = true;\n\n try {\n await this.loadProductSearchDetailedResultAsync({\n filter: this.filter,\n minPushItem: 0,\n maxPushItem: pushPufferNumber,\n });\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n } else {\n this.statusCode = HttpStatusCodes.UnknownError;\n }\n }\n\n this.isLoading = false;\n }\n\n async loadUnderlyingsAsync() {\n if (this.filter.underlyingIsinOrIsins !== null) {\n await this.loadTeaserUnderlyingsAsync(this.filter.underlyingIsinOrIsins);\n } else {\n this.clearTeaserUnderlyings();\n }\n }\n\n async onUnderlyingChangedAsync() {\n await Promise.all([this.onFilterValueChangedWithResetSecondaryFilters(), this.loadUnderlyingsAsync()]);\n }\n\n onProductTypeChange() {\n redirectToSearchProducts(null, this.pageRoutes, false, this.filter.productType);\n }\n\n async onProductSubTypeChange() {\n const sortOrdersFromUrl = getParamFromUrl<ProductSearchParametersFilter>('sortOrders');\n if (sortOrdersFromUrl === null) {\n this.setSortOrders();\n }\n await this.onFilterValueChanged();\n }\n\n resolveSearchPageLink(): string | null {\n if (this.filter.productType != null) {\n return this.pageRoutes.productSearchTypeUrlSegments[this.filter.productType];\n }\n\n const emptyProductKey = '';\n if (emptyProductKey in this.pageRoutes) {\n return this.pageRoutes.productSearchTypeUrlSegments[emptyProductKey];\n }\n\n return null;\n }\n\n excelExport() {\n const url = getTheQApiUrl(Controller.ProductSearch, 'Excel');\n this.trackExport(url);\n downloadFilePost(url, this.buildExcelRequest(), 'ProductSearch.xlsx');\n }\n\n trackExport(url: string) {\n trackEvent(GaEvent.ClickDownload, {\n displayName: 'BestMatchSearch.xlsx',\n extension: 'xlsx',\n url: url,\n });\n }\n\n buildExcelRequest(): ExcelExportSearchParameterModel {\n const excelFilter = this.filter as unknown as ExcelExportSearchParameterModel;\n excelFilter.columnList = this.settingsProperty.excelExportColumnSettings;\n return excelFilter;\n }\n\n private setFilterDefaults(): void {\n this.filter.productType = this.settingsProperty.productType;\n\n if (this.settingsProperty.defaultUnderlyingIsin) {\n this.filter.defaultUnderlying = this.settingsProperty.defaultUnderlyingIsin;\n this.filter.underlyingIsinOrIsins = this.filter.defaultUnderlying;\n }\n\n this.filter.subType = getParamFromUrl<ProductSearchParametersFilter>('subType');\n }\n\n private setFilterFromUrl(): void {\n const filter = qs.parse(window.location.search, { ignoreQueryPrefix: true });\n this.filter = Object.assign(this.filter, parseQueryObject(filter));\n }\n\n /**\n * Some of the sorting orders can be sub-type specific (not all products have sub types)\n * Sorting Orders with sub type set to 'Any' can be used for any product and any subtype.\n * Sorting Orders with sub type other than 'Any' can only be used with products with sub types\n * E.g. sorting with sub type by call will only be set if filter subtyp is set to call\n */\n private setSortOrders(): void {\n let sortingSetting = new Array<SortingColumnSetting>();\n if (this.settingsProperty.hasSubTypeFilter && this.filter.subType !== null) {\n sortingSetting = this.settingsProperty.tableColumnSorting?.filter(\n (item) =>\n ProductSubTypeAnyMap.get(item.productSubTypeAny) === this.filter.subType ||\n item.productSubTypeAny === ProductSubTypeAny.Any\n );\n } else {\n sortingSetting = this.settingsProperty.tableColumnSorting.filter(\n (item) => item.productSubTypeAny === ProductSubTypeAny.Any\n );\n }\n\n const sortOrders = sortingSetting.map((item) => ({ key: item.key, direction: item.sortingDirection }) as SortOrder);\n\n this.filter.sortOrders = sortOrders;\n this.filter.resetSortOrders = sortOrders;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=47cfe39e\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('b-container',{staticClass:\"content-container mt-6 mt-md-7 mt-xl-8\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"mb-5\"},[_c('h1',{staticClass:\"d-inline\"},[_vm._t(\"headline\"),_c('span',{staticClass:\"icon-size align-text-top\"},[_vm._t(\"info-icon\")],2)],2)])],1),_c('b-row',[_c('b-col',{staticClass:\"pb-5 pb-xl-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"xl\":\"8\"}},[_c('h3',[_vm._t(\"categories-headline\")],2),(_vm.categoriesRadioView)?_c('span',{staticClass:\"fs-14\"},[_vm._t(\"categories-dropdown-headline\")],2):_vm._e(),_c('ad-skeleton-input',{attrs:{\"loading\":_vm.fetchingCategories}},[_c('div',[(_vm.categoriesRadioView)?_c('b-form-radio-group',{staticClass:\"mt-2 flex-wrap btn-group-multiline\",attrs:{\"id\":\"btn-radios-categories\",\"name\":\"radios-btn-categories\",\"size\":\"sm\",\"button-variant\":\"default\",\"checked\":_vm.selectedCategory,\"options\":_vm.categories,\"buttons\":\"\"},on:{\"input\":_vm.selectCategory}}):_vm._e(),(!_vm.categoriesRadioView)?_c('b-form-group',{staticClass:\"focus-white mb-0\",attrs:{\"id\":\"input-group-categories\",\"label-for\":\"categories-input\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"categories-dropdown-headline\")]},proxy:true}],null,true)},[_c('ad-drop-down-list',{attrs:{\"options\":_vm.dropdownCategories,\"value\":_vm.selectedCategory,\"form-element-state-id\":\"input-group-categories\"},on:{\"input\":_vm.selectCategory}})],1):_vm._e()],1)])],1),(_vm.$slots['description'])?_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"xl\":\"4\"}},[_c('h3',[_vm._t(\"description-headline\")],2),_c('p',[_vm._t(\"description\")],2),(_vm.settingsProperty.watchlistButtonUrl)?_c('a',{staticClass:\"btn btn-secondary w-sm-100\",attrs:{\"href\":_vm.settingsProperty.watchlistButtonUrl}},[_vm._t(\"watchlist-button-text\")],2):_vm._e()]):_vm._e()],1)],1),_c('div',{staticClass:\"pt-6 pb-7\"},[_vm._t(\"realtime-block\",null,{\"selectedUnderlying\":_vm.selectedUnderlyingIsin})],2),_c('b-container',{staticClass:\"content-container mt-0\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',[_c('h2',{staticClass:\"mb-0\"},[_vm._t(\"indication-headline\")],2),_c('span',{staticClass:\"fs-14 marine-blue\"},[_vm._t(\"indication-subline\")],2)])],1),_c('b-row',[_c('b-col',{staticClass:\"pt-4\"},[(_vm.cookiesAccepted)?_vm._t(\"indication-description\"):_vm._t(\"missing-cookie\",null,{\"viewMode\":_vm.missingCookieBlockViewMode})],2)],1)],1),_c('b-container',{staticClass:\"mb-6\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{staticClass:\"pt-3\"},[_c('ad-instrument-table',_vm._b({directives:[{name:\"sortable-table\",rawName:\"v-sortable-table\",value:(_vm.getSortingOption),expression:\"getSortingOption\"}],key:_vm.sortKey,ref:\"table\",attrs:{\"settings\":_vm.tableSettings,\"instruments\":_vm.underlyings,\"selectable\":\"\",\"sorting\":\"\",\"select-mode\":\"single\",\"selected-variant\":\"secondary\",\"loading\":_vm.fetchingUnderlyings},on:{\"sorting-value-changed\":_vm.sortingChanged,\"row-clicked\":_vm.selectUnderlying,\"pushing-items\":_vm.pushingItems},scopedSlots:_vm._u([{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-underlying-data-value',{attrs:{\"isLinkToDetailPage\":setting.isLinkToDetailPage,\"underlying-item\":instrument,\"field-key\":setting.key}})]}},{key:\"row-custom-instrument\",fn:function({}){return [_c('ad-icon-chart-line',{staticClass:\"bg-light-blue-grey rounded\",attrs:{\"height\":\"1.8em\",\"width\":\"1.8em\",\"iconName\":\"\"}})]}},{key:\"row-watch-list\",fn:function({ instrument }){return [_c('ad-underlying-watchlist-toggle',{attrs:{\"underlying-item\":instrument}})]}}])},'ad-instrument-table',_vm.$attrs,false))],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <b-container fluid class=\"content-container mt-6 mt-md-7 mt-xl-8\">\n <b-row>\n <b-col class=\"mb-5\">\n <h1 class=\"d-inline\">\n <slot name=\"headline\"></slot>\n <span class=\"icon-size align-text-top\"><slot name=\"info-icon\"></slot></span>\n </h1>\n </b-col>\n </b-row>\n <b-row>\n <b-col cols=\"12\" md=\"6\" xl=\"8\" class=\"pb-5 pb-xl-0\">\n <h3><slot name=\"categories-headline\"></slot></h3>\n <span v-if=\"categoriesRadioView\" class=\"fs-14\"><slot name=\"categories-dropdown-headline\"></slot></span>\n <ad-skeleton-input :loading=\"fetchingCategories\">\n <div>\n <b-form-radio-group\n v-if=\"categoriesRadioView\"\n id=\"btn-radios-categories\"\n name=\"radios-btn-categories\"\n size=\"sm\"\n button-variant=\"default\"\n :checked=\"selectedCategory\"\n :options=\"categories\"\n @input=\"selectCategory\"\n buttons\n class=\"mt-2 flex-wrap btn-group-multiline\"\n ></b-form-radio-group>\n\n <b-form-group\n id=\"input-group-categories\"\n label-for=\"categories-input\"\n class=\"focus-white mb-0\"\n v-if=\"!categoriesRadioView\"\n >\n <template #label><slot name=\"categories-dropdown-headline\"></slot></template>\n <ad-drop-down-list\n :options=\"dropdownCategories\"\n :value=\"selectedCategory\"\n @input=\"selectCategory\"\n form-element-state-id=\"input-group-categories\"\n />\n </b-form-group>\n </div>\n </ad-skeleton-input>\n </b-col>\n <b-col cols=\"12\" md=\"6\" xl=\"4\" v-if=\"$slots['description']\">\n <h3><slot name=\"description-headline\"></slot></h3>\n <p><slot name=\"description\"></slot></p>\n <a\n v-if=\"settingsProperty.watchlistButtonUrl\"\n :href=\"settingsProperty.watchlistButtonUrl\"\n class=\"btn btn-secondary w-sm-100\"\n >\n <slot name=\"watchlist-button-text\"></slot>\n </a>\n </b-col>\n </b-row>\n </b-container>\n <div class=\"pt-6 pb-7\">\n <slot name=\"realtime-block\" :selectedUnderlying=\"selectedUnderlyingIsin\"></slot>\n </div>\n <b-container fluid class=\"content-container mt-0\">\n <b-row>\n <b-col>\n <h2 class=\"mb-0\"><slot name=\"indication-headline\"></slot></h2>\n <span class=\"fs-14 marine-blue\"><slot name=\"indication-subline\"></slot></span>\n </b-col>\n </b-row>\n <b-row>\n <b-col class=\"pt-4\">\n <slot v-if=\"cookiesAccepted\" name=\"indication-description\"></slot>\n <slot v-else name=\"missing-cookie\" :view-mode=\"missingCookieBlockViewMode\"></slot>\n </b-col>\n </b-row>\n </b-container>\n <b-container fluid class=\"mb-6\">\n <b-row>\n <b-col class=\"pt-3\">\n <ad-instrument-table\n ref=\"table\"\n :settings=\"tableSettings\"\n v-bind=\"$attrs\"\n :instruments=\"underlyings\"\n selectable\n sorting\n @sorting-value-changed=\"sortingChanged\"\n v-sortable-table=\"getSortingOption\"\n select-mode=\"single\"\n selected-variant=\"secondary\"\n @row-clicked=\"selectUnderlying\"\n :loading=\"fetchingUnderlyings\"\n :key=\"sortKey\"\n @pushing-items=\"pushingItems\"\n >\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-underlying-data-value\n :isLinkToDetailPage=\"setting.isLinkToDetailPage\"\n :underlying-item=\"instrument\"\n :field-key=\"setting.key\"\n />\n </template>\n <template #row-custom-instrument=\"{}\">\n <ad-icon-chart-line height=\"1.8em\" width=\"1.8em\" iconName=\"\" class=\"bg-light-blue-grey rounded\" />\n </template>\n <template #row-watch-list=\"{ instrument }\">\n <ad-underlying-watchlist-toggle :underlying-item=\"instrument\" />\n </template>\n </ad-instrument-table>\n </b-col>\n </b-row>\n </b-container>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport { Action, Getter } from 'vuex-class';\nimport { Component, Inject, Ref, Watch, Vue } from 'vue-property-decorator';\nimport { RealtimePageSettingPayload, TableColumnSettingBase } from '@/src/types/episerver-api';\nimport { SortOrder, UnderlyingModel, UnderlyingSearchFilterPayload } from '@/src/types/the-q-api';\nimport { DropDownItem, InstrumentTableSettingData } from '@/src/types/vue-api';\nimport { DropDownItemType, HttpStatusCodes, MissingCookieViewMode, TextAlign } from '@/src/types/enumerations';\nimport CookieManager from '@/src/utils/cookie';\nimport AdInstrumentTable from '@/src/components/atoms/instruments/ad-instrument-table/index.vue';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { pushPufferNumber } from '@/src/state/plugins/light-streamer/pushing-helper';\n\n@Component\nexport default class AdRealtimePage extends Vue {\n @Inject() settingsProperty!: RealtimePageSettingPayload;\n\n @Action('searchUnderlyingsAsync', { namespace: 'realtime' })\n searchUnderlyingsAsync!: ({\n filter,\n sortOrder,\n category,\n minPushItem,\n maxPushItem,\n }: {\n filter: UnderlyingSearchFilterPayload;\n sortOrder: SortOrder | null;\n category: string | null;\n minPushItem: number;\n maxPushItem: number;\n }) => Promise<void>;\n\n @Getter('underlyings', { namespace: 'realtime' })\n underlyings!: Array<UnderlyingModel> | null;\n\n @Action('saveRealtimeCategoryAndUpdateSorting', { namespace: 'realtime' })\n saveRealtimeCategoryAndUpdateSorting!: ({\n category,\n oldIndex,\n newIndex,\n }: {\n category: string;\n oldIndex: number;\n newIndex: number;\n }) => void;\n\n @Action('resortUnderlyings', { namespace: 'realtime' })\n resortUnderlyings!: ({\n sortOrder,\n category,\n minPushItem,\n maxPushItem,\n }: {\n sortOrder: SortOrder | null;\n category: string | null;\n minPushItem: number;\n maxPushItem: number;\n }) => void;\n\n @Action('updateUnderlyingsPushItems', { namespace: 'realtime' })\n updateUnderlyingsPushItems!: ({ minPushItem, maxPushItem }: { minPushItem: number; maxPushItem: number }) => void;\n\n @Action('loadTranslationsAsync', { namespace: 'translations' })\n loadTranslationsAsync!: () => Promise<void>;\n\n @Getter('realtimeCategories', { namespace: 'translations' })\n categories!: Array<string>;\n\n @Ref()\n table: AdInstrumentTable | undefined;\n\n private tableSettings!: InstrumentTableSettingData;\n private statusCode: number | HttpStatusCodes = 200;\n private cookieManager!: CookieManager;\n private missingCookieBlockViewMode = MissingCookieViewMode.Text;\n private selectedUnderlyingIsin: string | null = null;\n private selectedCategory: string | null = '';\n\n private fetchingCategories = true;\n private fetchingUnderlyings = false;\n sortKey = 0;\n sortOrder: SortOrder | null = null;\n\n async created(): Promise<void> {\n this.cookieManager = new CookieManager(this.$cookies);\n this.mapTableColumns();\n await this.fetchCategories();\n\n if (\n this.settingsProperty.defaultCategoriesOption &&\n this.categories.includes(this.settingsProperty.defaultCategoriesOption)\n ) {\n this.selectedCategory = this.settingsProperty.defaultCategoriesOption;\n } else if (this.categories.length != 0) {\n this.selectedCategory = this.categories[0];\n }\n }\n\n private mapTableColumns() {\n const actionsColumn = {\n headline: '',\n textAlign: TextAlign.Center,\n isEllipsis: false,\n columnWidth: null,\n } as TableColumnSettingBase;\n this.tableSettings = {\n desktopTableColumnsSetting: [...this.settingsProperty.tableColumns.desktopTableColumnsSetting, actionsColumn],\n tabletTableColumnsSetting: [...this.settingsProperty.tableColumns.tabletTableColumnsSetting, actionsColumn],\n mobileTableColumnsSetting: [...this.settingsProperty.tableColumns.mobileTableColumnsSetting, actionsColumn],\n tableColumnSorting: [],\n hideDetailColumn: this.settingsProperty.tableColumns.hideDetailColumn,\n } as InstrumentTableSettingData;\n }\n\n sortingChanged(sortOrders: Array<SortOrder>) {\n if (Array.isArray(sortOrders) && sortOrders.length === 1) this.sortOrder = sortOrders[0];\n else this.sortOrder = null;\n this.resortUnderlyings({\n minPushItem: 0,\n maxPushItem: pushPufferNumber,\n sortOrder: this.sortOrder,\n category: this.selectedCategory,\n });\n }\n\n private updateCustomSorting(oldIndex: number, newIndex: number) {\n if (oldIndex === newIndex) return;\n if (!this.underlyings || !this.selectedCategory) return;\n\n this.sortOrder = null;\n\n if (this.cookiesAccepted)\n this.saveRealtimeCategoryAndUpdateSorting({ category: this.selectedCategory, oldIndex, newIndex });\n\n this.sortKey += 1;\n }\n\n private getSortingOption() {\n const onEnd = (oldIndex, newIndex) => {\n this.updateCustomSorting(oldIndex, newIndex);\n };\n return {\n onEnd: (evt) => onEnd(evt.oldIndex, evt.newIndex),\n };\n }\n\n private pushingItems(min: number, max: number) {\n this.updateUnderlyingsPushItems({\n minPushItem: min,\n maxPushItem: max,\n });\n }\n\n private get cookiesAccepted(): boolean {\n return this.cookieManager?.comfort || false;\n }\n\n private async fetchCategories(): Promise<void> {\n this.fetchingCategories = true;\n try {\n await this.loadTranslationsAsync();\n this.fetchingCategories = false;\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n this.fetchingCategories = false;\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n }\n }\n }\n\n private selectCategory(value: string) {\n this.selectedCategory = value;\n }\n\n @Watch('selectedCategory')\n async fetchCategoryUnderlyings() {\n if (this.selectedCategory) {\n const value =\n this.settingsProperty.allCategoriesOption && this.selectedCategory === this.settingsProperty.allCategoriesOption\n ? null\n : this.selectedCategory;\n this.fetchingUnderlyings = true;\n this.selectedUnderlyingIsin = null;\n await this.searchUnderlyingsAsync({\n filter: { realtimeCategory: value },\n sortOrder: this.sortOrder,\n category: this.selectedCategory,\n minPushItem: 0,\n maxPushItem: pushPufferNumber,\n });\n\n this.fetchingUnderlyings = false;\n if (this.underlyings && this.underlyings.length !== 0) {\n this.selectedUnderlyingIsin = this.underlyings[0].isin;\n }\n }\n }\n\n private async selectUnderlying(item: UnderlyingModel) {\n if (this.selectedUnderlyingIsin === item.isin) {\n this.selectedUnderlyingIsin = null;\n await this.$nextTick();\n }\n this.selectedUnderlyingIsin = item.isin;\n }\n\n private get categoriesRadioView(): boolean {\n return this.$screen.xl;\n }\n\n get dropdownCategories(): DropDownItem[] {\n return (\n this.categories?.map((option) => {\n return {\n type: DropDownItemType.item,\n text: option,\n value: option,\n } as DropDownItem;\n }) || []\n );\n }\n}\n</script>\n<style lang=\"scss\">\n.icon-size {\n .ade-icon {\n width: rem(20);\n height: rem(20);\n }\n}\n\n.btn-group-multiline .btn {\n flex-grow: 0;\n margin-bottom: rem(10);\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ef2dbdc6\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ef2dbdc6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('div',{staticClass:\"content-container container-fluid mb-0 mt-7\"},[_c('h2',[_vm._t(\"header\"),_vm._v(\" \"+_vm._s(_vm._f(\"uppercase\")(_vm.isin))+\" \")],2),_c('div',{staticClass:\"mt-6\"},[_c('h3',[_vm._t(\"final-terms-link-description\"),_vm._v(\" \"),_c('b-button',{staticClass:\"d-inline\",attrs:{\"href\":_vm.link}},[_vm._t(\"final-terms-link-text\")],2)],2)]),_c('div',{staticClass:\"mt-6\"},[_c('h3',[_vm._t(\"legal-documents-page-link-content\"),_vm._v(\" \"),_c('b-button',{staticClass:\"d-inline\",attrs:{\"href\":_vm.legalDocumentsPageUrl}},[_vm._t(\"legal-documents-page-link-text\")],2)],2)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <div class=\"content-container container-fluid mb-0 mt-7\">\n <h2> <slot name=\"header\"></slot> {{ isin | uppercase }} </h2>\n <div class=\"mt-6\">\n <h3>\n <slot name=\"final-terms-link-description\"></slot> \n <b-button class=\"d-inline\" :href=\"link\">\n <slot name=\"final-terms-link-text\"></slot>\n </b-button>\n </h3>\n </div>\n <div class=\"mt-6\">\n <h3>\n <slot name=\"legal-documents-page-link-content\"></slot> \n <b-button class=\"d-inline\" :href=\"legalDocumentsPageUrl\">\n <slot name=\"legal-documents-page-link-text\"></slot>\n </b-button>\n </h3>\n </div>\n </div>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport { HttpStatusCodes } from '@/src/types/enumerations';\nimport { getAllDocumentsForProduct } from '@/src/utils/document-service';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { isAxiosError } from '@/src/types/type-guards';\n\n@Component({\n filters: {\n uppercase: function (value: string) {\n return !value ? '' : value.toUpperCase();\n },\n },\n})\nexport default class AdStructuredProductsPage extends Vue {\n @Prop() isin!: string | undefined;\n @Prop() legalDocumentsPageUrl!: string | undefined;\n\n statusCode: number | HttpStatusCodes = HttpStatusCodes.OK;\n\n /**\n * A redirect needs to be created for this Url in the Redirect-Manager Module of EPiServer.\n * This Url should be redirected to the FinalTerms Endpoint in the Document-Controller, so that\n * the document can be downloaded for the product with the specified Isin.\n */\n get link(): string | undefined {\n const isin = this.isin;\n return isin ? location.pathname.replace(isin, `final-terms/FT_${isin}`) : undefined;\n }\n\n async created() {\n if (this.isin) {\n try {\n const documents = await getAllDocumentsForProduct(this.isin);\n if (documents.length !== 0) {\n return;\n }\n } catch (error: unknown) {\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n return;\n }\n }\n }\n\n this.statusCode = HttpStatusCodes.NotFound;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=78ab7df2\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-collapse-on-mobile',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"header\")]},proxy:true}],null,true)},[_c('b-row',_vm._l((_vm.productTypeGroups),function(typeGroup){return _c('b-col',{key:typeGroup.header,attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('ad-skeleton-text',{attrs:{\"loading\":typeGroup.options.length === 0}},[_c('h3',[_vm._v(\" \"+_vm._s(typeGroup.header))])]),_c('ad-product-type-count-table',{attrs:{\"types\":typeGroup.options,\"selectedUnderlying\":_vm.underlying.isin},scopedSlots:_vm._u([{key:\"header-name\",fn:function(){return [_vm._t(\"table-header-name\")]},proxy:true},{key:\"header-count\",fn:function(){return [_vm._t(\"table-header-count\")]},proxy:true}],null,true)})],1)}),1),_c('hr',{staticClass:\"mt-5 mb-6 mt-lg-6 mb-lg-7 d-none d-sm-block border-secondary\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-collapse-on-mobile>\n <template #header>\n <slot name=\"header\"></slot>\n </template>\n <b-row>\n <b-col v-for=\"typeGroup in productTypeGroups\" :key=\"typeGroup.header\" cols=\"12\" sm=\"6\">\n <ad-skeleton-text :loading=\"typeGroup.options.length === 0\">\n <h3> {{ typeGroup.header }}</h3>\n </ad-skeleton-text>\n <ad-product-type-count-table :types=\"typeGroup.options\" :selectedUnderlying=\"underlying.isin\">\n <template #header-name><slot name=\"table-header-name\"></slot></template>\n <template #header-count><slot name=\"table-header-count\"></slot></template>\n </ad-product-type-count-table>\n </b-col>\n </b-row>\n <hr class=\"mt-5 mb-6 mt-lg-6 mb-lg-7 d-none d-sm-block border-secondary\" />\n </ad-collapse-on-mobile>\n</template>\n<script lang=\"ts\">\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { OptionGroup, ProductTypeGroupOptionsFilter, UnderlyingModel } from '@src/types/the-q-api';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({})\nexport default class AdProductTypesCount extends Vue {\n private filter = {} as ProductTypeGroupOptionsFilter;\n\n @Getter('underlying', { namespace: 'underlying' })\n underlying!: UnderlyingModel | null;\n\n @Getter('productTypeGroupOptions', { namespace: 'product' })\n productTypeGroupOptions!: (filter: ProductTypeGroupOptionsFilter) => OptionGroup[];\n\n @Action('getProductTypeGroupOptionsAsync', { namespace: 'product' })\n getProductTypeGroupOptionsAsync!: (filter: ProductTypeGroupOptionsFilter) => Promise<void>;\n\n get productTypeGroups() {\n return this.productTypeGroupOptions(this.filter);\n }\n\n @Watch('underlying')\n private async getProductTypes(): Promise<void> {\n if (this.underlying) {\n try {\n this.filter = {\n underlyingIsin: this.underlying.isin,\n } as ProductTypeGroupOptionsFilter;\n await this.getProductTypeGroupOptionsAsync(this.filter);\n } catch (ex) {\n this.$log.error(ex);\n }\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-types-count.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-product-types-count.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-product-types-count.vue?vue&type=template&id=9edd19a0\"\nimport script from \"./ad-product-types-count.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-product-types-count.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h1',{staticClass:\"mb-md-3 mb-2\"},[_c('ad-underlying-preheadline-text',{staticClass:\"fs-16 pr-1\",attrs:{\"udp-preheadlines\":_vm.settingsProperty.udpPreHeadlines,\"underlying\":_vm.underlyingModel}}),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.name\"}})],1),(_vm.headerProperties && _vm.headerProperties.length)?_c('h2',_vm._l((_vm.headerProperties),function(prop,index){return _c('span',{key:prop},[(index !== 0)?[_vm._v(\" / \")]:_vm._e(),_vm._v(\" \"+_vm._s(prop)+\" \")],2)}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <h1 class=\"mb-md-3 mb-2\">\n <ad-underlying-preheadline-text\n class=\"fs-16 pr-1\"\n :udp-preheadlines=\"settingsProperty.udpPreHeadlines\"\n :underlying=\"underlyingModel\"\n ></ad-underlying-preheadline-text>\n <ad-underlying-data-value fieldKey=\"underlying.name\"></ad-underlying-data-value>\n </h1>\n <h2 v-if=\"headerProperties && headerProperties.length\">\n <span v-for=\"(prop, index) in headerProperties\" v-bind:key=\"prop\">\n <template v-if=\"index !== 0\"> / </template>\n {{ prop }}\n </span>\n </h2>\n </div>\n</template>\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { Component, Inject, Prop } from 'vue-property-decorator';\nimport { UnderlyingDetailPageSetting } from '@/src/types/episerver-api';\n\n@Component\nexport default class AdUnderlyingPageHeader extends Vue {\n @Inject()\n settingsProperty?: UnderlyingDetailPageSetting;\n\n @Prop()\n underlyingModel?: UnderlyingModel;\n\n get headerProperties(): unknown[] | null {\n if (this.settingsProperty?.headerProperties && this.underlyingModel) {\n const underlying = this.underlyingModel;\n let props = this.settingsProperty?.headerProperties.map((key) => underlying[key]);\n props = props.filter((p) => p);\n return props;\n }\n return null;\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-underlying-detail-page-header.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ad-underlying-detail-page-header.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ad-underlying-detail-page-header.vue?vue&type=template&id=4de200b2\"\nimport script from \"./ad-underlying-detail-page-header.vue?vue&type=script&lang=ts\"\nexport * from \"./ad-underlying-detail-page-header.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[_c('ad-underlying-data-property',{attrs:{\"underlying\":_vm.underlying}},[_c('b-container',{staticClass:\"content-container mb-7 mb-md-8 mt-6 mt-md-7 mt-xl-8 px-md-4 underlying-detail\",attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"11\",\"order\":\"2\"}},[_c('ad-underlying-detail-page-header',{attrs:{\"underlyingModel\":_vm.underlying}})],1),(_vm.settingsProperty?.isWatchlistButtonEnabled)?_c('b-col',{staticClass:\"text-right pt-lg-3 pb-3 pb-lg-0\",attrs:{\"cols\":\"12\",\"lg\":\"1\",\"order\":\"1\",\"order-lg\":\"3\"}},[_c('ad-underlying-watchlist-toggle')],1):_vm._e()],1),(_vm.settingsProperty?.isPriceDataEnabled)?_c('b-row',[_c('b-col',{staticClass:\"b-skeleton-m\"},[_c('hr',{staticClass:\"mb-3 mt-3\"}),_c('b-row',[_c('b-col',{staticClass:\"pr-lg-0\",attrs:{\"cols\":\"9\",\"sm\":\"6\",\"lg\":\"4\"}},[_c('h3',{staticClass:\"mb-0\"},[_vm._t(\"price-value\")],2),_c('span',{staticClass:\"price\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.last\"}}),_vm._t(\"info-icon\")],2)]),_c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"8\"}},[_c('h3',{staticClass:\"mb-0 mt-3 mt-sm-0\"},[_vm._t(\"price-change\")],2),_c('span',{staticClass:\"price\"},[_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changeAbsolute\"}}),_vm._v(\" / \"),_c('ad-underlying-data-value',{attrs:{\"fieldKey\":\"underlying.changePercentage\"}})],1)])],1),_c('b-row',[_c('b-col',{staticClass:\"mt-3 mb-6 mb-sm-3\",attrs:{\"cols\":\"12\"}},[_vm._t(\"price-indication\",null,{\"underlyingModel\":_vm.underlying})],2)],1)],1)],1):_vm._e(),_c('b-row',[_c('b-col',[_c('hr',{staticClass:\"mb-6 mt-lg-0 mt-0 d-none d-sm-block\"}),_c('b-row',[(_vm.settingsProperty?.isPriceDataEnabled)?_c('b-col',{staticClass:\"pr-xl-9\",attrs:{\"xl\":\"8\"}},[_vm._t(\"underlying-chart\")],2):_vm._e(),_c('b-col',{attrs:{\"xl\":\"4\"}},[_vm._t(\"underlying-data-table\")],2)],1)],1)],1),_c('b-row',[_c('b-col',[_c('hr',{staticClass:\"mb-6 mt-lg-7 d-none d-sm-block border-secondary\"}),_c('ad-product-types-count',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._t(\"ptc-header\")]},proxy:true},{key:\"table-header-name\",fn:function(){return [_vm._t(\"ptc-table-header-name\")]},proxy:true},{key:\"table-header-count\",fn:function(){return [_vm._t(\"ptc-table-header-count\")]},proxy:true}],null,true)})],1)],1),_c('b-row',[_c('b-col',[_vm._t(\"teaser\")],2)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ad-error :http-status-code=\"statusCode\">\n <ad-underlying-data-property :underlying=\"underlying\">\n <b-container fluid class=\"content-container mb-7 mb-md-8 mt-6 mt-md-7 mt-xl-8 px-md-4 underlying-detail\">\n <b-row>\n <b-col cols=\"12\" lg=\"11\" order=\"2\">\n <ad-underlying-detail-page-header :underlyingModel=\"underlying\" />\n </b-col>\n <b-col\n v-if=\"settingsProperty?.isWatchlistButtonEnabled\"\n cols=\"12\"\n lg=\"1\"\n order=\"1\"\n order-lg=\"3\"\n class=\"text-right pt-lg-3 pb-3 pb-lg-0\"\n >\n <ad-underlying-watchlist-toggle />\n </b-col>\n </b-row>\n <b-row v-if=\"settingsProperty?.isPriceDataEnabled\">\n <b-col class=\"b-skeleton-m\">\n <hr class=\"mb-3 mt-3\" />\n <b-row>\n <b-col cols=\"9\" sm=\"6\" lg=\"4\" class=\"pr-lg-0\">\n <h3 class=\"mb-0\"><slot name=\"price-value\"></slot></h3>\n <span class=\"price\">\n <ad-underlying-data-value fieldKey=\"underlying.last\"></ad-underlying-data-value>\n <slot name=\"info-icon\"></slot>\n </span>\n </b-col>\n <b-col cols=\"12\" sm=\"6\" lg=\"8\">\n <h3 class=\"mb-0 mt-3 mt-sm-0\"><slot name=\"price-change\"></slot></h3>\n <span class=\"price\">\n <ad-underlying-data-value fieldKey=\"underlying.changeAbsolute\"></ad-underlying-data-value>\n /\n <ad-underlying-data-value fieldKey=\"underlying.changePercentage\"> </ad-underlying-data-value\n ></span>\n </b-col>\n </b-row>\n <b-row>\n <b-col cols=\"12\" class=\"mt-3 mb-6 mb-sm-3\">\n <slot name=\"price-indication\" v-bind:underlyingModel=\"underlying\"></slot>\n </b-col>\n </b-row>\n </b-col>\n </b-row>\n <b-row>\n <b-col>\n <hr class=\"mb-6 mt-lg-0 mt-0 d-none d-sm-block\" />\n <b-row>\n <b-col v-if=\"settingsProperty?.isPriceDataEnabled\" xl=\"8\" class=\"pr-xl-9\">\n <slot name=\"underlying-chart\"></slot>\n </b-col>\n <b-col xl=\"4\">\n <slot name=\"underlying-data-table\"></slot>\n </b-col>\n </b-row>\n </b-col>\n </b-row>\n <b-row>\n <b-col>\n <hr class=\"mb-6 mt-lg-7 d-none d-sm-block border-secondary\" />\n <ad-product-types-count>\n <template #header>\n <slot name=\"ptc-header\"></slot>\n </template>\n <template #table-header-name>\n <slot name=\"ptc-table-header-name\"></slot>\n </template>\n <template #table-header-count>\n <slot name=\"ptc-table-header-count\"></slot>\n </template>\n </ad-product-types-count>\n </b-col>\n </b-row>\n <b-row>\n <b-col>\n <slot name=\"teaser\"></slot>\n </b-col>\n </b-row>\n </b-container>\n </ad-underlying-data-property>\n </ad-error>\n</template>\n<script lang=\"ts\">\nimport { UnderlyingModel } from '@/src/types/the-q-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport AdUnderlyingDetailPageHeader from '@components/organisms/pages/ad-underlying-detail-page/ad-underlying-detail-page-header.vue';\nimport AdProductTypesCount from '@components/organisms/pages/ad-underlying-detail-page/ad-product-types-count.vue';\nimport { UnderlyingDetailPageSetting } from '@/src/types/episerver-api';\nimport { isAxiosError } from '@/src/types/type-guards';\nimport { HttpStatusCodes } from '@/src/types/enumerations';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n components: {\n AdUnderlyingDetailPageHeader,\n AdProductTypesCount,\n },\n})\nexport default class AdUnderlyingDetailPage extends Vue {\n @Prop({ required: true }) isin!: string | null;\n @Prop({ default: false }) editMode!: boolean;\n\n @Inject()\n settingsProperty?: UnderlyingDetailPageSetting;\n\n @Getter('underlying', { namespace: 'underlying' })\n underlying!: UnderlyingModel | null;\n\n @Action('loadUnderlyingAsync', { namespace: 'underlying' })\n loadUnderlyingAsync!: (isin: string) => Promise<void>;\n\n @Action('loadFirstUnderlyingAsync', { namespace: 'underlying' })\n loadFirstUnderlyingAsync!: () => Promise<void>;\n\n statusCode: number | HttpStatusCodes = 200;\n\n async created(): Promise<void> {\n try {\n if (this.editMode) {\n await this.loadFirstUnderlyingAsync();\n } else if (this.isin != null) {\n await this.loadUnderlyingAsync(this.isin);\n }\n } catch (error: unknown) {\n this.$log.debug('Error:', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.no-inner-space p {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n.underlying-detail {\n hr {\n margin-right: -$grid-gutter-spacer;\n margin-left: -$grid-gutter-spacer;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1a1a6140\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1a1a6140&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('b-container',{staticClass:\"content-container mt-6 mt-md-7 mt-xl-8 mb-6\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"mb-5\"},[_c('h1',{staticClass:\"d-inline\"},[_vm._t(\"headline\"),_c('span',{staticClass:\"icon-size align-text-top\"},[_vm._t(\"info-icon\")],2)],2)]),(_vm.cookiesAccepted && _vm.$slots['description'])?_c('div',{staticClass:\"position-relative mb-6\"},[_c('p',{staticClass:\"fs-18 w-75\"},[_vm._t(\"description\")],2),(_vm.settingsProperty.realtimeButtonUrl)?_c('a',{staticClass:\"btn btn-secondary btn-realtime w-sm-100\",attrs:{\"href\":_vm.settingsProperty.realtimeButtonUrl}},[_vm._t(\"realtime-button-text\")],2):_vm._e()]):(!_vm.cookiesAccepted)?_c('div',[_vm._t(\"missing-cookie\",function(){return [_vm._v(\"Please accept cookies\")]},{\"viewMode\":_vm.missingCookieBlockViewMode})],2):_vm._e()]),_c('ad-error',{attrs:{\"http-status-code\":_vm.statusCode}},[(_vm.cookiesAccepted)?[_c('b-container',{staticClass:\"content-container my-0\",attrs:{\"fluid\":\"\"}},[_c('h2',[_vm._t(\"product-headline-text\")],2),(!_vm.hasProducts)?_c('div',{staticClass:\"mb-7\"},[_c('p',{staticClass:\"fs-18 w-75\"},[_vm._t(\"empty-product-text\")],2),(_vm.settingsProperty.productsButtonUrl)?_c('a',{staticClass:\"btn btn-secondary w-sm-100\",attrs:{\"href\":_vm.settingsProperty.productsButtonUrl}},[_vm._t(\"products-button-text\")],2):_vm._e()]):_vm._e()]),(_vm.hasProducts)?_c('b-container',{staticClass:\"content-container my-0\",attrs:{\"fluid\":\"\"}},[_c('b-row',{staticClass:\"mb-2\"},[_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"id\":\"product-type-filter-dropdownlist-label\",\"label-for\":\"product-type-filter-dropdownlist\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"product-type-filter-label\",function(){return [_vm._v(\"Choose Product Type\")]})]},proxy:true}],null,true)},[_c('ad-product-type-list',{attrs:{\"form-element-state-id\":\"product-type-filter-dropdownlist-label\",\"id\":\"product-type-filter-dropdownlist\",\"availableItems\":_vm.availableProductTypes,\"disabled\":_vm.loading},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-filter-label\",function(){return [_vm._v(\"All\")]})]},proxy:true}],null,true),model:{value:(_vm.productTypeFilter),callback:function ($$v) {_vm.productTypeFilter=$$v},expression:\"productTypeFilter\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"lg\":\"4\"}},[_c('b-form-group',{staticClass:\"focus-white\",attrs:{\"label-for\":\"underlying-filter-dropdownlist\",\"id\":\"underlying-filter-dropdownlist-label\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"underlying-filter-label\",function(){return [_vm._v(\"Choose Underlying\")]})]},proxy:true}],null,true)},[_c('ad-underlying-list',{attrs:{\"form-element-state-id\":\"underlying-filter-dropdownlist-label\",\"id\":\"underlying-filter-dropdownlist\",\"availableItems\":_vm.availableProductUnderlyings,\"disabled\":_vm.loading},scopedSlots:_vm._u([{key:\"all-items-label\",fn:function(){return [_vm._t(\"all-items-filter-label\",function(){return [_vm._v(\"All\")]})]},proxy:true}],null,true),model:{value:(_vm.productUnderlyingFilter),callback:function ($$v) {_vm.productUnderlyingFilter=$$v},expression:\"productUnderlyingFilter\"}})],1)],1)],1)],1):_vm._e(),_c('b-container',{staticClass:\"mt-0 mb-7\",attrs:{\"fluid\":\"\"}},[(_vm.hasProducts || _vm.loading)?_c('ad-instrument-table',{directives:[{name:\"sortable-table\",rawName:\"v-sortable-table\",value:(_vm.sortProducts),expression:\"sortProducts\"}],key:_vm.sortProductKey,attrs:{\"settings\":_vm.productTableSettings,\"instruments\":_vm.filteredProducts,\"loading\":_vm.loading,\"show-empty\":\"\"},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [_vm._t(\"empty-filter-product-text\")]},proxy:true},{key:\"row-details\",fn:function({ data }){return [_c('ad-product-data-property',{attrs:{\"product\":data.item.instrument}},[_c('div',{staticClass:\"wrap\"},[_vm._t(\"product-detail-page-teaser\",function(){return [_vm._v(_vm._s(data.item.instrument))]},{\"data\":data})],2)])]}},{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-product-data-value',{attrs:{\"isLinkToDetailPage\":setting.isLinkToDetailPage,\"product-item\":instrument,\"field-key\":setting.key}})]}},{key:\"row-custom-instrument\",fn:function({ instrument }){return [_c('span',{staticClass:\"pr-2\",attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.removeProduct(instrument.securityCode)}}},[_c('ad-icon-delete',{attrs:{\"iconName\":\"\"}})],1)]}}],null,true)}):_vm._e()],1),_c('b-container',{staticClass:\"content-container my-0\",attrs:{\"fluid\":\"\"}},[_c('h2',[_vm._t(\"underlying-headline-text\")],2),(!_vm.hasUnderlyings)?_c('div',{staticClass:\"mb-7\"},[_c('p',{staticClass:\"fs-18 w-75\"},[_vm._t(\"empty-underlying-text\")],2),(_vm.settingsProperty.underlyingButtonUrl)?_c('a',{staticClass:\"btn btn-secondary w-sm-100\",attrs:{\"href\":_vm.settingsProperty.underlyingButtonUrl}},[_vm._t(\"underlyings-button-text\")],2):_vm._e()]):_vm._e()]),_c('b-container',{staticClass:\"mb-7 mb-md-8\",attrs:{\"fluid\":\"\"}},[(_vm.hasUnderlyings || _vm.loading)?_c('ad-instrument-table',{directives:[{name:\"sortable-table\",rawName:\"v-sortable-table\",value:(_vm.sortUnderlyings),expression:\"sortUnderlyings\"}],key:_vm.sortUnderlyingKey,attrs:{\"settings\":_vm.underlyingTableSettings,\"instruments\":_vm.underlyings,\"selectable\":\"\",\"select-mode\":\"single\",\"selected-variant\":\"secondary\",\"loading\":_vm.loading},on:{\"row-clicked\":_vm.selectUnderlying},scopedSlots:_vm._u([{key:\"row-instrument\",fn:function({ setting, instrument }){return [_c('ad-underlying-data-value',{attrs:{\"isLinkToDetailPage\":setting.isLinkToDetailPage,\"underlying-item\":instrument,\"field-key\":setting.key}})]}},{key:\"row-custom-instrument\",fn:function({ instrument }){return [_c('span',{staticClass:\"mr-3\"},[_c('ad-icon-chart-line',{staticClass:\"bg-light-blue-grey rounded\",attrs:{\"height\":_vm.selectIconSize,\"width\":_vm.selectIconSize,\"iconName\":\"\"}})],1),_c('span',{attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.removeUnderlying(instrument.isin)}}},[_c('ad-icon-delete',{attrs:{\"iconName\":\"\"}})],1)]}}],null,false,1571927675)}):_vm._e()],1)]:_vm._e(),(_vm.selectedUnderlyingIsin && !_vm.settingsProperty.isRealtimeDisabled)?_c('div',{staticClass:\"pb-9\"},[_vm._t(\"realtime-block\",null,{\"selectedUnderlying\":_vm.selectedUnderlyingIsin})],2):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <b-container fluid class=\"content-container mt-6 mt-md-7 mt-xl-8 mb-6\">\n <div class=\"mb-5\">\n <h1 class=\"d-inline\"\n ><slot name=\"headline\"></slot><span class=\"icon-size align-text-top\"><slot name=\"info-icon\"></slot></span\n ></h1>\n </div>\n <div class=\"position-relative mb-6\" v-if=\"cookiesAccepted && $slots['description']\">\n <p class=\"fs-18 w-75\">\n <slot name=\"description\"></slot>\n </p>\n <a\n v-if=\"settingsProperty.realtimeButtonUrl\"\n :href=\"settingsProperty.realtimeButtonUrl\"\n class=\"btn btn-secondary btn-realtime w-sm-100\"\n >\n <slot name=\"realtime-button-text\"></slot>\n </a>\n </div>\n <div v-else-if=\"!cookiesAccepted\">\n <slot name=\"missing-cookie\" :view-mode=\"missingCookieBlockViewMode\">Please accept cookies</slot>\n </div>\n </b-container>\n <ad-error :http-status-code=\"statusCode\">\n <template v-if=\"cookiesAccepted\">\n <b-container fluid class=\"content-container my-0\">\n <h2><slot name=\"product-headline-text\"></slot></h2>\n <div v-if=\"!hasProducts\" class=\"mb-7\">\n <p class=\"fs-18 w-75\"><slot name=\"empty-product-text\"></slot></p>\n <a\n v-if=\"settingsProperty.productsButtonUrl\"\n :href=\"settingsProperty.productsButtonUrl\"\n class=\"btn btn-secondary w-sm-100\"\n >\n <slot name=\"products-button-text\"></slot>\n </a>\n </div>\n </b-container>\n\n <b-container v-if=\"hasProducts\" fluid class=\"content-container my-0\">\n <b-row class=\"mb-2\">\n <b-col cols=\"12\" lg=\"4\">\n <b-form-group\n class=\"focus-white\"\n id=\"product-type-filter-dropdownlist-label\"\n label-for=\"product-type-filter-dropdownlist\"\n >\n <template #label><slot name=\"product-type-filter-label\">Choose Product Type</slot></template>\n <ad-product-type-list\n form-element-state-id=\"product-type-filter-dropdownlist-label\"\n id=\"product-type-filter-dropdownlist\"\n :availableItems=\"availableProductTypes\"\n v-model=\"productTypeFilter\"\n :disabled=\"loading\"\n >\n <template #all-items-label><slot name=\"all-items-filter-label\">All</slot></template>\n </ad-product-type-list>\n </b-form-group>\n </b-col>\n <b-col cols=\"12\" lg=\"4\">\n <b-form-group\n class=\"focus-white\"\n label-for=\"underlying-filter-dropdownlist\"\n id=\"underlying-filter-dropdownlist-label\"\n >\n <template #label><slot name=\"underlying-filter-label\">Choose Underlying</slot></template>\n <ad-underlying-list\n form-element-state-id=\"underlying-filter-dropdownlist-label\"\n id=\"underlying-filter-dropdownlist\"\n :availableItems=\"availableProductUnderlyings\"\n v-model=\"productUnderlyingFilter\"\n :disabled=\"loading\"\n >\n <template #all-items-label><slot name=\"all-items-filter-label\">All</slot></template>\n </ad-underlying-list>\n </b-form-group>\n </b-col>\n </b-row>\n </b-container>\n <b-container fluid class=\"mt-0 mb-7\">\n <ad-instrument-table\n v-if=\"hasProducts || loading\"\n :settings=\"productTableSettings\"\n :instruments=\"filteredProducts\"\n :loading=\"loading\"\n show-empty\n v-sortable-table=\"sortProducts\"\n :key=\"sortProductKey\"\n >\n <template #empty>\n <slot name=\"empty-filter-product-text\"></slot>\n </template>\n <template #row-details=\"{ data }\">\n <ad-product-data-property :product=\"data.item.instrument\">\n <!-- wrap in div to prevent multiple root nodes returned from render function error -->\n <div class=\"wrap\">\n <slot name=\"product-detail-page-teaser\" :data=\"data\">{{ data.item.instrument }}</slot>\n </div>\n </ad-product-data-property>\n </template>\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-product-data-value\n :isLinkToDetailPage=\"setting.isLinkToDetailPage\"\n :product-item=\"instrument\"\n :field-key=\"setting.key\"\n />\n </template>\n <template #row-custom-instrument=\"{ instrument }\">\n <span role=\"button\" class=\"pr-2\" @click=\"removeProduct(instrument.securityCode)\">\n <ad-icon-delete iconName=\"\" />\n </span>\n </template>\n </ad-instrument-table>\n </b-container>\n <b-container fluid class=\"content-container my-0\">\n <h2><slot name=\"underlying-headline-text\"></slot></h2>\n <div v-if=\"!hasUnderlyings\" class=\"mb-7\">\n <p class=\"fs-18 w-75\">\n <slot name=\"empty-underlying-text\"></slot>\n </p>\n <a\n v-if=\"settingsProperty.underlyingButtonUrl\"\n :href=\"settingsProperty.underlyingButtonUrl\"\n class=\"btn btn-secondary w-sm-100\"\n >\n <slot name=\"underlyings-button-text\"></slot>\n </a>\n </div>\n </b-container>\n <b-container fluid class=\"mb-7 mb-md-8\">\n <ad-instrument-table\n v-if=\"hasUnderlyings || loading\"\n :settings=\"underlyingTableSettings\"\n :instruments=\"underlyings\"\n selectable\n select-mode=\"single\"\n selected-variant=\"secondary\"\n @row-clicked=\"selectUnderlying\"\n :loading=\"loading\"\n v-sortable-table=\"sortUnderlyings\"\n :key=\"sortUnderlyingKey\"\n >\n <template #row-instrument=\"{ setting, instrument }\">\n <ad-underlying-data-value\n :isLinkToDetailPage=\"setting.isLinkToDetailPage\"\n :underlying-item=\"instrument\"\n :field-key=\"setting.key\"\n />\n </template>\n <template #row-custom-instrument=\"{ instrument }\">\n <span class=\"mr-3\">\n <ad-icon-chart-line\n :height=\"selectIconSize\"\n :width=\"selectIconSize\"\n iconName=\"\"\n class=\"bg-light-blue-grey rounded\"\n />\n </span>\n <span role=\"button\" @click=\"removeUnderlying(instrument.isin)\">\n <ad-icon-delete iconName=\"\" />\n </span>\n </template>\n </ad-instrument-table>\n </b-container>\n </template>\n <div class=\"pb-9\" v-if=\"selectedUnderlyingIsin && !settingsProperty.isRealtimeDisabled\">\n <slot name=\"realtime-block\" :selectedUnderlying=\"selectedUnderlyingIsin\"></slot>\n </div>\n </ad-error>\n </div>\n</template>\n<script lang=\"ts\">\nimport { Action, Getter } from 'vuex-class';\nimport { Component, Inject, Vue } from 'vue-property-decorator';\nimport { WatchlistPageSettingPayload, TableColumnSettingBase } from '@/src/types/episerver-api';\nimport { UnderlyingModel, ProductModel } from '@/src/types/the-q-api';\nimport { InstrumentTableSettingData, WatchedProductModel } from '@/src/types/vue-api';\nimport { TextAlign, HttpStatusCodes, MissingCookieViewMode } from '@/src/types/enumerations';\nimport CookieManager from '@/src/utils/cookie';\nimport { isAxiosError } from '@/src/types/type-guards';\n\n@Component\nexport default class AdWatchlistPage extends Vue {\n @Inject() settingsProperty!: WatchlistPageSettingPayload;\n\n @Getter('underlyings', { namespace: 'watchlist' })\n underlyings!: Array<UnderlyingModel> | null;\n\n @Getter('products', { namespace: 'watchlist' })\n products!: Array<WatchedProductModel> | null;\n\n @Action('fetchDetailsAsync', { namespace: 'watchlist' })\n fetchDetailsAsync!: () => Promise<void>;\n\n @Action('removeUnderlying', { namespace: 'watchlist' })\n removeWatchedUnderlying!: (isin: string) => Promise<void>;\n\n @Action('removeProduct', { namespace: 'watchlist' })\n removeWatchedProduct!: (code: string) => Promise<void>;\n\n @Action('updateUnderlyingSorting', { namespace: 'watchlist' })\n updateUnderlyingSorting!: ({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => void;\n\n @Action('updateProductSorting', { namespace: 'watchlist' })\n updateProductSorting!: ({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => void;\n\n private missingCookieBlockViewMode = MissingCookieViewMode.Text;\n private selectIconSize = '1.8em';\n\n private productTypeFilter = null;\n private productUnderlyingFilter = null;\n private productTableSettings!: InstrumentTableSettingData;\n\n private selectedUnderlyingIsin: string | null = null;\n private cookieManager!: CookieManager;\n private underlyingTableSettings!: InstrumentTableSettingData;\n private loading = false;\n private statusCode = HttpStatusCodes.OK;\n private sortProductKey = 0;\n private sortUnderlyingKey = 0;\n\n async created(): Promise<void> {\n this.cookieManager = new CookieManager(this.$cookies);\n this.mapTableColumns();\n await this.loadWatchlistWithErrorHandling();\n if (Array.isArray(this.underlyings) && this.underlyings.length > 0) {\n this.selectedUnderlyingIsin = this.underlyings[0].isin;\n }\n }\n\n private get cookiesAccepted(): boolean {\n return this.cookieManager?.comfort || false;\n }\n\n private get hasProducts(): boolean {\n return this.loading || (Array.isArray(this.products) && this.products?.length !== 0);\n }\n\n private get hasUnderlyings(): boolean {\n return Array.isArray(this.underlyings) && this.underlyings.length > 0;\n }\n\n get availableProductTypes() {\n return this.products?.map((p) => p.productType) || null;\n }\n\n get availableProductUnderlyings() {\n return (\n this.products?.reduce((dict, product) => {\n const underlyings = product.underlyings?.reduce((d, u) => ({ [u.isin]: u.isin, ...d }), {}) || {};\n return { ...underlyings, ...dict };\n }, {}) || {}\n );\n }\n\n get filteredProducts(): Array<ProductModel> {\n if (!Array.isArray(this.products)) return [];\n let products = Array.from(this.products);\n if (this.productUnderlyingFilter !== null) {\n products = products.filter(\n (p) => p.underlyings?.filter((u) => u.isin == this.productUnderlyingFilter).length !== 0 || false\n );\n }\n if (this.productTypeFilter !== null) {\n products = products.filter((p) => p.productType === this.productTypeFilter);\n }\n return products;\n }\n\n async loadWatchlistWithErrorHandling() {\n this.loading = true;\n\n try {\n await this.fetchDetailsAsync();\n } catch (error: unknown) {\n this.$log.error('Loading Error', error);\n\n if (isAxiosError(error)) {\n this.statusCode = error?.response?.status ?? HttpStatusCodes.UnknownError;\n }\n }\n\n this.loading = false;\n }\n\n private mapTableColumns() {\n const actionsColumn = {\n headline: '',\n textAlign: TextAlign.Center,\n isEllipsis: false,\n columnWidth: null,\n } as TableColumnSettingBase;\n const underlyingTableColumns = this.settingsProperty.underlyingTableColumns;\n this.underlyingTableSettings = {\n desktopTableColumnsSetting: [...underlyingTableColumns.desktopTableColumnsSetting, actionsColumn],\n tabletTableColumnsSetting: [...underlyingTableColumns.tabletTableColumnsSetting, actionsColumn],\n mobileTableColumnsSetting: [...underlyingTableColumns.mobileTableColumnsSetting, actionsColumn],\n tableColumnSorting: [],\n hideDetailColumn: underlyingTableColumns.hideDetailColumn,\n } as InstrumentTableSettingData;\n const productTableColumns = this.settingsProperty.productTableColumns;\n this.productTableSettings = {\n desktopTableColumnsSetting: [...productTableColumns.desktopTableColumnsSetting, actionsColumn],\n tabletTableColumnsSetting: [...productTableColumns.tabletTableColumnsSetting, actionsColumn],\n mobileTableColumnsSetting: [...productTableColumns.mobileTableColumnsSetting, actionsColumn],\n tableColumnSorting: [],\n hideDetailColumn: productTableColumns.hideDetailColumn,\n } as InstrumentTableSettingData;\n }\n\n selectUnderlying(item: UnderlyingModel): void {\n this.selectedUnderlyingIsin = item.isin;\n }\n\n removeUnderlying(isin: string) {\n this.removeWatchedUnderlying(isin);\n this.fetchDetailsAsync();\n }\n\n removeProduct(code: string) {\n this.removeWatchedProduct(code);\n this.fetchDetailsAsync();\n }\n\n private sortProducts() {\n const onEnd = (oldIndex, newIndex) => {\n this.updateProductSorting({ oldIndex, newIndex });\n this.sortProductKey++;\n };\n return {\n onEnd: (evt) => onEnd(evt.oldIndex, evt.newIndex),\n };\n }\n\n private sortUnderlyings() {\n const onEnd = (oldIndex, newIndex) => {\n this.updateUnderlyingSorting({ oldIndex, newIndex });\n this.sortUnderlyingKey++;\n };\n return {\n onEnd: (evt) => onEnd(evt.oldIndex, evt.newIndex),\n };\n }\n}\n</script>\n<style lang=\"scss\">\n@include media-breakpoint-up('lg') {\n .btn-realtime {\n position: absolute;\n top: 0;\n right: 0;\n }\n}\n</style>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3030c2fa\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3030c2fa&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ce-blog-article-overview',{attrs:{\"articles\":_vm.articles},scopedSlots:_vm._u([{key:\"read-more\",fn:function(){return [_vm._t(\"read-more\",function(){return [_vm._v(\"Read more\")]})]},proxy:true},{key:\"heading\",fn:function(){return [_vm._t(\"heading\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <ce-blog-article-overview :articles=\"articles\">\n <template #read-more>\n <slot name=\"read-more\">Read more</slot>\n </template>\n <template #heading>\n <slot name=\"heading\"></slot>\n </template>\n </ce-blog-article-overview>\n</template>\n<script lang=\"ts\">\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { BlogPageSettings } from '@/src/types/episerver-api';\nimport { BlogArticleOverviewBlogArticle, ImageData } from '@/src/types/ce-component-types';\nimport { getImageResizerUrl } from '@/src/utils/url-helper';\n\n@Component({})\nexport default class AdArticleOverviewTeaserContainer extends Vue {\n @Prop({ required: true }) items!: Array<BlogPageSettings>;\n\n isLoading = false;\n canLoadMore = false;\n additionalContent = '';\n contentItemsCount = 0;\n\n get articles(): BlogArticleOverviewBlogArticle[] {\n return this.items.map((i) => {\n return {\n title: i.headline,\n teaser: i.previewText,\n date: i.publishedDate,\n image: {\n src: getImageResizerUrl(i.imageUrlWithSizeParameter, 500, 500),\n alt: '',\n sources: [\n {\n Media: '(min-width:650px)',\n SrcSet: getImageResizerUrl(i.imageUrlWithSizeParameter, 1920, 1080),\n },\n {\n Media: '(min-width:465px)',\n SrcSet: getImageResizerUrl(i.imageUrlWithSizeParameter, 316, 185),\n },\n ],\n } as ImageData,\n author: i.author,\n likeId: i.contentId,\n link: i.url,\n } as BlogArticleOverviewBlogArticle;\n });\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=621dc664\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.productType == _vm.settingsProperty.productType)?_c('b-form',{attrs:{\"id\":\"best-match-search-teaser\",\"novalidate\":\"\"}},[_c('ad-best-match-search-filter-container',{attrs:{\"best-match-metadata-result-model\":_vm.bestMatchMetadataResultModelItem,\"teaser\":\"\"},on:{\"best-match-button-click\":_vm.onBestMatchValueClick,\"product-type-changed\":_vm.productFilterChanged},scopedSlots:_vm._u([{key:\"filter-product-type-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-product-type-dropdown-label-text\",function(){return [_vm._v(\"Placeholder product type label\")]})]},proxy:true},{key:\"filter-subtype-label-both\",fn:function(){return [_vm._t(\"filter-subtype-label-both\")]},proxy:true},{key:\"filter-underlying-dropdown-label-text\",fn:function(){return [_vm._t(\"filter-underlying-dropdown-label-text\",function(){return [_vm._v(\"Dropdown label\")]})]},proxy:true},{key:\"filter-show-best-match-button-text\",fn:function(){return [_vm._t(\"filter-show-best-match-button-text\",function(){return [_vm._v(\"[filter show best match button text placeholder]\")]})]},proxy:true},{key:\"maturity-date-filter\",fn:function({ onFilterValueChanged, availableValues }){return [_vm._t(\"maturity-date-filter\",null,{\"availableValues\":availableValues,\"currentSearchFilter\":_vm.filter,\"onFilterValueChanged\":onFilterValueChanged})]}},{key:\"additional-numeric-range-filter-elements\",fn:function({\n onFilterValueChanged,\n isNumericFilterVisible,\n availableValues,\n isLoading,\n }){return [_vm._t(\"additional-numeric-range-filter-elements\",null,{\"availableValues\":availableValues,\"currentSearchFilter\":_vm.filter,\"onFilterValueChanged\":onFilterValueChanged,\"required\":true,\"isVisibleFunc\":isNumericFilterVisible,\"isLoading\":isLoading})]}},{key:\"go-to-full-seach-button-text\",fn:function(){return [_vm._t(\"go-to-full-seach-button-text\",function(){return [_vm._v(\"[go to full seach button text]\")]})]},proxy:true}],null,true),model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <b-form v-if=\"productType == settingsProperty.productType\" id=\"best-match-search-teaser\" novalidate>\n <ad-best-match-search-filter-container\n v-model=\"filter\"\n :best-match-metadata-result-model=\"bestMatchMetadataResultModelItem\"\n @best-match-button-click=\"onBestMatchValueClick\"\n teaser\n @product-type-changed=\"productFilterChanged\"\n >\n <template #filter-product-type-dropdown-label-text>\n <slot name=\"filter-product-type-dropdown-label-text\">Placeholder product type label</slot>\n </template>\n\n <template #filter-subtype-label-both>\n <slot name=\"filter-subtype-label-both\"></slot>\n </template>\n\n <template #filter-underlying-dropdown-label-text>\n <slot name=\"filter-underlying-dropdown-label-text\">Dropdown label</slot>\n </template>\n\n <template #filter-show-best-match-button-text>\n <slot name=\"filter-show-best-match-button-text\">[filter show best match button text placeholder]</slot>\n </template>\n\n <template #maturity-date-filter=\"{ onFilterValueChanged, availableValues }\">\n <slot\n name=\"maturity-date-filter\"\n :availableValues=\"availableValues\"\n :currentSearchFilter=\"filter\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n ></slot>\n </template>\n\n <template\n #additional-numeric-range-filter-elements=\"{\n onFilterValueChanged,\n isNumericFilterVisible,\n availableValues,\n isLoading,\n }\"\n >\n <slot\n name=\"additional-numeric-range-filter-elements\"\n :availableValues=\"availableValues\"\n :currentSearchFilter=\"filter\"\n :onFilterValueChanged=\"onFilterValueChanged\"\n :required=\"true\"\n :isVisibleFunc=\"isNumericFilterVisible\"\n :isLoading=\"isLoading\"\n ></slot>\n </template>\n\n <template #go-to-full-seach-button-text>\n <slot name=\"go-to-full-seach-button-text\">[go to full seach button text]</slot>\n </template>\n </ad-best-match-search-filter-container>\n </b-form>\n</template>\n<script lang=\"ts\">\nimport { BestMatchSearchRequestModel, BestMatchMetadataResultModel } from '@/src/types/the-q-api';\nimport { BestMatchSearchBlockSetting, PageRoutes } from '@/src/types/episerver-api';\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport { BestMatchSearchRequestFilter } from '@/src/types/vue-api';\nimport { ProductTypeBo } from '@/src/types/enumerations';\nimport { Action, Getter } from 'vuex-class';\nimport { tryCreateBestMatchSearchLink } from '@/src/utils/url-helper';\n\n@Component({})\nexport default class AdBestMatchSearchTeaser extends Vue {\n @Inject() settingsProperty!: BestMatchSearchBlockSetting;\n @Inject() pageRoutes!: PageRoutes;\n @Prop({ required: true }) pageLink!: string;\n @Prop({ required: true }) productType!: ProductTypeBo;\n\n @Getter('bestMatchMetadataResultModel', { namespace: 'bestMatch' })\n bestMatchMetadataResultModel!: (filter: BestMatchSearchRequestModel) => BestMatchMetadataResultModel | null;\n\n @Action('loadBestMatchMetadataResultModelAsync', { namespace: 'bestMatch' })\n loadBestMatchMetadataResultModelAsync!: (filter: BestMatchSearchRequestModel) => Promise<void>;\n\n private filter = new BestMatchSearchRequestFilter();\n\n get bestMatchMetadataResultModelItem() {\n return this.bestMatchMetadataResultModel(this.filter);\n }\n\n onBestMatchValueClick(): void {\n window.location.href = tryCreateBestMatchSearchLink(this.pageLink, this.filter);\n }\n\n async created(): Promise<void> {\n this.setFilterDefaults();\n await this.loadBestMatchMetadataResultModelAsync(this.filter);\n }\n\n productFilterChanged(value: ProductTypeBo): void {\n this.$emit('update-product-type', value);\n }\n\n private async setFilterDefaults(): Promise<void> {\n this.filter.productType = this.settingsProperty.productType;\n this.filter.filterProperty = this.settingsProperty.numericFilters[0].filterProperty;\n this.filter.numberOfItems = this.settingsProperty.loadMaxItems;\n\n //check if item is available and if not request had loaded all items,\n // so therefore reset default underlying, because it is not in the request\n if (this.settingsProperty.underlyingDefaultIsin) {\n this.filter.underlyingIsin = this.settingsProperty.underlyingDefaultIsin;\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d3d91a22\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import * as Highcharts from 'highcharts';\nimport { Vue, Inject, Watch, Prop } from 'vue-property-decorator';\nimport { utcToday, utcDate, utcTimestamp, millisecondsInDay, secondsInDay } from '@src/utils/date-helper';\nimport { ChartPeriod, ChartSettings, ProductChartSettings } from '@/src/types/episerver-api';\nimport { ChartPoint } from '@/src/types/the-q-api';\nimport { ChartSeries, Controller, DefaultFormat, InstrumentOriginTimeZone } from '@src/types/enumerations';\nimport { getTheQApiUrl } from '@src/utils/url-helper';\nimport httpClient from '@/src/utils/http-service';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\nimport { ChartsApiFilterItem, DataSeries, LabelPosition, ChartConfiguration } from '@/src/types/vue-api';\n\nexport abstract class AdChartBase extends Vue {\n abstract priceFormat(axis: LabelPosition): string;\n abstract currencyCode(axis: LabelPosition): string;\n protected abstract loadChartData(): void;\n\n @Prop({ default: false }) teaserLayout!: boolean;\n @Prop({ default: false }) singlePeriod!: boolean;\n @Prop({ default: false }) hideSwitches!: boolean;\n @Prop({ default: true }) allowNavigator!: boolean;\n @Prop() maxHeightLg: number | undefined;\n @Prop() maxHeightMd: number | undefined;\n @Prop() maxHeight: number | undefined;\n @Inject() settingsProperty!: ChartSettings | ProductChartSettings;\n @Inject({ default: new ChartConfiguration() }) chartConfigurationProperty!: ChartConfiguration;\n protected selectedPeriodKey: string | null = null;\n protected relative = false;\n protected realtime = false;\n protected initiated = false;\n protected initialValueForRelativeData: { [key: string]: number } = {};\n\n created() {\n this.selectedPeriodKey = this.settingsProperty?.periods.length > 0 ? this.settingsProperty.periods[0].key : null;\n this.relative = this.settingsProperty.relativeButtonState;\n this.realtime = this.settingsProperty.realtimeButtonState;\n }\n\n protected get selectedPeriod(): ChartPeriod | undefined {\n return this.settingsProperty.periods.find((p) => p.key == this.selectedPeriodKey);\n }\n protected get isUnderlying52WeeksHighLowHidden() {\n return this.settingsProperty.isUnderlying52WeeksHighLowHidden;\n }\n get isIntraday() {\n return this.selectedPeriodKey === 'Intraday';\n }\n\n get showNavigator() {\n return (this.allowNavigator && this.selectedPeriod?.showNavigator) || false;\n }\n get showScrollbar() {\n return false;\n }\n get xAxisStep(): number | undefined {\n return this.selectedPeriod?.step || undefined;\n }\n\n protected get xAxisTickInterval(): number | null {\n return this.selectedPeriod?.axisTickInterval || null;\n }\n\n protected get xAxisMin(): number | undefined {\n if (this.selectedPeriod?.xAxisMinDate) {\n return utcTimestamp(Date.parse(this.selectedPeriod?.xAxisMinDate));\n } else if (this.settingsProperty.tradingTimeStart && this.isIntraday) {\n return utcToday() + this.settingsProperty.tradingTimeStart * 1000;\n } else {\n return undefined;\n }\n }\n protected get xAxisMax(): number | undefined {\n return this.settingsProperty.tradingTimeEnd ? utcToday() + this.settingsProperty.tradingTimeEnd * 1000 : undefined;\n }\n\n //cut periods with no data for more than a day\n protected get dayBreakThreshold(): number | undefined {\n return this.selectedPeriod?.pointInterval && this.selectedPeriod?.pointInterval < secondsInDay\n ? millisecondsInDay\n : undefined;\n }\n\n protected get tickOffset(): number | undefined {\n return !this.isIntraday && this.settingsProperty.tradingTimeStart\n ? this.settingsProperty.tradingTimeStart * 1000\n : undefined;\n }\n\n //creates a repeated break from trading end to trading start\n //if it is not intraday chart and resolution is less than a day\n protected get repeatedBreaks(): Highcharts.XAxisBreaksOptions[] {\n if (\n this.isIntraday ||\n !this.xAxisMin ||\n !this.settingsProperty.tradingTimeEnd ||\n !this.settingsProperty.tradingTimeStart\n ) {\n return [];\n } else {\n // from defines the trading time end (day before)\n // to defines the trading time start (today)\n // For more info view: https://api.highcharts.com/highstock/xAxis.breaks\n const from = new Date(Date.UTC(1971, 1, 1, 0, 0, 0)).getTime() + this.settingsProperty.tradingTimeEnd * 1000;\n const to = new Date(Date.UTC(1971, 1, 2, 0, 0, 0)).getTime() + this.settingsProperty.tradingTimeStart * 1000;\n return [\n {\n from: from,\n to: to,\n repeat: millisecondsInDay,\n },\n ];\n }\n }\n\n protected formatTooltipDate(chart: AdChartBase, value: number): string {\n const format = chart.selectedPeriod?.tooltipDateFormatFieldKey || DefaultFormat.DateTime;\n return formatField(utcDate(value), format);\n }\n\n protected formatTooltipValue(\n chart: AdChartBase,\n point: Highcharts.TooltipFormatterContextObject,\n axis: LabelPosition\n ): string {\n if (chart.relative) {\n return formatField(\n point.y ?? null,\n chart.settingsProperty.tooltipRelativeValueFormatFieldKey || DefaultFormat.Percent\n );\n } else {\n return formatField(\n { amount: point.y ?? null, currencyCode: chart.currencyCode(axis) || '' },\n chart.priceFormat(axis)\n );\n }\n }\n\n protected formatLabelDate(chart: AdChartBase, value: number): string {\n const format = chart.selectedPeriod?.xAxisLabelFormatFieldKey || DefaultFormat.Date;\n return formatField(utcDate(value), format);\n }\n\n protected formatLabelValue(chart: AdChartBase, value: number): string {\n if (chart.relative) {\n return formatField(value, chart.settingsProperty.yAxisRelativeLabelFormatFieldKey || DefaultFormat.Percent);\n } else {\n return formatField(value, chart.settingsProperty.yAxisLabelFormatFieldKey || DefaultFormat.Decimal);\n }\n }\n\n get chartHeight(): number {\n let height: number;\n if (this.$screen.lg) height = this.maxHeightLg || 460;\n else if (this.$screen.md) height = this.maxHeightMd || 300;\n else height = this.maxHeight || 245;\n return height;\n }\n\n chartMarginLeft = 0;\n chartMarginRight = 0;\n updateChartMargin(chart: AdChartBase, side: LabelPosition, value: number) {\n if (value != 0) {\n const avgDigitWidth = chart.$screen.sm && !chart.teaserLayout ? 11 : 9;\n value = value * avgDigitWidth + 10;\n }\n switch (side) {\n case LabelPosition.Left:\n chart.chartMarginLeft = value;\n break;\n case LabelPosition.Right:\n chart.chartMarginRight = value;\n break;\n }\n }\n\n get periods(): ChartPeriod[] {\n return this.isInSinglePeriodMode ? [this.settingsProperty.periods[0]] : this.settingsProperty.periods;\n }\n\n get isInSinglePeriodMode() {\n return (\n this.singlePeriod &&\n this.settingsProperty?.periods?.length > 0 &&\n !this.chartConfigurationProperty.forceDropDownForChartPeriods &&\n !this.chartConfigurationProperty.forceRadioButtonsForChartPeriods\n );\n }\n\n get chartPeriodsMarginStyle(): object | undefined {\n if (this.isInSinglePeriodMode)\n return { marginLeft: this.chartMarginLeft + 'px', marginRight: this.chartMarginRight + 'px' };\n }\n get chartLegendMarginStyle(): object | undefined {\n if (this.$screen.sm) return { marginLeft: this.chartMarginLeft + 'px' };\n else return { marginLeft: 24 + 'px' };\n }\n get chartButtonsMarginStyle(): object | undefined {\n if (this.$screen.sm) return { marginLeft: this.chartMarginLeft + 'px', marginRight: this.chartMarginRight + 'px' };\n }\n\n get chartLegendFont() {\n return !this.$screen.md && this.teaserLayout ? 'fs-12' : 'fs-14';\n }\n\n data: DataSeries[] = [];\n\n @Watch('selectedPeriodKey')\n @Watch('relative')\n protected updateData(): void {\n this.loadChartData();\n }\n\n protected async requestChartData(\n action: string,\n symbol: string | undefined,\n timezone: InstrumentOriginTimeZone,\n series: ChartSeries[] = []\n ): Promise<{ [key: string]: ChartPoint[] } | null> {\n if (!symbol || !this.selectedPeriod?.key) return null;\n try {\n const response = await httpClient.get<{ [key: string]: ChartPoint[] }>(getTheQApiUrl(Controller.Charts, action), {\n params: new ChartsApiFilterItem(\n this.selectedPeriod.key,\n series,\n symbol,\n timezone,\n this.selectedPeriod.pointInterval,\n this.settingsProperty.tradingTimeStart,\n this.settingsProperty.tradingTimeEnd\n ),\n });\n return response.data;\n } catch (ex) {\n this.$log.error(ex);\n return null;\n }\n }\n\n protected async requestInitialData(\n action: string,\n symbol: string | undefined,\n timezone: InstrumentOriginTimeZone,\n series: ChartSeries[] = []\n ): Promise<{ [key: string]: number }> {\n if (!symbol || !this.selectedPeriod?.key) {\n return {};\n }\n try {\n const response = await httpClient.get<{ [key: string]: number }>(getTheQApiUrl(Controller.Charts, action), {\n params: new ChartsApiFilterItem(\n this.selectedPeriod.key,\n series,\n symbol,\n timezone,\n this.selectedPeriod.pointInterval,\n this.settingsProperty.tradingTimeStart,\n this.settingsProperty.tradingTimeEnd\n ),\n });\n return response.data;\n } catch (ex) {\n this.$log.error(ex);\n return {};\n }\n }\n\n private trySetInitialValue(chartSerie: ChartSeries, value: number) {\n if (this.relative && !(chartSerie in this.initialValueForRelativeData) && value > 0) {\n this.initialValueForRelativeData[chartSerie] = value;\n }\n }\n\n protected getChartPushValue(chartSerie: ChartSeries, pushValue: number | null): number | null {\n if (!this.relative) {\n return pushValue;\n }\n if (pushValue === null) {\n return null;\n }\n\n this.trySetInitialValue(chartSerie, pushValue);\n\n return this.initialValueForRelativeData[chartSerie]\n ? pushValue / this.initialValueForRelativeData[chartSerie]\n : null;\n }\n}\n","import {\n ExcelExportField,\n ProductHistoryExcelExportFilter,\n ProductModel,\n RollingHistoryModel,\n StrikeHistoryModel,\n} from '@/src/types/the-q-api';\nimport { Inject, InjectReactive, Prop, Vue } from 'vue-property-decorator';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\nimport { ProductHistoryBlockSettings } from '@/src/types/episerver-api';\nimport { InstrumentDataFieldBase, ProductHistoryDataField } from '@/src/types/episerver-api-instrument';\nimport evaluateExpressionByKey, { getFormatDataField } from '@/src/utils/value-formatter/format-helper';\n\nexport default abstract class AdProductHistoryBase extends Vue {\n @InjectReactive() product!: ProductModel | null;\n @Inject() settingsProperty!: ProductHistoryBlockSettings;\n @Prop({ default: false }) showCollapsed!: boolean;\n\n abstract getData(): RollingHistoryModel[] | StrikeHistoryModel[] | null | undefined;\n abstract excelExport(): void;\n\n get headers(): string[] {\n return this.settingsProperty.columns.map((c) => c.header);\n }\n get rows(): string[][] | boolean {\n const data = this.getData();\n if (!data || data.length == 0) return false;\n\n const formattedValues: string[][] = [];\n for (const row of data) {\n const formattedRow: string[] = [];\n for (const column of this.settingsProperty.columns) {\n const expression = (getFormatDataField(column.fieldKey) as InstrumentDataFieldBase | ProductHistoryDataField)\n ?.valueExpression;\n if (expression === undefined) {\n formattedRow.push('');\n } else {\n const value = evaluateExpressionByKey(expression, row);\n const formattedValue = formatField(value, column.fieldKey);\n formattedRow.push(formattedValue);\n }\n }\n formattedValues.push(formattedRow);\n }\n return formattedValues;\n }\n\n protected buildExcelRequest(): ProductHistoryExcelExportFilter {\n return {\n isin: this.product?.isin,\n headerValues: this.evaluateExportHeaders(),\n tableFields: this.mapExportColumns(),\n } as ProductHistoryExcelExportFilter;\n }\n\n protected evaluateExportHeaders() {\n const headers: { [key: string]: string } = {};\n for (const h of this.settingsProperty.exportHeaders) {\n let value;\n if (h.value) value = h.value;\n else if (h.valueExpression) {\n const expression = (getFormatDataField(h.valueExpression) as InstrumentDataFieldBase | ProductHistoryDataField)\n ?.valueExpression;\n if (!expression) continue;\n value = evaluateExpressionByKey(expression, this.product);\n } else continue;\n headers[h.headline] = value;\n }\n return headers;\n }\n\n protected mapExportColumns(): ExcelExportField[] {\n return this.settingsProperty.columns.map((c) => {\n const expression = (getFormatDataField(c.fieldKey) as InstrumentDataFieldBase | ProductHistoryDataField)\n ?.valueExpression;\n return {\n header: c.header,\n valueExpression: expression,\n } as ExcelExportField;\n });\n }\n}\n","import Vue from 'vue';\nimport { BootstrapVue, BootstrapVueIcons } from 'bootstrap-vue';\nimport Clipboard from 'v-clipboard';\n\n// for style imports please see index.scss\n\nVue.use(BootstrapVue);\nVue.use(BootstrapVueIcons);\nVue.use(Clipboard);\n","import Vue from 'vue';\nimport vSelect from 'vue-select';\n\n// for style imports please see index.scss\n\nVue.component('v-select', vSelect);\n","import Vue from 'vue';\nimport VueCookies from 'vue-cookies';\n\nVue.use(VueCookies);\n","import Vue from 'vue';\nimport VueScreen from 'vue-screen';\n\nVue.use(VueScreen, 'bootstrap');\n","import Vue from 'vue';\nimport VueLogger from 'vuejs-logger';\nconst isProduction = process.env.NODE_ENV === 'production';\n\nconst options = {\n isEnabled: !isProduction,\n logLevel: 'debug',\n stringifyArguments: false,\n showLogLevel: true,\n showMethodName: true,\n separator: '|',\n showConsoleColors: true,\n};\n\nVue.use(VueLogger.default || VueLogger, options);\n","import Vue from 'vue';\nimport { formatField } from '@/src/utils/value-formatter/formatting-service';\n\nVue.filter('formatField', formatField);\n","import Vue from 'vue';\nimport store from '@/src/state/store';\n\nVue.filter('underlyingTranslation', (isin) => {\n return store.getters['underlying/underlyingTranslations'](isin);\n});\n","import Vue from 'vue';\n\n/**\n * Use this directive to make an element fade in on mount.\n *\n * Example:\n *\n * <div v-appear>\n * I appear when mounted.\n * </div>\n */\nVue.directive('appear', {\n inserted: (el: HTMLElement) => {\n el.classList.add(`show-animation-delay-0`);\n el.classList.add(`animation-triggered`);\n },\n});\n","import Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\n\n/**\n * Use this directive to mark elements that should fade in when they are scrolled into viewport.\n * Use a delay number to stagger appearance of elements.\n * Use this directive only on or below elements with the v-appear-trigger directive.\n *\n * Example:\n *\n * <div v-appear-trigger v-appear-delay=\"1\">\n * I appear when scrolled into view.\n * </div>\n *\n * or:\n *\n * <ul v-appear-trigger>\n * <li v-appear-delay=\"0\">First</li>\n * <li v-appear-delay=\"1\">Second</li>\n * <li v-appear-delay=\"2\">Third</li>\n * </ul>\n */\nVue.directive('appear-delay', {\n inserted: (el: HTMLElement, binding: DirectiveBinding) => {\n el.classList.add(`show-animation-delay-${binding.value}`);\n },\n});\n","const inViewportAttributeName = 'data-in-viewport';\nconst wasOnceInViewportAttributeName = 'data-was-once-in-viewport';\n\n/**\n * Describes an element and a handler function that should be called\n * whenever this element moves into the viewport.\n */\nexport type ElementViewportWatcher = {\n el: HTMLElement;\n firstAppearanceHandler?: () => void;\n appearanceHandler?: () => void;\n};\n\nlet elementsToCheck: ElementViewportWatcher[] = [];\n\nexport function isElementInViewport(el: HTMLElement): boolean {\n const viewportHeight = window.innerHeight;\n const clientRect = el.getBoundingClientRect();\n const displayThreshold = clientRect.height / 2;\n const inViewport = clientRect.bottom >= displayThreshold && clientRect.top <= viewportHeight - displayThreshold;\n return inViewport;\n}\n\nexport function checkForAllElementsIfAppearanceShouldTrigger(): void {\n elementsToCheck.forEach(({ el, firstAppearanceHandler, appearanceHandler }) => {\n const hasInViewportAttribute = Boolean(el.getAttribute(inViewportAttributeName));\n const hasWasOnceInViewportAttribute = Boolean(el.getAttribute(wasOnceInViewportAttributeName));\n\n const inViewport = isElementInViewport(el);\n\n if (inViewport && !hasWasOnceInViewportAttribute) {\n el.setAttribute(wasOnceInViewportAttributeName, 'true');\n firstAppearanceHandler?.();\n }\n\n if (inViewport && !hasInViewportAttribute) {\n el.setAttribute(inViewportAttributeName, 'true');\n appearanceHandler?.();\n }\n\n if (!inViewport) {\n el.removeAttribute(inViewportAttributeName);\n }\n });\n}\n\nexport function startCheckingAppearance(watcher: ElementViewportWatcher): void {\n elementsToCheck.push(watcher);\n\n if (elementsToCheck.length === 1) {\n document.addEventListener('scroll', checkForAllElementsIfAppearanceShouldTrigger);\n }\n}\n\nexport function stopCheckingAppearance(el: Element): void {\n elementsToCheck = elementsToCheck.filter((e: ElementViewportWatcher) => e.el !== el);\n if (elementsToCheck.length === 0) {\n document.removeEventListener('scroll', checkForAllElementsIfAppearanceShouldTrigger);\n }\n}\n","import Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\nimport {\n checkForAllElementsIfAppearanceShouldTrigger,\n isElementInViewport,\n startCheckingAppearance,\n stopCheckingAppearance,\n} from './helper/viewportChecker';\n\n/**\n * Use this directive to mark a container that contains appearing elements OR elements that appear themselves.\n *\n * Example:\n *\n * <div v-appear-trigger v-appear-delay=\"1\">\n * I appear when scrolled into view.\n * </div>\n *\n * or:\n *\n * <ul v-appear-trigger>\n * <li v-appear-delay=\"0\">First</li>\n * <li v-appear-delay=\"1\">Second</li>\n * <li v-appear-delay=\"2\">Third</li>\n * </ul>\n */\nVue.directive('appear-trigger', {\n inserted: (el: HTMLElement, binding: DirectiveBinding) => {\n if (isElementInViewport(el)) {\n // If element is already in viewport\n el.classList.add(`appear-without-animation`);\n return;\n }\n el.classList.add(`show-animation-delay-${binding.value}`);\n\n startCheckingAppearance({\n el,\n firstAppearanceHandler: () => el.classList.add('animation-triggered'),\n });\n\n checkForAllElementsIfAppearanceShouldTrigger();\n },\n\n unbind: (el: HTMLElement) => {\n stopCheckingAppearance(el);\n },\n});\n","import Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\n\nVue.directive('form-element-state', {\n // When the bound element is inserted into the DOM...\n inserted: function (el: HTMLElement, binding: DirectiveBinding) {\n const formElement = el as HTMLInputElement;\n const bindingElement = document.getElementById(binding.value);\n\n if (formElement.validity && bindingElement) {\n const validElement = () => {\n if (formElement.validity.valid) {\n bindingElement.classList.add('valid');\n bindingElement.classList.remove('error');\n } else {\n bindingElement.classList.add('error');\n bindingElement.classList.remove('valid');\n }\n };\n\n formElement.addEventListener('focus', function () {\n bindingElement.classList.add('focus');\n });\n\n formElement.addEventListener('blur', function () {\n bindingElement.classList.remove('focus');\n });\n\n el.addEventListener('change', function () {\n bindingElement.classList.add('dirty');\n validElement();\n });\n el.addEventListener('keyup', function () {\n validElement();\n });\n el.addEventListener('invalid', function (e) {\n validElement();\n e.preventDefault();\n });\n\n if (formElement.disabled) {\n bindingElement.classList.add('disabled');\n }\n\n const observer = new MutationObserver(function (mutations) {\n for (let i = 0, mutation; (mutation = mutations[i]); i++) {\n if (mutation.attributeName == 'disabled') {\n if (mutation.target.disabled) {\n bindingElement.classList.add('disabled');\n } else {\n bindingElement.classList.remove('disabled');\n }\n }\n }\n });\n\n // Observe attributes change\n observer.observe(el, { attributes: true });\n } else {\n if (bindingElement) {\n Vue.$log.error('Element is not an input element', el);\n } else {\n Vue.$log.error('Directive: form-element-state', `Could not find element ${binding.value}.`, el);\n }\n }\n },\n});\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\n\nconst observersMap: Map<string, MutationObserver[]> = new Map();\nconst mutationObserverConfigs = { attributes: true, childList: true, subtree: true };\n\n/**\n * Component to hide an element if parent element previous sibling is same component\n * component is identified by class\n * The element with this directive must have the id attribute, since it is used to store mutations in a map\n */\nVue.directive('hide-element-by-same-parent-previous-sibling', {\n // When the bound element is inserted into the DOM...\n inserted: function (el: HTMLElement, binding: DirectiveBinding) {\n const elementId = el.getAttribute('id');\n if (elementId === null) {\n Vue.$log.error(\n 'v-hide-element-by-same-parent-previous-sibling directive does not work without an id attribute on the element'\n );\n return;\n }\n\n const mutationCallback: MutationCallback = function (mutationList: MutationRecord[], observer) {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList' && mutation.target.childNodes.length > 0) {\n // add element back again to DOM\n el.classList.remove('same-sibling-element');\n }\n }\n };\n\n const observers: MutationObserver[] = [];\n const classToCheck = binding.value;\n let currentSibling: Element | null = el.previousElementSibling ?? null;\n\n while (currentSibling != null) {\n // get all rendered styles\n const styles = window.getComputedStyle(currentSibling);\n if (styles.display !== 'none') {\n if (currentSibling.classList.contains(classToCheck)) {\n Vue.$log.debug('hide-element-by-same-previous-sibling remove element', el);\n // remove element from DOM\n el.classList.add('same-sibling-element');\n }\n\n break;\n }\n /**\n * MutationObservers are set on the currentSibling elements, because there might be the case\n * where elements are rendered asynchronously after data is loaded from backend with in the currentSibling elements\n */\n const observer = new MutationObserver(mutationCallback);\n observer.observe(currentSibling, mutationObserverConfigs);\n observers.push(observer);\n currentSibling = currentSibling.previousElementSibling;\n }\n\n observersMap.set(elementId!, observers);\n },\n unbind(el: HTMLElement) {\n // This if check is required because unbind is called at the beginning, when the element is not even rendered\n if (!el.getAttribute) return;\n const id = el.getAttribute('id');\n const elementObservers = observersMap.get(id!);\n\n if (elementObservers === undefined) return;\n\n for (const observer of elementObservers) {\n // Disconnect all observers on the element, if the element is removed from DOM with v-if or display:none\n observer?.disconnect();\n }\n\n observersMap.delete(id!);\n },\n});\n","import Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\nimport {\n checkForAllElementsIfAppearanceShouldTrigger,\n startCheckingAppearance,\n stopCheckingAppearance,\n} from './helper/viewportChecker';\n\n/**\n * Use this directive to attach callbacks to the point in time, where an element enters the viewport\n * for the first time or on consecutive times.\n * \"Enters the viewport\" means \"at least 50% of the elements height is currently on the viewport\"\n *\n * Example:\n *\n * <div v-on-viewport-enter=\"{ firstAppearanceHandler: onFirstEnter, appearanceHandler: onEveryEnter }\">\n * Do something when I enter the viewport\n * </div>\n */\n\nVue.directive('on-viewport-enter', {\n inserted: (el: HTMLElement, binding: DirectiveBinding) => {\n startCheckingAppearance({\n el,\n appearanceHandler: binding.value.appearanceHandler,\n firstAppearanceHandler: binding.value.firstAppearanceHandler,\n });\n\n // First check should be delayed so that the initial mount is also animated when using CSS animations.\n setTimeout(() => {\n checkForAllElementsIfAppearanceShouldTrigger();\n }, 0);\n },\n\n unbind: (el: HTMLElement) => {\n stopCheckingAppearance(el);\n },\n});\n","import Sortable from 'sortablejs';\nimport Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\n\nconst createSortable = (el, options) => {\n return Sortable.create(el, {\n delay: 100, //for scrolling in touch screen\n delayOnTouchOnly: true,\n touchStartThreshold: 3, //fix button/link click issue on sensible mobile devices\n ...options,\n });\n};\n\nVue.directive('sortable-table', {\n bind: (el: HTMLElement, binding: DirectiveBinding) => {\n el.classList.add('draggable');\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = el as any;\n table._sortable = createSortable(table.querySelector('tbody'), binding.value());\n },\n});\n","import Vue from 'vue';\nimport store from '@/src/state/store';\n\nVue.directive('register-anchor-slug', {\n inserted(el: HTMLElement) {\n const id = el.getAttribute('id');\n store.dispatch('htmlAnchors/addAnchorId', id);\n },\n unbind(el: HTMLElement) {\n // This if check is required because unbind is called at the beginning, when the element is not even rendered\n if (!el.getAttribute) return;\n const id = el.getAttribute('id');\n store.dispatch('htmlAnchors/removeAnchorId', id);\n },\n});\n","import Vue from 'vue';\nimport { DirectiveBinding } from 'vue/types/options';\n\nconst mutationObservers: { [id: string]: MutationObserver } = {};\n\nVue.directive('attach-mutation-observer', {\n inserted: function (el: HTMLElement, binding: DirectiveBinding) {\n const id = el.getAttribute('id');\n const config = { attributes: true, childList: true, subtree: true };\n const callback: (mutations: MutationRecord[], observer: MutationObserver) => void = binding.value.mutationCallback;\n if (!callback || !id) {\n return;\n }\n const observer = new MutationObserver(callback);\n observer.observe(el, config);\n mutationObservers[id] = observer;\n },\n unbind(el: HTMLElement) {\n // This if check is required because unbind is called at the beginning, when the element is not even rendered\n if (!el.getAttribute) return;\n const id = el.getAttribute('id');\n if (!id) return;\n delete mutationObservers[id];\n },\n});\n","// Globally register all base components for convenience, because they\n// will be used very frequently. Components are registered using the\n// PascalCased version of their file name.\n\nimport Vue from 'vue';\nimport { camelCase, upperFirst } from 'lodash';\n\n// https://webpack.js.org/guides/dependency-management/#require-context\nconst requireComponent = require.context(\n // Look for files in the current directory\n '@components',\n // Look in subdirectories\n true,\n // Include all .vue files\n /.*\\.vue$/\n);\n\n// For each matching file name...\nrequireComponent.keys().forEach((fileName) => {\n // Get the component config\n const componentConfig = requireComponent(fileName);\n // Get the PascalCase version of the component name\n const componentName = upperFirst(camelCase(fileName.replace(/^.+\\/([^/]+)\\/.*.vue/, '$1')));\n\n // Globally register the component\n Vue.component(componentName, componentConfig.default || componentConfig);\n});\n","import Vue from 'vue';\n\n/*\n * Import Plugins\n */\nimport '@plugins';\n\n/*\n * Import Css\n */\nimport '@design';\n\n/*\n * Import Vuex\n */\nimport store from '@state/store';\n\n/*\n * Import Filters\n */\nimport '@filters';\n/*\n * Import global custom directives\n */\nimport '@directives';\n\n/*\n * Globally register all components\n */\nimport '@components/_globals';\n\nnew Vue({ store }).$mount('#app');\n","import httpClient from '@/src/utils/http-service';\nimport {\n BestMatchMetadataResultModel,\n BestMatchSearchRequestModel,\n BestMatchSearchResultModel,\n ProductModel,\n ProductPricePush,\n} from '@src/types/the-q-api';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { Commit } from 'vuex';\nimport { MutationPushPayloadHolder } from '@/src/types/vue-api';\nimport { isMutationPushPayloadHolder } from '@/src/types/type-guards';\nimport {\n createPushPayload,\n LightStreamerProductSubscriptionMutationTypes,\n PUSH_UPDATE_PRODUCT,\n tryUpdateProductValue,\n} from '@/src/state/plugins/light-streamer/pushing-helper';\n\nexport const state = {\n bestMatchSearchResultModel: null as MutationPushPayloadHolder<BestMatchSearchResultModel, ProductModel> | null,\n bestMatchMetadataResultModel: {} as { [key: string]: BestMatchMetadataResultModel },\n};\n\nexport enum MutationTypes {\n BEST_MATCH_META_DATA_VALUE = 'BEST_MATCH_META_DATA_VALUE',\n}\n\ntype State = typeof state;\n\nfunction getBestMatchMetaDataKey(filter: BestMatchSearchRequestModel) {\n return filter.productType + filter.subType + filter.underlyingIsin;\n}\n\nexport const getters = {\n bestMatchSearchResultModel: (state: State) => {\n return state.bestMatchSearchResultModel?.holder;\n },\n bestMatchMetadataResultModel: (state: State) => {\n return (filter: BestMatchSearchRequestModel) => state.bestMatchMetadataResultModel[getBestMatchMetaDataKey(filter)];\n },\n};\n\nexport const mutations = {\n [LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_BEST_MATCHES](\n state: State,\n bestMatchSearchResultModel: MutationPushPayloadHolder<BestMatchSearchResultModel, ProductModel>\n ) {\n state.bestMatchSearchResultModel = bestMatchSearchResultModel;\n },\n [MutationTypes.BEST_MATCH_META_DATA_VALUE](\n state: State,\n bestMatchSearchResultModel: { [key: string]: BestMatchMetadataResultModel }\n ) {\n state.bestMatchMetadataResultModel = bestMatchSearchResultModel;\n },\n [PUSH_UPDATE_PRODUCT](\n state: State,\n pushItem: {\n productPricePush: ProductPricePush;\n pushSubscriptions: { [key: string]: boolean };\n }\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const allProductsInState = Object.values(state).reduce((prevVal: Array<ProductModel>, statePropVal: any) => {\n if (isMutationPushPayloadHolder(statePropVal)) {\n return prevVal.concat(statePropVal.getSubscriptionPushItems(statePropVal.holder));\n } else {\n return prevVal;\n }\n }, new Array<ProductModel>());\n\n allProductsInState.forEach((p) => tryUpdateProductValue(p, pushItem.productPricePush, pushItem.pushSubscriptions));\n },\n};\n\nconst cache = {\n metaKeys: {} as { [key: string]: boolean },\n};\n\nexport const actions = {\n async loadBestMatchSearchResultModelAsync(\n { commit }: { commit: Commit },\n filter: BestMatchSearchRequestModel\n ): Promise<void> {\n const response = await httpClient.get<BestMatchSearchResultModel>(getTheQApiUrl(Controller.BestMatch, 'Search'), {\n params: filter,\n });\n const bestMatchSearchPushPayload = createPushPayload<BestMatchSearchResultModel, ProductModel>(\n response.data,\n (holder: BestMatchSearchResultModel): Array<ProductModel> => [\n ...holder.aboveMatches.map((bm) => bm.product),\n ...holder.belowMatches.map((bm) => bm.product),\n ...holder.bestMatches.map((bm) => bm.product),\n ]\n );\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_BEST_MATCHES, bestMatchSearchPushPayload);\n },\n\n async loadBestMatchMetadataResultModelAsync(\n { commit, state }: { commit: Commit; state: State },\n filter: BestMatchSearchRequestModel\n ): Promise<void> {\n const key = getBestMatchMetaDataKey(filter);\n if (\n cache.metaKeys[key] === undefined &&\n (state.bestMatchMetadataResultModel === null || state.bestMatchMetadataResultModel[key] === undefined)\n ) {\n cache.metaKeys[key] = true;\n const response = await httpClient.get<BestMatchMetadataResultModel>(\n getTheQApiUrl(Controller.BestMatch, 'Metadata'),\n {\n params: filter,\n }\n );\n\n commit(\n MutationTypes.BEST_MATCH_META_DATA_VALUE,\n Object.assign({}, state.bestMatchMetadataResultModel, { [getBestMatchMetaDataKey(filter)]: response.data })\n );\n }\n },\n\n async bestMatchTableClear({ commit }: { commit: Commit }): Promise<void> {\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_BEST_MATCHES, null);\n },\n};\n","import httpClient from '@/src/utils/http-service';\nimport { getEpiserverApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { Commit } from 'vuex';\nimport { FormatDataField } from '@/src/types/vue-api';\n\ninterface FormatDataFieldStore {\n [key: string]: FormatDataField;\n}\n\nexport const state = {\n fieldStore: null as FormatDataFieldStore | null,\n};\n\nenum MutationTypes {\n CACHE_FORMAT_DATA_FIELD = 'CACHE_FORMAT_DATA_FIELD',\n}\n\ntype State = typeof state;\n\nexport const mutations = {\n [MutationTypes.CACHE_FORMAT_DATA_FIELD](state: State, fieldStore: FormatDataFieldStore) {\n state.fieldStore = fieldStore;\n },\n};\n\nexport const getters = {\n fieldStore: (state: State) => {\n return state.fieldStore;\n },\n isFieldStoreLoaded: (state: State) => {\n return !!state.fieldStore;\n },\n getFormatDataField:\n (state: State) =>\n (key: string): FormatDataField | null => {\n return state.fieldStore ? state.fieldStore[key] ?? null : null;\n },\n};\n\nexport const actions = {\n async init({ commit, state }: { commit: Commit; state: State }): Promise<void> {\n // 1. Check if data is already loaded\n if (state.fieldStore) {\n return Promise.resolve();\n }\n\n // 2. Fetch the formats from the Epi and cache it\n const response = await httpClient.get<FormatDataField[]>(getEpiserverApiUrl(Controller.FieldFormats, 'GetAll'), {});\n\n const fieldStore = response.data.reduce(\n (store, field) =>\n field.formatId\n ? { ...store, [field.fieldKey]: field, [field.formatId]: field }\n : { ...store, [field.fieldKey]: field },\n {}\n );\n\n commit(MutationTypes.CACHE_FORMAT_DATA_FIELD, fieldStore);\n },\n};\n","import { Commit } from 'vuex';\n\nexport const state = {\n anchors: {} as { [anchorId: string]: boolean },\n};\n\ntype State = typeof state;\n\nexport enum MutationTypes {\n ADD_ANCHOR_ID = 'ADD_ANCHOR_ID',\n REMOVE_ANCHOR_ID = 'REMOVE_ANCHOR_ID',\n}\n\nexport const getters = {\n registeredAnchors(state: State): { [anchorId: string]: boolean } {\n return state.anchors;\n },\n};\n\nexport const mutations = {\n [MutationTypes.ADD_ANCHOR_ID](state: State, anchorId: string) {\n // New object needs to be in order to trigger watchers i.e object reference changes\n state.anchors = { ...state.anchors, [anchorId]: true };\n },\n [MutationTypes.REMOVE_ANCHOR_ID](state: State, anchorId: string) {\n delete state.anchors[anchorId];\n // New object needs to be in order to trigger watchers i.e object reference changes\n state.anchors = { ...state.anchors };\n },\n};\n\nexport const actions = {\n addAnchorId({ commit }: { commit: Commit }, anchorId: string) {\n commit(MutationTypes.ADD_ANCHOR_ID, anchorId);\n },\n removeAnchorId({ commit }: { commit: Commit }, anchorId: string) {\n commit(MutationTypes.REMOVE_ANCHOR_ID, anchorId);\n },\n};\n","import httpClient from '@/src/utils/http-service';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { Commit } from 'vuex';\nimport { PriipModel } from '@/src/types/the-q-api';\n\nexport const state = {\n product: null as PriipModel | null,\n};\n\nenum MutationTypes {\n CACHE_PRIIP = 'CACHE_PRIIP',\n CACHE_PRIIP_PRICING_SUPPLEMENT = 'CACHE_PRIIP_PRICING_SUPPLEMENT',\n}\n\ntype State = typeof state;\n\nexport const mutations = {\n [MutationTypes.CACHE_PRIIP](state: State, product: PriipModel) {\n state.product = product;\n },\n};\n\nexport const getters = {\n product: (state: State) => {\n return state.product;\n },\n};\n\nexport const actions = {\n async loadProductAsync({ commit, state }: { commit: Commit; state: State }, isin: string): Promise<void> {\n if (state.product?.isin.toUpperCase() == isin.toUpperCase()) {\n return Promise.resolve();\n }\n\n return httpClient.get<PriipModel>(getTheQApiUrl(Controller.Priip, `Index/${isin}`)).then((response) => {\n commit(MutationTypes.CACHE_PRIIP, response.data);\n });\n },\n};\n","import httpClient from '@/src/utils/http-service';\nimport Vue from 'vue';\nimport {\n Option,\n OptionGroup,\n ProductModel,\n ProductPricePush,\n ProductSearchDetailedResultModel,\n ProductTypeGroupOptionsFilter,\n ProductTypeOptionsFilter,\n} from '@src/types/the-q-api';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller, ProductTypeBo, TopLeverageTableFilter } from '@/src/types/enumerations';\nimport { Commit } from 'vuex';\nimport { MutationPushPayloadHolder, ProductSearchParametersFilter } from '@/src/types/vue-api';\nimport { unionBy, uniqBy } from 'lodash';\nimport { isMutationPushPayloadHolder, isNotNullOrUndefined } from '@/src/types/type-guards';\nimport {\n createPushPayload,\n LightStreamerProductSubscriptionMutationTypes,\n PUSH_SUBSCRIPTION_PRODUCT_GETTER,\n PUSH_UPDATE_PRODUCT,\n tryUpdateProductValue,\n} from '@/src/state/plugins/light-streamer/pushing-helper';\nimport { ProductType, ProductUnderlyingFilter } from '@/src/types/episerver-api';\nimport { AxiosResponse } from 'axios';\n\nexport const state = {\n productPushValue: {} as { [key: string]: boolean },\n product: null as MutationPushPayloadHolder<ProductModel, ProductModel> | null,\n products: null as MutationPushPayloadHolder<Array<ProductModel>, ProductModel> | null,\n concatProducts: null as MutationPushPayloadHolder<Array<ProductModel>, ProductModel> | null,\n productSearchDetailResult: null as MutationPushPayloadHolder<ProductSearchDetailedResultModel, ProductModel> | null,\n topLeverageTableSearchResult: null as MutationPushPayloadHolder<\n { [key: string]: Array<ProductModel> },\n ProductModel\n > | null,\n productUnderlyingTypes: {} as { [key: string]: ProductType[] },\n productTypeOptions: {} as { [key: string]: Option[] },\n productTypeGroupOptions: {} as { [key: string]: OptionGroup[] },\n};\n\nexport enum MutationTypes {\n PRODUCT_PUSH_VALUE = 'PRODUCT_PUSH_VALUE',\n PRODUCT_UNDERLYING_TYPES = 'PRODUCT_UNDERLYING_TYPES',\n PRODUCT_TYPE_OPTIONS = 'PRODUCT_TYPE_OPTIONS',\n PRODUCT_TYPE_GROUP_OPTIONS = 'PRODUCT_TYPE_GROUP_OPTIONS',\n}\n\ntype State = typeof state;\n\nfunction getProductUnderlyingFilterKey(filter: ProductUnderlyingFilter) {\n return filter.underlyingIsin + filter.types.flatMap((t) => t.subTypeCode + t.typeCode).join('-');\n}\n\nfunction getProductTypeOptionsFilterKey(filter: ProductTypeOptionsFilter) {\n return filter.underlyingIsin ?? 'no-underlying';\n}\n\nfunction getProductTypeGroupOptionsFilterKey(filter: ProductTypeGroupOptionsFilter) {\n return filter.underlyingIsin || 'no-underlying' + filter.onlyLeverage;\n}\n\nasync function QueryProductsWithPushPayload(\n isinOrNsins: string[]\n): Promise<MutationPushPayloadHolder<ProductModel[], ProductModel>> {\n const responseData: Array<ProductModel | undefined> = await Promise.all(\n isinOrNsins.map(async (id) => {\n try {\n const response = await httpClient.get<ProductModel>(getTheQApiUrl(Controller.Product, 'Get'), {\n params: { isinOrNsin: id },\n });\n return response.data;\n } catch {\n return;\n }\n })\n );\n const data: Array<ProductModel> = responseData.filter(isNotNullOrUndefined);\n const getSubscriptionPushItemsFunc = (holder: Array<ProductModel>): Array<ProductModel> => {\n // Get only unique products, so that the subscription is not triggered for multiple same products\n return uniqBy(holder, 'isin') as Array<ProductModel>;\n };\n return createPushPayload<Array<ProductModel>, ProductModel>(data, getSubscriptionPushItemsFunc);\n}\n\nexport const getters = {\n product: (state: State): ProductModel | null => {\n return state.product?.holder ?? null;\n },\n productByIsin: (state: State) => {\n return (productIsin: string) => state.concatProducts?.holder.find((p) => p.isin == productIsin) ?? null;\n },\n productSearchDetailResult: (state: State): ProductSearchDetailedResultModel | {} => {\n return state.productSearchDetailResult?.holder ?? {};\n },\n topLeverageSearchResult: (state: State) => {\n return (filter: TopLeverageTableFilter) => state.topLeverageTableSearchResult?.holder[filter] ?? null;\n },\n productUnderlyingTypes: (state: State) => {\n return (filter: ProductUnderlyingFilter) =>\n state.productUnderlyingTypes[getProductUnderlyingFilterKey(filter)] || [];\n },\n productTypeOptions: (state: State) => {\n return (filter: ProductTypeOptionsFilter) => state.productTypeOptions[getProductTypeOptionsFilterKey(filter)] || [];\n },\n productTypeGroupOptions: (state: State) => {\n return (filter: ProductTypeGroupOptionsFilter) =>\n state.productTypeGroupOptions[getProductTypeGroupOptionsFilterKey(filter)] || [];\n },\n [PUSH_SUBSCRIPTION_PRODUCT_GETTER]: (state: State) => {\n return state.productPushValue;\n },\n};\n\nexport const mutations = {\n [LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCT](\n state: State,\n productPushPayload: MutationPushPayloadHolder<ProductModel, ProductModel>\n ) {\n state.product = productPushPayload;\n },\n [LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS](\n state: State,\n productPushPayload: MutationPushPayloadHolder<Array<ProductModel>, ProductModel>\n ) {\n state.products = productPushPayload;\n },\n [LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_CONCAT](\n state: State,\n productPushPayload: MutationPushPayloadHolder<Array<ProductModel>, ProductModel>\n ) {\n state.concatProducts == null\n ? (state.concatProducts = productPushPayload)\n : (state.concatProducts.holder = unionBy(state.concatProducts.holder, productPushPayload.holder, 'securityCode'));\n },\n [LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_SEARCH](\n state: State,\n productSearchPushPayload: MutationPushPayloadHolder<ProductSearchDetailedResultModel, ProductModel>\n ) {\n state.productSearchDetailResult = productSearchPushPayload;\n },\n [LightStreamerProductSubscriptionMutationTypes.CACHE_TOP_LEVERAGE_TABLE_SEARCH_PRODUCTS](\n state: State,\n topLeveragePushPayload: MutationPushPayloadHolder<{ [key: string]: Array<ProductModel> }, ProductModel>\n ) {\n state.topLeverageTableSearchResult = topLeveragePushPayload;\n },\n [MutationTypes.PRODUCT_PUSH_VALUE](state: State, fieldKey: string) {\n state.productPushValue[fieldKey] = true;\n },\n [MutationTypes.PRODUCT_UNDERLYING_TYPES](state: State, productUnderlyingTypes: { [key: string]: ProductType[] }) {\n state.productUnderlyingTypes = productUnderlyingTypes;\n },\n [MutationTypes.PRODUCT_TYPE_OPTIONS](state: State, productTypeOptions: { [key: string]: Option[] }) {\n state.productTypeOptions = productTypeOptions;\n },\n [MutationTypes.PRODUCT_TYPE_GROUP_OPTIONS](state: State, productTypeGroupOptions: { [key: string]: OptionGroup[] }) {\n state.productTypeGroupOptions = productTypeGroupOptions;\n },\n [PUSH_UPDATE_PRODUCT](\n state: State,\n pushItem: {\n productPricePush: ProductPricePush;\n pushSubscriptions: { [key: string]: boolean };\n }\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const allProductsInState = Object.values(state).reduce((prevVal: Array<ProductModel>, statePropVal: any) => {\n if (isMutationPushPayloadHolder(statePropVal)) {\n return prevVal.concat(statePropVal.getSubscriptionPushItems(statePropVal.holder));\n } else {\n return prevVal;\n }\n }, new Array<ProductModel>());\n\n allProductsInState.forEach((p) => tryUpdateProductValue(p, pushItem.productPricePush, pushItem.pushSubscriptions));\n },\n};\n\nconst cache = {\n productUnderlyingTypesKeys: {} as { [key: string]: boolean },\n productTypeOptionsKeys: {} as { [key: string]: boolean },\n productTypeGroupOptionsKeys: {} as { [key: string]: boolean },\n};\n\nexport const actions = {\n async loadProductAsync({ commit, state }: { commit: Commit; state: State }, isinOrNsin: string): Promise<void> {\n // Return cached product if already fetched\n if (state.product) {\n return Promise.resolve();\n }\n\n // Fetch and save in Cache\n const response = await httpClient.get<ProductModel>(getTheQApiUrl(Controller.Product, 'Get'), {\n params: { isinOrNsin: isinOrNsin },\n });\n\n const productPushPayload = createPushPayload<ProductModel, ProductModel>(\n response.data,\n (holder: ProductModel): Array<ProductModel> => [holder]\n );\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCT, productPushPayload);\n },\n\n async loadProductsAsync({ commit }: { commit: Commit }, isinOrNsins: string[]): Promise<void> {\n const pushPayload = await QueryProductsWithPushPayload(isinOrNsins);\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS, pushPayload);\n },\n\n async loadConcatProductsAsync({ commit }: { commit: Commit }, isinOrNsins: string[]): Promise<void> {\n const pushPayload = await QueryProductsWithPushPayload(isinOrNsins);\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_CONCAT, pushPayload);\n },\n\n async loadProductSearchDetailedResultAsync(\n { commit }: { commit: Commit },\n {\n filter,\n minPushItem,\n maxPushItem,\n }: { filter: ProductSearchParametersFilter; minPushItem: number; maxPushItem: number }\n ): Promise<void> {\n // Fetch and save in Cache\n filter.underlyingIsins =\n typeof filter.underlyingIsinOrIsins === 'string' ? [filter.underlyingIsinOrIsins] : filter.underlyingIsinOrIsins;\n\n const response = await httpClient.post<\n ProductSearchParametersFilter,\n AxiosResponse<ProductSearchDetailedResultModel>\n >(getTheQApiUrl(Controller.ProductSearch, 'Search'), filter);\n Vue.$log.debug('sub items', state.productSearchDetailResult?.holder.items.length, minPushItem, maxPushItem);\n\n const productSearchPushPayload = createPushPayload<ProductSearchDetailedResultModel, ProductModel>(\n response.data,\n (holder: ProductSearchDetailedResultModel): Array<ProductModel> => holder.items.slice(minPushItem, maxPushItem)\n );\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_SEARCH, productSearchPushPayload);\n },\n\n updateProductSearchDetailedResultPushItems(\n { commit, state }: { commit: Commit; state: State },\n { minPushItem, maxPushItem }: { minPushItem: number; maxPushItem: number }\n ): void {\n // Fetch and save in Cache\n const productSearchPushPayload = createPushPayload<ProductSearchDetailedResultModel, ProductModel>(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n state.productSearchDetailResult?.holder!,\n (holder: ProductSearchDetailedResultModel): Array<ProductModel> => holder.items.slice(minPushItem, maxPushItem)\n );\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCTS_SEARCH, productSearchPushPayload);\n },\n\n async loadFirstProductAsync(\n { commit, state }: { commit: Commit; state: State },\n leverageType: ProductTypeBo\n ): Promise<void> {\n // Return cached product if already fetched\n if (state.product) {\n return Promise.resolve();\n }\n\n // Fetch and save in Cache\n const response = await httpClient.get<ProductModel>(getTheQApiUrl(Controller.Product, 'GetFirst'), {\n params: { productType: leverageType },\n });\n\n const productPushPayload = createPushPayload<ProductModel, ProductModel>(\n response.data,\n (holder: ProductModel): Array<ProductModel> => [holder]\n );\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_PRODUCT, productPushPayload);\n },\n\n async loadTopLeverageTableSearchAsync(\n { commit, state }: { commit: Commit; state: State },\n filter: TopLeverageTableFilter\n ): Promise<void> {\n const response = await httpClient.get<ProductSearchDetailedResultModel>(\n getTheQApiUrl(Controller.ProductSearch, 'TopLeverageTableSearch'),\n {\n params: { searchParam: filter },\n }\n );\n\n const getSubscriptionPushItemsFunc = (holder: { [key: string]: Array<ProductModel> }): Array<ProductModel> => {\n const allProducts = Object.values(holder).reduce(\n (prevVal: Array<ProductModel>, arr: Array<ProductModel>) => prevVal.concat(arr),\n new Array<ProductModel>()\n );\n // Get only unique products, so that the subscription is not triggered for multiple same products\n return uniqBy(allProducts, 'isin') as Array<ProductModel>;\n };\n\n const topLeveragePushPayload = createPushPayload<{ [key: string]: Array<ProductModel> }, ProductModel>(\n { ...state?.topLeverageTableSearchResult?.holder, [filter]: response.data },\n getSubscriptionPushItemsFunc\n );\n\n commit(\n LightStreamerProductSubscriptionMutationTypes.CACHE_TOP_LEVERAGE_TABLE_SEARCH_PRODUCTS,\n topLeveragePushPayload\n );\n },\n async subscribePushValue({ commit, state }: { commit: Commit; state: State }, fieldKey: string): Promise<void> {\n if (state.productPushValue[fieldKey] !== true) commit(MutationTypes.PRODUCT_PUSH_VALUE, fieldKey);\n },\n async getUnderlyingTypesAsync(\n { commit, state }: { commit: Commit; state: State },\n filter: ProductUnderlyingFilter\n ): Promise<void> {\n const key = getProductUnderlyingFilterKey(filter);\n if (cache.productUnderlyingTypesKeys[key] === undefined) {\n cache.productUnderlyingTypesKeys[key] = true;\n const response = await httpClient.post<ProductUnderlyingFilter, AxiosResponse<ProductType[]>>(\n getTheQApiUrl(Controller.Product, 'UnderlyingTypes'),\n filter\n );\n commit(\n MutationTypes.PRODUCT_UNDERLYING_TYPES,\n Object.assign({}, state.productUnderlyingTypes, { [getProductUnderlyingFilterKey(filter)]: response.data })\n );\n }\n },\n async getProductTypeOptionsAsync(\n { commit, state }: { commit: Commit; state: State },\n filter: ProductTypeOptionsFilter\n ): Promise<void> {\n const key = getProductTypeOptionsFilterKey(filter);\n if (cache.productUnderlyingTypesKeys[key] === undefined) {\n cache.productUnderlyingTypesKeys[key] = true;\n const response = await httpClient.get<Option[]>(getTheQApiUrl(Controller.Product, 'GetProductTypes'), {\n params: { underlyingIsin: filter.underlyingIsin },\n });\n commit(\n MutationTypes.PRODUCT_TYPE_OPTIONS,\n Object.assign({}, state.productTypeOptions, { [getProductTypeOptionsFilterKey(filter)]: response.data })\n );\n }\n },\n async getProductTypeGroupOptionsAsync(\n { commit, state }: { commit: Commit; state: State },\n filter: ProductTypeGroupOptionsFilter\n ): Promise<void> {\n const key = getProductTypeGroupOptionsFilterKey(filter);\n if (cache.productTypeGroupOptionsKeys[key] === undefined) {\n cache.productTypeGroupOptionsKeys[key] = true;\n const response = await httpClient.get<OptionGroup[]>(getTheQApiUrl(Controller.Product, 'GetProductTypeGroups'), {\n params: { underlyingIsin: filter.underlyingIsin, onlyLeverage: filter.onlyLeverage },\n });\n commit(\n MutationTypes.PRODUCT_TYPE_GROUP_OPTIONS,\n Object.assign({}, state.productTypeGroupOptions, {\n [getProductTypeGroupOptionsFilterKey(filter)]: response.data,\n })\n );\n }\n },\n};\n","import { SortingDirection } from '../types/enumerations';\nimport { isPriceModel } from '../types/type-guards';\nimport evaluateExpressionByKey from './value-formatter/format-helper';\n\nexport function sortBy<T>(\n array: Array<T>,\n valueExpression: string,\n expressionModelKey: string,\n direction: SortingDirection\n): Array<T> {\n if (array.length === 0) {\n return [];\n }\n return Array.from(array).sort((a, b) => {\n let result = 0;\n const aValue = evaluateExpressionByKey(valueExpression, { [expressionModelKey]: a });\n const bValue = evaluateExpressionByKey(valueExpression, { [expressionModelKey]: b });\n if (typeof aValue === 'string' && typeof bValue === 'string') {\n result = aValue.localeCompare(bValue);\n } else if (typeof aValue === 'number' && typeof bValue === 'number') {\n result = aValue - bValue;\n } else if (isPriceModel(aValue) && isPriceModel(bValue)) {\n result = (aValue.amount || 0) - (bValue.amount || 0);\n } else if (!aValue) {\n result = -1;\n } else if (!bValue) {\n result = 1;\n } else {\n result = 0;\n }\n if (direction === SortingDirection.Descending) result *= -1;\n return result;\n });\n}\n\nexport function sortByOrder<TModel>(\n array: Array<TModel>,\n sortOrders: Array<{ sort: number }>,\n idKey: string\n): Array<TModel> {\n if (array.length === 0) return [];\n\n return Array.from(array).sort((a, b) => {\n let aSort = sortOrders.find((u) => u[idKey] === a[idKey])?.sort;\n let bSort = sortOrders.find((u) => u[idKey] === b[idKey])?.sort;\n if (aSort === undefined) aSort = Number.MAX_SAFE_INTEGER;\n if (bSort === undefined) bSort = Number.MAX_SAFE_INTEGER;\n return aSort - bSort;\n });\n}\n","import { Commit, Dispatch } from 'vuex';\nimport { MutationPushPayloadHolder, SortedUnderlying } from '@/src/types/vue-api';\nimport { SortOrder, UnderlyingModel, UnderlyingPricePush, UnderlyingSearchFilterPayload } from '@/src/types/the-q-api';\nimport {\n createPushPayload,\n LightStreamerUnderlyingSubscriptionMutationTypes,\n PUSH_UPDATE_UNDERLYING,\n realtimeNamespace,\n tryUpdateUnderlyingValue,\n} from '@/src/state/plugins/light-streamer/pushing-helper';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport httpClient from '@/src/utils/http-service';\nimport { Controller } from '@/src/types/enumerations';\nimport Vue from 'vue';\nimport { sortBy, sortByOrder } from '@/src/utils/sorting-helper';\nimport { arrayMoveImmutable } from 'array-move';\n\nexport const state = {\n realtimeUnderlyings: {} as { [category: string]: Array<SortedUnderlying> },\n underlyings: null as MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel> | null,\n};\n\nexport type State = typeof state;\n\nexport enum MutationTypes {\n SORT_REALTIME_UNDERLYING = 'SORT_REALTIME_UNDERLYING',\n}\n\nexport function isPersistMutation(mutationType: string) {\n return mutationType === realtimeNamespace + MutationTypes.SORT_REALTIME_UNDERLYING;\n}\n\nexport function reducePersistState(state: State) {\n return { realtimeUnderlyings: state.realtimeUnderlyings };\n}\n\nexport const getters = {\n realtimeUnderlyingSorting: (state: State) => {\n return (category: string) => state.realtimeUnderlyings[category] || [];\n },\n underlyings: (state: State) => {\n return state.underlyings?.holder;\n },\n};\n\nexport const mutations = {\n [MutationTypes.SORT_REALTIME_UNDERLYING](state: State, sorting: { category: string; positions: SortedUnderlying[] }) {\n state.realtimeUnderlyings[sorting.category] = sorting.positions;\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS](\n state: State,\n underlyingPushPayload: MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel>\n ) {\n state.underlyings = underlyingPushPayload;\n },\n [PUSH_UPDATE_UNDERLYING](\n state: State,\n pushItem: { underlying: UnderlyingPricePush; pushSubscriptions: { [key: string]: boolean } }\n ) {\n state.underlyings?.holder.forEach((u) =>\n tryUpdateUnderlyingValue(u, pushItem.underlying, pushItem.pushSubscriptions)\n );\n },\n};\n\nfunction sortUnderlyings(\n sortOrder: SortOrder | null,\n underlyings: Array<UnderlyingModel>,\n realtimeUnderlyingSorting: Array<SortedUnderlying>\n): Array<UnderlyingModel> {\n if (Array.isArray(underlyings)) {\n if (sortOrder !== null) {\n return sortBy(underlyings, sortOrder.key, 'underlying', sortOrder.direction);\n } else if (Array.isArray(realtimeUnderlyingSorting) && realtimeUnderlyingSorting.length !== 0) {\n Vue.$log.debug('sort d', realtimeUnderlyingSorting, sortOrder);\n return sortByOrder(underlyings, realtimeUnderlyingSorting, 'isin');\n } else {\n return Array.from(underlyings);\n }\n }\n return [];\n}\n\nexport const actions = {\n saveRealtimeCategoryAndUpdateSorting(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { commit, getters, dispatch }: { commit: Commit; getters: any; dispatch: Dispatch },\n { category, oldIndex, newIndex }: { category: string; oldIndex: number; newIndex: number }\n ): void {\n const sortedUnderlyings = arrayMoveImmutable(getters.underlyings, oldIndex, newIndex) as Array<UnderlyingModel>;\n const sortPositions =\n sortedUnderlyings.map((underlying, index) => ({ isin: underlying.isin, sort: index }) as SortedUnderlying) || [];\n\n commit(MutationTypes.SORT_REALTIME_UNDERLYING, { category: category, positions: sortPositions });\n dispatch('resortUnderlyings', { sortOrder: null, category: category });\n },\n\n async searchUnderlyingsAsync(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { commit, getters }: { commit: Commit; getters: any },\n {\n filter,\n sortOrder,\n category,\n minPushItem,\n maxPushItem,\n }: {\n filter: UnderlyingSearchFilterPayload;\n sortOrder: SortOrder | null;\n category: string | null;\n minPushItem: number;\n maxPushItem: number;\n }\n ): Promise<void> {\n try {\n const response = await httpClient.get<UnderlyingModel[]>(getTheQApiUrl(Controller.Underlying, 'SearchBy'), {\n params: { realtimeCategory: filter.realtimeCategory },\n });\n\n const sortedData = sortUnderlyings(sortOrder, response.data, getters.realtimeUnderlyingSorting(category));\n\n const underlyingPushPayload = createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(\n sortedData,\n (holder: UnderlyingModel[]): Array<UnderlyingModel> => holder.slice(minPushItem, maxPushItem)\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS, underlyingPushPayload);\n } catch (ex) {\n Vue.$log.error('Error in vuex searchUnderlyingsAsync', ex);\n }\n },\n resortUnderlyings(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { commit, getters }: { commit: Commit; getters: any },\n {\n sortOrder,\n category,\n minPushItem,\n maxPushItem,\n }: {\n sortOrder: SortOrder | null;\n category: string | null;\n minPushItem: number;\n maxPushItem: number;\n }\n ): void {\n const sortedData = sortUnderlyings(sortOrder, getters.underlyings, getters.realtimeUnderlyingSorting(category));\n\n const underlyingPushPayload = createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(\n sortedData,\n (holder: UnderlyingModel[]): Array<UnderlyingModel> => holder.slice(minPushItem, maxPushItem)\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS, underlyingPushPayload);\n },\n updateUnderlyingsPushItems(\n { commit, state }: { commit: Commit; state: State },\n { minPushItem, maxPushItem }: { minPushItem: number; maxPushItem: number }\n ): void {\n // Fetch and save in Cache\n const underlyingPushPayload = createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n state.underlyings?.holder!,\n (holder: UnderlyingModel[]): Array<UnderlyingModel> => holder.slice(minPushItem, maxPushItem)\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS, underlyingPushPayload);\n },\n};\n","import { Controller } from '@/src/types/enumerations';\nimport { AvailableUnderlyingTranslationsModel } from '@/src/types/the-q-api';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport httpClient from '@/src/utils/http-service';\nimport { Commit } from 'vuex';\n\nexport const state = {\n countries: [] as Array<string>,\n categories: [] as Array<string>,\n sectors: [] as Array<string>,\n realtimeCategories: [] as Array<string>,\n};\n\ntype State = typeof state;\n\nexport const getters = {\n countries: (state: State) => {\n return state.countries;\n },\n categories: (state: State) => {\n return state.categories;\n },\n sectors: (state: State) => {\n return state.sectors;\n },\n realtimeCategories: (state: State) => {\n return state.realtimeCategories;\n },\n};\n\nenum MutationTypes {\n CACHE_CATEGORIES = 'CACHE_CATEGORIES',\n CACHE_COUNTRIES = 'CACHE_COUNTRIES',\n CACHE_SECTORS = 'CACHE_SECTORS',\n CACHE_REALTIMECATEGORIES = 'CACHE_REALTIMECATEGORIES',\n}\n\nexport const mutations = {\n [MutationTypes.CACHE_CATEGORIES](state: State, categories: Array<string>): void {\n state.categories = categories;\n },\n [MutationTypes.CACHE_COUNTRIES](state: State, countries: Array<string>): void {\n state.countries = countries;\n },\n [MutationTypes.CACHE_SECTORS](state: State, sectors: Array<string>): void {\n state.sectors = sectors;\n },\n [MutationTypes.CACHE_REALTIMECATEGORIES](state: State, realtimeCategories: Array<string>): void {\n state.realtimeCategories = realtimeCategories;\n },\n};\n\nexport const actions = {\n async loadTranslationsAsync({ commit, state }: { commit: Commit; state: State }): Promise<void> {\n // Return cached translations if already fetched\n if (state.categories.length) {\n return Promise.resolve();\n }\n\n // Fetch and save in Cache\n const response = await httpClient.get<AvailableUnderlyingTranslationsModel>(\n getTheQApiUrl(Controller.Underlying, 'GetAvailableTranslations')\n );\n\n commit(MutationTypes.CACHE_CATEGORIES, response.data.categories);\n commit(MutationTypes.CACHE_COUNTRIES, response.data.countries);\n commit(MutationTypes.CACHE_SECTORS, response.data.sectors);\n commit(MutationTypes.CACHE_REALTIMECATEGORIES, response.data.realtimeCategories);\n },\n};\n","import httpClient from '@/src/utils/http-service';\nimport Vue from 'vue';\nimport qs from 'qs';\nimport {\n OptionGroup,\n Option,\n UnderlyingModel,\n UnderlyingPricePush,\n TopFlopTableSearchPayload,\n TopFlopTableSearchFilter,\n} from '@src/types/the-q-api';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { Commit } from 'vuex';\nimport { MutationPushPayloadHolder } from '@/src/types/vue-api';\nimport { isMutationPushPayloadHolder } from '@/src/types/type-guards';\nimport { uniqBy } from 'lodash';\nimport {\n createPushPayload,\n LightStreamerUnderlyingSubscriptionMutationTypes,\n PUSH_SUBSCRIPTION_UNDERLYING_GETTER,\n PUSH_UPDATE_UNDERLYING,\n tryUpdateUnderlyingValue,\n} from '@/src/state/plugins/light-streamer/pushing-helper';\nimport { AxiosResponse } from 'axios';\n\nexport const state = {\n underlying: null as MutationPushPayloadHolder<UnderlyingModel, UnderlyingModel> | null,\n productUnderlying: null as MutationPushPayloadHolder<UnderlyingModel, UnderlyingModel> | null,\n teaserUnderlyings: null as MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel> | null,\n underlyings: null as MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel> | null,\n topFlopTableSearchResult: null as MutationPushPayloadHolder<\n { [contentId: number]: Array<UnderlyingModel> },\n UnderlyingModel\n > | null,\n underlyingPushValues: {} as { [key: string]: boolean },\n underlyingsByKey: createPushPayload(\n {},\n (holder) => Object.values(holder) as Array<UnderlyingModel>\n ) as MutationPushPayloadHolder<{ [key: string]: UnderlyingModel }, UnderlyingModel>,\n underlyingOptionGroups: null as OptionGroup[] | null,\n underlyingOptions: null as Option[] | null,\n underlyingTranslations: null as { [key: string]: string } | null,\n};\n\nenum UnderlyingMutation {\n CACHE_PUSH_SUBSCRIPTION = 'CACHE_PUSH_SUBSCRIPTION',\n CACHE_OPTION_GROUP = 'CACHE_OPTION_GROUP_UNDERLYING',\n CACHE_OPTION = 'CACHE_OPTION_UNDERLYING',\n CACHE_TRANSLATION_UNDERLYING = 'CACHE_TRANSLATION_UNDERLYING',\n}\n\ntype State = typeof state;\n\nexport const mutations = {\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYING](\n state: State,\n underlyingPushPayload: MutationPushPayloadHolder<UnderlyingModel, UnderlyingModel>\n ) {\n state.underlying = underlyingPushPayload;\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS_BY_KEY](\n state: State,\n underlyings: Array<UnderlyingModel>\n ) {\n underlyings.forEach((u) => Vue.set(state.underlyingsByKey.holder, u.isin, u));\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_PRODUCT_UNDERLYING](\n state: State,\n underlyingPushPayload: MutationPushPayloadHolder<UnderlyingModel, UnderlyingModel>\n ) {\n state.productUnderlying = underlyingPushPayload;\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_TEASER_UNDERLYINGS](\n state: State,\n teaserUnderlyingPushPayload: MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel>\n ) {\n state.teaserUnderlyings = teaserUnderlyingPushPayload;\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS](\n state: State,\n underlyingPushPayload: MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel>\n ) {\n state.underlyings = underlyingPushPayload;\n },\n [UnderlyingMutation.CACHE_PUSH_SUBSCRIPTION](state: State, fieldKey: string) {\n state.underlyingPushValues[fieldKey] = true;\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_TOP_FLOP_TABLE_SEARCH_PRODUCTS](\n state: State,\n topLeveragePushPayload: MutationPushPayloadHolder<{ [contentId: number]: Array<UnderlyingModel> }, UnderlyingModel>\n ) {\n state.topFlopTableSearchResult = topLeveragePushPayload;\n },\n [PUSH_UPDATE_UNDERLYING](\n state: State,\n pushItem: { underlying: UnderlyingPricePush; pushSubscriptions: { [key: string]: boolean } }\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const allUnderlyingsInState = Object.values(state).reduce((prevVal: Array<UnderlyingModel>, statePropVal: any) => {\n if (isMutationPushPayloadHolder(statePropVal)) {\n return prevVal.concat(statePropVal.getSubscriptionPushItems(statePropVal.holder));\n } else {\n return prevVal;\n }\n }, new Array<UnderlyingModel>());\n\n allUnderlyingsInState.forEach((tu) =>\n tryUpdateUnderlyingValue(tu, pushItem.underlying, pushItem.pushSubscriptions)\n );\n },\n [UnderlyingMutation.CACHE_OPTION](state: State, options: Option[]) {\n state.underlyingOptions = options;\n },\n [UnderlyingMutation.CACHE_OPTION_GROUP](state: State, optionGroups: OptionGroup[]) {\n state.underlyingOptionGroups = optionGroups;\n },\n [UnderlyingMutation.CACHE_TRANSLATION_UNDERLYING](state: State, translations: { [key: string]: string }) {\n state.underlyingTranslations = translations;\n },\n};\n\nexport const getters = {\n underlying: (state: State) => {\n return state.underlying?.holder;\n },\n underlyingByKey: (state: State) => {\n return (isin: string) => {\n return state.underlyingsByKey.holder[isin];\n };\n },\n underlyings: (state: State) => {\n return state.underlyings?.holder;\n },\n teaserUnderlyings: (state: State) => {\n return state.teaserUnderlyings?.holder;\n },\n topFlopTableSearchResult: (state: State) => {\n return (contentId: number) => state.topFlopTableSearchResult?.holder[contentId] ?? null;\n },\n [PUSH_SUBSCRIPTION_UNDERLYING_GETTER]: (state: State) => {\n return state.underlyingPushValues;\n },\n underlyingOptions: (state: State) => {\n return state.underlyingOptions;\n },\n underlyingOptionGroups: (state: State) => {\n return state.underlyingOptionGroups;\n },\n underlyingTranslations: (state: State) => {\n return (isin: string) => {\n return state.underlyingTranslations != null ? state.underlyingTranslations[isin] : null;\n };\n },\n isUnderlyingTranslationsLoaded: (state: State) => {\n return !!state.underlyingTranslations;\n },\n};\n\nconst cache = {\n underlyingOption: false,\n underlyingOptionGroup: false,\n};\n\nexport const actions = {\n async loadUnderlyingAsync({ commit }: { commit: Commit }, isin: string): Promise<void> {\n // Return cached underling if already fetched\n if (state.underlying?.holder.isin === isin) {\n return Promise.resolve();\n }\n const response = await httpClient.get<UnderlyingModel>(getTheQApiUrl(Controller.Underlying, 'Get'), {\n params: { isin: isin },\n });\n\n const underlyingPushPayload = createPushPayload<UnderlyingModel, UnderlyingModel>(\n response.data,\n (holder: UnderlyingModel): Array<UnderlyingModel> => [holder]\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYING, underlyingPushPayload);\n },\n\n async loadFirstUnderlyingAsync({ commit }: { commit: Commit }): Promise<void> {\n // Return cached underling if already fetched\n if (state.underlying) {\n return Promise.resolve();\n }\n const response = await httpClient.get<UnderlyingModel>(getTheQApiUrl(Controller.Underlying, 'GetFirst'));\n\n const underlyingPushPayload = createPushPayload<UnderlyingModel, UnderlyingModel>(\n response.data,\n (holder: UnderlyingModel): Array<UnderlyingModel> => [holder]\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYING, underlyingPushPayload);\n },\n\n registerProductUnderlyingForPush({ commit }: { commit: Commit }, underlying: UnderlyingModel): void {\n const underlyingPushPayload = createPushPayload<UnderlyingModel, UnderlyingModel>(\n underlying,\n (holder: UnderlyingModel): Array<UnderlyingModel> => [holder]\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_PRODUCT_UNDERLYING, underlyingPushPayload);\n },\n\n async loadTeaserUnderlyingsAsync({ commit }: { commit: Commit }, isins: string[] | string): Promise<void> {\n const response = await httpClient.get<UnderlyingModel[]>(getTheQApiUrl(Controller.Underlying, 'GetUnderlyings'), {\n params: { isins: isins },\n });\n\n const teaserUnderlyingPushPayload = createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(\n response.data,\n (holder: UnderlyingModel[]): Array<UnderlyingModel> => holder\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_TEASER_UNDERLYINGS, teaserUnderlyingPushPayload);\n },\n async loadUnderlyingsAndSaveByIsinKeyAsync({ commit }: { commit: Commit }, isins: string[] | string): Promise<void> {\n const response = await httpClient.get<UnderlyingModel[]>(getTheQApiUrl(Controller.Underlying, 'GetUnderlyings'), {\n params: { isins: isins },\n });\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_UNDERLYINGS_BY_KEY, response.data);\n },\n\n async loadTopFlopTableSearchAsync(\n { commit, state }: { commit: Commit; state: State },\n payload: TopFlopTableSearchPayload\n ): Promise<void> {\n const response = await httpClient.post<TopFlopTableSearchFilter, AxiosResponse<Array<UnderlyingModel>>>(\n getTheQApiUrl(Controller.Underlying, 'GetTopFlopTableSearch'),\n payload.filter\n );\n\n const getSubscriptionPushItemsFunc = (holder: {\n [contentId: number]: Array<UnderlyingModel>;\n }): Array<UnderlyingModel> => {\n const allProducts = Object.values(holder).reduce(\n (prevVal: Array<UnderlyingModel>, arr: Array<UnderlyingModel>) => prevVal.concat(arr),\n new Array<UnderlyingModel>()\n );\n // Get only unique products, so that the subscription is not triggered for multiple same products\n return uniqBy(allProducts, 'isin');\n };\n\n const topLeveragePushPayload = createPushPayload<{ [contentId: number]: Array<UnderlyingModel> }, UnderlyingModel>(\n { ...state?.topFlopTableSearchResult?.holder, [payload.contentId]: response.data },\n getSubscriptionPushItemsFunc\n );\n\n commit(\n LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_TOP_FLOP_TABLE_SEARCH_PRODUCTS,\n topLeveragePushPayload\n );\n },\n\n clearTeaserUnderlyings({ commit }: { commit: Commit }): void {\n const teaserUnderlyingPushPayload = createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(\n [],\n (holder: UnderlyingModel[]): Array<UnderlyingModel> => holder\n );\n\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_TEASER_UNDERLYINGS, teaserUnderlyingPushPayload);\n },\n\n async subscribePushValue({ commit, state }: { commit: Commit; state: State }, fieldKey: string): Promise<void> {\n if (state.underlyingPushValues[fieldKey] !== true) commit(UnderlyingMutation.CACHE_PUSH_SUBSCRIPTION, fieldKey);\n },\n\n async getUnderlyingOptions({ commit }: { commit: Commit; state: State }, isLoadOptionGroup: boolean): Promise<void> {\n if (isLoadOptionGroup) {\n if (!cache.underlyingOptionGroup) {\n cache.underlyingOptionGroup = true;\n const response = await httpClient.get<OptionGroup[]>(\n getTheQApiUrl(Controller.Underlying, 'GetUnderlyingsOptionGroups')\n );\n commit(UnderlyingMutation.CACHE_OPTION_GROUP, response.data);\n }\n } else {\n if (!cache.underlyingOption) {\n cache.underlyingOption = true;\n const response = await httpClient.get<Option[]>(getTheQApiUrl(Controller.Underlying, 'GetUnderlyingsOptions'));\n commit(UnderlyingMutation.CACHE_OPTION, response.data);\n }\n }\n },\n\n async init({ commit }: { commit: Commit }): Promise<void> {\n const response = await httpClient.get<{ [key: string]: string }>(\n getTheQApiUrl(Controller.Underlying, 'GetUnderlyingTranslations')\n );\n commit(UnderlyingMutation.CACHE_TRANSLATION_UNDERLYING, response.data);\n },\n};\n","import httpClient from '@/src/utils/http-service';\nimport {\n PriceModel,\n ProductModel,\n ProductPricePush,\n UnderlyingModel,\n UnderlyingPricePush,\n WatchListActiveInstrumentsModel,\n WatchListInstrumentDetailsModel,\n WatchListInstrumentIdsPayload,\n} from '@src/types/the-q-api';\nimport { getTheQApiUrl } from '@/src/utils/url-helper';\nimport { Controller } from '@/src/types/enumerations';\nimport { Commit } from 'vuex';\nimport { WatchedUnderlying, WatchedProduct, WatchedProductModel, MutationPushPayloadHolder } from '@/src/types/vue-api';\nimport {\n createPushPayload,\n LightStreamerProductSubscriptionMutationTypes,\n LightStreamerUnderlyingSubscriptionMutationTypes,\n PUSH_UPDATE_PRODUCT,\n PUSH_UPDATE_UNDERLYING,\n tryUpdateProductValue,\n tryUpdateUnderlyingValue,\n watchlistNamespace,\n} from '@/src/state/plugins/light-streamer/pushing-helper';\nimport { isNotNullOrUndefined } from '@/src/types/type-guards';\nimport { arrayMoveImmutable } from 'array-move';\nimport Vue from 'vue';\nimport { AxiosResponse } from 'axios';\n\nexport enum PersitAndShareMutationTypes {\n ADD_UNDERLYING = 'ADD_UNDERLYING',\n REMOVE_UNDERLYING = 'REMOVE_UNDERLYING',\n SORT_UNDERLYING = 'SORT_UNDERLYING',\n UPDATE_UNDERLYING = 'UPDATE_UNDERLYING',\n ADD_PRODUCT = 'ADD_PRODUCT',\n REMOVE_PRODUCT = 'REMOVE_PRODUCT',\n SORT_PRODUCT = 'SORT_PRODUCT',\n UPDATE_PRODUCT = 'UPDATE_PRODUCT',\n}\nexport const state = {\n watchedUnderlyings: [] as Array<WatchedUnderlying>,\n watchedProducts: [] as Array<WatchedProduct>,\n products: null as MutationPushPayloadHolder<Array<WatchedProductModel>, ProductModel> | null,\n underlyings: null as MutationPushPayloadHolder<Array<UnderlyingModel>, UnderlyingModel> | null,\n};\n\nexport type State = typeof state;\n\nfunction isPersistAndShareMutation(mutationType: string) {\n return (\n Object.keys(PersitAndShareMutationTypes).find((type) => watchlistNamespace + type === mutationType) !== undefined\n );\n}\n\nexport function isPersistMutation(mutationType: string) {\n return isPersistAndShareMutation(mutationType);\n}\n\nexport function isShareMutation(mutationType: string) {\n return isPersistAndShareMutation(mutationType);\n}\n\nexport function reducePersistState(state: State) {\n return { watchedUnderlyings: state.watchedUnderlyings, watchedProducts: state.watchedProducts };\n}\n\nfunction filterwatchedUnderlyings(\n watchedUnderlyings: Array<WatchedUnderlying>,\n activeIsins: Array<string>\n): Array<WatchedUnderlying> {\n return watchedUnderlyings.filter((wu) => activeIsins.find((isin) => isin === wu.isin));\n}\n\nfunction filterProducts(\n watchedProducts: Array<WatchedProduct>,\n activeProductCodes: Array<string>\n): Array<WatchedProduct> {\n return watchedProducts.filter((wp) => activeProductCodes.find((code) => code === wp.securityCode));\n}\n\nfunction mapWatchedProductModel(watched: WatchedProduct, product: ProductModel): WatchedProductModel {\n const current = product.price?.bid?.amount;\n const add = watched.addPrice?.amount;\n const change = current && add ? current / add - 1 : null;\n\n return { ...product, watchlistAddPrice: watched?.addPrice, watchlistAddChange: change } as WatchedProductModel;\n}\n\nfunction mapWatchedProducts(\n watchedProducts: Array<WatchedProduct>,\n products: Array<ProductModel>\n): Array<WatchedProductModel> {\n const watched = watchedProducts\n .map((wp) => {\n const product = products.find((p) => p.securityCode === wp.securityCode);\n if (product === undefined) return;\n return mapWatchedProductModel(wp, product);\n })\n .filter(isNotNullOrUndefined);\n return watched;\n}\n\nexport const mutations = {\n [PersitAndShareMutationTypes.ADD_UNDERLYING](state: State, isin: string) {\n if (state.watchedUnderlyings.find((u) => u.isin === isin) !== undefined) return;\n state.watchedUnderlyings.push({\n isin: isin,\n addTimeStamp: new Date(),\n });\n },\n [PersitAndShareMutationTypes.REMOVE_UNDERLYING](state: State, isin: string) {\n const index = state.watchedUnderlyings.findIndex((u) => u.isin === isin);\n if (index === -1) return;\n state.watchedUnderlyings.splice(index, 1);\n },\n [PersitAndShareMutationTypes.UPDATE_UNDERLYING](state: State, watchedUnderlyings: Array<WatchedUnderlying>) {\n state.watchedUnderlyings = watchedUnderlyings;\n },\n [PersitAndShareMutationTypes.ADD_PRODUCT](state: State, product: { code: string; price: PriceModel }) {\n if (state.watchedProducts.find((p) => p.securityCode === product.code) !== undefined) return;\n state.watchedProducts.push({\n securityCode: product.code,\n addTimeStamp: new Date(),\n addPrice: product.price,\n });\n },\n [PersitAndShareMutationTypes.REMOVE_PRODUCT](state: State, code: string) {\n const index = state.watchedProducts.findIndex((p) => p.securityCode === code);\n if (index === -1) return;\n state.watchedProducts.splice(index, 1);\n },\n [PersitAndShareMutationTypes.UPDATE_PRODUCT](state: State, products: Array<WatchedProduct>) {\n state.watchedProducts = products;\n },\n [LightStreamerProductSubscriptionMutationTypes.CACHE_WATCHLIST_PRODUCT](\n state: State,\n productsPushPayload: MutationPushPayloadHolder<Array<WatchedProductModel>, ProductModel>\n ) {\n state.products = productsPushPayload;\n },\n [LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_WATCHLIST_UNDERLYING](\n state: State,\n underlyingPushPayload: MutationPushPayloadHolder<UnderlyingModel[], UnderlyingModel>\n ) {\n state.underlyings = underlyingPushPayload;\n },\n [PUSH_UPDATE_PRODUCT](\n state: State,\n pushItem: {\n productPricePush: ProductPricePush;\n pushSubscriptions: { [key: string]: boolean };\n }\n ) {\n state.products?.holder.forEach((p) =>\n tryUpdateProductValue(p, pushItem.productPricePush, pushItem.pushSubscriptions)\n );\n },\n [PUSH_UPDATE_UNDERLYING](\n state: State,\n pushItem: { underlying: UnderlyingPricePush; pushSubscriptions: { [key: string]: boolean } }\n ) {\n state.underlyings?.holder.forEach((tu) =>\n tryUpdateUnderlyingValue(tu, pushItem.underlying, pushItem.pushSubscriptions)\n );\n },\n};\n\nexport const getters = {\n watchedUnderlyings: (state: State) => {\n return state.watchedUnderlyings;\n },\n watchedProducts: (state: State) => {\n return state.watchedProducts;\n },\n underlyings: (state: State) => {\n return state.underlyings?.holder;\n },\n products: (state: State) => {\n return state.products?.holder;\n },\n totalCount: (state: State) => {\n return state.watchedUnderlyings.length + state.watchedProducts.length;\n },\n};\n\nexport const actions = {\n async fetchActiveAsync({ commit, state }: { commit: Commit; state: State }): Promise<void> {\n if (state.watchedProducts.length == 0 && state.watchedUnderlyings.length == 0) return;\n\n const instrumentIds: WatchListInstrumentIdsPayload = {\n productIds: state.watchedProducts.map((p) => p.securityCode),\n underlyingIds: state.watchedUnderlyings.map((u) => u.isin),\n };\n const response = await httpClient.post<\n WatchListInstrumentIdsPayload,\n AxiosResponse<WatchListActiveInstrumentsModel>\n >(getTheQApiUrl(Controller.Watchlist, 'FilterActive'), instrumentIds);\n\n commit(\n PersitAndShareMutationTypes.UPDATE_UNDERLYING,\n filterwatchedUnderlyings(state.watchedUnderlyings, response.data.underlyingIds)\n );\n commit(PersitAndShareMutationTypes.UPDATE_PRODUCT, filterProducts(state.watchedProducts, response.data.productIds));\n },\n\n async fetchDetailsAsync({ commit, state }: { commit: Commit; state: State }): Promise<void> {\n const instrumentIds: WatchListInstrumentIdsPayload = {\n productIds: state.watchedProducts.map((p) => p.securityCode),\n underlyingIds: state.watchedUnderlyings.map((u) => u.isin),\n };\n const response = await httpClient.post<\n WatchListInstrumentIdsPayload,\n AxiosResponse<WatchListInstrumentDetailsModel>\n >(getTheQApiUrl(Controller.Watchlist, 'FetchDetails'), instrumentIds);\n\n if (state.watchedUnderlyings.length !== response.data.underlyings.length) {\n commit(\n PersitAndShareMutationTypes.UPDATE_UNDERLYING,\n filterwatchedUnderlyings(\n state.watchedUnderlyings,\n response.data.underlyings.map((u) => u.isin)\n )\n );\n }\n\n if (state.watchedProducts.length !== response.data.products.length) {\n commit(\n PersitAndShareMutationTypes.UPDATE_PRODUCT,\n filterProducts(\n state.watchedProducts,\n response.data.products.map((p) => p.securityCode).filter(isNotNullOrUndefined)\n )\n );\n }\n const watchedProducts = mapWatchedProducts(state.watchedProducts, response.data.products);\n const productsPushPayload = createPushPayload<Array<WatchedProductModel>, ProductModel>(\n watchedProducts,\n (holder) => holder\n );\n\n commit(LightStreamerProductSubscriptionMutationTypes.CACHE_WATCHLIST_PRODUCT, productsPushPayload);\n\n const underlyingPushPayload = createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(\n response.data.underlyings,\n (holder: UnderlyingModel[]): Array<UnderlyingModel> => holder\n );\n commit(LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_WATCHLIST_UNDERLYING, underlyingPushPayload);\n },\n\n addUnderlying({ commit }: { commit: Commit; state: State }, isin: string): void {\n commit(PersitAndShareMutationTypes.ADD_UNDERLYING, isin);\n },\n\n removeUnderlying({ commit }: { commit: Commit; state: State }, isin: string): void {\n commit(PersitAndShareMutationTypes.REMOVE_UNDERLYING, isin);\n },\n\n addProduct({ commit }: { commit: Commit; state: State }, product: { code: string; price: PriceModel }): void {\n commit(PersitAndShareMutationTypes.ADD_PRODUCT, product);\n },\n\n removeProduct({ commit }: { commit: Commit; state: State }, code: string): void {\n commit(PersitAndShareMutationTypes.REMOVE_PRODUCT, code);\n },\n updateUnderlyingSorting(\n { commit, state }: { commit: Commit; state: State },\n { oldIndex, newIndex }: { oldIndex: number; newIndex: number }\n ): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sortedwatchedUnderlyings = arrayMoveImmutable(state.underlyings?.holder!, oldIndex, newIndex);\n\n commit(\n LightStreamerUnderlyingSubscriptionMutationTypes.CACHE_WATCHLIST_UNDERLYING,\n createPushPayload<Array<UnderlyingModel>, UnderlyingModel>(sortedwatchedUnderlyings, (holder) => holder)\n );\n commit(\n PersitAndShareMutationTypes.UPDATE_UNDERLYING,\n arrayMoveImmutable(state.watchedUnderlyings, oldIndex, newIndex)\n );\n },\n updateProductSorting(\n { commit, state }: { commit: Commit; state: State },\n { oldIndex, newIndex }: { oldIndex: number; newIndex: number }\n ): void {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sortedProducts = arrayMoveImmutable(state.products?.holder!, oldIndex, newIndex);\n\n commit(\n LightStreamerProductSubscriptionMutationTypes.CACHE_WATCHLIST_PRODUCT,\n createPushPayload<Array<WatchedProductModel>, ProductModel>(sortedProducts, (holder) => holder)\n );\n\n const sortedWatchedProducts = arrayMoveImmutable(state.watchedProducts, oldIndex, newIndex);\n commit(PersitAndShareMutationTypes.UPDATE_PRODUCT, sortedWatchedProducts);\n },\n};\n","import { ProductModel, ProductPricePush, UnderlyingModel, UnderlyingPricePush } from '../../../types/the-q-api';\nimport { MutationPushPayloadHolder } from '../../../types/vue-api';\nimport Vue from 'vue';\nimport evaluateExpressionByKey, {\n hasExpressionField,\n setExpressionValue,\n} from '../../../utils/value-formatter/format-helper';\n\n/**\n * Vuex module namespaces\n */\n\nexport const underlyingNamespace = 'underlying/';\nexport const productNamespace = 'product/';\nexport const realtimeNamespace = 'realtime/';\nexport const watchlistNamespace = 'watchlist/';\nexport const bestMatchNamespace = 'bestMatch/';\n\n/**\n * PUSHING PRODUCT\n */\n\n/**\n * push puffer number for cashing items\n * @returns number for puffer\n */\nexport const pushPufferNumber = parseInt(process.env.VUE_APP_LIGHTSTREAMER_UPDATE_PUSH_PUFFER_ITEMS) * 2;\n\n/**\n * Frequenz to set trigger in rows when get visible. E.g. every 10 rows a visible trigger is set.\n * @returns frequenz for tigger\n */\nexport const pushTriggerFrequenz = parseInt(process.env.VUE_APP_LIGHTSTREAMER_UPDATE_PUSH_PUFFER_ITEMS);\n\n/**\n * Pushing subscription mutations for product\n */\nexport const PUSH_SUBSCRIPTION_PRODUCT_GETTER = 'PUSH_SUBSCRIPTION_PRODUCT_GETTER';\n\n/**\n * Pushing update mutations for product\n */\nexport const PUSH_UPDATE_PRODUCT = 'PUSH_UPDATE_PRODUCT';\n\n/**\n * Contains all namespaces for modules which have registerd a PUSH_UPDATE_UNDERLYING mutation\n */\nexport const PUSH_PRODUCT_NAMESPACES = [productNamespace, watchlistNamespace, bestMatchNamespace];\n\n/**\n * Pushing mutations for product\n */\nexport enum LightStreamerProductSubscriptionMutationTypes {\n CACHE_PRODUCT = 'CACHE_PRODUCT',\n CACHE_PRODUCTS = 'CACHE_PRODUCTS',\n CACHE_PRODUCTS_CONCAT = 'CACHE_PRODUCTS_CONCAT',\n CACHE_PRODUCTS_SEARCH = 'CACHE_PRODUCTS_SEARCH',\n CACHE_PRODUCTS_BEST_MATCHES = 'CACHE_PRODUCTS_BEST_MATCHES',\n CACHE_TOP_LEVERAGE_TABLE_SEARCH_PRODUCTS = 'CACHE_TOP_LEVERAGE_TABLE_SEARCH_PRODUCTS',\n CACHE_WATCHLIST_PRODUCT = 'CACHE_WATCHLIST_PRODUCT',\n}\n\n/**\n * Tries to update underlying push item in underlying\n * @param product\n * @param productPush\n * @param productPushValues\n */\nexport function tryUpdateProductValue(\n product: ProductModel | null,\n productPush: ProductPricePush,\n productPushValues: { [key: string]: boolean }\n) {\n if (product && productPush && product.isin === productPush.isin) {\n Object.keys(productPushValues).forEach((pushValueProperty) => {\n if (\n !hasExpressionField(pushValueProperty, {\n product: productPush,\n })\n ) {\n Vue.$log.debug('pushValue not set ', pushValueProperty);\n return;\n }\n\n const pushValue = evaluateExpressionByKey(pushValueProperty, {\n product: productPush,\n });\n setExpressionValue(pushValueProperty, pushValue, {\n product,\n });\n });\n }\n}\n\n/**\n * PUSHING UNDERLYING\n */\n\n/**\n * Pushing subscription mutations for underlying\n */\nexport const PUSH_SUBSCRIPTION_UNDERLYING_GETTER = 'PUSH_SUBSCRIPTION_UNDERLYING_GETTER';\n\n/**\n * Pushing update mutations for underlying\n */\nexport const PUSH_UPDATE_UNDERLYING = 'PUSH_UPDATE_UNDERLYING';\n\n/**\n * Contains all namespaces for modules which have registerd for pushing\n */\nexport const PUSH_UNDERLYING_NAMESPACES = [underlyingNamespace, realtimeNamespace, watchlistNamespace];\n\n/**\n * Pushing mutations for underlying\n */\nexport enum LightStreamerUnderlyingSubscriptionMutationTypes {\n CACHE_UNDERLYING = 'CACHE_UNDERLYING',\n CACHE_UNDERLYINGS_BY_KEY = 'CACHE_UNDERLYINGS_BY_KEY',\n CACHE_TEASER_UNDERLYINGS = 'CACHE_TEASER_UNDERLYINGS',\n CACHE_PRODUCT_UNDERLYING = 'CACHE_PRODUCT_UNDERLYING',\n CACHE_TOP_FLOP_TABLE_SEARCH_PRODUCTS = 'CACHE_TOP_FLOP_TABLE_SEARCH_PRODUCTS',\n CACHE_UNDERLYINGS = 'CACHE_UNDERLYINGS',\n CACHE_WATCHLIST_UNDERLYING = 'CACHE_WATCHLIST_UNDERLYING',\n}\n\n// Helper function which helps in checking the types\nexport function createPushPayload<T, Q>(\n holder: T,\n getSubscriptionPushItems: (holder: T) => Array<Q>\n): MutationPushPayloadHolder<T, Q> {\n return {\n holder,\n getSubscriptionPushItems,\n } as MutationPushPayloadHolder<T, Q>;\n}\n\n/**\n * Tries to update underlying push item in underlying\n * @param underlying\n * @param underlingPush\n * @param underlyingPushValues\n */\nexport function tryUpdateUnderlyingValue(\n underlying: UnderlyingModel | UnderlyingModel | null,\n underlingPush: UnderlyingPricePush,\n underlyingPushValues: { [key: string]: boolean }\n) {\n if (underlying && underlingPush && underlying.isin === underlingPush.isin) {\n const currentTimeStamp = new Date(underlying.timeStamp ?? 0);\n const pushTimeStamp = new Date(underlingPush.timeStamp ?? 0);\n\n if (pushTimeStamp > currentTimeStamp) {\n Object.keys(underlyingPushValues).forEach((pushValueProperty) => {\n if (\n !hasExpressionField(pushValueProperty, {\n underlying: underlingPush,\n })\n ) {\n Vue.$log.debug('pushValue not set ', pushValueProperty);\n return;\n }\n\n const pushValue = evaluateExpressionByKey(pushValueProperty, {\n underlying: underlingPush,\n });\n\n setExpressionValue(pushValueProperty, pushValue, {\n underlying: underlying,\n });\n });\n }\n }\n}\n","// Register each file as a corresponding Vuex module. Module nesting\n// will mirror [sub-]directory hierarchy and modules are namespaced\n// as the camelCase equivalent of their file name.\nimport camelCase from 'lodash/camelCase';\n\nconst modulesCache = {};\nconst storeData = { modules: {} };\n\n// Recursively get the namespace of a Vuex module, even if nested.\nfunction getNamespace(subtree, path) {\n if (path.length === 1) return subtree;\n\n const namespace = path.shift();\n subtree.modules[namespace] = {\n modules: {},\n namespaced: true,\n ...subtree.modules[namespace],\n };\n return getNamespace(subtree.modules[namespace], path);\n}\n\n(function updateModules() {\n // Allow us to dynamically require all Vuex module files.\n // https://webpack.js.org/guides/dependency-management/#require-context\n const requireModule = require.context(\n // Search for files in the current directory.\n '.',\n // Search for files in subdirectories.\n true,\n // Include any .ts files that are not this file or a unit test.\n /^((?!index|\\.unit\\.).)*\\.ts$/\n );\n\n // For every Vuex module...\n requireModule.keys().forEach((fileName) => {\n const moduleDefinition = requireModule(fileName).default || requireModule(fileName);\n\n // Skip the module during hot reload if it refers to the\n // same module definition as the one we have cached.\n if (modulesCache[fileName] === moduleDefinition) return;\n\n // Update the module cache, for efficient hot reloading.\n modulesCache[fileName] = moduleDefinition;\n\n // Get the module path as an array.\n const modulePath = fileName\n // Remove the \"./\" from the beginning.\n .replace(/^\\.\\//, '')\n // Remove the file extension from the end.\n .replace(/\\.\\w+$/, '')\n // Split nested modules into an array path.\n .split(/\\//)\n // camelCase all module namespaces and names.\n .map(camelCase);\n\n // Get the modules object for the current path.\n const { modules } = getNamespace(storeData, modulePath);\n\n // Add the module to our modules object.\n const module = modulePath.pop();\n\n if (module !== undefined) {\n modules[module] = {\n // Modules are namespaced by default.\n namespaced: true,\n ...moduleDefinition,\n };\n }\n });\n\n // If the environment supports hot reloading...\n if (module.hot) {\n // Whenever any Vuex module is updated...\n module.hot.accept(requireModule.id.toString(), () => {\n // Update `storeData.modules` with the latest definitions.\n updateModules();\n // Trigger a hot update in the store.\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n require('../store').default.hotUpdate({ modules: storeData.modules });\n });\n }\n})();\n\nexport default storeData.modules;\n","import allModules from '@state/modules';\nimport store from '@state/store';\n\nexport default function dispatchActionForAllModules(\n actionName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { modules = allModules, modulePrefix = '', flags = {} as any } = {}\n) {\n // For every module...\n for (const moduleName in modules) {\n const moduleDefinition = modules[moduleName];\n\n // If the action is defined on the module...\n if (moduleDefinition.actions && moduleDefinition.actions[actionName]) {\n // Dispatch the action if the module is namespaced. Otherwise,\n // set a flag to dispatch the action globally at the end.\n if (moduleDefinition.namespaced) {\n store.dispatch(`${modulePrefix}${moduleName}/${actionName}`);\n } else {\n flags.dispatchGlobal = true;\n }\n }\n\n // If there are any nested sub-modules...\n if (moduleDefinition.modules) {\n // Also dispatch the action for these sub-modules.\n dispatchActionForAllModules(actionName, {\n modules: moduleDefinition.modules,\n modulePrefix: modulePrefix + moduleName + '/',\n flags,\n });\n }\n }\n\n // If this is the root and at least one non-namespaced module\n // was found with the action...\n if (!modulePrefix && flags.dispatchGlobal) {\n // Dispatch the action globally.\n store.dispatch(actionName);\n }\n}\n","import { getCurrentWebsiteKey } from '@/src/utils/culture-helper';\nimport VuexPersistence from 'vuex-persist';\nimport {\n State as RealtimeState,\n isPersistMutation as isPersistRealtimeMutation,\n reducePersistState as reduceRealtimeState,\n} from '../../modules/realtime';\nimport {\n State as WatchlistState,\n isPersistMutation as isPersistWatchlistMutation,\n reducePersistState as reduceWatchlistState,\n} from '../../modules/watchlist';\n\nconst vuexLocalStorage = new VuexPersistence<{ realtime: RealtimeState; watchlist: WatchlistState }>({\n storage: window.localStorage,\n key: 'citi_state_' + getCurrentWebsiteKey(),\n reducer: (store) => ({\n realtime: reduceRealtimeState(store.realtime),\n watchlist: reduceWatchlistState(store.watchlist),\n }),\n filter: (mutation) => {\n return isPersistRealtimeMutation(mutation.type) || isPersistWatchlistMutation(mutation.type);\n },\n});\n\nexport default vuexLocalStorage.plugin;\n","import createMutationsSharer from 'vuex-shared-mutations';\nimport { isShareMutation } from '../../modules/watchlist';\n\nconst sharedMutation = createMutationsSharer({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n predicate: (mutation, state) => {\n return isShareMutation(mutation.type);\n },\n});\nexport default sharedMutation;\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport dispatchActionForAllModules from '@utils/dispatch-action-for-all-modules';\n\nimport modules from './modules';\n\n//import lightStreamerPlugin from '@state/plugins/light-streamer'; // CITISUP-5079\nimport vuexLocalStoragePlugin from '@state/plugins/persist';\nimport sharedMutationPlugin from '@state/plugins/shared-mutations';\n\nVue.use(Vuex);\n\nconst store = new Vuex.Store({\n modules,\n // Enable strict mode in development to get a warning\n // when mutating state outside of a mutation.\n // https://vuex.vuejs.org/guide/strict.html\n strict: process.env.NODE_ENV !== 'production',\n\n // specify store plugins, but without plugin \"lightStreamerPlugin\" (CITISUP-5079)\n plugins: [vuexLocalStoragePlugin, sharedMutationPlugin],\n});\n\nexport default store;\n\n// Automatically run the `init` action for every module,\n// if one exists.\ndispatchActionForAllModules('init');\n","/**\n * Controler end points for theq api\n */\nexport enum Controller {\n Underlying,\n Product,\n ProductSearch,\n BestMatch,\n FieldFormats,\n Charts,\n RealtimeCharts,\n TriggerProbabilityCharts,\n RollingHistory,\n StrikeHistory,\n ContentLikes,\n GlobalSearch,\n NewsletterSubscription,\n DataSource,\n Document,\n Watchlist,\n Priip,\n}\n\nexport enum TextImageTeaserTypes {\n Image = 'image',\n Video = 'video',\n}\n\n/**\n * Bootstrap vue items https://bootstrap-vue.org\n */\n\nexport enum PopoverPosition {\n Auto = 'auto',\n Top = 'top',\n TopLeft = 'topleft',\n TopRight = 'topright',\n Right = 'right',\n RightTop = 'righttop',\n RightBottom = 'rightbottom',\n Bottom = 'bottom',\n BottomLeft = 'bottomleft',\n BottomRight = 'bottomright',\n Left = 'left',\n LeftTop = 'lefttop',\n LeftBottom = 'leftbottom ',\n}\n\nexport enum PopoverFallback {\n Flip = 'flip',\n Clockwise = 'clockwise',\n Counterclockwise = 'counterclockwise ',\n}\n\nexport enum TextAlign {\n Left = 'Left',\n Right = 'Right',\n Center = 'Center',\n}\nexport enum SortingDirection {\n Descending = 'Descending',\n Ascending = 'Ascending',\n}\nexport enum Separator {\n NewLine = 'NewLine',\n Slash = 'Slash',\n}\n\n/**\n * Lightstreamer\n */\nexport enum PriceProvider {\n Citi = 0,\n TtmZeroUnderlying = 1,\n TtmZeroProduct = 2,\n CitiAu = 3,\n}\nexport enum InstrumentOriginTimeZone {\n CET,\n EET,\n GMT,\n AET,\n}\n\n/**\n * Data default formatings\n * Note: Default format settings are starting with an upper letter\n */\nexport enum DefaultFormat {\n Date = 'Date',\n Time = 'Time',\n DateTime = 'DateTime',\n Number = 'Number',\n Decimal = 'Decimal',\n Percent = 'Percent',\n Ordinal = 'Ordinal',\n DocumentDate = 'DocumentDate',\n BlogDate = 'BlogDate',\n}\n\n/**\n * episerver Settings\n */\nexport enum AnyCheckOptions {\n Yes = 'Yes',\n No = 'No',\n Any = 'Any',\n}\n\nexport enum ProductSubTypeAny {\n Call = 'Call',\n Put = 'Put',\n Any = 'Any',\n}\n\n/**\n * Product\n */\n\nexport enum ProductSubTypeBo {\n Call = 'Call',\n Put = 'Put',\n}\n\nexport const ProductSubTypeAnyMap = new Map<ProductSubTypeAny, ProductSubTypeBo | null>()\n .set(ProductSubTypeAny.Call, ProductSubTypeBo.Call)\n .set(ProductSubTypeAny.Put, ProductSubTypeBo.Put)\n .set(ProductSubTypeAny.Any, null);\n\nexport enum ProductTypeBo {\n Warrant = 'Warrant',\n SpreadWarrant = 'SpreadWarrant',\n Turbo = 'Turbo',\n OpenEndTurbo = 'OpenEndTurbo',\n MiniFuture = 'MiniFuture',\n Factor = 'Factor',\n Discount = 'Discount',\n Bonus = 'Bonus',\n ReverseBonus = 'ReverseBonus',\n CappedReverseBonus = 'CappedReverseBonus',\n CappedBonus = 'CappedBonus',\n IndexTracker = 'IndexTracker',\n Outperformance = 'Outperformance',\n Sprint = 'Sprint',\n GslMini = 'GslMini',\n Instalment = 'Instalment',\n InstalmentMini = 'InstalmentMini',\n Instreet = 'Instreet',\n MasonStevens = 'MasonStevens',\n SelfFundingInstalment = 'SelfFundingInstalment',\n SelfFundingInstalmentMini = 'SelfFundingInstalmentMini',\n Obbligazioni = 'Obbligazioni',\n Certificati = 'Certificati',\n}\n\n/**\n * Product\n */\n\nexport enum ProductHeadlineLines {\n OneLine = 'OneLine',\n TwoLines = 'TwoLines',\n}\n\nexport enum ExchangeBo {\n EUWX,\n XAMS,\n XNDX,\n XPAR,\n XLIS,\n NMTF,\n}\n\nexport enum ExerciseStyleBo {\n European,\n American,\n}\n\nexport enum SettlementTypeBo {\n Cash,\n Physical,\n}\n\nexport enum Irs871 {\n I,\n D,\n G,\n}\n\nexport enum TopLeverageTableFilter {\n TopLeverageAexNl,\n TopLeverageIndicesNl,\n TopLeverageShareNl,\n TopLeverageGoldEuroUsdNl,\n}\n\nexport enum DigitalAssetDocumentType {\n None,\n BaseProspectus,\n Summary,\n Supplement,\n SecuritiesNote,\n}\n\n/**\n * Underlying\n */\nexport enum UnderlyingType {\n Default = 'Default',\n LeveragedUnderlying = 'LeveragedUnderlying',\n RollingFutureUnderlying = 'RollingFutureUnderlying',\n DefaultCacBase = 'DefaultCacBase',\n}\n\n/**\n * Routings for episerver\n */\n\nexport enum RoutingParameters {\n Isin = 'Isin',\n IsinOrNsin = 'IsinOrNsin',\n Width = 'Width',\n Height = 'Height',\n UnderlyingName = 'UnderlyingName',\n}\n\n/**\n * Colors\n */\nexport enum Colors {\n black = '#0f1632',\n cyanBlue = '#73c2fc',\n turquoiseBlue = '#00af68',\n marineBlue = '#002d72',\n deepRed = '#ff3c28',\n}\n\n/**\n * Chart types\n */\n\nexport enum ChartColors {\n underlying = Colors.black,\n productBid = Colors.cyanBlue,\n productAsk = Colors.deepRed,\n triggerProbability = Colors.turquoiseBlue,\n}\n\nexport enum ChartPeriods {\n Intraday = 'intraday',\n Week = 'week',\n Month = 'month',\n Year = 'year',\n Year3 = 'year3',\n Year5 = 'year5',\n}\n\nexport enum ChartSeries {\n price = 'Price',\n bid = 'Bid',\n ask = 'Ask',\n realtime = 'Realtime',\n}\n\nexport enum Size {\n xxs = 'xxs',\n xs = 'xs',\n s = 's',\n m = 'm',\n l = 'l',\n xl = 'xl',\n xxl = 'xxl',\n}\n\nexport enum Direction {\n down = 0,\n up = 180,\n right = 270,\n left = 90,\n}\n\nexport enum ComparisonOperators {\n Equal = 'Equal',\n NotEqual = 'NotEqual',\n Less = 'Less',\n Greater = 'Greater',\n LessOrEqual = 'LessOrEqual',\n GreaterOrEqual = 'GreaterOrEqual',\n}\n\nexport enum ChartPatterns {\n Candlestick = 'candlestick',\n Line = 'line',\n}\n\n/**\n * Vue Component Enums\n */\n\nexport enum DropDownItemType {\n item = 'Item',\n header = 'Header',\n splitter = 'Splitter',\n}\n\nexport enum NewTeaserType {\n ImageTop = 'ImageTop',\n ImageBottom = 'ImageBottom',\n ImageRight = 'ImageRight',\n}\n\n/**\n * Global Objects\n */\nexport enum EntityType {\n Product = 'Product',\n Underlying = 'Underlying',\n}\n\nexport enum MissingCookieViewMode {\n //Modal overlay view\n Popup = 0,\n //Video content replacement\n Content = 1,\n //Single line text\n Text = 2,\n}\n\nexport enum MissingCookieModalId {\n MissingLikeCookieModal = 'MissingLikeCookieModal',\n MissingWatchlistCookieModal = 'MissingWatchlistCookieModal',\n}\n\nexport enum TextImageTeaserBackground {\n White = 'white',\n Grey = 'grey-background',\n WithSeparatingLine = 'with-separating-line',\n}\n\nexport enum HttpStatusCodes {\n OK = 200,\n Created = 201,\n NoContent = 204,\n BadRequest = 400,\n NotFound = 404,\n InternalServerError = 500,\n UnknownError = 0,\n}\n\nexport enum CookieType {\n Technical = 'Technical',\n Marketing = 'Marketing',\n Comfort = 'Comfort',\n ThirdPartyMedia = 'ThirdPartyMedia',\n}\n\nexport enum CookieCreateState {\n Created = 1,\n Exists = 2,\n NotAccepted = 3,\n}\n\nexport enum ArchiveReason {\n Delisting = 0,\n Termination = 1,\n KnockedOut = 2,\n Matured = 3,\n}\n\n/**\n * Product key mapping\n */\nexport enum ProductKey {\n Agio = 'product.agio',\n BonusYield = 'product.',\n BonusLevel = 'product.bonusLevel.amount',\n BonusBarrier = 'product.bonusBarrier.amount',\n CapBonusLevel = 'product.capBonusLevel.amount',\n ChangePercent = 'product.price.changePercent',\n CapBonus = 'product.capBonusCap.amount',\n CapBonusBarrier = 'product.capBonusBarrier.amount',\n DeltaOverRatio = 'product.ttmKeyData.blackScholesQuantities.deltaOverRatio',\n DistanceToStopLoss = 'product.distanceToStopLoss',\n Discount = 'product.ttmKeyData.spotAndCertPrice.discount',\n Factor = 'product.factor',\n IssueDate = 'product.issueDate',\n KoBarrier = 'product.koBarrier.amount',\n Leverage = 'product.ttmKeyData.spotAndCertPrice.leverage',\n MaturityDate = 'product.maturityDate',\n MaximumAmount = 'product.ttmKeyData.independent.maximumAmount',\n MaximumYield = 'ttmKeyData.certPrice.maximumYield',\n Omega = 'product.ttmKeyData.blackScholesQuantities.omega',\n Participation = 'product.participationRate',\n RevBonusBarrier = 'product.revBonusBarrier.amount',\n RevCapBonusBarrier = 'product.revCapBonusBarrier.amount',\n RevBonusLevel = 'product.revBonusLevel.amount',\n RevCapBonusLevel = 'product.revCapBonusLevel.amount',\n RiskBuffer = 'product.riskBuffer',\n Strike = 'product.strike.amount',\n SpreadWarrantCapFloor = 'product.spreadWarrantCapFloor',\n SprintStartValue = 'product.sprintStartValue.amount',\n SprintStopValue = 'product.sprintStopValue.amount',\n UnderlyingName = 'product.underlyings.0.name',\n}\n\nexport enum DocumentType {\n OtherDigitalAsset = 'OtherDigitalAsset',\n FinalTerms = 'FinalTerms',\n BaseProspectus = 'BaseProspectus',\n Supplement = 'Supplement',\n Factsheet = 'Factsheet',\n KeyInformationDocument = 'KeyInformationDocument',\n ReductionInYield = 'ReductionInYield',\n SecuritiesNote = 'SecuritiesNote',\n}\n\nexport enum TopFlop {\n Top = 'Top',\n Flop = 'Flop',\n}\n\nexport enum KnockoutTimeIndicativeInfo {\n KoTimeInCetIsIndicative = 'KoTimeInCetIsIndicative',\n ClosingAuctionMayAlsoLeadToKo = 'ClosingAuctionMayAlsoLeadToKo',\n}\n\nexport enum SearchState {\n Initial,\n Failed,\n NotFound,\n}\n","import { AxiosError } from 'axios';\nimport {\n InstrumentMergeColumnSetting,\n TableColumnSettingBase,\n TeaserImageSetting,\n TeaserSetting,\n TeaserVideoSetting,\n} from './episerver-api';\nimport { OhlcChartPoint, OptionGroup, PriceModel } from './the-q-api';\nimport { HeadlineBlock, MutationPushPayloadHolder } from './vue-api';\nimport { TextImageTeaserTypes } from './enumerations';\nimport Vue from 'vue';\n\nexport function isOhlcChartPoint(point: unknown): point is OhlcChartPoint {\n const ohlc = point as OhlcChartPoint;\n return ohlc.close !== undefined && ohlc.high !== undefined && ohlc.low !== undefined && ohlc.open !== undefined;\n}\n\nexport function isHeadlineBlock(block: Vue | HeadlineBlock): block is HeadlineBlock {\n const headlineBlock = block as HeadlineBlock;\n return (\n headlineBlock.isVisible !== undefined &&\n headlineBlock.blockHeadline !== undefined &&\n headlineBlock.setHeadlineVisibility !== undefined\n );\n}\n\nexport function isMergeColumnSetting(\n columnSettings: TableColumnSettingBase | InstrumentMergeColumnSetting\n): columnSettings is InstrumentMergeColumnSetting {\n return !!(columnSettings as InstrumentMergeColumnSetting)?.columnMergeSetting;\n}\n\nexport function isPriceModel(value: unknown): value is PriceModel {\n const price = value as PriceModel;\n return price?.amount !== undefined && price?.currencyCode !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n if (typeof value === 'number') return true;\n return false;\n}\n\nexport function isOptionGroup(value: unknown): value is OptionGroup {\n const optionGroup = value as OptionGroup;\n return optionGroup?.header !== undefined;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isMutationPushPayloadHolder(value: unknown): value is MutationPushPayloadHolder<any, any> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const payloadHolder = value as MutationPushPayloadHolder<any, any>;\n return payloadHolder?.holder !== undefined && payloadHolder?.getSubscriptionPushItems !== undefined;\n}\n\nexport function isTeaserImageSetting(teaser: TeaserSetting): teaser is TeaserImageSetting {\n return teaser.type === TextImageTeaserTypes.Image;\n}\n\nexport function isTeaserVideoSetting(teaser: TeaserSetting): teaser is TeaserVideoSetting {\n return teaser.type === TextImageTeaserTypes.Video;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isAxiosError(candidate: any): candidate is AxiosError {\n return candidate.isAxiosError === true;\n}\n\nexport function isNotNullOrUndefined<TValue>(value: TValue | null | undefined): value is TValue {\n return value !== null && value !== undefined;\n}\n","import {\n BestMatchSearchRequestModel,\n ChartPoint,\n DateRangeParameterModel,\n OhlcChartPoint,\n PriceModel,\n ProductModel,\n ProductSearchParameterModel,\n RollingHistoryModel,\n SortOrder,\n SubscriptionPush,\n UnderlyingModel,\n ValueRangeParameterModel,\n} from '@src/types/the-q-api';\n\nimport {\n ChartColors,\n ChartPeriods,\n ChartSeries,\n DropDownItemType,\n InstrumentOriginTimeZone,\n ProductSubTypeBo,\n ProductTypeBo,\n RoutingParameters,\n UnderlyingType,\n DocumentType,\n} from '@/src/types/enumerations';\nimport {\n ChartsApiFilter,\n ColumnMergeSetting,\n InstrumentMergeColumnSetting,\n InstrumentTableColumnSetting,\n InstrumentTableSetting,\n TableColumnSettingBase,\n DownloadLink,\n Download,\n} from '@src/types//episerver-api';\nimport { MutationPayload } from 'vuex';\nimport { ItemUpdate, LightstreamerClient } from 'lightstreamer-client-web';\nimport { BvTableField } from 'bootstrap-vue';\nimport {\n GeneralFormatField,\n ProductDataField,\n ProductHistoryDataField,\n UnderlyingDataField,\n} from '@src/types/episerver-api-instrument';\nimport { GroupedDownloadGroup } from './ce-component-types';\n\n/**\n * Type used for routing in url helper\n */\nexport interface Route {\n route: RoutingParameters;\n parameter: string;\n}\n\n/**\n * Type used in AdDropDownList\n */\nexport interface DropDownItem {\n value: string | number | null;\n text: string | null;\n type: DropDownItemType;\n}\n\n/**\n * Value types used in api\n */\nexport type ApiTypeValue = string | number | PriceModel | Date | null;\nexport type ApiModel = ProductModel | UnderlyingModel | RollingHistoryModel;\nexport type FormatDataField = UnderlyingDataField | ProductDataField | ProductHistoryDataField | GeneralFormatField;\n\nexport enum LabelPosition {\n Left = 3,\n Right = 1,\n}\nexport class DataSeries {\n data: ChartPoint[];\n color: string;\n labels: LabelPosition;\n series: ChartSeries;\n constructor(series: ChartSeries, data: ChartPoint[], color: ChartColors, labels: LabelPosition = 3) {\n this.data = data;\n this.color = color.toString();\n this.labels = labels;\n this.series = series;\n }\n}\n\nexport interface HeadlineBlock {\n blockHeadline: string | undefined;\n isVisible: boolean;\n setHeadlineVisibility(visible: boolean): void;\n}\n\nexport class OhlcDataSeries {\n data: OhlcChartPoint[];\n labels: LabelPosition;\n color: string;\n constructor(data: OhlcChartPoint[]) {\n this.data = data;\n this.labels = LabelPosition.Left;\n this.color = ChartColors.underlying.toString();\n }\n}\n\nexport class ChartsApiFilterItem implements ChartsApiFilter {\n period: ChartPeriods;\n timeZone: InstrumentOriginTimeZone;\n symbol: string;\n pointInterval: number | null;\n timeFrom: number | null;\n timeTo: number | null;\n series: string;\n\n constructor(\n period: ChartPeriods,\n series: ChartSeries[],\n symbol: string,\n timeZone: InstrumentOriginTimeZone,\n pointInterval: number | null,\n timeFrom: number | null,\n timeTo: number | null\n ) {\n this.period = period;\n this.timeZone = timeZone;\n this.pointInterval = pointInterval;\n this.symbol = symbol;\n this.timeFrom = timeFrom;\n this.timeTo = timeTo;\n this.series = series.join(',');\n }\n}\n\nexport class ProductTeaserSettings {\n desktopTableColumnsSetting: InstrumentTableColumnSetting[];\n tabletTableColumnsSetting: InstrumentTableColumnSetting[];\n mobileTableColumnsSetting: InstrumentTableColumnSetting[];\n\n constructor(\n desktopTableColumnsSetting: InstrumentTableColumnSetting[],\n tabletTableColumnsSetting: InstrumentTableColumnSetting[],\n mobileTableColumnsSetting: InstrumentTableColumnSetting[]\n ) {\n this.desktopTableColumnsSetting = desktopTableColumnsSetting;\n this.tabletTableColumnsSetting = tabletTableColumnsSetting;\n this.mobileTableColumnsSetting = mobileTableColumnsSetting;\n }\n}\nexport class ChartConfiguration {\n forceDropDownForChartPeriods = false;\n forceRadioButtonsForChartPeriods = false;\n legendInTwoLineModeAtTablet = false;\n}\n\nexport interface TableField extends BvTableField {\n sortNumber?: number;\n key?: string;\n label?: string;\n mergeColumnSettings?: ColumnMergeSetting[];\n isEllipsis?: boolean;\n}\n\nexport class ProductSearchParametersFilter implements ProductSearchParameterModel {\n isRequestWithoutUnderlyingWhenNoResult = false;\n underlyingIsinOrIsins: string | string[] | null = null;\n productType: ProductTypeBo | null = null;\n categoryName: string | null = null;\n strikeStopLoss: ValueRangeParameterModel | null = null;\n koBarrier: ValueRangeParameterModel | null = null;\n omega: ValueRangeParameterModel | null = null;\n oneDayOmega: ValueRangeParameterModel | null = null;\n pureDelta: ValueRangeParameterModel | null = null;\n deltaOverRatio: ValueRangeParameterModel | null = null;\n sortOrders: SortOrder[] = [];\n subType: ProductSubTypeBo | null = null;\n countryName: string | null = null;\n sectorName: string | null = null;\n underlyingCategory: UnderlyingType | null = null;\n strike: ValueRangeParameterModel | null = null;\n stopLoss: ValueRangeParameterModel | null = null;\n issueDate: DateRangeParameterModel | null = null;\n maturityDate: DateRangeParameterModel | null = null;\n leverage: ValueRangeParameterModel | null = null;\n distanceToKnockout: ValueRangeParameterModel | null = null;\n distanceToKnockoutRelToSpot: ValueRangeParameterModel | null = null;\n changePercent: ValueRangeParameterModel | null = null;\n participation: ValueRangeParameterModel | null = null;\n capBonus: ValueRangeParameterModel | null = null;\n discount: ValueRangeParameterModel | null = null;\n sidewayYield: ValueRangeParameterModel | null = null;\n sidewayYieldPerAnno: ValueRangeParameterModel | null = null;\n bonusBarrier: ValueRangeParameterModel | null = null;\n revBonusBarrier: ValueRangeParameterModel | null = null;\n revCapBonusBarrier: ValueRangeParameterModel | null = null;\n capBonusBarrier: ValueRangeParameterModel | null = null;\n bonusLevel: ValueRangeParameterModel | null = null;\n revBonusLevel: ValueRangeParameterModel | null = null;\n revCapBonusLevel: ValueRangeParameterModel | null = null;\n capBonusLevel: ValueRangeParameterModel | null = null;\n bonusYield: ValueRangeParameterModel | null = null;\n riskBuffer: ValueRangeParameterModel | null = null;\n agio: ValueRangeParameterModel | null = null;\n sprintStartValue: ValueRangeParameterModel | null = null;\n sprintStopValue: ValueRangeParameterModel | null = null;\n factor: ValueRangeParameterModel | null = null;\n spreadWarrantCapFloor: ValueRangeParameterModel | null = null;\n maximumAmount: ValueRangeParameterModel | null = null;\n maximumYield: ValueRangeParameterModel | null = null;\n pageNumber = 1;\n pageSize = Number.parseInt(process.env.VUE_APP_DEFAULT_PAGE_SIZE);\n resetSortOrders: SortOrder[] = [];\n isAddColumnDistributionFee = false;\n underlyingIsins: string[] | null = null;\n defaultUnderlying: string | null = null;\n\n public getResetSecondaryFilter(): ProductSearchParametersFilter {\n // create new filter object, to trigger vue watches on object;\n const filter = new ProductSearchParametersFilter();\n filter.isRequestWithoutUnderlyingWhenNoResult = this.isRequestWithoutUnderlyingWhenNoResult;\n filter.productType = this.productType;\n filter.categoryName = this.categoryName;\n filter.sortOrders = this.sortOrders;\n filter.subType = this.subType;\n filter.countryName = this.countryName;\n filter.sectorName = this.sectorName;\n filter.underlyingCategory = this.underlyingCategory;\n filter.pageNumber = this.pageNumber;\n filter.pageSize = this.pageSize;\n filter.resetSortOrders = this.resetSortOrders;\n filter.isAddColumnDistributionFee = this.isAddColumnDistributionFee;\n filter.underlyingIsins = this.underlyingIsins;\n filter.defaultUnderlying = this.defaultUnderlying;\n filter.underlyingIsinOrIsins = this.underlyingIsinOrIsins;\n\n return filter;\n }\n}\n\nexport class BestMatchSearchRequestFilter implements BestMatchSearchRequestModel {\n productType: ProductTypeBo = ProductTypeBo.Warrant;\n subType: ProductSubTypeBo = ProductSubTypeBo.Call;\n underlyingIsin: string | null = null;\n maturityDate: string | null = null;\n keyDataField: string | null = null;\n keyDataValue: number | null = null;\n numberOfItems = 5;\n filterProperty = '';\n}\n\n/**\n * Instrument data table type\n */\nexport interface InstrumentTableSettingData\n extends Omit<\n InstrumentTableSetting,\n 'desktopTableColumnsSetting' | 'tabletTableColumnsSetting' | 'mobileTableColumnsSetting'\n > {\n desktopTableColumnsSetting: Array<InstrumentMergeColumnSetting | TableColumnSettingBase>;\n tabletTableColumnsSetting: Array<InstrumentMergeColumnSetting | TableColumnSettingBase>;\n mobileTableColumnsSetting: Array<InstrumentMergeColumnSetting | TableColumnSettingBase>;\n}\n\n/**\n * Lightstream\n */\nexport interface LightstreamSubscription {\n client: LightstreamerClient;\n mutation: MutationPushPayload;\n /**\n * push subscription mutations for items\n */\n subscriptionMutationTypes: { [s: number]: string };\n /**\n * namespace + mutation name for push item subscription (e.g. underlying.last)\n */\n pushItemSubscriptionGetter: string;\n namespaces: string[];\n fields: Array<string>;\n adapterSet: string;\n onUpdate: { (updateInfo: ItemUpdate, pushSubscriptions: { [key: string]: boolean }): void };\n}\n\nexport class SearchSuggestion {\n name!: string;\n detail!: string | null;\n url!: string | undefined | null;\n listIndex: number;\n\n constructor(index: number, name: string, url: string | undefined | null, detail: string | null = null) {\n this.name = name;\n this.url = url;\n this.detail = detail;\n this.listIndex = index;\n }\n}\n\nexport class SearchSuggestionGroup {\n name!: string;\n cssClass: string | undefined;\n data: SearchSuggestion[] = [];\n\n constructor(name: string, data: SearchSuggestion[], cssClass: string | undefined = undefined) {\n this.name = name;\n this.data = data;\n this.cssClass = cssClass;\n }\n}\n\nexport class GlobalSearchSuggestions {\n underlyings: SearchSuggestionGroup[] = [];\n productTypes: SearchSuggestionGroup | undefined;\n content: SearchSuggestionGroup | undefined;\n products: SearchSuggestionGroup[] = [];\n\n get theqItems(): SearchSuggestionGroup[] {\n const result = [...this.underlyings];\n if (this.productTypes !== undefined) result.push(this.productTypes);\n result.push(...this.products);\n return result;\n }\n\n get hasTheqItems(): boolean {\n return this.underlyings.length != 0 || this.products.length !== 0 || this.productTypes !== undefined;\n }\n\n get epiItems(): SearchSuggestionGroup[] {\n return this.content !== undefined ? [this.content] : [];\n }\n\n get hasEpiItems(): boolean {\n return this.content !== undefined;\n }\n\n get allItems(): SearchSuggestion[] {\n return (this.content !== undefined ? [...this.theqItems, this.content] : this.theqItems).flatMap((g) => g.data);\n }\n\n get length(): number {\n return this.allItems.length;\n }\n\n get hasBothItemsGroups(): boolean {\n return this.hasEpiItems && this.hasTheqItems;\n }\n}\n\nexport interface MutationPushPayloadHolder<TPayload, SubscriptionPush> {\n holder: TPayload;\n getSubscriptionPushItems: (holder) => Array<SubscriptionPush>;\n}\n\nexport interface MutationPushPayload extends Omit<MutationPayload, 'payload'> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload: MutationPushPayloadHolder<any, SubscriptionPush> | { [key: string]: boolean };\n}\n\nexport interface LayeredDownloadItem {\n file: DownloadLink | Download | GroupedDownloadGroupItem;\n depth: number;\n}\n\nexport interface DownloadGroupItem {\n type: DocumentType;\n childListName: string | null;\n files: GroupedDownloadGroup[];\n}\n\n//Implemented by GroupedDownloadGroup type from queo\nexport interface GroupedDownloadGroupItem {\n title: string;\n link: string;\n date: number;\n year: number | null;\n format: string;\n rank: number;\n childDownloads?: GroupedDownloadGroupItem[];\n}\n\nexport interface ImportantNoticeSettings {\n headline: string;\n description: string;\n underlyingIsins: string[];\n productIsins: string[];\n}\n\nexport class DocumentServiceConfiguration {\n dateFormat: string;\n get datePlaceholder() {\n return '{asOfDate}';\n }\n\n get namePlaceholder() {\n return '{name}';\n }\n\n constructor(dateFormat: string) {\n this.dateFormat = dateFormat;\n }\n}\n\nexport interface SortedUnderlying {\n isin: string;\n sort: number;\n}\n\nexport interface WatchedUnderlying {\n isin: string;\n addTimeStamp: Date;\n}\n\nexport interface WatchedProduct {\n securityCode: string;\n addTimeStamp: Date;\n addPrice: PriceModel;\n}\n\nexport interface WatchedProductModel extends ProductModel {\n watchlistAddPrice: PriceModel;\n watchlistAddChange: number | null;\n}\n\n/**\n * Option for bootstrap-vue form checkbox, radios and select.\n * See also {@link https://bootstrap-vue.org/docs/components/form-checkbox#checkbox-group-options-array}\n * {@link https://bootstrap-vue.org/docs/components/form-radio#grouped-radios}\n * {@link https://bootstrap-vue.org/docs/components/form-select#options-property}\n */\nexport class SelectOption {\n text: string | null;\n value: string;\n disabled: boolean;\n\n constructor(value: string, text: string | null, disabled = false) {\n this.text = text;\n this.value = value;\n this.disabled = disabled;\n }\n}\n","import { enUS, enGB, enAU, nl, de, fr, fi, it, es, pt, sv, zhCN } from 'date-fns/locale';\n\nexport const NAVBAR_HEIGHT = 52;\n\nexport const CULTURE_TO_LOCALE_MAP = new Map()\n .set('de-DE', de)\n .set('en-NL', enUS)\n .set('nl-NL', nl)\n .set('en-DE', enUS)\n .set('fr-FR', fr)\n .set('pt-PT', pt)\n .set('fi-FI', fi)\n .set('en-FI', enUS)\n .set('sv-SE', sv)\n .set('en-SE', enUS)\n .set('en-HK', enUS)\n .set('zh-HK', zhCN)\n .set('en-AU', enAU)\n .set('en-GB', enGB)\n .set('it-IT', it)\n .set('en-ch', enUS)\n .set('en-US', enUS)\n .set('es-US', es);\n","import { VueCookies } from 'vue-cookies';\nimport { CookieCreateState, CookieType } from '@/src/types/enumerations';\nimport { getCurrentWebsiteKey } from './culture-helper';\n\nexport class CookieSettings {\n public version: string;\n public technical: boolean;\n public marketing: boolean;\n public comfort: boolean;\n public thirdPartyMedia: boolean;\n\n constructor(version: string, technical: boolean, marketing: boolean, comfort: boolean, third: boolean) {\n this.version = version;\n this.technical = technical;\n this.marketing = marketing;\n this.comfort = comfort;\n this.thirdPartyMedia = third;\n }\n}\n\nexport class CookieWebSelection {\n public cookieName: string;\n public cookieValue: string | null;\n\n constructor(cookieName: string, cookieValue: string | null) {\n this.cookieName = cookieName;\n this.cookieValue = cookieValue;\n }\n}\n\nexport default class CookieManager {\n private cookies: VueCookies;\n private consentSetting: { [key: string]: CookieType } | undefined;\n private consentCookieKey = 'cookie-consent_' + getCurrentWebsiteKey();\n private contentLikeCookieKey = 'content-likes';\n private adBlockerDetectionKey = 'adb-viewed';\n\n constructor(cookies: VueCookies) {\n this.consentSetting = this.parseSettings();\n this.cookies = cookies;\n }\n\n public get technical(): boolean {\n return !!this.getCurrentSettings();\n }\n public get marketing(): boolean {\n return this.getCurrentSettings()?.marketing || false;\n }\n public get comfort(): boolean {\n return this.getCurrentSettings()?.comfort || false;\n }\n public get thirdPartyMedia(): boolean {\n return this.getCurrentSettings()?.thirdPartyMedia || false;\n }\n\n public saveSettings(settings: CookieSettings, remember: boolean) {\n const expire = remember ? Infinity : 0;\n this.setCookieToRoot(this.consentCookieKey, JSON.stringify(settings), expire);\n }\n\n public saveSelectedWebsite(cookieWebSelection: CookieWebSelection, remember: boolean) {\n if (!cookieWebSelection.cookieValue) {\n this.removeRootCookie(cookieWebSelection.cookieName);\n }\n\n const expire = remember ? Infinity : 0;\n this.setCookieToRoot(cookieWebSelection.cookieName, cookieWebSelection.cookieValue, expire);\n }\n\n public wasLiked(contentId: number): boolean {\n const cookie: string = this.cookies.get(this.contentLikeCookieKey);\n return cookie ? cookie.indexOf(this.formatContentKey(contentId)) >= 0 : false;\n }\n\n public saveLike(contentId: number): CookieCreateState {\n if (!this.canBeCreated(this.contentLikeCookieKey)) return CookieCreateState.NotAccepted;\n if (this.wasLiked(contentId)) return CookieCreateState.Exists;\n const cookie: string = (this.cookies.get(this.contentLikeCookieKey) || '') + this.formatContentKey(contentId);\n this.setCookieToRoot(this.contentLikeCookieKey, cookie, Infinity);\n return CookieCreateState.Created;\n }\n\n public wasAdBlockerHintViewed(): boolean {\n const cookie: string = this.cookies.get(this.adBlockerDetectionKey);\n return cookie !== null;\n }\n\n public saveAdBlockerHintViewed(): CookieCreateState {\n //Even though this cookie is technical, it must be set without user consenting cookies. Because\n //adblocker might even block cookie consenting.\n if (this.wasAdBlockerHintViewed()) return CookieCreateState.Exists;\n const cookieValue = 'true';\n this.setCookieToRoot(this.adBlockerDetectionKey, cookieValue, Infinity);\n return CookieCreateState.Created;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private setCookieToRoot(keyName: string, value: any, expireTimes?: string | number | Date) {\n this.cookies.set(keyName, value, expireTimes, undefined, undefined, true);\n }\n\n private removeRootCookie(keyName: string) {\n this.cookies.remove(keyName);\n }\n\n private getCurrentSettings(): CookieSettings | undefined {\n const saved = this.cookies.get(this.consentCookieKey);\n if (saved) {\n return new CookieSettings(saved.version, saved.technical, saved.marketing, saved.comfort, saved.thirdPartyMedia);\n }\n }\n\n canBeCreated(key: string): boolean {\n if (!this.consentSetting) return false;\n const type: CookieType | undefined = this.consentSetting[key];\n if (!type) return false;\n switch (type) {\n case CookieType.Technical:\n return this.technical;\n case CookieType.Comfort:\n return this.comfort;\n case CookieType.Marketing:\n return this.marketing;\n case CookieType.ThirdPartyMedia:\n return this.thirdPartyMedia;\n default:\n return false;\n }\n }\n\n private formatContentKey(contentId: number): string {\n return `[${contentId}]`;\n }\n\n private parseSettings(): { [key: string]: CookieType } | undefined {\n const json = document.getElementById('app')?.getAttribute('data-cookie-consent-settings');\n if (!json) return undefined;\n return JSON.parse(json);\n }\n}\n","export function getCurrentCulture(): string {\n return document.getElementById('lang')?.getAttribute('lang') || '';\n}\nexport function getCurrentWebsiteKey(): string {\n return document.getElementById('lang')?.getAttribute('data-website-key') || '';\n}\n","import { getCurrentCulture } from '@src/utils/culture-helper';\nimport { CULTURE_TO_LOCALE_MAP } from '@src/utils/constants';\n\nexport const millisecondsInMinute = 60 * 1000;\nexport const millisecondsInAnHour = 60 * millisecondsInMinute;\nexport const secondsInDay = 24 * 3600;\nexport const millisecondsInDay = secondsInDay * 1000;\n\n/*\nReturns the unix timestamp for today's date in UTC timezone\n*/\nexport function utcToday(): number {\n const now = new Date();\n return Date.UTC(now.getFullYear(), now.getMonth(), now.getDate());\n}\n\n/*\nCreates a date from a unix timestamp in UTC timezone\n*/\nexport function utcTimestamp(timeStamp: number): number {\n return timeStamp - new Date().getTimezoneOffset() * millisecondsInMinute;\n}\n\n/*\nCreates a date from a unix timestamp in UTC timezone\n*/\nexport function utcDate(timeStamp: number): Date {\n return new Date(timeStamp + new Date().getTimezoneOffset() * millisecondsInMinute);\n}\n/*\nParses a date from a string and adjusts it to UTC timezone\n */\nexport function utcParse(value: string) {\n return Date.parse(value) - new Date().getTimezoneOffset() * millisecondsInMinute;\n}\n\n/**\n * maps the culture to the locale\n * @returns locale for the current culture\n */\nexport function getCurrentLocale() {\n const culture = getCurrentCulture();\n return CULTURE_TO_LOCALE_MAP.get(culture);\n}\n","import httpClient from './http-service';\nimport qs from 'qs';\nimport { GroupedDownloadGroup } from '@src/types/ce-component-types';\nimport { DownloadDocumentType, Download, DownloadLink } from '@src/types/episerver-api';\nimport {\n DocumentServiceConfiguration,\n DownloadGroupItem,\n GroupedDownloadGroupItem,\n LayeredDownloadItem,\n} from '../types/vue-api';\nimport { Controller, DefaultFormat, DocumentType } from '@src/types/enumerations';\nimport {\n CustomOrdinalFormatting,\n CulturesWithCustomOrdinal,\n} from '@src/utils/value-formatter/ordinal-custom-formatter';\nimport { DocumentModel, DocumentFilterData, DigitalAssetDocument } from '@src/types/the-q-api';\nimport { getTheQApiUrl } from '@src/utils/url-helper';\nimport { formatField } from '@src/utils/value-formatter/formatting-service';\nimport { getCurrentCulture } from '@src/utils/culture-helper';\nimport { trackEvent, GaEvent } from '@/src/utils/web-tracking';\n\nexport async function getAllDocumentsForProduct(productIsin: string): Promise<DigitalAssetDocument[]> {\n const response = await httpClient.get<DigitalAssetDocument[]>(\n getTheQApiUrl(Controller.Document, 'GetAllDocumentsForProduct'),\n {\n params: {\n isin: productIsin,\n },\n }\n );\n return response.data;\n}\n\nasync function requestProductDocuments(productIsin: string, types: DocumentType[]): Promise<DocumentModel[]> {\n const response = await httpClient.get<DocumentModel[]>(getTheQApiUrl(Controller.Document, 'GetProductDocuments'), {\n params: {\n isin: productIsin,\n docs: types,\n },\n });\n return response.data;\n}\n\nasync function requestFolderDocuments(parentFolderIds: string[], relatedFolderIds: string[]): Promise<DocumentModel[]> {\n const response = await httpClient.get<DocumentModel[]>(getTheQApiUrl(Controller.Document, 'GetFolderDocuments'), {\n params: {\n parentFolderIds: parentFolderIds,\n relatedFolderIds: relatedFolderIds,\n },\n });\n return response.data;\n}\n\nfunction formatDownloadName(\n document: DocumentModel,\n types: { [type: string]: DownloadDocumentType },\n index: number,\n totalCount: number,\n config: DocumentServiceConfiguration\n): string {\n const type = types[document.documentType];\n let name = type?.name || document.name;\n\n const date = formatField(document.asOfDate, config.dateFormat, null);\n name = name.replace(config.datePlaceholder, date);\n\n if (type?.numberItems && totalCount > 1) {\n const culture = getCurrentCulture();\n const formatting = Object.values(CulturesWithCustomOrdinal).includes(culture)\n ? CustomOrdinalFormatting\n : DefaultFormat.Ordinal;\n\n name = `${formatField(index, formatting, null)} ${name}`;\n }\n\n if (document.namePattern) {\n name = document.namePattern.replace(config.namePlaceholder, name);\n }\n\n return name;\n}\n\nfunction mapDownload(\n document: DocumentModel,\n children: GroupedDownloadGroupItem[] | undefined,\n types: { [type: string]: DownloadDocumentType },\n listIndex: number,\n listCount: number,\n config: DocumentServiceConfiguration\n): GroupedDownloadGroupItem {\n return {\n title: formatDownloadName(document, types, listIndex, listCount, config),\n date: document.asOfDate ? Date.parse(document.asOfDate) : 0,\n year: document.filterData?.year ?? null,\n link: document.downloadLink,\n format: document.fileExtension,\n rank: document.rank,\n childDownloads: children,\n };\n}\n\nfunction mapDownloads(\n typeDocuments: DocumentModel[],\n allTypes: { [type: string]: DownloadDocumentType },\n config: DocumentServiceConfiguration\n): GroupedDownloadGroup[] {\n const files = typeDocuments\n .map((document, index, array) => {\n const children =\n document.childDocuments?.length != 0\n ? document.childDocuments.map((d, i) =>\n mapDownload(d, undefined, allTypes, i, document.childDocuments.length, config)\n )\n : undefined;\n return mapDownload(document, children, allTypes, index + 1, array.length, config) as GroupedDownloadGroup;\n })\n .sort((a, b) => (a.date < b.date ? 1 : -1));\n\n return files;\n}\n\nfunction groupDocuments(\n documents: DocumentModel[],\n types: DownloadDocumentType[],\n config: DocumentServiceConfiguration\n): DownloadGroupItem[] {\n const typeInfos = types.reduce((dict, type) => ({ ...dict, [type.type]: type }), {});\n\n const result: DownloadGroupItem[] = [];\n for (const type of types.sort((a, b) => (a.sortOrder > b.sortOrder ? 1 : -1))) {\n const typeDocuments = documents.filter((g) => g.documentType == type.type);\n if (typeDocuments.length == 0) continue;\n if (type.groupItems) {\n result.push({\n type: type.type,\n childListName: type.childListName,\n files: mapDownloads(typeDocuments, typeInfos, config),\n });\n } else {\n result.push(\n ...typeDocuments.map((document, index) => {\n return {\n type: type.type,\n childListName: null,\n files: [mapDownload(document, undefined, typeInfos, index + 1, typeDocuments.length, config)],\n } as DownloadGroupItem;\n })\n );\n }\n }\n return result;\n}\n\nfunction setGroupFilterData(documents: DocumentModel[], documentGroup: string): void {\n documents.forEach((_) => {\n if (_.filterData) {\n _.filterData.group = documentGroup;\n return;\n }\n _.filterData = { group: documentGroup } as DocumentFilterData;\n });\n}\n\nfunction setYearFilterData(documents: DocumentModel[]): void {\n documents.forEach((_) => {\n if (!_.asOfDate) {\n return;\n }\n\n const date = new Date(_.asOfDate);\n const year = date.getFullYear();\n if (_.filterData) {\n _.filterData.year = year;\n return;\n }\n _.filterData = { year: year } as DocumentFilterData;\n });\n}\n\nexport async function getProductDocuments(\n productIsin: string,\n types: DownloadDocumentType[],\n config: DocumentServiceConfiguration\n): Promise<DownloadGroupItem[]> {\n if (productIsin == null) return [];\n\n const requestTypes = types.map((t) => t.type);\n const documents: DocumentModel[] = await requestProductDocuments(productIsin, requestTypes);\n\n if (documents.length === 0) return [];\n\n const groupedItems = groupDocuments(documents, types, config);\n\n return groupedItems;\n}\n\nexport async function getFolderDocuments(\n parentFolderIds: string[],\n types: DownloadDocumentType[],\n relatedFolderIds: string[],\n config: DocumentServiceConfiguration\n): Promise<DownloadGroupItem[]> {\n const documents: DocumentModel[] = await requestFolderDocuments(parentFolderIds, relatedFolderIds);\n if (documents.length === 0) return [];\n setGroupFilterData(documents, parentFolderIds[0]);\n setYearFilterData(documents);\n const groupedItems = groupDocuments(documents, types, config);\n return groupedItems;\n}\n\nfunction collectLayeredDownloadItemRecursive(\n depth: number,\n download: DownloadLink | Download | DownloadGroupItem | GroupedDownloadGroupItem,\n accumulator: LayeredDownloadItem[]\n) {\n const downloadGroup = download as unknown as DownloadGroupItem;\n if (isDownloadGroup(downloadGroup)) {\n //download group is not a download\n // depth unchanged\n if (downloadGroup.files) {\n downloadGroup.files.forEach((f) => {\n collectLayeredDownloadItemRecursive(depth, f, accumulator);\n });\n }\n return;\n }\n\n const groupedDownload = download as unknown as GroupedDownloadGroupItem;\n if (isGroupedDownloadGroup(groupedDownload)) {\n const groupItem = { file: groupedDownload, depth: depth } as LayeredDownloadItem;\n accumulator.push(groupItem);\n\n if (groupedDownload.childDownloads) {\n groupedDownload.childDownloads?.forEach((f) => {\n collectLayeredDownloadItemRecursive(depth + 1, f, accumulator);\n });\n }\n return;\n }\n const fileDownload = download as Download;\n if (isDownload(fileDownload)) {\n const linkItem = { file: fileDownload, depth: depth } as LayeredDownloadItem;\n accumulator.push(linkItem);\n return;\n }\n const downloadLink = download as unknown as DownloadLink;\n if (isDownloadLink(downloadLink)) {\n const linkItem = { file: downloadLink, depth: depth } as LayeredDownloadItem;\n accumulator.push(linkItem);\n return;\n }\n}\n\n/**\n * Flatten linked documents to array of documents with depth\n * @param downloads\n * @returns\n */\nexport function flattenToLayeredDownloadItem(\n downloads: (DownloadLink | Download | DownloadGroupItem)[]\n): LayeredDownloadItem[] {\n const depth = 1;\n const items = [];\n downloads.forEach((d) => {\n collectLayeredDownloadItemRecursive(depth, d, items);\n });\n return items;\n}\n\nexport function isDownload(document: DownloadLink | Download | DownloadGroupItem): document is Download {\n const download = document as Download;\n return download && !!download.title && !!download.link && !!download.fileFormat;\n}\n\nexport function isDownloadLink(document: DownloadLink | Download | DownloadGroupItem): document is DownloadLink {\n const link = document as DownloadLink;\n return link !== null && !!link.title && !!link.link;\n}\n\nexport function isDownloadGroup(document: DownloadLink | Download | DownloadGroupItem): document is DownloadGroupItem {\n const group = document as DownloadGroupItem;\n return group && group.childListName?.length != 0 && Array.isArray(group.files) && group.files.length >= 1;\n}\n\nexport function isGroupedDownloadGroup(\n document: DownloadGroupItem | GroupedDownloadGroupItem\n): document is GroupedDownloadGroupItem {\n const group = document as GroupedDownloadGroupItem;\n return group && group.title.length != 0 && group.link.length != 0 && !!group.format;\n}\n\nexport function isSingleDownload(document: DownloadLink | Download | DownloadGroupItem): document is DownloadGroupItem {\n const group = document as DownloadGroupItem;\n return group && Array.isArray(group.files) && group.files.length == 1;\n}\n\nexport function downloadClick(url: string, title: string, format?: string | null | undefined): void {\n trackEvent(GaEvent.ClickDownload, {\n displayName: title,\n extension: format,\n url: url,\n });\n}\n\nexport function getDownloadFileFormat(file: Download): string | undefined {\n return file.fileFormat?.toUpperCase();\n}\n","import { AxiosRequestConfig } from 'axios';\nimport httpClient from './http-service';\nimport { HttpStatusCodes } from '@src/types/enumerations';\n\nconst config: AxiosRequestConfig = {\n headers: { 'Content-Type': 'application/json' },\n responseType: 'blob',\n};\n\nfunction getContentFileName(contentDispositionHeader: string | undefined): string | undefined {\n if (!contentDispositionHeader) return undefined;\n const match = contentDispositionHeader.match(/filename=(?<filename>.*);/);\n return match?.groups?.filename;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function downloadFileFromApi(apiCall: () => Promise<any>, defaultFilename: string): Promise<number> {\n try {\n const response = await apiCall();\n const blob = new Blob([response.data]);\n const blobUrl = URL.createObjectURL(blob);\n\n // Set link's href to point to the Blob URL\n const link = document.createElement('a');\n link.href = blobUrl;\n link.download = getContentFileName(response.headers['content-disposition']) || defaultFilename;\n document.body.appendChild(link);\n\n // Dispatch click event on the link\n link.dispatchEvent(\n new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n\n URL.revokeObjectURL(blobUrl);\n\n document.body.removeChild(link);\n return HttpStatusCodes.OK;\n } catch (ex) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ((ex as any)?.response?.status as number) || HttpStatusCodes.InternalServerError;\n }\n}\n\nexport async function downloadFilePost(\n url: string,\n postDataParams: unknown | undefined,\n defaultFilename: string\n): Promise<number> {\n return await downloadFileFromApi(() => httpClient.post(url, postDataParams, config), defaultFilename);\n}\n\nexport async function downloadFileGet(url: string): Promise<number> {\n const lastSlash = url.lastIndexOf('/');\n const fileName = lastSlash > 0 && lastSlash < url.length - 1 ? url.slice(lastSlash + 1) : '';\n const config: AxiosRequestConfig = {\n headers: { 'Content-Type': 'application/json' },\n responseType: 'blob',\n };\n return await downloadFileFromApi(() => httpClient.get(url, config), fileName);\n}\n\n/**\n * Check for an url if it is from same origin and download it or open in a new window.\n * @param url to download file\n * @returns HttpStatusCodes of download or if in open in new window HttpStatusCodes.OK\n */\nexport async function downloadFileGetOrOpenInNewWindowForExternalUrl(url): Promise<HttpStatusCodes> {\n // open download from other urls in new window to avoid cross origin access error\n if (url.startsWith(window.origin) || url.startsWith('/')) {\n return await downloadFileGet(url);\n } else {\n window.open(url, '_blank');\n return Promise.resolve(HttpStatusCodes.OK);\n }\n}\n","import { Option, OptionGroup } from '@src/types/the-q-api';\nimport { DropDownItemType } from '@/src/types/enumerations';\nimport { DropDownItem } from '../types/vue-api';\n\nexport function createAllOption(result: DropDownItem[], label: string): void {\n result.unshift({ type: DropDownItemType.item, text: label, value: null } as DropDownItem);\n}\n\nfunction createOption(option: Option): DropDownItem {\n return {\n type: DropDownItemType.item,\n text: option.text,\n value: option.value,\n } as DropDownItem;\n}\n\nfunction createHeader(text: string, index: number): DropDownItem {\n return {\n type: DropDownItemType.header,\n text: text,\n value: DropDownItemType.header + index,\n } as DropDownItem;\n}\n\nfunction createSplitter(index: number): DropDownItem {\n return {\n type: DropDownItemType.splitter,\n text: null,\n value: DropDownItemType.splitter + index,\n } as DropDownItem;\n}\n\nfunction trimLastSplitter(result: DropDownItem[]): void {\n if (result.length !== 0 && result[result.length - 1].type === DropDownItemType.splitter) result.pop();\n}\n\nexport function convertOptions(\n options: Option[] | { (): Array<DropDownItem> },\n allLabel: string | null = null\n): DropDownItem[] {\n const result: DropDownItem[] = typeof options === 'function' ? options() : options.map((o) => createOption(o));\n\n if (allLabel) createAllOption(result, allLabel);\n return result;\n}\n\nfunction createGroup(group: OptionGroup, index: number): DropDownItem[] {\n if (!group.options || group.options.length == 0) return [];\n if (!group.header) return convertOptions(group.options);\n\n let result: DropDownItem[] = [];\n\n result.push(createHeader(group.header, index));\n result = result.concat(group.options.map((o) => createOption(o)));\n result.push(createSplitter(index));\n\n return result;\n}\n\nexport function convertGroups(groups: OptionGroup[], allLabel: string | null = null): DropDownItem[] {\n let result: DropDownItem[] = [];\n groups.forEach((g, i) => {\n result = result.concat(createGroup(g, i));\n });\n trimLastSplitter(result);\n if (allLabel) {\n result.unshift({ type: DropDownItemType.splitter } as DropDownItem);\n createAllOption(result, allLabel);\n }\n return result;\n}\n\nexport function convertToDropdownItems(\n allLabel: string | null,\n entries: string[],\n formatTextFunc: (v: string) => string = (x) => x\n): DropDownItem[] {\n const result = entries\n ? entries.map((x) => ({ type: DropDownItemType.item, text: formatTextFunc(x), value: x }) as DropDownItem)\n : [];\n\n if (allLabel) createAllOption(result, allLabel);\n\n return result;\n}\n","import { HttpStatusCodes, TextAlign } from '../types/enumerations';\n\nexport function mapTextAlign(textAlign: TextAlign): string {\n switch (textAlign) {\n case TextAlign.Left:\n return 'text-left';\n case TextAlign.Right:\n return 'text-right';\n case TextAlign.Center:\n return 'text-center';\n default:\n return '';\n }\n}\n\nexport function mapErrorCodes(code: number): HttpStatusCodes {\n switch (code) {\n case 200:\n return HttpStatusCodes.OK;\n case 201:\n return HttpStatusCodes.Created;\n case 204:\n return HttpStatusCodes.NoContent;\n case 400:\n return HttpStatusCodes.BadRequest;\n case 404:\n return HttpStatusCodes.NotFound;\n case 500:\n return HttpStatusCodes.InternalServerError;\n default:\n return HttpStatusCodes.UnknownError;\n }\n}\n","import axios from 'axios';\nimport qs from 'qs';\n\nconst httpClient = axios.create({\n timeout: 45000,\n paramsSerializer: function (params) {\n return qs.stringify(params, { arrayFormat: 'repeat', encode: false });\n },\n});\n\nexport default httpClient;\n","import { lowerFirst } from 'lodash';\nimport Vue from 'vue';\nimport { ProductKey } from '../types/enumerations';\nimport { BestMatchSearchRequestFilter } from '../types/vue-api';\n/**\n * maps the keyDataField and keyDataValue for best match search request\n */\nexport function setBestMatchSearchFilterForRequest(filter: BestMatchSearchRequestFilter): void {\n const keyDataField = lowerFirst(filter.filterProperty);\n\n filter.keyDataField = ProductKey[filter.filterProperty];\n\n if (filter.keyDataField === undefined) {\n Vue.$log.fatal('Could not found product key', filter.filterProperty, 'in keys', ProductKey);\n }\n\n filter.keyDataValue = filter[keyDataField];\n}\n","function isObject(val) {\n return val.constructor === Object;\n}\n\nfunction isNumber(val) {\n return !isNaN(parseFloat(val)) && isFinite(val);\n}\n\nfunction isBoolean(val) {\n return val === 'false' || val === 'true';\n}\n\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\nfunction parseObject(obj) {\n const result = {};\n let key, val;\n for (key in obj) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n val = parseValue(obj[key]);\n if (val !== null) result[key] = val; // ignore null values\n }\n return result;\n}\n\nfunction parseNumber(val) {\n return Number(val);\n}\n\nfunction parseBoolean(val) {\n return val === 'true';\n}\n\nfunction parseArray(arr) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: Array<any> = [];\n for (let i = 0; i < arr.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n result[i] = parseValue(arr[i]);\n }\n return result;\n}\n\nfunction parseValue(val) {\n if (typeof val == 'undefined' || val == '') {\n return null;\n } else if (isBoolean(val)) {\n return parseBoolean(val);\n } else if (isArray(val)) {\n return parseArray(val);\n } else if (isObject(val)) {\n return parseObject(val);\n } else if (isNumber(val)) {\n return parseNumber(val);\n } else {\n return val;\n }\n}\n\nexport function parseQueryObject(value: object) {\n return parseValue(value);\n}\n","import Vue from 'vue';\nimport { NAVBAR_HEIGHT } from '@src/utils/constants';\n\nexport function scrollToElement($element: HTMLElement | null, withScroll?: boolean, extraHeight?: number): void {\n if (!$element) return;\n\n // Vue.nextTick to allow application render, to increase chance the scrollTo works\n Vue.nextTick(() => {\n const $navbar = document.querySelector('.ce-header__navbar-menu');\n\n // top of element + current scroll offset - navbarheight + offset so spyscroll shows correct entry\n const y =\n $element.getBoundingClientRect().top +\n window.scrollY -\n ($navbar?.clientHeight ?? NAVBAR_HEIGHT) +\n (extraHeight ?? 5);\n\n window.scrollTo({\n top: y,\n behavior: withScroll ? 'smooth' : 'auto',\n });\n });\n}\n\nexport function jumpToAnchor(): void {\n const anchor = location.hash.substring(1);\n if (anchor) {\n const $element = document.getElementById(anchor);\n scrollToElement($element, false);\n }\n}\n","import {\n InstrumentMergeColumnSetting,\n InstrumentTableColumnSetting,\n ProductTableSetting,\n} from '@src/types/episerver-api';\nimport { ProductTeaserSettings } from '../types/vue-api';\nimport { differenceBy, uniqBy } from 'lodash';\n\nexport const nameOf = <T>(name: Extract<keyof T, string>): string => name;\n\nexport function flatMapMergeColumns(mergeColumns: InstrumentMergeColumnSetting[]) {\n return mergeColumns.flatMap<InstrumentTableColumnSetting>(\n (c) =>\n c.columnMergeSetting.filter(\n (mc) => (mc as InstrumentTableColumnSetting)?.key !== undefined\n ) as InstrumentTableColumnSetting[]\n );\n}\n\nexport function getExcludedColumnDefinition(\n columnSetting: InstrumentMergeColumnSetting[],\n settings: ProductTableSetting\n): InstrumentTableColumnSetting[] {\n const columns = flatMapMergeColumns(columnSetting);\n const desktopColumns = flatMapMergeColumns(settings.desktopTableColumnsSetting);\n const hiddenValuesColumns = settings.searchResultHiddenValuesSetting;\n const mergedColumns = [\n ...differenceBy(desktopColumns, columns, nameOf<InstrumentTableColumnSetting>('key')),\n ...hiddenValuesColumns,\n ];\n\n return uniqBy(mergedColumns, nameOf<InstrumentTableColumnSetting>('key'));\n}\n\nexport function getProductTeaserSettings(settings: ProductTableSetting): ProductTeaserSettings {\n return new ProductTeaserSettings(\n settings.searchResultHiddenValuesSetting,\n getExcludedColumnDefinition(settings.tabletTableColumnsSetting, settings),\n getExcludedColumnDefinition(settings.mobileTableColumnsSetting, settings)\n );\n}\n","import { Controller, ProductSubTypeBo, ProductTypeBo, RoutingParameters } from '@/src/types/enumerations';\nimport qs from 'qs';\nimport { PageRoutes } from '../types/episerver-api';\nimport { BestMatchSearchRequestFilter, ProductSearchParametersFilter, Route } from '../types/vue-api';\nimport { getCurrentCulture } from './culture-helper';\nimport { parseQueryObject } from './query-param-helper';\n\nexport const UrlSubRoutes = {\n EpiServerApi: '/api',\n TheQApi: '/citi/v1/theq/api',\n};\n\nexport function getRootUrl(): string {\n return `${location.origin}`;\n}\n\nexport function getProtocol(): string {\n return `${location.protocol}`;\n}\n\nexport function getTheQApiCultureCodeUrl(\n cultureCode: string,\n controller: Controller,\n action: string | undefined = undefined\n): string {\n return `${getRootUrl()}${UrlSubRoutes.TheQApi}/${Controller[controller]}/${cultureCode}/${action}`;\n}\n\nexport function getTheQApiUrl(controller: Controller, action: string): string {\n const cultureCode = getCurrentCulture();\n return getTheQApiCultureCodeUrl(cultureCode, controller, action);\n}\n\nexport function getEpiserverApiUrl(controller: Controller, action: string): string {\n const cultureCode = getCurrentCulture();\n return `${getRootUrl()}${UrlSubRoutes.EpiServerApi}/${cultureCode}/${Controller[controller]}/${action}`;\n}\n\n/**\n *\n * Page Links\n *\n */\n\nexport function getEpiserverPageUrl(urlWithRouteParameter: string, routes: Array<Route>): string {\n routes.forEach((rp) => {\n urlWithRouteParameter = urlWithRouteParameter.replace(`{${rp.route.toString()}}`, encodeURIComponent(rp.parameter));\n });\n\n return urlWithRouteParameter;\n}\n\n/**\n *\n * External Links\n *\n */\n\n/**\n * Youtube Embedded\n * @param youtubeId\n * @param options\n * @returns string\n */\nexport function getYoutubeUrl(youtubeId: string, options?: { autoPlay?: boolean; enableJsAPI?: boolean }): string {\n // eslint-disable-next-line\n const queryParams = {} as any;\n if (options?.autoPlay) queryParams.autoplay = 1;\n if (options?.enableJsAPI) queryParams.enablejsapi = 1;\n queryParams.origin = getRootUrl();\n\n const query = Object.entries(queryParams)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n return `https://www.youtube.com/embed/${youtubeId}/?${query}`;\n}\n\n/**\n * Youtube IFrame\n * @returns string\n */\nexport function getYoutubeIFrameAPIUrl(): string {\n return `https://www.youtube.com/iframe_api`;\n}\n\nexport function getYoutubeThumbnail(youtubeId: string): string {\n return `${getProtocol()}//img.youtube.com/vi/${youtubeId}/mqdefault.jpg`;\n}\n\n/**\n * Twitter\n * @param config\n * @returns string\n */\nexport function getTwitterShareIntentURL(config: { urlToShare: string; textToShare?: string }): string {\n return (\n 'https://twitter.com/intent/tweet?text=' +\n encodeURIComponent(config?.textToShare ?? '') +\n encodeURIComponent('\\n\\n') +\n encodeURIComponent(config.urlToShare)\n );\n}\n\n/**\n * Facebook\n * @param config\n * @returns string\n */\nexport function getFacebookShareIntentURL(config: { urlToShare: string; appId: string }): string {\n return (\n 'https://www.facebook.com/dialog/share?app_id=' +\n encodeURIComponent(config.appId) +\n '&display=page&href=' +\n encodeURIComponent(config.urlToShare)\n );\n}\n\nfunction encodeName(name: string) {\n const toUnderscoreSymbols = new RegExp(\"[ &+'?(),;=$/.*]\", 'g');\n return name.replace(toUnderscoreSymbols, '');\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction shouldItemBeSerializiedInQuery(prefix: string, value: any) {\n switch (prefix) {\n case 'defaultUnderyling':\n case 'underlyingIsins':\n case 'resetSortOrders':\n case 'productType':\n case 'isRequestWithoutUnderlyingWhenNoResult':\n return;\n case 'pageNumber':\n if (value === 1) value = undefined;\n return value;\n case 'pageSize':\n if (value === Number.parseInt(process.env.VUE_APP_DEFAULT_PAGE_SIZE)) value = undefined;\n return value;\n case 'isAddColumnDistributionFee':\n if (!value) value = undefined;\n return value;\n default:\n return value;\n }\n}\n\n/**\n * Checks if the given path is absolute or relative and converts to absolute if path is relative\n * @param path\n * @returns returns path if it is absolute or creates absolute from given path\n */\nfunction toAbsolutePath(path: string): string {\n if (/^http[s]?:.*/.test(path)) {\n return path;\n }\n\n return window.location.origin + path;\n}\n\nexport function tryCreateProductSearchLink(\n pageRoutes: PageRoutes,\n productType: ProductTypeBo | undefined | null = undefined,\n params: ProductSearchParametersFilter | undefined = undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n additonalQueryFilterFunc = (prefix: string, value: any) => value\n): string | null {\n if (!pageRoutes.productSearchTypeUrlSegments) {\n return null;\n }\n let pageUrl = pageRoutes.productSearchTypeUrlSegments[productType ?? ''];\n if (!pageUrl) {\n return null;\n }\n\n if (!params) {\n return toAbsolutePath(pageUrl);\n }\n\n const queryString = qs.stringify(params, {\n skipNulls: true,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n filter: function (prefix: string, value: any) {\n value = shouldItemBeSerializiedInQuery(prefix, value);\n\n if (value !== undefined) value = additonalQueryFilterFunc(prefix, value);\n\n return value;\n },\n });\n if (queryString) pageUrl += '?' + queryString;\n\n return toAbsolutePath(pageUrl);\n}\n\nexport function tryCreateProductLink(\n pageRoutes: PageRoutes,\n productType: ProductTypeBo,\n underlyingName: string,\n isinOrNsin: string\n): string | null {\n if (pageRoutes.productDetailTypeUrlSegments) {\n const productUrlSegment = pageRoutes.productDetailTypeUrlSegments[productType];\n\n if (!productUrlSegment) {\n return null;\n }\n\n return toAbsolutePath(\n getEpiserverPageUrl(productUrlSegment, [\n { route: RoutingParameters.UnderlyingName, parameter: encodeName(underlyingName) },\n { route: RoutingParameters.IsinOrNsin, parameter: isinOrNsin },\n ])\n );\n }\n\n return null;\n}\n\nexport function tryCreateUnderlyingLink(pageRoutes: PageRoutes, isinOrNsin: string, name: string): string | null {\n if (!pageRoutes.underlyingDetailUrlSegments) {\n return null;\n }\n\n return toAbsolutePath(\n getEpiserverPageUrl(pageRoutes.underlyingDetailUrlSegments, [\n { route: RoutingParameters.Isin, parameter: isinOrNsin },\n { route: RoutingParameters.UnderlyingName, parameter: encodeName(name) },\n ])\n );\n}\n\nexport function getImageResizerUrl(\n urlWithParmeterPlaceholder: string,\n width: number,\n height: number\n): string | undefined {\n return getEpiserverPageUrl(urlWithParmeterPlaceholder, [\n { route: RoutingParameters.Width, parameter: width.toString() },\n { route: RoutingParameters.Height, parameter: height.toString() },\n ]);\n}\n\nexport function redirectToSearchProducts(\n underlyingIsin: string | null,\n pageRoutes: PageRoutes,\n openInParent: boolean = false,\n productType: ProductTypeBo | null = null,\n productSubType: ProductSubTypeBo | null = null\n): void {\n const searchFilter = new ProductSearchParametersFilter();\n searchFilter.underlyingIsinOrIsins = underlyingIsin;\n searchFilter.subType = productSubType;\n const redirectUrl = tryCreateProductSearchLink(pageRoutes, productType, searchFilter);\n\n if (!redirectUrl) {\n return;\n }\n\n if (openInParent) {\n window.parent.location.href = redirectUrl;\n } else {\n window.location.href = redirectUrl;\n }\n}\n\nexport function tryCreateBestMatchSearchLink(pageUrl: string, filter: BestMatchSearchRequestFilter): string {\n const queryString = qs.stringify(filter, {\n skipNulls: true,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n filter: function (prefix: string, value: any) {\n switch (prefix) {\n case 'keyDataField':\n case 'keyDataValue':\n case 'numberOfItems':\n return;\n default:\n return value;\n }\n },\n });\n\n if (queryString) pageUrl += '?' + queryString;\n\n return pageUrl;\n}\n\nexport function getParamFromUrl<T>(name: Extract<keyof T, string>): any | null {\n const searchQueryParams = parseQueryObject(qs.parse(window.location.search, { ignoreQueryPrefix: true }));\n return searchQueryParams[name] ? searchQueryParams[name] : null;\n}\n","import store from '@/src/state/store';\nimport { ApiTypeValue, FormatDataField } from '@/src/types/vue-api';\n\nexport function getFormatDataField(fieldKey: string): FormatDataField | undefined {\n return store.getters['fieldFormats/getFormatDataField'](fieldKey);\n}\n\nexport function setExpressionValue(key: string, value, model): void {\n const format = getFormatDataField(key);\n const expression = format?.fieldKey;\n\n if (!expression) {\n return;\n }\n\n const names = expression.split('.');\n\n for (let i = 0; i < names.length; i++) {\n if (i < names.length - 1) {\n if (model[names[i]] === undefined) {\n model[names[i]] = {};\n }\n model = model[names[i]];\n } else {\n model[names[i]] = value;\n }\n }\n}\n\nfunction tryEvaluateExpressionValue(expression: string, model): ApiTypeValue | undefined {\n try {\n const val = expression.split('.').reduce((dataModel, prop) => dataModel && dataModel[prop], model);\n return val as unknown as ApiTypeValue;\n } catch {\n return undefined;\n }\n}\n\nexport function hasExpressionField(key: string, model): boolean {\n const format = getFormatDataField(key);\n const expression = format?.fieldKey;\n const value = expression ? tryEvaluateExpressionValue(expression, model) : undefined;\n return value === undefined ? false : true;\n}\n\nexport default function evaluateExpressionByKey(key: string, model): ApiTypeValue {\n const format = getFormatDataField(key);\n let expression = format?.fieldKey;\n\n if (expression == null) {\n // try to get expression from key, because key is id + expression e.g. 1541product.price.ask.amount\n expression = key.replace(/^[0-9]*/g, '');\n }\n\n return tryEvaluateExpressionValue(expression, model) ?? null;\n}\n","import { InstrumentDataFieldBase, UnderlyingDataField } from '@/src/types/episerver-api-instrument';\nimport { PriceModel, ProductModel, UnderlyingModel } from '@/src/types/the-q-api';\nimport { ApiModel, ApiTypeValue, FormatDataField } from '@/src/types/vue-api';\nimport evaluateExpressionByKey from './format-helper';\n\nexport abstract class InstrumentFormat {\n public abstract trySelect(\n field: FormatDataField,\n value: ApiTypeValue,\n model: ApiModel | null,\n isPush: boolean\n ): string | boolean;\n}\n\nexport class SmallValueFormat extends InstrumentFormat {\n smallFormatThreshold = parseFloat(process.env.VUE_APP_SMALL_VALUE_THRESHOLD);\n private asNumber(value: ApiTypeValue): number | undefined {\n if (typeof value === 'number') return value;\n const price = value as PriceModel;\n if (typeof price?.amount === 'number') return price.amount;\n return undefined;\n }\n\n public trySelect(field: FormatDataField, value: ApiTypeValue): string | boolean {\n if (!(field as InstrumentDataFieldBase)?.smallFormat) return false;\n const number = this.asNumber(value);\n if (number && number < this.smallFormatThreshold) return (field as InstrumentDataFieldBase).smallFormat ?? false;\n return false;\n }\n}\n\nexport class PushFormat extends InstrumentFormat {\n public trySelect(\n field: UnderlyingDataField,\n value: ApiTypeValue,\n model: UnderlyingModel | ProductModel,\n isPush = false\n ): string | boolean {\n if (isPush && field.pushFormat) {\n return field.pushFormat;\n }\n\n return false;\n }\n}\n\nexport class UnderlyingCategoryFormat extends InstrumentFormat {\n public trySelect(field: UnderlyingDataField, value: ApiTypeValue, model: UnderlyingModel): string | boolean {\n let format: string | undefined;\n if (field?.customFormats && field?.customFormats?.length !== 0) {\n for (const customFormat of field.customFormats) {\n const modelValue = evaluateExpressionByKey(customFormat.key, model);\n if (modelValue == customFormat.value) {\n format = customFormat.format;\n }\n }\n }\n\n return format || false;\n }\n}\n","import { isNumber, isPriceModel } from '@/src/types/type-guards';\nimport { ApiModel, ApiTypeValue, FormatDataField } from '@/src/types/vue-api';\n\nimport {\n InstrumentFormat,\n PushFormat,\n SmallValueFormat,\n UnderlyingCategoryFormat,\n} from '@/src/utils/value-formatter/formats-selectors';\nimport evaluateExpressionByKey from './format-helper';\n\nfunction createFormatterService(...formats: InstrumentFormat[]) {\n return {\n selectFormat(value: ApiTypeValue, field: FormatDataField, model: ApiModel | null, isPush = false): string {\n let result: string | boolean = false;\n for (let i = 0; i < formats.length; i++) {\n result = formats[i].trySelect(field, value, model, isPush);\n if (result !== false) return result as string;\n }\n return field?.format || '';\n },\n };\n}\n\nfunction formatCurrency(format: string, value: ApiTypeValue, model: ApiModel | null): string {\n if (format.includes('c:')) {\n if (isNumber(value) || isPriceModel(value)) {\n const formatArr = format.split(':');\n const currency = evaluateExpressionByKey(formatArr[1], model);\n return formatArr[0] + currency;\n }\n } else if (format.includes('c')) {\n if (isPriceModel(value)) {\n return format.replace('c', `c${value.currencyCode}`);\n }\n }\n\n return format;\n}\n\nconst service = createFormatterService(new UnderlyingCategoryFormat(), new SmallValueFormat(), new PushFormat());\n\nexport default function selectFormat(\n value: ApiTypeValue,\n field: FormatDataField,\n model: ApiModel | null,\n isPush = false\n): string {\n return formatCurrency(service.selectFormat(value, field, model, isPush), value, model);\n}\n","import numeral from 'numeral';\n\nnumeral.locales['de-de'] = {\n delimiters: {\n thousands: '.',\n decimal: ',',\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't',\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ordinal: function (number) {\n return '.';\n },\n customOrdinal: function (number) {\n switch (number) {\n case 1:\n return 'Erste';\n case 2:\n return 'Zweite';\n case 3:\n return 'Dritte';\n case 4:\n return 'Vierte';\n case 5:\n return 'Fünfte';\n default:\n return number + '.';\n }\n },\n ordinalRemoveNumber: true,\n currency: {\n symbol: '€',\n },\n};\n","import numeral from 'numeral';\n\nnumeral.locales['en-au'] = {\n delimiters: {\n thousands: ',',\n decimal: '.',\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't',\n },\n ordinal: function (number) {\n const b = number % 10;\n return ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n },\n currency: {\n symbol: '€',\n },\n};\n","import numeral from 'numeral';\n\nnumeral.locales['en-de'] = {\n delimiters: {\n thousands: ',',\n decimal: '.',\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't',\n },\n ordinal: function (number) {\n const b = number % 10;\n return ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n },\n customOrdinal: function (number) {\n const b = number % 10;\n switch (number) {\n case 1:\n return 'First';\n case 2:\n return 'Second';\n case 3:\n return 'Third';\n case 4:\n return 'Fourth';\n case 5:\n return 'Fifth';\n case 6:\n return 'Sixth';\n default:\n return `${number}${\n ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th'\n }`;\n }\n },\n ordinalRemoveNumber: true,\n currency: {\n symbol: '€',\n },\n};\n","import numeral from 'numeral';\n\nnumeral.locales['en-fi'] = {\n delimiters: {\n thousands: ',',\n decimal: '.',\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't',\n },\n ordinal: function (number) {\n const b = number % 10;\n return ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n },\n currency: {\n symbol: '€',\n },\n};\n","import numeral from 'numeral';\n\nnumeral.locales['en-fr'] = {\n delimiters: {\n thousands: ',',\n decimal: '.',\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't',\n },\n ordinal: function (number) {\n const b = number % 10;\n return ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n },\n currency: {\n symbol: '€',\n },\n};\n","import numeral from 'numeral';\n\nnumeral.locales['en-nl'] = {\n delimiters: {\n thousands: ',',\n decimal: '.',\n },\n abbreviations: {\n thousand: 'k',\n million: 'mln',\n billion: 'mrd',\n trillion: 'bln',\n },\n ordinal: function (number) {\n const b = number % 10;\n return ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n },\n currency: {\n symbol: '€ ',\n },\n};\n","import numeral from 'numeral';\n\nnumeral.locales['en-pt'] = {\n delimiters: {\n thousands: ',',\n decimal: '.',\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't',\n },\n ordinal: function (number) {\n const b = number % 10;\n return ~~((number % 100) / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n },\n currency: {\n symbol: '€',\n },\n};\n","import numeral from 'numeral';\nimport locales from 'numeral/locales';\nimport '@/src/utils/value-formatter/custom-locales';\nimport Vue from 'vue';\nimport { getCurrentCulture, getCurrentWebsiteKey } from '../culture-helper';\nconst defaultCulture = 'en';\n\ntry {\n const allLocales = numeral.locales;\n let current = getCurrentCulture().toLowerCase();\n if (allLocales[current] == undefined) {\n current = getCurrentWebsiteKey().toLowerCase();\n }\n if (allLocales[current] == undefined) {\n throw `Could not find cultures configurations '${getCurrentWebsiteKey().toLowerCase()}' or '${getCurrentCulture().toLowerCase()}'`;\n }\n numeral.locale(current);\n Vue.$log.debug('Number format', current, numeral(1000).format('0,0.00'));\n} catch (e) {\n Vue.$log.fatal('Number format region could not be set:', e);\n numeral.locale(defaultCulture, locales);\n}\n","import numeral from 'numeral';\n\n/**\n * Custom currency formatter\n */\nnumeral.register('format', 'customCurrency', {\n regexps: {\n format: /c[A-Za-z]*/,\n },\n format: function (value: number, format: string, roundingFunction) {\n // eslint-disable-next-line no-useless-escape\n const afterMatch = format.match(/([\\+|\\-|\\)|\\s]*c[a-zA-Z]*)$/);\n format = format.replace(/\\s?c[a-zA-Z]*\\s?/, '');\n\n // format the number\n const output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return (output + (afterMatch ? afterMatch[0] : '')).replace('c', '');\n },\n});\n","import numeral from 'numeral';\nimport '@/src/utils/value-formatter/numeral-locales';\nimport '@/src/utils/value-formatter/numeral-custom-currency-formatter';\nimport '@/src/utils/value-formatter/ordinal-custom-formatter';\nimport dateFormat from 'date-fns/format';\nimport { PriceModel } from '@/src/types/the-q-api';\nimport { ApiTypeValue } from '@/src/types/vue-api';\nimport { isPriceModel } from '@/src/types/type-guards';\nimport { getCurrentLocale } from '@src/utils/date-helper';\nimport { DefaultFormat } from '@/src/types/enumerations';\nimport { getFormatDataField } from './format-helper';\n\nexport abstract class ValueFormatter<T = ApiTypeValue> {\n abstract applicableFor(value: ApiTypeValue, formatTemplate: string | null): boolean;\n abstract format(\n value: T,\n formatTemplate: string | null,\n translations: { [key: string]: string | null } | null\n ): string;\n}\n\nexport class PriceFormatter implements ValueFormatter<PriceModel> {\n applicableFor(value: ApiTypeValue): boolean {\n return isPriceModel(value);\n }\n format(value: PriceModel, formatTemplate: string | null): string {\n const result = numeral(value.amount).format(formatTemplate || getFormatDataField(DefaultFormat.Decimal)?.format!);\n\n return result || '';\n }\n}\n\nexport class NumberFormatter implements ValueFormatter<number> {\n applicableFor(value: ApiTypeValue): boolean {\n return typeof value === 'number';\n }\n format(value: number, formatTemplate: string | null): string {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return numeral(value).format(formatTemplate || getFormatDataField(DefaultFormat.Decimal)?.format!);\n }\n}\n\nexport class DateFormatter implements ValueFormatter<string | number> {\n applicableFor(value: ApiTypeValue, formatTemplate: string | null): boolean {\n if (formatTemplate == null || formatTemplate.length == 0) return false;\n if (value instanceof Date) return true;\n if (typeof value !== 'string') return false;\n return !isNaN(Date.parse(value));\n }\n format(value: string | number, formatTemplate: string | null): string {\n if (typeof value == 'string') value = Date.parse(value);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return dateFormat(value, formatTemplate || getFormatDataField(DefaultFormat.DateTime)?.format!, {\n locale: getCurrentLocale(),\n });\n }\n}\n\nexport class BooleanFormatter implements ValueFormatter<ApiTypeValue> {\n applicableFor(value: ApiTypeValue): boolean {\n return typeof value === 'boolean';\n }\n format(value: ApiTypeValue, formatTemplate: string, translations: { [s: number]: string } | null): string {\n let formateValue = '';\n\n if (value !== null) {\n if (translations != null && translations[value.toString()]) {\n formateValue = translations[value.toString()];\n } else {\n formateValue = value ? '+' : '-';\n }\n }\n\n return formateValue;\n }\n}\n\nexport class StringFormatter implements ValueFormatter<ApiTypeValue> {\n applicableFor(value: ApiTypeValue): boolean {\n return typeof value === 'string';\n }\n format(value: ApiTypeValue, formatTemplate: string, translations: { [s: number]: string } | null): string {\n let formateValue = '';\n\n if (value !== null) {\n if (translations != null && translations[value.toString()]) {\n formateValue = translations[value.toString()];\n } else {\n formateValue = value.toString();\n }\n }\n return formateValue;\n }\n}\n\nexport class DefaultFormatter implements ValueFormatter<ApiTypeValue> {\n applicableFor(): boolean {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n format(value: ApiTypeValue): string {\n return '';\n }\n}\n","import chooseFormat from '@/src/utils/value-formatter/format-selecting-service';\nimport { ApiModel, ApiTypeValue, FormatDataField } from '@/src/types/vue-api';\n\nimport {\n ValueFormatter,\n PriceFormatter,\n NumberFormatter,\n DateFormatter,\n DefaultFormatter,\n BooleanFormatter,\n StringFormatter,\n} from './formatters';\nimport { InstrumentDataFieldBase } from '@/src/types/episerver-api-instrument';\nimport { isPriceModel } from '@/src/types/type-guards';\nimport { getFormatDataField } from './format-helper';\nimport Vue from 'vue';\n\nfunction createFormatService(defaultFormatter: ValueFormatter, ...formatters: ValueFormatter[]) {\n return {\n format: (\n value: ApiTypeValue,\n formatTemplate: string | null,\n translations: { [key: string]: string | null } | null\n ) => {\n for (const formatter of formatters) {\n if (formatter.applicableFor(value, formatTemplate)) {\n return formatter.format(value, formatTemplate, translations);\n }\n }\n\n return defaultFormatter.format(value, '', translations);\n },\n };\n}\n\nconst service = createFormatService(\n new DefaultFormatter(),\n new PriceFormatter(),\n new DateFormatter(),\n new NumberFormatter(),\n new BooleanFormatter(),\n new StringFormatter()\n);\n\nexport function formatValue(\n value: ApiTypeValue,\n formatTemplate: string | null,\n translations: { [key: string]: string | null } | null\n): string {\n return service.format(value, formatTemplate, translations);\n}\n\nfunction isDataFieldSetNullValue(value: ApiTypeValue, isShowEmptyPlaceholderIfZero = false) {\n if (isPriceModel(value)) {\n value = value.amount;\n }\n return value === null || (isShowEmptyPlaceholderIfZero && value === 0);\n}\n\nexport function formatField(\n value: ApiTypeValue | null,\n fieldKey: string,\n model: ApiModel | null = null,\n isPush = false\n): string {\n const dataField: FormatDataField | undefined = getFormatDataField(fieldKey);\n if (isDataFieldSetNullValue(value, (dataField as InstrumentDataFieldBase)?.isShowEmptyPlaceholderIfZero)) {\n return dataField?.nullValue || '';\n }\n\n let formatTemplate: string | undefined;\n if (dataField) {\n formatTemplate = chooseFormat(value, dataField, model, isPush);\n }\n return formatValue(value, formatTemplate || null, dataField?.translations || null);\n}\n","import numeral from 'numeral';\nimport Vue from 'vue';\n\nexport const CustomOrdinalFormatting = 'customOrdinalFormatting';\nexport const CulturesWithCustomOrdinal = { enDE: 'en-DE', deDE: 'de-DE' };\n\n/**\n * Custom currency formatter\n */\nnumeral.register('format', 'CustomOrdinalFormatting', {\n regexps: {\n format: /(\\s?O{2})/,\n },\n format: function (value: number) {\n const locale = numeral.locales[numeral.options.currentLocale];\n\n if (typeof locale.customOrdinal === 'function') {\n return locale.customOrdinal(value);\n } else {\n Vue.$log.fatal('No custom ordinal set for this culture', locale);\n }\n },\n});\n","import { VNode } from 'vue';\n\n/**\n * Vue adds whitespace as node between other nodes in the $slots.<property-name> array, when inline elements are passed as slots.\n * Therefore the nodes with the undefined tags are filtered out here. Check https://github.com/vuejs/vue/issues/2723\n */\nexport function filterVNodes(nodes: VNode[] | undefined): VNode[] {\n if (nodes !== undefined) {\n // Whitespace nodes have the tag undefined\n return nodes.filter((node: VNode) => node.tag !== undefined);\n }\n return new Array<VNode>();\n}\n","/**\n * Declare specification of window variables;\n */\ndeclare global {\n interface Window {\n gtag: Function;\n }\n}\n\n/**\n * A facade of gtag. Only act when gtag available.\n * @param args\n */\nexport function trackEvent(...args: unknown[]) {\n if (typeof window.gtag === 'function') {\n window.gtag(...['event', ...args]);\n }\n}\n\nexport enum GaEvent {\n JoinGroup = 'join_group',\n SelectItem = 'select_item',\n SelectContent = 'select_content',\n ClickDownload = 'ClickDownload',\n}\n","var map = {\n\t\"./atoms/ad-adblocker-detection/index.vue\": 5855,\n\t\"./atoms/ad-anchor-link-accordion-container/index.vue\": 4984,\n\t\"./atoms/ad-collapse-on-mobile/index.vue\": 4011,\n\t\"./atoms/ad-drop-down-list/index.vue\": 8798,\n\t\"./atoms/ad-filter-numeric-input/index.vue\": 1958,\n\t\"./atoms/ad-html-or-text/index.vue\": 3839,\n\t\"./atoms/ad-image/index.vue\": 2686,\n\t\"./atoms/ad-info-block/index.vue\": 1039,\n\t\"./atoms/ad-like-count/index.vue\": 3702,\n\t\"./atoms/ad-missing-cookie-modal/index.vue\": 7102,\n\t\"./atoms/ad-missing-cookie/index.vue\": 2938,\n\t\"./atoms/ad-note/index.vue\": 763,\n\t\"./atoms/ad-responsive-view-panel/index.vue\": 9928,\n\t\"./atoms/ad-simple-table/index.vue\": 514,\n\t\"./atoms/ad-switch-button/index.vue\": 4274,\n\t\"./atoms/ad-template-renderer/index.vue\": 2495,\n\t\"./atoms/ce-ad-marker/index.vue\": 3562,\n\t\"./atoms/ce-back-to-top-button/index.vue\": 8494,\n\t\"./atoms/ce-breadcrumbs/index.vue\": 1510,\n\t\"./atoms/ce-facebook-button/index.vue\": 2880,\n\t\"./atoms/ce-node-renderer/index.vue\": 5366,\n\t\"./atoms/ce-twitter-button/index.vue\": 1637,\n\t\"./atoms/instruments/ad-instrument-data-row/index.vue\": 7851,\n\t\"./atoms/instruments/ad-instrument-data-value/index.vue\": 742,\n\t\"./atoms/instruments/ad-instrument-table/column-visible-wrapper.vue\": 9097,\n\t\"./atoms/instruments/ad-instrument-table/index.vue\": 4569,\n\t\"./atoms/instruments/ad-instrument-url-replacer/index.vue\": 4935,\n\t\"./atoms/instruments/ad-product-column-list/index.vue\": 2243,\n\t\"./atoms/instruments/ad-product-data-value/index.vue\": 697,\n\t\"./atoms/instruments/ad-product-link/index.vue\": 4650,\n\t\"./atoms/instruments/ad-product-search-filter-subtype/index.vue\": 5294,\n\t\"./atoms/instruments/ad-product-status-icon-block/index.vue\": 6914,\n\t\"./atoms/instruments/ad-product-type-button/index.vue\": 8346,\n\t\"./atoms/instruments/ad-product-type-count-table/index.vue\": 3866,\n\t\"./atoms/instruments/ad-product-type-list/index.vue\": 4115,\n\t\"./atoms/instruments/ad-product-watchlist-toggle/index.vue\": 6928,\n\t\"./atoms/instruments/ad-trigger-probability-block/index.vue\": 3237,\n\t\"./atoms/instruments/ad-underlying-data-value/index.vue\": 4170,\n\t\"./atoms/instruments/ad-underlying-link/index.vue\": 670,\n\t\"./atoms/instruments/ad-underlying-list/index.vue\": 4570,\n\t\"./atoms/instruments/ad-underlying-watchlist-toggle/index.vue\": 3915,\n\t\"./atoms/properties/ad-base-settings-properties/index.vue\": 8556,\n\t\"./atoms/properties/ad-chart-configuration-property/index.vue\": 2775,\n\t\"./atoms/properties/ad-index/index.vue\": 6777,\n\t\"./atoms/properties/ad-json-settings-property/index.vue\": 9412,\n\t\"./atoms/properties/ad-product-data-property/index.vue\": 839,\n\t\"./atoms/properties/ad-product-teaser-property/index.vue\": 717,\n\t\"./atoms/properties/ad-product-underlying-data-property/index.vue\": 6574,\n\t\"./atoms/properties/ad-underlying-data-property/index.vue\": 7611,\n\t\"./icons/ad-icon-base/index.vue\": 1562,\n\t\"./icons/ad-icon-best-match/index.vue\": 2116,\n\t\"./icons/ad-icon-chart-candlestick/index.vue\": 8608,\n\t\"./icons/ad-icon-chart-line/index.vue\": 5101,\n\t\"./icons/ad-icon-check/index.vue\": 7818,\n\t\"./icons/ad-icon-chevron/index.vue\": 4245,\n\t\"./icons/ad-icon-close/index.vue\": 6083,\n\t\"./icons/ad-icon-copy/index.vue\": 5557,\n\t\"./icons/ad-icon-delete/index.vue\": 1339,\n\t\"./icons/ad-icon-download/index.vue\": 5204,\n\t\"./icons/ad-icon-go-back/index.vue\": 9429,\n\t\"./icons/ad-icon-hamburger/index.vue\": 683,\n\t\"./icons/ad-icon-info/index.vue\": 6308,\n\t\"./icons/ad-icon-like/index.vue\": 9654,\n\t\"./icons/ad-icon-link-four-five/index.vue\": 7492,\n\t\"./icons/ad-icon-linkedIn/index.vue\": 9189,\n\t\"./icons/ad-icon-play/index.vue\": 9815,\n\t\"./icons/ad-icon-search/index.vue\": 1852,\n\t\"./icons/ad-icon-sort/index.vue\": 9408,\n\t\"./icons/ad-icon-warnings/index.vue\": 1229,\n\t\"./icons/ad-icon-watchlist-add/index.vue\": 6776,\n\t\"./icons/ad-icon-watchlist-remove/index.vue\": 3251,\n\t\"./icons/ad-icon-watchlist/index.vue\": 6875,\n\t\"./icons/ad-icon-xing/index.vue\": 2612,\n\t\"./icons/ad-icon-xls/index.vue\": 5304,\n\t\"./molecules/ad-anchor-layout/index.vue\": 2320,\n\t\"./molecules/ad-anchor-navigation/index.vue\": 3944,\n\t\"./molecules/ad-anchor/index.vue\": 5412,\n\t\"./molecules/ad-broker/index.vue\": 7609,\n\t\"./molecules/ad-brokers-overlay/index.vue\": 8504,\n\t\"./molecules/ad-collapse-on-mobile-group-block/index.vue\": 4379,\n\t\"./molecules/ad-cookie-consent/index.vue\": 1527,\n\t\"./molecules/ad-disclaimer-item/index.vue\": 3701,\n\t\"./molecules/ad-downloads/ad-downloads-items.vue\": 6725,\n\t\"./molecules/ad-downloads/ad-downloads-list.vue\": 666,\n\t\"./molecules/ad-downloads/index.vue\": 3941,\n\t\"./molecules/ad-education-content-tree/index.vue\": 4374,\n\t\"./molecules/ad-folder-downloads-group-filter/index.vue\": 4058,\n\t\"./molecules/ad-folder-downloads-year-filter/index.vue\": 4062,\n\t\"./molecules/ad-global-search/ad-suggest-search-dropdown/ad-suggest-dropdown-column.vue\": 7405,\n\t\"./molecules/ad-global-search/ad-suggest-search-dropdown/index.vue\": 4416,\n\t\"./molecules/ad-global-search/index.vue\": 3895,\n\t\"./molecules/ad-glossary-content/index.vue\": 9978,\n\t\"./molecules/ad-load-more-teasers-json/index.vue\": 2387,\n\t\"./molecules/ad-load-more-teasers/ad-runtime-component.vue\": 1073,\n\t\"./molecules/ad-load-more-teasers/index.vue\": 6061,\n\t\"./molecules/ad-pagination/index.vue\": 7650,\n\t\"./molecules/ad-product-info-table/ad-product-info-table-row/index.vue\": 5383,\n\t\"./molecules/ad-product-info-table/index.vue\": 9466,\n\t\"./molecules/ad-realtime-block/index.vue\": 1728,\n\t\"./molecules/ad-text-image-teasers/index.vue\": 3035,\n\t\"./molecules/ad-tile-teasers/index.vue\": 1973,\n\t\"./molecules/ad-underlying-preheadline-text/index.vue\": 5381,\n\t\"./molecules/ad-underlying-related-info-popup/index.vue\": 619,\n\t\"./molecules/ad-video/index.vue\": 4002,\n\t\"./molecules/ce-accordion/index.vue\": 6669,\n\t\"./molecules/ce-article-navigation/index.vue\": 3368,\n\t\"./molecules/ce-author-big/index.vue\": 4651,\n\t\"./molecules/ce-author-small/index.vue\": 8064,\n\t\"./molecules/ce-banner-ad/index.vue\": 48,\n\t\"./molecules/ce-blog-short-news/index.vue\": 2395,\n\t\"./molecules/ce-chapter-select/index.vue\": 6371,\n\t\"./molecules/ce-content-ad/index.vue\": 6335,\n\t\"./molecules/ce-download/index.vue\": 9931,\n\t\"./molecules/ce-glossary-content/index.vue\": 4269,\n\t\"./molecules/ce-glossary-desktop-section-letter-selector/index.vue\": 6309,\n\t\"./molecules/ce-glossary-mobile-section-navigation-button/index.vue\": 9434,\n\t\"./molecules/ce-grouped-download-button/index.vue\": 435,\n\t\"./molecules/ce-header-image/index.vue\": 3416,\n\t\"./molecules/ce-image-gallery/index.vue\": 6481,\n\t\"./molecules/ce-newsletter-registration/index.vue\": 9522,\n\t\"./molecules/ce-radio-buttons/index.vue\": 7841,\n\t\"./molecules/ce-supports-and-resistances-table/index.vue\": 3351,\n\t\"./molecules/ce-tab-element/index.vue\": 4804,\n\t\"./molecules/ce-text-image-teaser/index.vue\": 7494,\n\t\"./molecules/ce-video-info/index.vue\": 9328,\n\t\"./molecules/ce-video-preview/index.vue\": 1592,\n\t\"./molecules/ce-video/index.vue\": 860,\n\t\"./molecules/charts/ad-chart-legend.vue\": 9173,\n\t\"./molecules/charts/ad-chart-periods.vue\": 8632,\n\t\"./molecules/charts/ad-product-chart/index.vue\": 9836,\n\t\"./molecules/charts/ad-realtime-chart/index.vue\": 7106,\n\t\"./molecules/charts/ad-stock-chart.vue\": 3706,\n\t\"./molecules/charts/ad-underlying-chart/index.vue\": 4590,\n\t\"./molecules/filter-components/ad-filter-daterange-one/index.vue\": 468,\n\t\"./molecules/filter-components/ad-filter-daterange/index.vue\": 8038,\n\t\"./molecules/filter-components/ad-filter-numeric-range-holder/index.vue\": 4178,\n\t\"./molecules/instruments/ad-best-match-search-filter-container/index.vue\": 2664,\n\t\"./molecules/instruments/ad-product-description/index.vue\": 8047,\n\t\"./molecules/instruments/ad-product-detail-block-teaser/index.vue\": 9531,\n\t\"./molecules/instruments/ad-product-main-information/index.vue\": 5770,\n\t\"./molecules/instruments/ad-product-price-data/index.vue\": 3451,\n\t\"./molecules/instruments/ad-top-leverage-table/index.vue\": 2427,\n\t\"./molecules/instruments/ad-underlying-indications-table/index.vue\": 6494,\n\t\"./molecules/instruments/ad-underlying-teaser-blog/index.vue\": 142,\n\t\"./molecules/instruments/ad-underlying-teaser-chart/index.vue\": 6255,\n\t\"./molecules/instruments/ad-underlying-teaser-default/index.vue\": 7391,\n\t\"./molecules/instruments/ad-underlying-teaser-price-data/index.vue\": 4344,\n\t\"./molecules/instruments/ad-underlying-teaser-realtime-data/index.vue\": 1528,\n\t\"./molecules/instruments/ad-underlying-top-flop-table/index.vue\": 4947,\n\t\"./molecules/news/ad-news-teasers/index.vue\": 1077,\n\t\"./molecules/news/ce-ad-news-teaser/index.vue\": 9826,\n\t\"./molecules/news/ce-ad-news-with-short-news-teaser/index.vue\": 8571,\n\t\"./molecules/news/ce-ad-short-news-item-teaser/index.vue\": 2225,\n\t\"./molecules/news/ce-ad-short-news-item/index.vue\": 1727,\n\t\"./molecules/news/ce-ad-short-news-teaser-container/index.vue\": 301,\n\t\"./molecules/news/ce-news-teaser-markets/index.vue\": 1384,\n\t\"./molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-container/index.vue\": 6164,\n\t\"./molecules/news/news-teaser-markets/ce-ad-news-teaser-markets-item/index.vue\": 4295,\n\t\"./molecules/product-history/ad-product-rolling-history/index.vue\": 7259,\n\t\"./molecules/product-history/ad-product-strike-history/index.vue\": 6954,\n\t\"./molecules/sekeleton/ad-skeleton-image/index.vue\": 6135,\n\t\"./molecules/sekeleton/ad-skeleton-input/index.vue\": 1298,\n\t\"./molecules/sekeleton/ad-skeleton-radio-buttons/index.vue\": 2407,\n\t\"./molecules/sekeleton/ad-skeleton-table/index.vue\": 2206,\n\t\"./molecules/sekeleton/ad-skeleton-text/index.vue\": 9647,\n\t\"./organisms/ad-best-match-search/ad-best-match-search-table.vue\": 9393,\n\t\"./organisms/ad-best-match-search/index.vue\": 570,\n\t\"./organisms/ad-disclaimer/index.vue\": 3585,\n\t\"./organisms/ad-error/index.vue\": 2701,\n\t\"./organisms/ad-general-search/index.vue\": 3936,\n\t\"./organisms/ad-important-notice/index.vue\": 1589,\n\t\"./organisms/ad-main-load-data-guard/index.vue\": 6272,\n\t\"./organisms/ad-priip-search/index.vue\": 8292,\n\t\"./organisms/ad-product-details-load-guard/index.vue\": 2637,\n\t\"./organisms/ad-product-details/ad-product-header.vue\": 7453,\n\t\"./organisms/ad-product-details/ad-product-page-title.vue\": 6677,\n\t\"./organisms/ad-product-details/index.vue\": 9356,\n\t\"./organisms/ad-quick-search/index.vue\": 6040,\n\t\"./organisms/ce-blog-article-overview/_blog-article-overview-article-chunk.vue\": 2803,\n\t\"./organisms/ce-blog-article-overview/_blog-article-overview-highlight-article.vue\": 1486,\n\t\"./organisms/ce-blog-article-overview/index.vue\": 8830,\n\t\"./organisms/ce-contact/index.vue\": 2738,\n\t\"./organisms/ce-footer/index.vue\": 9770,\n\t\"./organisms/ce-header/ce-document-search/index.vue\": 1866,\n\t\"./organisms/ce-header/ce-header-back/index.vue\": 3518,\n\t\"./organisms/ce-header/ce-header-nav/ce-nav-item-dropdown/index.vue\": 1506,\n\t\"./organisms/ce-header/ce-header-nav/ce-sub-nav-item-info/index.vue\": 8269,\n\t\"./organisms/ce-header/ce-header-nav/ce-sub-nav-item/index.vue\": 5041,\n\t\"./organisms/ce-header/ce-header-nav/index.vue\": 8071,\n\t\"./organisms/ce-header/ce-header-search/index.vue\": 8044,\n\t\"./organisms/ce-header/index.vue\": 7399,\n\t\"./organisms/ce-newsletter-subscription/index.vue\": 9617,\n\t\"./organisms/ce-sub-page-tiles/index.vue\": 165,\n\t\"./organisms/ce-tiles/_tile-chunk.vue\": 9290,\n\t\"./organisms/ce-tiles/tiles.vue\": 3755,\n\t\"./organisms/pages/ad-best-match-search-page/index.vue\": 5344,\n\t\"./organisms/pages/ad-blog-page-base/index.vue\": 1376,\n\t\"./organisms/pages/ad-education-video-page/index.vue\": 7285,\n\t\"./organisms/pages/ad-priip-page/index.vue\": 6292,\n\t\"./organisms/pages/ad-product-search-page/ad-product-search-sorting.vue\": 9575,\n\t\"./organisms/pages/ad-product-search-page/ad-product-search-table.vue\": 8614,\n\t\"./organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-category.vue\": 4901,\n\t\"./organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-container.vue\": 1038,\n\t\"./organisms/pages/ad-product-search-page/filter-components/ad-product-search-filter-dropdown.vue\": 4974,\n\t\"./organisms/pages/ad-product-search-page/index.vue\": 7418,\n\t\"./organisms/pages/ad-realtime-page/index.vue\": 4503,\n\t\"./organisms/pages/ad-structured-products-page/index.vue\": 4514,\n\t\"./organisms/pages/ad-underlying-detail-page/ad-product-types-count.vue\": 4392,\n\t\"./organisms/pages/ad-underlying-detail-page/ad-underlying-detail-page-header.vue\": 2818,\n\t\"./organisms/pages/ad-underlying-detail-page/index.vue\": 5030,\n\t\"./organisms/pages/ad-watchlist-page/index.vue\": 7082,\n\t\"./organisms/teaser/ad-article-overview-teaser-container/index.vue\": 5569,\n\t\"./organisms/teaser/ad-best-match-search-teaser/index.vue\": 7121\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4422;","var map = {\n\t\"./best-match.ts\": 4992,\n\t\"./field-formats.ts\": 9011,\n\t\"./html-anchors.ts\": 6391,\n\t\"./priip.ts\": 2834,\n\t\"./product.ts\": 1102,\n\t\"./realtime.ts\": 2674,\n\t\"./translations.ts\": 5571,\n\t\"./underlying.ts\": 3139,\n\t\"./watchlist.ts\": 2451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1018;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/dist/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t826: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkciti_emea\"] = self[\"webpackChunkciti_emea\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(2115); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","_setupProxy","attrs","_t","scopedSlots","_u","key","fn","staticClass","on","setHintViewed","proxy","model","value","anyBlocked","callback","$$v","expression","staticRenderFns","AdAdblockerDetection","Vue","constructor","args","_defineProperty","created","cookieManager","CookieManager","$cookies","mounted","isDetectionEnabled","wasAdBlockerHintViewed","isAdBlockerDetected","hideDisclaimerAndShowHint","hideHintAndShowDisclaimer","saveCookie","settingsProperty","cssSelectors","length","elements","document","querySelectorAll","blockedElements","Array","from","filter","element","displayValue","window","getComputedStyle","display","hideHint","showDisclaimer","showHint","hideDisclaimer","$nextTick","$bvModal","show","hide","saveAdBlockerHintViewed","__decorate","Inject","Component","component","visibleAccordionIndex","onChildListMutation","removeHash","AdAnchorLinkAccordionContainer","mutations","observer","isJumpToAnchorEnabled","jumpToAnchor","history","replaceState","title","location","pathname","onHashChange","accordionIndex","tryGetAccordionIndexFromHash","anchor","hash","substring","anchorIndexLookup","defaultOpenIndex","onhashchange","event","preventDefault","updated","setTimeout","_b","class","mobileView","$attrs","directives","name","rawName","collapseTarget","$event","iconRotation","_e","showDesktopHeader","$screen","xl","ref","collapseId","visible","toogleCollapse","AdCollapseOnMobile","_class","AdCollapseOnMobile_1","uuId","currentUuId","breakpoint","showCollapsed","state","forceOpen","$refs","Prop","type","Boolean","default","Watch","inheritAttrs","loading","Deselect","getFilterText","clearable","isItemSelectable","dropDownItem","multiple","dropdownItems","placeholder","required","open","close","setValue","attributes","events","_g","formElementStateId","inputId","isRequired","DropDownItem","isHeader","_v","_s","getText","isSplitter","includes","AdDropDownList","allLabel","getAlItemsLabelText","currentOptions","options","createAllOption","uniqBy","nameOf","slot","$slots","text","trim","newValue","$emit","validateItem","formGroupElement","getElementById","isOpen","classList","add","remove","item","DropDownItemType","header","splitter","isItem","isMaxSelectableItemIsNotReached","isSelectable","maxSelectableItems","option","Function","Number","data","createElement","height","width","isVisibleFunc","valueProperty","error","isError","undefined","_uid","isValueModified","borderValueAsString","indexOf","_k","keyCode","onValueChange","localCurrentValueAsString","TextToNumericConvertHelper","dispformat","displayFormat","toText","val","formatValue","toNumber","stringVal","NaN","percentFormatPlaceholder","numeralVal","numeral","toPrecisionNumber","AdFilterNumericInput","convertHelper","fieldFormat","setLocalValueToValueFromModel","borderValue","textValue","valAsNumber","validateFunc","isDifferentThanCurrentValue","isValidInput","nummericVal","hasDescription","AdImage","isMobileFullScreen","iconId","getPlacement","getFallbackPlacement","showPopoverInBigSize","AdInfoBlock","AdInfoBlock_1","_UUID","PopoverPosition","BottomLeft","placement","PopoverFallback","fallbackPlacement","showOnMobileFullScreen","md","likeCount","showCountOnLeft","wasLiked","likeContent","ContentLikeService","cookies","_cookieManager","contentId","getLikeCount","response","httpClient","get","getTheQApiUrl","Controller","ContentLikes","params","addLike","post","cookieState","saveLike","CookieCreateState","Exists","Created","AdLikeCount","result","contentLikeService","NotAccepted","MissingCookieModalId","MissingLikeCookieModal","err","$log","viewMode","Popup","modalId","AdMissingCookieModal","MissingCookieViewMode","blockViewMode","cookieSettingsPageUrl","staticStyle","Content","style","backgroundImage","backgroundImageUrl","Text","AdMissingCookieBlock","isVisible","showHeadline","blockHeadline","AdNote","conditionFieldKey","product","field","getFormatDataField","evaluateExpressionByKey","valueExpression","conditionValue","headline","setHeadlineVisibility","InjectReactive","AdResponsiveViewPanel","_l","headerItems","h","headerClass","column","c","rowItems","row","r","cell","cellClass","f","AdSimpleTable","group","headers","rows","map","colIndex","cellTextAlign","styles","push","i","reduce","cols","index","reverse","sm","unshift","stateClass","disabled","toggle","AdSwitchButton","displayClass","activeStateClass","template","tag","AdTemplateRenderer","CeAdMarker","scroll","CeBackToTopButton","scrollTo","top","behavior","slots","CeBreadcrumbs","filterVNodes","fullUrl","CeFacebookButton","getFacebookShareIntentURL","urlToShare","shareURL","appId","facebookAppId","extend","props","node","Object","functional","context","CeTwitterButton","getTwitterShareIntentURL","textToShare","tweetText","isValueVisible","setVisible","fieldKey","isLinkToDetailPage","AdInstrumentDataRow","hasValue","showOnEmpty","Push","pushClass","isWordWrap","formatedValue","AdInstrumentDataValue","None","formatField","instrument","isPush","$watch","setPushStyling","currentValue","cloneValue","debug","amount","formatedField","nullValue","getPushClass","High","Low","assign","AdColumnVisibleWrapper","pushTriggerFrequenz","fields","items","columns","sortBy","sortDesc","selectable","sortingChanged","rowClicked","$scopedSlots","label","active","sortNumber","domProps","mergeColumnSettings","setting","separator","NewLine","Slash","isEllipsis","visibleChange","watchListKey","isDetailRow","toggleDetails","detailsShowing","direction","up","down","AdInstrumentTable","Separator","Direction","instruments","_showDetails","isWatchListRow","table","setTableColumnDefinition","clearVisibleItems","visibleItems","currentMax","maxPufferItems","currentMin","minPufferItems","findIndex","n","splice","min","Math","pushPufferNumber","max","isBlockSetTableColumnDefinitionSwitch","settings","hideDetailColumn","tdClass","pageRoutes","watchlistUrl","setClass","textAlign","columnWidth","mapTextAlign","addMergeColumn","tableColumnsSetting","forEach","isMergeColumnSetting","getIsShowColumnSetting","toString","sortable","columnMergeSetting","sortIndex","desktopTableColumnsSetting","sortColumn","isSorting","sortOrders","find","so","sorting","thClass","SortingDirection","toLowerCase","tabletTableColumnsSetting","mobileTableColumnsSetting","noSelectOnClick","isRowSelected","selectRow","ctx","Descending","Ascending","isShowColumn","e","currentOpenItem","Ref","components","isin","AdInstrumentUrlReplacer","underlying","productNameTranslation","Getter","namespace","hasNsinField","isAddColumnDistributionFee","isDistributionSwitchColumn","formatId","AdProductColumnList","teaserSettingsProperty","lg","currentProduct","isLink","subscribePushValue","AdProductDataValue","productItem","productInjected","isPriceModel","Action","immediate","link","AdProductLink","nsin","urlKeys","productKey","underlyings","tryCreateProductLink","productType","applyFilter","slotsToRender","SlotElement","AdProductSearchFilterSubtype","slotsArray","ProductSubTypeBo","Call","getLabelForCall","Put","getLabelForPut","isLabelForBothActive","getLabelForBoth","getLabelValue","entry","labelSlot","prepareValues","first","second","Date","parse","now","evaluateCondition","operation","values","ComparisonOperators","Equal","NotEqual","Less","Greater","LessOrEqual","GreaterOrEqual","AdProductStatusIcon","condition","fieldExpression","click","displayName","AdProductTypeButton","Emit","types","searchLinks","count","AdProductTypeCountTable","selectedUnderlying","searchFilters","ProductSearchParametersFilter","underlyingIsinOrIsins","tryCreateProductSearchLink","ProductTypeBo","fill","getItems","internalLoading","selectedValueChanged","AdProductTypeList","availableItems","getProductTypes","getProductTypeGroups","allOptionLabel","onlyLeverage","getProductTypeGroupOptionsAsync","getProductTypeOptionsAsync","groupOptions","productTypeGroupOptions","convertGroups","convertOptions","productTypeOptions","t","isProductInWatchlist","cookieComfortAccepted","toggleItem","iconSize","AdProductWatchlistToggle","securityCode","watchedProducts","p","comfort","removeProduct","addProduct","code","price","bid","MissingWatchlistCookieModal","triggerProbabilityFieldKey","TriggerProbabilityApiFilterItem","symbol","timeZone","AdTriggerProbabilityBlock","chartColor","ChartColors","triggerProbability","initChart","chartContainer","chartData","mapChartData","series","xAxis","labels","formatter","point","formatDateLabel","y","dateLabelsMargin","tickLength","yAxis","gridLineDashStyle","tickAmount","color","formatAxisValueLabel","plotOptions","pointWidth","dataLabels","enabled","inside","formatColumnValueLabel","align","chart","chartHeight","legend","tooltip","useHTML","borderWidth","formatTooltip","scrollbar","credits","Highcharts","timestamp","getPointTimestamp","pos","xAxisLabelFormatFieldKey","DefaultFormat","columnLabelFormatFieldKey","Decimal","yAxisLabelFormatFieldKey","Percent","x","date","tooltipDateFormatFieldKey","tooltipValueFormatFieldKey","utcDate","tickPositions","COLUMN_COUNT","requestChartData","timezone","TriggerProbabilityCharts","ex","loadData","origin","InstrumentOriginTimeZone","AET","redrawChart","currentUnderlying","AdUnderlyingDataValue","underlyingItem","underlyingInjected","AdUnderlyingLink","underlyingKey","tryCreateUnderlyingLink","availableUnderlyings","AdUnderlyingList","getUnderlyings","groupItems","underlyingOptionGroups","underlyingOptions","getUnderlyingOptions","console","filterItems","optionGroups","currentOptionGroup","g","u","replace","removeSelectedItemIfNotAvailable","v","isUnderlyingInWatchlist","AdUnderlyingWatchlistToggle","watchedUnderlyings","removeUnderlying","addUnderlying","AdBaseSettingsProperties","routes","nsinKeys","errorMessages","settingsErrorMessages","tryParseJson","settingsJson","jsonString","json","decodeURIComponent","JSON","Provide","AdChartConfigurationProperty","ChartConfiguration","AdIndex","AdJsonSettingsProperty","changePlusToWhitespace","encodedStr","plusRegex","RegExp","AdProductDataProperty","ProvideReactive","AdProductTeaserProperty","AdUnderlyingProductDataProperty","underlyingType","UnderlyingType","Default","AdUnderlyingDataProperty","viewBox","AdIconBase","rotate","transform","String","AdIconBestMatch","AdIconChartLine","AdIconChartCandlestick","AdIconCheck","iconRotate","AdIconChevron","sizeLength","size","Size","xxs","xs","s","m","l","xxl","left","right","AdIconClose","AdIconCopy","AdIconDelete","AdIconDownload","AdIconGoBack","AdIconHamburger","AdIconInfo","AdIconLike","AdIconLinkFourFive","AdIconLinkedIn","AdIconPlay","AdIconSearch","AdIconSort","AdIconWarnings","AdIconWatchlistAdd","AdIconWatchlistRemove","AdIconWatchlist","AdIconXing","AdIconXls","showNavigation","AdAnchorLayout","AdAnchorNavigation","$on","scrollToView","targetHref","target","$element","substr","scrollToElement","showAnchor","passClick","AdAnchor","registeredAnchors","$parent","getBrokerUrl","onClick","AdBroker","url","brokerUrl","replaceKey","brokerName","brokerClick","popoverId","targetId","isPopoverShow","onClose","onBrokerClick","AdBrokersOverlay","setOverlayPlacement","trackEvent","GaEvent","SelectItem","item_list_id","item_id","staticHeadline","AdCollapseOnMobileGroup","findChildrenWithHeadlines","$children","propagateFirstHeadline","b","blockChildren","block","isHeadlineBlock","subItems","concat","isAcceptButtonsEnabled","acceptAll","onTechnicalChange","technical","marketing","canHideThirdPartyMedia","thirdPartyMedia","canReject","reject","accept","remember","AdCookieCConsent","onComfortChanged","applyCanHideThirdPartyMedia","cookieVersion","cookieconsentversion","saveSettings","CookieSettings","consent","full","disclaimerExpanded","expandDisclaimer","AdDisclaimerItem","websiteKey","currentWebsite","files","file","isDownloadGroup","loadMoreCount","downloadClick","propagateError","childListName","downloadBlockTranslations","listHide","listShow","isDownload","download-click","fileFormat","getDownloadFileFormat","previewImageLink","isSingleDownload","format","getDownloadGroupFileFormat","isDownloadLink","AdDownloadsItems","statusCode","toUpperCase","flattenedFiles","depth","isGroupedDownloadGroup","AdDownloadsList","prepareFiles","flattenToLayeredDownloadItem","sortedFiles","SortRecursive","groups","isNewestFirst","sorted","sort","a","rank","childDownloads","isGroupSelected","hasListLayout","columnIndexes","columnFiles","columnsCount","AdDownloads","HttpStatusCodes","OK","filterApiDocuments","filterState","yearFilterName","filteredApiDocuments","apiDocuments","_","year","groupFilterName","fetchDocuments","requestApiDocuments","isAxiosError","status","UnknownError","config","DocumentServiceConfiguration","DocumentDate","requests","getProductDocuments","parentFolderIds","getFolderDocuments","linkedDocumentFolderIds","Promise","all","flatMap","$forceUpdate","range","baseProspectus","d","DocumentType","BaseProspectus","SecuritiesNote","otherDownloads","links","downloadsPerColumn","otherColumnsCount","ceil","to","slice","deep","chapters","activeChapter","AdEducationContentTree","chapter","identifier","navigationName","currentSelection","AdFolderDownloadsGroupFilter","setDefaultSelection","tryGetSelectionFromHash","inGroups","folderGroups","selectedValue","some","AdFolderDownloadsYearFilter","years","hr","onMouseEnter","listIndex","onMouseLeave","currentIndex","detail","AdSuggestDropdownColumn","hasTheqItems","hasBothItemsGroups","theqItems","updateCurrentIndex","hasEpiItems","epiItems","AdSuggestSearchDropdown","section","getItemByIndex","itemIndex","allItems","Infinity","inputProps","suggestionsGroups","suggestions","getCurrentQuery","suggestionsContainerClass","fetchSuggestions","selectSuggestion","rapidSearch","apply","arguments","query","isErrorMessagePopoverEnabled","autocomplete","showPopover","async","requestRapidSearch","isinNsinOrName","GlobalSearch","requestSuggestSearchTheQ","controller","theqRequest","signal","requestSuggestEpiServer","epiServerRequest","getEpiserverApiUrl","AdGlobalSearchBase","mapContentSuggestion","SearchSuggestion","mapUnderlyingSuggestion","id","mapProductTypeSuggestion","suggestSettings","subType","productSubType","underlyingIsin","productTypeSubtypeName","productUnderlyingPreposition","underlyingName","mapProductSuggestion","productNsinKey","productNameFirstLine","urlId","nsinDetail","mapSuggestSearchResult","theqResults","epiResults","searchSettings","GlobalSearchSuggestions","showOnlyProductsInSearch","SearchSuggestionGroup","isDefinedSuggestion","productTypes","suggestSearchSettings","productTypesHeadline","products","content","websiteContentHeadline","resetValidationState","hasAnySuggestSearchResult","requestSuggestions","abortController","then","theQSearchResult","searchResult","epiServerSearchResult","allSettled","axios","isCancel","rapidSearchBase","isinOrNsin","AdGlobalSearch","pDebounce","debounceDelay","errorMessageState","newState","oldState","changeValidationState","flashRapidSearchNotFoundMessage","isValid","hasAnyRapidSearchResults","inputClass","searchInputPlaceholder","isTwoColumnView","classes","isErrorMessageEnabled","self","flashMessageTimeoutId","clearTimeout","timeoutId","hideRapidSearchNotFoundMessage","selected","anchorUrl","abort","urlWithFragment","href","singleSuggestionUrl","AbortController","debounceRequestSuggestions","VueAutosuggest","entries","AdGlossaryContent","contentSettings","canLoadMore","loadMore","AdLoadMoreTeasersJson","isLoading","hasMore","contentItemsCount","initialItemsCount","loadedItems","DataSource","blockId","skip","take","AdRuntimeComponent","VRuntimeTemplate","htmlTemplate","initialContent","loadedAdditionalContent","AdLoadMoreTeasers","additionalContent","currentTake","pagingChange","totalPages","validity","valid","currentPageNumber","viewItems","pageNumber","AdPagination","replaceViewText","updateCurrentPageNumber","increase","parseInt","views","viewsPerPageSelectionText","isRowVisible","setVisibleFirst","firstProduct","setVisibleSecond","secondProduct","AdProductInfoTableRow","isFirstValueVisible","isSecondValueVisible","isHiddenReason","AdProductInfoTable","isins","firstProductIsin","secondProductIsin","loadConcatProductsAsync","allowedTypes","productByIsin","realtimeUnderlyingIsin","teaserUnderlyingIsin","cardView","AdRealtimeBlock","selectUnderlying","loadUnderlying","loadUnderlyingAsync","teasers","layoutMode","showMoreButtonLink","maxItemsPerRow","showMoreButtonText","AdTextImageTeasers","background","TextImageTeaserBackground","teaser","TextImageTeaserTypes","isTeaserImageSetting","headlineText","preHeadlineText","copyText","callToActionText","image","src","getImageResizerUrl","imageData","sources","Media","SrcSet","isTeaserVideoSetting","video","youtubeId","previewImageSrc","TileTeaserColor","TileTeaserView","isSupPageTiles","tiles","isTinyTiles","AdTileTeasers","view","SupPageTiles","TinyTiles","mapTileColor","PeacockBlue","DeepTurquoise","Grape","Mulberry","AdUnderlyingPreheadlineText","udpPreheadlines","udpPreheadline","forUnderlyings","preheadlineText","iconVisible","popoverText","AdUnderlyingRelatedInfoPopup","Right","Flip","indicativeSlot","indicativeText","auctionSlot","auctionText","showKoTimeInCetIsIndicative","defaultUnderlying","notNull","koTimeIndicativeInfo","textPresent","KnockoutTimeIndicativeInfo","KoTimeInCetIsIndicative","cookiesAccepted","duration","showTitle","missingCookieBlockViewMode","AdVideo","contents","CeAccordion","previousUrl","nextUrl","backUrl","CeArticleNavigation","imageLink","linkedInUrl","xingUrl","CeAuthorBig","imageUrl","authorImageUrl","_f","publishedDate","dateFormatKey","shareUrl","twitterTeaserText","CeAuthorSmall","BlogDate","_m","CeBannerAd","CeBlogShortNews","isChapterActive","CeChapterSelect","CeContentAd","buttonClass","isFullWidth","handleButtonClick","hasImageSlot","isIconAtRight","alignment","colNumber","hideFileFormat","CeDownload","downloadFileGetOrOpenInNewWindowForExternalUrl","letters","letter","entriesByLetter","scrollToLetter","lettersWithWords","word","definition","CeGlossaryContent","split","querySelector","scrollIntoView","currentLetter","firstLettersRow","secondLettersRow","CeGlossaryDesktopSectionLetterSelector","firstLetterOfSecondRow","floor","CeGlossaryMobileSectionNavigationButton","groupChunks","chunk","indexOfChunk","expandedChunks","expanded","openGroupIndices","has","getGlobalIndex","handleDownloadClick","childGroup","childIndex","hasShownAll","showOlder","CeGroupedDownloadButton","Set","downloadGroups","remaining","remainingChunks","indexInChunk","globalIndex","delete","groupItem","hideLightBox","CeHeaderImage","filteredNodes","slide","CeImageGallery","CeNewsletterRegistration","dropdownRequired","stretched","getChildNodes","hoveredOptionIndex","lastOfRowIndices","firstOfRowIndices","rowIndexByOptionIndex","rowCount","handleSelect","getDropdownOptions","CeRadioButtons","IntersectionObserver","handleResize","buttonContainer","extractText","addEventListener","parentElement","observe","destroyed","removeEventListener","disconnect","children","child","join","newFirstOfRowIndices","newLastOfRowIndices","newRowIndexByOptionIndex","lastTopValue","getBoundingClientRect","areSetsEqual","clientWidth","scrollWidth","setA","setB","every","CeSupportsAndResitancesTable","containerToSmall","adjustCurrentTab","filteredHeaders","currentTab","hoveredTab","changeTab","changeHoveredTab","filteredTabs","CeTabElement","tabs","tabIndex","tabHeaderList","inline","by","slotCount","isGrayLayoudMode","teaserShare","source","alt","videoPath","subText","likeId","CeTextImageTeaser","maxItemCount","initialized","loadingPromise","loadYoutubeAPI","scriptTag","getYoutubeIFrameAPIUrl","body","appendChild","resolve","onYouTubeIframeAPIReady","YT","CeVideoInfo","youtubeTitle","manualTitle","youtubeDuration","manualDuration","retrieveYoutubeInfo","yt","player","Player","host","videoId","onReady","getVideoData","getDuration","minutes","seconds","padStart","destroy","onError","videoVisible","youtubePreviewThumbnail","play","modalVisible","modalVisibilityChange","CeVideoPreview","previewState","getYoutubeThumbnail","shouldModalBeUsed","matchMedia","matches","noControls","objectFit","youtubeUrl","CeVideo","getYoutubeUrl","enableJsAPI","autoPlay","htmlVideo","backgroundColor","smCols","AdChartLegend","chartConfigurationProperty","legendInTwoLineModeAtTablet","translation","forceDropDownForChartPeriods","forceRadioButtonsForChartPeriods","input","dropdownOptions","AdChartPeriods","selectedPeriod","periods","selectedPeriodKey","formatLabelDate","formatLabelValue","formatTooltipDate","formatTooltipValue","pointInterval","xAxisTickInterval","xAxisStep","xAxisMax","xAxisMin","showNavigator","showScrollbar","dayBreakThreshold","repeatedBreaks","tickOffset","updateChartMargin","isLegendEnabled","chartLegendMarginStyle","bidColor","isProduct52WeeksHighLowHidden","underlyingColor","isUnderlying52WeeksHighLowHidden","hideSwitches","chartButtonsMarginStyle","isIntraday","showAsk","multipleUnderlyings","productUnderlyingsOptions","selectedUnderlyingIsin","isUnderlyingButtonAvailable","relative","realtime","AdProductChart","AdChartBase","askButtonState","underlyingButtonState","pushBidChart","pushAskChart","pushUnderlyingPriceChart","priceFormat","axis","LabelPosition","Left","productTooltipValueFormatFieldKey","currencyCode","productBid","askColor","productAsk","loadChartData","productData","underlyingData","productInitialData","underlyingInitialData","loadProductData","loadUnderlyingData","loadProductInitialData","loadUnderlyingInitialData","initialValueForRelativeData","previousValue","action","getProductSeries","ChartSeries","DataSeries","ask","nsins","wkn","position","requestInitialData","$data","_ask","updateData","teaserUnderlyings","loadTeaserUnderlyingsAsync","disableUnderlying","noUnderlyingText","chartSerie","pushPriceChart","timeStamp","pushValue","getChartPushValue","pushChart","getSeriesIndex","utcParse","last","ds","seriesIndex","pushTimestamp","updateThreshold","AdStockChart","candlestick","setChartType","chartPatterns","Line","lineChartName","Candlestick","candlestickChartName","chartType","RealtimeChartsApiFilterItem","timeFrom","timeTo","period","ChartPeriods","Intraday","AdRealtimeChart","ChartPatterns","candlestickPointInterval","linePointInterval","axisTickInterval","tradingTimeStart","utcToday","tradingTimeEnd","DateTime","low","high","labelOpen","labelHigh","labelLow","labelClose","Time","requestCandlestickChartData","OhlcDataSeries","requestLineChartData","RealtimeCharts","Charts","ChartsApiFilterItem","pushValueFieldKey","BrokenAxisModule","Stock","labelPosition","side","tooltipDateFormatter","tooltipValueFormatter","_xAxisLabelMargin","xAxisLabelMargin","breaks","findThresholdBreaks","tickPositioner","holidayBreak","millisecondsInDay","mapChartSeries","mapYAxis","gridLineWidth","minTickInterval","tickPixelInterval","step","xAxisLabelStep","labelDateFormatter","ordinal","stickyTracking","turboThreshold","connectNulls","dataGrouping","rangeSelector","styledMode","marginLeft","marginRight","shared","followPointer","navigator","adaptToUpdatedData","margin","stockChart","calcChartMarginLeft","calcChartMarginRight","labelLength","digits","labelValueFormatter","lastSeriesUpdate","breakThreshold","prevPoint","points","breakSize","leftColor","rightColor","opposite","whiteSpace","textOverflow","updateTreshold","isOhlc","delta","seriesData","pointsCount","addPoint","updatePoint","update","chartPeriodsMarginStyle","teaserLayout","AdUnderlyingChart","loadInitialData","pushTimestampFieldKey","onChangeDate","AdFilterDaterangeOne","availableValues","convertToDropdownItems","isSelectableDateFrom","currentSelectedValueFrom","onChangeDateFromValue","isSelectableDateTo","currentSelectedValueTo","onChangeDateToValue","AdFilterDaterange","setDefaultValues","fromIndex","getItemIndexByValueOrDefault","selectedValueFrom","selectedValueIndexFrom","lastIndex","selectedValueTo","selectedValueIndexTo","changeAvailableItems","matchingItem","findItemByValue","selectedIndex","findItemIndex","defaultVal","createDateRange","minValue","maxValue","emittedValue","borderValueMin","onChangeFromValue","borderValueMax","onChangeToValue","AdFilterNumericRangeHolder","isValueWithinRange","isNaN","isInRange","checkFromValueAndResetIfNeeded","createNumericRange","changeValueEventName","checkToValueAndResetIfNeeded","isValueReset","showInvalid","productTypeChanged","loadBestMatchMetaData","bestMatchMetadataResultModel","put","call","$set","underlyingNames","underlyingChanged","onFilterValueChanged","isBestMatchSearchBlockSettings","numericFilters","filterProperty","filters","filterLabel","isNumericFilterVisible","isButtonDisabled","onButtonClick","goToProductSearchPage","AdBestMatchSearchFilterContainer","setBestMatchSearchFilterForRequest","keyDataValue","trackBestMatch","loadBestMatchMetadataResultModelAsync","redirectToSearchProducts","castedSettings","hasNotes","AdProductDescription","ProductSubTypeOption","ProductSubTypeAny","Any","checkOptions","quantoCheckOption","isQuanto","barrierBreachedOption","barrierBreached","europeanUnderlyingOption","isEuropean","isPageInEditMode","notes","checkOption","AnyCheckOptions","No","Yes","AdProductDetailBlockTeaser","AdProductHeader","isArchiveDetail","clipboardSuccessHandler","arg","copyConfirmationText","modifiers","onCloseCopyPopover","productNsinKeyValue","nsinCopiedText","maturityDate","tradingHoursVisible","euronextTimesVisible","knockoutTimesVisible","AdProductMainInformation","lifetimeCycle","getTradingTimes","tradingTimes","productTime","displayKnockOutTime","knockoutTime","displayEuronextTime","euronextTime","isinCopiedText","$root","isMarketClosedOrInterruption","isProductKoed","isProductMatured","isBarrierReached","showSellButton","sellBrokersOverlayTargetId","showSellButtonDisabled","trackBuySellButton","showBuySellButton","buySellBrokersOverlayTargetId","showBuySellButtonDisabled","sellBrokersOverlayMobileTargetId","isBidOnlyPhase","showBuyButton","buyBrokersOverlayTargetId","showBuyButtonDisabled","buyBrokersOverlayMobileTargetId","buySellBrokersOverlayMobileTargetId","isSecondaryMarket","AdProductPriceData","isBuyConfigured","isSellConfigured","isBuySellConfigured","isMatured","knockout","isBidOnlyPhaset","bidSize","buttonType","AdTopLeverageTable","topLeverageSearchResult","loadProductsWithErrorHandling","loadTopLeverageTableSearchAsync","teaserKey","AdUnderlyingIndicationsTable","TextAlign","tableColumnSorting","loadUnderlyingsWithErrorHandling","underlyingIsins","chartConfiguration","nsinKey","AdUnderlyingTeaserBlog","loadUnderlyingsAndSaveByIsinKeyAsync","underlyingByKey","udpPreHeadlines","AdUnderlyingTeaserChart","teaserUnderlying","AdUnderlyingTeaserDefault","hideChange","AdUnderlyingTeaserPriceData","AdUnderlyingTeaserRealtimeData","AdUnderlyingTopFlopTable","topFlopTableSearchResult","loadTopFlopTableSearchAsync","topFlop","pageSize","AdNewsTeasers","Video","previewText","translatedPageName","imageUrlWithSizeParameter","Image","newTeaserType","newTeaserTypeEnum","ImageTop","pageUrl","getImageUrl","ImageBottom","ImageRight","CeAdNewsTeaser","NewTeaserType","globalPageOverviewUrl","CeAdNewsShortNewsTeaser","linkToShortNewsDetailPage","publicationDate","dateFormat","CeAdShortNewsItemTeaser","publicationDateTimestamp","shortNewsId","parsedId","CeAdShortNewsItem","showMoreButton","CeAdShortNewsTeaserContainer","CeNewsTeaserMarkets","showMoreUrl","CeAdNewsTeaserMarketsContainer","CeAdNewsTeaserMarketsItem","excelExport","AdProductRollingHistory","AdProductHistoryBase","getData","rollingHistory","RollingHistory","downloadFilePost","buildExcelRequest","computed","mapGetters","strikeHistory","StrikeHistory","trackExport","ClickDownload","extension","AdSkeletonImage","AdSkeletonInput","AdSkeletonRadioButtons","striped","AdSkeletonTable","AdSkeletonText","bestMatchSearchResultModel","teaserSettings","fieldCount","isButtonTopDisabled","showMoreAbove","isBestMatch","tanslation","isButtonBottomDisabled","showMoreBelow","AdBestMatchSearchTable","resetItemCount","aboveItems","aboveMatches","aboveItemsCount","belowItems","belowMatches","belowItemsCount","bestMatches","getProductTeaserSettings","refresh","highlightBestMatches","scrollBestMatchIntoView","showMoreItem","increaseAboveItemCount","$bestMatchTableRef","$firstHighlightedRow","$el","bestMatchMetadataResultModelItem","onBestMatchValueClick","productFilterChanged","loadUnderlyingsAsync","isInEditMode","statusCodeTable","isTableLoding","currentSorting","refreshTrigger","AdBestMatchSearch","BestMatchSearchRequestFilter","loadBestMatchResultAsync","setFilterDefaults","setFilterFromUrl","loadBestMatchMetaWithErrorHandlingAsync","keyDataField","loadBestMatchResultWithErrorHandlingAsync","updateSortOrder","isTableLoading","loadBestMatchSearchResultModelAsync","ProductKey","UnderlyingName","MaturityDate","clearTeaserUnderlyings","onUnderlyingChangedAsync","BestMatch","excelFilter","searchRequest","columnList","excelExportColumnSettings","validateUnderlyingAndUpdateUrl","updateUrl","updateTeaserItemIfChanged","filterChanged","underlyingDefaultIsin","keys","pushState","tryCreateBestMatchSearchLink","pageLink","numberOfItems","loadMaxItems","qs","search","ignoreQueryPrefix","parsedFilter","parseQueryObject","isSharedWebsite","getWebsiteOptions","isSingleWebsiteOrSelected","onConsent","AdDisclaimerModal","disclaimerItemBlockSettings","reload","rejecturl","SelectOption","websiteName","cookieSetting","cookieName","saveSelectedWebsite","CookieWebSelection","cookieValue","errorMessage","AdError","errorCode","httpStatusCode","mapErrorCodes","throwError","populateError","currentError","statusCodes","defaultError","isDefault","setFilter","AdGeneralSearch","hasProduct","hasUnderlyings","hasProducts","matchesUnderlying","matchesProduct","AdImportantNotice","underlyingCount","productCount","productIsins","productUnderlyingIsins","targetUnderlyingIsins","matchingUnderlyingIsins","isFieldStoreLoaded","isUnderlyingTranslationLoaded","isPageEditMode","AdMainLoadDataGuard","containerClass","inputPlaceholder","resetSearchState","hasFailed","searchInput","isInputValid","AdPriipSearch","SearchState","Initial","startSearch","stateChanged","oldValue","flashMessage","minInputLength","searchState","NotFound","debounceSearch","loadProductAsync","navigateToDetailPage","log","Failed","detailPagePath","isFine","hideMessage","AdProductDetailsLoadGuard","AdProductDetails","isProductHeaderReduced","smallHeader","twoLinesVisible","headlineMode","ProductHeadlineLines","TwoLines","reduceProductHeader","CITIFIRST_TEXT","SYMBOL_CHANGE_UP","SYMBOL_CHANGE_DOWN","AdProductPageTitle","updateTitle","getNSINValue","productNsinValue","productModel","productNsin","getPriceData","changeAbsolute","changeIndicator","abs","hidePrices","productName","titleString","isProductHeaderVisible","isArchiveDetails","hideProductHeader","underlyingDefault","registerProductUnderlyingForPush","onUnderlyingChanged","productTypesCol","isTypeAvailable","doSearch","AdQuickSearch","isSearchPageToOpenInParent","isEmbeddedInExternPage","availableTypes","productUnderlyingTypes","typ","isAvailable","at","typeCode","subTypeCode","displayedTypes","odd","initialUnderlying","defaultUnderlyingIsin","updateProductTypesForUnderlying","trackQuickSearch","getUnderlyingTypesAsync","media","srcset","author","third","fourth","fifth","fifthChunkReversed","likeArticle","likes","CeBlogArticleOverviewArticleChunk","articles","chunkIndex","commonFormatsKeys","publishDateFormatFieldKey","article","CeBlogArticleOverviewHighlightArticle","highlightArticle","articleChunks","CeBlogArticleOverview","chunks","nonHighlightArticles","phoneLink","emailLink","imageSmall","CeContact","contactPhone","contactEmail","logoLinkHref","logoLinkTitle","require","brandName","CeFooter","documentSearchClass","globalSearchInputClass","changeGlobalSearchInputValidationState","onClickSearchButton","CeDocumentSearch","globalSearch","isGlobalSearchInputValid","CeHeaderBack","isExpanded","stopPropagation","toggleMenu","expandedClass","CeNavItemDropdown","CeSubNavItemInfo","CeSubNavItem","typeOfRequiredProducts","trackNavItem","isProductItem","countryLabel","selectedCountry","languageLabel","selectedLanguage","CeHeaderNav","countryDropdownLabel","languageDropdownLabel","headerSearchClass","globalSearchFlyoutInputClass","changeGlobalSearchFlyoutInputValidationState","bestMatchEnabled","watchlistClicked","watchlistCount","youtubeChannelUrlExist","youtubeChannelUrl","youtubeTooltip","CeHeaderSearch","isGlobalSearchFlyoutInputValid","fetchWatchlistAsync","$props","navInstanceClasses","enableGoBack","CeHeader","shouldStick","updateStickyness","round","scrollY","subscribed","confirmOptInPanel","confirmOptInSuccess","subscribeSuccess","handleSubmit","salutation","newsletterSalutations","salutationItem","errors","firstname","firstnameTouched","nameLabel","surname","surnameTouched","surnameLabel","email","emailTouched","emailLabel","showEmailConfirmationField","confirmemail","confirmemailTouched","confirmEmailLabel","topics","topicsTouched","topicDescriptions","description","randomId","displayTermsAndConditions","termsAndConditionsAccepted","termsAndConiditionsTouched","topicColors","redirectToHome","CeNewsletterSubscription","random","newsletterTopicDescriptions","homepageUrl","uri","URLSearchParams","guid","encodeURIComponent","confirmOptIn","errorByField","nameIsRequired","nameErrorMessage","surnameIsRequired","surnameErrorMessage","requiredEmailErrorMessage","match","invalidEmailErrorMessage","emailMatchErrorMessage","newsletterTopicErrorMessage","termsAndConditionsErrorMessage","getSubscriptionCodes","subscriptionCodes","topic","subscriptionCode","getSubscriptionTitles","hasErrors","trackSubscription","signup","subscribe","subscriptionRequest","firstName","lastName","NewsletterSubscription","subscription","NoContent","JoinGroup","group_id","tile","CeSubPageTiles","lastChunk","firstClasses","tiny","secondClasses","thirdClasses","fourthClasses","CeTileChunk","tileChunks","numberOfChunks","CeTile","tileList","currentProductType","updateProductType","AdBestMatchSearchPage","Warrant","bestMatchTableClear","displayContainer","showNewsletterSubscription","accordionAnchorSettings","showProspectusDisclaimer","showLegalDisclaimer","showAuthor","showBlogNavigation","AdBlogPageBase","AdEducationVideoPage","pricingSupplementPath","pricingSupplementLabel","isAmendmentNoticeFinal","amendmentNoticePath","downloadAmendmentNoticeClick","amendmentNoticeLabel","AdPriipPage","pricingSupplementLabelWithPlaceholder","isFinal","finalPricingSupplementLabel","preliminaryPricingSupplementLabel","uppercase","wide","sortings","sortingDirection","sortingDirectionChanged","isDistributionFeeVisible","resetFilter","AdProductSearchSorting","hiddenCols","searchResultHiddenValuesSetting","flatMapMergeColumns","sortingDropDownClearSelectionText","bindFilter","resetSortOrders","copySortOrderItem","setSortingArray","sortOrder","formItems","pushingItems","AdProductSearchTable","availableItemsContains","AdProductSearchFilterCategory","allItemsLabelText","translations","defaultEmpty","strToCompare","changeFilter","isPresent","AdProductSearchFilterDropdown","onProductTypeChange","hasSubTypeFilter","onProductSubTypeChange","hasCategoryFilter","categoryNames","categories","categoryName","hasCountryFilter","countryNames","countries","countryName","hasSectorFilter","sectorNames","sectors","sectorName","onIsMultiUnderlyingChange","isMultiUnderlying","onUnderlyingChange","multiUnderlyingMaxItems","AdProductSearchFilterContainer","isArray","loadTranslationsAsync","fatal","isFilterValid","productSearchDetailResult","emitEvent","allDropDownItems","hideDisabledItems","onFilterValueChangedWithResetSecondaryFilters","totalElementsCount","formatNumber","updateKey","updatePagination","AdProductSearchPage","getResetSecondaryFilter","loadProductsAsync","setSortOrders","isRequestWithoutUnderlyingWhenNoResult","underlyingIdToCheck","preSelectedUnderlyingId","firstRequestSwitch","shouldItemBeSerializedInQuery","updateProductSearchDetailedResultPushItems","minPushItem","maxPushItem","prefix","stringify","loadProductSearchDetailedResultAsync","sortOrdersFromUrl","getParamFromUrl","resolveSearchPageLink","productSearchTypeUrlSegments","emptyProductKey","ProductSearch","sortingSetting","ProductSubTypeAnyMap","productSubTypeAny","categoriesRadioView","fetchingCategories","selectedCategory","selectCategory","dropdownCategories","watchlistButtonUrl","getSortingOption","sortKey","tableSettings","fetchingUnderlyings","AdRealtimePage","mapTableColumns","fetchCategories","defaultCategoriesOption","actionsColumn","Center","tableColumns","resortUnderlyings","category","updateCustomSorting","oldIndex","newIndex","saveRealtimeCategoryAndUpdateSorting","onEnd","evt","updateUnderlyingsPushItems","fetchCategoryUnderlyings","allCategoriesOption","searchUnderlyingsAsync","realtimeCategory","legalDocumentsPageUrl","AdStructuredProductsPage","documents","getAllDocumentsForProduct","productTypeGroups","typeGroup","AdProductTypesCount","underlyingModel","headerProperties","prop","AdUnderlyingPageHeader","isWatchlistButtonEnabled","isPriceDataEnabled","AdUnderlyingDetailPage","editMode","loadFirstUnderlyingAsync","AdUnderlyingDetailPageHeader","realtimeButtonUrl","productsButtonUrl","availableProductTypes","productTypeFilter","availableProductUnderlyings","productUnderlyingFilter","sortProducts","sortProductKey","productTableSettings","filteredProducts","underlyingButtonUrl","sortUnderlyings","sortUnderlyingKey","underlyingTableSettings","selectIconSize","isRealtimeDisabled","AdWatchlistPage","loadWatchlistWithErrorHandling","dict","fetchDetailsAsync","underlyingTableColumns","productTableColumns","removeWatchedUnderlying","removeWatchedProduct","updateProductSorting","updateUnderlyingSorting","AdArticleOverviewTeaserContainer","AdBestMatchSearchTeaser","relativeButtonState","realtimeButtonState","allowNavigator","xAxisMinDate","utcTimestamp","secondsInDay","UTC","getTime","repeat","tooltipRelativeValueFormatFieldKey","yAxisRelativeLabelFormatFieldKey","maxHeightLg","maxHeightMd","maxHeight","avgDigitWidth","chartMarginLeft","chartMarginRight","isInSinglePeriodMode","singlePeriod","chartLegendFont","trySetInitialValue","formattedValues","formattedRow","formattedValue","headerValues","evaluateExportHeaders","tableFields","mapExportColumns","exportHeaders","use","BootstrapVue","BootstrapVueIcons","Clipboard","vSelect","VueCookies","VueScreen","isProduction","process","isEnabled","logLevel","stringifyArguments","showLogLevel","showMethodName","showConsoleColors","VueLogger","store","getters","directive","inserted","el","binding","inViewportAttributeName","wasOnceInViewportAttributeName","elementsToCheck","isElementInViewport","viewportHeight","innerHeight","clientRect","displayThreshold","inViewport","bottom","checkForAllElementsIfAppearanceShouldTrigger","firstAppearanceHandler","appearanceHandler","hasInViewportAttribute","getAttribute","hasWasOnceInViewportAttribute","setAttribute","removeAttribute","startCheckingAppearance","watcher","stopCheckingAppearance","unbind","formElement","bindingElement","validElement","MutationObserver","mutation","attributeName","observersMap","Map","mutationObserverConfigs","childList","subtree","elementId","mutationCallback","mutationList","childNodes","observers","classToCheck","currentSibling","previousElementSibling","contains","set","elementObservers","createSortable","Sortable","create","delay","delayOnTouchOnly","touchStartThreshold","bind","_sortable","dispatch","mutationObservers","requireComponent","fileName","componentConfig","componentName","upperFirst","camelCase","$mount","MutationTypes","getBestMatchMetaDataKey","holder","LightStreamerProductSubscriptionMutationTypes","CACHE_PRODUCTS_BEST_MATCHES","BEST_MATCH_META_DATA_VALUE","PUSH_UPDATE_PRODUCT","pushItem","allProductsInState","prevVal","statePropVal","isMutationPushPayloadHolder","getSubscriptionPushItems","tryUpdateProductValue","productPricePush","pushSubscriptions","cache","metaKeys","actions","commit","bestMatchSearchPushPayload","createPushPayload","bm","fieldStore","CACHE_FORMAT_DATA_FIELD","init","FieldFormats","anchors","ADD_ANCHOR_ID","anchorId","REMOVE_ANCHOR_ID","addAnchorId","removeAnchorId","CACHE_PRIIP","Priip","productPushValue","concatProducts","topLeverageTableSearchResult","getProductUnderlyingFilterKey","getProductTypeOptionsFilterKey","getProductTypeGroupOptionsFilterKey","QueryProductsWithPushPayload","isinOrNsins","responseData","Product","isNotNullOrUndefined","getSubscriptionPushItemsFunc","productIsin","PUSH_SUBSCRIPTION_PRODUCT_GETTER","CACHE_PRODUCT","productPushPayload","CACHE_PRODUCTS","CACHE_PRODUCTS_CONCAT","unionBy","CACHE_PRODUCTS_SEARCH","productSearchPushPayload","CACHE_TOP_LEVERAGE_TABLE_SEARCH_PRODUCTS","topLeveragePushPayload","PRODUCT_PUSH_VALUE","PRODUCT_UNDERLYING_TYPES","PRODUCT_TYPE_OPTIONS","PRODUCT_TYPE_GROUP_OPTIONS","productUnderlyingTypesKeys","productTypeOptionsKeys","productTypeGroupOptionsKeys","pushPayload","loadFirstProductAsync","leverageType","searchParam","allProducts","arr","array","expressionModelKey","aValue","bValue","localeCompare","sortByOrder","idKey","aSort","bSort","MAX_SAFE_INTEGER","realtimeUnderlyings","isPersistMutation","mutationType","realtimeNamespace","SORT_REALTIME_UNDERLYING","reducePersistState","realtimeUnderlyingSorting","positions","LightStreamerUnderlyingSubscriptionMutationTypes","CACHE_UNDERLYINGS","underlyingPushPayload","PUSH_UPDATE_UNDERLYING","tryUpdateUnderlyingValue","sortedUnderlyings","arrayMoveImmutable","sortPositions","Underlying","sortedData","realtimeCategories","CACHE_CATEGORIES","CACHE_COUNTRIES","CACHE_SECTORS","CACHE_REALTIMECATEGORIES","productUnderlying","underlyingPushValues","underlyingsByKey","underlyingTranslations","UnderlyingMutation","CACHE_UNDERLYING","CACHE_UNDERLYINGS_BY_KEY","CACHE_PRODUCT_UNDERLYING","CACHE_TEASER_UNDERLYINGS","teaserUnderlyingPushPayload","CACHE_PUSH_SUBSCRIPTION","CACHE_TOP_FLOP_TABLE_SEARCH_PRODUCTS","allUnderlyingsInState","tu","CACHE_OPTION","CACHE_OPTION_GROUP","CACHE_TRANSLATION_UNDERLYING","PUSH_SUBSCRIPTION_UNDERLYING_GETTER","isUnderlyingTranslationsLoaded","underlyingOption","underlyingOptionGroup","payload","isLoadOptionGroup","PersitAndShareMutationTypes","isPersistAndShareMutation","watchlistNamespace","isShareMutation","filterwatchedUnderlyings","activeIsins","wu","filterProducts","activeProductCodes","wp","mapWatchedProductModel","watched","current","addPrice","change","watchlistAddPrice","watchlistAddChange","mapWatchedProducts","ADD_UNDERLYING","addTimeStamp","REMOVE_UNDERLYING","UPDATE_UNDERLYING","ADD_PRODUCT","REMOVE_PRODUCT","UPDATE_PRODUCT","CACHE_WATCHLIST_PRODUCT","productsPushPayload","CACHE_WATCHLIST_UNDERLYING","totalCount","fetchActiveAsync","instrumentIds","productIds","underlyingIds","Watchlist","sortedwatchedUnderlyings","sortedProducts","sortedWatchedProducts","productPush","productPushValues","pushValueProperty","hasExpressionField","setExpressionValue","underlingPush","currentTimeStamp","pushTimeStamp","modulesCache","storeData","modules","getNamespace","path","shift","namespaced","requireModule","moduleDefinition","modulePath","module","pop","dispatchActionForAllModules","actionName","allModules","modulePrefix","flags","moduleName","dispatchGlobal","vuexLocalStorage","VuexPersistence","storage","localStorage","getCurrentWebsiteKey","reducer","reduceRealtimeState","watchlist","reduceWatchlistState","isPersistRealtimeMutation","isPersistWatchlistMutation","sharedMutation","createMutationsSharer","predicate","Vuex","strict","plugins","vuexLocalStoragePlugin","sharedMutationPlugin","PriceProvider","ExchangeBo","ExerciseStyleBo","SettlementTypeBo","Irs871","TopLeverageTableFilter","DigitalAssetDocumentType","RoutingParameters","Colors","EntityType","CookieType","ArchiveReason","TopFlop","headlineBlock","columnSettings","isNumber","payloadHolder","candidate","ProductTeaserSettings","underlyingCategory","cssClass","datePlaceholder","namePlaceholder","NAVBAR_HEIGHT","CULTURE_TO_LOCALE_MAP","de","enUS","nl","fr","pt","fi","sv","zhCN","enAU","enGB","it","es","version","consentSetting","parseSettings","getCurrentSettings","expire","setCookieToRoot","consentCookieKey","cookieWebSelection","removeRootCookie","cookie","contentLikeCookieKey","formatContentKey","canBeCreated","adBlockerDetectionKey","keyName","expireTimes","saved","Technical","Comfort","Marketing","ThirdPartyMedia","getCurrentCulture","millisecondsInMinute","getFullYear","getMonth","getDate","getTimezoneOffset","getCurrentLocale","culture","Document","requestProductDocuments","docs","requestFolderDocuments","relatedFolderIds","formatDownloadName","documentType","asOfDate","numberItems","formatting","CulturesWithCustomOrdinal","CustomOrdinalFormatting","Ordinal","namePattern","mapDownload","listCount","filterData","downloadLink","fileExtension","mapDownloads","typeDocuments","allTypes","childDocuments","groupDocuments","typeInfos","setGroupFilterData","documentGroup","setYearFilterData","requestTypes","groupedItems","collectLayeredDownloadItemRecursive","download","accumulator","downloadGroup","groupedDownload","fileDownload","linkItem","downloads","responseType","getContentFileName","contentDispositionHeader","filename","downloadFileFromApi","apiCall","defaultFilename","blob","Blob","blobUrl","URL","createObjectURL","dispatchEvent","MouseEvent","bubbles","cancelable","revokeObjectURL","removeChild","InternalServerError","postDataParams","downloadFileGet","lastSlash","lastIndexOf","startsWith","createOption","createHeader","createSplitter","trimLastSplitter","o","createGroup","formatTextFunc","BadRequest","timeout","paramsSerializer","arrayFormat","encode","lowerFirst","isObject","parseFloat","isFinite","isBoolean","parseObject","obj","parseValue","parseNumber","parseBoolean","parseArray","withScroll","extraHeight","$navbar","clientHeight","mergeColumns","mc","getExcludedColumnDefinition","columnSetting","desktopColumns","hiddenValuesColumns","mergedColumns","differenceBy","UrlSubRoutes","EpiServerApi","TheQApi","getRootUrl","getProtocol","protocol","getTheQApiCultureCodeUrl","cultureCode","getEpiserverPageUrl","urlWithRouteParameter","rp","route","parameter","queryParams","autoplay","enablejsapi","encodeName","toUnderscoreSymbols","shouldItemBeSerializiedInQuery","toAbsolutePath","test","additonalQueryFilterFunc","queryString","skipNulls","productDetailTypeUrlSegments","productUrlSegment","IsinOrNsin","underlyingDetailUrlSegments","Isin","urlWithParmeterPlaceholder","Width","Height","openInParent","searchFilter","redirectUrl","parent","searchQueryParams","names","tryEvaluateExpressionValue","dataModel","InstrumentFormat","SmallValueFormat","asNumber","trySelect","smallFormat","number","smallFormatThreshold","PushFormat","pushFormat","UnderlyingCategoryFormat","customFormats","customFormat","modelValue","createFormatterService","formats","selectFormat","formatCurrency","formatArr","currency","service","delimiters","thousands","decimal","abbreviations","thousand","million","billion","trillion","customOrdinal","ordinalRemoveNumber","defaultCulture","allLocales","locales","regexps","roundingFunction","afterMatch","output","numberToFormat","PriceFormatter","applicableFor","formatTemplate","NumberFormatter","DateFormatter","locale","BooleanFormatter","formateValue","StringFormatter","DefaultFormatter","createFormatService","defaultFormatter","formatters","isDataFieldSetNullValue","isShowEmptyPlaceholderIfZero","dataField","chooseFormat","enDE","deDE","currentLocale","nodes","gtag","webpackContext","req","webpackContextResolve","__webpack_require__","Error","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","deferred","O","chunkIds","priority","notFulfilled","fulfilled","j","getter","__esModule","defineProperty","enumerable","globalThis","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}