hr-design-system-handlebars 1.124.10 → 1.125.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/assets/index.css +6 -3
- package/dist/assets/js/alpine.js +1 -0
- package/dist/assets/js/components/appBanner/appBanner.alpine.js +24 -3
- package/dist/assets/js/components/appBanner/nativeAppBanner.alpine.js +7 -1
- package/dist/assets/js/components/external-service/dataWrapperContentRefresher.subfeature.js +73 -65
- package/dist/assets/js/components/external-service/dataWrapperNoResponsiveIframe.subfeature.js +50 -72
- package/dist/assets/js/components/external-service/externalServiceDs.feature.js +119 -149
- package/dist/views/components/appBanner/appBanner.hbs +1 -1
- package/dist/views/components/appBanner/nativeAppBanner.hbs +1 -1
- package/dist/views/components/external-service/external_service_with_datapolicy_check.hbs +1 -1
- package/dist/views/components/page/index/page.hbs +1 -0
- package/dist/views/components/top_button/top_button.hbs +1 -1
- package/dist/views_static/components/appBanner/appBanner.hbs +1 -1
- package/dist/views_static/components/appBanner/nativeAppBanner.hbs +1 -1
- package/dist/views_static/components/external-service/external_service_with_datapolicy_check.hbs +1 -1
- package/dist/views_static/components/page/index/page.hbs +1 -0
- package/dist/views_static/components/top_button/top_button.hbs +1 -1
- package/package.json +1 -1
- package/src/assets/js/alpine.js +1 -0
- package/src/stories/views/components/appBanner/appBanner.alpine.js +24 -3
- package/src/stories/views/components/appBanner/appBanner.hbs +1 -1
- package/src/stories/views/components/appBanner/nativeAppBanner.alpine.js +7 -1
- package/src/stories/views/components/appBanner/nativeAppBanner.hbs +1 -1
- package/src/stories/views/components/external-service/dataWrapperContentRefresher.subfeature.js +73 -65
- package/src/stories/views/components/external-service/dataWrapperNoResponsiveIframe.subfeature.js +50 -72
- package/src/stories/views/components/external-service/externalServiceDs.feature.js +119 -149
- package/src/stories/views/components/external-service/external_service_with_datapolicy_check.hbs +1 -1
- package/src/stories/views/components/page/index/page.hbs +1 -0
- package/src/stories/views/components/top_button/top_button.hbs +1 -1
|
@@ -29,10 +29,7 @@ const ExternalService = function (context) {
|
|
|
29
29
|
let embedCode = options.embedCode,
|
|
30
30
|
iframe,
|
|
31
31
|
settingsCookie = new SettingsCookie(),
|
|
32
|
-
noResponsiveIframe,
|
|
33
|
-
contentRefresher,
|
|
34
32
|
gemeindewahlergebnis,
|
|
35
|
-
uniqueId,
|
|
36
33
|
isExternalServiceLoaded = false,
|
|
37
34
|
tiktokOnPage = []
|
|
38
35
|
|
|
@@ -74,61 +71,34 @@ const ExternalService = function (context) {
|
|
|
74
71
|
}
|
|
75
72
|
|
|
76
73
|
const insertExternalService = function () {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
createWahlEmbed()
|
|
106
|
-
break
|
|
107
|
-
case 'wahlkreiskarte':
|
|
108
|
-
createWahlEmbed()
|
|
109
|
-
break
|
|
110
|
-
case 'wahlkreiskarte_v2':
|
|
111
|
-
createWahlEmbed()
|
|
112
|
-
break
|
|
113
|
-
case 'wahlomat-euwa':
|
|
114
|
-
createWahlOMatEuwaEmbed()
|
|
115
|
-
break
|
|
116
|
-
case 'wahlomat-butawa':
|
|
117
|
-
createWahlOMatButawaEmbed()
|
|
118
|
-
break
|
|
119
|
-
case 'wahl-gemeinde-ergebnis':
|
|
120
|
-
createWahlGemeindeErgebnisEmbed()
|
|
121
|
-
break
|
|
122
|
-
case 'wer-waehlte-wen':
|
|
123
|
-
werWaehlteWenEmbed()
|
|
124
|
-
break
|
|
125
|
-
default:
|
|
126
|
-
console.error('No JS Config for external service ' + id)
|
|
127
|
-
break
|
|
128
|
-
}
|
|
129
|
-
break
|
|
130
|
-
default:
|
|
131
|
-
loadIframe() //für alle Dienste die nicht der DSGVO Datapolicy unterliegen
|
|
74
|
+
if (embedType !== 'js') {
|
|
75
|
+
loadIframe() // Für alle Dienste, die nicht der DSGVO Datapolicy unterliegen
|
|
76
|
+
return
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const externalServiceMap = {
|
|
80
|
+
'23degrees': createTwentyThreeDegreesEmbed,
|
|
81
|
+
'facebook-post': createFacebookEmbed,
|
|
82
|
+
'instagram': createInstagramEmbed,
|
|
83
|
+
'tiktok': createTikTokEmbed,
|
|
84
|
+
'twitter': createTwitterEmbed,
|
|
85
|
+
'twitter-post': createTwitterPostEmbed,
|
|
86
|
+
'datawrapper_cdn': createDataWrapperEmbed,
|
|
87
|
+
'wahlmonitor': createWahlEmbed,
|
|
88
|
+
'wahlmonitor_v2': createWahlEmbed,
|
|
89
|
+
'wahlkreiskarte': createWahlEmbed,
|
|
90
|
+
'wahlkreiskarte_v2': createWahlEmbed,
|
|
91
|
+
'wahlomat-euwa': createWahlOMatEuwaEmbed,
|
|
92
|
+
'wahlomat-butawa': createWahlOMatButawaEmbed,
|
|
93
|
+
'wahl-gemeinde-ergebnis': createWahlGemeindeErgebnisEmbed,
|
|
94
|
+
'wer-waehlte-wen': werWaehlteWenEmbed,
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const service = externalServiceMap[id]
|
|
98
|
+
if (service) {
|
|
99
|
+
service()
|
|
100
|
+
} else {
|
|
101
|
+
console.error(`No JS Config for external service ${id}`)
|
|
132
102
|
}
|
|
133
103
|
}
|
|
134
104
|
|
|
@@ -206,14 +176,6 @@ const ExternalService = function (context) {
|
|
|
206
176
|
})
|
|
207
177
|
}
|
|
208
178
|
|
|
209
|
-
const createUniqueID = function () {
|
|
210
|
-
console.log('Erzeuge einzigartige ID')
|
|
211
|
-
uniqueId = Math.random()
|
|
212
|
-
.toString(36)
|
|
213
|
-
.replace(/[^a-z]+/g, '')
|
|
214
|
-
.substring(2, 10)
|
|
215
|
-
}
|
|
216
|
-
|
|
217
179
|
const getAspectRatioClass = function () {
|
|
218
180
|
switch (iFrameConfig.aspectRatio) {
|
|
219
181
|
case '16x9':
|
|
@@ -237,96 +199,104 @@ const ExternalService = function (context) {
|
|
|
237
199
|
|
|
238
200
|
const createDataWrapperEmbed = function () {
|
|
239
201
|
removeDatapolicyBox()
|
|
240
|
-
createUniqueID()
|
|
241
|
-
|
|
242
|
-
|
|
202
|
+
const uniqueId = createUniqueID()
|
|
203
|
+
const {
|
|
204
|
+
isNoResponsiveIframe,
|
|
205
|
+
isWebcomponent,
|
|
206
|
+
refreshContent,
|
|
207
|
+
aspectRatio,
|
|
208
|
+
fixedHeight,
|
|
209
|
+
refreshIntervall,
|
|
210
|
+
} = iFrameConfig
|
|
211
|
+
|
|
212
|
+
const addContentRefresher = (isWebcomponent) => {
|
|
213
|
+
new DataWrapperContentRefresher({
|
|
214
|
+
rootElement,
|
|
215
|
+
id: uniqueId,
|
|
216
|
+
refreshIntervall,
|
|
217
|
+
isWebcomponent,
|
|
218
|
+
}).createRefresher()
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (isNoResponsiveIframe == 'true') {
|
|
243
222
|
//Klassisches Iframe mit AR-Wrapper oder fester Höhe
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
uniqueId,
|
|
249
|
-
embedCode,
|
|
250
|
-
lazyLoad
|
|
251
|
-
)
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
console.log('contentRefresher anfügen')
|
|
256
|
-
contentRefresher = new DataWrapperContentRefresher(
|
|
257
|
-
context,
|
|
258
|
-
uniqueId,
|
|
259
|
-
iFrameConfig.refreshIntervall,
|
|
260
|
-
false
|
|
261
|
-
)
|
|
262
|
-
contentRefresher.createRefresher()
|
|
223
|
+
new DataWrapperNoResponsiveIframe({
|
|
224
|
+
rootElement: rootElement,
|
|
225
|
+
aspectRatio: aspectRatio,
|
|
226
|
+
fixedHeight: fixedHeight,
|
|
227
|
+
id: uniqueId,
|
|
228
|
+
embedCode: embedCode,
|
|
229
|
+
lazyLoad: lazyLoad,
|
|
230
|
+
}).createNoResponsiveIframe()
|
|
231
|
+
|
|
232
|
+
if (refreshContent == 'true') {
|
|
233
|
+
addContentRefresher(false)
|
|
263
234
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
// Webcomponent
|
|
267
|
-
const divTag = document.createElement('div')
|
|
268
|
-
divTag.id = 'datawrapper-chart-' + uniqueId
|
|
269
|
-
rootElement.insertBefore(divTag, null)
|
|
270
|
-
const scriptTag = document.createElement('script')
|
|
271
|
-
scriptTag.setAttribute('id', 'datawrapper-component-js')
|
|
272
|
-
scriptTag.setAttribute('type', 'text/javascript')
|
|
273
|
-
scriptTag.setAttribute('defer', 'defer')
|
|
274
|
-
scriptTag.setAttribute('src', embedCode + 'embed.js?v=1')
|
|
275
|
-
scriptTag.setAttribute('charset', 'utf-8')
|
|
276
|
-
const noScriptTag = document.createElement('noscript')
|
|
277
|
-
const imageTag = document.createElement('img')
|
|
278
|
-
imageTag.src = embedCode + 'full.png'
|
|
279
|
-
imageTag.alt = ''
|
|
280
|
-
noScriptTag.appendChild(imageTag)
|
|
281
|
-
divTag.appendChild(scriptTag)
|
|
282
|
-
divTag.appendChild(noScriptTag)
|
|
283
|
-
|
|
284
|
-
if (iFrameConfig.refreshContent == 'true') {
|
|
285
|
-
console.log('contentRefresher anfügen')
|
|
286
|
-
contentRefresher = new DataWrapperContentRefresher(
|
|
287
|
-
context,
|
|
288
|
-
uniqueId,
|
|
289
|
-
iFrameConfig.refreshIntervall,
|
|
290
|
-
true
|
|
291
|
-
)
|
|
292
|
-
contentRefresher.createRefresher()
|
|
293
|
-
}
|
|
294
|
-
} else {
|
|
295
|
-
//Responsives Iframe
|
|
296
|
-
var iframe = document.createElement('iframe')
|
|
297
|
-
//Auflösen nach Tailwind-Klassen //dataWrapper-embed
|
|
298
|
-
iframe.className = 'w-0 !min-w-full border-0'
|
|
299
|
-
iframe.setAttribute('webkitallowfullscreen', '')
|
|
300
|
-
iframe.setAttribute('mozallowfullscreen', '')
|
|
301
|
-
iframe.setAttribute('allowfullscreen', '')
|
|
302
|
-
iframe.setAttribute('scrolling', 'no')
|
|
303
|
-
iframe.setAttribute('frameborder', '0')
|
|
304
|
-
iframe.src = embedCode
|
|
305
|
-
iframe.id = 'datawrapper-chart-' + uniqueId
|
|
306
|
-
if (lazyLoad) {
|
|
307
|
-
iframe.loading = 'lazy'
|
|
308
|
-
}
|
|
309
|
-
rootElement.insertBefore(iframe, null)
|
|
235
|
+
return
|
|
236
|
+
}
|
|
310
237
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
238
|
+
if (isWebcomponent == 'true') {
|
|
239
|
+
// Webcomponent
|
|
240
|
+
const divTag = document.createElement('div')
|
|
241
|
+
divTag.id = `datawrapper-chart-${uniqueId}`
|
|
242
|
+
rootElement.appendChild(divTag)
|
|
243
|
+
|
|
244
|
+
const scriptTag = document.createElement('script')
|
|
245
|
+
Object.assign(scriptTag, {
|
|
246
|
+
id: 'datawrapper-component-js',
|
|
247
|
+
type: 'text/javascript',
|
|
248
|
+
defer: true,
|
|
249
|
+
src: `${embedCode}embed.js?v=1`,
|
|
250
|
+
charset: 'utf-8',
|
|
251
|
+
})
|
|
252
|
+
|
|
253
|
+
const noScriptTag = document.createElement('noscript')
|
|
254
|
+
const imageTag = document.createElement('img')
|
|
255
|
+
imageTag.src = `${embedCode}full.png`
|
|
256
|
+
imageTag.alt = ''
|
|
257
|
+
noScriptTag.appendChild(imageTag)
|
|
258
|
+
|
|
259
|
+
divTag.append(scriptTag, noScriptTag)
|
|
260
|
+
|
|
261
|
+
if (refreshContent == 'true') {
|
|
262
|
+
addContentRefresher(true)
|
|
326
263
|
}
|
|
264
|
+
return
|
|
265
|
+
}
|
|
266
|
+
//Responsives Iframe
|
|
267
|
+
const iframe = document.createElement('iframe')
|
|
268
|
+
//Auflösen nach Tailwind-Klassen //dataWrapper-embed
|
|
269
|
+
iframe.className = 'w-0 !min-w-full border-0'
|
|
270
|
+
iframe.setAttribute('webkitallowfullscreen', '')
|
|
271
|
+
iframe.setAttribute('mozallowfullscreen', '')
|
|
272
|
+
iframe.setAttribute('allowfullscreen', '')
|
|
273
|
+
iframe.setAttribute('scrolling', 'no')
|
|
274
|
+
iframe.setAttribute('frameborder', '0')
|
|
275
|
+
iframe.src = embedCode
|
|
276
|
+
iframe.id = `datawrapper-chart-${uniqueId}`
|
|
277
|
+
if (lazyLoad) {
|
|
278
|
+
iframe.loading = 'lazy'
|
|
279
|
+
}
|
|
280
|
+
rootElement.appendChild(iframe)
|
|
281
|
+
|
|
282
|
+
loadScript(
|
|
283
|
+
'datawrapper-js',
|
|
284
|
+
'https://static.hr.de/hessenschau/datawrapper/responsiveIframe.js',
|
|
285
|
+
true
|
|
286
|
+
)
|
|
287
|
+
if (refreshContent == 'true') {
|
|
288
|
+
addContentRefresher(false)
|
|
327
289
|
}
|
|
328
290
|
}
|
|
329
291
|
|
|
292
|
+
const createUniqueID = function () {
|
|
293
|
+
console.log('Erzeuge einzigartige ID')
|
|
294
|
+
return Math.random()
|
|
295
|
+
.toString(36)
|
|
296
|
+
.replace(/[^a-z]+/g, '')
|
|
297
|
+
.substring(2, 10)
|
|
298
|
+
}
|
|
299
|
+
|
|
330
300
|
const createTwentyThreeDegreesEmbed = function () {
|
|
331
301
|
removeDatapolicyBox()
|
|
332
302
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div
|
|
2
2
|
x-data="appBanner()" x-cloak x-show="showBanner" ax-load x-ignore
|
|
3
|
-
id="marketing-banner" tabindex="-1" class="fixed bottom-0
|
|
3
|
+
id="marketing-banner" tabindex="-1" class="fixed bottom-0 flex flex-row justify-end w-full gap-4 p-4 -translate-x-1/2 z-300 flex-nowrap bg-blue-aqua lg:max-w-7xl left-1/2">
|
|
4
4
|
<div class="flex flex-row items-center gap-4 grow">
|
|
5
5
|
<div class="flex items-center justify-center rounded-lg w-11 h-11 bg-blue-congress-hex shrink-0">
|
|
6
6
|
<img width="24" height="24" src="{{resourceUrl "assets/base/icons/logo/brandlogo--mobile.min.svg" _brand=(defaultIfEmpty this.brand "hessenschau")}}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div
|
|
2
2
|
x-data="nativeAppBanner()" x-cloak x-show="showBanner" ax-load x-ignore
|
|
3
|
-
id="marketing-banner" tabindex="-1" class="fixed bottom-0
|
|
3
|
+
id="marketing-banner" tabindex="-1" class="fixed bottom-0 flex flex-row justify-end w-full gap-4 p-4 -translate-x-1/2 z-300 flex-nowrap bg-blue-aqua lg:max-w-7xl left-1/2">
|
|
4
4
|
<div class="flex flex-row items-center gap-4 grow">
|
|
5
5
|
<div class="flex items-center justify-center rounded-lg w-11 h-11 bg-blue-congress-hex shrink-0">
|
|
6
6
|
<img width="24" height="24" src="{{resourceUrl "assets/base/icons/logo/brandlogo--mobile.min.svg" _brand=(defaultIfEmpty this.brand "hessenschau")}}"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div class="c-externalService c-externalService__{{this.externalServiceConfig.externalServiceId}}{{#unless
|
|
4
4
|
this.fixedHeight }} -noFixedHeight{{/unless}} js-load"
|
|
5
5
|
data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType":"{{this.externalServiceConfig.externalServiceEmbedType}}","lazyLoad":{{defaultIfEmpty _lazyLoad false}},"dataPolicyCheck": true, "whiteList":{{this.externalServiceConfig.isWhitelisted}},"iFrameConfig": { {{~#if this.fixedHeight~}}
|
|
6
|
-
"fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"
|
|
6
|
+
"fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"isNoResponsiveIframe":"{{{this.setResponsiveIframe}}}","isWebcomponent":"{{{this.setWebcomponent}}}"{{~#if this.setTimedReloadIframe}},"refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"{{~/if}} }}'>
|
|
7
7
|
{{~> components/external-service/components/external_service_data_policy ~}}
|
|
8
8
|
</div>
|
|
9
9
|
{{~> components/external-service/components/external_service_caption ~}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div class="h-8" x-data="{ isVisible: false }">
|
|
2
2
|
<div class="grid grid-page z-100" :class="{ 'fixed bottom-feature-box-height left-0 w-full': !$store.footerIsVisible }">
|
|
3
3
|
<div class="flex justify-between h-0 col-full sm:col-main"
|
|
4
|
-
:class="{ 'bg-white h-8': $store.footerIsVisible }"
|
|
4
|
+
:class="{ 'bg-white h-8': $store.footerIsVisible, 'h-22': $store.appBannerIsVisible && !$store.footerIsVisible}"
|
|
5
5
|
x-show="!$store.sharingIsVisible && isVisible"
|
|
6
6
|
x-transition:enter="transition ease-[cubic-bezier(0.68,-0.3,0.32,1)] duration-500 transform order-first"
|
|
7
7
|
x-transition:enter-start="opacity-0 translate-y-8"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div
|
|
2
2
|
x-data="appBanner()" x-cloak x-show="showBanner" ax-load x-ignore
|
|
3
|
-
id="marketing-banner" tabindex="-1" class="fixed bottom-0
|
|
3
|
+
id="marketing-banner" tabindex="-1" class="fixed bottom-0 flex flex-row justify-end w-full gap-4 p-4 -translate-x-1/2 z-300 flex-nowrap bg-blue-aqua lg:max-w-7xl left-1/2">
|
|
4
4
|
<div class="flex flex-row items-center gap-4 grow">
|
|
5
5
|
<div class="flex items-center justify-center rounded-lg w-11 h-11 bg-blue-congress-hex shrink-0">
|
|
6
6
|
<img width="24" height="24" src="{{resourceUrl "assets/base/icons/logo/brandlogo--mobile.min.svg" _brand=(defaultIfEmpty this.brand "hessenschau")}}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div
|
|
2
2
|
x-data="nativeAppBanner()" x-cloak x-show="showBanner" ax-load x-ignore
|
|
3
|
-
id="marketing-banner" tabindex="-1" class="fixed bottom-0
|
|
3
|
+
id="marketing-banner" tabindex="-1" class="fixed bottom-0 flex flex-row justify-end w-full gap-4 p-4 -translate-x-1/2 z-300 flex-nowrap bg-blue-aqua lg:max-w-7xl left-1/2">
|
|
4
4
|
<div class="flex flex-row items-center gap-4 grow">
|
|
5
5
|
<div class="flex items-center justify-center rounded-lg w-11 h-11 bg-blue-congress-hex shrink-0">
|
|
6
6
|
<img width="24" height="24" src="{{resourceUrl "assets/base/icons/logo/brandlogo--mobile.min.svg" _brand=(defaultIfEmpty this.brand "hessenschau")}}"
|
package/dist/views_static/components/external-service/external_service_with_datapolicy_check.hbs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div class="c-externalService c-externalService__{{this.externalServiceConfig.externalServiceId}}{{#unless
|
|
4
4
|
this.fixedHeight }} -noFixedHeight{{/unless}} js-load"
|
|
5
5
|
data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType":"{{this.externalServiceConfig.externalServiceEmbedType}}","lazyLoad":{{defaultIfEmpty _lazyLoad false}},"dataPolicyCheck": true, "whiteList":{{this.externalServiceConfig.isWhitelisted}},"iFrameConfig": { {{~#if this.fixedHeight~}}
|
|
6
|
-
"fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"
|
|
6
|
+
"fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"isNoResponsiveIframe":"{{{this.setResponsiveIframe}}}","isWebcomponent":"{{{this.setWebcomponent}}}"{{~#if this.setTimedReloadIframe}},"refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"{{~/if}} }}'>
|
|
7
7
|
{{~> components/external-service/components/external_service_data_policy ~}}
|
|
8
8
|
</div>
|
|
9
9
|
{{~> components/external-service/components/external_service_caption ~}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div class="h-8" x-data="{ isVisible: false }">
|
|
2
2
|
<div class="grid grid-page z-100" :class="{ 'fixed bottom-feature-box-height left-0 w-full': !$store.footerIsVisible }">
|
|
3
3
|
<div class="flex justify-between h-0 col-full sm:col-main"
|
|
4
|
-
:class="{ 'bg-white h-8': $store.footerIsVisible }"
|
|
4
|
+
:class="{ 'bg-white h-8': $store.footerIsVisible, 'h-22': $store.appBannerIsVisible && !$store.footerIsVisible}"
|
|
5
5
|
x-show="!$store.sharingIsVisible && isVisible"
|
|
6
6
|
x-transition:enter="transition ease-[cubic-bezier(0.68,-0.3,0.32,1)] duration-500 transform order-first"
|
|
7
7
|
x-transition:enter-start="opacity-0 translate-y-8"
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"repository": "https://github.com/szuelch/hr-design-system-handlebars",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.125.1",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
12
12
|
"storybook": "storybook dev -p 6006 public",
|
package/src/assets/js/alpine.js
CHANGED
|
@@ -46,6 +46,7 @@ Alpine.store('serviceID', {
|
|
|
46
46
|
Alpine.store('navIsVisible', true)
|
|
47
47
|
Alpine.store('subNavIsVisible', false)
|
|
48
48
|
Alpine.store('footerIsVisible', false)
|
|
49
|
+
Alpine.store('appBannerIsVisible', false)
|
|
49
50
|
Alpine.store('sectionNavIsVisible', false)
|
|
50
51
|
Alpine.store('sharingIsVisible', false)
|
|
51
52
|
Alpine.store('sharingIsOpen', {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { uxAction } from 'base/tracking/pianoHelper.subfeature'
|
|
2
|
+
import { getJSONCookie, setJSONCookie } from 'hrQuery'
|
|
2
3
|
|
|
3
4
|
export default function appBanner() {
|
|
4
5
|
return {
|
|
@@ -6,24 +7,37 @@ export default function appBanner() {
|
|
|
6
7
|
deferredPrompt: null,
|
|
7
8
|
isAndroid: /Android/i.test(navigator.userAgent),
|
|
8
9
|
packageId: "de.hr.hessenschau",
|
|
10
|
+
cookie: {},
|
|
11
|
+
cookieLifetime: 1000 * 60 * 60 * 24 * 30,
|
|
9
12
|
init: function () {
|
|
10
|
-
|
|
11
|
-
if(this.
|
|
13
|
+
this.readTrackingCookie()
|
|
14
|
+
if(this.cookie["closed"] !== true){
|
|
15
|
+
if(this.isAndroid){
|
|
16
|
+
this.showBanner = true;
|
|
17
|
+
this.$store.appBannerIsVisible = true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if(window.IS_STORYBOOK){
|
|
12
21
|
this.showBanner = true;
|
|
22
|
+
this.$store.appBannerIsVisible = true;
|
|
13
23
|
}
|
|
14
24
|
|
|
15
|
-
if(window.IS_STORYBOOK){ this.showBanner = true;}
|
|
16
25
|
},
|
|
17
26
|
installClickHandler: function(){
|
|
18
27
|
this.openPlayStore()
|
|
28
|
+
this.writeCookie()
|
|
19
29
|
this.showBanner = false
|
|
30
|
+
this.$store.appBannerIsVisible = false
|
|
20
31
|
},
|
|
21
32
|
closeClickHandler: function(){
|
|
22
33
|
uxAction('appBanner::bannerClosed');
|
|
23
34
|
this.showBanner = false
|
|
35
|
+
this.$store.appBannerIsVisible = false
|
|
36
|
+
this.writeCookie()
|
|
24
37
|
},
|
|
25
38
|
openPlayStore: function() {
|
|
26
39
|
let fallbackTriggered = false;
|
|
40
|
+
uxAction('appBanner::playStoreOpened');
|
|
27
41
|
|
|
28
42
|
const fallback = () => {
|
|
29
43
|
if (fallbackTriggered) return;
|
|
@@ -45,6 +59,13 @@ export default function appBanner() {
|
|
|
45
59
|
`#Intent;scheme=market;package=com.android.vending;end`;
|
|
46
60
|
|
|
47
61
|
setTimeout(fallback, 700);
|
|
62
|
+
},
|
|
63
|
+
writeCookie: function() {
|
|
64
|
+
this.cookie["closed"] = true
|
|
65
|
+
setJSONCookie('appBanner', this.cookie, this.cookieLifetime)
|
|
66
|
+
},
|
|
67
|
+
readTrackingCookie: function() {
|
|
68
|
+
this.cookie = getJSONCookie('appBanner') || {}
|
|
48
69
|
}
|
|
49
70
|
}
|
|
50
71
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div
|
|
2
2
|
x-data="appBanner()" x-cloak x-show="showBanner" ax-load x-ignore
|
|
3
|
-
id="marketing-banner" tabindex="-1" class="fixed bottom-0
|
|
3
|
+
id="marketing-banner" tabindex="-1" class="fixed bottom-0 flex flex-row justify-end w-full gap-4 p-4 -translate-x-1/2 z-300 flex-nowrap bg-blue-aqua lg:max-w-7xl left-1/2">
|
|
4
4
|
<div class="flex flex-row items-center gap-4 grow">
|
|
5
5
|
<div class="flex items-center justify-center rounded-lg w-11 h-11 bg-blue-congress-hex shrink-0">
|
|
6
6
|
<img width="24" height="24" src="{{resourceUrl "assets/base/icons/logo/brandlogo--mobile.min.svg" _brand=(defaultIfEmpty this.brand "hessenschau")}}"
|
|
@@ -14,9 +14,13 @@ export default function nativeAppBanner() {
|
|
|
14
14
|
// Update UI notify the user they can add to home screen
|
|
15
15
|
if(this.isAndroid){
|
|
16
16
|
this.showBanner = true;
|
|
17
|
+
this.$store.appBannerIsVisible = true;
|
|
17
18
|
}
|
|
18
19
|
});
|
|
19
|
-
if(window.IS_STORYBOOK){
|
|
20
|
+
if(window.IS_STORYBOOK){
|
|
21
|
+
this.showBanner = true;
|
|
22
|
+
this.$store.appBannerIsVisible = true;
|
|
23
|
+
}
|
|
20
24
|
},
|
|
21
25
|
installClickHandler: function(){
|
|
22
26
|
if(this.deferredPrompt){
|
|
@@ -35,10 +39,12 @@ export default function nativeAppBanner() {
|
|
|
35
39
|
});
|
|
36
40
|
}
|
|
37
41
|
this.showBanner = false
|
|
42
|
+
this.$store.appBannerIsVisible = false
|
|
38
43
|
},
|
|
39
44
|
closeClickHandler: function(){
|
|
40
45
|
uxAction('nativeAppBanner::bannerClosed');
|
|
41
46
|
this.showBanner = false
|
|
47
|
+
this.$store.appBannerIsVisible = false
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div
|
|
2
2
|
x-data="nativeAppBanner()" x-cloak x-show="showBanner" ax-load x-ignore
|
|
3
|
-
id="marketing-banner" tabindex="-1" class="fixed bottom-0
|
|
3
|
+
id="marketing-banner" tabindex="-1" class="fixed bottom-0 flex flex-row justify-end w-full gap-4 p-4 -translate-x-1/2 z-300 flex-nowrap bg-blue-aqua lg:max-w-7xl left-1/2">
|
|
4
4
|
<div class="flex flex-row items-center gap-4 grow">
|
|
5
5
|
<div class="flex items-center justify-center rounded-lg w-11 h-11 bg-blue-congress-hex shrink-0">
|
|
6
6
|
<img width="24" height="24" src="{{resourceUrl "assets/base/icons/logo/brandlogo--mobile.min.svg" _brand=(defaultIfEmpty this.brand "hessenschau")}}"
|