hr-design-system-handlebars 1.95.1 → 1.97.0

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/assets/index.css +18 -12
  3. package/dist/assets/js/base/tracking/clickTracking.feature.js +22 -36
  4. package/dist/assets/js/base/tracking/pianoHelper.subfeature.js +30 -38
  5. package/dist/views/components/content/copytext/components/contentbox/contentbox.hbs +1 -1
  6. package/dist/views/components/content/copytext/components/infobox.hbs +1 -1
  7. package/dist/views/components/content/copytext/components/paragraph/paragraph_body.hbs +3 -3
  8. package/dist/views/components/content/copytext/copytext.hbs +1 -1
  9. package/dist/views_static/components/content/copytext/components/contentbox/contentbox.hbs +1 -1
  10. package/dist/views_static/components/content/copytext/components/infobox.hbs +1 -1
  11. package/dist/views_static/components/content/copytext/components/paragraph/paragraph_body.hbs +3 -3
  12. package/dist/views_static/components/content/copytext/copytext.hbs +1 -1
  13. package/package.json +1 -1
  14. package/src/assets/css/custom-components.css +13 -2
  15. package/src/assets/fixtures/content/copytext/copytext_paragraph.inc.json +1 -1
  16. package/src/stories/views/base/tracking/clickTracking.feature.js +22 -36
  17. package/src/stories/views/base/tracking/pianoHelper.subfeature.js +30 -38
  18. package/src/stories/views/components/content/copytext/components/contentbox/contentbox.hbs +1 -1
  19. package/src/stories/views/components/content/copytext/components/contentbox/fixtures/contentbox.json +1 -1
  20. package/src/stories/views/components/content/copytext/components/infobox.hbs +1 -1
  21. package/src/stories/views/components/content/copytext/components/paragraph/paragraph_body.hbs +3 -3
  22. package/src/stories/views/components/content/copytext/copytext.hbs +1 -1
  23. package/src/stories/views/components/content/copytext/fixtures/copytext.json +1 -1
  24. package/src/stories/views/components/content/copytext/fixtures/copytext_additionalInfo.json +1 -1
  25. package/src/stories/views/components/content/copytext/fixtures/copytext_audio.json +1 -1
  26. package/src/stories/views/components/content/copytext/fixtures/copytext_audio_livestream.json +1 -1
  27. package/src/stories/views/components/content/copytext/fixtures/copytext_cite.json +1 -1
  28. package/src/stories/views/components/content/copytext/fixtures/copytext_downloadbox.json +1 -1
  29. package/src/stories/views/components/content/copytext/fixtures/copytext_faq.json +1 -1
  30. package/src/stories/views/components/content/copytext/fixtures/copytext_filedownload.json +1 -1
  31. package/src/stories/views/components/content/copytext/fixtures/copytext_image.json +1 -1
  32. package/src/stories/views/components/content/copytext/fixtures/copytext_infobox.json +1 -1
  33. package/src/stories/views/components/content/copytext/fixtures/copytext_livestream.json +1 -1
  34. package/src/stories/views/components/content/copytext/fixtures/copytext_media_components.json +1 -1
  35. package/src/stories/views/components/content/copytext/fixtures/copytext_non_media_components.json +1 -1
  36. package/src/stories/views/components/content/copytext/fixtures/copytext_podcastepisode.json +1 -1
  37. package/src/stories/views/components/content/copytext/fixtures/copytext_posterteaser.json +1 -1
  38. package/src/stories/views/components/content/copytext/fixtures/copytext_video.json +1 -1
  39. package/src/stories/views/components/page/story/fixtures/story.json +1 -1
  40. package/src/stories/views/components/page/story/fixtures/story_with_audio.json +1 -1
  41. package/src/stories/views/components/page/story/fixtures/story_with_label.json +1 -1
  42. package/src/stories/views/components/page/story/fixtures/story_with_livestream.json +1 -1
  43. package/src/stories/views/components/page/story/fixtures/story_with_square_image.json +1 -1
  44. package/src/stories/views/components/page/story/fixtures/story_with_video.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # v1.97.0 (Tue Aug 27 2024)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - Bug/dpe 3321 [#1054](https://github.com/mumprod/hr-design-system-handlebars/pull/1054) ([@szuelch](https://github.com/szuelch))
6
+
7
+ #### Authors: 1
8
+
9
+ - [@szuelch](https://github.com/szuelch)
10
+
11
+ ---
12
+
13
+ # v1.96.0 (Mon Aug 26 2024)
14
+
15
+ #### 🚀 Enhancement
16
+
17
+ - Feature/dpe 3322 [#1053](https://github.com/mumprod/hr-design-system-handlebars/pull/1053) ([@szuelch](https://github.com/szuelch))
18
+
19
+ #### Authors: 1
20
+
21
+ - [@szuelch](https://github.com/szuelch)
22
+
23
+ ---
24
+
1
25
  # v1.95.1 (Fri Aug 23 2024)
2
26
 
3
27
  #### 🐛 Bug Fix
@@ -439,7 +439,7 @@ video {
439
439
  --tw-gradient-to-position: ;
440
440
  }
441
441
 
442
- .ds-focus, .ds-focus:not(:focus-visible), .ds-button, .ds-button:not(:focus-visible), .ds-button-round, .ds-button-round:not(:focus-visible), .ds-link, .ds-link:not(:focus-visible), .ds-teaser-focus, .ds-teaser-focus::before, .ds-cta > *, .ds-teaser-focus:not(:focus-visible)::before, .-isOpen, .copytext-ds__link, .copytext-ds__link:not(:focus-visible), .shadow, .shadow-md, .shadow-xl, .toggleSwitch-label, .before\:shadow-stage::before {
442
+ .ds-focus, .ds-focus:not(:focus-visible), .ds-button, .ds-button:not(:focus-visible), .ds-button-round, .ds-button-round:not(:focus-visible), .ds-link, .ds-link:not(:focus-visible), .ds-teaser-focus, .ds-teaser-focus::before, .ds-cta > *, .ds-teaser-focus:not(:focus-visible)::before, .-isOpen, .hrds-copytext__link, .hrds-copytext__link:not(:focus-visible), .shadow, .shadow-md, .shadow-xl, .toggleSwitch-label, .before\:shadow-stage::before {
443
443
  --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);
444
444
  --tw-ring-shadow: 0 0 rgba(0,0,0,0);
445
445
  --tw-shadow: 0 0 rgba(0,0,0,0);
@@ -987,7 +987,7 @@ article.indexTextDS .indexTextHighlighted .link {
987
987
  text-decoration-thickness: 1px;
988
988
  }
989
989
  /* -----------------------------COPYTEXT ---------------------------- */
990
- .copytext-ds__link:focus {
990
+ .hrds-copytext__link:focus {
991
991
  --tw-shadow: 0 0 0 0.25rem;
992
992
  --tw-shadow-colored: 0 0 0 0.25rem var(--tw-shadow-color);
993
993
  box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);
@@ -997,33 +997,33 @@ article.indexTextDS .indexTextHighlighted .link {
997
997
  outline: 2px solid transparent;
998
998
  outline-offset: 2px;
999
999
  }
1000
- .copytext-ds__link:focus:not(:focus-visible) {
1000
+ .hrds-copytext__link:focus:not(:focus-visible) {
1001
1001
  --tw-shadow: 0 0 rgba(0,0,0,0);
1002
1002
  --tw-shadow-colored: 0 0 rgba(0,0,0,0);
1003
1003
  box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);
1004
1004
  box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);
1005
1005
  }
1006
- .copytext-ds__link.ds-teaser-focus:focus {
1006
+ .hrds-copytext__link.ds-teaser-focus:focus {
1007
1007
  --tw-shadow: 0 0 rgba(0,0,0,0);
1008
1008
  --tw-shadow-colored: 0 0 rgba(0,0,0,0);
1009
1009
  box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);
1010
1010
  box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);
1011
1011
  }
1012
- .copytext-ds__link {
1012
+ .hrds-copytext__link {
1013
1013
  color: #006eb7;
1014
1014
  color: var(--color-link);
1015
1015
  -webkit-text-decoration-line: underline;
1016
1016
  text-decoration-line: underline;
1017
1017
  text-decoration-thickness: 1px;
1018
1018
  }
1019
- .copytext-ds__link:hover {
1019
+ .hrds-copytext__link:hover {
1020
1020
  text-decoration-thickness: 1px;
1021
1021
  }
1022
- [class~='tw-dark'] .copytext-ds__link {
1022
+ [class~='tw-dark'] .hrds-copytext__link {
1023
1023
  color: #006eb7;
1024
1024
  color: var(--color-link-dark);
1025
1025
  }
1026
- .copytext-ds__icon {
1026
+ .hrds-copytext__icon {
1027
1027
  margin-top: -0.125rem;
1028
1028
  margin-left: 0.25rem;
1029
1029
  display: inline;
@@ -1031,10 +1031,16 @@ article.indexTextDS .indexTextHighlighted .link {
1031
1031
  width: 1.25rem;
1032
1032
  fill: currentColor;
1033
1033
  }
1034
- .copytext-ds__paragraph .copytext-ds__icon {
1034
+ .hrds-copytext__paragraph .hrds-copytext__icon {
1035
1035
  height: 1.5rem;
1036
1036
  width: 1.5rem;
1037
1037
  }
1038
+ .hrds-copytext h2 strong, .hrds-copytext h3 strong, .hrds-copytext h4 strong {
1039
+ font-weight: 400;
1040
+ }
1041
+ .hrds-copytext h2 em, .hrds-copytext h3 em, .hrds-copytext h4 em {
1042
+ font-style: normal;
1043
+ }
1038
1044
  .sr-only {
1039
1045
  position: absolute;
1040
1046
  width: 1px;
@@ -3332,7 +3338,7 @@ article.indexTextDS .indexTextHighlighted .link {
3332
3338
  border-bottom-color: var(--color-secondary-ds);
3333
3339
  }
3334
3340
  .counter-reset {
3335
- counter-reset: cnt1724406325510;
3341
+ counter-reset: cnt1724759480906;
3336
3342
  }
3337
3343
  .hyphens-auto {
3338
3344
  -webkit-hyphens: auto;
@@ -3740,7 +3746,7 @@ article.indexTextDS .indexTextHighlighted .link {
3740
3746
  --tw-ring-color: rgba(255, 255, 255, 0.5);
3741
3747
  }
3742
3748
  .-ordered {
3743
- counter-increment: cnt1724406325510 1;
3749
+ counter-increment: cnt1724759480906 1;
3744
3750
  }
3745
3751
  .-ordered::before {
3746
3752
  position: absolute;
@@ -3756,7 +3762,7 @@ article.indexTextDS .indexTextHighlighted .link {
3756
3762
  letter-spacing: .0125em;
3757
3763
  --tw-text-opacity: 1;
3758
3764
  color: rgba(0, 0, 0, var(--tw-text-opacity));
3759
- content: counter(cnt1724406325510);
3765
+ content: counter(cnt1724759480906);
3760
3766
  }
3761
3767
  /*! ****************************/
3762
3768
  /*! DataPolicy stuff */
@@ -1,51 +1,37 @@
1
- import { download, pi, uxAction, uxNavigation } from 'base/tracking/pianoHelper.subfeature'
1
+ import { download, pi, uxAction, uxNavigation } from 'base/tracking/pianoHelper.subfeature';
2
2
 
3
- const ClickTracking = function (context) {
4
- const { options } = context,
5
- { element: elementToTrack } = context,
6
- settings = options.settings || []
3
+ const ClickTracking = (context) => {
4
+ const { options, element: elementToTrack } = context;
5
+ const settings = options.settings || [];
7
6
 
8
- const init = function () {
9
- configureEventHandlers()
10
- }
11
-
12
- const configureEventHandlers = function () {
13
- if (window.attachEvent) {
14
- elementToTrack.attachEvent('click', clickHandler)
15
- } else {
16
- elementToTrack.addEventListener('click', clickHandler)
17
- }
18
- }
19
-
20
- const clickHandler = function (event) {
21
- settings.forEach(function (trackingSetting) {
7
+ const clickHandler = (event) => {
8
+ settings.forEach(({ type, clickLabel, secondLevelId }) => {
22
9
  /* use String.prototype.replace function with a regex and the global flag
23
10
  instead of String.prototype.replaceAll function to prevent errors in older
24
11
  browsers that don't know the replaceAll function
25
12
  see: https://www.designcise.com/web/tutorial/how-to-fix-replaceall-is-not-a-function-javascript-error
26
13
  */
27
- trackingSetting.clickLabel = trackingSetting.clickLabel.replace(/&/g, '-')
28
- switch (trackingSetting.type) {
14
+ const sanitizedLabel = clickLabel.replace(/&/g, '-');
15
+ switch (type) {
29
16
  case 'download':
30
- download(trackingSetting.clickLabel, trackingSetting.secondLevelId)
31
- break
17
+ download(sanitizedLabel, secondLevelId);
18
+ break;
32
19
  case 'pi':
33
- pi()
34
- break
20
+ pi();
21
+ break;
35
22
  case 'uxAction':
36
- uxAction(trackingSetting.clickLabel, trackingSetting.secondLevelId)
37
- break
23
+ uxAction(sanitizedLabel, secondLevelId);
24
+ break;
38
25
  case 'uxNavigation':
39
- uxNavigation(trackingSetting.clickLabel, trackingSetting.secondLevelId)
40
- break
26
+ uxNavigation(sanitizedLabel, secondLevelId);
27
+ break;
41
28
  default:
42
- console.log('Fehler, es wurde kein Tracking Typ angegeben.')
43
- break
29
+ console.error('Fehler, es wurde kein Tracking Typ angegeben.');
44
30
  }
45
- })
46
- }
31
+ });
32
+ };
47
33
 
48
- init()
49
- }
34
+ elementToTrack.addEventListener('click', clickHandler);
35
+ };
50
36
 
51
- export default ClickTracking
37
+ export default ClickTracking;
@@ -1,44 +1,36 @@
1
- import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature'
1
+ import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature';
2
2
 
3
3
  const isTrackingAllowed = () => {
4
- const settingsCookie = new SettingsCookie()
5
- return settingsCookie.isSettingsCookieAccepted('ati')
6
- }
7
-
8
- const uxAction = (label, secondLevelId) => {
9
- secondLevelId = undefined !== secondLevelId ? secondLevelId : typeof pageDisplayConfig !== "undefined" && pageDisplayConfig !== undefined ? pageDisplayConfig.site_level2_id:99
10
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
11
- pa.sendEvent('click.action', {
12
- click: label,
13
- site_level2_id: secondLevelId,
14
- })
15
- }
16
- }
17
-
18
- const uxNavigation = (label, secondLevelId) => {
19
- secondLevelId = undefined !== secondLevelId ? secondLevelId : typeof pageDisplayConfig !== "undefined" && pageDisplayConfig !== undefined ? pageDisplayConfig.site_level2_id:99
20
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
21
- pa.sendEvent('click.navigation', {
22
- click: label,
23
- site_level2_id: secondLevelId,
24
- })
25
- }
26
- }
4
+ const settingsCookie = new SettingsCookie();
5
+ return settingsCookie.isSettingsCookieAccepted('ati');
6
+ };
27
7
 
28
- const pi = () => {
29
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
30
- pa.sendEvent('page.display', pageDisplayConfig)
8
+ const sendEvent = (eventType, event) => {
9
+ if (typeof pa !== 'undefined' && pa !== undefined && isTrackingAllowed()) {
10
+ pa.sendEvent(eventType, event);
31
11
  }
32
- }
33
-
34
- const download = (label, secondLevelId) => {
35
- secondLevelId = undefined !== secondLevelId ? secondLevelId : typeof pageDisplayConfig !== "undefined" && pageDisplayConfig !== undefined ? pageDisplayConfig.site_level2_id:99
36
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
37
- pa.sendEvent('click.download', {
38
- click: label,
39
- site_level2_id: secondLevelId,
40
- })
12
+ };
13
+
14
+ const getDefaultEvent = (label, secondLevelId) => {
15
+ return {
16
+ click: label,
17
+ site_level2_id: determineSecondLevelId(secondLevelId)
41
18
  }
42
- }
19
+ };
20
+
21
+ const determineSecondLevelId = (secondLevelId) => {
22
+ return secondLevelId !== undefined
23
+ ? secondLevelId
24
+ : pageDisplayConfig.site_level2_id;
25
+ };
26
+
27
+ const uxAction = (label, secondLevelId) => sendEvent('click.action', getDefaultEvent(label, secondLevelId));
28
+
29
+ const uxNavigation = (label, secondLevelId) => sendEvent('click.navigation', getDefaultEvent(label, secondLevelId));
30
+
31
+ const pi = () => sendEvent('page.display', pageDisplayConfig);
32
+
33
+ const download = (label, secondLevelId) => sendEvent('click.download', getDefaultEvent(label, secondLevelId));
34
+
43
35
 
44
- export { isTrackingAllowed, uxAction, uxNavigation, pi, download }
36
+ export { isTrackingAllowed, uxAction, uxNavigation, pi, download };
@@ -1,4 +1,4 @@
1
- {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.showFullSize.isTrue _cssClass="copytext-ds__box"}}
1
+ {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.showFullSize.isTrue _cssClass="hrds-copytext__box"}}
2
2
 
3
3
  {{~> components/base/a11y/hiddenText _locaTag="story_infobox_intro_sr" ~}}
4
4
 
@@ -1,4 +1,4 @@
1
- {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.paragraphProperties.[0].showFullSize _cssClasses="copytext-ds__box"}}
1
+ {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.paragraphProperties.[0].showFullSize _cssClasses="hrds-copytext__box"}}
2
2
 
3
3
  <span class="sr-only">{{loca "story_infobox_intro_sr" }}</span>
4
4
 
@@ -1,9 +1,9 @@
1
1
  {{#if this.isText}}
2
- <p class="copytext-ds__paragraph mt-4 sm:mt-5 text-lg leading-normal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</p>
2
+ <p class="hrds-copytext__paragraph mt-4 sm:mt-5 text-lg leading-normal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</p>
3
3
  {{/if}}
4
4
  {{#if this.isUl}}
5
- <ul class="copytext-ds__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-disc sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ul>
5
+ <ul class="hrds-copytext__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-disc sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ul>
6
6
  {{/if}}
7
7
  {{#if this.isOl}}
8
- <ol class="copytext-ds__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-decimal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ol>
8
+ <ol class="hrds-copytext__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-decimal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ol>
9
9
  {{/if}}
@@ -1,4 +1,4 @@
1
- <div class="mt-2 contents sm:block copytextWrapper">
1
+ <div class="hrds-copytext mt-2 contents sm:block copytextWrapper">
2
2
  {{~#with this.leadAudio }}
3
3
  {{> components/content/copytext/components/media/media_figure _playerLocation="Copytext" _playerSize="100" _addClass="print:hidden article-full-width mt-12 mb-6 sm:article-narrow sm:my-14" _cssClassCaption="mx-5 sm:mx-0" _a11yIntro-loca="story_audio_intro_sr" _a11yOutro-loca="story_audio_outro_sr" }}
4
4
  {{~/with}}
@@ -1,4 +1,4 @@
1
- {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.showFullSize.isTrue _cssClass="copytext-ds__box"}}
1
+ {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.showFullSize.isTrue _cssClass="hrds-copytext__box"}}
2
2
 
3
3
  {{~> components/base/a11y/hiddenText _locaTag="story_infobox_intro_sr" ~}}
4
4
 
@@ -1,4 +1,4 @@
1
- {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.paragraphProperties.[0].showFullSize _cssClasses="copytext-ds__box"}}
1
+ {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.paragraphProperties.[0].showFullSize _cssClasses="hrds-copytext__box"}}
2
2
 
3
3
  <span class="sr-only">{{loca "story_infobox_intro_sr" }}</span>
4
4
 
@@ -1,9 +1,9 @@
1
1
  {{#if this.isText}}
2
- <p class="copytext-ds__paragraph mt-4 sm:mt-5 text-lg leading-normal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</p>
2
+ <p class="hrds-copytext__paragraph mt-4 sm:mt-5 text-lg leading-normal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</p>
3
3
  {{/if}}
4
4
  {{#if this.isUl}}
5
- <ul class="copytext-ds__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-disc sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ul>
5
+ <ul class="hrds-copytext__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-disc sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ul>
6
6
  {{/if}}
7
7
  {{#if this.isOl}}
8
- <ol class="copytext-ds__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-decimal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ol>
8
+ <ol class="hrds-copytext__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-decimal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ol>
9
9
  {{/if}}
@@ -1,4 +1,4 @@
1
- <div class="mt-2 contents sm:block copytextWrapper">
1
+ <div class="hrds-copytext mt-2 contents sm:block copytextWrapper">
2
2
  {{~#with this.leadAudio }}
3
3
  {{> components/content/copytext/components/media/media_figure _playerLocation="Copytext" _playerSize="100" _addClass="print:hidden article-full-width mt-12 mb-6 sm:article-narrow sm:my-14" _cssClassCaption="mx-5 sm:mx-0" _a11yIntro-loca="story_audio_intro_sr" _a11yOutro-loca="story_audio_outro_sr" }}
4
4
  {{~/with}}
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.95.1",
9
+ "version": "1.97.0",
10
10
  "scripts": {
11
11
  "test": "echo \"Error: no test specified\" && exit 1",
12
12
  "storybook": "storybook dev -p 6006 public",
@@ -310,7 +310,7 @@ article.indexTextDS .indexTextHighlighted .link {
310
310
  }
311
311
 
312
312
  /* -----------------------------COPYTEXT ---------------------------- */
313
- .copytext-ds {
313
+ .hrds-copytext {
314
314
  &__link {
315
315
  @apply underline text-link decoration-1 hover:decoration-1 dark:text-link-dark ds-link;
316
316
  }
@@ -320,8 +320,19 @@ article.indexTextDS .indexTextHighlighted .link {
320
320
  }
321
321
 
322
322
  &__paragraph {
323
- .copytext-ds__icon {
323
+ .hrds-copytext__icon {
324
324
  @apply w-6 h-6;
325
325
  }
326
326
  }
327
+
328
+ h2,
329
+ h3,
330
+ h4 {
331
+ strong {
332
+ @apply font-normal;
333
+ }
334
+ em {
335
+ @apply not-italic;
336
+ }
337
+ }
327
338
  }
@@ -4,7 +4,7 @@
4
4
  "split": [
5
5
  {
6
6
  "isText": true,
7
- "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='copytext-ds__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."
7
+ "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='hrds-copytext__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."
8
8
  }
9
9
  ]
10
10
  }
@@ -1,51 +1,37 @@
1
- import { download, pi, uxAction, uxNavigation } from 'base/tracking/pianoHelper.subfeature'
1
+ import { download, pi, uxAction, uxNavigation } from 'base/tracking/pianoHelper.subfeature';
2
2
 
3
- const ClickTracking = function (context) {
4
- const { options } = context,
5
- { element: elementToTrack } = context,
6
- settings = options.settings || []
3
+ const ClickTracking = (context) => {
4
+ const { options, element: elementToTrack } = context;
5
+ const settings = options.settings || [];
7
6
 
8
- const init = function () {
9
- configureEventHandlers()
10
- }
11
-
12
- const configureEventHandlers = function () {
13
- if (window.attachEvent) {
14
- elementToTrack.attachEvent('click', clickHandler)
15
- } else {
16
- elementToTrack.addEventListener('click', clickHandler)
17
- }
18
- }
19
-
20
- const clickHandler = function (event) {
21
- settings.forEach(function (trackingSetting) {
7
+ const clickHandler = (event) => {
8
+ settings.forEach(({ type, clickLabel, secondLevelId }) => {
22
9
  /* use String.prototype.replace function with a regex and the global flag
23
10
  instead of String.prototype.replaceAll function to prevent errors in older
24
11
  browsers that don't know the replaceAll function
25
12
  see: https://www.designcise.com/web/tutorial/how-to-fix-replaceall-is-not-a-function-javascript-error
26
13
  */
27
- trackingSetting.clickLabel = trackingSetting.clickLabel.replace(/&/g, '-')
28
- switch (trackingSetting.type) {
14
+ const sanitizedLabel = clickLabel.replace(/&/g, '-');
15
+ switch (type) {
29
16
  case 'download':
30
- download(trackingSetting.clickLabel, trackingSetting.secondLevelId)
31
- break
17
+ download(sanitizedLabel, secondLevelId);
18
+ break;
32
19
  case 'pi':
33
- pi()
34
- break
20
+ pi();
21
+ break;
35
22
  case 'uxAction':
36
- uxAction(trackingSetting.clickLabel, trackingSetting.secondLevelId)
37
- break
23
+ uxAction(sanitizedLabel, secondLevelId);
24
+ break;
38
25
  case 'uxNavigation':
39
- uxNavigation(trackingSetting.clickLabel, trackingSetting.secondLevelId)
40
- break
26
+ uxNavigation(sanitizedLabel, secondLevelId);
27
+ break;
41
28
  default:
42
- console.log('Fehler, es wurde kein Tracking Typ angegeben.')
43
- break
29
+ console.error('Fehler, es wurde kein Tracking Typ angegeben.');
44
30
  }
45
- })
46
- }
31
+ });
32
+ };
47
33
 
48
- init()
49
- }
34
+ elementToTrack.addEventListener('click', clickHandler);
35
+ };
50
36
 
51
- export default ClickTracking
37
+ export default ClickTracking;
@@ -1,44 +1,36 @@
1
- import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature'
1
+ import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature';
2
2
 
3
3
  const isTrackingAllowed = () => {
4
- const settingsCookie = new SettingsCookie()
5
- return settingsCookie.isSettingsCookieAccepted('ati')
6
- }
7
-
8
- const uxAction = (label, secondLevelId) => {
9
- secondLevelId = undefined !== secondLevelId ? secondLevelId : typeof pageDisplayConfig !== "undefined" && pageDisplayConfig !== undefined ? pageDisplayConfig.site_level2_id:99
10
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
11
- pa.sendEvent('click.action', {
12
- click: label,
13
- site_level2_id: secondLevelId,
14
- })
15
- }
16
- }
17
-
18
- const uxNavigation = (label, secondLevelId) => {
19
- secondLevelId = undefined !== secondLevelId ? secondLevelId : typeof pageDisplayConfig !== "undefined" && pageDisplayConfig !== undefined ? pageDisplayConfig.site_level2_id:99
20
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
21
- pa.sendEvent('click.navigation', {
22
- click: label,
23
- site_level2_id: secondLevelId,
24
- })
25
- }
26
- }
4
+ const settingsCookie = new SettingsCookie();
5
+ return settingsCookie.isSettingsCookieAccepted('ati');
6
+ };
27
7
 
28
- const pi = () => {
29
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
30
- pa.sendEvent('page.display', pageDisplayConfig)
8
+ const sendEvent = (eventType, event) => {
9
+ if (typeof pa !== 'undefined' && pa !== undefined && isTrackingAllowed()) {
10
+ pa.sendEvent(eventType, event);
31
11
  }
32
- }
33
-
34
- const download = (label, secondLevelId) => {
35
- secondLevelId = undefined !== secondLevelId ? secondLevelId : typeof pageDisplayConfig !== "undefined" && pageDisplayConfig !== undefined ? pageDisplayConfig.site_level2_id:99
36
- if (typeof pa !== "undefined" && pa !== undefined && isTrackingAllowed()) {
37
- pa.sendEvent('click.download', {
38
- click: label,
39
- site_level2_id: secondLevelId,
40
- })
12
+ };
13
+
14
+ const getDefaultEvent = (label, secondLevelId) => {
15
+ return {
16
+ click: label,
17
+ site_level2_id: determineSecondLevelId(secondLevelId)
41
18
  }
42
- }
19
+ };
20
+
21
+ const determineSecondLevelId = (secondLevelId) => {
22
+ return secondLevelId !== undefined
23
+ ? secondLevelId
24
+ : pageDisplayConfig.site_level2_id;
25
+ };
26
+
27
+ const uxAction = (label, secondLevelId) => sendEvent('click.action', getDefaultEvent(label, secondLevelId));
28
+
29
+ const uxNavigation = (label, secondLevelId) => sendEvent('click.navigation', getDefaultEvent(label, secondLevelId));
30
+
31
+ const pi = () => sendEvent('page.display', pageDisplayConfig);
32
+
33
+ const download = (label, secondLevelId) => sendEvent('click.download', getDefaultEvent(label, secondLevelId));
34
+
43
35
 
44
- export { isTrackingAllowed, uxAction, uxNavigation, pi, download }
36
+ export { isTrackingAllowed, uxAction, uxNavigation, pi, download };
@@ -1,4 +1,4 @@
1
- {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.showFullSize.isTrue _cssClass="copytext-ds__box"}}
1
+ {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.showFullSize.isTrue _cssClass="hrds-copytext__box"}}
2
2
 
3
3
  {{~> components/base/a11y/hiddenText _locaTag="story_infobox_intro_sr" ~}}
4
4
 
@@ -1 +1 @@
1
- {"copytext":{"title":"Contentbox: Volle Breite, mit Bild über halbe Breite und Ü","showFullSize":{"isTrue":true},"copytextParagraph":[{"paragraphBoxItem":{"isImage":true,"showFullSize":{"isTrue":false},"showPortrait":{"isTrue":false},"caption":"Zum Glück ragt Hessens höchster Berg, die Wasserkuppe, gelegentlich aus der derzeitigen Nebelsuppe heraus, und so gelang mit dem Sternenteleskop ein Blick auf den magischen Rosetten-Nebel, einer Himmelsregion, in der gerade neue Sterne geboren werden. - Diese spektakuläre Momentaufnahme hat uns hessenschau.de-Nutzer Michael Keusgen zukommen lassen","copyrightWithLinks":"Karsten Hufer","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"images/buchmesse-fahnen-102_v-16to9__medium.jpg","sources":[{"sizes":"(min-width: 1024px) 960px, (min-width: 640px) calc(100vw - 4rem), 100vw","srcset":"images/buchmesse-fahnen-102_v-16to9__small.jpg 320w, images/buchmesse-fahnen-102_v-16to9__medium.jpg 480w, images/buchmesse-fahnen-102_v-16to9__medium__extended.jpg 640w, images/buchmesse-fahnen-102_v-16to9.jpg 960w, images/buchmesse-fahnen-102_v-16to9__retina.jpg 1920w"}]}}}],"copytext":{"paragraph":[{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='copytext-ds__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}}]}}}
1
+ {"copytext":{"title":"Contentbox: Volle Breite, mit Bild über halbe Breite und Ü","showFullSize":{"isTrue":true},"copytextParagraph":[{"paragraphBoxItem":{"isImage":true,"showFullSize":{"isTrue":false},"showPortrait":{"isTrue":false},"caption":"Zum Glück ragt Hessens höchster Berg, die Wasserkuppe, gelegentlich aus der derzeitigen Nebelsuppe heraus, und so gelang mit dem Sternenteleskop ein Blick auf den magischen Rosetten-Nebel, einer Himmelsregion, in der gerade neue Sterne geboren werden. - Diese spektakuläre Momentaufnahme hat uns hessenschau.de-Nutzer Michael Keusgen zukommen lassen","copyrightWithLinks":"Karsten Hufer","imageJson":"Beispiel JSON","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"images/buchmesse-fahnen-102_v-16to9__medium.jpg","sources":[{"sizes":"(min-width: 1024px) 960px, (min-width: 640px) calc(100vw - 4rem), 100vw","srcset":"images/buchmesse-fahnen-102_v-16to9__small.jpg 320w, images/buchmesse-fahnen-102_v-16to9__medium.jpg 480w, images/buchmesse-fahnen-102_v-16to9__medium__extended.jpg 640w, images/buchmesse-fahnen-102_v-16to9.jpg 960w, images/buchmesse-fahnen-102_v-16to9__retina.jpg 1920w"}]}}}],"copytext":{"paragraph":[{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='hrds-copytext__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}}]}}}
@@ -1,4 +1,4 @@
1
- {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.paragraphProperties.[0].showFullSize _cssClasses="copytext-ds__box"}}
1
+ {{#>components/content/copytext/components/common/paragraphbox_wrapper _showFullsize=this.paragraphProperties.[0].showFullSize _cssClasses="hrds-copytext__box"}}
2
2
 
3
3
  <span class="sr-only">{{loca "story_infobox_intro_sr" }}</span>
4
4
 
@@ -1,9 +1,9 @@
1
1
  {{#if this.isText}}
2
- <p class="copytext-ds__paragraph mt-4 sm:mt-5 text-lg leading-normal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</p>
2
+ <p class="hrds-copytext__paragraph mt-4 sm:mt-5 text-lg leading-normal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</p>
3
3
  {{/if}}
4
4
  {{#if this.isUl}}
5
- <ul class="copytext-ds__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-disc sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ul>
5
+ <ul class="hrds-copytext__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-disc sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ul>
6
6
  {{/if}}
7
7
  {{#if this.isOl}}
8
- <ol class="copytext-ds__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-decimal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ol>
8
+ <ol class="hrds-copytext__paragraph pl-9 mt-4 sm:mt-5 overflow-hidden text-lg leading-normal list-decimal sm480:text-xl lg:leading-7.5 dark:text-text-dark">{{{this.text}}}</ol>
9
9
  {{/if}}
@@ -1,4 +1,4 @@
1
- <div class="mt-2 contents sm:block copytextWrapper">
1
+ <div class="hrds-copytext mt-2 contents sm:block copytextWrapper">
2
2
  {{~#with this.leadAudio }}
3
3
  {{> components/content/copytext/components/media/media_figure _playerLocation="Copytext" _playerSize="100" _addClass="print:hidden article-full-width mt-12 mb-6 sm:article-narrow sm:my-14" _cssClassCaption="mx-5 sm:mx-0" _a11yIntro-loca="story_audio_intro_sr" _a11yOutro-loca="story_audio_outro_sr" }}
4
4
  {{~/with}}
@@ -1 +1 @@
1
- {"copytextParagraph":[{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='copytext-ds__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}},{"isParagraph":true,"text":{"split":[{"isUl":true,"text":"<li>Lorem ipsum dolor sit amet</li><li>At vero eos et accusam et justo</li><li>Stet clita kasd gubergren</li>"},{"isOl":true,"text":"<li>Lorem ipsum dolor sit amet</li><li>At vero eos et accusam et justo</li><li>Stet clita kasd gubergren</li>"}]}},{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='copytext-ds__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}},{"isHeadline":true,"text":"Zwischenüberschrift"},{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='copytext-ds__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}}]}
1
+ {"copytextParagraph":[{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='hrds-copytext__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}},{"isParagraph":true,"text":{"split":[{"isUl":true,"text":"<li>Lorem ipsum dolor sit amet</li><li>At vero eos et accusam et justo</li><li>Stet clita kasd gubergren</li>"},{"isOl":true,"text":"<li>Lorem ipsum dolor sit amet</li><li>At vero eos et accusam et justo</li><li>Stet clita kasd gubergren</li>"}]}},{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='hrds-copytext__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}},{"isHeadline":true,"text":"Zwischenüberschrift"},{"isParagraph":true,"text":{"split":[{"isText":true,"text":"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod <strong>tempor invidunt</strong> ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata <i>sanctus est Lorem ipsum</i> dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut <a href='#' class='hrds-copytext__link'>labore et dolore</a> magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod."}]}}]}