{"version":3,"names":["contentAggregatorItemListCss","EonUiContentAggregatorItemListStyle0","contentAggregatorItemListExpandedCss","EonUiContentAggregatorItemList_expandedStyle0","contentAggregatorItemTileCss","EonUiContentAggregatorItemTileStyle0","ContentAggregatorItem","this","schemeConfig","CONTENT_AGGREGATOR_ITEM_SCHEME_CONFIG","schemeMap","CONTENT_AGGREGATOR_ITEM_SCHEME_MAP","CONTENT_AGGREGATOR_ITEM_LAYOUT_ALIGNMENT_LEFT","CONTENT_AGGREGATOR_ITEM_LARGE_HEADLINE","CONTENT_AGGREGATOR_ITEM_LAYOUT_TILE","componentWillLoad","applyScheme","imageAsBackground","convertHeadlineIntoLink","onWindowresize","handleHeadlineTag","hasTagPillGroup","getFirstNestedChild","hostElement","hasImage","componentDidLoad","setCssVariables","convertHeadlineIntoDownloadLink","image","setAttribute","backgroundImage","variant","CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST","itemHeadlineSize","headlineSize","CONTENT_AGGREGATOR_ITEM_HEADLINE_TILE_LARGE","CONTENT_AGGREGATOR_ITEM_HEADLINE_TILE_SMALL","CONTENT_AGGREGATOR_ITEM_HEADLINE_LIST_LARGE","CONTENT_AGGREGATOR_ITEM_HEADLINE_LIST_SMALL","ctaLink","headlineHref","getAttribute","linkTarget","anchorElement","hasAttribute","applySchemeDelegate","setCssVariablesDelegate","innerBackground","activeScheme","contentBackground","zebra","querySelectorAll","tagPillSchemeMapDefinition","createTagPillMapDefinition","tagPills","Array","from","forEach","tagPill","backgroundColor","CONTENT_AGGREGATOR_ITEM_ALTERNATIVE_TAG_PILL_SCHEME","setMode","isMobile","isTablet","isTabletOrLarger","isDesktopMedium","isDesktopOrLarger","CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED","dateEventType","DATE_TYPE_ONE","DATE_TYPE_THREE","DATE_TYPE_TWO","getTruncatedHeadline","getTruncatedBody","headlineText","length","headlineCharacterLimit","truncatedHeadline","shortenString","map","item","textContent","innerHTML","bodyLength","stripHtml","copyCharacterLimit","truncatedBody","handleDateEventComponent","h","date","timeZone","twelveHourFormat","hideTime","itemHeadlineHtmlTag","useTheRightHtmlTagForHeadline","headlineHtmlTag","handleHeadlineComponent","text","size","render","Host","key","href","class","pfx","shade","tabindex","target","scheme","showAbstract","alignLayout","name","dateInput","category","icon","rank","listButtonScheme","color","invisible","ref","el","tabIndex"],"sources":["src/components/content-aggregator-item/content-aggregator-item-list.scss?tag=eon-ui-content-aggregator-item&mode=list&encapsulation=shadow","src/components/content-aggregator-item/content-aggregator-item-list_expanded.scss?tag=eon-ui-content-aggregator-item&mode=list_expanded&encapsulation=shadow","src/components/content-aggregator-item/content-aggregator-item-tile.scss?tag=eon-ui-content-aggregator-item&mode=tile&encapsulation=shadow","src/components/content-aggregator-item/content-aggregator-item.tsx"],"sourcesContent":["@import \"./helpers/scss-helper\";\n\n/**\n * THEME JSON CONFIG CSS VARS\n * The following default component scss variables can be overwritten via theme configuration per brand.\n * If you need to add new one, please make sure to set a default value.\n * JSON Definition for Component with name \"Example\": testCssVar: \"20px\"\n * Resulting CSS var: $example-test-css-var: 20px;\n */\n\n$content-aggregator-desktop-large-radius: 0 !default;\n$content-aggregator-desktop-radius: 0 !default;\n$content-aggregator-tablet-radius: 0 !default;\n$content-aggregator-mobile-radius: 0 !default;\n\n:host {\n display: block;\n font-family: $font-family-base;\n text-align: left;\n}\n\n.#{$prefix}content-aggregator-item__list {\n text-decoration: none;\n outline-style: none;\n\n &:hover {\n outline-style: none;\n\n .#{$prefix}content-aggregator-item__list--wrapper {\n @if (variable-exists(content-aggregator-drop-shadow-on-hover)) {\n box-shadow: $content-aggregator-drop-shadow-on-hover;\n }\n }\n\n }\n\n &--wrapper {\n cursor: pointer;\n display: grid;\n font-family: $font-family-base;\n grid-template-columns: repeat(12, [col-start] 1fr);\n overflow: hidden;\n background-color: v(backgroundColor);\n border-radius: $content-aggregator-desktop-large-radius;\n\n @include for-size(desktop) {\n border-radius: $content-aggregator-desktop-radius;\n }\n\n @include for-size(tablet) {\n border-radius: $content-aggregator-tablet-radius;\n }\n\n @include for-size(phone) {\n border-radius: $content-aggregator-mobile-radius;\n }\n\n @include for-size(phone) {\n grid-template-columns: 100%;\n grid-template-areas: \"date\" \"content\" \"button\";\n position: relative;\n }\n }\n\n &--content {\n font-family: $font-family-base;\n grid-column: 2 col-start / -2;\n padding: 24px 28px 32px 48px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: v(contentColor);\n\n &.#{$prefix}size-h5 {\n padding: 27px 28px 27px 48px;\n\n @include for-size(desktop) {\n padding: 25px 32px;\n }\n @include for-size(tablet) {\n padding: 24px 24px 24px 32px;\n }\n\n .#{$prefix}content-aggregator-item__list--headline {\n margin-bottom: 4px;\n\n eon-ui-headline {\n color: v(contentColor);\n }\n }\n\n .#{$prefix}content-aggregator-item__list--body {\n eon-ui-text {\n color: v(contentColor);\n }\n }\n\n @include for-size(phone) {\n padding: 0px 16px 24px 16px;\n grid-area: 3;\n }\n }\n\n &.#{$prefix}size-copy {\n padding: 33px 28px 33px 48px;\n\n @include for-size(desktop) {\n padding: 24px 32px;\n }\n\n @include for-size(tablet) {\n padding: 24px 24px 24px 32px;\n }\n\n .#{$prefix}content-aggregator-item__list--headline {\n margin-bottom: 2px;\n\n eon-ui-headline {\n color: v(contentColor);\n }\n }\n\n @include for-size(phone) {\n padding: 0px 16px 24px 16px;\n grid-area: 3;\n }\n }\n }\n\n &--date {\n font-family: $font-family-base;\n grid-column: col-start / span 1;\n eon-ui-date-event {\n --dateColor: var(--contentColor);\n --borderLeft: 1px solid var(--leftBorderColor);\n }\n\n &.#{$prefix}hide-time {\n padding: 24px 0 24px 40px;\n @include for-size(phone) {\n padding: 12px 0 16px 16px;\n height: 36px;\n justify-content: center;\n }\n\n @include for-size(tablet) {\n min-width: 88px;\n }\n\n @include for-size(desktop-or-larger) {\n min-width: 90px;\n }\n }\n\n &.#{$prefix}show-time {\n padding: 24px 0 24px 32px;\n\n @include for-size(desktop) {\n padding: 24px 0 24px 32px;\n }\n\n @include for-size(tablet) {\n padding: 24px 0 24px 32px;\n }\n\n @include for-size(phone) {\n padding: 12px 0 16px 16px;\n height: 50px;\n justify-content: center;\n }\n\n @include for-size(tablet-or-larger) {\n min-width: 160px;\n }\n }\n\n &.#{$prefix}size-h5 {\n @include for-size(desktop-l-or-larger) {\n padding: 27px 0 27px 32px;\n }\n\n @include for-size(desktop) {\n padding: 25px 0 25px 32px;\n }\n }\n\n &.#{$prefix}size-copy {\n @include for-size(desktop-l-or-larger) {\n padding: 33px 0 33px 32px;\n }\n\n @include for-size(desktop) {\n padding: 24px 0 24px 32px;\n }\n }\n\n &.#{$prefix}copy {\n padding: 24px 32px;\n }\n\n &.#{$prefix}list-category {\n padding: 24px 0 24px 32px;\n\n @include for-size(phone) {\n padding: 20px 0 16px 16px;\n }\n\n @include for-size(tablet) {\n min-width: 88px;\n }\n\n @include for-size(desktop-or-larger) {\n min-width: 90px;\n }\n }\n\n &.#{$prefix}hour-format {\n @include for-size(tablet-or-larger) {\n min-width: 130px;\n }\n }\n\n @include for-size(phone) {\n display: flex;\n flex-direction: column;\n column-gap: 8px;\n position: absolute;\n }\n }\n &--category {\n color: v(contentColor);\n overflow-wrap: break-word;\n word-break: break-word;\n }\n\n &--button {\n font-family: $font-family-base;\n padding-right: 24px;\n grid-column: 12 col-start / -1;\n display: flex;\n justify-content: center;\n align-items: center;\n\n @include for-size(phone) {\n grid-area: 1;\n display: flex;\n flex-direction: row;\n column-gap: 8px;\n justify-content: flex-end;\n align-items: flex-end;\n\n &.#{$prefix}show-time {\n padding: 13px 13px 15px 0;\n }\n\n &.#{$prefix}hide-time {\n padding: 8px 8px 8px 0;\n }\n }\n }\n}\n\n::slotted(eon-ui-link) {\n --contentColor: var(--linkColor) !important;\n --contentHoverColor: var(--linkHoverColor) !important;\n --contentFocusColor: var(--linkHoverColor) !important;\n}\n\n::slotted(eon-ui-linkList) {\n --linklistColor: var(--linkColor);\n --linklistHoverColor: var(--linkHoverColor);\n}\n","@import \"./helpers/scss-helper\";\n\n/**\n * THEME JSON CONFIG CSS VARS\n * The following default component scss variables can be overwritten via theme configuration per brand.\n * If you need to add new one, please make sure to set a default value.\n * JSON Definition for Component with name \"Example\": testCssVar: \"20px\"\n * Resulting CSS var: $example-test-css-var: 20px;\n */\n\n$content-aggregator-desktop-large-radius: 0 !default;\n$content-aggregator-desktop-radius: 0 !default;\n$content-aggregator-tablet-radius: 0 !default;\n$content-aggregator-mobile-radius: 0 !default;\n\n:host {\n display: block;\n font-family: $font-family-base;\n text-align: left;\n &:nth-child(odd) {\n opacity: 0.5;\n }\n}\n\n.#{$prefix}content-aggregator-item__list_expanded {\n text-decoration: none;\n outline-style: none;\n\n &--layout-align-left {\n flex-direction: row;\n\n @include for-size(phone) {\n flex-direction: column;\n }\n }\n\n &--layout-align-right {\n flex-direction: row-reverse;\n\n @include for-size(phone) {\n flex-direction: column;\n }\n\n .#{$prefix}content-aggregator-item__list_expanded--wrapper-section {\n .#{$prefix}content-aggregator-item__list_expanded--date {\n padding-left: 0;\n\n @include for-size(tablet) {\n justify-content: flex-start;\n }\n }\n }\n }\n\n &--wrapper {\n cursor: pointer;\n display: flex;\n font-family: $font-family-base;\n background-color: v(backgroundColor);\n border-radius: $content-aggregator-desktop-large-radius;\n\n @include for-size(desktop) {\n border-radius: $content-aggregator-desktop-radius;\n }\n\n @include for-size(tablet) {\n border-radius: $content-aggregator-tablet-radius;\n }\n\n @include for-size(phone) {\n border-radius: $content-aggregator-mobile-radius;\n }\n\n @include borderRadius(\"expanded_list_view\", \"content\");\n @include boxShadow(\"expanded_list_view\", \"content\");\n\n .#{$prefix}content-aggregator-item__list_expanded--zebra & {\n background-color: v(backgroundColor);\n }\n\n .#{$prefix}content-aggregator-item__list_expanded--shade & {\n background-color: v(backgroundColorShade);\n }\n\n @include for-size(phone) {\n flex-direction: column;\n padding: 0 0 32px;\n }\n\n @include for-size(tablet-or-larger) {\n padding: 32px 16px;\n }\n\n @include for-size(desktop-l-or-larger) {\n padding: 48px 24px;\n }\n\n &:hover {\n outline-style: none;\n\n @if (variable-exists(content-aggregator-drop-shadow-on-hover)) {\n box-shadow: $content-aggregator-drop-shadow-on-hover;\n }\n }\n }\n\n &--wrapper-section {\n display: flex;\n flex-direction: column;\n width: 50%;\n justify-content: flex-start;\n\n @include for-size(phone) {\n width: auto;\n }\n\n @include for-size(tablet-or-larger) {\n padding: 0 16px;\n }\n\n @include for-size(desktop-l-or-larger) {\n padding: 0 24px;\n }\n\n .#{$prefix}content-aggregator-item__list_expanded--date {\n order: -1; // Moves date to the top\n display: flex;\n eon-ui-date-event {\n --dateColor: var(--contentColor);\n --borderLeft: 1px solid var(--leftBorderColor);\n }\n\n .#{$prefix}content-aggregator-item__list_expanded--zebra & {\n eon-ui-date-event {\n --dateColor: var(--contentColor) !important;\n }\n }\n\n @include for-size(phone) {\n order: 2; // Moves date to the bottom\n padding: 0 16px 16px;\n\n .#{$prefix}content-aggregator-item__list_expanded--layout-align-right & {\n padding: 0 16px 16px;\n }\n }\n\n @include for-size(tablet-or-larger) {\n justify-content: flex-start;\n padding: 0 0 16px;\n }\n }\n\n .#{$prefix}content-aggregator-item__list_expanded--no-image & {\n @include for-size(phone) {\n padding-top: 16px;\n }\n\n @include for-size(tablet-or-larger) {\n width: 33.33%;\n }\n }\n\n // This hides the date on left side when no text class is present\n // for desktop or larger view\n .#{$prefix}content-aggregator-item__list_expanded--no-abstract & {\n .#{$prefix}content-aggregator-item__list_expanded--date {\n display: none;\n }\n }\n }\n\n &--date-and-content-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n &--image {\n margin-bottom: 16px;\n\n @include for-size(tablet-or-larger) {\n margin-bottom: 24px;\n }\n\n @include for-size(desktop-l-or-larger) {\n margin-bottom: 32px;\n }\n @include borderRadius(\"expanded_list_view\", \"image\");\n @include boxShadow(\"expanded_list_view\", \"image\");\n }\n\n &--tag-pill-group {\n @include for-size(phone) {\n display: flex;\n margin: 0 -2px;\n padding: 0 16px 24px 16px;\n }\n\n @include for-size(tablet-or-larger) {\n padding: 0;\n }\n\n margin: -8px;\n }\n\n &--image-and-tag-pill-group-wrapper {\n display: flex;\n flex-direction: column;\n\n @include for-size(tablet) {\n margin: 24px;\n }\n }\n\n &--content {\n font-family: $font-family-base;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n color: v(contentColor);\n padding: 0 16px;\n width: 50%;\n\n .#{$prefix}content-aggregator-item__list_expanded--date {\n eon-ui-date-event {\n --dateColor: var(--contentColor);\n --borderLeft: 1px solid var(--leftBorderColor);\n }\n }\n\n @include for-size(phone) {\n width: auto;\n }\n\n @include for-size(tablet-or-larger) {\n position: relative;\n bottom: 4px;\n }\n\n @include for-size(desktop-l-or-larger) {\n padding: 0 24px;\n\n .#{$prefix}content-aggregator-item__list_expanded--date {\n display: flex;\n }\n }\n\n .#{$prefix}content-aggregator-item__list_expanded--no-image & {\n @include for-size(tablet-or-larger) {\n width: 66.66%;\n }\n }\n\n // This shows the date on right side when no text class is present\n // for desktop or larger view\n .#{$prefix}content-aggregator-item__list_expanded--no-abstract & {\n .#{$prefix}content-aggregator-item__list_expanded--date {\n display: flex;\n }\n }\n }\n\n &--headline {\n text-align: left;\n padding-bottom: 16px;\n\n .#{$prefix}content-aggregator-item__list_expanded--zebra & {\n eon-ui-headline {\n color: v(contentColor);\n }\n }\n\n & + .#{$prefix}content-aggregator-item__list-expanded--links {\n // targets the links\n padding-top: 8px;\n\n @include for-size(tablet-or-larger) {\n padding-top: 16px;\n }\n }\n }\n\n &--category {\n color: v(contentColor);\n overflow-wrap: break-word;\n word-break: break-word;\n\n .#{$prefix}content-aggregator-item__list_expanded--zebra & {\n color: v(contentColor);\n }\n }\n\n &--body {\n .#{$prefix}content-aggregator-item__list_expanded--zebra & {\n eon-ui-text {\n color: v(contentColor);\n }\n }\n\n & + .#{$prefix}content-aggregator-item__list-expanded--links {\n // targets the links\n padding-top: 24px;\n\n @include for-size(tablet-or-larger) {\n padding-top: 32px;\n }\n }\n }\n\n &--date {\n font-family: $font-family-base;\n\n @include for-size(phone) {\n padding-bottom: 16px;\n }\n\n @include for-size(tablet-or-larger) {\n padding-bottom: 24px;\n }\n @include for-size(desktop-l-or-larger) {\n padding-bottom: 32px;\n }\n\n &.#{$prefix}list-category {\n @include for-size(tablet-or-larger) {\n min-width: 88px;\n }\n\n @include for-size(desktop-l-or-larger) {\n min-width: 90px;\n }\n }\n\n &.#{$prefix}hour-format {\n @include for-size(tablet-or-larger) {\n min-width: 130px;\n }\n }\n }\n}\n\n::slotted(eon-ui-link) {\n --contentColor: var(--linkColor) !important;\n --contentHoverColor: var(--linkHoverColor) !important;\n --contentFocusColor: var(--linkHoverColor) !important;\n}\n\n::slotted(eon-ui-linkList) {\n --linklistColor: var(--linkColor);\n --linklistHoverColor: var(--linkHoverColor);\n}\n","@import \"./helpers/scss-helper\";\n\n:host {\n display: block;\n position: relative;\n font-family: $font-family-base;\n}\n\n:host([layout=\"carousel\"]) {\n text-align: left;\n}\n\n:host([variant=\"tile\"]) {\n .#{$prefix}content-aggregator-item__tile {\n @include borderRadius(\"tile_view\", \"content\");\n }\n}\n\n:host([align=\"right\"]) {\n text-align: right;\n .#{$prefix}content-aggregator-item__tile--date-category {\n &.#{$prefix}on-background-image {\n position: absolute;\n top: 48px;\n right: 48px;\n }\n }\n}\n\n:host([show-abstract=\"false\"]) {\n eon-ui-headline {\n margin-bottom: 32px;\n }\n}\n\n:host(:not[layout=\"carousel\"]:hover) {\n @if (variable-exists(content-aggregator-drop-shadow-on-hover)) {\n box-shadow: $content-aggregator-drop-shadow-on-hover;\n }\n}\n\neon-ui-background {\n display: flex;\n height: 100%;\n}\n\n.#{$prefix}content-aggregator-item__tile {\n display: flex;\n flex-direction: column;\n height: 100%;\n\n &--content-layer {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 48px 48px 44px;\n background-color: v(backgroundColor);\n word-wrap: break-word; // For EDGE 18\n word-break: break-word; // For Chrome, Safari, Firefox\n\n &.#{$prefix}alignment-left {\n align-items: flex-start;\n .#{$prefix}content-aggregator-item__tile--content {\n text-align: left;\n }\n }\n &.#{$prefix}alignment-center {\n align-items: center;\n .#{$prefix}content-aggregator-item__tile--content {\n text-align: center;\n }\n }\n &.#{$prefix}alignment-right {\n align-items: flex-end;\n .#{$prefix}content-aggregator-item__tile--content {\n text-align: right;\n }\n }\n\n .#{$prefix}content-aggregator-item__tile--headline-as-link {\n &.#{$prefix}align-left {\n align-self: flex-start;\n }\n\n &.#{$prefix}align-center {\n align-self: center;\n }\n\n &.#{$prefix}align-right {\n align-self: flex-end;\n }\n }\n }\n\n &--content {\n // text-align: left;\n padding-bottom: 30px;\n // for link alignment\n margin-bottom: 30px;\n\n @include for-size(tablet-or-larger) {\n padding-bottom: 32px;\n margin-bottom: 32px;\n }\n flex-grow: 1;\n font-size: 20px;\n font-weight: $font-weight-medium;\n color: v(contentColor);\n }\n\n &--date-category {\n display: flex;\n flex-direction: column;\n padding-bottom: 16px;\n eon-ui-date-event {\n --dateColor: var(--contentColor);\n --borderLeft: 1px solid var(--leftBorderColor);\n }\n\n .#{$prefix}content-aggregator-item__tile--category {\n font-size: 18px;\n font-weight: $font-weight-regular;\n color: v(contentColor);\n }\n\n &.#{$prefix}on-background-image {\n position: absolute;\n top: 48px;\n left: 48px;\n\n @include for-size(tablet) {\n left: 32px;\n }\n @include for-size(phone) {\n left: 24px;\n }\n eon-ui-date-event {\n --dateColor: var(--dateColorOnImage);\n --borderLeft: 1px solid var(--dateColorOnImage);\n }\n .#{$prefix}content-aggregator-item__tile--category {\n color: v(dateColorOnImage);\n }\n }\n }\n\n &--links {\n text-align: left;\n position: absolute;\n bottom: 44px;\n }\n\n &--headline-as-link {\n text-decoration: none;\n outline-style: none;\n\n eon-ui-headline {\n color: v(contentColor);\n }\n\n &:hover {\n eon-ui-headline {\n color: v(hoverColor);\n }\n }\n }\n}\n\neon-ui-headline {\n display: inline-block;\n margin-bottom: 32px;\n}\n\n::slotted([slot=\"content\"]) {\n font-size: 20px;\n font-weight: $font-weight-medium;\n color: v(contentColor);\n}\n\n::slotted(eon-ui-link) {\n --contentColor: var(--linkColor) !important;\n --contentHoverColor: var(--linkHoverColor) !important;\n --contentFocusColor: var(--linkHoverColor) !important;\n}\n\n::slotted(eon-ui-linkList) {\n --linklistColor: var(--linkColor);\n --linklistHoverColor: var(--linkHoverColor);\n}\n","import { Component, Element, h, Host, Listen, Prop, setMode, State, Watch } from \"@stencil/core\";\nimport { applySchemeDelegate, ColorableComponent, setCssVariablesDelegate } from \"../../common/colorable-component\";\nimport { ContentAggregatorItemLayoutAlignment } from \"../content-aggregator/constants/content-aggregator-types\";\nimport { CONTENT_AGGREGATOR_ITEM_LAYOUT_ALIGNMENT_LEFT } from \"../content-aggregator/constants/content-aggregator-constants\";\nimport {\n ContentAggregatorItemHeadlineSize,\n ContentAggregatorItemLayout,\n ContentAggregatorItemSchemeDefinition,\n ContentAggregatorItemSchemeName\n} from \"./constants/content-aggregator-item-types\";\nimport {\n CONTENT_AGGREGATOR_ITEM_LARGE_HEADLINE,\n CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST,\n CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED,\n CONTENT_AGGREGATOR_ITEM_LAYOUT_TILE,\n CONTENT_AGGREGATOR_ITEM_SCHEME_CONFIG,\n CONTENT_AGGREGATOR_ITEM_SCHEME_MAP\n} from \"./constants/content-aggregator-item-constants\";\nimport pfx from \"../../utils/style-class-prefix-helper\";\nimport { HeadlineSize, HeadlineTag } from \"../headline/constants/headline-types\";\nimport { DateTypes } from \"../date-event/constants/date-event-types\";\nimport { DATE_TYPE_ONE, DATE_TYPE_THREE, DATE_TYPE_TWO } from \"../date-event/constants/date-event-constants\";\nimport { getFirstNestedChild } from \"../../utils/dom-helper\";\nimport { isDesktopMedium, isDesktopOrLarger, isMobile, isTablet, isTabletOrLarger } from \"../../utils/screen-helper\";\nimport { shortenString, stripHtml } from \"../../utils/string-format\";\nimport { ButtonSchemeDefinition, ButtonTarget } from \"../button/constants/button-types\";\nimport { useTheRightHtmlTagForHeadline } from \"../../utils/headline-helper\";\nimport {\n CONTENT_AGGREGATOR_ITEM_ALTERNATIVE_TAG_PILL_SCHEME,\n CONTENT_AGGREGATOR_ITEM_HEADLINE_LIST_LARGE,\n CONTENT_AGGREGATOR_ITEM_HEADLINE_LIST_SMALL,\n CONTENT_AGGREGATOR_ITEM_HEADLINE_TILE_LARGE,\n CONTENT_AGGREGATOR_ITEM_HEADLINE_TILE_SMALL\n} from \"../../constants/global-constants\";\nimport { ButtonSchemeConfiguration, ContentAggregatorItemSchemeConfiguration } from \"../../constants/colors\";\nimport { createTagPillMapDefinition } from \"../../utils/scheme-helper\";\nimport { BackgroundColor } from \"../background/constants/background-types\";\n// import { InitLogging } from \"../../decorators/init-logging\";\n\n/**\n * @slot image - You can put an component in that slot.\n * @slot tag-pill-group - You can put an component in that slot.\n * @slot content - You can put any (reasonable) number of content in that slot viz: `

,

`.\n * @slot links - You should put only component in that slot. Since the link behaviour on click of headline depends on \"href\" given to the link component.\n */\n\n@Component({\n tag: \"eon-ui-content-aggregator-item\",\n styleUrls: {\n tile: \"content-aggregator-item-tile.scss\",\n list: \"content-aggregator-item-list.scss\",\n list_expanded: \"content-aggregator-item-list_expanded.scss\"\n },\n shadow: true\n})\nexport class ContentAggregatorItem\n implements ColorableComponent> {\n // @InitLogging() sentryTransaction;\n schemeConfig: ContentAggregatorItemSchemeConfiguration = CONTENT_AGGREGATOR_ITEM_SCHEME_CONFIG;\n schemeMap = CONTENT_AGGREGATOR_ITEM_SCHEME_MAP;\n\n /**\n * The components active scheme. If {@link scheme} is set, it will be set to the corresponding scheme.\n * If not set, the component will try to calculate it based on the nearest enclosing background information given by inner-background attribute or eon-ui-background component.\n */\n @State() activeScheme: ContentAggregatorItemSchemeDefinition;\n @State() validDate: Date;\n @State() noContentAvailable: boolean;\n @State() timeFormat: string;\n @State() teaserDate: number;\n @State() teaserMonth: string;\n @State() teaserYear: number;\n @State() backgroundImage: boolean = false;\n @State() itemHeadlineSize: HeadlineSize;\n @State() itemHeadlineHtmlTag: string;\n @State() headlineHref: string;\n @State() linkTarget: string;\n @State() ctaLink: HTMLEonUiLinkElement;\n @State() dateElement: HTMLEonUiDateEventElement;\n @State() textContent: string;\n @State() truncatedHeadline: string;\n @State() truncatedBody: string;\n @State() aggregatorDate: number;\n @State() aggregatorMonth: string;\n @State() aggregatorYear: number;\n @State() isMobile: boolean;\n @State() isTablet: boolean;\n @State() isTabletOrLarger: boolean;\n @State() isDesktopMedium: boolean;\n @State() hasTagPillGroup: HTMLEonUiImageElement;\n @State() hasImage: boolean;\n @State() isDesktopOrLarger: boolean;\n @State() dateEventType: DateTypes;\n\n @Element() hostElement: HTMLEonUiContentAggregatorItemElement;\n private anchorElement: HTMLAnchorElement;\n\n /**\n * The name of the color scheme of the component.\n * If not set, the component will try to calculate it based on the nearest enclosing background information given by inner-background attribute or eon-ui-background component.\n */\n @Prop({ reflect: true }) scheme: ContentAggregatorItemSchemeName;\n\n /**\n * Represents the internal color of the component.\n * It will be read by colorable-component.ts getColorOfNearestBackground() function to realize\n * the detection of backgrounds inside of components, hidden by shadow dom.\n * @disableControlInStorybook true\n */\n @Prop({ reflect: true, mutable: true }) innerBackground: string;\n\n /**\n * The text of the eon-ui-headline inside the teaser (see eon-ui-headline)\n */\n @Prop() headlineText: string;\n\n /**\n * Determines the layout of the list item's content when variant is set to `list_expanded`\n * @example default: left\n */\n @Prop() alignLayout: ContentAggregatorItemLayoutAlignment = CONTENT_AGGREGATOR_ITEM_LAYOUT_ALIGNMENT_LEFT;\n\n /**\n * Determines whether the list expanded items will be showed with alternating background.\n */\n @Prop() zebra: boolean;\n\n /**\n * Replaces background colour with darker alternative colour shade\n */\n @Prop() shade: boolean;\n\n /**\n * The size of the headline inside the teaser\n * @example: large | small\n */\n @Prop({ reflect: true }) headlineSize: ContentAggregatorItemHeadlineSize = CONTENT_AGGREGATOR_ITEM_LARGE_HEADLINE;\n\n /**\n * This property can have category as string, accordingly the value will be displayed on Teaser\n */\n @Prop({ mutable: true }) category: string;\n\n /**\n * This property hides or shows the date property\n */\n @Prop({ reflect: true, mutable: true }) dateInput: boolean = true;\n\n /**\n * Property will hide and show the content/abstract\n */\n @Prop({ reflect: true, mutable: true }) showAbstract: boolean = true;\n\n /**\n * Sets a layout for a Aggregator variant component\n * @disableControlInStorybook true\n * @example tile | list | list_expanded\n */\n @Prop({ reflect: true, mutable: true }) variant: ContentAggregatorItemLayout = CONTENT_AGGREGATOR_ITEM_LAYOUT_TILE;\n\n /**\n * This property can have a date, accordingly the value will be displayed on the Teaser\n */\n @Prop({ mutable: true }) date: string;\n\n /**\n * This property will hide and show the time format in date section\n */\n @Prop({ reflect: true, mutable: true }) hideTime: boolean = false;\n\n /**\n * timeZone property for uniform standard time, gives flexibility to authors to edit the timeZone\n * @example: CET/CEST\n */\n @Prop({ mutable: true }) timeZone: string;\n\n /**\n * twelveHourFormat depicts whether date should be of 12 hours format or 24 hours format\n */\n @Prop({ reflect: true, mutable: true }) twelveHourFormat: boolean = false;\n\n /**\n * this property is used for SEO-Optimisation.
\n * If this property is used and fill-out, this property is used for HTML-Tag for headline.\n */\n @Prop() headlineHtmlTag: HeadlineTag;\n\n /**\n * headlineCharacterLimit will limit the charaters of headline to the given value\n * @disableControlInStorybook true\n * @example default: 50\n */\n @Prop({ reflect: true }) headlineCharacterLimit: number = 50;\n\n /**\n * copyCharacterLimit will limit the charaters of copy text to the given value\n * @disableControlInStorybook true\n * @example default: 125\n */\n @Prop({ reflect: true }) copyCharacterLimit: number = 125;\n\n componentWillLoad() {\n this.applyScheme();\n this.imageAsBackground();\n this.convertHeadlineIntoLink();\n this.onWindowresize();\n this.handleHeadlineTag();\n this.hasTagPillGroup = getFirstNestedChild(this.hostElement, \"eon-ui-tag-pill-group\");\n this.hasImage = getFirstNestedChild(this.hostElement, \"eon-ui-image\");\n }\n\n componentDidLoad() {\n this.setCssVariables();\n this.convertHeadlineIntoDownloadLink();\n }\n\n @Watch(\"variant\")\n @Watch(\"headlineSize\")\n imageAsBackground() {\n const image: HTMLEonUiImageElement = getFirstNestedChild(this.hostElement, \"eon-ui-image\");\n if (image) {\n image.setAttribute(\"aspect-ratio\", \"ratio-2x1\");\n this.backgroundImage = true;\n } else {\n this.backgroundImage = false;\n }\n\n // Given that variant is not a set to `list` the headline type will set to `h3`\n // when the headline size is set to `large` and `h4` for `small`.\n // If it is set to list the item headline size will be set to `h5` for `large\n // and `copy` for `small`.\n if (this.variant !== CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST) {\n this.itemHeadlineSize =\n this.headlineSize === CONTENT_AGGREGATOR_ITEM_LARGE_HEADLINE\n ? CONTENT_AGGREGATOR_ITEM_HEADLINE_TILE_LARGE\n : CONTENT_AGGREGATOR_ITEM_HEADLINE_TILE_SMALL;\n } else {\n this.itemHeadlineSize =\n this.headlineSize === CONTENT_AGGREGATOR_ITEM_LARGE_HEADLINE\n ? CONTENT_AGGREGATOR_ITEM_HEADLINE_LIST_LARGE\n : CONTENT_AGGREGATOR_ITEM_HEADLINE_LIST_SMALL;\n }\n }\n\n convertHeadlineIntoLink() {\n this.ctaLink = getFirstNestedChild(this.hostElement, \"eon-ui-link\");\n // Below the anchor tag wrapped around headline gets all the properties that slotted eon-ui-link has.\n if (this.ctaLink) {\n this.headlineHref = this.ctaLink.getAttribute(\"href\");\n this.linkTarget = this.ctaLink.getAttribute(\"target\");\n }\n }\n\n convertHeadlineIntoDownloadLink() {\n if (this.ctaLink && this.anchorElement && this.ctaLink.hasAttribute(\"download\")) {\n this.anchorElement.setAttribute(\"download\", this.ctaLink.getAttribute(\"download\"));\n }\n }\n\n @Watch(\"scheme\")\n applyScheme() {\n applySchemeDelegate(this);\n }\n\n @Watch(\"activeScheme\")\n setCssVariables(): void {\n setCssVariablesDelegate(this);\n this.innerBackground = this.activeScheme.contentBackground;\n\n if (this.zebra && this.hostElement.querySelectorAll(\"EON-UI-TAG-PILL\")) {\n const tagPillSchemeMapDefinition = createTagPillMapDefinition();\n const tagPills = Array.from(this.hostElement.querySelectorAll(\"EON-UI-TAG-PILL\"));\n tagPills.forEach((tagPill) => {\n tagPill.setAttribute(\n \"scheme\",\n this.activeScheme.backgroundColor\n ? tagPillSchemeMapDefinition[this.activeScheme.backgroundColor as BackgroundColor]\n : CONTENT_AGGREGATOR_ITEM_ALTERNATIVE_TAG_PILL_SCHEME\n );\n });\n }\n }\n\n @Watch(\"variant\")\n setMode() {\n setMode(() => {\n return this.variant;\n });\n }\n\n @Listen(\"resize\", { target: \"window\" })\n onWindowresize() {\n this.isMobile = isMobile();\n this.isTablet = isTablet();\n this.isTabletOrLarger = isTabletOrLarger();\n this.isDesktopMedium = isDesktopMedium();\n this.isDesktopOrLarger = isDesktopOrLarger();\n\n // When the variant is set to `list_expanded` the date type is `three` on mobile, `one` on tablet or larger\n // when an image is present but otherwise `two`.\n if (this.variant === CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED) {\n this.dateEventType =\n this.isTabletOrLarger && this.hasImage ? DATE_TYPE_ONE : this.isMobile ? DATE_TYPE_THREE : DATE_TYPE_TWO;\n } else {\n this.dateEventType =\n this.isDesktopOrLarger || this.isTablet ? DATE_TYPE_TWO : this.isMobile ? DATE_TYPE_THREE : DATE_TYPE_TWO;\n }\n\n this.getTruncatedHeadline();\n this.getTruncatedBody();\n }\n\n @Watch(\"headlineCharacterLimit\")\n @Watch(\"headlineText\")\n private getTruncatedHeadline(): void {\n if (\n this.headlineText &&\n this.headlineText.length > this.headlineCharacterLimit &&\n this.variant !== CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED\n ) {\n this.truncatedHeadline = shortenString(this.headlineText, this.headlineCharacterLimit, \"...\");\n } else {\n this.truncatedHeadline = this.headlineText;\n }\n }\n\n @Watch(\"copyCharacterLimit\")\n private getTruncatedBody() {\n Array.from(this.hostElement.querySelectorAll('[slot=\"content\"]')).map((item) => {\n this.textContent = item.innerHTML;\n });\n const bodyLength = this.textContent && stripHtml(this.textContent).length;\n if (bodyLength > this.copyCharacterLimit) {\n this.truncatedBody = shortenString(this.textContent, this.copyCharacterLimit, \"...\");\n } else {\n this.truncatedBody = this.textContent;\n }\n Array.from(this.hostElement.querySelectorAll('[slot=\"content\"]')).map((item) => {\n item.innerHTML = this.truncatedBody;\n });\n }\n\n handleDateEventComponent() {\n return (\n \n );\n }\n\n @Watch(\"headlineHtmlTag\")\n handleHeadlineTag() {\n this.itemHeadlineHtmlTag = useTheRightHtmlTagForHeadline(\n this.headlineHtmlTag,\n this.itemHeadlineSize === \"copy\" ? \"span\" : this.itemHeadlineSize\n );\n }\n\n handleHeadlineComponent() {\n return (\n \n );\n }\n\n render() {\n return (\n \n {this.variant !== CONTENT_AGGREGATOR_ITEM_LAYOUT_TILE ? (\n \n \n {this.variant === CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED && (\n
\n {this.hasImage && (\n
\n \n
\n )}\n\n {this.hasTagPillGroup && (\n
\n \n
\n )}\n
\n )}\n\n {this.variant === CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST && (\n \n {this.dateInput && this.date ? (\n this.handleDateEventComponent()\n ) : (\n
{this.category}
\n )}\n
\n )}\n\n
\n {this.variant === CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED && (\n \n {this.dateInput && this.date ? (\n this.handleDateEventComponent()\n ) : (\n
{this.category}
\n )}\n
\n )}\n\n
\n {this.handleHeadlineComponent()}\n
\n {this.showAbstract && (\n
\n \n {this.truncatedBody}\n \n
\n )}\n\n {this.variant === CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST_EXPANDED && (\n
\n \n
\n )}\n \n\n {this.variant === CONTENT_AGGREGATOR_ITEM_LAYOUT_LIST && (\n
\n \n }\n >\n
\n )}\n \n \n ) : (\n \n
\n {this.backgroundImage && (\n
\n \n
\n )}\n \n \n {this.dateInput && this.date ? (\n this.handleDateEventComponent()\n ) : (\n
{this.category}
\n )}\n
\n {this.headlineText && (\n (this.anchorElement = el)}\n href={this.headlineHref}\n target={this.linkTarget}\n class={pfx(`content-aggregator-item__tile--headline-as-link`)}\n tabIndex={0}\n >\n {this.handleHeadlineComponent()}\n \n )}\n {this.showAbstract && (\n \n \n \n )}\n
\n \n
\n \n \n
\n )}\n \n );\n }\n}\n"],"mappings":"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"}