hr-design-system-handlebars 1.103.9 → 1.104.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 (104) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/assets/index.css +24 -3
  3. package/dist/assets/js/base/tracking/pianoHelper.subfeature.js +1 -1
  4. package/dist/assets/js/components/dataPolicySettings/dataPolicySettingsDs.feature.js +39 -39
  5. package/dist/assets/js/components/forms/inputHandler.alpine.js +1 -1
  6. package/dist/assets/js/components/mediaplayer/ardPlayerLoader.subfeature.js +1 -1
  7. package/dist/assets/js/utils.js +3 -6
  8. package/dist/views/components/content/copytext/components/externalservice.hbs +1 -1
  9. package/{src/stories/views/components/externalService → dist/views/components/external-service}/components/external_service_data_policy.hbs +4 -4
  10. package/{src/stories/views/components/externalService → dist/views/components/external-service}/external_service.hbs +2 -2
  11. package/dist/views/components/external-service/external_service_with_datapolicy_check.hbs +19 -0
  12. package/dist/views/components/forms/controls.hbs +1 -1
  13. package/dist/views/components/forms/input.hbs +4 -2
  14. package/dist/views/components/forms/textarea.hbs +4 -2
  15. package/dist/views/components/forms/webform.hbs +49 -1
  16. package/dist/views/components/teaser/teaser_external_service.hbs +1 -1
  17. package/dist/views_static/components/content/copytext/components/externalservice.hbs +1 -1
  18. package/dist/{views/components/externalService → views_static/components/external-service}/components/external_service_data_policy.hbs +4 -4
  19. package/dist/{views/components/externalService → views_static/components/external-service}/external_service.hbs +2 -2
  20. package/dist/views_static/components/external-service/external_service_with_datapolicy_check.hbs +19 -0
  21. package/dist/views_static/components/forms/controls.hbs +1 -1
  22. package/dist/views_static/components/forms/input.hbs +4 -2
  23. package/dist/views_static/components/forms/textarea.hbs +4 -2
  24. package/dist/views_static/components/forms/webform.hbs +49 -1
  25. package/dist/views_static/components/teaser/teaser_external_service.hbs +1 -1
  26. package/package.json +1 -1
  27. package/src/assets/fixtures/content/copytext/copytext_externalservice.json +54 -80
  28. package/src/assets/fixtures/content/copytext/copytext_webform.json +4 -0
  29. package/src/assets/fixtures/event/calendar/event_calendar_components.json +68 -0
  30. package/src/assets/fixtures/{external_service → external-service}/external_service.inc.json +22 -3
  31. package/src/assets/fixtures/external-service/external_service.json +194 -0
  32. package/src/assets/fixtures/teaser/teaser_event_calendar.json +65 -0
  33. package/src/assets/fixtures/teaser/teaser_ticker.inc.json +2 -2
  34. package/src/assets/js/utils.js +3 -6
  35. package/src/stories/basics/SnapshotStories.mdx +1 -1
  36. package/src/stories/views/base/tracking/pianoHelper.subfeature.js +1 -1
  37. package/src/stories/views/components/content/copytext/components/externalservice.hbs +1 -1
  38. package/src/stories/views/components/content/copytext/fixtures/copytext_externalservice.json +1 -1
  39. package/src/stories/views/components/content/copytext/fixtures/copytext_webform.json +1 -1
  40. package/src/stories/views/components/dataPolicySettings/dataPolicySettingsDs.feature.js +39 -39
  41. package/src/stories/views/components/event/calendar/event_calendar_components.mdx +1 -38
  42. package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +77 -42
  43. package/src/stories/views/components/event/calendar/fixtures/event_calendar_components.json +1 -0
  44. package/{dist/views_static/components/externalService → src/stories/views/components/external-service}/components/external_service_data_policy.hbs +4 -4
  45. package/{dist/views_static/components/externalService → src/stories/views/components/external-service}/external_service.hbs +2 -2
  46. package/src/stories/views/components/{externalService → external-service}/external_service.stories.js +42 -20
  47. package/src/stories/views/components/external-service/external_service_with_datapolicy_check.hbs +19 -0
  48. package/src/stories/views/components/external-service/fixtures/external_service.json +1 -0
  49. package/src/stories/views/components/forms/controls.hbs +1 -1
  50. package/src/stories/views/components/forms/input.hbs +4 -2
  51. package/src/stories/views/components/forms/inputHandler.alpine.js +1 -1
  52. package/src/stories/views/components/forms/textarea.hbs +4 -2
  53. package/src/stories/views/components/forms/webform.hbs +49 -1
  54. package/src/stories/views/components/mediaplayer/ardPlayerLoader.subfeature.js +1 -1
  55. package/src/stories/views/components/teaser/fixtures/teaser_event_calendar.json +1 -0
  56. package/src/stories/views/components/teaser/fixtures/teaser_ticker_alternative.json +1 -1
  57. package/src/stories/views/components/teaser/fixtures/teaser_ticker_standard.json +1 -1
  58. package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +45 -47
  59. package/src/stories/views/components/teaser/teaser_external_service.hbs +1 -1
  60. package/tailwind.config.js +19 -0
  61. package/dist/views/components/externalService/external_service_with_datapolicy_check.hbs +0 -16
  62. package/dist/views_static/components/externalService/external_service_with_datapolicy_check.hbs +0 -16
  63. package/src/assets/fixtures/event/calendar/event_calendar.inc.json +0 -10
  64. package/src/assets/fixtures/event/calendar/event_calendar_event_teaser.json +0 -4
  65. package/src/assets/fixtures/event/calendar/event_calendar_footer.json +0 -14
  66. package/src/assets/fixtures/teaser/teaser_event_calendar_100_no_future_events.json +0 -24
  67. package/src/assets/fixtures/teaser/teaser_event_calendar_100_serif.json +0 -21
  68. package/src/stories/views/components/event/calendar/fixtures/event_calendar_event_teaser.json +0 -1
  69. package/src/stories/views/components/event/calendar/fixtures/event_calendar_footer.json +0 -1
  70. package/src/stories/views/components/externalService/external_service_with_datapolicy_check.hbs +0 -16
  71. package/src/stories/views/components/teaser/fixtures/teaser_event_calendar_100_no_future_events.json +0 -1
  72. package/src/stories/views/components/teaser/fixtures/teaser_event_calendar_100_serif.json +0 -1
  73. /package/dist/assets/js/components/{externalService → external-service}/createWahlErgebnisGemeinde.subfeature.js +0 -0
  74. /package/dist/assets/js/components/{externalService → external-service}/dataWrapperContentRefresher.subfeature.js +0 -0
  75. /package/dist/assets/js/components/{externalService → external-service}/dataWrapperNoResponsiveIframe.subfeature.js +0 -0
  76. /package/dist/assets/js/components/{externalService → external-service}/datapolicyCookie.subfeature.js +0 -0
  77. /package/dist/assets/js/components/{externalService → external-service}/externalServiceDs.feature.js +0 -0
  78. /package/dist/assets/js/components/{externalService → external-service}/globalSettingsCookie.subfeature.js +0 -0
  79. /package/dist/assets/js/components/{externalService → external-service}/trackingCookie.subfeature.js +0 -0
  80. /package/dist/views/components/{externalService → external-service}/components/data_policy_link.hbs +0 -0
  81. /package/dist/views/components/{externalService → external-service}/components/external_service_caption.hbs +0 -0
  82. /package/dist/views/components/{externalService → external-service}/components/external_service_form_checkbox.hbs +0 -0
  83. /package/dist/views/components/{externalService → external-service}/components/external_service_load_content_button.hbs +0 -0
  84. /package/dist/views/components/{externalService → external-service}/components/external_service_settings_button.hbs +0 -0
  85. /package/dist/views_static/components/{externalService → external-service}/components/data_policy_link.hbs +0 -0
  86. /package/dist/views_static/components/{externalService → external-service}/components/external_service_caption.hbs +0 -0
  87. /package/dist/views_static/components/{externalService → external-service}/components/external_service_form_checkbox.hbs +0 -0
  88. /package/dist/views_static/components/{externalService → external-service}/components/external_service_load_content_button.hbs +0 -0
  89. /package/dist/views_static/components/{externalService → external-service}/components/external_service_settings_button.hbs +0 -0
  90. /package/src/stories/views/components/{externalService → external-service}/components/data_policy_link.hbs +0 -0
  91. /package/src/stories/views/components/{externalService → external-service}/components/external_service_caption.hbs +0 -0
  92. /package/src/stories/views/components/{externalService → external-service}/components/external_service_form_checkbox.hbs +0 -0
  93. /package/src/stories/views/components/{externalService → external-service}/components/external_service_load_content_button.hbs +0 -0
  94. /package/src/stories/views/components/{externalService → external-service}/components/external_service_settings_button.hbs +0 -0
  95. /package/src/stories/views/components/{externalService → external-service}/createWahlErgebnisGemeinde.subfeature.js +0 -0
  96. /package/src/stories/views/components/{externalService → external-service}/dataWrapperContentRefresher.subfeature.js +0 -0
  97. /package/src/stories/views/components/{externalService → external-service}/dataWrapperNoResponsiveIframe.subfeature.js +0 -0
  98. /package/src/stories/views/components/{externalService → external-service}/datapolicyCookie.subfeature.js +0 -0
  99. /package/src/stories/views/components/{externalService → external-service}/externalServiceDs.feature.js +0 -0
  100. /package/src/stories/views/components/{externalService → external-service}/external_service.data.js +0 -0
  101. /package/src/stories/views/components/{externalService → external-service}/external_service.mdx +0 -0
  102. /package/src/stories/views/components/{externalService → external-service}/fixtures/external_service_with_datapolicy.json +0 -0
  103. /package/src/stories/views/components/{externalService → external-service}/globalSettingsCookie.subfeature.js +0 -0
  104. /package/src/stories/views/components/{externalService → external-service}/trackingCookie.subfeature.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ # v1.104.0 (Mon Oct 07 2024)
2
+
3
+ #### 🚀 Enhancement
4
+
5
+ - Feature/dpe 3325 [#1091](https://github.com/mumprod/hr-design-system-handlebars/pull/1091) ([@szuelch](https://github.com/szuelch))
6
+
7
+ #### Authors: 1
8
+
9
+ - [@szuelch](https://github.com/szuelch)
10
+
11
+ ---
12
+
13
+ # v1.103.10 (Fri Oct 04 2024)
14
+
15
+ #### 🐛 Bug Fix
16
+
17
+ - ✨ Send Form INIT DPE-3384 [#1090](https://github.com/mumprod/hr-design-system-handlebars/pull/1090) ([@vascoeduardo](https://github.com/vascoeduardo))
18
+
19
+ #### Authors: 1
20
+
21
+ - Vasco ([@vascoeduardo](https://github.com/vascoeduardo))
22
+
23
+ ---
24
+
1
25
  # v1.103.9 (Fri Oct 04 2024)
2
26
 
3
27
  #### 🐛 Bug Fix
@@ -1986,6 +1986,27 @@ article.indexTextDS .indexTextHighlighted .link {
1986
1986
  .animate-none {
1987
1987
  animation: none;
1988
1988
  }
1989
+ @keyframes shake {
1990
+
1991
+ 10%, 90% {
1992
+ transform: translate3d(-1px, 0, 0);
1993
+ }
1994
+
1995
+ 20%, 80% {
1996
+ transform: translate3d(2px, 0, 0);
1997
+ }
1998
+
1999
+ 30%, 50%, 70% {
2000
+ transform: translate3d(-4px, 0, 0);
2001
+ }
2002
+
2003
+ 40%, 60% {
2004
+ transform: translate3d(4px, 0, 0);
2005
+ }
2006
+ }
2007
+ .animate-shake {
2008
+ animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
2009
+ }
1989
2010
  @keyframes spin {
1990
2011
 
1991
2012
  to {
@@ -3478,7 +3499,7 @@ article.indexTextDS .indexTextHighlighted .link {
3478
3499
  border-bottom-color: var(--color-secondary-ds);
3479
3500
  }
3480
3501
  .counter-reset {
3481
- counter-reset: cnt1728027709494;
3502
+ counter-reset: cnt1728287587075;
3482
3503
  }
3483
3504
  .hyphens-auto {
3484
3505
  -webkit-hyphens: auto;
@@ -3886,7 +3907,7 @@ article.indexTextDS .indexTextHighlighted .link {
3886
3907
  --tw-ring-color: rgba(255, 255, 255, 0.5);
3887
3908
  }
3888
3909
  .-ordered {
3889
- counter-increment: cnt1728027709494 1;
3910
+ counter-increment: cnt1728287587075 1;
3890
3911
  }
3891
3912
  .-ordered::before {
3892
3913
  position: absolute;
@@ -3902,7 +3923,7 @@ article.indexTextDS .indexTextHighlighted .link {
3902
3923
  letter-spacing: .0125em;
3903
3924
  --tw-text-opacity: 1;
3904
3925
  color: rgba(0, 0, 0, var(--tw-text-opacity));
3905
- content: counter(cnt1728027709494);
3926
+ content: counter(cnt1728287587075);
3906
3927
  }
3907
3928
  /*! ****************************/
3908
3929
  /*! DataPolicy stuff */
@@ -1,4 +1,4 @@
1
- import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature';
1
+ import SettingsCookie from 'components/external-service/globalSettingsCookie.subfeature';
2
2
 
3
3
  const pianoErrorSecondLevelId = 99;
4
4
 
@@ -1,4 +1,4 @@
1
- import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature'
1
+ import SettingsCookie from 'components/external-service/globalSettingsCookie.subfeature'
2
2
  import { fireEvent, getJSONCookie, hr$, setJSONCookie, listen } from 'hrQuery'
3
3
  import { uxAction } from 'base/tracking/pianoHelper.subfeature'
4
4
 
@@ -22,7 +22,7 @@ const DataPolicySettings = function (context) {
22
22
 
23
23
  //Überprüfung ein Settings-Cookie da ist
24
24
  const checkForExistingCookies = function () {
25
-
25
+
26
26
  if (getJSONCookie('hrSettings')) {
27
27
  getAllToggleValuesFromSettings()
28
28
  }
@@ -31,16 +31,16 @@ const DataPolicySettings = function (context) {
31
31
  //Wenn kein Cookie vorhanden wird diese initial über die Checkbox "Dienst ist initial immer aktiviert (Whitelist)"
32
32
  //im Konfig-Dokument bestückt.
33
33
  for (var i = 0; i < toggleSwitches.length; ++i) {
34
- if (toggleSwitches[i].getAttribute('data-whitelist') == "true") {
35
- toggleSwitches[i].checked = true;
36
- }
37
- else{
38
- toggleSwitches[i].checked = false;
39
- }
40
- setAllToggleEventListeners(toggleSwitches[i]);
41
- initializeAllToggleEventListeners(i);
34
+ if (toggleSwitches[i].getAttribute('data-whitelist') == "true") {
35
+ toggleSwitches[i].checked = true;
36
+ }
37
+ else {
38
+ toggleSwitches[i].checked = false;
39
+ }
40
+ setAllToggleEventListeners(toggleSwitches[i]);
41
+ initializeAllToggleEventListeners(i);
42
42
  }
43
- changeProviderTitle();
43
+ changeProviderTitle();
44
44
  }
45
45
  }
46
46
 
@@ -62,39 +62,39 @@ const DataPolicySettings = function (context) {
62
62
  var id;
63
63
  console.log("Setze alle Settings-Regler")
64
64
  for (var i = 0; i < toggleSwitches.length; ++i) {
65
- id = toggleSwitches[i].id;
66
- if(settingsCookie.isSettingsCookieExistent(id)){
67
- console.log("Dienst "+ id + " ist im Cookie enthalten und hat den Wert " + settingsCookie.isSettingsCookieAccepted(id))
68
- if(settingsCookie.isSettingsCookieAccepted(id)) {
69
- console.log("Aktiviere den Toggle")
70
- toggleSwitches[i].checked = true;
71
- }
72
- else{
73
- console.log("Deaktiviere den Toggle")
74
- toggleSwitches[i].checked = false;
75
- }
76
- }
77
- else{
78
- console.log("Dienst "+ id + " ist im Cookie nicht enthalten, prüfe daher den Default")
79
- var whiteList = document.getElementById(id).getAttribute("data-whitelist")
80
- if(whiteList == 'true'){
81
- console.log("Ist per Default eingeschaltet")
82
- console.log("Aktiviere den Toggle")
83
- toggleSwitches[i].checked = true;
65
+ id = toggleSwitches[i].id;
66
+ if (settingsCookie.isSettingsCookieExistent(id)) {
67
+ console.log("Dienst " + id + " ist im Cookie enthalten und hat den Wert " + settingsCookie.isSettingsCookieAccepted(id))
68
+ if (settingsCookie.isSettingsCookieAccepted(id)) {
69
+ console.log("Aktiviere den Toggle")
70
+ toggleSwitches[i].checked = true;
71
+ }
72
+ else {
73
+ console.log("Deaktiviere den Toggle")
74
+ toggleSwitches[i].checked = false;
75
+ }
84
76
  }
85
- else{
86
- console.log("Ist per Default ausgeschaltet")
87
- console.log("Deaktiviere den Toggle")
88
- toggleSwitches[i].checked = false;
77
+ else {
78
+ console.log("Dienst " + id + " ist im Cookie nicht enthalten, prüfe daher den Default")
79
+ var whiteList = document.getElementById(id).getAttribute("data-whitelist")
80
+ if (whiteList == 'true') {
81
+ console.log("Ist per Default eingeschaltet")
82
+ console.log("Aktiviere den Toggle")
83
+ toggleSwitches[i].checked = true;
84
+ }
85
+ else {
86
+ console.log("Ist per Default ausgeschaltet")
87
+ console.log("Deaktiviere den Toggle")
88
+ toggleSwitches[i].checked = false;
89
+ }
90
+
89
91
  }
90
-
91
- }
92
- setAllToggleEventListeners(toggleSwitches[i]);
93
- initializeAllToggleEventListeners(i);
92
+ setAllToggleEventListeners(toggleSwitches[i]);
93
+ initializeAllToggleEventListeners(i);
94
94
  }
95
95
  toggleAllSwitch.checked = allTogglesExternalServiceChecked()
96
96
  }
97
-
97
+
98
98
  const initializeAllToggleEventListeners = function (serviceId) {
99
99
  listen(
100
100
  'hr:externalService-activate-' + toggleSwitches[serviceId].id,
@@ -1,7 +1,7 @@
1
1
  export default function inputHandler(element, errorMandatory, type, errorEmail, prefilledText = '') {
2
2
  return {
3
3
  [element]: prefilledText,
4
- valid: false,
4
+ valid: true,
5
5
  wasFocused: false,
6
6
  isFocused: false,
7
7
  validEmail: false,
@@ -1,6 +1,6 @@
1
1
  import { fireEvent, hr$, listen, loadScript } from 'hrQuery'
2
2
  import { uxAction } from 'base/tracking/pianoHelper.subfeature'
3
- import SettingsCookie from 'components/externalService/globalSettingsCookie.subfeature'
3
+ import SettingsCookie from 'components/external-service/globalSettingsCookie.subfeature'
4
4
 
5
5
  const ArdPlayerLoader = function (options, trackingData, rootElement) {
6
6
  'use strict'
@@ -8,7 +8,6 @@
8
8
  */
9
9
  const getSnapshotsTemplate = (args) => {
10
10
  const { hbsTemplates, args: snapshotsJson } = args
11
- console.log("SnapshotsJson First", snapshotsJson)
12
11
  const config = snapshotsJson.config || {}
13
12
  const renderAsGrid = undefined !== config.layout && "grid" === config.layout
14
13
  const renderSnapshotsWrapper = undefined !== config.renderSnapshotsWrapper ? config.renderSnapshotsWrapper : true
@@ -31,7 +30,6 @@ const getSnapshotsTemplate = (args) => {
31
30
  })
32
31
  template += snapshotsWrapperEnd
33
32
  } else {
34
- console.log("SnapshotsJson", snapshotsJson)
35
33
  const filteredSnapshots = Object.entries(snapshotsJson).filter(([key, value]) =>
36
34
  key !== "config" && (value.config === undefined || value.config.useAsSnapshot !== false)
37
35
  )
@@ -44,20 +42,19 @@ const getSnapshotsTemplate = (args) => {
44
42
 
45
43
  const renderSnapshots = (snapshots, hbsTemplates, defaultTemplate, defaultPath, renderSnapshotsWrapper) => {
46
44
  let template = ''
47
- console.log("Snapshots", snapshots)
48
45
  snapshots.forEach(([key, value]) => {
49
46
  const snapshotItemConfig = value.config || {}
50
- const renderSnapshotItemWrapper = undefined !== snapshotItemConfig.renderSnapshotItemWrapper ? snapshotItemConfig.renderSnapshotItemWrapper : true
47
+ const renderSnapshotItemWrapper = undefined !== snapshotItemConfig.renderSnapshotItemWrapper ? snapshotItemConfig.renderSnapshotItemWrapper : renderSnapshotsWrapper
51
48
  const path = snapshotItemConfig.path ? `${snapshotItemConfig.path}` : (defaultPath ? `${defaultPath}` : "args")
52
49
  const snapshotTemplateName = snapshotItemConfig.template || defaultTemplate || "no-template"
53
50
 
54
- if (renderSnapshotsWrapper && renderSnapshotItemWrapper) {
51
+ if (renderSnapshotItemWrapper) {
55
52
  template += `<div${snapshotItemConfig.css ? ` class="${snapshotItemConfig.css}"` : ''}>`
56
53
  }
57
54
 
58
55
  template += hbsTemplates[snapshotTemplateName](resolveObjectFromPath(path, value));
59
56
 
60
- if (renderSnapshotsWrapper && renderSnapshotItemWrapper) {
57
+ if (renderSnapshotItemWrapper) {
61
58
  template += '</div>';
62
59
  }
63
60
  })
@@ -1,5 +1,5 @@
1
1
  {{#with this.toModel.externalService}}
2
2
 
3
- {{> components/externalService/external_service }}
3
+ {{> components/external-service/external_service }}
4
4
 
5
5
  {{/with}}
@@ -5,15 +5,15 @@
5
5
  <div>
6
6
  <p class="pt-4 text-base font-copy">
7
7
  {{loca "ext_service_datapolicy_text" this.externalServiceConfig.externalServiceName}}
8
- {{~> components/externalService/components/data_policy_link ~}}
8
+ {{~> components/external-service/components/data_policy_link ~}}
9
9
  </p>
10
10
  <div class="pt-4">
11
- {{~> components/externalService/components/external_service_form_checkbox ~}}
11
+ {{~> components/external-service/components/external_service_form_checkbox ~}}
12
12
  </div>
13
13
  <div class="float-right pt-4">
14
14
  {{#with this}}
15
15
  <div class="inline-flex">
16
- {{~> components/externalService/components/external_service_settings_button _css="js-settings-inner-button"~}}
16
+ {{~> components/external-service/components/external_service_settings_button _css="js-settings-inner-button"~}}
17
17
  {{#*inline "htmlProperties"}}
18
18
  data-piano-tracking='{"label":"DSGVO-Overlay"}'
19
19
  data-a11y-dialog-show="datapolicy-settings-dialog"
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  {{/with}}
23
23
  <div class="inline-flex">
24
- {{~> components/externalService/components/external_service_load_content_button ~}}
24
+ {{~> components/external-service/components/external_service_load_content_button ~}}
25
25
  {{#*inline "htmlProperties"}}{{/inline}}
26
26
  </div>
27
27
  </div>
@@ -1,6 +1,6 @@
1
1
  {{#if this.externalServiceConfig.makeConfigurable}}
2
2
  <!-- Embedding via JS with DataPolicyCheck-->
3
- {{> components/externalService/external_service_with_datapolicy_check _isTeaser=_isTeaser}}
3
+ {{> components/external-service/external_service_with_datapolicy_check _isTeaser=_isTeaser}}
4
4
 
5
5
  {{else}}
6
6
 
@@ -20,7 +20,7 @@
20
20
  data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType": "{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": false,"whiteList": false,"iFrameConfig":{}}'>
21
21
  </div>
22
22
  {{/if}}
23
- {{~> components/externalService/components/external_service_caption ~}}
23
+ {{~> components/external-service/components/external_service_caption ~}}
24
24
  <span class="sr-only">{{loca "story_externalservice_outro_sr" }}</span>
25
25
  </div>
26
26
  {{/if}}
@@ -0,0 +1,19 @@
1
+ <div class="grid clear-both{{#unless _isTeaser}} mt-10{{/unless}}">
2
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_intro_sr" ~}}
3
+ <div class="c-externalService c-externalService__{{this.externalServiceConfig.externalServiceId}}{{#unless
4
+ this.fixedHeight }} -noFixedHeight{{/unless}} js-load"
5
+ data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType":"{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": true, "whiteList":{{this.externalServiceConfig.makeDatapolicyCheck}},"iFrameConfig": { {{~#if this.fixedHeight~}}
6
+ "fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"noResponsiveIframe":"{{{this.setResponsiveIframe}}}","webcomponent":"{{{this.setWebcomponent}}}"{{~#if this.setTimedReloadIframe}},"refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"{{~/if}} }}'>
7
+ {{~> components/external-service/components/external_service_data_policy ~}}
8
+ </div>
9
+ {{~> components/external-service/components/external_service_caption ~}}
10
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_outro_sr" ~}}
11
+ <div class="hidden js-content-settings-button">
12
+ <div class="float-right">
13
+ {{~> components/external-service/components/external_service_settings_button ~}}
14
+ </div>
15
+ </div>
16
+ </div>
17
+ {{~#if (isStorybook)~}}
18
+ <div id="{{this.externalServiceConfig.externalServiceId}}" data-whitelist="{{this.externalServiceConfig.makeDatapolicyCheck}}"></div>
19
+ {{/if}}
@@ -3,7 +3,7 @@
3
3
  <div class="flex items-center">
4
4
  <label class="order-2 cursor-pointer {{> components/button/utilities/button_base_classes}} {{> components/button/utilities/button_variation_classes _variant='primary'}} {{> components/button/utilities/button_dimension_classes _size='lg'}}">
5
5
  {{> components/base/image/icon _icon="send-ds" _addClass="w-5 h-5 fill-white dark:fill-text-dark "}}
6
- <input type="submit" class="pl-2 cursor-pointer" value="Absenden" />
6
+ <input type="submit" class="pl-2 cursor-pointer" value="Absenden" @click.prevent="clickHandler"/>
7
7
  </label>
8
8
 
9
9
  {{#> components/button/button _variant="tertiary"_size="lg" _css="order-1 mr-4" _type="reset"}}
@@ -1,4 +1,5 @@
1
- <div class="relative flex flex-col w-full mb-5 {{_wrapperClass}}"
1
+ <div class=" relative flex flex-col w-full mb-5 {{_wrapperClass}}"
2
+ :class="{'animate-shake': hideDescription() }"
2
3
  ax-load
3
4
  x-data="inputHandler('input{{nextRandom}}','{{_errorMandatory}}',{{#if _isEmail}}'email'{{else}}'{{_type}}'{{/if}},'{{_errorEmail}}','{{#if _formField.forHtmlAttribute}}{{_formField.forHtmlAttribute}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}')"
4
5
  x-ignore
@@ -7,9 +8,10 @@
7
8
  :class="{'border-blue-500': hideError(),'border-red-700': hideDescription() }"
8
9
  x-model="input{{getRandom}}"
9
10
  id="input{{getRandom}}"
11
+ x-bind:data-is-valid="valid ? 'true' : 'false'"
10
12
  {{#if _required}}
11
13
  @focus="isFocused = true;"
12
- @blur="wasFocused = true; isFocused=false"
14
+ @blur="wasFocused = true; isFocused=false; input{{getRandom}}.length > 0 ? valid = true : valid = false; validateEmail()"
13
15
  x-on:keyup ="input{{getRandom}}.length > 0 ? valid = true : valid = false; validateEmail()"
14
16
  {{/if}}
15
17
  type="{{#if _type}}{{_type}}{{/if}}"
@@ -1,11 +1,13 @@
1
- <div class="relative flex flex-col w-full mb-5" x-data="{ textarea{{nextRandom}}: '{{#if _formField.isValid}}{{{_formField.forHtmlContent}}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}' , valid: false, wasFocused: false, isFocused: false}">
1
+ <div class="relative flex flex-col w-full mb-5"
2
+ x-data="{ textarea{{nextRandom}}: '{{#if _formField.isValid}}{{{_formField.forHtmlContent}}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}' , valid: true, wasFocused: false, isFocused: false}"
3
+ :class="{'animate-shake': !valid && wasFocused && !isFocused }">
2
4
  <div class="w-full h-4 bg-white"></div>
3
5
  <textarea
4
6
  x-model="textarea{{getRandom}}"
5
7
  id="textarea{{getRandom}}"
6
8
  {{#if _required}}
7
9
  @focus="isFocused = true"
8
- @blur="wasFocused = true; isFocused=false"
10
+ @blur="wasFocused = true; isFocused=false; textarea{{getRandom}}.length > 0 ? valid = true : valid = false"
9
11
  x-on:keyup ="textarea{{getRandom}}.length > 0 ? valid = true : valid = false"
10
12
  {{/if}}
11
13
  value=""
@@ -6,11 +6,59 @@
6
6
  {{this.title}}
7
7
  </h3>
8
8
 
9
- <form class="relative flex flex-col justify-center overflow-hidden group" id="form--{{nextRandom}}" action="{{this.url}}" method="post" enctype="{{if this.isMultipart 'multipart/form-data' 'application/x-www-form-urlencoded'}}" accept-charset="utf-8" >
9
+ <form x-data="contactForm()"
10
+
11
+ @submit.prevent="submitData"
12
+ x-ref="contactFormRef"
13
+ class="relative flex flex-col justify-center overflow-hidden group"
14
+ id="form--{{nextRandom}}"
15
+ action="{{this.url}}"
16
+ method="post"
17
+ enctype="{{if this.isMultipart 'multipart/form-data' 'application/x-www-form-urlencoded'}}"
18
+ accept-charset="utf-8" >
10
19
  {{> components/forms/fields }}
11
20
 
12
21
  {{> components/forms/controls }}
13
22
  </form>
23
+ <script>
24
+ function contactForm() {
25
+ return {
26
+ formData: {
27
+ name: '',
28
+ email: '',
29
+ message: ''
30
+ },
31
+ clickHandler() {
32
+ console.log('check for Error ');
33
+ const form = this.$refs.contactFormRef;
34
+ const formData = new FormData(form);
35
+ const fields = Array.from(form.elements); // Array of all form fields
36
+
37
+ // Loop through each field, focus it, blur it, and serialize the data
38
+ fields.forEach((field) => {
39
+ if (field.type !== 'submit') { // Skip the submit button
40
+ field.focus(); // Focus the field
41
+ field.blur(); // Immediately unfocus (blur) the field
42
+ }
43
+ });
44
+ if(form.reportValidity()){
45
+ this.submitData();
46
+ }
47
+
48
+ },
49
+ submitData() {
50
+ const formData = new FormData(this.$refs.contactFormRef);
51
+ // Convert the FormData to a serialized string
52
+ const serializedData = Array.from(formData.entries())
53
+ .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
54
+ .join('&');
55
+
56
+ // Log the serialized form data
57
+ console.log('DATA: ' + serializedData);
58
+ }
59
+ }
60
+ }
61
+ </script>
14
62
  {{/components/forms/backgroundBox }}
15
63
  {{~else~}}
16
64
  {{> content/webform/components/webform _addClass="print:hidden copytext__clearBox marginTrailer--m"}}
@@ -1,6 +1,6 @@
1
1
  <div class="grid-cols-12 col-span-12 px-5 sm:px-0{{~inline-switch this.teasersize '["50"]' '[" md:col-span-6",""]'}}">
2
2
 
3
- {{> components/externalService/external_service _isTeaser="true"}}
3
+ {{> components/external-service/external_service _isTeaser="true"}}
4
4
 
5
5
  {{> components/teaser/components/teaser_featured_content _size=this.realTeaserSize}}
6
6
 
@@ -1,5 +1,5 @@
1
1
  {{#with this.toModel.externalService}}
2
2
 
3
- {{> components/externalService/external_service }}
3
+ {{> components/external-service/external_service }}
4
4
 
5
5
  {{/with}}
@@ -5,15 +5,15 @@
5
5
  <div>
6
6
  <p class="pt-4 text-base font-copy">
7
7
  {{loca "ext_service_datapolicy_text" this.externalServiceConfig.externalServiceName}}
8
- {{~> components/externalService/components/data_policy_link ~}}
8
+ {{~> components/external-service/components/data_policy_link ~}}
9
9
  </p>
10
10
  <div class="pt-4">
11
- {{~> components/externalService/components/external_service_form_checkbox ~}}
11
+ {{~> components/external-service/components/external_service_form_checkbox ~}}
12
12
  </div>
13
13
  <div class="float-right pt-4">
14
14
  {{#with this}}
15
15
  <div class="inline-flex">
16
- {{~> components/externalService/components/external_service_settings_button _css="js-settings-inner-button"~}}
16
+ {{~> components/external-service/components/external_service_settings_button _css="js-settings-inner-button"~}}
17
17
  {{#*inline "htmlProperties"}}
18
18
  data-piano-tracking='{"label":"DSGVO-Overlay"}'
19
19
  data-a11y-dialog-show="datapolicy-settings-dialog"
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  {{/with}}
23
23
  <div class="inline-flex">
24
- {{~> components/externalService/components/external_service_load_content_button ~}}
24
+ {{~> components/external-service/components/external_service_load_content_button ~}}
25
25
  {{#*inline "htmlProperties"}}{{/inline}}
26
26
  </div>
27
27
  </div>
@@ -1,6 +1,6 @@
1
1
  {{#if this.externalServiceConfig.makeConfigurable}}
2
2
  <!-- Embedding via JS with DataPolicyCheck-->
3
- {{> components/externalService/external_service_with_datapolicy_check _isTeaser=_isTeaser}}
3
+ {{> components/external-service/external_service_with_datapolicy_check _isTeaser=_isTeaser}}
4
4
 
5
5
  {{else}}
6
6
 
@@ -20,7 +20,7 @@
20
20
  data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType": "{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": false,"whiteList": false,"iFrameConfig":{}}'>
21
21
  </div>
22
22
  {{/if}}
23
- {{~> components/externalService/components/external_service_caption ~}}
23
+ {{~> components/external-service/components/external_service_caption ~}}
24
24
  <span class="sr-only">{{loca "story_externalservice_outro_sr" }}</span>
25
25
  </div>
26
26
  {{/if}}
@@ -0,0 +1,19 @@
1
+ <div class="grid clear-both{{#unless _isTeaser}} mt-10{{/unless}}">
2
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_intro_sr" ~}}
3
+ <div class="c-externalService c-externalService__{{this.externalServiceConfig.externalServiceId}}{{#unless
4
+ this.fixedHeight }} -noFixedHeight{{/unless}} js-load"
5
+ data-hr-external-service-ds='{"id":"{{this.externalServiceConfig.externalServiceId}}","embedCode":"{{this.serviceUrl}}","embedType":"{{this.externalServiceConfig.externalServiceEmbedType}}","dataPolicyCheck": true, "whiteList":{{this.externalServiceConfig.makeDatapolicyCheck}},"iFrameConfig": { {{~#if this.fixedHeight~}}
6
+ "fixedHeight":"{{this.fixedHeight}}"{{~else~}}{{~#if this.aspectRatio}}"aspectRatio":"{{this.aspectRatio}}"{{~else~}}"aspectRatio":"16x9"{{/if}}{{~/if}},"noResponsiveIframe":"{{{this.setResponsiveIframe}}}","webcomponent":"{{{this.setWebcomponent}}}"{{~#if this.setTimedReloadIframe}},"refreshContent":"{{{this.setTimedReloadIframe}}}","refreshIntervall":"{{this.setTimeForReload}}"{{~/if}} }}'>
7
+ {{~> components/external-service/components/external_service_data_policy ~}}
8
+ </div>
9
+ {{~> components/external-service/components/external_service_caption ~}}
10
+ {{~> components/base/a11y/hiddenText _locaTag="story_externalservice_outro_sr" ~}}
11
+ <div class="hidden js-content-settings-button">
12
+ <div class="float-right">
13
+ {{~> components/external-service/components/external_service_settings_button ~}}
14
+ </div>
15
+ </div>
16
+ </div>
17
+ {{~#if (isStorybook)~}}
18
+ <div id="{{this.externalServiceConfig.externalServiceId}}" data-whitelist="{{this.externalServiceConfig.makeDatapolicyCheck}}"></div>
19
+ {{/if}}
@@ -3,7 +3,7 @@
3
3
  <div class="flex items-center">
4
4
  <label class="order-2 cursor-pointer {{> components/button/utilities/button_base_classes}} {{> components/button/utilities/button_variation_classes _variant='primary'}} {{> components/button/utilities/button_dimension_classes _size='lg'}}">
5
5
  {{> components/base/image/icon _icon="send-ds" _addClass="w-5 h-5 fill-white dark:fill-text-dark "}}
6
- <input type="submit" class="pl-2 cursor-pointer" value="Absenden" />
6
+ <input type="submit" class="pl-2 cursor-pointer" value="Absenden" @click.prevent="clickHandler"/>
7
7
  </label>
8
8
 
9
9
  {{#> components/button/button _variant="tertiary"_size="lg" _css="order-1 mr-4" _type="reset"}}
@@ -1,4 +1,5 @@
1
- <div class="relative flex flex-col w-full mb-5 {{_wrapperClass}}"
1
+ <div class=" relative flex flex-col w-full mb-5 {{_wrapperClass}}"
2
+ :class="{'animate-shake': hideDescription() }"
2
3
  ax-load
3
4
  x-data="inputHandler('input{{nextRandom}}','{{_errorMandatory}}',{{#if _isEmail}}'email'{{else}}'{{_type}}'{{/if}},'{{_errorEmail}}','{{#if _formField.forHtmlAttribute}}{{_formField.forHtmlAttribute}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}')"
4
5
  x-ignore
@@ -7,9 +8,10 @@
7
8
  :class="{'border-blue-500': hideError(),'border-red-700': hideDescription() }"
8
9
  x-model="input{{getRandom}}"
9
10
  id="input{{getRandom}}"
11
+ x-bind:data-is-valid="valid ? 'true' : 'false'"
10
12
  {{#if _required}}
11
13
  @focus="isFocused = true;"
12
- @blur="wasFocused = true; isFocused=false"
14
+ @blur="wasFocused = true; isFocused=false; input{{getRandom}}.length > 0 ? valid = true : valid = false; validateEmail()"
13
15
  x-on:keyup ="input{{getRandom}}.length > 0 ? valid = true : valid = false; validateEmail()"
14
16
  {{/if}}
15
17
  type="{{#if _type}}{{_type}}{{/if}}"
@@ -1,11 +1,13 @@
1
- <div class="relative flex flex-col w-full mb-5" x-data="{ textarea{{nextRandom}}: '{{#if _formField.isValid}}{{{_formField.forHtmlContent}}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}' , valid: false, wasFocused: false, isFocused: false}">
1
+ <div class="relative flex flex-col w-full mb-5"
2
+ x-data="{ textarea{{nextRandom}}: '{{#if _formField.isValid}}{{{_formField.forHtmlContent}}}{{else}}{{#if _value}}{{_value}}{{else}}{{_defaultValue}}{{/if}}{{/if}}' , valid: true, wasFocused: false, isFocused: false}"
3
+ :class="{'animate-shake': !valid && wasFocused && !isFocused }">
2
4
  <div class="w-full h-4 bg-white"></div>
3
5
  <textarea
4
6
  x-model="textarea{{getRandom}}"
5
7
  id="textarea{{getRandom}}"
6
8
  {{#if _required}}
7
9
  @focus="isFocused = true"
8
- @blur="wasFocused = true; isFocused=false"
10
+ @blur="wasFocused = true; isFocused=false; textarea{{getRandom}}.length > 0 ? valid = true : valid = false"
9
11
  x-on:keyup ="textarea{{getRandom}}.length > 0 ? valid = true : valid = false"
10
12
  {{/if}}
11
13
  value=""
@@ -6,11 +6,59 @@
6
6
  {{this.title}}
7
7
  </h3>
8
8
 
9
- <form class="relative flex flex-col justify-center overflow-hidden group" id="form--{{nextRandom}}" action="{{this.url}}" method="post" enctype="{{if this.isMultipart 'multipart/form-data' 'application/x-www-form-urlencoded'}}" accept-charset="utf-8" >
9
+ <form x-data="contactForm()"
10
+
11
+ @submit.prevent="submitData"
12
+ x-ref="contactFormRef"
13
+ class="relative flex flex-col justify-center overflow-hidden group"
14
+ id="form--{{nextRandom}}"
15
+ action="{{this.url}}"
16
+ method="post"
17
+ enctype="{{if this.isMultipart 'multipart/form-data' 'application/x-www-form-urlencoded'}}"
18
+ accept-charset="utf-8" >
10
19
  {{> components/forms/fields }}
11
20
 
12
21
  {{> components/forms/controls }}
13
22
  </form>
23
+ <script>
24
+ function contactForm() {
25
+ return {
26
+ formData: {
27
+ name: '',
28
+ email: '',
29
+ message: ''
30
+ },
31
+ clickHandler() {
32
+ console.log('check for Error ');
33
+ const form = this.$refs.contactFormRef;
34
+ const formData = new FormData(form);
35
+ const fields = Array.from(form.elements); // Array of all form fields
36
+
37
+ // Loop through each field, focus it, blur it, and serialize the data
38
+ fields.forEach((field) => {
39
+ if (field.type !== 'submit') { // Skip the submit button
40
+ field.focus(); // Focus the field
41
+ field.blur(); // Immediately unfocus (blur) the field
42
+ }
43
+ });
44
+ if(form.reportValidity()){
45
+ this.submitData();
46
+ }
47
+
48
+ },
49
+ submitData() {
50
+ const formData = new FormData(this.$refs.contactFormRef);
51
+ // Convert the FormData to a serialized string
52
+ const serializedData = Array.from(formData.entries())
53
+ .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
54
+ .join('&');
55
+
56
+ // Log the serialized form data
57
+ console.log('DATA: ' + serializedData);
58
+ }
59
+ }
60
+ }
61
+ </script>
14
62
  {{/components/forms/backgroundBox }}
15
63
  {{~else~}}
16
64
  {{> content/webform/components/webform _addClass="print:hidden copytext__clearBox marginTrailer--m"}}