{% set onlyIcon = onlyIcon is defined ? onlyIcon : true %}
{% set buttonText = buttonText|default('shop.teaser.to product') %}
{% if product is instanceof('App\\Model\\Shop\\Ticket\\ShopTicketCatalog') and product.isBookable %}
{% set config = {
title: product.name,
ticketId: '' ~ product.id,
firstView: getCalendarFirstView(product),
hasServiceView: not isServiceViewHidden(product, carbon().today()),
isLoggedIn: app.getUser() is instanceof('App\\Model\\DataObject\\Customer'),
hasLegalDisclaimerView: product.showLegalDisclaimerStep(),
legalDisclaimerViewDescription: product.legalDisclaimerText(),
legalDisclaimerOptions: [
{
label: product.legalDisclaimerCheckboxText,
labelSubText: '',
id: 'legal-disclaimer'
},
],
} %}
<div {{ vue_component('SkiTicketConfig',
{
'title': config.title,
'ticketId': config.ticketId,
'firstView': config.firstView,
'hasServiceView': config.hasServiceView,
'hasLegalDisclaimerView': config.hasLegalDisclaimerView,
'legalDisclaimerOptions': config.legalDisclaimerOptions,
'legalDisclaimerViewDescription': config.legalDisclaimerViewDescription,
'isLoggedIn': config.isLoggedIn,
'buttonConfig': {
'text': buttonText|trans,
'onlyIcon': onlyIcon,
'class': buttonClass|default(''),
'trackingKey': trackingKeyCart|default,
'triggerTracking': triggerTracking | default(false),
},
'isAnnualPass': product.isAnnualCatalog
}) }}></div>
{% elseif product is instanceof('App\\Model\\Shop\\Event\\EventProduct') %}
{% set config = {
title: product.name,
activityId: '' ~ product.id,
firstView: product.displayDates ?: 'calendar',
isTimeList: not product.isPersonsTimeList(),
isPersonsTimeList: product.isPersonsTimeList()
} %}
<div {{ vue_component('ActivityTicketConfig',
{
'title': config.title,
'activityId': config.activityId,
'firstView': config.firstView,
'isTimeList': config.isTimeList,
'isPersonsTimeList': config.isPersonsTimeList,
'buttonConfig': {
'text': buttonText|trans,
'onlyIcon': onlyIcon,
'class': buttonClass|default('')
}
}) }}></div>
{% endif %}