@oiz/stzh-components 3.2.0 → 3.3.0-beta1

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 (289) hide show
  1. package/dist/cjs/{app-globals-d07dad99.js → app-globals-c314a0a4.js} +2 -2
  2. package/dist/cjs/{app-globals-d07dad99.js.map → app-globals-c314a0a4.js.map} +1 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/stzh-accordion_3.cjs.entry.js +1 -1
  5. package/dist/cjs/stzh-actions.cjs.entry.js +1 -1
  6. package/dist/cjs/stzh-app-bar.cjs.entry.js +1 -1
  7. package/dist/cjs/stzh-appointments.cjs.entry.js +10 -5
  8. package/dist/cjs/stzh-appointments.cjs.entry.js.map +1 -1
  9. package/dist/cjs/stzh-audio.cjs.entry.js +1 -1
  10. package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
  11. package/dist/cjs/stzh-card-navigation.cjs.entry.js +1 -1
  12. package/dist/cjs/stzh-card-searchresult.cjs.entry.js +1 -1
  13. package/dist/cjs/stzh-card-superteaser.cjs.entry.js +1 -1
  14. package/dist/cjs/stzh-card_2.cjs.entry.js +1 -1
  15. package/dist/cjs/stzh-carousel.cjs.entry.js +1 -1
  16. package/dist/cjs/stzh-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/stzh-checkboxgroup.cjs.entry.js +8 -2
  18. package/dist/cjs/stzh-checkboxgroup.cjs.entry.js.map +1 -1
  19. package/dist/cjs/stzh-components.cjs.js +2 -2
  20. package/dist/cjs/stzh-contact-cv.cjs.entry.js +1 -1
  21. package/dist/cjs/stzh-contact.cjs.entry.js +1 -1
  22. package/dist/cjs/stzh-cspace.cjs.entry.js +1 -1
  23. package/dist/cjs/stzh-cta.cjs.entry.js +1 -1
  24. package/dist/cjs/stzh-datatable.cjs.entry.js +1 -1
  25. package/dist/cjs/stzh-datepicker_3.cjs.entry.js +8 -2
  26. package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
  27. package/dist/cjs/stzh-daterange.cjs.entry.js +1 -1
  28. package/dist/cjs/stzh-details.cjs.entry.js +1 -1
  29. package/dist/cjs/stzh-dialog.cjs.entry.js +1 -1
  30. package/dist/cjs/stzh-disturber.cjs.entry.js +1 -1
  31. package/dist/cjs/stzh-dropdown.cjs.entry.js +2 -2
  32. package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
  33. package/dist/cjs/stzh-eventinfo.cjs.entry.js +1 -1
  34. package/dist/cjs/stzh-figure.cjs.entry.js +1 -1
  35. package/dist/cjs/stzh-footer.cjs.entry.js +1 -1
  36. package/dist/cjs/stzh-ghettobox_3.cjs.entry.js +1 -1
  37. package/dist/cjs/stzh-header.cjs.entry.js +1 -1
  38. package/dist/cjs/stzh-iframe.cjs.entry.js +1 -1
  39. package/dist/cjs/stzh-input.cjs.entry.js +1 -1
  40. package/dist/cjs/stzh-link.cjs.entry.js +1 -1
  41. package/dist/cjs/stzh-menu_2.cjs.entry.js +1 -1
  42. package/dist/cjs/stzh-pagecontent.cjs.entry.js +1 -1
  43. package/dist/cjs/stzh-pagetitle-hero.cjs.entry.js +1 -1
  44. package/dist/cjs/stzh-pagetitle-home.cjs.entry.js +1 -1
  45. package/dist/cjs/stzh-pagetitle.cjs.entry.js +1 -1
  46. package/dist/cjs/stzh-pi-content-navigation.cjs.entry.js +1 -1
  47. package/dist/cjs/stzh-pi-pagetitle.cjs.entry.js +1 -1
  48. package/dist/cjs/stzh-pi-teaser.cjs.entry.js +1 -1
  49. package/dist/cjs/stzh-popover_2.cjs.entry.js +5 -2
  50. package/dist/cjs/stzh-popover_2.cjs.entry.js.map +1 -1
  51. package/dist/cjs/stzh-print_2.cjs.entry.js +1 -1
  52. package/dist/cjs/stzh-readspeaker.cjs.entry.js +1 -1
  53. package/dist/cjs/stzh-scrollup.cjs.entry.js +1 -1
  54. package/dist/cjs/stzh-search.cjs.entry.js +1 -1
  55. package/dist/cjs/stzh-sticky-actions.cjs.entry.js +1 -1
  56. package/dist/cjs/stzh-sticky.cjs.entry.js +1 -1
  57. package/dist/cjs/stzh-table.cjs.entry.js +1 -1
  58. package/dist/cjs/stzh-textandimage.cjs.entry.js +1 -1
  59. package/dist/cjs/stzh-timeline-item.cjs.entry.js +1 -1
  60. package/dist/cjs/stzh-toast.cjs.entry.js +1 -1
  61. package/dist/cjs/stzh-toggle.cjs.entry.js +1 -1
  62. package/dist/cjs/stzh-tooltip.cjs.entry.js +1 -1
  63. package/dist/cjs/stzh-twocolumns.cjs.entry.js +1 -1
  64. package/dist/cjs/stzh-upload.cjs.entry.js +1 -1
  65. package/dist/cjs/{utils-d091c010.js → utils-475fb329.js} +2 -2
  66. package/dist/cjs/{utils-d091c010.js.map → utils-475fb329.js.map} +1 -1
  67. package/dist/collection/assets/media/icons/mono/file-add.svg +1 -0
  68. package/dist/collection/assets/media/icons/mono/send-plane.svg +1 -0
  69. package/dist/collection/assets/meta/icons-preview.html +10 -0
  70. package/dist/collection/components/stzh-appointments/stzh-appointments.js +27 -4
  71. package/dist/collection/components/stzh-appointments/stzh-appointments.js.map +1 -1
  72. package/dist/collection/components/stzh-appointments/stzh-appointments.stories.js +9 -0
  73. package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js +7 -1
  74. package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js.map +1 -1
  75. package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +9 -6
  76. package/dist/collection/components/stzh-popover/stzh-popover.js +4 -1
  77. package/dist/collection/components/stzh-popover/stzh-popover.js.map +1 -1
  78. package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.js +7 -1
  79. package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.js.map +1 -1
  80. package/dist/collection/utils/utils.js +1 -1
  81. package/dist/collection/utils/utils.js.map +1 -1
  82. package/dist/components/index.js +1 -1
  83. package/dist/components/stzh-appointments.js +10 -4
  84. package/dist/components/stzh-appointments.js.map +1 -1
  85. package/dist/components/stzh-checkboxgroup.js +7 -1
  86. package/dist/components/stzh-checkboxgroup.js.map +1 -1
  87. package/dist/components/stzh-dropdown2.js +1 -1
  88. package/dist/components/stzh-dropdown2.js.map +1 -1
  89. package/dist/components/stzh-popover2.js +4 -1
  90. package/dist/components/stzh-popover2.js.map +1 -1
  91. package/dist/components/stzh-radiogroup2.js +7 -1
  92. package/dist/components/stzh-radiogroup2.js.map +1 -1
  93. package/dist/components/utils.js +1 -1
  94. package/dist/components/utils.js.map +1 -1
  95. package/dist/esm/{app-globals-b0bdc495.js → app-globals-b82e4e9d.js} +2 -2
  96. package/dist/esm/{app-globals-b0bdc495.js.map → app-globals-b82e4e9d.js.map} +1 -1
  97. package/dist/esm/loader.js +2 -2
  98. package/dist/esm/stzh-accordion_3.entry.js +1 -1
  99. package/dist/esm/stzh-actions.entry.js +1 -1
  100. package/dist/esm/stzh-app-bar.entry.js +1 -1
  101. package/dist/esm/stzh-appointments.entry.js +10 -5
  102. package/dist/esm/stzh-appointments.entry.js.map +1 -1
  103. package/dist/esm/stzh-audio.entry.js +1 -1
  104. package/dist/esm/stzh-badge_3.entry.js +1 -1
  105. package/dist/esm/stzh-card-navigation.entry.js +1 -1
  106. package/dist/esm/stzh-card-searchresult.entry.js +1 -1
  107. package/dist/esm/stzh-card-superteaser.entry.js +1 -1
  108. package/dist/esm/stzh-card_2.entry.js +1 -1
  109. package/dist/esm/stzh-carousel.entry.js +1 -1
  110. package/dist/esm/stzh-checkbox.entry.js +1 -1
  111. package/dist/esm/stzh-checkboxgroup.entry.js +8 -2
  112. package/dist/esm/stzh-checkboxgroup.entry.js.map +1 -1
  113. package/dist/esm/stzh-components.js +2 -2
  114. package/dist/esm/stzh-contact-cv.entry.js +1 -1
  115. package/dist/esm/stzh-contact.entry.js +1 -1
  116. package/dist/esm/stzh-cspace.entry.js +1 -1
  117. package/dist/esm/stzh-cta.entry.js +1 -1
  118. package/dist/esm/stzh-datatable.entry.js +1 -1
  119. package/dist/esm/stzh-datepicker_3.entry.js +8 -2
  120. package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
  121. package/dist/esm/stzh-daterange.entry.js +1 -1
  122. package/dist/esm/stzh-details.entry.js +1 -1
  123. package/dist/esm/stzh-dialog.entry.js +1 -1
  124. package/dist/esm/stzh-disturber.entry.js +1 -1
  125. package/dist/esm/stzh-dropdown.entry.js +2 -2
  126. package/dist/esm/stzh-dropdown.entry.js.map +1 -1
  127. package/dist/esm/stzh-eventinfo.entry.js +1 -1
  128. package/dist/esm/stzh-figure.entry.js +1 -1
  129. package/dist/esm/stzh-footer.entry.js +1 -1
  130. package/dist/esm/stzh-ghettobox_3.entry.js +1 -1
  131. package/dist/esm/stzh-header.entry.js +1 -1
  132. package/dist/esm/stzh-iframe.entry.js +1 -1
  133. package/dist/esm/stzh-input.entry.js +1 -1
  134. package/dist/esm/stzh-link.entry.js +1 -1
  135. package/dist/esm/stzh-menu_2.entry.js +1 -1
  136. package/dist/esm/stzh-pagecontent.entry.js +1 -1
  137. package/dist/esm/stzh-pagetitle-hero.entry.js +1 -1
  138. package/dist/esm/stzh-pagetitle-home.entry.js +1 -1
  139. package/dist/esm/stzh-pagetitle.entry.js +1 -1
  140. package/dist/esm/stzh-pi-content-navigation.entry.js +1 -1
  141. package/dist/esm/stzh-pi-pagetitle.entry.js +1 -1
  142. package/dist/esm/stzh-pi-teaser.entry.js +1 -1
  143. package/dist/esm/stzh-popover_2.entry.js +5 -2
  144. package/dist/esm/stzh-popover_2.entry.js.map +1 -1
  145. package/dist/esm/stzh-print_2.entry.js +1 -1
  146. package/dist/esm/stzh-readspeaker.entry.js +1 -1
  147. package/dist/esm/stzh-scrollup.entry.js +1 -1
  148. package/dist/esm/stzh-search.entry.js +1 -1
  149. package/dist/esm/stzh-sticky-actions.entry.js +1 -1
  150. package/dist/esm/stzh-sticky.entry.js +1 -1
  151. package/dist/esm/stzh-table.entry.js +1 -1
  152. package/dist/esm/stzh-textandimage.entry.js +1 -1
  153. package/dist/esm/stzh-timeline-item.entry.js +1 -1
  154. package/dist/esm/stzh-toast.entry.js +1 -1
  155. package/dist/esm/stzh-toggle.entry.js +1 -1
  156. package/dist/esm/stzh-tooltip.entry.js +1 -1
  157. package/dist/esm/stzh-twocolumns.entry.js +1 -1
  158. package/dist/esm/stzh-upload.entry.js +1 -1
  159. package/dist/esm/{utils-90658cfe.js → utils-4f9b3f37.js} +2 -2
  160. package/dist/esm/{utils-90658cfe.js.map → utils-4f9b3f37.js.map} +1 -1
  161. package/dist/stzh-components/assets/media/icons/mono/file-add.svg +1 -0
  162. package/dist/stzh-components/assets/media/icons/mono/send-plane.svg +1 -0
  163. package/dist/stzh-components/assets/meta/icons-preview.html +10 -0
  164. package/dist/stzh-components/{p-ab5ee55b.entry.js → p-04b2db82.entry.js} +2 -2
  165. package/dist/stzh-components/{p-0b15d79b.entry.js → p-0a26c99e.entry.js} +2 -2
  166. package/dist/stzh-components/{p-346d2f3d.entry.js → p-0da740fe.entry.js} +2 -2
  167. package/dist/stzh-components/{p-b397337c.entry.js → p-12d0d651.entry.js} +2 -2
  168. package/dist/stzh-components/{p-87f3052b.entry.js → p-132985b6.entry.js} +2 -2
  169. package/dist/stzh-components/{p-8273e37d.entry.js → p-17ede8f9.entry.js} +2 -2
  170. package/dist/stzh-components/{p-d46bbc8c.entry.js → p-1d9ba00c.entry.js} +2 -2
  171. package/dist/stzh-components/{p-63c76fd5.entry.js → p-1ecf4e9c.entry.js} +2 -2
  172. package/dist/stzh-components/{p-30a522e0.entry.js → p-231c5725.entry.js} +2 -2
  173. package/dist/stzh-components/{p-bfe8d5cc.entry.js → p-23881aac.entry.js} +2 -2
  174. package/dist/stzh-components/{p-82c53e4f.entry.js → p-24feb79f.entry.js} +2 -2
  175. package/dist/stzh-components/p-24feb79f.entry.js.map +1 -0
  176. package/dist/stzh-components/{p-d0ecdd5b.entry.js → p-287f518f.entry.js} +2 -2
  177. package/dist/stzh-components/{p-90772ec6.entry.js → p-288fd6f7.entry.js} +2 -2
  178. package/dist/stzh-components/{p-d48ecb2f.entry.js → p-3d3b7e7e.entry.js} +2 -2
  179. package/dist/stzh-components/{p-585551c1.entry.js → p-40181f45.entry.js} +2 -2
  180. package/dist/stzh-components/{p-12bffe97.entry.js → p-4303e779.entry.js} +3 -3
  181. package/dist/stzh-components/{p-12bffe97.entry.js.map → p-4303e779.entry.js.map} +1 -1
  182. package/dist/stzh-components/{p-85143b35.entry.js → p-4658be2c.entry.js} +2 -2
  183. package/dist/stzh-components/{p-4b0cb255.entry.js → p-50c2a221.entry.js} +2 -2
  184. package/dist/stzh-components/{p-67e61035.entry.js → p-535c5b7e.entry.js} +2 -2
  185. package/dist/stzh-components/{p-9c1b3929.entry.js → p-6200ab32.entry.js} +2 -2
  186. package/dist/stzh-components/{p-8a82bf60.entry.js → p-62990cff.entry.js} +2 -2
  187. package/dist/stzh-components/{p-32cb5b94.entry.js → p-68eb6a0f.entry.js} +2 -2
  188. package/dist/stzh-components/{p-24ea178a.entry.js → p-693b30c3.entry.js} +2 -2
  189. package/dist/stzh-components/p-69b647b4.entry.js +2 -0
  190. package/dist/stzh-components/{p-ce6dbd52.entry.js.map → p-69b647b4.entry.js.map} +1 -1
  191. package/dist/stzh-components/{p-b03f41c3.entry.js → p-6ccf25d4.entry.js} +2 -2
  192. package/dist/stzh-components/{p-bdff55a6.entry.js → p-6e29bc61.entry.js} +2 -2
  193. package/dist/stzh-components/{p-29c1cb5c.entry.js → p-70163fe3.entry.js} +2 -2
  194. package/dist/stzh-components/{p-13cd7748.entry.js → p-7d7ea996.entry.js} +2 -2
  195. package/dist/stzh-components/{p-9bc12eff.entry.js → p-8105fb2b.entry.js} +2 -2
  196. package/dist/stzh-components/{p-aa3e4203.entry.js → p-8768408c.entry.js} +2 -2
  197. package/dist/stzh-components/{p-09480ffe.entry.js → p-9150836d.entry.js} +2 -2
  198. package/dist/stzh-components/{p-3261eab4.entry.js → p-985590d7.entry.js} +2 -2
  199. package/dist/stzh-components/{p-ba716237.entry.js → p-9cd5463f.entry.js} +2 -2
  200. package/dist/stzh-components/{p-995bee31.entry.js → p-9cdd5e6f.entry.js} +2 -2
  201. package/dist/stzh-components/{p-f18978b5.entry.js → p-9eee36de.entry.js} +2 -2
  202. package/dist/stzh-components/{p-d7f1ed07.entry.js → p-a541744d.entry.js} +2 -2
  203. package/dist/stzh-components/{p-2812752a.entry.js → p-a77b49cb.entry.js} +2 -2
  204. package/dist/stzh-components/{p-346f8661.entry.js → p-a85458b6.entry.js} +2 -2
  205. package/dist/stzh-components/{p-0b0c7cb8.entry.js → p-b509dedd.entry.js} +2 -2
  206. package/dist/stzh-components/{p-b273f95c.entry.js → p-b608bf1a.entry.js} +2 -2
  207. package/dist/stzh-components/{p-1cbf5c84.entry.js → p-b62c870a.entry.js} +2 -2
  208. package/dist/stzh-components/{p-1cbf5c84.entry.js.map → p-b62c870a.entry.js.map} +1 -1
  209. package/dist/stzh-components/{p-6fffe2c8.entry.js → p-c4383f33.entry.js} +2 -2
  210. package/dist/stzh-components/{p-9e4f0532.entry.js → p-c533a50b.entry.js} +2 -2
  211. package/dist/stzh-components/{p-1c75b53f.entry.js → p-c9265a65.entry.js} +2 -2
  212. package/dist/stzh-components/{p-21f7064d.entry.js → p-d058fc1e.entry.js} +2 -2
  213. package/dist/stzh-components/{p-513b7fcd.entry.js → p-d1688313.entry.js} +2 -2
  214. package/dist/stzh-components/{p-ffbb7594.entry.js → p-d1aa8602.entry.js} +2 -2
  215. package/dist/stzh-components/{p-7b14ef7a.entry.js → p-d5e84340.entry.js} +2 -2
  216. package/dist/stzh-components/{p-e30a5acc.js → p-d789f265.js} +2 -2
  217. package/dist/stzh-components/p-d789f265.js.map +1 -0
  218. package/dist/stzh-components/p-d869745a.js +2 -0
  219. package/dist/stzh-components/{p-6e49f741.js.map → p-d869745a.js.map} +1 -1
  220. package/dist/stzh-components/{p-d7697cf8.entry.js → p-db46a3bf.entry.js} +2 -2
  221. package/dist/stzh-components/{p-16a2675e.entry.js → p-e04c7525.entry.js} +2 -2
  222. package/dist/stzh-components/{p-6e0c8764.entry.js → p-e60c4497.entry.js} +2 -2
  223. package/dist/stzh-components/p-e9933daa.entry.js +2 -0
  224. package/dist/stzh-components/p-e9933daa.entry.js.map +1 -0
  225. package/dist/stzh-components/{p-a249f3f6.entry.js → p-ee2401d8.entry.js} +2 -2
  226. package/dist/stzh-components/{p-f34720e2.entry.js → p-f0cf0932.entry.js} +2 -2
  227. package/dist/stzh-components/{p-c3816fd3.entry.js → p-fb077fd5.entry.js} +2 -2
  228. package/dist/stzh-components/stzh-components.esm.js +1 -1
  229. package/dist/stzh-components/stzh-components.esm.js.map +1 -1
  230. package/dist/types/components/stzh-appointments/stzh-appointments.d.ts +2 -0
  231. package/dist/types/components.d.ts +8 -0
  232. package/dist/vscode-data.json +5 -1
  233. package/package.json +1 -1
  234. package/dist/stzh-components/p-6e49f741.js +0 -2
  235. package/dist/stzh-components/p-82c53e4f.entry.js.map +0 -1
  236. package/dist/stzh-components/p-8b3828e7.entry.js +0 -2
  237. package/dist/stzh-components/p-8b3828e7.entry.js.map +0 -1
  238. package/dist/stzh-components/p-ce6dbd52.entry.js +0 -2
  239. package/dist/stzh-components/p-e30a5acc.js.map +0 -1
  240. /package/dist/stzh-components/{p-ab5ee55b.entry.js.map → p-04b2db82.entry.js.map} +0 -0
  241. /package/dist/stzh-components/{p-0b15d79b.entry.js.map → p-0a26c99e.entry.js.map} +0 -0
  242. /package/dist/stzh-components/{p-346d2f3d.entry.js.map → p-0da740fe.entry.js.map} +0 -0
  243. /package/dist/stzh-components/{p-b397337c.entry.js.map → p-12d0d651.entry.js.map} +0 -0
  244. /package/dist/stzh-components/{p-87f3052b.entry.js.map → p-132985b6.entry.js.map} +0 -0
  245. /package/dist/stzh-components/{p-8273e37d.entry.js.map → p-17ede8f9.entry.js.map} +0 -0
  246. /package/dist/stzh-components/{p-d46bbc8c.entry.js.map → p-1d9ba00c.entry.js.map} +0 -0
  247. /package/dist/stzh-components/{p-63c76fd5.entry.js.map → p-1ecf4e9c.entry.js.map} +0 -0
  248. /package/dist/stzh-components/{p-30a522e0.entry.js.map → p-231c5725.entry.js.map} +0 -0
  249. /package/dist/stzh-components/{p-bfe8d5cc.entry.js.map → p-23881aac.entry.js.map} +0 -0
  250. /package/dist/stzh-components/{p-d0ecdd5b.entry.js.map → p-287f518f.entry.js.map} +0 -0
  251. /package/dist/stzh-components/{p-90772ec6.entry.js.map → p-288fd6f7.entry.js.map} +0 -0
  252. /package/dist/stzh-components/{p-d48ecb2f.entry.js.map → p-3d3b7e7e.entry.js.map} +0 -0
  253. /package/dist/stzh-components/{p-585551c1.entry.js.map → p-40181f45.entry.js.map} +0 -0
  254. /package/dist/stzh-components/{p-85143b35.entry.js.map → p-4658be2c.entry.js.map} +0 -0
  255. /package/dist/stzh-components/{p-4b0cb255.entry.js.map → p-50c2a221.entry.js.map} +0 -0
  256. /package/dist/stzh-components/{p-67e61035.entry.js.map → p-535c5b7e.entry.js.map} +0 -0
  257. /package/dist/stzh-components/{p-9c1b3929.entry.js.map → p-6200ab32.entry.js.map} +0 -0
  258. /package/dist/stzh-components/{p-8a82bf60.entry.js.map → p-62990cff.entry.js.map} +0 -0
  259. /package/dist/stzh-components/{p-32cb5b94.entry.js.map → p-68eb6a0f.entry.js.map} +0 -0
  260. /package/dist/stzh-components/{p-24ea178a.entry.js.map → p-693b30c3.entry.js.map} +0 -0
  261. /package/dist/stzh-components/{p-b03f41c3.entry.js.map → p-6ccf25d4.entry.js.map} +0 -0
  262. /package/dist/stzh-components/{p-bdff55a6.entry.js.map → p-6e29bc61.entry.js.map} +0 -0
  263. /package/dist/stzh-components/{p-29c1cb5c.entry.js.map → p-70163fe3.entry.js.map} +0 -0
  264. /package/dist/stzh-components/{p-13cd7748.entry.js.map → p-7d7ea996.entry.js.map} +0 -0
  265. /package/dist/stzh-components/{p-9bc12eff.entry.js.map → p-8105fb2b.entry.js.map} +0 -0
  266. /package/dist/stzh-components/{p-aa3e4203.entry.js.map → p-8768408c.entry.js.map} +0 -0
  267. /package/dist/stzh-components/{p-09480ffe.entry.js.map → p-9150836d.entry.js.map} +0 -0
  268. /package/dist/stzh-components/{p-3261eab4.entry.js.map → p-985590d7.entry.js.map} +0 -0
  269. /package/dist/stzh-components/{p-ba716237.entry.js.map → p-9cd5463f.entry.js.map} +0 -0
  270. /package/dist/stzh-components/{p-995bee31.entry.js.map → p-9cdd5e6f.entry.js.map} +0 -0
  271. /package/dist/stzh-components/{p-f18978b5.entry.js.map → p-9eee36de.entry.js.map} +0 -0
  272. /package/dist/stzh-components/{p-d7f1ed07.entry.js.map → p-a541744d.entry.js.map} +0 -0
  273. /package/dist/stzh-components/{p-2812752a.entry.js.map → p-a77b49cb.entry.js.map} +0 -0
  274. /package/dist/stzh-components/{p-346f8661.entry.js.map → p-a85458b6.entry.js.map} +0 -0
  275. /package/dist/stzh-components/{p-0b0c7cb8.entry.js.map → p-b509dedd.entry.js.map} +0 -0
  276. /package/dist/stzh-components/{p-b273f95c.entry.js.map → p-b608bf1a.entry.js.map} +0 -0
  277. /package/dist/stzh-components/{p-6fffe2c8.entry.js.map → p-c4383f33.entry.js.map} +0 -0
  278. /package/dist/stzh-components/{p-9e4f0532.entry.js.map → p-c533a50b.entry.js.map} +0 -0
  279. /package/dist/stzh-components/{p-1c75b53f.entry.js.map → p-c9265a65.entry.js.map} +0 -0
  280. /package/dist/stzh-components/{p-21f7064d.entry.js.map → p-d058fc1e.entry.js.map} +0 -0
  281. /package/dist/stzh-components/{p-513b7fcd.entry.js.map → p-d1688313.entry.js.map} +0 -0
  282. /package/dist/stzh-components/{p-ffbb7594.entry.js.map → p-d1aa8602.entry.js.map} +0 -0
  283. /package/dist/stzh-components/{p-7b14ef7a.entry.js.map → p-d5e84340.entry.js.map} +0 -0
  284. /package/dist/stzh-components/{p-d7697cf8.entry.js.map → p-db46a3bf.entry.js.map} +0 -0
  285. /package/dist/stzh-components/{p-16a2675e.entry.js.map → p-e04c7525.entry.js.map} +0 -0
  286. /package/dist/stzh-components/{p-6e0c8764.entry.js.map → p-e60c4497.entry.js.map} +0 -0
  287. /package/dist/stzh-components/{p-a249f3f6.entry.js.map → p-ee2401d8.entry.js.map} +0 -0
  288. /package/dist/stzh-components/{p-f34720e2.entry.js.map → p-f0cf0932.entry.js.map} +0 -0
  289. /package/dist/stzh-components/{p-c3816fd3.entry.js.map → p-fb077fd5.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-popover.js","sourceRoot":"","sources":["../../../../src/components/stzh-popover/stzh-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\";\n\nimport {\n StzhPopoverClosedEvent,\n StzhPopoverCloseEvent,\n StzhPopoverOpenedEvent,\n StzhPopoverOpenEvent,\n} from \"../../index\";\n\nimport { arrow, autoUpdate, computePosition, flip, offset, Placement, shift } from \"@floating-ui/dom\";\n\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\nimport { isStzhElement } from \"../../utils/utils\";\nimport { addMediaChangeListener, media, removeMediaChangeListener } from \"../../utils/media-utils\";\nimport { waitForEvent } from \"../../utils/event-utils\";\nimport { animateTo, stopAnimations } from \"../../utils/animation-utils\";\n\nimport { StzhPopoverLocalizedText } from \"./stzh-popover.localization\";\n\nimport Arrow from \"../stzh-tooltip/assets/arrow.svg\";\n\nconst ANIMATION_SHOW_DURATION = 200;\nconst ANIMATION_HIDE_DURATION = 300;\nconst ANIMATION_SHOW_DURATION_SMALL = 100;\nconst ANIMATION_HIDE_DURATION_SMALL = 200;\n\nfunction animationContentWrapperShow() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ opacity: \"0\" }, { opacity: \"1\" }],\n options: {\n duration: isSmall ? ANIMATION_SHOW_DURATION_SMALL : ANIMATION_SHOW_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nfunction animationContentWrapperHide() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ opacity: \"1\" }, { opacity: \"0\" }],\n options: {\n duration: isSmall ? ANIMATION_HIDE_DURATION_SMALL : ANIMATION_HIDE_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nfunction animationDialogShow() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ transform: isSmall ? \"translateY(-8px)\" : \"translateY(100%)\" }, { transform: \"translateY(0px)\" }],\n options: {\n duration: isSmall ? ANIMATION_SHOW_DURATION_SMALL : ANIMATION_SHOW_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nfunction animationDialogHide() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ transform: \"translateY(0px)\" }, { transform: isSmall ? \"translateY(-8px)\" : \"translateY(100%)\" }],\n options: {\n duration: isSmall ? ANIMATION_HIDE_DURATION_SMALL : ANIMATION_HIDE_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nconst keyCode = {\n ESC: 27,\n};\n\nconst CLASS_BODY_OPEN = \"stzh-popover-open\";\n\nlet popoverCounter = 0;\n\n/**\n * @slot - Trigger element for popover\n * @slot content - Any element used as popover content\n * @slot action - `stzh-button` element\n * @slot label - Label for mobile view (alternative for label property)\n */\n@Component({\n tag: \"stzh-popover\",\n styleUrl: \"stzh-popover.scss\",\n scoped: true,\n})\nexport class StzhPopover {\n /** Whether popover should be open */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /** Default placement of popover relative to trigger element */\n @Prop({ reflect: true }) placement: Placement = \"bottom\";\n\n /** Whether to stretch popover to fullwith of parent */\n @Prop({ reflect: true }) fullwidth: \"horizontal\" | \"vertical\" | \"\" = \"\";\n\n /** Variant */\n @Prop({ reflect: true }) variant: \"default\" | \"secondary\" | \"tooltip\" = \"default\";\n\n /** Size */\n @Prop({ reflect: true }) size: \"default\" | \"large\" = \"default\";\n\n /** Shifting of popover content */\n @Prop() skidding: number = 0;\n\n /** Distance from popover content to trigger. \"8\" when default variant, \"16\" when tooltip variant, arrow height (8px) + spacing (4px) = 12. */\n @Prop() distance: number;\n\n /** Label for mobile view (use label slot as alternative) */\n @Prop() label: string = \"\";\n\n /** Position strategy */\n @Prop() strategy: \"absolute\" | \"fixed\" = \"absolute\";\n\n /** Translation strings. */\n @Prop() localization: StzhPopoverLocalizedText;\n\n @Element() element: HTMLStzhPopoverElement;\n\n /** Popover open event */\n @Event() stzhOpen: EventEmitter<StzhPopoverOpenEvent>;\n\n /** Popover opened event (after animation) */\n @Event() stzhOpened: EventEmitter<StzhPopoverOpenedEvent>;\n\n /** Popover close event */\n @Event() stzhClose: EventEmitter<StzhPopoverCloseEvent>;\n\n /** Popover closed event (after animation) */\n @Event() stzhClosed: EventEmitter<StzhPopoverClosedEvent>;\n\n private parentNode: Node;\n\n /** Show popover content */\n @Method()\n async show() {\n if (this.open) {\n return;\n }\n\n this.mediaChangeHandler();\n if (this.isHeaderStuckAndViewportMicro) {\n this.branchOutToBody();\n }\n\n this.toggledByMethod = true;\n this.open = true;\n return waitForEvent(this.element, \"stzhOpened\");\n }\n\n /** Hide popover content */\n @Method()\n async hide() {\n if (!this.open) {\n return;\n }\n\n this.toggledByMethod = true;\n this.open = false;\n\n await waitForEvent(this.element, \"stzhClosed\");\n\n this.mediaChangeHandler();\n if (this.isHeaderStuckAndViewportMicro) {\n this.branchInFromBody();\n }\n\n return true;\n }\n\n /** Toggle popover content */\n @Method()\n async toggle() {\n if (this.open) {\n return await this.hide();\n } else {\n return await this.show();\n }\n }\n\n @Method()\n async update() {\n return await this.computePosition();\n }\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleOutsideClick(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const isClickOutside =\n event.target !== this.dialogElement && this.dialogElement.contains(event.target as HTMLElement) === false;\n\n const isClickTrigger =\n event.target === this.triggerElement || this.triggerElement.contains(event.target as HTMLElement);\n\n if (isClickOutside && !isClickTrigger) {\n this.hide();\n }\n }\n\n @Watch(\"open\")\n async openWatcher(newValue: boolean) {\n if (!this.dialogElement) {\n return;\n }\n\n if (newValue) {\n if (this.toggledByMethod) {\n this.stzhOpen.emit({\n component: \"stzh-popover\",\n });\n }\n\n const animationShow = animationContentWrapperShow();\n const animationShowDialog = animationDialogShow();\n\n await Promise.all([\n stopAnimations(this.contentWrapperElement),\n stopAnimations(this.contentElement),\n stopAnimations(this.dialogElement),\n ]);\n\n // safari seems to need will-change,\n // otherwise it has problems animating the element with the drop shadow\n this.dialogElement.style.willChange = \"transform, opacity, position, top, left, bottom, right\";\n this.contentWrapperElement.hidden = false;\n\n await Promise.all([\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentWrapperElement,\n animationShow.keyframes,\n animationShow.options\n ),\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentElement,\n animationShowDialog.keyframes,\n animationShowDialog.options\n ),\n ]);\n\n if (this.toggledByMethod) {\n this.stzhOpened.emit({\n component: \"stzh-popover\",\n });\n }\n } else {\n if (this.toggledByMethod) {\n this.stzhClose.emit({\n component: \"stzh-popover\",\n });\n }\n\n const animationHide = animationContentWrapperHide();\n const animationHideDialog = animationDialogHide();\n\n await Promise.all([\n stopAnimations(this.contentWrapperElement),\n stopAnimations(this.contentElement),\n stopAnimations(this.dialogElement),\n ]);\n\n await Promise.all([\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentWrapperElement,\n animationHide.keyframes,\n animationHide.options\n ),\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentElement,\n animationHideDialog.keyframes,\n animationHideDialog.options\n ),\n ]);\n\n this.contentWrapperElement.hidden = true;\n this.dialogElement.style.willChange = \"auto\";\n\n if (this.toggledByMethod) {\n this.stzhClosed.emit({\n component: \"stzh-popover\",\n });\n }\n }\n\n this.toggledByMethod = false;\n }\n\n @Watch(\"distance\")\n distanceWatcher(newValue: number) {\n if (typeof newValue === \"number\") {\n this.distance = newValue;\n } else {\n this.distance = this.variant === \"tooltip\" ? 12 : 8;\n }\n }\n\n @State() computedPlacement: Placement;\n @State() isHeaderStuckAndViewportMicro: boolean;\n @State() isBranchedOutToBody: boolean;\n @State() hasStzhHeaderParent: boolean;\n\n private observer: MutationObserver;\n\n private contentWrapperElement: HTMLElement;\n private contentElement: HTMLElement;\n private arrowElement: HTMLElement;\n private rootElement: HTMLElement;\n private triggerElement: HTMLElement;\n private triggerFirstElement: HTMLElement;\n private dialogElement: HTMLElement;\n private autoUpdateCleanup: Function;\n\n private initialTouchX: number = null;\n private initialTouchY: number = null;\n\n private id: string;\n private trap: FocusTrap;\n private toggledByMethod: boolean;\n\n private setStzhHeaderParent(): boolean {\n let parent = this.element.parentElement;\n while (parent) {\n if (parent.tagName && parent.tagName.toLowerCase() === \"stzh-header\") {\n return true;\n }\n parent = parent.parentElement;\n }\n return false;\n }\n\n private mediaChangeHandler = () => {\n const isStzhHeaderStuck = document.documentElement.style.getPropertyValue(\"--stzh-header-is-stuck\");\n this.isHeaderStuckAndViewportMicro =\n !media(\"small\").matches && isStzhHeaderStuck === \"1\" && this.hasStzhHeaderParent;\n\n if (this.open && this.isBranchedOutToBody && !this.isHeaderStuckAndViewportMicro) {\n this.branchInFromBody();\n }\n };\n\n private branchOutToBody() {\n document.body.append(this.element);\n this.parentNode.appendChild(this.triggerElement);\n this.isBranchedOutToBody = true;\n }\n\n private branchInFromBody() {\n this.parentNode.appendChild(this.element);\n this.rootElement.prepend(this.triggerElement);\n this.isBranchedOutToBody = false;\n }\n\n private handleKeydown = (event: KeyboardEvent) => {\n if (event.keyCode === keyCode.ESC) {\n this.hide();\n }\n };\n\n private onClickTrigger = () => {\n this.toggle();\n };\n\n private computePosition = async () => {\n if (media(\"small\").matches) {\n const middleware = [\n offset({\n mainAxis: this.distance,\n crossAxis: this.skidding,\n }),\n flip({\n padding: 5,\n }),\n shift({\n padding: 5,\n }),\n ];\n\n if (this.variant === \"tooltip\") {\n middleware.push(\n arrow({\n element: this.arrowElement,\n padding: 5,\n })\n );\n }\n\n const {\n x = 0,\n y = 0,\n strategy = \"absolute\",\n placement,\n middlewareData,\n } = await computePosition(this.triggerFirstElement, this.dialogElement, {\n strategy: this.strategy,\n placement: this.placement,\n middleware,\n });\n\n this.computedPlacement = placement;\n\n Object.assign(this.dialogElement.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n });\n\n if (this.variant === \"tooltip\") {\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${middlewareData.arrow.x}px` : \"\",\n top: y != null ? `${middlewareData.arrow.y}px` : \"\",\n });\n }\n } else {\n Object.assign(this.dialogElement.style, {\n position: null,\n left: null,\n top: null,\n });\n\n if (this.variant === \"tooltip\") {\n Object.assign(this.arrowElement.style, {\n left: null,\n top: null,\n });\n }\n }\n };\n\n private handleTouchStart = (event: TouchEvent) => {\n const touch = event.changedTouches[0];\n this.initialTouchX = touch.pageX;\n this.initialTouchY = touch.pageY;\n };\n\n // private handleTouchMove = (event: TouchEvent) => {\n // event.preventDefault()\n // }\n\n private handleTouchEnd = (event: TouchEvent) => {\n const touch = event.changedTouches[0];\n const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled\n const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled\n const threshold = 70;\n\n const isYSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold;\n\n if (isYSwipe) {\n this.hide();\n }\n\n this.initialTouchY = null;\n this.initialTouchX = null;\n };\n\n private init = () => {\n let trigger = this.triggerElement?.firstElementChild as HTMLElement;\n\n if (!trigger) {\n const defaultSlot = Array.from(this.element.children).find(child => !child.hasAttribute(\"slot\")) as HTMLElement;\n\n trigger = defaultSlot;\n }\n\n if (trigger) {\n this.triggerFirstElement = trigger;\n trigger.addEventListener(\"click\", this.onClickTrigger);\n }\n };\n\n async componentWillLoad() {\n this.id = `stzh-popover-${popoverCounter++}`;\n this.parentNode = this.element.parentNode;\n this.hasStzhHeaderParent = this.setStzhHeaderParent();\n\n this.distanceWatcher(this.distance);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"popover\");\n }\n }\n\n private popoverShown() {\n document.body.classList.add(CLASS_BODY_OPEN);\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-expanded\" : \"aria-expanded\", \"true\");\n\n if (this.trap) {\n this.trap.activate();\n }\n }\n\n private popoverHidden() {\n document.body.classList.remove(CLASS_BODY_OPEN);\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-expanded\" : \"aria-expanded\", \"false\");\n\n if (this.trap) {\n this.trap.deactivate();\n }\n }\n\n componentDidRender() {\n this.computePosition();\n this.mediaChangeHandler();\n this.open ? this.popoverShown() : this.popoverHidden();\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-describedby\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-describedby\"))\n ) {\n this.triggerFirstElement.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${this.id}-trigger-description`\n );\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-label\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-label\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", this.label);\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"analytics-id\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"s-object-id\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", this.label);\n }\n }\n\n componentDidUpdate() {\n this.trap.updateContainerElements(this.dialogElement);\n }\n\n componentDidLoad() {\n this.autoUpdateCleanup = autoUpdate(this.triggerFirstElement, this.dialogElement, this.computePosition);\n\n this.contentWrapperElement.hidden = !this.open;\n\n this.trap = createFocusTrap(this.dialogElement, {\n fallbackFocus: this.dialogElement,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n });\n\n if (this.open) {\n this.popoverShown();\n }\n }\n\n connectedCallback() {\n addMediaChangeListener(this.mediaChangeHandler);\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.mediaChangeHandler);\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.autoUpdateCleanup) {\n this.autoUpdateCleanup();\n }\n\n if (this.triggerFirstElement) {\n this.triggerFirstElement.removeEventListener(\"click\", this.onClickTrigger);\n }\n }\n\n render() {\n const classes = {\n \"stzh-popover\": true,\n [`stzh-popover--open`]: this.open,\n [`stzh-popover--placement-${this.computedPlacement}`]: !!this.computedPlacement,\n [`stzh-popover--fullwidth-${this.fullwidth}`]: !!this.fullwidth,\n [`stzh-popover--${this.size}`]: !!this.size,\n [`stzh-popover--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host>\n <div\n class={classes}\n onTouchStart={this.handleTouchStart}\n onTouchEnd={this.handleTouchEnd}\n ref={el => (this.rootElement = el as HTMLDivElement)}\n >\n <div ref={el => (this.triggerElement = el as HTMLDivElement)} class=\"stzh-popover__trigger\">\n <slot></slot>\n </div>\n <div class=\"stzh-popover__vhidden\" id={`${this.id}-trigger-description`}>\n {this.localization.open}\n </div>\n <div ref={el => (this.contentWrapperElement = el as HTMLDivElement)} class=\"stzh-popover__content-wrapper\">\n <div class=\"stzh-popover__backdrop\"></div>\n <div ref={el => (this.contentElement = el as HTMLDivElement)} class=\"stzh-popover__content\">\n <div\n ref={el => (this.dialogElement = el as HTMLDivElement)}\n class=\"stzh-popover__dialog\"\n role=\"dialog\"\n tabindex=\"-1\"\n aria-modal=\"true\"\n aria-labelledby={this.label ? `${this.id}-label` : null}\n aria-hidden={this.open ? \"false\" : \"true\"}\n onKeyDown={this.handleKeydown}\n >\n {this.variant === \"tooltip\" && (\n <div\n class=\"stzh-popover__arrow\"\n ref={el => (this.arrowElement = el as HTMLDivElement)}\n innerHTML={Arrow}\n ></div>\n )}\n <div class=\"stzh-popover__content-inner\">\n <div class=\"stzh-popover__label-wrapper\">\n <h2 id={`${this.id}-label`} class=\"stzh-popover__label\">\n {this.label ? this.label : <slot name=\"label\"></slot>}\n </h2>\n <button class=\"stzh-popover__close\" onClick={() => this.hide()} type=\"button\">\n <stzh-icon name=\"close\" class=\"stzh-popover__icon\"></stzh-icon>\n <span class=\"stzh-popover__vhidden\">{this.localization.close}</span>\n </button>\n </div>\n <div class=\"stzh-popover__content-slot-wrapper\">\n <div class=\"stzh-popover__content-slot\">\n <slot name=\"content\"></slot>\n </div>\n <div class=\"stzh-popover__action-slot\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-popover.js","sourceRoot":"","sources":["../../../../src/components/stzh-popover/stzh-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\";\n\nimport {\n StzhPopoverClosedEvent,\n StzhPopoverCloseEvent,\n StzhPopoverOpenedEvent,\n StzhPopoverOpenEvent,\n} from \"../../index\";\n\nimport { arrow, autoUpdate, computePosition, flip, offset, Placement, shift } from \"@floating-ui/dom\";\n\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\nimport { isStzhElement } from \"../../utils/utils\";\nimport { addMediaChangeListener, media, removeMediaChangeListener } from \"../../utils/media-utils\";\nimport { waitForEvent } from \"../../utils/event-utils\";\nimport { animateTo, stopAnimations } from \"../../utils/animation-utils\";\n\nimport { StzhPopoverLocalizedText } from \"./stzh-popover.localization\";\n\nimport Arrow from \"../stzh-tooltip/assets/arrow.svg\";\n\nconst ANIMATION_SHOW_DURATION = 200;\nconst ANIMATION_HIDE_DURATION = 300;\nconst ANIMATION_SHOW_DURATION_SMALL = 100;\nconst ANIMATION_HIDE_DURATION_SMALL = 200;\n\nfunction animationContentWrapperShow() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ opacity: \"0\" }, { opacity: \"1\" }],\n options: {\n duration: isSmall ? ANIMATION_SHOW_DURATION_SMALL : ANIMATION_SHOW_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nfunction animationContentWrapperHide() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ opacity: \"1\" }, { opacity: \"0\" }],\n options: {\n duration: isSmall ? ANIMATION_HIDE_DURATION_SMALL : ANIMATION_HIDE_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nfunction animationDialogShow() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ transform: isSmall ? \"translateY(-8px)\" : \"translateY(100%)\" }, { transform: \"translateY(0px)\" }],\n options: {\n duration: isSmall ? ANIMATION_SHOW_DURATION_SMALL : ANIMATION_SHOW_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nfunction animationDialogHide() {\n const isSmall = media(\"small\").matches;\n return {\n keyframes: [{ transform: \"translateY(0px)\" }, { transform: isSmall ? \"translateY(-8px)\" : \"translateY(100%)\" }],\n options: {\n duration: isSmall ? ANIMATION_HIDE_DURATION_SMALL : ANIMATION_HIDE_DURATION,\n easing: \"linear\",\n },\n };\n}\n\nconst keyCode = {\n ESC: 27,\n};\n\nconst CLASS_BODY_OPEN = \"stzh-popover-open\";\n\nlet popoverCounter = 0;\n\n/**\n * @slot - Trigger element for popover\n * @slot content - Any element used as popover content\n * @slot action - `stzh-button` element\n * @slot label - Label for mobile view (alternative for label property)\n */\n@Component({\n tag: \"stzh-popover\",\n styleUrl: \"stzh-popover.scss\",\n scoped: true,\n})\nexport class StzhPopover {\n /** Whether popover should be open */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /** Default placement of popover relative to trigger element */\n @Prop({ reflect: true }) placement: Placement = \"bottom\";\n\n /** Whether to stretch popover to fullwith of parent */\n @Prop({ reflect: true }) fullwidth: \"horizontal\" | \"vertical\" | \"\" = \"\";\n\n /** Variant */\n @Prop({ reflect: true }) variant: \"default\" | \"secondary\" | \"tooltip\" = \"default\";\n\n /** Size */\n @Prop({ reflect: true }) size: \"default\" | \"large\" = \"default\";\n\n /** Shifting of popover content */\n @Prop() skidding: number = 0;\n\n /** Distance from popover content to trigger. \"8\" when default variant, \"16\" when tooltip variant, arrow height (8px) + spacing (4px) = 12. */\n @Prop() distance: number;\n\n /** Label for mobile view (use label slot as alternative) */\n @Prop() label: string = \"\";\n\n /** Position strategy */\n @Prop() strategy: \"absolute\" | \"fixed\" = \"absolute\";\n\n /** Translation strings. */\n @Prop() localization: StzhPopoverLocalizedText;\n\n @Element() element: HTMLStzhPopoverElement;\n\n /** Popover open event */\n @Event() stzhOpen: EventEmitter<StzhPopoverOpenEvent>;\n\n /** Popover opened event (after animation) */\n @Event() stzhOpened: EventEmitter<StzhPopoverOpenedEvent>;\n\n /** Popover close event */\n @Event() stzhClose: EventEmitter<StzhPopoverCloseEvent>;\n\n /** Popover closed event (after animation) */\n @Event() stzhClosed: EventEmitter<StzhPopoverClosedEvent>;\n\n private parentNode: Node;\n\n /** Show popover content */\n @Method()\n async show() {\n if (this.open) {\n return;\n }\n\n this.mediaChangeHandler();\n if (this.isHeaderStuckAndViewportMicro) {\n this.branchOutToBody();\n }\n\n this.toggledByMethod = true;\n this.open = true;\n return waitForEvent(this.element, \"stzhOpened\");\n }\n\n /** Hide popover content */\n @Method()\n async hide() {\n if (!this.open) {\n return;\n }\n\n this.toggledByMethod = true;\n this.open = false;\n\n await waitForEvent(this.element, \"stzhClosed\");\n\n this.mediaChangeHandler();\n if (this.isHeaderStuckAndViewportMicro) {\n this.branchInFromBody();\n }\n\n return true;\n }\n\n /** Toggle popover content */\n @Method()\n async toggle() {\n if (this.open) {\n return await this.hide();\n } else {\n return await this.show();\n }\n }\n\n @Method()\n async update() {\n return await this.computePosition();\n }\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleOutsideClick(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const isClickOutside =\n event.target !== this.dialogElement && this.dialogElement.contains(event.target as HTMLElement) === false;\n\n const isClickTrigger =\n event.target === this.triggerElement || this.triggerElement.contains(event.target as HTMLElement);\n\n if (isClickOutside && !isClickTrigger) {\n this.hide();\n }\n }\n\n @Watch(\"open\")\n async openWatcher(newValue: boolean) {\n if (!this.dialogElement) {\n return;\n }\n\n if (newValue) {\n if (this.toggledByMethod) {\n this.stzhOpen.emit({\n component: \"stzh-popover\",\n });\n }\n\n const animationShow = animationContentWrapperShow();\n const animationShowDialog = animationDialogShow();\n\n await Promise.all([\n stopAnimations(this.contentWrapperElement),\n stopAnimations(this.contentElement),\n stopAnimations(this.dialogElement),\n ]);\n\n // safari seems to need will-change,\n // otherwise it has problems animating the element with the drop shadow\n this.dialogElement.style.willChange = \"transform, opacity, position, top, left, bottom, right\";\n this.contentWrapperElement.hidden = false;\n\n await Promise.all([\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentWrapperElement,\n animationShow.keyframes,\n animationShow.options\n ),\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentElement,\n animationShowDialog.keyframes,\n animationShowDialog.options\n ),\n ]);\n\n if (this.toggledByMethod) {\n this.stzhOpened.emit({\n component: \"stzh-popover\",\n });\n }\n } else {\n if (this.toggledByMethod) {\n this.stzhClose.emit({\n component: \"stzh-popover\",\n });\n }\n\n const animationHide = animationContentWrapperHide();\n const animationHideDialog = animationDialogHide();\n\n await Promise.all([\n stopAnimations(this.contentWrapperElement),\n stopAnimations(this.contentElement),\n stopAnimations(this.dialogElement),\n ]);\n\n await Promise.all([\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentWrapperElement,\n animationHide.keyframes,\n animationHide.options\n ),\n animateTo(\n media(\"small\").matches ? this.dialogElement : this.contentElement,\n animationHideDialog.keyframes,\n animationHideDialog.options\n ),\n ]);\n\n this.contentWrapperElement.hidden = true;\n this.dialogElement.style.willChange = \"auto\";\n\n if (this.toggledByMethod) {\n this.stzhClosed.emit({\n component: \"stzh-popover\",\n });\n }\n }\n\n this.toggledByMethod = false;\n }\n\n @Watch(\"distance\")\n distanceWatcher(newValue: number) {\n if (typeof newValue === \"number\") {\n this.distance = newValue;\n } else {\n this.distance = this.variant === \"tooltip\" ? 12 : 8;\n }\n }\n\n @State() computedPlacement: Placement;\n @State() isHeaderStuckAndViewportMicro: boolean;\n @State() isBranchedOutToBody: boolean;\n @State() hasStzhHeaderParent: boolean;\n\n private observer: MutationObserver;\n\n private contentWrapperElement: HTMLElement;\n private contentElement: HTMLElement;\n private arrowElement: HTMLElement;\n private rootElement: HTMLElement;\n private triggerElement: HTMLElement;\n private triggerFirstElement: HTMLElement;\n private dialogElement: HTMLElement;\n private autoUpdateCleanup: Function;\n\n private initialTouchX: number = null;\n private initialTouchY: number = null;\n\n private id: string;\n private trap: FocusTrap;\n private toggledByMethod: boolean;\n\n private setStzhHeaderParent(): boolean {\n let parent = this.element.parentElement;\n while (parent) {\n if (parent.tagName && parent.tagName.toLowerCase() === \"stzh-header\") {\n return true;\n }\n parent = parent.parentElement;\n }\n return false;\n }\n\n private mediaChangeHandler = () => {\n const isStzhHeaderStuck = document.documentElement.style.getPropertyValue(\"--stzh-header-is-stuck\");\n this.isHeaderStuckAndViewportMicro =\n !media(\"small\").matches && isStzhHeaderStuck === \"1\" && this.hasStzhHeaderParent;\n\n if (this.open && this.isBranchedOutToBody && !this.isHeaderStuckAndViewportMicro) {\n this.branchInFromBody();\n }\n };\n\n private branchOutToBody() {\n document.body.append(this.element);\n this.parentNode.appendChild(this.triggerElement);\n this.isBranchedOutToBody = true;\n }\n\n private branchInFromBody() {\n this.parentNode.appendChild(this.element);\n this.rootElement.prepend(this.triggerElement);\n this.isBranchedOutToBody = false;\n }\n\n private handleKeydown = (event: KeyboardEvent) => {\n if (event.keyCode === keyCode.ESC) {\n this.hide();\n }\n };\n\n private onClickTrigger = () => {\n this.toggle();\n };\n\n private computePosition = async () => {\n if (media(\"small\").matches) {\n const middleware = [\n offset({\n mainAxis: this.distance,\n crossAxis: this.skidding,\n }),\n flip({\n padding: 5,\n }),\n shift({\n padding: 5,\n }),\n ];\n\n if (this.variant === \"tooltip\") {\n middleware.push(\n arrow({\n element: this.arrowElement,\n padding: 5,\n })\n );\n }\n\n const {\n x = 0,\n y = 0,\n strategy = \"absolute\",\n placement,\n middlewareData,\n } = await computePosition(this.triggerFirstElement, this.dialogElement, {\n strategy: this.strategy,\n placement: this.placement,\n middleware,\n });\n\n this.computedPlacement = placement;\n\n Object.assign(this.dialogElement.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n });\n\n if (this.variant === \"tooltip\") {\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${middlewareData.arrow.x}px` : \"\",\n top: y != null ? `${middlewareData.arrow.y}px` : \"\",\n });\n }\n } else {\n Object.assign(this.dialogElement.style, {\n position: null,\n left: null,\n top: null,\n });\n\n if (this.variant === \"tooltip\") {\n Object.assign(this.arrowElement.style, {\n left: null,\n top: null,\n });\n }\n }\n };\n\n private handleTouchStart = (event: TouchEvent) => {\n const touch = event.changedTouches[0];\n this.initialTouchX = touch.pageX;\n this.initialTouchY = touch.pageY;\n };\n\n // private handleTouchMove = (event: TouchEvent) => {\n // event.preventDefault()\n // }\n\n private handleTouchEnd = (event: TouchEvent) => {\n const touch = event.changedTouches[0];\n const distX = touch.pageX - this.initialTouchX; // get horizontal dist traveled\n const distY = touch.pageY - this.initialTouchY; // get vertical dist traveled\n const threshold = 70;\n\n const isYSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold;\n\n if (isYSwipe) {\n const isInDropdown = (event.target as HTMLElement).closest('.stzh-dropdown') !== null;\n if (!isInDropdown){\n this.hide();\n }\n }\n\n this.initialTouchY = null;\n this.initialTouchX = null;\n };\n\n private init = () => {\n let trigger = this.triggerElement?.firstElementChild as HTMLElement;\n\n if (!trigger) {\n const defaultSlot = Array.from(this.element.children).find(child => !child.hasAttribute(\"slot\")) as HTMLElement;\n\n trigger = defaultSlot;\n }\n\n if (trigger) {\n this.triggerFirstElement = trigger;\n trigger.addEventListener(\"click\", this.onClickTrigger);\n }\n };\n\n async componentWillLoad() {\n this.id = `stzh-popover-${popoverCounter++}`;\n this.parentNode = this.element.parentNode;\n this.hasStzhHeaderParent = this.setStzhHeaderParent();\n\n this.distanceWatcher(this.distance);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"popover\");\n }\n }\n\n private popoverShown() {\n document.body.classList.add(CLASS_BODY_OPEN);\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-expanded\" : \"aria-expanded\", \"true\");\n\n if (this.trap) {\n this.trap.activate();\n }\n }\n\n private popoverHidden() {\n document.body.classList.remove(CLASS_BODY_OPEN);\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-expanded\" : \"aria-expanded\", \"false\");\n\n if (this.trap) {\n this.trap.deactivate();\n }\n }\n\n componentDidRender() {\n this.computePosition();\n this.mediaChangeHandler();\n this.open ? this.popoverShown() : this.popoverHidden();\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-describedby\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-describedby\"))\n ) {\n this.triggerFirstElement.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${this.id}-trigger-description`\n );\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-label\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-label\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", this.label);\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"analytics-id\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"s-object-id\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", this.label);\n }\n }\n\n componentDidUpdate() {\n this.trap.updateContainerElements(this.dialogElement);\n }\n\n componentDidLoad() {\n this.autoUpdateCleanup = autoUpdate(this.triggerFirstElement, this.dialogElement, this.computePosition);\n\n this.contentWrapperElement.hidden = !this.open;\n\n this.trap = createFocusTrap(this.dialogElement, {\n fallbackFocus: this.dialogElement,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n });\n\n if (this.open) {\n this.popoverShown();\n }\n }\n\n connectedCallback() {\n addMediaChangeListener(this.mediaChangeHandler);\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.mediaChangeHandler);\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.autoUpdateCleanup) {\n this.autoUpdateCleanup();\n }\n\n if (this.triggerFirstElement) {\n this.triggerFirstElement.removeEventListener(\"click\", this.onClickTrigger);\n }\n }\n\n render() {\n const classes = {\n \"stzh-popover\": true,\n [`stzh-popover--open`]: this.open,\n [`stzh-popover--placement-${this.computedPlacement}`]: !!this.computedPlacement,\n [`stzh-popover--fullwidth-${this.fullwidth}`]: !!this.fullwidth,\n [`stzh-popover--${this.size}`]: !!this.size,\n [`stzh-popover--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host>\n <div\n class={classes}\n onTouchStart={this.handleTouchStart}\n onTouchEnd={this.handleTouchEnd}\n ref={el => (this.rootElement = el as HTMLDivElement)}\n >\n <div ref={el => (this.triggerElement = el as HTMLDivElement)} class=\"stzh-popover__trigger\">\n <slot></slot>\n </div>\n <div class=\"stzh-popover__vhidden\" id={`${this.id}-trigger-description`}>\n {this.localization.open}\n </div>\n <div ref={el => (this.contentWrapperElement = el as HTMLDivElement)} class=\"stzh-popover__content-wrapper\">\n <div class=\"stzh-popover__backdrop\"></div>\n <div ref={el => (this.contentElement = el as HTMLDivElement)} class=\"stzh-popover__content\">\n <div\n ref={el => (this.dialogElement = el as HTMLDivElement)}\n class=\"stzh-popover__dialog\"\n role=\"dialog\"\n tabindex=\"-1\"\n aria-modal=\"true\"\n aria-labelledby={this.label ? `${this.id}-label` : null}\n aria-hidden={this.open ? \"false\" : \"true\"}\n onKeyDown={this.handleKeydown}\n >\n {this.variant === \"tooltip\" && (\n <div\n class=\"stzh-popover__arrow\"\n ref={el => (this.arrowElement = el as HTMLDivElement)}\n innerHTML={Arrow}\n ></div>\n )}\n <div class=\"stzh-popover__content-inner\">\n <div class=\"stzh-popover__label-wrapper\">\n <h2 id={`${this.id}-label`} class=\"stzh-popover__label\">\n {this.label ? this.label : <slot name=\"label\"></slot>}\n </h2>\n <button class=\"stzh-popover__close\" onClick={() => this.hide()} type=\"button\">\n <stzh-icon name=\"close\" class=\"stzh-popover__icon\"></stzh-icon>\n <span class=\"stzh-popover__vhidden\">{this.localization.close}</span>\n </button>\n </div>\n <div class=\"stzh-popover__content-slot-wrapper\">\n <div class=\"stzh-popover__content-slot\">\n <slot name=\"content\"></slot>\n </div>\n <div class=\"stzh-popover__action-slot\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -99,7 +99,13 @@ export class StzhRadiogroup {
99
99
  }
100
100
  updateRadiosProperty(prop, value) {
101
101
  this.radios.forEach((radio) => {
102
- if (prop === "name" || this._preventUpdateProperties.indexOf(prop) === -1) {
102
+ if (prop === "disabled") {
103
+ // Only set the disabled if the radio is not already disabled
104
+ if (!radio.disabled) {
105
+ radio.disabled = value;
106
+ }
107
+ }
108
+ else if (prop === "name" || this._preventUpdateProperties.indexOf(prop) === -1) {
103
109
  radio[camelCase(prop)] = value;
104
110
  }
105
111
  });
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-radiogroup.js","sourceRoot":"","sources":["../../../../src/components/stzh-radiogroup/stzh-radiogroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Listen, Prop, Watch } from \"@stencil/core\";\n\nimport { StzhRadioChangeEvent } from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { camelCase } from \"../../utils/string-utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nconst SELECTOR_RADIO = \"stzh-radio, stzh-button[type=radio], stzh-card\";\n\nlet radiogroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-radio`, `stzh-button[type=\"radio\"]` or `stzh-card` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-radiogroup\",\n styleUrl: \"stzh-radiogroup.scss\",\n scoped: true,\n})\nexport class StzhRadiogroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input radio elements, will define the radio group. If you have more than one radio group on a page, every group needs to have its own unique name */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Hide `(optional)` label (or use `required` inside form to hide it) */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** Select a radio by value */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string = \"\";\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked radio element (readonly) */\n @Prop() checkedRadio: HTMLStzhRadioElement | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid, required, hide-marker) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateRadiosProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateRadiosProperty(\"disabled\", newValue);\n }\n\n @Watch(\"required\")\n watchRequired(newValue: boolean) {\n this.updateRadiosProperty(\"required\", newValue);\n }\n\n @Watch(\"value\")\n watchValue(newValue: string) {\n this.updateCheckedRadioByValue(newValue);\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Listen(\"stzhChange\")\n onChange(event: CustomEvent<StzhRadioChangeEvent>) {\n this.value = event.detail.value;\n }\n\n /** Radio elements */\n private radios: HTMLStzhRadioElement[];\n private radiogroupId: string;\n private observer: MutationObserver;\n\n private updateRadiosProperty(prop: string, value: any) {\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (prop === \"name\" || this._preventUpdateProperties.indexOf(prop) === -1) {\n radio[camelCase(prop)] = value;\n }\n });\n }\n\n private get errorUsed(): boolean {\n return hasSlot(this.element, \"error\") || this._error?.length > 0;\n }\n\n private updateCheckedRadioByValue(value: string) {\n this.checkedRadio = this.radios.find(radio => radio.value === value);\n\n if (this.checkedRadio) {\n this.checkedRadio.checked = true;\n }\n\n this.uncheckRadios();\n }\n\n private uncheckRadios() {\n // make sure that no other radios are checked than the current one or no one\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (!this.checkedRadio || radio !== this.checkedRadio) {\n radio.checked = false;\n }\n });\n }\n\n private handleReset = async () => {\n this.value = this.defaultValue;\n };\n\n private init = () => {\n // update radios\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n this.updateRadiosProperty(\"hide-optional\", true);\n this.updateRadiosProperty(\"a11y-describedby\", `${this.radiogroupId}-description`);\n this.updateRadiosProperty(\"invalid\", this.invalid || this.errorUsed);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n this.watchRequired(this.required);\n };\n\n componentDidLoad() {\n this.defaultValue = this.defaultValue ? this.defaultValue : this.value;\n }\n\n async componentWillLoad() {\n this.radiogroupId = `stzh-radiogroup-${radiogroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"radiogroup\");\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedRadio\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n connectedCallback() {\n if (!this.value) {\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n // try to find a checkbox that might has checked set to true\n const checkedRadio = this.radios.find(radio => radio.checked);\n\n if (checkedRadio) {\n this.value = checkedRadio.value;\n }\n }\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, \"description\") || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, \"description-long\") || !!this.descriptionLong;\n\n const classes = {\n \"stzh-radiogroup\": true,\n \"stzh-radiogroup--has-description\": descriptionUsed,\n \"stzh-radiogroup--has-description-long\": descriptionLongUsed,\n \"stzh-radiogroup--has-error\": this.errorUsed,\n \"stzh-radiogroup--is-required\": this.required,\n \"stzh-radiogroup--is-disabled\": this.disabled,\n \"stzh-radiogroup--is-invalid\": this.invalid || this.errorUsed,\n \"stzh-radiogroup--hide-legend\": this.hideLegend,\n [`stzh-radiogroup--direction-${this.direction}`]: !!this.direction,\n };\n\n return (\n <Host is-invalid={this.invalid || this.errorUsed}>\n <fieldset class={classes}>\n {this.legend && (\n <legend class=\"stzh-radiogroup__legend\">\n {this.legend}\n {!this.hideOptional && (\n <span class=\"stzh-radiogroup__marker\">\n <span class=\"stzh-radiogroup__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker}\n </span>\n <span class=\"stzh-radiogroup__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText}\n </span>\n </span>\n )}\n </legend>\n )}\n <div class=\"stzh-radiogroup__fields\">\n <slot></slot>\n </div>\n {(this._error?.length > 0 || this.description) && (\n <StzhInputDescription\n classPrefix=\"stzh-radiogroup\"\n id={`${this.radiogroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n )}\n </fieldset>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-radiogroup.js","sourceRoot":"","sources":["../../../../src/components/stzh-radiogroup/stzh-radiogroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Listen, Prop, Watch } from \"@stencil/core\";\n\nimport { StzhRadioChangeEvent } from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { camelCase } from \"../../utils/string-utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nconst SELECTOR_RADIO = \"stzh-radio, stzh-button[type=radio], stzh-card\";\n\nlet radiogroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-radio`, `stzh-button[type=\"radio\"]` or `stzh-card` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-radiogroup\",\n styleUrl: \"stzh-radiogroup.scss\",\n scoped: true,\n})\nexport class StzhRadiogroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input radio elements, will define the radio group. If you have more than one radio group on a page, every group needs to have its own unique name */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Hide `(optional)` label (or use `required` inside form to hide it) */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** Select a radio by value */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string = \"\";\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked radio element (readonly) */\n @Prop() checkedRadio: HTMLStzhRadioElement | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid, required, hide-marker) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateRadiosProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateRadiosProperty(\"disabled\", newValue);\n }\n\n @Watch(\"required\")\n watchRequired(newValue: boolean) {\n this.updateRadiosProperty(\"required\", newValue);\n }\n\n @Watch(\"value\")\n watchValue(newValue: string) {\n this.updateCheckedRadioByValue(newValue);\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Listen(\"stzhChange\")\n onChange(event: CustomEvent<StzhRadioChangeEvent>) {\n this.value = event.detail.value;\n }\n\n /** Radio elements */\n private radios: HTMLStzhRadioElement[];\n private radiogroupId: string;\n private observer: MutationObserver;\n\n private updateRadiosProperty(prop: string, value: any) {\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (prop === \"disabled\") {\n // Only set the disabled if the radio is not already disabled\n if (!radio.disabled) {\n radio.disabled = value;\n }\n } else if (prop === \"name\" || this._preventUpdateProperties.indexOf(prop) === -1) {\n radio[camelCase(prop)] = value;\n }\n });\n }\n\n private get errorUsed(): boolean {\n return hasSlot(this.element, \"error\") || this._error?.length > 0;\n }\n\n private updateCheckedRadioByValue(value: string) {\n this.checkedRadio = this.radios.find(radio => radio.value === value);\n\n if (this.checkedRadio) {\n this.checkedRadio.checked = true;\n }\n\n this.uncheckRadios();\n }\n\n private uncheckRadios() {\n // make sure that no other radios are checked than the current one or no one\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (!this.checkedRadio || radio !== this.checkedRadio) {\n radio.checked = false;\n }\n });\n }\n\n private handleReset = async () => {\n this.value = this.defaultValue;\n };\n\n private init = () => {\n // update radios\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n this.updateRadiosProperty(\"hide-optional\", true);\n this.updateRadiosProperty(\"a11y-describedby\", `${this.radiogroupId}-description`);\n this.updateRadiosProperty(\"invalid\", this.invalid || this.errorUsed);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n this.watchRequired(this.required);\n };\n\n componentDidLoad() {\n this.defaultValue = this.defaultValue ? this.defaultValue : this.value;\n }\n\n async componentWillLoad() {\n this.radiogroupId = `stzh-radiogroup-${radiogroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"radiogroup\");\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedRadio\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n connectedCallback() {\n if (!this.value) {\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n // try to find a checkbox that might has checked set to true\n const checkedRadio = this.radios.find(radio => radio.checked);\n\n if (checkedRadio) {\n this.value = checkedRadio.value;\n }\n }\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, \"description\") || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, \"description-long\") || !!this.descriptionLong;\n\n const classes = {\n \"stzh-radiogroup\": true,\n \"stzh-radiogroup--has-description\": descriptionUsed,\n \"stzh-radiogroup--has-description-long\": descriptionLongUsed,\n \"stzh-radiogroup--has-error\": this.errorUsed,\n \"stzh-radiogroup--is-required\": this.required,\n \"stzh-radiogroup--is-disabled\": this.disabled,\n \"stzh-radiogroup--is-invalid\": this.invalid || this.errorUsed,\n \"stzh-radiogroup--hide-legend\": this.hideLegend,\n [`stzh-radiogroup--direction-${this.direction}`]: !!this.direction,\n };\n\n return (\n <Host is-invalid={this.invalid || this.errorUsed}>\n <fieldset class={classes}>\n {this.legend && (\n <legend class=\"stzh-radiogroup__legend\">\n {this.legend}\n {!this.hideOptional && (\n <span class=\"stzh-radiogroup__marker\">\n <span class=\"stzh-radiogroup__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker}\n </span>\n <span class=\"stzh-radiogroup__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText}\n </span>\n </span>\n )}\n </legend>\n )}\n <div class=\"stzh-radiogroup__fields\">\n <slot></slot>\n </div>\n {(this._error?.length > 0 || this.description) && (\n <StzhInputDescription\n classPrefix=\"stzh-radiogroup\"\n id={`${this.radiogroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n )}\n </fieldset>\n </Host>\n );\n }\n}\n"]}
@@ -111,7 +111,7 @@ export var StzhEnvironmentEnum;
111
111
  })(StzhEnvironmentEnum || (StzhEnvironmentEnum = {}));
112
112
  export function getStzhEnvironment() {
113
113
  const url = window.location.href;
114
- if (url.includes("test.stadt-zuerich.ch") ||
114
+ if (url.includes("test.stadt-zuerich.loc") ||
115
115
  url.match(/\.dev\.cmp\.szh\.loc/)) {
116
116
  return StzhEnvironmentEnum.DEV;
117
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { dashCase } from \"./string-utils\";\n\n// Determines whether an element has a slot. If name is specified, the function will look for a corresponding named\n// slot, otherwise it will look for a \"default\" slot (e.g. a non-empty text node or an element with no slot attribute).\nexport function hasSlot(el: HTMLElement, name?: string) {\n // Look for a named slot\n if (name) {\n return el.querySelector(`[slot=\"${name}\"]`) !== null;\n }\n\n // Look for a default slot\n return Array.from(childNodes(el)).some((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== \"\") {\n return true;\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n\n return false;\n });\n}\n\nexport function setPropsIfNull(element: Element, attributes: any) {\n Object.keys(attributes).forEach((attribute) => {\n if (element.getAttribute(dashCase(attribute)) === null) {\n element[attribute] = attributes[attribute];\n }\n });\n}\n\nexport function isStzhElement(element: Element) {\n if (!element || element.nodeType !== 1) {\n return false;\n }\n\n return element.tagName.toLowerCase().indexOf(\"stzh-\") === 0;\n}\n\n// returns content of <meta name=\"\" content=\"\"> tags or '' if empty/non existant\nexport function getMeta(name) {\n const meta = document.querySelector(\n `meta[name=\"${name}\"],[property=\"${name}\"]`\n );\n return meta ? meta.getAttribute(\"content\") : \"\";\n}\n\nexport function parents(node: Element | Node) {\n const parents = [];\n\n while (node) {\n parents.unshift(node);\n node = node.parentNode;\n }\n\n return parents;\n}\n\nexport function childNodes(node: Element) {\n const childNodes = node.childNodes;\n\n // check if element is stencil element without shadow dom\n // and then detect elements that were slotted into the element\n if (node[\"s-sc\"]) {\n const result = [];\n\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i][\"s-nr\"];\n\n if (slot) {\n result.push(slot);\n }\n }\n\n return result;\n }\n\n return Array.from(childNodes);\n}\n\nexport function isVisible(element: HTMLElement): boolean {\n // @ts-ignore\n if (typeof element.checkVisibility !== \"undefined\") {\n // @ts-ignore\n return element.checkVisibility({\n checkOpacity: false,\n checkVisibilityCSS: false,\n });\n } else {\n return !!(\n element.offsetWidth ||\n element.offsetHeight ||\n element.getClientRects().length\n );\n }\n}\n\nexport function offset(element): { top: number; left: number } {\n if (!element.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n let rect = element.getBoundingClientRect();\n let win = element.ownerDocument.defaultView;\n\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n };\n}\n\nexport async function raf() {\n return new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n}\n\nexport async function setTimeout(time: number) {\n return new Promise<void>((resolve) => {\n window.setTimeout(() => {\n resolve();\n }, time);\n });\n}\n\nexport enum StzhEnvironmentEnum {\n UNKNOWN = \"UNKNOWN\",\n DEV = \"DEV\",\n UAT = \"UAT\",\n PROD = \"PROD\",\n}\n\nexport function getStzhEnvironment(): StzhEnvironmentEnum {\n const url = window.location.href;\n if (\n url.includes(\"test.stadt-zuerich.ch\") ||\n url.match(/\\.dev\\.cmp\\.szh\\.loc/)\n ) {\n return StzhEnvironmentEnum.DEV;\n } else if (\n url.includes(\"integ.stadt-zuerich.ch\") ||\n url.includes(\"stzh-desi-unic-preview.netlify.app\") ||\n url.match(/\\.uat\\.cmp\\.szh\\.loc/)\n ) {\n return StzhEnvironmentEnum.UAT;\n } else if (\n url.includes(\"www.stadt-zuerich.ch\") ||\n url.match(/\\.cmp\\.szh\\.loc/)\n ) {\n return StzhEnvironmentEnum.PROD;\n } else {\n return StzhEnvironmentEnum.UNKNOWN;\n }\n}\n\n// `extras.experimentalSlotFixes` stencil config flag resolves cloning light dom elements\n// so our own cloneElement / cloneWrappedStzhElement helpers are not needed right now\n// (used before in cardlist and sortable component).\n\n// export function children(node: Element) {\n// return childNodes(node).map((n: any) => n.nodeType === 1);\n// }\n\n// const nativeCloneNodeFn = Node.prototype.cloneNode;\n\n// export function cloneElement(node: Element, deep: boolean) {\n// const clonedNode = nativeCloneNodeFn.call(node, false);\n// const srcChildNodes = childNodes(node);\n\n// if (deep) {\n// for (let i = 0; i < srcChildNodes.length; i++) {\n// if (srcChildNodes[i].nodeType !== 2) {\n// const childClone = cloneElement(srcChildNodes[i], true);\n// clonedNode.appendChild(childClone);\n// }\n// }\n// }\n\n// return clonedNode;\n// }\n\n// // Clone an stzh-* element that is using stencil polyfilled slots (no shadow dom)\n// // and potentially wrapped in normal elements (e.g. angular component)\n// export function cloneWrappedStzhElement(elementToClone: Element): [Element, Element, Element] {\n// let clonedElement: Element;\n// let clonedStzhElement: Element;\n// let originalStzhElement: Element;\n\n// if (isStzhElement(elementToClone)) {\n// clonedElement = cloneElement(elementToClone, true);\n// clonedStzhElement = clonedElement;\n// originalStzhElement = elementToClone;\n// } else {\n// clonedElement = elementToClone.cloneNode() as Element;\n\n// let clonedInnerElementLast: Element = clonedElement;\n// let originalInnerElementLast: Element = elementToClone;\n\n// // clone inner root elements separately until we find a stzh element\n// while (originalInnerElementLast.children.length === 1 && !isStzhElement(originalInnerElementLast.children[0])) {\n// originalInnerElementLast = originalInnerElementLast.children[0];\n// const clonedInnerElementCurrent = originalInnerElementLast.cloneNode() as Element;\n\n// clonedInnerElementLast.appendChild(clonedInnerElementCurrent);\n// clonedInnerElementLast = clonedInnerElementCurrent;\n// }\n\n// if (isStzhElement(originalInnerElementLast.children[0])) {\n// clonedStzhElement = cloneElement(originalInnerElementLast.children[0], true);\n// originalStzhElement = originalInnerElementLast.children[0];\n// clonedInnerElementLast.appendChild(clonedStzhElement);\n// } else {\n// // no root stzh element found, so we give up and just deep clone the root\n// clonedElement = cloneElement(elementToClone, true);\n// }\n// }\n\n// return [clonedElement, clonedStzhElement, originalStzhElement];\n// }\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { dashCase } from \"./string-utils\";\n\n// Determines whether an element has a slot. If name is specified, the function will look for a corresponding named\n// slot, otherwise it will look for a \"default\" slot (e.g. a non-empty text node or an element with no slot attribute).\nexport function hasSlot(el: HTMLElement, name?: string) {\n // Look for a named slot\n if (name) {\n return el.querySelector(`[slot=\"${name}\"]`) !== null;\n }\n\n // Look for a default slot\n return Array.from(childNodes(el)).some((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== \"\") {\n return true;\n }\n\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node as HTMLElement;\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n\n return false;\n });\n}\n\nexport function setPropsIfNull(element: Element, attributes: any) {\n Object.keys(attributes).forEach((attribute) => {\n if (element.getAttribute(dashCase(attribute)) === null) {\n element[attribute] = attributes[attribute];\n }\n });\n}\n\nexport function isStzhElement(element: Element) {\n if (!element || element.nodeType !== 1) {\n return false;\n }\n\n return element.tagName.toLowerCase().indexOf(\"stzh-\") === 0;\n}\n\n// returns content of <meta name=\"\" content=\"\"> tags or '' if empty/non existant\nexport function getMeta(name) {\n const meta = document.querySelector(\n `meta[name=\"${name}\"],[property=\"${name}\"]`\n );\n return meta ? meta.getAttribute(\"content\") : \"\";\n}\n\nexport function parents(node: Element | Node) {\n const parents = [];\n\n while (node) {\n parents.unshift(node);\n node = node.parentNode;\n }\n\n return parents;\n}\n\nexport function childNodes(node: Element) {\n const childNodes = node.childNodes;\n\n // check if element is stencil element without shadow dom\n // and then detect elements that were slotted into the element\n if (node[\"s-sc\"]) {\n const result = [];\n\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i][\"s-nr\"];\n\n if (slot) {\n result.push(slot);\n }\n }\n\n return result;\n }\n\n return Array.from(childNodes);\n}\n\nexport function isVisible(element: HTMLElement): boolean {\n // @ts-ignore\n if (typeof element.checkVisibility !== \"undefined\") {\n // @ts-ignore\n return element.checkVisibility({\n checkOpacity: false,\n checkVisibilityCSS: false,\n });\n } else {\n return !!(\n element.offsetWidth ||\n element.offsetHeight ||\n element.getClientRects().length\n );\n }\n}\n\nexport function offset(element): { top: number; left: number } {\n if (!element.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n\n let rect = element.getBoundingClientRect();\n let win = element.ownerDocument.defaultView;\n\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n };\n}\n\nexport async function raf() {\n return new Promise<void>((resolve) => {\n requestAnimationFrame(() => {\n resolve();\n });\n });\n}\n\nexport async function setTimeout(time: number) {\n return new Promise<void>((resolve) => {\n window.setTimeout(() => {\n resolve();\n }, time);\n });\n}\n\nexport enum StzhEnvironmentEnum {\n UNKNOWN = \"UNKNOWN\",\n DEV = \"DEV\",\n UAT = \"UAT\",\n PROD = \"PROD\",\n}\n\nexport function getStzhEnvironment(): StzhEnvironmentEnum {\n const url = window.location.href;\n if (\n url.includes(\"test.stadt-zuerich.loc\") ||\n url.match(/\\.dev\\.cmp\\.szh\\.loc/)\n ) {\n return StzhEnvironmentEnum.DEV;\n } else if (\n url.includes(\"integ.stadt-zuerich.ch\") ||\n url.includes(\"stzh-desi-unic-preview.netlify.app\") ||\n url.match(/\\.uat\\.cmp\\.szh\\.loc/)\n ) {\n return StzhEnvironmentEnum.UAT;\n } else if (\n url.includes(\"www.stadt-zuerich.ch\") ||\n url.match(/\\.cmp\\.szh\\.loc/)\n ) {\n return StzhEnvironmentEnum.PROD;\n } else {\n return StzhEnvironmentEnum.UNKNOWN;\n }\n}\n\n// `extras.experimentalSlotFixes` stencil config flag resolves cloning light dom elements\n// so our own cloneElement / cloneWrappedStzhElement helpers are not needed right now\n// (used before in cardlist and sortable component).\n\n// export function children(node: Element) {\n// return childNodes(node).map((n: any) => n.nodeType === 1);\n// }\n\n// const nativeCloneNodeFn = Node.prototype.cloneNode;\n\n// export function cloneElement(node: Element, deep: boolean) {\n// const clonedNode = nativeCloneNodeFn.call(node, false);\n// const srcChildNodes = childNodes(node);\n\n// if (deep) {\n// for (let i = 0; i < srcChildNodes.length; i++) {\n// if (srcChildNodes[i].nodeType !== 2) {\n// const childClone = cloneElement(srcChildNodes[i], true);\n// clonedNode.appendChild(childClone);\n// }\n// }\n// }\n\n// return clonedNode;\n// }\n\n// // Clone an stzh-* element that is using stencil polyfilled slots (no shadow dom)\n// // and potentially wrapped in normal elements (e.g. angular component)\n// export function cloneWrappedStzhElement(elementToClone: Element): [Element, Element, Element] {\n// let clonedElement: Element;\n// let clonedStzhElement: Element;\n// let originalStzhElement: Element;\n\n// if (isStzhElement(elementToClone)) {\n// clonedElement = cloneElement(elementToClone, true);\n// clonedStzhElement = clonedElement;\n// originalStzhElement = elementToClone;\n// } else {\n// clonedElement = elementToClone.cloneNode() as Element;\n\n// let clonedInnerElementLast: Element = clonedElement;\n// let originalInnerElementLast: Element = elementToClone;\n\n// // clone inner root elements separately until we find a stzh element\n// while (originalInnerElementLast.children.length === 1 && !isStzhElement(originalInnerElementLast.children[0])) {\n// originalInnerElementLast = originalInnerElementLast.children[0];\n// const clonedInnerElementCurrent = originalInnerElementLast.cloneNode() as Element;\n\n// clonedInnerElementLast.appendChild(clonedInnerElementCurrent);\n// clonedInnerElementLast = clonedInnerElementCurrent;\n// }\n\n// if (isStzhElement(originalInnerElementLast.children[0])) {\n// clonedStzhElement = cloneElement(originalInnerElementLast.children[0], true);\n// originalStzhElement = originalInnerElementLast.children[0];\n// clonedInnerElementLast.appendChild(clonedStzhElement);\n// } else {\n// // no root stzh element found, so we give up and just deep clone the root\n// clonedElement = cloneElement(elementToClone, true);\n// }\n// }\n\n// return [clonedElement, clonedStzhElement, originalStzhElement];\n// }\n"]}
@@ -2,7 +2,7 @@ export { getAssetPath, setAssetPath, setNonce, setPlatformOptions } from '@stenc
2
2
  export { V as VBZ } from './index2.js';
3
3
 
4
4
  const name = "@oiz/stzh-components";
5
- const version = "3.2.0";
5
+ const version = "3.3.0-beta1";
6
6
 
7
7
  const packageName = name.substring(name.indexOf('/')+1);
8
8
  // let focused = false;
@@ -76,6 +76,7 @@ const StzhAppointments$1 = /*@__PURE__*/ proxyCustomElement(class StzhAppointmen
76
76
  });
77
77
  };
78
78
  this.localization = undefined;
79
+ this.disableSort = false;
79
80
  this.sortBy = "start";
80
81
  this.appointments = [];
81
82
  this.currentDate = undefined;
@@ -105,7 +106,11 @@ const StzhAppointments$1 = /*@__PURE__*/ proxyCustomElement(class StzhAppointmen
105
106
  }
106
107
  else {
107
108
  this._currentDate = newValue;
108
- this.setValueToFirstAppointmentOfCurrentDate();
109
+ // Check if value already corresponds to a valid appointment on the new date
110
+ const appointmentsForNewDate = this.getCurrentDateAppointments().map(appt => appt.value);
111
+ if (!appointmentsForNewDate.includes(this.value)) {
112
+ this.setValueToFirstAppointmentOfCurrentDate();
113
+ }
109
114
  }
110
115
  }
111
116
  sortByWatcher() {
@@ -204,14 +209,14 @@ const StzhAppointments$1 = /*@__PURE__*/ proxyCustomElement(class StzhAppointmen
204
209
  this.showMoreLink = this.showItems < appointments.length;
205
210
  this.moreItemsLeft = appointments.length - this.showItems;
206
211
  // don't show time sort when only one time in the current day
207
- this.showSortStart = appointments
212
+ this.showSortStart = !this.disableSort && appointments
208
213
  .map(appointment => {
209
214
  return this.dateAdapter.format(appointment.start, "time");
210
215
  }).filter((item, pos, self) => {
211
216
  return self.indexOf(item) == pos;
212
217
  }).length > 1;
213
218
  // don't show place sort when only one place in the current day
214
- this.showSortPlace = appointments
219
+ this.showSortPlace = !this.disableSort && appointments
215
220
  .map(appointment => {
216
221
  return appointment.place;
217
222
  }).filter((item, pos, self) => {
@@ -230,7 +235,7 @@ const StzhAppointments$1 = /*@__PURE__*/ proxyCustomElement(class StzhAppointmen
230
235
  value: "place"
231
236
  });
232
237
  }
233
- this.showSort = this.appointmentsShown.length > 1;
238
+ this.showSort = !this.disableSort && this.appointmentsShown.length > 1;
234
239
  // determine sort (force alternative sorting if it makes sense)
235
240
  this._sortBy =
236
241
  (this.showSortStart && !this.showSortPlace && "start")
@@ -274,6 +279,7 @@ const StzhAppointments$1 = /*@__PURE__*/ proxyCustomElement(class StzhAppointmen
274
279
  static get style() { return stzhAppointmentsCss; }
275
280
  }, [6, "stzh-appointments", {
276
281
  "localization": [16],
282
+ "disableSort": [4, "disable-sort"],
277
283
  "sortBy": [1025, "sort-by"],
278
284
  "appointments": [1],
279
285
  "currentDate": [1025, "current-date"],
@@ -1 +1 @@
1
- {"file":"stzh-appointments.js","mappings":"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","names":["StzhAppointments"],"sources":["src/components/stzh-appointments/stzh-appointments.scss?tag=stzh-appointments&encapsulation=scoped","src/components/stzh-appointments/stzh-appointments.tsx"],"sourcesContent":[":host {\n --background-color: #{$colorSecondary10};\n}\n\n.stzh-appointments {\n &__heading {\n &:not(:empty) {\n @include spaceCurve('padding-bottom', 'tiny');\n margin-bottom: space('xsmall');\n\n @include mq($from: small) {\n margin-bottom: space('small');\n }\n\n @include mq($from: medium) {\n margin-bottom: space('medium');\n }\n\n @include mq($from: large) {\n margin-bottom: space('xlarge');\n }\n }\n }\n\n // &__actions {\n // &:not(:empty) {\n // @include spaceCurve('margin-top', 'medium');\n // }\n // }\n\n &__wrapper {\n @include spaceCurve('padding-top', 'regular');\n @include spaceCurve('padding-bottom', 'regular');\n display: flex;\n flex-direction: column;\n padding-left: space('large');\n padding-right: space('large');\n background-color: var(--background-color);\n\n @include mq($from: medium) {\n flex-direction: row;\n }\n }\n\n &__calendar-wrapper {\n display: flex;\n flex-direction: column;\n\n @include mq($from: medium) {\n margin-right: space('xxlarge');\n }\n }\n\n &__appointments-wrapper {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n\n &__calendar-title-wrapper,\n &__appointments-title-wrapper {\n @include spaceCurve('margin-bottom', 'small');\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n &__calendar-title,\n &__appointments-title {\n @include font('heavy');\n @include fontSize('centi');\n color: $colorPrimary70;\n display: flex;\n align-items: center;\n }\n\n &__calendar-icon,\n &__appointments-icon {\n --size: #{iconSize('large')};\n margin-right: space('xsmall');\n }\n\n &__calendar-content,\n &__calendar-content-medium {\n @include fontSize('milli');\n }\n\n &__calendar-content {\n @include mq($from: medium) {\n display: none;\n }\n }\n\n &__calendar-content-medium {\n display: none;\n background-color: $colorWhite;\n padding-bottom: space('medium');\n\n @include mq($from: medium) {\n display: block;\n }\n }\n\n &__appointments-content {\n flex-grow: 1;\n }\n\n &__appointments-radiogroup {\n margin-top: space('xsmall');\n margin-bottom: space('xsmall');\n }\n\n &__more-link {\n @include fontSize('milli');\n margin-top: space('medium');\n }\n\n &--has-calendar &__appointments-wrapper {\n margin-top: space('large');\n\n @include mq($from: medium) {\n margin-top: 0;\n }\n }\n}\n","import {\n Component,\n Host,\n Element,\n Prop,\n h,\n Watch,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport {\n StzhAppointmentsChangeEvent,\n StzhRadioChangeEvent,\n StzhDatepickerChangeEvent,\n StzhDropdownChangeEvent,\n} from \"../../index\";\n\nimport { tc } from \"../../utils/translation-utils\";\n\nimport { printISODate, parseISODate } from \"../../utils/date-utils\";\nimport { StzhLocaleAdapter } from \"../../utils/date-adapter\";\n\nimport { StzhAppointmentsLocalizedText } from \"./stzh-appointments.localization\"\nimport { hasSlot } from \"../../utils/utils\";\n\n/**\n * @slot - Slot for any content\n */\n@Component({\n tag: \"stzh-appointments\",\n styleUrl: \"stzh-appointments.scss\",\n scoped: true\n})\nexport class StzhAppointments {\n /** Translation strings */\n @Prop() localization: StzhAppointmentsLocalizedText;\n\n /** Sort by */\n @Prop({ mutable: true }) sortBy: \"start\" | \"place\" = \"start\";\n private _sortBy: \"start\" | \"place\";\n\n /** Initial selected values */\n @Prop() appointments: any[] | string = [];\n private _appointments: any[];\n private appointmentsShown: any[];\n\n /** Current selected date (if undefined, earliest appointment date in list is taken or current selected one by value) */\n @Prop({ mutable: true }) currentDate: Date | string;\n private _currentDate: Date;\n\n /* Selected appointment by value */\n @Prop({ mutable: true }) value: string = \"\";\n\n /* Name of radiogroup form element */\n @Prop({ reflect: true }) name: string = \"appointment\";\n\n /** Nr of items shown */\n @Prop({ mutable: true }) showItems: number = 5;\n private _initialShowItems: number;\n\n /** Nr of items shown when more link is clicked */\n @Prop() stepItems: number = 5;\n\n /** Overwrite default calendar title */\n @Prop() calendarTitle = \"\";\n\n /** Overwrite default appointments title */\n @Prop() appointmentsTitle = \"\";\n\n /**\n * Date adapter, for custom parsing/formatting.\n * Must be an object with a `parse` function which accepts a `string` and returns a `Date`,\n * and a `format` function which accepts a `Date` and returns a `string`.\n */\n @Prop() dateAdapter: StzhLocaleAdapter;\n\n @Element() element: HTMLStzhAppointmentsElement;\n\n /** Appointments change event */\n @Event() stzhChange: EventEmitter<StzhAppointmentsChangeEvent>;\n\n @Watch(\"dateAdapter\")\n dateAdapterWatcher(newValue: StzhLocaleAdapter) {\n if (!newValue) {\n this.dateAdapter = window.stzhComponents.utils.createFormatParseAdapter(\n this.localization.$formats,\n this.localization.$globals\n );\n }\n }\n\n @Watch(\"currentDate\")\n currentDateWatcher(newValue: Date | string) {\n if (!newValue) {\n this._currentDate = this.dateByValue || this.earliestDate;\n\n if (!this.dateByValue) {\n this.setValueToFirstAppointmentOfCurrentDate();\n }\n } else if (typeof newValue === \"string\") {\n this._currentDate = parseISODate(newValue);\n this.setValueToFirstAppointmentOfCurrentDate();\n } else {\n this._currentDate = newValue;\n this.setValueToFirstAppointmentOfCurrentDate();\n }\n }\n\n @Watch(\"sortBy\")\n sortByWatcher() {\n this.setValueToFirstAppointmentOfCurrentDate();\n }\n\n @Watch(\"value\")\n valueWatcher() {\n this.updateDateByValue();\n // update current date if user has not choosen one\n this.currentDateWatcher(this.currentDate);\n }\n\n @Watch(\"appointments\")\n appointmentsWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._appointments = JSON.parse(newValue);\n } else {\n this._appointments = newValue;\n }\n\n // convert start and end field to date\n this._appointments = this._appointments.map(appointment => ({\n ...appointment,\n start: new Date(appointment.start),\n end: new Date(appointment.end),\n }))\n\n if (this._appointments.length > 0) {\n // sort with start field and find earliest and latest date\n this._appointments.sort((a, b) => a['start'] > b['start'] ? 1 : -1);\n this.earliestDate = this._appointments[0].start;\n this.latestDate = this._appointments[this._appointments.length - 1].start;\n this.updateDateByValue();\n }\n\n // determine whether all appointments are from the same day\n if (this._appointments.length > 1) {\n const firstDate = this._appointments[0].start;\n this.allAppointsmentOnSameDay = this._appointments\n .map(appointment => appointment.start)\n .every(date => `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`\n === `${firstDate.getFullYear()}-${firstDate.getMonth()}-${firstDate.getDate()}`);\n }\n\n // update flags\n this.showCalendar = !this.allAppointsmentOnSameDay;\n this.showAppointmentsTitle = this._appointments.length > 1;\n\n // update current date if user has not choosen one\n this.currentDateWatcher(this.currentDate);\n }\n\n private dateByValue: Date;\n private earliestDate: Date;\n private latestDate: Date;\n private nextDate: Date;\n\n private showMoreLink: boolean = false;\n private moreItemsLeft: number = 0;\n private showCalendar: boolean = false;\n private showSort: boolean = false;\n private showSortStart: boolean = false;\n private showSortPlace: boolean = false;\n private showAppointmentsTitle: boolean = false;\n private allAppointsmentOnSameDay: boolean = true;\n private sortOptions = [];\n\n private inputElement: HTMLStzhRadiogroupElement;\n private datepickerElement: HTMLStzhDatepickerElement;\n private datepickerElementMedium: HTMLStzhDatepickerElement;\n\n private updateDateByValue() {\n this.dateByValue = this.value\n && this._appointments\n .find(appointment => appointment.value === this.value)\n .start;\n }\n\n private getCurrentDateAppointments() {\n let indexOfLastCurrentDayDate = 0;\n\n // filter to current date appointments that can be shown\n const appointmentsCurrentDate = this._appointments\n .filter((appointment, index) => {\n const dateIsInCurrentDay = appointment.start.getFullYear() === this._currentDate.getFullYear()\n && appointment.start.getMonth() === this._currentDate.getMonth()\n && appointment.start.getDate() === this._currentDate.getDate();\n\n if (dateIsInCurrentDay) {\n indexOfLastCurrentDayDate = index;\n }\n\n return dateIsInCurrentDay;\n });\n\n // find next day with dates or set to null\n if (this._appointments[indexOfLastCurrentDayDate + 1]) {\n this.nextDate = this._appointments[indexOfLastCurrentDayDate + 1].start;\n } else {\n this.nextDate = null;\n }\n\n // sort\n appointmentsCurrentDate.sort((a, b) => a[this.sortBy] > b[this.sortBy] ? 1 : -1);\n return appointmentsCurrentDate;\n }\n\n private setValueToFirstAppointmentOfCurrentDate() {\n // choose the first available appointment from current date\n const appointments = this.getCurrentDateAppointments()\n .filter(appointment => !appointment.disabled)\n\n if (appointments.length > 0) {\n this.value = appointments[0].value;\n this.stzhChange.emit({\n component: \"stzh-appointments\",\n value: this.value\n });\n }\n }\n\n private isDateDisabled = (date: Date) => {\n const dateHasAppointment: boolean = !!this._appointments.find(appointment => {\n return appointment.start.getFullYear() === date.getFullYear()\n && appointment.start.getMonth() === date.getMonth()\n && appointment.start.getDate() === date.getDate();\n });\n\n return !dateHasAppointment;\n }\n\n private onNextActiveDateClick = async () => {\n if (this.nextDate) {\n this.currentDate = this.nextDate;\n\n const popover = await this.datepickerElement.getPopover();\n\n if (popover) {\n popover.hide();\n }\n }\n }\n\n private onMoreClick = () => {\n this.showItems = this.stepItems + this.showItems;\n\n // return focus to radiogroup\n const radio = this.inputElement.querySelector('stzh-radio');\n radio.focus();\n }\n\n private onDropdownChange = async (event: CustomEvent<StzhDropdownChangeEvent>) => {\n const target: HTMLStzhDropdownElement = event.target as HTMLStzhDropdownElement;\n\n const sortBy = await target.getValue() as \"start\" | \"place\" | \"\";\n\n if (sortBy) {\n this.sortBy = sortBy;\n }\n }\n\n private onDatepickerChange = (event: CustomEvent<StzhDatepickerChangeEvent>) => {\n if (event.detail.component !== 'stzh-datepicker' || !event.detail.valueAsDate) {\n return;\n }\n\n this.currentDate = event.detail.valueAsDate;\n // reset number of items that should be shown\n this.showItems = this._initialShowItems;\n }\n\n private onRadioChange = (event: CustomEvent<StzhRadioChangeEvent>) => {\n this.value = event.detail.value;\n this.stzhChange.emit({\n component: \"stzh-appointments\",\n value: this.value\n });\n }\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n this.appointmentsWatcher(this.appointments);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"appointments\");\n }\n\n this.dateAdapterWatcher(this.dateAdapter);\n }\n\n componentWillRender() {\n const appointments = this.getCurrentDateAppointments();\n\n // slice to max that should be visible\n this.appointmentsShown = appointments.slice(0, this.showItems);\n\n // set flags\n this.showMoreLink = this.showItems < appointments.length;\n this.moreItemsLeft = appointments.length - this.showItems;\n\n // don't show time sort when only one time in the current day\n this.showSortStart = appointments\n .map(appointment => {\n return this.dateAdapter.format(appointment.start, \"time\");\n }).filter((item, pos, self) => {\n return self.indexOf(item) == pos;\n }).length > 1;\n\n // don't show place sort when only one place in the current day\n this.showSortPlace = appointments\n .map(appointment => {\n return appointment.place;\n }).filter((item, pos, self) => {\n return self.indexOf(item) == pos;\n }).length > 1;\n\n this.sortOptions = [];\n\n if (this.showSortStart) {\n this.sortOptions.push({\n text: this.localization.sortByTime,\n value: \"start\"\n });\n }\n\n if (this.showSortPlace) {\n this.sortOptions.push({\n text: this.localization.sortByPlace,\n value: \"place\"\n });\n }\n\n this.showSort = this.appointmentsShown.length > 1;\n\n // determine sort (force alternative sorting if it makes sense)\n this._sortBy =\n (this.showSortStart && !this.showSortPlace && \"start\")\n || (!this.showSortStart && this.showSortPlace && \"place\")\n || this.sortBy;\n }\n\n componentDidRender() {\n // set datepickers values to current date\n if (this.datepickerElement) {\n this.datepickerElement.setDate(this._currentDate);\n }\n\n if (this.datepickerElementMedium) {\n this.datepickerElementMedium.setDate(this._currentDate);\n }\n }\n\n render() {\n const headingUsed: boolean = hasSlot(this.element, \"heading\");\n\n const classes = {\n \"stzh-appointments\": true,\n \"stzh-appointments--has-calendar\": this.showCalendar,\n \"stzh-appointments--has-appointments-title\": this.showAppointmentsTitle,\n \"stzh-appointments--has-sort\": this.showSort\n };\n\n return (\n <Host has-heading={headingUsed}>\n <div class={classes}>\n <div class=\"stzh-appointments__heading\">\n <slot name=\"heading\"></slot>\n </div>\n\n <div class=\"stzh-appointments__wrapper\">\n {this.showCalendar &&\n <div class=\"stzh-appointments__calendar-wrapper\">\n <div class=\"stzh-appointments__calendar-title-wrapper\">\n <div class=\"stzh-appointments__calendar-title\">\n <stzh-icon class=\"stzh-appointments__calendar-icon\" name=\"calendar\"></stzh-icon>\n <span class=\"stzh-appointments__calendar-title-text\">\n {this.calendarTitle || this.localization.calendarTitle}\n </span>\n </div>\n </div>\n <div class=\"stzh-appointments__calendar-content\">\n <stzh-datepicker\n hide-optional\n ref={(el) => (this.datepickerElement = el as HTMLStzhDatepickerElement)}\n onStzhChange={this.onDatepickerChange}\n label={this.localization.datepickerLabel}\n calendarIsDateDisabled={this.isDateDisabled}\n calendarMin={printISODate(this.earliestDate)}\n calendarMax={printISODate(this.latestDate)}\n >\n <stzh-link\n slot=\"action\"\n size=\"inherit\"\n disabled={!this.nextDate}\n onClick={this.onNextActiveDateClick}\n >\n {this.localization.nextDayWithAppointments}\n </stzh-link>\n </stzh-datepicker>\n </div>\n <div class=\"stzh-appointments__calendar-content-medium\">\n <stzh-datepicker\n hide-optional\n ref={(el) => (this.datepickerElementMedium = el as HTMLStzhDatepickerElement)}\n onStzhChange={this.onDatepickerChange}\n inline\n calendarIsDateDisabled={this.isDateDisabled}\n calendarMin={printISODate(this.earliestDate)}\n calendarMax={printISODate(this.latestDate)}\n >\n {this.nextDate &&\n <stzh-link\n slot=\"action\"\n size=\"inherit\"\n onClick={this.onNextActiveDateClick}\n >\n {this.localization.nextDayWithAppointments}\n </stzh-link>\n }\n </stzh-datepicker>\n </div>\n </div>\n }\n <div class=\"stzh-appointments__appointments-wrapper\">\n {this.showAppointmentsTitle &&\n <div class=\"stzh-appointments__appointments-title-wrapper\">\n <div class=\"stzh-appointments__appointments-title\">\n <stzh-icon class=\"stzh-appointments__appointments-icon\" name=\"clock\"></stzh-icon>\n <span class=\"stzh-appointments__appointments-title-text\">\n {this.appointmentsTitle || this.localization.appointmentsTitle}\n </span>\n </div>\n {this.showSort &&\n <div class=\"stzh-appointments__sort\">\n <stzh-dropdown\n hide-optional\n inline\n no-search\n class=\"stzh-appointments__sort-dropdown\"\n variant=\"plain\"\n size=\"small\"\n sizeMedium={\"tiny\"}\n items={[this._sortBy]}\n options={this.sortOptions}\n onStzhChange={this.onDropdownChange}\n ></stzh-dropdown>\n </div>\n }\n </div>\n }\n\n <div class=\"stzh-appointments__appointments-content\">\n <stzh-radiogroup\n class=\"stzh-appointments__appointments-radiogroup\"\n ref={(el) => this.inputElement = el as HTMLStzhRadiogroupElement}\n legend={this.localization.inputLegend}\n hide-legend\n name={this.name}\n value={this.value}\n preventUpdateProperties={[\"disabled\"]}\n >\n {this.appointmentsShown.map((appointment) =>\n <stzh-radio\n onStzhChange={this.onRadioChange}\n value={appointment.value}\n disabled={typeof appointment.disabled !== \"undefined\" ? appointment.disabled : false}\n >\n <stzh-text font=\"heavy\" size=\"centi\">\n {!this.showCalendar && <span>{this.dateAdapter.format(appointment.start, \"dateLong\")},&nbsp;</span>}\n {this.dateAdapter.formatSpan(appointment.start, appointment.end, \"time\")}\n </stzh-text>\n <stzh-text size=\"milli\">{appointment.caption}</stzh-text>\n </stzh-radio>\n )}\n </stzh-radiogroup>\n\n {this.showMoreLink &&\n <stzh-link\n class=\"stzh-appointments__more-link\"\n size=\"inherit\"\n onClick={this.onMoreClick}\n >\n {tc(this.localization.moreTextItems,\n this.moreItemsLeft > this.stepItems\n ? this.stepItems\n : this.moreItemsLeft)}\n </stzh-link>\n }\n </div>\n </div>\n </div>\n\n {/* <div class=\"stzh-appointments__actions\">\n <slot name=\"actions\"></slot>\n </div> */}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"stzh-appointments.js","mappings":"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","names":["StzhAppointments"],"sources":["src/components/stzh-appointments/stzh-appointments.scss?tag=stzh-appointments&encapsulation=scoped","src/components/stzh-appointments/stzh-appointments.tsx"],"sourcesContent":[":host {\n --background-color: #{$colorSecondary10};\n}\n\n.stzh-appointments {\n &__heading {\n &:not(:empty) {\n @include spaceCurve('padding-bottom', 'tiny');\n margin-bottom: space('xsmall');\n\n @include mq($from: small) {\n margin-bottom: space('small');\n }\n\n @include mq($from: medium) {\n margin-bottom: space('medium');\n }\n\n @include mq($from: large) {\n margin-bottom: space('xlarge');\n }\n }\n }\n\n // &__actions {\n // &:not(:empty) {\n // @include spaceCurve('margin-top', 'medium');\n // }\n // }\n\n &__wrapper {\n @include spaceCurve('padding-top', 'regular');\n @include spaceCurve('padding-bottom', 'regular');\n display: flex;\n flex-direction: column;\n padding-left: space('large');\n padding-right: space('large');\n background-color: var(--background-color);\n\n @include mq($from: medium) {\n flex-direction: row;\n }\n }\n\n &__calendar-wrapper {\n display: flex;\n flex-direction: column;\n\n @include mq($from: medium) {\n margin-right: space('xxlarge');\n }\n }\n\n &__appointments-wrapper {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n }\n\n &__calendar-title-wrapper,\n &__appointments-title-wrapper {\n @include spaceCurve('margin-bottom', 'small');\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n &__calendar-title,\n &__appointments-title {\n @include font('heavy');\n @include fontSize('centi');\n color: $colorPrimary70;\n display: flex;\n align-items: center;\n }\n\n &__calendar-icon,\n &__appointments-icon {\n --size: #{iconSize('large')};\n margin-right: space('xsmall');\n }\n\n &__calendar-content,\n &__calendar-content-medium {\n @include fontSize('milli');\n }\n\n &__calendar-content {\n @include mq($from: medium) {\n display: none;\n }\n }\n\n &__calendar-content-medium {\n display: none;\n background-color: $colorWhite;\n padding-bottom: space('medium');\n\n @include mq($from: medium) {\n display: block;\n }\n }\n\n &__appointments-content {\n flex-grow: 1;\n }\n\n &__appointments-radiogroup {\n margin-top: space('xsmall');\n margin-bottom: space('xsmall');\n }\n\n &__more-link {\n @include fontSize('milli');\n margin-top: space('medium');\n }\n\n &--has-calendar &__appointments-wrapper {\n margin-top: space('large');\n\n @include mq($from: medium) {\n margin-top: 0;\n }\n }\n}\n","import {\n Component,\n Host,\n Element,\n Prop,\n h,\n Watch,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport {\n StzhAppointmentsChangeEvent,\n StzhRadioChangeEvent,\n StzhDatepickerChangeEvent,\n StzhDropdownChangeEvent,\n} from \"../../index\";\n\nimport { tc } from \"../../utils/translation-utils\";\n\nimport { printISODate, parseISODate } from \"../../utils/date-utils\";\nimport { StzhLocaleAdapter } from \"../../utils/date-adapter\";\n\nimport { StzhAppointmentsLocalizedText } from \"./stzh-appointments.localization\"\nimport { hasSlot } from \"../../utils/utils\";\n\n/**\n * @slot - Slot for any content\n */\n@Component({\n tag: \"stzh-appointments\",\n styleUrl: \"stzh-appointments.scss\",\n scoped: true\n})\nexport class StzhAppointments {\n /** Translation strings */\n @Prop() localization: StzhAppointmentsLocalizedText;\n\n /** Hides the sort dropdown when true */\n @Prop() disableSort = false;\n\n /** Sort by */\n @Prop({ mutable: true }) sortBy: \"start\" | \"place\" = \"start\";\n private _sortBy: \"start\" | \"place\";\n\n /** Initial selected values */\n @Prop() appointments: any[] | string = [];\n private _appointments: any[];\n private appointmentsShown: any[];\n\n /** Current selected date (if undefined, earliest appointment date in list is taken or current selected one by value) */\n @Prop({ mutable: true }) currentDate: Date | string;\n private _currentDate: Date;\n\n /* Selected appointment by value */\n @Prop({ mutable: true }) value: string = \"\";\n\n /* Name of radiogroup form element */\n @Prop({ reflect: true }) name: string = \"appointment\";\n\n /** Nr of items shown */\n @Prop({ mutable: true }) showItems: number = 5;\n private _initialShowItems: number;\n\n /** Nr of items shown when more link is clicked */\n @Prop() stepItems: number = 5;\n\n /** Overwrite default calendar title */\n @Prop() calendarTitle = \"\";\n\n /** Overwrite default appointments title */\n @Prop() appointmentsTitle = \"\";\n\n /**\n * Date adapter, for custom parsing/formatting.\n * Must be an object with a `parse` function which accepts a `string` and returns a `Date`,\n * and a `format` function which accepts a `Date` and returns a `string`.\n */\n @Prop() dateAdapter: StzhLocaleAdapter;\n\n @Element() element: HTMLStzhAppointmentsElement;\n\n /** Appointments change event */\n @Event() stzhChange: EventEmitter<StzhAppointmentsChangeEvent>;\n\n @Watch(\"dateAdapter\")\n dateAdapterWatcher(newValue: StzhLocaleAdapter) {\n if (!newValue) {\n this.dateAdapter = window.stzhComponents.utils.createFormatParseAdapter(\n this.localization.$formats,\n this.localization.$globals\n );\n }\n }\n\n @Watch(\"currentDate\")\n currentDateWatcher(newValue: Date | string) {\n if (!newValue) {\n this._currentDate = this.dateByValue || this.earliestDate;\n\n if (!this.dateByValue) {\n this.setValueToFirstAppointmentOfCurrentDate();\n }\n } else if (typeof newValue === \"string\") {\n this._currentDate = parseISODate(newValue);\n this.setValueToFirstAppointmentOfCurrentDate();\n } else {\n this._currentDate = newValue;\n // Check if value already corresponds to a valid appointment on the new date\n const appointmentsForNewDate = this.getCurrentDateAppointments().map(appt => appt.value);\n if (!appointmentsForNewDate.includes(this.value)) {\n this.setValueToFirstAppointmentOfCurrentDate();\n }\n }\n }\n\n @Watch(\"sortBy\")\n sortByWatcher() {\n this.setValueToFirstAppointmentOfCurrentDate();\n }\n\n @Watch(\"value\")\n valueWatcher() {\n this.updateDateByValue();\n // update current date if user has not choosen one\n this.currentDateWatcher(this.currentDate);\n }\n\n @Watch(\"appointments\")\n appointmentsWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._appointments = JSON.parse(newValue);\n } else {\n this._appointments = newValue;\n }\n\n // convert start and end field to date\n this._appointments = this._appointments.map(appointment => ({\n ...appointment,\n start: new Date(appointment.start),\n end: new Date(appointment.end),\n }))\n\n if (this._appointments.length > 0) {\n // sort with start field and find earliest and latest date\n this._appointments.sort((a, b) => a['start'] > b['start'] ? 1 : -1);\n this.earliestDate = this._appointments[0].start;\n this.latestDate = this._appointments[this._appointments.length - 1].start;\n this.updateDateByValue();\n }\n\n // determine whether all appointments are from the same day\n if (this._appointments.length > 1) {\n const firstDate = this._appointments[0].start;\n this.allAppointsmentOnSameDay = this._appointments\n .map(appointment => appointment.start)\n .every(date => `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`\n === `${firstDate.getFullYear()}-${firstDate.getMonth()}-${firstDate.getDate()}`);\n }\n\n // update flags\n this.showCalendar = !this.allAppointsmentOnSameDay;\n this.showAppointmentsTitle = this._appointments.length > 1;\n\n // update current date if user has not choosen one\n this.currentDateWatcher(this.currentDate);\n }\n\n private dateByValue: Date;\n private earliestDate: Date;\n private latestDate: Date;\n private nextDate: Date;\n\n private showMoreLink: boolean = false;\n private moreItemsLeft: number = 0;\n private showCalendar: boolean = false;\n private showSort: boolean = false;\n private showSortStart: boolean = false;\n private showSortPlace: boolean = false;\n private showAppointmentsTitle: boolean = false;\n private allAppointsmentOnSameDay: boolean = true;\n private sortOptions = [];\n\n private inputElement: HTMLStzhRadiogroupElement;\n private datepickerElement: HTMLStzhDatepickerElement;\n private datepickerElementMedium: HTMLStzhDatepickerElement;\n\n private updateDateByValue() {\n this.dateByValue = this.value\n && this._appointments\n .find(appointment => appointment.value === this.value)\n .start;\n }\n\n private getCurrentDateAppointments() {\n let indexOfLastCurrentDayDate = 0;\n\n // filter to current date appointments that can be shown\n const appointmentsCurrentDate = this._appointments\n .filter((appointment, index) => {\n const dateIsInCurrentDay = appointment.start.getFullYear() === this._currentDate.getFullYear()\n && appointment.start.getMonth() === this._currentDate.getMonth()\n && appointment.start.getDate() === this._currentDate.getDate();\n\n if (dateIsInCurrentDay) {\n indexOfLastCurrentDayDate = index;\n }\n\n return dateIsInCurrentDay;\n });\n\n // find next day with dates or set to null\n if (this._appointments[indexOfLastCurrentDayDate + 1]) {\n this.nextDate = this._appointments[indexOfLastCurrentDayDate + 1].start;\n } else {\n this.nextDate = null;\n }\n\n // sort\n appointmentsCurrentDate.sort((a, b) => a[this.sortBy] > b[this.sortBy] ? 1 : -1);\n return appointmentsCurrentDate;\n }\n\n private setValueToFirstAppointmentOfCurrentDate() {\n // choose the first available appointment from current date\n const appointments = this.getCurrentDateAppointments()\n .filter(appointment => !appointment.disabled)\n\n if (appointments.length > 0) {\n this.value = appointments[0].value;\n this.stzhChange.emit({\n component: \"stzh-appointments\",\n value: this.value\n });\n }\n }\n\n private isDateDisabled = (date: Date) => {\n const dateHasAppointment: boolean = !!this._appointments.find(appointment => {\n return appointment.start.getFullYear() === date.getFullYear()\n && appointment.start.getMonth() === date.getMonth()\n && appointment.start.getDate() === date.getDate();\n });\n\n return !dateHasAppointment;\n }\n\n private onNextActiveDateClick = async () => {\n if (this.nextDate) {\n this.currentDate = this.nextDate;\n\n const popover = await this.datepickerElement.getPopover();\n\n if (popover) {\n popover.hide();\n }\n }\n }\n\n private onMoreClick = () => {\n this.showItems = this.stepItems + this.showItems;\n\n // return focus to radiogroup\n const radio = this.inputElement.querySelector('stzh-radio');\n radio.focus();\n }\n\n private onDropdownChange = async (event: CustomEvent<StzhDropdownChangeEvent>) => {\n const target: HTMLStzhDropdownElement = event.target as HTMLStzhDropdownElement;\n\n const sortBy = await target.getValue() as \"start\" | \"place\" | \"\";\n\n if (sortBy) {\n this.sortBy = sortBy;\n }\n }\n\n private onDatepickerChange = (event: CustomEvent<StzhDatepickerChangeEvent>) => {\n if (event.detail.component !== 'stzh-datepicker' || !event.detail.valueAsDate) {\n return;\n }\n\n this.currentDate = event.detail.valueAsDate;\n // reset number of items that should be shown\n this.showItems = this._initialShowItems;\n }\n\n private onRadioChange = (event: CustomEvent<StzhRadioChangeEvent>) => {\n this.value = event.detail.value;\n this.stzhChange.emit({\n component: \"stzh-appointments\",\n value: this.value\n });\n }\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n this.appointmentsWatcher(this.appointments);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"appointments\");\n }\n\n this.dateAdapterWatcher(this.dateAdapter);\n }\n\n componentWillRender() {\n const appointments = this.getCurrentDateAppointments();\n\n // slice to max that should be visible\n this.appointmentsShown = appointments.slice(0, this.showItems);\n\n // set flags\n this.showMoreLink = this.showItems < appointments.length;\n this.moreItemsLeft = appointments.length - this.showItems;\n\n // don't show time sort when only one time in the current day\n this.showSortStart = !this.disableSort && appointments\n .map(appointment => {\n return this.dateAdapter.format(appointment.start, \"time\");\n }).filter((item, pos, self) => {\n return self.indexOf(item) == pos;\n }).length > 1;\n\n // don't show place sort when only one place in the current day\n this.showSortPlace = !this.disableSort && appointments\n .map(appointment => {\n return appointment.place;\n }).filter((item, pos, self) => {\n return self.indexOf(item) == pos;\n }).length > 1;\n\n this.sortOptions = [];\n\n if (this.showSortStart) {\n this.sortOptions.push({\n text: this.localization.sortByTime,\n value: \"start\"\n });\n }\n\n if (this.showSortPlace) {\n this.sortOptions.push({\n text: this.localization.sortByPlace,\n value: \"place\"\n });\n }\n\n this.showSort = !this.disableSort && this.appointmentsShown.length > 1;\n\n // determine sort (force alternative sorting if it makes sense)\n this._sortBy =\n (this.showSortStart && !this.showSortPlace && \"start\")\n || (!this.showSortStart && this.showSortPlace && \"place\")\n || this.sortBy;\n }\n\n componentDidRender() {\n // set datepickers values to current date\n if (this.datepickerElement) {\n this.datepickerElement.setDate(this._currentDate);\n }\n\n if (this.datepickerElementMedium) {\n this.datepickerElementMedium.setDate(this._currentDate);\n }\n }\n\n render() {\n const headingUsed: boolean = hasSlot(this.element, \"heading\");\n\n const classes = {\n \"stzh-appointments\": true,\n \"stzh-appointments--has-calendar\": this.showCalendar,\n \"stzh-appointments--has-appointments-title\": this.showAppointmentsTitle,\n \"stzh-appointments--has-sort\": this.showSort\n };\n\n return (\n <Host has-heading={headingUsed}>\n <div class={classes}>\n <div class=\"stzh-appointments__heading\">\n <slot name=\"heading\"></slot>\n </div>\n\n <div class=\"stzh-appointments__wrapper\">\n {this.showCalendar &&\n <div class=\"stzh-appointments__calendar-wrapper\">\n <div class=\"stzh-appointments__calendar-title-wrapper\">\n <div class=\"stzh-appointments__calendar-title\">\n <stzh-icon class=\"stzh-appointments__calendar-icon\" name=\"calendar\"></stzh-icon>\n <span class=\"stzh-appointments__calendar-title-text\">\n {this.calendarTitle || this.localization.calendarTitle}\n </span>\n </div>\n </div>\n <div class=\"stzh-appointments__calendar-content\">\n <stzh-datepicker\n hide-optional\n ref={(el) => (this.datepickerElement = el as HTMLStzhDatepickerElement)}\n onStzhChange={this.onDatepickerChange}\n label={this.localization.datepickerLabel}\n calendarIsDateDisabled={this.isDateDisabled}\n calendarMin={printISODate(this.earliestDate)}\n calendarMax={printISODate(this.latestDate)}\n >\n <stzh-link\n slot=\"action\"\n size=\"inherit\"\n disabled={!this.nextDate}\n onClick={this.onNextActiveDateClick}\n >\n {this.localization.nextDayWithAppointments}\n </stzh-link>\n </stzh-datepicker>\n </div>\n <div class=\"stzh-appointments__calendar-content-medium\">\n <stzh-datepicker\n hide-optional\n ref={(el) => (this.datepickerElementMedium = el as HTMLStzhDatepickerElement)}\n onStzhChange={this.onDatepickerChange}\n inline\n calendarIsDateDisabled={this.isDateDisabled}\n calendarMin={printISODate(this.earliestDate)}\n calendarMax={printISODate(this.latestDate)}\n >\n {this.nextDate &&\n <stzh-link\n slot=\"action\"\n size=\"inherit\"\n onClick={this.onNextActiveDateClick}\n >\n {this.localization.nextDayWithAppointments}\n </stzh-link>\n }\n </stzh-datepicker>\n </div>\n </div>\n }\n <div class=\"stzh-appointments__appointments-wrapper\">\n {this.showAppointmentsTitle &&\n <div class=\"stzh-appointments__appointments-title-wrapper\">\n <div class=\"stzh-appointments__appointments-title\">\n <stzh-icon class=\"stzh-appointments__appointments-icon\" name=\"clock\"></stzh-icon>\n <span class=\"stzh-appointments__appointments-title-text\">\n {this.appointmentsTitle || this.localization.appointmentsTitle}\n </span>\n </div>\n {this.showSort &&\n <div class=\"stzh-appointments__sort\">\n <stzh-dropdown\n hide-optional\n inline\n no-search\n class=\"stzh-appointments__sort-dropdown\"\n variant=\"plain\"\n size=\"small\"\n sizeMedium={\"tiny\"}\n items={[this._sortBy]}\n options={this.sortOptions}\n onStzhChange={this.onDropdownChange}\n ></stzh-dropdown>\n </div>\n }\n </div>\n }\n\n <div class=\"stzh-appointments__appointments-content\">\n <stzh-radiogroup\n class=\"stzh-appointments__appointments-radiogroup\"\n ref={(el) => this.inputElement = el as HTMLStzhRadiogroupElement}\n legend={this.localization.inputLegend}\n hide-legend\n name={this.name}\n value={this.value}\n preventUpdateProperties={[\"disabled\"]}\n >\n {this.appointmentsShown.map((appointment) =>\n <stzh-radio\n onStzhChange={this.onRadioChange}\n value={appointment.value}\n disabled={typeof appointment.disabled !== \"undefined\" ? appointment.disabled : false}\n >\n <stzh-text font=\"heavy\" size=\"centi\">\n {!this.showCalendar && <span>{this.dateAdapter.format(appointment.start, \"dateLong\")},&nbsp;</span>}\n {this.dateAdapter.formatSpan(appointment.start, appointment.end, \"time\")}\n </stzh-text>\n <stzh-text size=\"milli\">{appointment.caption}</stzh-text>\n </stzh-radio>\n )}\n </stzh-radiogroup>\n\n {this.showMoreLink &&\n <stzh-link\n class=\"stzh-appointments__more-link\"\n size=\"inherit\"\n onClick={this.onMoreClick}\n >\n {tc(this.localization.moreTextItems,\n this.moreItemsLeft > this.stepItems\n ? this.stepItems\n : this.moreItemsLeft)}\n </stzh-link>\n }\n </div>\n </div>\n </div>\n\n {/* <div class=\"stzh-appointments__actions\">\n <slot name=\"actions\"></slot>\n </div> */}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -125,7 +125,13 @@ const StzhCheckboxgroup$1 = /*@__PURE__*/ proxyCustomElement(class StzhCheckboxg
125
125
  }
126
126
  updateCheckboxesProperty(prop, value) {
127
127
  this.checkboxes.forEach((checkbox) => {
128
- if (prop === "name" || (this._preventUpdateProperties.indexOf(prop) === -1)) {
128
+ if (prop === "disabled") {
129
+ // Only set the disabled if the checkbox is not already disabled
130
+ if (!checkbox.disabled) {
131
+ checkbox.disabled = value;
132
+ }
133
+ }
134
+ else if (prop === "name" || (this._preventUpdateProperties.indexOf(prop) === -1)) {
129
135
  checkbox[camelCase(prop)] = value;
130
136
  }
131
137
  });