@erst-vg/dkfds-vite 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1183) hide show
  1. package/LICENSE.md +42 -0
  2. package/README.md +55 -0
  3. package/dist/README.md +55 -0
  4. package/dist/css/dkfds-borgerdk.css +12066 -0
  5. package/dist/css/dkfds-borgerdk.min.css +4 -0
  6. package/dist/css/dkfds-borgerdk.min.css.map +1 -0
  7. package/dist/css/dkfds-virkdk.css +12066 -0
  8. package/dist/css/dkfds-virkdk.min.css +4 -0
  9. package/dist/css/dkfds-virkdk.min.css.map +1 -0
  10. package/dist/css/dkfds.css +12066 -0
  11. package/dist/css/dkfds.min.css +4 -0
  12. package/dist/css/dkfds.min.css.map +1 -0
  13. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Bold.eot +0 -0
  14. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-BoldItalic.eot +0 -0
  15. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-ExtraLight.eot +0 -0
  16. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-ExtraLightItalic.eot +0 -0
  17. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Italic.eot +0 -0
  18. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Light.eot +0 -0
  19. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-LightItalic.eot +0 -0
  20. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Medium.eot +0 -0
  21. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-MediumItalic.eot +0 -0
  22. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Regular.eot +0 -0
  23. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-SemiBold.eot +0 -0
  24. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-SemiBoldItalic.eot +0 -0
  25. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Text.eot +0 -0
  26. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-TextItalic.eot +0 -0
  27. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Thin.eot +0 -0
  28. package/dist/fonts/IBMPlexSans/complete/eot/IBMPlexSans-ThinItalic.eot +0 -0
  29. package/dist/fonts/IBMPlexSans/complete/eot/license.txt +92 -0
  30. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Bold.otf +0 -0
  31. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-BoldItalic.otf +0 -0
  32. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-ExtraLight.otf +0 -0
  33. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-ExtraLightItalic.otf +0 -0
  34. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Italic.otf +0 -0
  35. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Light.otf +0 -0
  36. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-LightItalic.otf +0 -0
  37. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Medium.otf +0 -0
  38. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-MediumItalic.otf +0 -0
  39. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Regular.otf +0 -0
  40. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-SemiBold.otf +0 -0
  41. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-SemiBoldItalic.otf +0 -0
  42. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Text.otf +0 -0
  43. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-TextItalic.otf +0 -0
  44. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Thin.otf +0 -0
  45. package/dist/fonts/IBMPlexSans/complete/otf/IBMPlexSans-ThinItalic.otf +0 -0
  46. package/dist/fonts/IBMPlexSans/complete/otf/license.txt +92 -0
  47. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Bold.ttf +0 -0
  48. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-BoldItalic.ttf +0 -0
  49. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-ExtraLight.ttf +0 -0
  50. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-ExtraLightItalic.ttf +0 -0
  51. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Italic.ttf +0 -0
  52. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Light.ttf +0 -0
  53. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-LightItalic.ttf +0 -0
  54. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Medium.ttf +0 -0
  55. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-MediumItalic.ttf +0 -0
  56. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Regular.ttf +0 -0
  57. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-SemiBold.ttf +0 -0
  58. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-SemiBoldItalic.ttf +0 -0
  59. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Text.ttf +0 -0
  60. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-TextItalic.ttf +0 -0
  61. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Thin.ttf +0 -0
  62. package/dist/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-ThinItalic.ttf +0 -0
  63. package/dist/fonts/IBMPlexSans/complete/ttf/license.txt +92 -0
  64. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Bold.woff +0 -0
  65. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-BoldItalic.woff +0 -0
  66. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-ExtraLight.woff +0 -0
  67. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-ExtraLightItalic.woff +0 -0
  68. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Italic.woff +0 -0
  69. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Light.woff +0 -0
  70. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-LightItalic.woff +0 -0
  71. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Medium.woff +0 -0
  72. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-MediumItalic.woff +0 -0
  73. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Regular.woff +0 -0
  74. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-SemiBold.woff +0 -0
  75. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-SemiBoldItalic.woff +0 -0
  76. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Text.woff +0 -0
  77. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-TextItalic.woff +0 -0
  78. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Thin.woff +0 -0
  79. package/dist/fonts/IBMPlexSans/complete/woff/IBMPlexSans-ThinItalic.woff +0 -0
  80. package/dist/fonts/IBMPlexSans/complete/woff/license.txt +92 -0
  81. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Bold.woff2 +0 -0
  82. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-BoldItalic.woff2 +0 -0
  83. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-ExtraLight.woff2 +0 -0
  84. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-ExtraLightItalic.woff2 +0 -0
  85. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Italic.woff2 +0 -0
  86. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Light.woff2 +0 -0
  87. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-LightItalic.woff2 +0 -0
  88. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Medium.woff2 +0 -0
  89. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-MediumItalic.woff2 +0 -0
  90. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Regular.woff2 +0 -0
  91. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-SemiBold.woff2 +0 -0
  92. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-SemiBoldItalic.woff2 +0 -0
  93. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Text.woff2 +0 -0
  94. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-TextItalic.woff2 +0 -0
  95. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Thin.woff2 +0 -0
  96. package/dist/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-ThinItalic.woff2 +0 -0
  97. package/dist/fonts/IBMPlexSans/complete/woff2/license.txt +92 -0
  98. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Cyrillic.woff +0 -0
  99. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Greek.woff +0 -0
  100. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Latin1.woff +0 -0
  101. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Latin2.woff +0 -0
  102. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Latin3.woff +0 -0
  103. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Pi.woff +0 -0
  104. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Cyrillic.woff +0 -0
  105. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Greek.woff +0 -0
  106. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Latin1.woff +0 -0
  107. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Latin2.woff +0 -0
  108. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Latin3.woff +0 -0
  109. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Pi.woff +0 -0
  110. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Cyrillic.woff +0 -0
  111. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Greek.woff +0 -0
  112. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Latin1.woff +0 -0
  113. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Latin2.woff +0 -0
  114. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Latin3.woff +0 -0
  115. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Pi.woff +0 -0
  116. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Cyrillic.woff +0 -0
  117. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Greek.woff +0 -0
  118. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Latin1.woff +0 -0
  119. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Latin2.woff +0 -0
  120. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Latin3.woff +0 -0
  121. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Pi.woff +0 -0
  122. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Cyrillic.woff +0 -0
  123. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Greek.woff +0 -0
  124. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Latin1.woff +0 -0
  125. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Latin2.woff +0 -0
  126. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Latin3.woff +0 -0
  127. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Pi.woff +0 -0
  128. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Cyrillic.woff +0 -0
  129. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Greek.woff +0 -0
  130. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Latin1.woff +0 -0
  131. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Latin2.woff +0 -0
  132. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Latin3.woff +0 -0
  133. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Pi.woff +0 -0
  134. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Cyrillic.woff +0 -0
  135. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Greek.woff +0 -0
  136. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Latin1.woff +0 -0
  137. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Latin2.woff +0 -0
  138. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Latin3.woff +0 -0
  139. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Pi.woff +0 -0
  140. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Cyrillic.woff +0 -0
  141. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Greek.woff +0 -0
  142. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Latin1.woff +0 -0
  143. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Latin2.woff +0 -0
  144. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Latin3.woff +0 -0
  145. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Pi.woff +0 -0
  146. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Cyrillic.woff +0 -0
  147. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Greek.woff +0 -0
  148. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Latin1.woff +0 -0
  149. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Latin2.woff +0 -0
  150. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Latin3.woff +0 -0
  151. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Pi.woff +0 -0
  152. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Cyrillic.woff +0 -0
  153. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Greek.woff +0 -0
  154. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Latin1.woff +0 -0
  155. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Latin2.woff +0 -0
  156. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Latin3.woff +0 -0
  157. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Pi.woff +0 -0
  158. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Cyrillic.woff +0 -0
  159. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Greek.woff +0 -0
  160. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Latin1.woff +0 -0
  161. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Latin2.woff +0 -0
  162. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Latin3.woff +0 -0
  163. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Pi.woff +0 -0
  164. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Cyrillic.woff +0 -0
  165. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Greek.woff +0 -0
  166. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Latin1.woff +0 -0
  167. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Latin2.woff +0 -0
  168. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Latin3.woff +0 -0
  169. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Pi.woff +0 -0
  170. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Cyrillic.woff +0 -0
  171. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Greek.woff +0 -0
  172. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Latin1.woff +0 -0
  173. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Latin2.woff +0 -0
  174. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Latin3.woff +0 -0
  175. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Pi.woff +0 -0
  176. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Cyrillic.woff +0 -0
  177. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Greek.woff +0 -0
  178. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Latin1.woff +0 -0
  179. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Latin2.woff +0 -0
  180. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Latin3.woff +0 -0
  181. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Pi.woff +0 -0
  182. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Cyrillic.woff +0 -0
  183. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Greek.woff +0 -0
  184. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Latin1.woff +0 -0
  185. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Latin2.woff +0 -0
  186. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Latin3.woff +0 -0
  187. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Pi.woff +0 -0
  188. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Cyrillic.woff +0 -0
  189. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Greek.woff +0 -0
  190. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Latin1.woff +0 -0
  191. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Latin2.woff +0 -0
  192. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Latin3.woff +0 -0
  193. package/dist/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Pi.woff +0 -0
  194. package/dist/fonts/IBMPlexSans/split/woff/license.txt +92 -0
  195. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Cyrillic.woff2 +0 -0
  196. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Greek.woff2 +0 -0
  197. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Latin1.woff2 +0 -0
  198. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Latin2.woff2 +0 -0
  199. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Latin3.woff2 +0 -0
  200. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Pi.woff2 +0 -0
  201. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Cyrillic.woff2 +0 -0
  202. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Greek.woff2 +0 -0
  203. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Latin1.woff2 +0 -0
  204. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Latin2.woff2 +0 -0
  205. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Latin3.woff2 +0 -0
  206. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Pi.woff2 +0 -0
  207. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Cyrillic.woff2 +0 -0
  208. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Greek.woff2 +0 -0
  209. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Latin1.woff2 +0 -0
  210. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Latin2.woff2 +0 -0
  211. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Latin3.woff2 +0 -0
  212. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Pi.woff2 +0 -0
  213. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Cyrillic.woff2 +0 -0
  214. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Greek.woff2 +0 -0
  215. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Latin1.woff2 +0 -0
  216. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Latin2.woff2 +0 -0
  217. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Latin3.woff2 +0 -0
  218. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Pi.woff2 +0 -0
  219. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Cyrillic.woff2 +0 -0
  220. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Greek.woff2 +0 -0
  221. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Latin1.woff2 +0 -0
  222. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Latin2.woff2 +0 -0
  223. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Latin3.woff2 +0 -0
  224. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Pi.woff2 +0 -0
  225. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Cyrillic.woff2 +0 -0
  226. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Greek.woff2 +0 -0
  227. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Latin1.woff2 +0 -0
  228. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Latin2.woff2 +0 -0
  229. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Latin3.woff2 +0 -0
  230. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Pi.woff2 +0 -0
  231. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Cyrillic.woff2 +0 -0
  232. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Greek.woff2 +0 -0
  233. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Latin1.woff2 +0 -0
  234. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Latin2.woff2 +0 -0
  235. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Latin3.woff2 +0 -0
  236. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Pi.woff2 +0 -0
  237. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Cyrillic.woff2 +0 -0
  238. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Greek.woff2 +0 -0
  239. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Latin1.woff2 +0 -0
  240. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Latin2.woff2 +0 -0
  241. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Latin3.woff2 +0 -0
  242. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Pi.woff2 +0 -0
  243. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Cyrillic.woff2 +0 -0
  244. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Greek.woff2 +0 -0
  245. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Latin1.woff2 +0 -0
  246. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Latin2.woff2 +0 -0
  247. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Latin3.woff2 +0 -0
  248. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Pi.woff2 +0 -0
  249. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Cyrillic.woff2 +0 -0
  250. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Greek.woff2 +0 -0
  251. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Latin1.woff2 +0 -0
  252. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Latin2.woff2 +0 -0
  253. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Latin3.woff2 +0 -0
  254. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Pi.woff2 +0 -0
  255. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Cyrillic.woff2 +0 -0
  256. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Greek.woff2 +0 -0
  257. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Latin1.woff2 +0 -0
  258. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Latin2.woff2 +0 -0
  259. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Latin3.woff2 +0 -0
  260. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Pi.woff2 +0 -0
  261. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Cyrillic.woff2 +0 -0
  262. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Greek.woff2 +0 -0
  263. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Latin1.woff2 +0 -0
  264. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Latin2.woff2 +0 -0
  265. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Latin3.woff2 +0 -0
  266. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Pi.woff2 +0 -0
  267. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Cyrillic.woff2 +0 -0
  268. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Greek.woff2 +0 -0
  269. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Latin1.woff2 +0 -0
  270. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Latin2.woff2 +0 -0
  271. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Latin3.woff2 +0 -0
  272. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Pi.woff2 +0 -0
  273. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Cyrillic.woff2 +0 -0
  274. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Greek.woff2 +0 -0
  275. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Latin1.woff2 +0 -0
  276. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Latin2.woff2 +0 -0
  277. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Latin3.woff2 +0 -0
  278. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Pi.woff2 +0 -0
  279. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Cyrillic.woff2 +0 -0
  280. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Greek.woff2 +0 -0
  281. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Latin1.woff2 +0 -0
  282. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Latin2.woff2 +0 -0
  283. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Latin3.woff2 +0 -0
  284. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Pi.woff2 +0 -0
  285. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Cyrillic.woff2 +0 -0
  286. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Greek.woff2 +0 -0
  287. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Latin1.woff2 +0 -0
  288. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Latin2.woff2 +0 -0
  289. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Latin3.woff2 +0 -0
  290. package/dist/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Pi.woff2 +0 -0
  291. package/dist/fonts/IBMPlexSans/split/woff2/license.txt +92 -0
  292. package/dist/img/all-svg-icons.svg +1 -0
  293. package/dist/img/favicons/favicon-erst.png +0 -0
  294. package/dist/img/favicons/favicon2-erst.png +0 -0
  295. package/dist/img/logo-borgerdk.svg +1 -0
  296. package/dist/img/logo-header-placeholder.png +0 -0
  297. package/dist/img/logo-placeholder.png +0 -0
  298. package/dist/img/logo_virk.svg +52 -0
  299. package/dist/img/svg-icons/accessibility-new.svg +1 -0
  300. package/dist/img/svg-icons/account-circle.svg +1 -0
  301. package/dist/img/svg-icons/add-a-photo.svg +1 -0
  302. package/dist/img/svg-icons/add.svg +1 -0
  303. package/dist/img/svg-icons/agriculture.svg +1 -0
  304. package/dist/img/svg-icons/apps.svg +1 -0
  305. package/dist/img/svg-icons/arrow-back.svg +1 -0
  306. package/dist/img/svg-icons/arrow-downward.svg +1 -0
  307. package/dist/img/svg-icons/arrow-drop-down.svg +1 -0
  308. package/dist/img/svg-icons/arrow-drop-up.svg +1 -0
  309. package/dist/img/svg-icons/arrow-forward.svg +1 -0
  310. package/dist/img/svg-icons/arrow-left.svg +1 -0
  311. package/dist/img/svg-icons/arrow-right.svg +1 -0
  312. package/dist/img/svg-icons/arrow-upward.svg +1 -0
  313. package/dist/img/svg-icons/assessment.svg +1 -0
  314. package/dist/img/svg-icons/assignment.svg +1 -0
  315. package/dist/img/svg-icons/attach-file.svg +1 -0
  316. package/dist/img/svg-icons/bookmark-border.svg +1 -0
  317. package/dist/img/svg-icons/bookmarks.svg +1 -0
  318. package/dist/img/svg-icons/cached.svg +1 -0
  319. package/dist/img/svg-icons/calculator.svg +1 -0
  320. package/dist/img/svg-icons/card-account-details.svg +1 -0
  321. package/dist/img/svg-icons/card-text.svg +1 -0
  322. package/dist/img/svg-icons/chat.svg +1 -0
  323. package/dist/img/svg-icons/check-circle-white.svg +1 -0
  324. package/dist/img/svg-icons/check-circle.svg +1 -0
  325. package/dist/img/svg-icons/chevron-double-left.svg +1 -0
  326. package/dist/img/svg-icons/chevron-double-right.svg +1 -0
  327. package/dist/img/svg-icons/chevron-left.svg +1 -0
  328. package/dist/img/svg-icons/chevron-right.svg +1 -0
  329. package/dist/img/svg-icons/close.svg +1 -0
  330. package/dist/img/svg-icons/construction.svg +1 -0
  331. package/dist/img/svg-icons/contact-support.svg +1 -0
  332. package/dist/img/svg-icons/content-copy.svg +1 -0
  333. package/dist/img/svg-icons/coronavirus.svg +1 -0
  334. package/dist/img/svg-icons/create-new-folder.svg +1 -0
  335. package/dist/img/svg-icons/credit-card.svg +1 -0
  336. package/dist/img/svg-icons/database.svg +1 -0
  337. package/dist/img/svg-icons/delete.svg +1 -0
  338. package/dist/img/svg-icons/desktop-windows.svg +1 -0
  339. package/dist/img/svg-icons/domain.svg +1 -0
  340. package/dist/img/svg-icons/done.svg +1 -0
  341. package/dist/img/svg-icons/download-done.svg +1 -0
  342. package/dist/img/svg-icons/drive-eta.svg +1 -0
  343. package/dist/img/svg-icons/email.svg +1 -0
  344. package/dist/img/svg-icons/engineering.svg +1 -0
  345. package/dist/img/svg-icons/expand-less.svg +1 -0
  346. package/dist/img/svg-icons/expand-more-white.svg +1 -0
  347. package/dist/img/svg-icons/expand-more.svg +1 -0
  348. package/dist/img/svg-icons/face.svg +1 -0
  349. package/dist/img/svg-icons/feedback.svg +1 -0
  350. package/dist/img/svg-icons/file-download.svg +1 -0
  351. package/dist/img/svg-icons/file-excel.svg +1 -0
  352. package/dist/img/svg-icons/file-image.svg +1 -0
  353. package/dist/img/svg-icons/file-pdf.svg +1 -0
  354. package/dist/img/svg-icons/file-upload.svg +1 -0
  355. package/dist/img/svg-icons/file-word.svg +1 -0
  356. package/dist/img/svg-icons/first-page.svg +1 -0
  357. package/dist/img/svg-icons/flag.svg +1 -0
  358. package/dist/img/svg-icons/folder-open.svg +1 -0
  359. package/dist/img/svg-icons/folder.svg +1 -0
  360. package/dist/img/svg-icons/format-align-center.svg +1 -0
  361. package/dist/img/svg-icons/format-align-justify.svg +1 -0
  362. package/dist/img/svg-icons/format-align-left.svg +1 -0
  363. package/dist/img/svg-icons/format-align-right.svg +1 -0
  364. package/dist/img/svg-icons/format-bold.svg +1 -0
  365. package/dist/img/svg-icons/format-clear.svg +1 -0
  366. package/dist/img/svg-icons/format-color-fill.svg +1 -0
  367. package/dist/img/svg-icons/format-color-text.svg +1 -0
  368. package/dist/img/svg-icons/format-indent-decrease.svg +1 -0
  369. package/dist/img/svg-icons/format-indent-increase.svg +1 -0
  370. package/dist/img/svg-icons/format-italic.svg +1 -0
  371. package/dist/img/svg-icons/format-list-bulleted.svg +1 -0
  372. package/dist/img/svg-icons/format-list-checks.svg +1 -0
  373. package/dist/img/svg-icons/format-list-numbered.svg +1 -0
  374. package/dist/img/svg-icons/format-size.svg +1 -0
  375. package/dist/img/svg-icons/format-underlined.svg +1 -0
  376. package/dist/img/svg-icons/forum.svg +1 -0
  377. package/dist/img/svg-icons/forward.svg +1 -0
  378. package/dist/img/svg-icons/fullscreen-exit.svg +1 -0
  379. package/dist/img/svg-icons/fullscreen.svg +1 -0
  380. package/dist/img/svg-icons/grade-outline.svg +1 -0
  381. package/dist/img/svg-icons/grade.svg +1 -0
  382. package/dist/img/svg-icons/groups.svg +1 -0
  383. package/dist/img/svg-icons/headphones.svg +1 -0
  384. package/dist/img/svg-icons/help.svg +1 -0
  385. package/dist/img/svg-icons/highlight-off-white.svg +1 -0
  386. package/dist/img/svg-icons/highlight-off.svg +1 -0
  387. package/dist/img/svg-icons/home.svg +1 -0
  388. package/dist/img/svg-icons/hourglass-empty.svg +1 -0
  389. package/dist/img/svg-icons/how-to-reg.svg +1 -0
  390. package/dist/img/svg-icons/info-white.svg +56 -0
  391. package/dist/img/svg-icons/info.svg +1 -0
  392. package/dist/img/svg-icons/insert-drive-file.svg +1 -0
  393. package/dist/img/svg-icons/insert-invitation.svg +1 -0
  394. package/dist/img/svg-icons/language.svg +1 -0
  395. package/dist/img/svg-icons/laptop.svg +1 -0
  396. package/dist/img/svg-icons/last-page.svg +1 -0
  397. package/dist/img/svg-icons/link.svg +1 -0
  398. package/dist/img/svg-icons/list-alt.svg +1 -0
  399. package/dist/img/svg-icons/local-shipping.svg +1 -0
  400. package/dist/img/svg-icons/location-on.svg +1 -0
  401. package/dist/img/svg-icons/lock-open.svg +1 -0
  402. package/dist/img/svg-icons/lock.svg +1 -0
  403. package/dist/img/svg-icons/map.svg +1 -0
  404. package/dist/img/svg-icons/menu.svg +1 -0
  405. package/dist/img/svg-icons/mode.svg +1 -0
  406. package/dist/img/svg-icons/more-horiz.svg +1 -0
  407. package/dist/img/svg-icons/more-vert.svg +1 -0
  408. package/dist/img/svg-icons/mouse.svg +1 -0
  409. package/dist/img/svg-icons/note-add.svg +1 -0
  410. package/dist/img/svg-icons/notifications.svg +1 -0
  411. package/dist/img/svg-icons/open-in-new.svg +1 -0
  412. package/dist/img/svg-icons/open-with.svg +1 -0
  413. package/dist/img/svg-icons/outlined-flag.svg +1 -0
  414. package/dist/img/svg-icons/palette.svg +1 -0
  415. package/dist/img/svg-icons/payments.svg +1 -0
  416. package/dist/img/svg-icons/people-alt.svg +1 -0
  417. package/dist/img/svg-icons/person-add-alt-1.svg +1 -0
  418. package/dist/img/svg-icons/person-remove.svg +1 -0
  419. package/dist/img/svg-icons/person.svg +1 -0
  420. package/dist/img/svg-icons/phone-iphone.svg +1 -0
  421. package/dist/img/svg-icons/photo-camera.svg +1 -0
  422. package/dist/img/svg-icons/playlist-add-check.svg +1 -0
  423. package/dist/img/svg-icons/playlist-add.svg +1 -0
  424. package/dist/img/svg-icons/print.svg +1 -0
  425. package/dist/img/svg-icons/query-builder.svg +1 -0
  426. package/dist/img/svg-icons/refresh.svg +1 -0
  427. package/dist/img/svg-icons/remove.svg +1 -0
  428. package/dist/img/svg-icons/reply.svg +1 -0
  429. package/dist/img/svg-icons/report-problem.svg +1 -0
  430. package/dist/img/svg-icons/save.svg +1 -0
  431. package/dist/img/svg-icons/school.svg +1 -0
  432. package/dist/img/svg-icons/science.svg +1 -0
  433. package/dist/img/svg-icons/search.svg +1 -0
  434. package/dist/img/svg-icons/send.svg +1 -0
  435. package/dist/img/svg-icons/settings.svg +1 -0
  436. package/dist/img/svg-icons/share.svg +1 -0
  437. package/dist/img/svg-icons/shopping-cart.svg +1 -0
  438. package/dist/img/svg-icons/sort-ascending.svg +2 -0
  439. package/dist/img/svg-icons/sort-by-alpha.svg +1 -0
  440. package/dist/img/svg-icons/sort-default.svg +1 -0
  441. package/dist/img/svg-icons/sort-descending.svg +1 -0
  442. package/dist/img/svg-icons/sort-table-ascending.svg +1 -0
  443. package/dist/img/svg-icons/sort-table-descending.svg +1 -0
  444. package/dist/img/svg-icons/sort-table-none.svg +1 -0
  445. package/dist/img/svg-icons/sort.svg +1 -0
  446. package/dist/img/svg-icons/subdirectory-arrow-left.svg +1 -0
  447. package/dist/img/svg-icons/subdirectory-arrow-right.svg +1 -0
  448. package/dist/img/svg-icons/support-agent.svg +1 -0
  449. package/dist/img/svg-icons/text-format.svg +1 -0
  450. package/dist/img/svg-icons/trash-can.svg +1 -0
  451. package/dist/img/svg-icons/tune.svg +1 -0
  452. package/dist/img/svg-icons/vertical-split.svg +1 -0
  453. package/dist/img/svg-icons/videocam.svg +1 -0
  454. package/dist/img/svg-icons/view-headline.svg +1 -0
  455. package/dist/img/svg-icons/visibility-off.svg +1 -0
  456. package/dist/img/svg-icons/visibility.svg +1 -0
  457. package/dist/img/svg-icons/zoom-in.svg +1 -0
  458. package/dist/img/svg-icons/zoom-out.svg +1 -0
  459. package/dist/js/dkfds.js +7050 -0
  460. package/dist/js/dkfds.min.js +2 -0
  461. package/dist/js/dkfds.min.js.map +1 -0
  462. package/dist/scss/_dkfds-base.scss +76 -0
  463. package/dist/scss/components/_accordions.scss +162 -0
  464. package/dist/scss/components/_alerts.scss +113 -0
  465. package/dist/scss/components/_breadcrumbs.scss +62 -0
  466. package/dist/scss/components/_cards.scss +235 -0
  467. package/dist/scss/components/_cookie-message.scss +41 -0
  468. package/dist/scss/components/_date-picker.scss +391 -0
  469. package/dist/scss/components/_details.scss +61 -0
  470. package/dist/scss/components/_footer.scss +83 -0
  471. package/dist/scss/components/_header.scss +339 -0
  472. package/dist/scss/components/_language-switcher.scss +63 -0
  473. package/dist/scss/components/_modal.scss +155 -0
  474. package/dist/scss/components/_navigation.scss +544 -0
  475. package/dist/scss/components/_overflow-menu.scss +234 -0
  476. package/dist/scss/components/_page-navigation.scss +12 -0
  477. package/dist/scss/components/_pagination.scss +136 -0
  478. package/dist/scss/components/_search.scss +33 -0
  479. package/dist/scss/components/_sidenav.scss +205 -0
  480. package/dist/scss/components/_skipnav.scss +31 -0
  481. package/dist/scss/components/_tabnav.scss +122 -0
  482. package/dist/scss/components/_toast.scss +105 -0
  483. package/dist/scss/components/_tooltip.scss +72 -0
  484. package/dist/scss/core/_base.scss +28 -0
  485. package/dist/scss/core/_fonts.scss +139 -0
  486. package/dist/scss/core/_functions.scss +593 -0
  487. package/dist/scss/core/_grid.scss +118 -0
  488. package/dist/scss/core/_print.scss +187 -0
  489. package/dist/scss/core/_properties.scss +145 -0
  490. package/dist/scss/core/_system-tokens.scss +403 -0
  491. package/dist/scss/core/_typography.scss +500 -0
  492. package/dist/scss/core/_variables.scss +18 -0
  493. package/dist/scss/core/colors/_blue.scss +8 -0
  494. package/dist/scss/core/colors/_data-blue.scss +13 -0
  495. package/dist/scss/core/colors/_data-green-blue.scss +13 -0
  496. package/dist/scss/core/colors/_data-green.scss +13 -0
  497. package/dist/scss/core/colors/_data-orange.scss +13 -0
  498. package/dist/scss/core/colors/_data-pink-violet.scss +13 -0
  499. package/dist/scss/core/colors/_data-violet.scss +13 -0
  500. package/dist/scss/core/colors/_data-yellow-red.scss +13 -0
  501. package/dist/scss/core/colors/_gray.scss +11 -0
  502. package/dist/scss/core/colors/_green.scss +6 -0
  503. package/dist/scss/core/colors/_orange.scss +7 -0
  504. package/dist/scss/core/colors/_purple.scss +6 -0
  505. package/dist/scss/core/colors/_red.scss +6 -0
  506. package/dist/scss/core/mixins/_add-background-svg.scss +7 -0
  507. package/dist/scss/core/mixins/_breakpoints.scss +119 -0
  508. package/dist/scss/core/mixins/_grid-mixins.scss +42 -0
  509. package/dist/scss/core/mixins/_mixins.scss +126 -0
  510. package/dist/scss/core/utilities/_background.scss +15 -0
  511. package/dist/scss/core/utilities/_display.scss +26 -0
  512. package/dist/scss/core/utilities/_flex.scss +43 -0
  513. package/dist/scss/core/utilities/_position.scss +35 -0
  514. package/dist/scss/core/utilities/_spacing.scss +50 -0
  515. package/dist/scss/core/utilities/_text-color.scss +5 -0
  516. package/dist/scss/core/utilities/_textalign.scss +13 -0
  517. package/dist/scss/core/utilities/_width.scss +26 -0
  518. package/dist/scss/dkfds-borgerdk.scss +4 -0
  519. package/dist/scss/dkfds-virkdk.scss +4 -0
  520. package/dist/scss/dkfds.scss +4 -0
  521. package/dist/scss/elements/_badge.scss +36 -0
  522. package/dist/scss/elements/_buttons.scss +280 -0
  523. package/dist/scss/elements/_collapse.scss +17 -0
  524. package/dist/scss/elements/_embed.scss +27 -0
  525. package/dist/scss/elements/_figure.scss +7 -0
  526. package/dist/scss/elements/_forms.scss +93 -0
  527. package/dist/scss/elements/_hr.scss +5 -0
  528. package/dist/scss/elements/_icons.scss +204 -0
  529. package/dist/scss/elements/_inputs.scss +589 -0
  530. package/dist/scss/elements/_list.scss +83 -0
  531. package/dist/scss/elements/_page.scss +34 -0
  532. package/dist/scss/elements/_section.scss +3 -0
  533. package/dist/scss/elements/_spinner.scss +76 -0
  534. package/dist/scss/elements/_table.scss +283 -0
  535. package/dist/scss/elements/_tags.scss +64 -0
  536. package/dist/scss/elements/_toggle.scss +113 -0
  537. package/dist/scss/lib/_normalize.scss +349 -0
  538. package/dist/scss/settings/_settings-color.scss +46 -0
  539. package/dist/scss/settings/_settings-components.scss +415 -0
  540. package/dist/scss/settings/_settings-general.scss +43 -0
  541. package/dist/scss/settings/_settings-typography.scss +212 -0
  542. package/dist/scss/themes/_borgerdk.scss +23 -0
  543. package/dist/scss/themes/_virkdk.scss +21 -0
  544. package/package.json +58 -0
  545. package/src/components/accordion/accordion.njk +43 -0
  546. package/src/components/accordion/accordion.yaml +62 -0
  547. package/src/components/alerts/alerts.njk +19 -0
  548. package/src/components/alerts/alerts.yaml +41 -0
  549. package/src/components/badge/badges.njk +3 -0
  550. package/src/components/badge/badges.yaml +9 -0
  551. package/src/components/breadcrumbs/breadcrumbs.njk +15 -0
  552. package/src/components/breadcrumbs/breadcrumbs.yaml +45 -0
  553. package/src/components/buttons/buttons.njk +11 -0
  554. package/src/components/buttons/buttons.yaml +25 -0
  555. package/src/components/cards/cards.njk +56 -0
  556. package/src/components/cards/cards.yaml +39 -0
  557. package/src/components/cookie-message/cookie-message.njk +20 -0
  558. package/src/components/cookie-message/cookie-message.yaml +17 -0
  559. package/src/components/details/details.njk +8 -0
  560. package/src/components/details/details.yaml +9 -0
  561. package/src/components/footers/footer.njk +40 -0
  562. package/src/components/footers/footer.yaml +66 -0
  563. package/src/components/form/controls/checkbox.njk +4 -0
  564. package/src/components/form/controls/checkbox.yaml +41 -0
  565. package/src/components/form/controls/date-input.njk +30 -0
  566. package/src/components/form/controls/date-input.yaml +81 -0
  567. package/src/components/form/controls/date-picker.njk +13 -0
  568. package/src/components/form/controls/date-picker.yaml +62 -0
  569. package/src/components/form/controls/errormessage.njk +5 -0
  570. package/src/components/form/controls/errormessage.yaml +9 -0
  571. package/src/components/form/controls/helptext.njk +7 -0
  572. package/src/components/form/controls/helptext.yaml +9 -0
  573. package/src/components/form/controls/label.njk +8 -0
  574. package/src/components/form/controls/label.yaml +28 -0
  575. package/src/components/form/controls/radiobutton.njk +7 -0
  576. package/src/components/form/controls/radiobutton.yaml +54 -0
  577. package/src/components/form/controls/select.njk +19 -0
  578. package/src/components/form/controls/select.yaml +73 -0
  579. package/src/components/form/controls/text-area.njk +16 -0
  580. package/src/components/form/controls/text-area.yaml +74 -0
  581. package/src/components/form/controls/text-input.njk +29 -0
  582. package/src/components/form/controls/text-input.yaml +89 -0
  583. package/src/components/header/header.njk +46 -0
  584. package/src/components/header/header.yaml +101 -0
  585. package/src/components/icons/base-svg.njk +163 -0
  586. package/src/components/icons/icons--svg.njk +1 -0
  587. package/src/components/icons/icons--svg.yaml +25 -0
  588. package/src/components/icons/icons.njk +3 -0
  589. package/src/components/icons/icons.yaml +13 -0
  590. package/src/components/labels/labels.njk +3 -0
  591. package/src/components/labels/labels.yaml +9 -0
  592. package/src/components/language-switcher/language-switcher.njk +11 -0
  593. package/src/components/language-switcher/language-switcher.yaml +30 -0
  594. package/src/components/modal/modal.njk +21 -0
  595. package/src/components/modal/modal.yaml +25 -0
  596. package/src/components/overflow-menu/overflow-menu-sort.njk +15 -0
  597. package/src/components/overflow-menu/overflow-menu-sort.yaml +37 -0
  598. package/src/components/overflow-menu/overflow-menu.njk +13 -0
  599. package/src/components/overflow-menu/overflow-menu.yaml +33 -0
  600. package/src/components/pagination/pagination.njk +78 -0
  601. package/src/components/pagination/pagination.yaml +25 -0
  602. package/src/components/side-navigation/sidenav.njk +11 -0
  603. package/src/components/side-navigation/sidenav.yaml +41 -0
  604. package/src/components/side-navigation/stepguide.njk +23 -0
  605. package/src/components/side-navigation/stepguide.yaml +37 -0
  606. package/src/components/spinner/spinner.njk +4 -0
  607. package/src/components/spinner/spinner.yaml +5 -0
  608. package/src/components/table/table.njk +56 -0
  609. package/src/components/table/table.yaml +42 -0
  610. package/src/components/tabnav/tabnav.njk +19 -0
  611. package/src/components/tabnav/tabnav.yaml +33 -0
  612. package/src/components/tags/tags.njk +4 -0
  613. package/src/components/tags/tags.yaml +18 -0
  614. package/src/components/toast/toast.njk +10 -0
  615. package/src/components/toast/toast.yaml +17 -0
  616. package/src/components/toggle/toggle.njk +4 -0
  617. package/src/components/toggle/toggle.yaml +38 -0
  618. package/src/components/type/links.njk +3 -0
  619. package/src/components/type/lists.njk +25 -0
  620. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Bold.eot +0 -0
  621. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-BoldItalic.eot +0 -0
  622. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-ExtraLight.eot +0 -0
  623. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-ExtraLightItalic.eot +0 -0
  624. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Italic.eot +0 -0
  625. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Light.eot +0 -0
  626. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-LightItalic.eot +0 -0
  627. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Medium.eot +0 -0
  628. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-MediumItalic.eot +0 -0
  629. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Regular.eot +0 -0
  630. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-SemiBold.eot +0 -0
  631. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-SemiBoldItalic.eot +0 -0
  632. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Text.eot +0 -0
  633. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-TextItalic.eot +0 -0
  634. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-Thin.eot +0 -0
  635. package/src/fonts/IBMPlexSans/complete/eot/IBMPlexSans-ThinItalic.eot +0 -0
  636. package/src/fonts/IBMPlexSans/complete/eot/license.txt +92 -0
  637. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Bold.otf +0 -0
  638. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-BoldItalic.otf +0 -0
  639. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-ExtraLight.otf +0 -0
  640. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-ExtraLightItalic.otf +0 -0
  641. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Italic.otf +0 -0
  642. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Light.otf +0 -0
  643. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-LightItalic.otf +0 -0
  644. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Medium.otf +0 -0
  645. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-MediumItalic.otf +0 -0
  646. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Regular.otf +0 -0
  647. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-SemiBold.otf +0 -0
  648. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-SemiBoldItalic.otf +0 -0
  649. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Text.otf +0 -0
  650. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-TextItalic.otf +0 -0
  651. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-Thin.otf +0 -0
  652. package/src/fonts/IBMPlexSans/complete/otf/IBMPlexSans-ThinItalic.otf +0 -0
  653. package/src/fonts/IBMPlexSans/complete/otf/license.txt +92 -0
  654. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Bold.ttf +0 -0
  655. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-BoldItalic.ttf +0 -0
  656. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-ExtraLight.ttf +0 -0
  657. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-ExtraLightItalic.ttf +0 -0
  658. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Italic.ttf +0 -0
  659. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Light.ttf +0 -0
  660. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-LightItalic.ttf +0 -0
  661. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Medium.ttf +0 -0
  662. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-MediumItalic.ttf +0 -0
  663. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Regular.ttf +0 -0
  664. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-SemiBold.ttf +0 -0
  665. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-SemiBoldItalic.ttf +0 -0
  666. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Text.ttf +0 -0
  667. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-TextItalic.ttf +0 -0
  668. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-Thin.ttf +0 -0
  669. package/src/fonts/IBMPlexSans/complete/ttf/IBMPlexSans-ThinItalic.ttf +0 -0
  670. package/src/fonts/IBMPlexSans/complete/ttf/license.txt +92 -0
  671. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Bold.woff +0 -0
  672. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-BoldItalic.woff +0 -0
  673. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-ExtraLight.woff +0 -0
  674. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-ExtraLightItalic.woff +0 -0
  675. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Italic.woff +0 -0
  676. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Light.woff +0 -0
  677. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-LightItalic.woff +0 -0
  678. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Medium.woff +0 -0
  679. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-MediumItalic.woff +0 -0
  680. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Regular.woff +0 -0
  681. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-SemiBold.woff +0 -0
  682. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-SemiBoldItalic.woff +0 -0
  683. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Text.woff +0 -0
  684. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-TextItalic.woff +0 -0
  685. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-Thin.woff +0 -0
  686. package/src/fonts/IBMPlexSans/complete/woff/IBMPlexSans-ThinItalic.woff +0 -0
  687. package/src/fonts/IBMPlexSans/complete/woff/license.txt +92 -0
  688. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Bold.woff2 +0 -0
  689. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-BoldItalic.woff2 +0 -0
  690. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-ExtraLight.woff2 +0 -0
  691. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-ExtraLightItalic.woff2 +0 -0
  692. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Italic.woff2 +0 -0
  693. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Light.woff2 +0 -0
  694. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-LightItalic.woff2 +0 -0
  695. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Medium.woff2 +0 -0
  696. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-MediumItalic.woff2 +0 -0
  697. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Regular.woff2 +0 -0
  698. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-SemiBold.woff2 +0 -0
  699. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-SemiBoldItalic.woff2 +0 -0
  700. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Text.woff2 +0 -0
  701. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-TextItalic.woff2 +0 -0
  702. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-Thin.woff2 +0 -0
  703. package/src/fonts/IBMPlexSans/complete/woff2/IBMPlexSans-ThinItalic.woff2 +0 -0
  704. package/src/fonts/IBMPlexSans/complete/woff2/license.txt +92 -0
  705. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Cyrillic.woff +0 -0
  706. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Greek.woff +0 -0
  707. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Latin1.woff +0 -0
  708. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Latin2.woff +0 -0
  709. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Latin3.woff +0 -0
  710. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Bold-Pi.woff +0 -0
  711. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Cyrillic.woff +0 -0
  712. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Greek.woff +0 -0
  713. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Latin1.woff +0 -0
  714. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Latin2.woff +0 -0
  715. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Latin3.woff +0 -0
  716. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-BoldItalic-Pi.woff +0 -0
  717. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Cyrillic.woff +0 -0
  718. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Greek.woff +0 -0
  719. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Latin1.woff +0 -0
  720. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Latin2.woff +0 -0
  721. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Latin3.woff +0 -0
  722. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLight-Pi.woff +0 -0
  723. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Cyrillic.woff +0 -0
  724. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Greek.woff +0 -0
  725. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Latin1.woff +0 -0
  726. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Latin2.woff +0 -0
  727. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Latin3.woff +0 -0
  728. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ExtraLightItalic-Pi.woff +0 -0
  729. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Cyrillic.woff +0 -0
  730. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Greek.woff +0 -0
  731. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Latin1.woff +0 -0
  732. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Latin2.woff +0 -0
  733. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Latin3.woff +0 -0
  734. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Italic-Pi.woff +0 -0
  735. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Cyrillic.woff +0 -0
  736. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Greek.woff +0 -0
  737. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Latin1.woff +0 -0
  738. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Latin2.woff +0 -0
  739. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Latin3.woff +0 -0
  740. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Light-Pi.woff +0 -0
  741. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Cyrillic.woff +0 -0
  742. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Greek.woff +0 -0
  743. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Latin1.woff +0 -0
  744. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Latin2.woff +0 -0
  745. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Latin3.woff +0 -0
  746. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-LightItalic-Pi.woff +0 -0
  747. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Cyrillic.woff +0 -0
  748. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Greek.woff +0 -0
  749. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Latin1.woff +0 -0
  750. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Latin2.woff +0 -0
  751. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Latin3.woff +0 -0
  752. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Medium-Pi.woff +0 -0
  753. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Cyrillic.woff +0 -0
  754. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Greek.woff +0 -0
  755. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Latin1.woff +0 -0
  756. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Latin2.woff +0 -0
  757. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Latin3.woff +0 -0
  758. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-MediumItalic-Pi.woff +0 -0
  759. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Cyrillic.woff +0 -0
  760. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Greek.woff +0 -0
  761. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Latin1.woff +0 -0
  762. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Latin2.woff +0 -0
  763. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Latin3.woff +0 -0
  764. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Regular-Pi.woff +0 -0
  765. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Cyrillic.woff +0 -0
  766. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Greek.woff +0 -0
  767. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Latin1.woff +0 -0
  768. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Latin2.woff +0 -0
  769. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Latin3.woff +0 -0
  770. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBold-Pi.woff +0 -0
  771. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Cyrillic.woff +0 -0
  772. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Greek.woff +0 -0
  773. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Latin1.woff +0 -0
  774. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Latin2.woff +0 -0
  775. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Latin3.woff +0 -0
  776. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-SemiBoldItalic-Pi.woff +0 -0
  777. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Cyrillic.woff +0 -0
  778. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Greek.woff +0 -0
  779. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Latin1.woff +0 -0
  780. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Latin2.woff +0 -0
  781. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Latin3.woff +0 -0
  782. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Text-Pi.woff +0 -0
  783. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Cyrillic.woff +0 -0
  784. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Greek.woff +0 -0
  785. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Latin1.woff +0 -0
  786. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Latin2.woff +0 -0
  787. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Latin3.woff +0 -0
  788. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-TextItalic-Pi.woff +0 -0
  789. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Cyrillic.woff +0 -0
  790. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Greek.woff +0 -0
  791. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Latin1.woff +0 -0
  792. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Latin2.woff +0 -0
  793. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Latin3.woff +0 -0
  794. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-Thin-Pi.woff +0 -0
  795. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Cyrillic.woff +0 -0
  796. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Greek.woff +0 -0
  797. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Latin1.woff +0 -0
  798. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Latin2.woff +0 -0
  799. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Latin3.woff +0 -0
  800. package/src/fonts/IBMPlexSans/split/woff/IBMPlexSans-ThinItalic-Pi.woff +0 -0
  801. package/src/fonts/IBMPlexSans/split/woff/license.txt +92 -0
  802. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Cyrillic.woff2 +0 -0
  803. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Greek.woff2 +0 -0
  804. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Latin1.woff2 +0 -0
  805. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Latin2.woff2 +0 -0
  806. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Latin3.woff2 +0 -0
  807. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Bold-Pi.woff2 +0 -0
  808. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Cyrillic.woff2 +0 -0
  809. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Greek.woff2 +0 -0
  810. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Latin1.woff2 +0 -0
  811. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Latin2.woff2 +0 -0
  812. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Latin3.woff2 +0 -0
  813. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-BoldItalic-Pi.woff2 +0 -0
  814. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Cyrillic.woff2 +0 -0
  815. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Greek.woff2 +0 -0
  816. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Latin1.woff2 +0 -0
  817. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Latin2.woff2 +0 -0
  818. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Latin3.woff2 +0 -0
  819. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLight-Pi.woff2 +0 -0
  820. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Cyrillic.woff2 +0 -0
  821. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Greek.woff2 +0 -0
  822. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Latin1.woff2 +0 -0
  823. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Latin2.woff2 +0 -0
  824. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Latin3.woff2 +0 -0
  825. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ExtraLightItalic-Pi.woff2 +0 -0
  826. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Cyrillic.woff2 +0 -0
  827. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Greek.woff2 +0 -0
  828. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Latin1.woff2 +0 -0
  829. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Latin2.woff2 +0 -0
  830. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Latin3.woff2 +0 -0
  831. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Italic-Pi.woff2 +0 -0
  832. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Cyrillic.woff2 +0 -0
  833. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Greek.woff2 +0 -0
  834. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Latin1.woff2 +0 -0
  835. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Latin2.woff2 +0 -0
  836. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Latin3.woff2 +0 -0
  837. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Light-Pi.woff2 +0 -0
  838. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Cyrillic.woff2 +0 -0
  839. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Greek.woff2 +0 -0
  840. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Latin1.woff2 +0 -0
  841. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Latin2.woff2 +0 -0
  842. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Latin3.woff2 +0 -0
  843. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-LightItalic-Pi.woff2 +0 -0
  844. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Cyrillic.woff2 +0 -0
  845. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Greek.woff2 +0 -0
  846. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Latin1.woff2 +0 -0
  847. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Latin2.woff2 +0 -0
  848. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Latin3.woff2 +0 -0
  849. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Medium-Pi.woff2 +0 -0
  850. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Cyrillic.woff2 +0 -0
  851. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Greek.woff2 +0 -0
  852. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Latin1.woff2 +0 -0
  853. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Latin2.woff2 +0 -0
  854. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Latin3.woff2 +0 -0
  855. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-MediumItalic-Pi.woff2 +0 -0
  856. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Cyrillic.woff2 +0 -0
  857. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Greek.woff2 +0 -0
  858. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Latin1.woff2 +0 -0
  859. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Latin2.woff2 +0 -0
  860. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Latin3.woff2 +0 -0
  861. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Regular-Pi.woff2 +0 -0
  862. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Cyrillic.woff2 +0 -0
  863. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Greek.woff2 +0 -0
  864. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Latin1.woff2 +0 -0
  865. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Latin2.woff2 +0 -0
  866. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Latin3.woff2 +0 -0
  867. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBold-Pi.woff2 +0 -0
  868. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Cyrillic.woff2 +0 -0
  869. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Greek.woff2 +0 -0
  870. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Latin1.woff2 +0 -0
  871. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Latin2.woff2 +0 -0
  872. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Latin3.woff2 +0 -0
  873. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-SemiBoldItalic-Pi.woff2 +0 -0
  874. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Cyrillic.woff2 +0 -0
  875. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Greek.woff2 +0 -0
  876. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Latin1.woff2 +0 -0
  877. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Latin2.woff2 +0 -0
  878. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Latin3.woff2 +0 -0
  879. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Text-Pi.woff2 +0 -0
  880. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Cyrillic.woff2 +0 -0
  881. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Greek.woff2 +0 -0
  882. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Latin1.woff2 +0 -0
  883. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Latin2.woff2 +0 -0
  884. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Latin3.woff2 +0 -0
  885. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-TextItalic-Pi.woff2 +0 -0
  886. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Cyrillic.woff2 +0 -0
  887. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Greek.woff2 +0 -0
  888. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Latin1.woff2 +0 -0
  889. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Latin2.woff2 +0 -0
  890. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Latin3.woff2 +0 -0
  891. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-Thin-Pi.woff2 +0 -0
  892. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Cyrillic.woff2 +0 -0
  893. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Greek.woff2 +0 -0
  894. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Latin1.woff2 +0 -0
  895. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Latin2.woff2 +0 -0
  896. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Latin3.woff2 +0 -0
  897. package/src/fonts/IBMPlexSans/split/woff2/IBMPlexSans-ThinItalic-Pi.woff2 +0 -0
  898. package/src/fonts/IBMPlexSans/split/woff2/license.txt +92 -0
  899. package/src/img/all-svg-icons.svg +1 -0
  900. package/src/img/favicons/favicon-erst.png +0 -0
  901. package/src/img/favicons/favicon2-erst.png +0 -0
  902. package/src/img/logo-borgerdk.svg +1 -0
  903. package/src/img/logo-header-placeholder.png +0 -0
  904. package/src/img/logo-placeholder.png +0 -0
  905. package/src/img/logo_virk.svg +52 -0
  906. package/src/img/svg-icons/accessibility-new.svg +1 -0
  907. package/src/img/svg-icons/account-circle.svg +1 -0
  908. package/src/img/svg-icons/add-a-photo.svg +1 -0
  909. package/src/img/svg-icons/add.svg +1 -0
  910. package/src/img/svg-icons/agriculture.svg +1 -0
  911. package/src/img/svg-icons/apps.svg +1 -0
  912. package/src/img/svg-icons/arrow-back.svg +1 -0
  913. package/src/img/svg-icons/arrow-downward.svg +1 -0
  914. package/src/img/svg-icons/arrow-drop-down.svg +1 -0
  915. package/src/img/svg-icons/arrow-drop-up.svg +1 -0
  916. package/src/img/svg-icons/arrow-forward.svg +1 -0
  917. package/src/img/svg-icons/arrow-left.svg +1 -0
  918. package/src/img/svg-icons/arrow-right.svg +1 -0
  919. package/src/img/svg-icons/arrow-upward.svg +1 -0
  920. package/src/img/svg-icons/assessment.svg +1 -0
  921. package/src/img/svg-icons/assignment.svg +1 -0
  922. package/src/img/svg-icons/attach-file.svg +1 -0
  923. package/src/img/svg-icons/bookmark-border.svg +1 -0
  924. package/src/img/svg-icons/bookmarks.svg +1 -0
  925. package/src/img/svg-icons/cached.svg +1 -0
  926. package/src/img/svg-icons/calculator.svg +1 -0
  927. package/src/img/svg-icons/card-account-details.svg +1 -0
  928. package/src/img/svg-icons/card-text.svg +1 -0
  929. package/src/img/svg-icons/chat.svg +1 -0
  930. package/src/img/svg-icons/check-circle-white.svg +1 -0
  931. package/src/img/svg-icons/check-circle.svg +1 -0
  932. package/src/img/svg-icons/chevron-double-left.svg +1 -0
  933. package/src/img/svg-icons/chevron-double-right.svg +1 -0
  934. package/src/img/svg-icons/chevron-left.svg +1 -0
  935. package/src/img/svg-icons/chevron-right.svg +1 -0
  936. package/src/img/svg-icons/close.svg +1 -0
  937. package/src/img/svg-icons/construction.svg +1 -0
  938. package/src/img/svg-icons/contact-support.svg +1 -0
  939. package/src/img/svg-icons/content-copy.svg +1 -0
  940. package/src/img/svg-icons/coronavirus.svg +1 -0
  941. package/src/img/svg-icons/create-new-folder.svg +1 -0
  942. package/src/img/svg-icons/credit-card.svg +1 -0
  943. package/src/img/svg-icons/database.svg +1 -0
  944. package/src/img/svg-icons/delete.svg +1 -0
  945. package/src/img/svg-icons/desktop-windows.svg +1 -0
  946. package/src/img/svg-icons/domain.svg +1 -0
  947. package/src/img/svg-icons/done.svg +1 -0
  948. package/src/img/svg-icons/download-done.svg +1 -0
  949. package/src/img/svg-icons/drive-eta.svg +1 -0
  950. package/src/img/svg-icons/email.svg +1 -0
  951. package/src/img/svg-icons/engineering.svg +1 -0
  952. package/src/img/svg-icons/expand-less.svg +1 -0
  953. package/src/img/svg-icons/expand-more-white.svg +1 -0
  954. package/src/img/svg-icons/expand-more.svg +1 -0
  955. package/src/img/svg-icons/face.svg +1 -0
  956. package/src/img/svg-icons/feedback.svg +1 -0
  957. package/src/img/svg-icons/file-download.svg +1 -0
  958. package/src/img/svg-icons/file-excel.svg +1 -0
  959. package/src/img/svg-icons/file-image.svg +1 -0
  960. package/src/img/svg-icons/file-pdf.svg +1 -0
  961. package/src/img/svg-icons/file-upload.svg +1 -0
  962. package/src/img/svg-icons/file-word.svg +1 -0
  963. package/src/img/svg-icons/first-page.svg +1 -0
  964. package/src/img/svg-icons/flag.svg +1 -0
  965. package/src/img/svg-icons/folder-open.svg +1 -0
  966. package/src/img/svg-icons/folder.svg +1 -0
  967. package/src/img/svg-icons/format-align-center.svg +1 -0
  968. package/src/img/svg-icons/format-align-justify.svg +1 -0
  969. package/src/img/svg-icons/format-align-left.svg +1 -0
  970. package/src/img/svg-icons/format-align-right.svg +1 -0
  971. package/src/img/svg-icons/format-bold.svg +1 -0
  972. package/src/img/svg-icons/format-clear.svg +1 -0
  973. package/src/img/svg-icons/format-color-fill.svg +1 -0
  974. package/src/img/svg-icons/format-color-text.svg +1 -0
  975. package/src/img/svg-icons/format-indent-decrease.svg +1 -0
  976. package/src/img/svg-icons/format-indent-increase.svg +1 -0
  977. package/src/img/svg-icons/format-italic.svg +1 -0
  978. package/src/img/svg-icons/format-list-bulleted.svg +1 -0
  979. package/src/img/svg-icons/format-list-checks.svg +1 -0
  980. package/src/img/svg-icons/format-list-numbered.svg +1 -0
  981. package/src/img/svg-icons/format-size.svg +1 -0
  982. package/src/img/svg-icons/format-underlined.svg +1 -0
  983. package/src/img/svg-icons/forum.svg +1 -0
  984. package/src/img/svg-icons/forward.svg +1 -0
  985. package/src/img/svg-icons/fullscreen-exit.svg +1 -0
  986. package/src/img/svg-icons/fullscreen.svg +1 -0
  987. package/src/img/svg-icons/grade-outline.svg +1 -0
  988. package/src/img/svg-icons/grade.svg +1 -0
  989. package/src/img/svg-icons/groups.svg +1 -0
  990. package/src/img/svg-icons/headphones.svg +1 -0
  991. package/src/img/svg-icons/help.svg +1 -0
  992. package/src/img/svg-icons/highlight-off-white.svg +1 -0
  993. package/src/img/svg-icons/highlight-off.svg +1 -0
  994. package/src/img/svg-icons/home.svg +1 -0
  995. package/src/img/svg-icons/hourglass-empty.svg +1 -0
  996. package/src/img/svg-icons/how-to-reg.svg +1 -0
  997. package/src/img/svg-icons/info-white.svg +56 -0
  998. package/src/img/svg-icons/info.svg +1 -0
  999. package/src/img/svg-icons/insert-drive-file.svg +1 -0
  1000. package/src/img/svg-icons/insert-invitation.svg +1 -0
  1001. package/src/img/svg-icons/language.svg +1 -0
  1002. package/src/img/svg-icons/laptop.svg +1 -0
  1003. package/src/img/svg-icons/last-page.svg +1 -0
  1004. package/src/img/svg-icons/link.svg +1 -0
  1005. package/src/img/svg-icons/list-alt.svg +1 -0
  1006. package/src/img/svg-icons/local-shipping.svg +1 -0
  1007. package/src/img/svg-icons/location-on.svg +1 -0
  1008. package/src/img/svg-icons/lock-open.svg +1 -0
  1009. package/src/img/svg-icons/lock.svg +1 -0
  1010. package/src/img/svg-icons/map.svg +1 -0
  1011. package/src/img/svg-icons/menu.svg +1 -0
  1012. package/src/img/svg-icons/mode.svg +1 -0
  1013. package/src/img/svg-icons/more-horiz.svg +1 -0
  1014. package/src/img/svg-icons/more-vert.svg +1 -0
  1015. package/src/img/svg-icons/mouse.svg +1 -0
  1016. package/src/img/svg-icons/note-add.svg +1 -0
  1017. package/src/img/svg-icons/notifications.svg +1 -0
  1018. package/src/img/svg-icons/open-in-new.svg +1 -0
  1019. package/src/img/svg-icons/open-with.svg +1 -0
  1020. package/src/img/svg-icons/outlined-flag.svg +1 -0
  1021. package/src/img/svg-icons/palette.svg +1 -0
  1022. package/src/img/svg-icons/payments.svg +1 -0
  1023. package/src/img/svg-icons/people-alt.svg +1 -0
  1024. package/src/img/svg-icons/person-add-alt-1.svg +1 -0
  1025. package/src/img/svg-icons/person-remove.svg +1 -0
  1026. package/src/img/svg-icons/person.svg +1 -0
  1027. package/src/img/svg-icons/phone-iphone.svg +1 -0
  1028. package/src/img/svg-icons/photo-camera.svg +1 -0
  1029. package/src/img/svg-icons/playlist-add-check.svg +1 -0
  1030. package/src/img/svg-icons/playlist-add.svg +1 -0
  1031. package/src/img/svg-icons/print.svg +1 -0
  1032. package/src/img/svg-icons/query-builder.svg +1 -0
  1033. package/src/img/svg-icons/refresh.svg +1 -0
  1034. package/src/img/svg-icons/remove.svg +1 -0
  1035. package/src/img/svg-icons/reply.svg +1 -0
  1036. package/src/img/svg-icons/report-problem.svg +1 -0
  1037. package/src/img/svg-icons/save.svg +1 -0
  1038. package/src/img/svg-icons/school.svg +1 -0
  1039. package/src/img/svg-icons/science.svg +1 -0
  1040. package/src/img/svg-icons/search.svg +1 -0
  1041. package/src/img/svg-icons/send.svg +1 -0
  1042. package/src/img/svg-icons/settings.svg +1 -0
  1043. package/src/img/svg-icons/share.svg +1 -0
  1044. package/src/img/svg-icons/shopping-cart.svg +1 -0
  1045. package/src/img/svg-icons/sort-ascending.svg +2 -0
  1046. package/src/img/svg-icons/sort-by-alpha.svg +1 -0
  1047. package/src/img/svg-icons/sort-default.svg +1 -0
  1048. package/src/img/svg-icons/sort-descending.svg +1 -0
  1049. package/src/img/svg-icons/sort-table-ascending.svg +1 -0
  1050. package/src/img/svg-icons/sort-table-descending.svg +1 -0
  1051. package/src/img/svg-icons/sort-table-none.svg +1 -0
  1052. package/src/img/svg-icons/sort.svg +1 -0
  1053. package/src/img/svg-icons/subdirectory-arrow-left.svg +1 -0
  1054. package/src/img/svg-icons/subdirectory-arrow-right.svg +1 -0
  1055. package/src/img/svg-icons/support-agent.svg +1 -0
  1056. package/src/img/svg-icons/text-format.svg +1 -0
  1057. package/src/img/svg-icons/trash-can.svg +1 -0
  1058. package/src/img/svg-icons/tune.svg +1 -0
  1059. package/src/img/svg-icons/vertical-split.svg +1 -0
  1060. package/src/img/svg-icons/videocam.svg +1 -0
  1061. package/src/img/svg-icons/view-headline.svg +1 -0
  1062. package/src/img/svg-icons/visibility-off.svg +1 -0
  1063. package/src/img/svg-icons/visibility.svg +1 -0
  1064. package/src/img/svg-icons/zoom-in.svg +1 -0
  1065. package/src/img/svg-icons/zoom-out.svg +1 -0
  1066. package/src/js/components/accordion.js +164 -0
  1067. package/src/js/components/alert.js +26 -0
  1068. package/src/js/components/checkbox-toggle-content.js +71 -0
  1069. package/src/js/components/date-picker.js +2163 -0
  1070. package/src/js/components/dropdown-sort.js +62 -0
  1071. package/src/js/components/dropdown.js +311 -0
  1072. package/src/js/components/error-summary.js +150 -0
  1073. package/src/js/components/modal.js +160 -0
  1074. package/src/js/components/navigation.js +198 -0
  1075. package/src/js/components/radio-toggle-content.js +82 -0
  1076. package/src/js/components/regex-input-mask.js +68 -0
  1077. package/src/js/components/selectable-table.js +144 -0
  1078. package/src/js/components/table.js +43 -0
  1079. package/src/js/components/tabnav.js +300 -0
  1080. package/src/js/components/toast.js +43 -0
  1081. package/src/js/components/tooltip.js +249 -0
  1082. package/src/js/config.js +3 -0
  1083. package/src/js/dkfds.js +186 -0
  1084. package/src/js/events.js +15 -0
  1085. package/src/js/polyfills/Function/prototype/bind.js +159 -0
  1086. package/src/js/polyfills/Object/defineProperty.js +86 -0
  1087. package/src/js/polyfills/custom-event.js +23 -0
  1088. package/src/js/polyfills/element-hidden.js +18 -0
  1089. package/src/js/polyfills/index.js +14 -0
  1090. package/src/js/polyfills/number-is-nan.js +6 -0
  1091. package/src/js/utils/active-element.js +1 -0
  1092. package/src/js/utils/behavior.js +36 -0
  1093. package/src/js/utils/breakpoints.js +10 -0
  1094. package/src/js/utils/closest.js +20 -0
  1095. package/src/js/utils/dispatch.js +30 -0
  1096. package/src/js/utils/generate-unique-id.js +14 -0
  1097. package/src/js/utils/is-in-viewport.js +14 -0
  1098. package/src/js/utils/is-ios-device.js +11 -0
  1099. package/src/js/utils/select.js +29 -0
  1100. package/src/js/utils/toggle.js +22 -0
  1101. package/src/stylesheets/_dkfds-base.scss +76 -0
  1102. package/src/stylesheets/components/_accordions.scss +162 -0
  1103. package/src/stylesheets/components/_alerts.scss +113 -0
  1104. package/src/stylesheets/components/_breadcrumbs.scss +62 -0
  1105. package/src/stylesheets/components/_cards.scss +235 -0
  1106. package/src/stylesheets/components/_cookie-message.scss +41 -0
  1107. package/src/stylesheets/components/_date-picker.scss +391 -0
  1108. package/src/stylesheets/components/_details.scss +61 -0
  1109. package/src/stylesheets/components/_footer.scss +83 -0
  1110. package/src/stylesheets/components/_header.scss +339 -0
  1111. package/src/stylesheets/components/_language-switcher.scss +63 -0
  1112. package/src/stylesheets/components/_modal.scss +155 -0
  1113. package/src/stylesheets/components/_navigation.scss +544 -0
  1114. package/src/stylesheets/components/_overflow-menu.scss +234 -0
  1115. package/src/stylesheets/components/_page-navigation.scss +12 -0
  1116. package/src/stylesheets/components/_pagination.scss +136 -0
  1117. package/src/stylesheets/components/_search.scss +33 -0
  1118. package/src/stylesheets/components/_sidenav.scss +205 -0
  1119. package/src/stylesheets/components/_skipnav.scss +31 -0
  1120. package/src/stylesheets/components/_tabnav.scss +122 -0
  1121. package/src/stylesheets/components/_toast.scss +105 -0
  1122. package/src/stylesheets/components/_tooltip.scss +72 -0
  1123. package/src/stylesheets/core/_base.scss +28 -0
  1124. package/src/stylesheets/core/_fonts.scss +139 -0
  1125. package/src/stylesheets/core/_functions.scss +593 -0
  1126. package/src/stylesheets/core/_grid.scss +118 -0
  1127. package/src/stylesheets/core/_print.scss +187 -0
  1128. package/src/stylesheets/core/_properties.scss +145 -0
  1129. package/src/stylesheets/core/_system-tokens.scss +403 -0
  1130. package/src/stylesheets/core/_typography.scss +500 -0
  1131. package/src/stylesheets/core/_variables.scss +18 -0
  1132. package/src/stylesheets/core/colors/_blue.scss +8 -0
  1133. package/src/stylesheets/core/colors/_data-blue.scss +13 -0
  1134. package/src/stylesheets/core/colors/_data-green-blue.scss +13 -0
  1135. package/src/stylesheets/core/colors/_data-green.scss +13 -0
  1136. package/src/stylesheets/core/colors/_data-orange.scss +13 -0
  1137. package/src/stylesheets/core/colors/_data-pink-violet.scss +13 -0
  1138. package/src/stylesheets/core/colors/_data-violet.scss +13 -0
  1139. package/src/stylesheets/core/colors/_data-yellow-red.scss +13 -0
  1140. package/src/stylesheets/core/colors/_gray.scss +11 -0
  1141. package/src/stylesheets/core/colors/_green.scss +6 -0
  1142. package/src/stylesheets/core/colors/_orange.scss +7 -0
  1143. package/src/stylesheets/core/colors/_purple.scss +6 -0
  1144. package/src/stylesheets/core/colors/_red.scss +6 -0
  1145. package/src/stylesheets/core/mixins/_add-background-svg.scss +7 -0
  1146. package/src/stylesheets/core/mixins/_breakpoints.scss +119 -0
  1147. package/src/stylesheets/core/mixins/_grid-mixins.scss +42 -0
  1148. package/src/stylesheets/core/mixins/_mixins.scss +126 -0
  1149. package/src/stylesheets/core/utilities/_background.scss +15 -0
  1150. package/src/stylesheets/core/utilities/_display.scss +26 -0
  1151. package/src/stylesheets/core/utilities/_flex.scss +43 -0
  1152. package/src/stylesheets/core/utilities/_position.scss +35 -0
  1153. package/src/stylesheets/core/utilities/_spacing.scss +50 -0
  1154. package/src/stylesheets/core/utilities/_text-color.scss +5 -0
  1155. package/src/stylesheets/core/utilities/_textalign.scss +13 -0
  1156. package/src/stylesheets/core/utilities/_width.scss +26 -0
  1157. package/src/stylesheets/dkfds-borgerdk.scss +4 -0
  1158. package/src/stylesheets/dkfds-virkdk.scss +4 -0
  1159. package/src/stylesheets/dkfds.scss +4 -0
  1160. package/src/stylesheets/elements/_badge.scss +36 -0
  1161. package/src/stylesheets/elements/_buttons.scss +280 -0
  1162. package/src/stylesheets/elements/_collapse.scss +17 -0
  1163. package/src/stylesheets/elements/_embed.scss +27 -0
  1164. package/src/stylesheets/elements/_figure.scss +7 -0
  1165. package/src/stylesheets/elements/_forms.scss +93 -0
  1166. package/src/stylesheets/elements/_hr.scss +5 -0
  1167. package/src/stylesheets/elements/_icons.scss +204 -0
  1168. package/src/stylesheets/elements/_inputs.scss +589 -0
  1169. package/src/stylesheets/elements/_list.scss +83 -0
  1170. package/src/stylesheets/elements/_page.scss +34 -0
  1171. package/src/stylesheets/elements/_section.scss +3 -0
  1172. package/src/stylesheets/elements/_spinner.scss +76 -0
  1173. package/src/stylesheets/elements/_table.scss +283 -0
  1174. package/src/stylesheets/elements/_tags.scss +64 -0
  1175. package/src/stylesheets/elements/_toggle.scss +113 -0
  1176. package/src/stylesheets/lib/_normalize.scss +349 -0
  1177. package/src/stylesheets/settings/_settings-color.scss +46 -0
  1178. package/src/stylesheets/settings/_settings-components.scss +415 -0
  1179. package/src/stylesheets/settings/_settings-general.scss +43 -0
  1180. package/src/stylesheets/settings/_settings-typography.scss +212 -0
  1181. package/src/stylesheets/themes/_borgerdk.scss +23 -0
  1182. package/src/stylesheets/themes/_virkdk.scss +21 -0
  1183. package/src/vendor/highlight.pack.js +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/array-foreach/index.js","node_modules/classlist-polyfill/src/index.js","node_modules/core-js/fn/array/from.js","node_modules/core-js/fn/object/assign.js","node_modules/core-js/modules/_a-function.js","node_modules/core-js/modules/_an-object.js","node_modules/core-js/modules/_array-includes.js","node_modules/core-js/modules/_classof.js","node_modules/core-js/modules/_cof.js","node_modules/core-js/modules/_core.js","node_modules/core-js/modules/_create-property.js","node_modules/core-js/modules/_ctx.js","node_modules/core-js/modules/_defined.js","node_modules/core-js/modules/_descriptors.js","node_modules/core-js/modules/_dom-create.js","node_modules/core-js/modules/_enum-bug-keys.js","node_modules/core-js/modules/_export.js","node_modules/core-js/modules/_fails.js","node_modules/core-js/modules/_function-to-string.js","node_modules/core-js/modules/_global.js","node_modules/core-js/modules/_has.js","node_modules/core-js/modules/_hide.js","node_modules/core-js/modules/_html.js","node_modules/core-js/modules/_ie8-dom-define.js","node_modules/core-js/modules/_iobject.js","node_modules/core-js/modules/_is-array-iter.js","node_modules/core-js/modules/_is-object.js","node_modules/core-js/modules/_iter-call.js","node_modules/core-js/modules/_iter-create.js","node_modules/core-js/modules/_iter-define.js","node_modules/core-js/modules/_iter-detect.js","node_modules/core-js/modules/_iterators.js","node_modules/core-js/modules/_library.js","node_modules/core-js/modules/_object-assign.js","node_modules/core-js/modules/_object-create.js","node_modules/core-js/modules/_object-dp.js","node_modules/core-js/modules/_object-dps.js","node_modules/core-js/modules/_object-gops.js","node_modules/core-js/modules/_object-gpo.js","node_modules/core-js/modules/_object-keys-internal.js","node_modules/core-js/modules/_object-keys.js","node_modules/core-js/modules/_object-pie.js","node_modules/core-js/modules/_property-desc.js","node_modules/core-js/modules/_redefine.js","node_modules/core-js/modules/_set-to-string-tag.js","node_modules/core-js/modules/_shared-key.js","node_modules/core-js/modules/_shared.js","node_modules/core-js/modules/_string-at.js","node_modules/core-js/modules/_to-absolute-index.js","node_modules/core-js/modules/_to-integer.js","node_modules/core-js/modules/_to-iobject.js","node_modules/core-js/modules/_to-length.js","node_modules/core-js/modules/_to-object.js","node_modules/core-js/modules/_to-primitive.js","node_modules/core-js/modules/_uid.js","node_modules/core-js/modules/_wks.js","node_modules/core-js/modules/core.get-iterator-method.js","node_modules/core-js/modules/es6.array.from.js","node_modules/core-js/modules/es6.object.assign.js","node_modules/core-js/modules/es6.string.iterator.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/matches-selector/index.js","node_modules/object-assign/index.js","node_modules/receptor/lib/behavior.js","node_modules/receptor/lib/closest.js","node_modules/receptor/lib/compose.js","node_modules/receptor/lib/delegate.js","node_modules/receptor/lib/delegateAll.js","node_modules/receptor/lib/ignore.js","node_modules/receptor/lib/index.js","node_modules/receptor/lib/keymap.js","src/js/components/accordion.js","src/js/components/alert.js","src/js/components/checkbox-toggle-content.js","src/js/components/date-picker.js","src/js/components/dropdown-sort.js","src/js/components/dropdown.js","src/js/components/error-summary.js","src/js/components/modal.js","src/js/components/navigation.js","src/js/components/radio-toggle-content.js","src/js/components/regex-input-mask.js","src/js/components/selectable-table.js","src/js/components/table.js","src/js/components/tabnav.js","src/js/components/toast.js","src/js/components/tooltip.js","src/js/config.js","src/js/dkfds.js","src/js/events.js","src/js/polyfills/Function/prototype/bind.js","src/js/polyfills/Object/defineProperty.js","src/js/polyfills/custom-event.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/polyfills/number-is-nan.js","src/js/utils/active-element.js","src/js/utils/behavior.js","src/js/utils/breakpoints.js","src/js/utils/is-in-viewport.js","src/js/utils/is-ios-device.js","src/js/utils/select.js","src/js/utils/toggle.js"],"names":["f","exports","module","define","amd","window","global","self","this","DKFDS","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","ary","callback","thisArg","forEach","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","testElement","createMethod","original","DOMTokenList","prototype","_toggle","from","assign","it","TypeError","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","value","O","cof","TAG","ARG","B","T","key","tryGet","callee","slice","core","version","__e","$defineProperty","createDesc","object","aFunction","fn","that","b","apply","is","$export","source","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","target","S","PROTOTYPE","expProto","own","ctx","Function","redefine","U","hide","W","R","exec","Math","__g","hasOwnProperty","dP","documentElement","propertyIsEnumerable","Iterators","ITERATOR","ArrayProto","_typeof","anObject","iterator","entries","ret","create","descriptor","setToStringTag","IteratorPrototype","Constructor","NAME","next","returnThis","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","VALUES","Base","DEFAULT","IS_SET","FORCED","getMethod","kind","proto","methods","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","SAFE_CLOSING","riter","skipClosing","safe","arr","iter","done","DESCRIPTORS","getKeys","gOPS","pIE","toObject","IObject","$assign","A","Symbol","K","k","aLen","getSymbols","isEnum","concat","j","Empty","dPs","enumBugKeys","IE_PROTO","_createDict","iframe","style","display","appendChild","src","iframeDocument","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","defineProperties","getOwnPropertySymbols","has","ObjectProto","constructor","arrayIndexOf","names","$keys","bitmap","writable","SRC","$toString","TO_STRING","TPL","inspectSource","val","isFunction","def","tag","stat","shared","uid","SHARED","store","mode","copyright","toInteger","defined","pos","s","charCodeAt","charAt","max","min","ceil","floor","isNaN","valueOf","id","px","random","_Symbol","USE_SYMBOL","classof","getIteratorMethod","isArrayIter","createProperty","getIterFn","arrayLike","step","C","mapfn","mapping","iterFn","$at","iterated","_t","_i","point","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","x","which","keyCode","isArray","shiftKey","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","fromCharCode","toLowerCase","toUpperCase","vendor","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","selector","nodeType","nodes","parentNode","querySelectorAll","propIsEnumerable","test1","getOwnPropertyNames","test2","map","test3","err","shouldUseNative","to","symbols","popKey","obj","delegate","delegateAll","DELEGATE_PATTERN","events","props","listeners","reduce","memo","handler","match","options","capture","passive","listener","_type","element","addEventListener","removeEventListener","functions","some","closest","event","compose","selectors","delegates","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","getEventKey","_key","isElementInViewport","BUTTON","EXPANDED","BULK_FUNCTION_OPEN_TEXT","BULK_FUNCTION_CLOSE_TEXT","BULK_FUNCTION_ACTION_ATTRIBUTE","Accordion","$accordion","accordion","init","buttons","currentButton","expanded","toggleButton","eventOnClick","bind","prevSibling","previousElementSibling","bulkFunctionButton","bulkEvent","$module","expand","innerText","$button","stopPropagation","preventDefault","scrollIntoView","button","bulkFunction","newStatus","bulk","multiselectable","eventOpen","Event","dispatchEvent","eventClose","buttonsOpen","_buttons","_eventClose","currentButtton","Alert","alert","getElementsByClassName","eventHide","show","eventShow","TOGGLE_TARGET_ATTRIBUTE","CheckboxToggleContent","checkboxElement","targetElement","targetAttr","targetEl","getElementById","checked","collapse","contentElement","triggerEl","_receptor","processFocusableSelectors","_len","query","lastDayOfMonth","date","newDate","Date","setFullYear","getFullYear","getMonth","addWeeks","_date","numWeeks","addDays","addYears","numYears","addMonths","subYears","keepDateBetweenMinAndMax","minDate","maxDate","getTime","disable","externalInputEl","_getDatePickerContext","getDatePickerContext","toggleBtnEl","disabled","isDateInputInvalid","day","month","year","checkDate","_getDatePickerContext3","dateString","isInvalid","_dateStringParts$map2","_slicedToArray","dateStringParts","str","parsed","parseInt","Number","setDate","getDate","isDateWithinMinAndMax","setCalendarValue","datePickerEl","internalInputEl","parsedDate","parseDateString","formattedDate","formatDate","DEFAULT_EXTERNAL_DATE_FORMAT","_getDatePickerContext6","changeElementValue","validateDateInput","renderCalendar","_dateToDisplay","dateToRender","dayOfWeek","tabindex","isDisabled","isSelected","_getDatePickerContext7","calendarEl","statusEl","selectedDate","rangeDate","todaysDate","today","dateToDisplay","calendarWasHidden","hidden","focusedDate","focusedMonth","focusedYear","prevMonth","subMonths","nextMonth","currentFormattedDate","firstOfMonth","startOfMonth","prevButtonsDisabled","isSameMonth","nextButtonsDisabled","rangeConclusionDate","rangeStartDate","rangeEndDate","withinRangeStartDate","withinRangeEndDate","subDays","monthLabel","MONTH_LABELS","startOfWeek","days","dayStr","CALENDAR_DATE_CLASS","getDay","isSameDay","CALENDAR_DATE_PREVIOUS_MONTH_CLASS","CALENDAR_DATE_CURRENT_MONTH_CLASS","CALENDAR_DATE_NEXT_MONTH_CLASS","CALENDAR_DATE_SELECTED_CLASS","CALENDAR_DATE_TODAY_CLASS","CALENDAR_DATE_RANGE_DATE_CLASS","CALENDAR_DATE_RANGE_DATE_START_CLASS","CALENDAR_DATE_RANGE_DATE_END_CLASS","CALENDAR_DATE_WITHIN_RANGE_CLASS","CALENDAR_DATE_FOCUSED_CLASS","monthStr","DAY_OF_WEEK_LABELS","d","datesHtml","listToGridHtml","newCalendar","cloneNode","content","dataset","top","offsetHeight","CALENDAR_DATE_PICKER_CLASS","CALENDAR_ROW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_CENTER_ITEMS_CLASS","CALENDAR_PREVIOUS_YEAR_CLASS","CALENDAR_PREVIOUS_MONTH_CLASS","CALENDAR_MONTH_LABEL_CLASS","CALENDAR_MONTH_SELECTION_CLASS","CALENDAR_YEAR_SELECTION_CLASS","CALENDAR_NEXT_MONTH_CLASS","CALENDAR_NEXT_YEAR_CLASS","CALENDAR_TABLE_CLASS","CALENDAR_DAY_OF_WEEK_CLASS","innerHTML","replaceChild","DATE_PICKER_ACTIVE_CLASS","statuses","textContent","hideCalendar","_getDatePickerContext12","updateCalendarIfVisible","_getDatePickerContext15","inputDate","displayMonthSelection","monthToDisplay","_getDatePickerContext16","calendarDate","selectedMonth","months","monthToCheck","setMonth","isDatesMonthOutsideMinOrMax","CALENDAR_MONTH_CLASS","CALENDAR_MONTH_FOCUSED_CLASS","CALENDAR_MONTH_SELECTED_CLASS","monthsHtml","CALENDAR_MONTH_PICKER_CLASS","displayYearSelection","yearToDisplay","_getDatePickerContext18","selectedYear","yearToChunk","prevYearChunkDisabled","YEAR_CHUNK","isDatesYearOutsideMinOrMax","setYear","nextYearChunkDisabled","years","yearIndex","CALENDAR_YEAR_CLASS","CALENDAR_YEAR_FOCUSED_CLASS","CALENDAR_YEAR_SELECTED_CLASS","yearsHtml","CALENDAR_YEAR_PICKER_CLASS","CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS","CALENDAR_NEXT_YEAR_CHUNK_CLASS","handleEscapeFromCalendar","_getDatePickerContext22","focus","adjustCalendar","adjustDateFn","_getDatePickerContext23","cappedDate","querySelector","CALENDAR_DATE_FOCUSED","adjustMonthSelectionScreen","adjustMonthFn","monthEl","_getDatePickerContext24","currentDate","adjustedMonth","CALENDAR_MONTH_FOCUSED","adjustYearSelectionScreen","adjustYearFn","yearEl","_getDatePickerContext25","adjustedYear","isSameYear","CALENDAR_YEAR_FOCUSED","tabHandler","focusable","getFocusableContext","lastTabIndex","focusableElements","select","firstTabStop","lastTabStop","focusIndex","activeElement","isNotFound","isFirstTab","isLastTab","tabAhead","_getFocusableContext","tabBack","_getFocusableContext2","CLICK","prefix","isIosDevice","DATE_PICKER_CLASS","DATE_PICKER_WRAPPER_CLASS","DATE_PICKER_INITIALIZED_CLASS","DATE_PICKER_INTERNAL_INPUT_CLASS","DATE_PICKER_EXTERNAL_INPUT_CLASS","DATE_PICKER_BUTTON_CLASS","DATE_PICKER_CALENDAR_CLASS","DATE_PICKER_STATUS_CLASS","DATE_PICKER","DATE_PICKER_BUTTON","DATE_PICKER_INTERNAL_INPUT","DATE_PICKER_EXTERNAL_INPUT","DATE_PICKER_CALENDAR","DATE_PICKER_STATUS","CALENDAR_DATE","CALENDAR_DATE_CURRENT_MONTH","CALENDAR_PREVIOUS_YEAR","CALENDAR_PREVIOUS_MONTH","CALENDAR_NEXT_YEAR","CALENDAR_NEXT_MONTH","CALENDAR_YEAR_SELECTION","CALENDAR_MONTH_SELECTION","CALENDAR_MONTH","CALENDAR_YEAR","CALENDAR_PREVIOUS_YEAR_CHUNK","CALENDAR_NEXT_YEAR_CHUNK","CALENDAR_DATE_PICKER","CALENDAR_MONTH_PICKER","CALENDAR_YEAR_PICKER","VALIDATION_MESSAGE","INTERNAL_DATE_FORMAT","DATE_PICKER_FOCUSABLE","MONTH_PICKER_FOCUSABLE","YEAR_PICKER_FOCUSABLE","keepDateWithinMonth","dateToCheck","numDays","numMonths","dateMonth","dateA","dateB","yearStr","dateFormat","adjustDate","_dateString$split2","_dateString$split4","currentYear","pow","lastDayOfTheMonth","padZeros","htmlArray","rowSize","grid","row","elementToChange","firstYearChunkEl","defaultDate","validationMessage","setCustomValidity","handleUpFromDate","handleDownFromDate","handleLeftFromDate","handleRightFromDate","handleHomeFromDate","handleEndFromDate","handlePageDownFromDate","handlePageUpFromDate","handleShiftPageDownFromDate","handleShiftPageUpFromDate","handleUpFromMonth","handleDownFromMonth","handleLeftFromMonth","handleRightFromMonth","handleHomeFromMonth","handleEndFromMonth","handlePageDownFromMonth","handlePageUpFromMonth","handleUpFromYear","handleDownFromYear","handleLeftFromYear","handleRightFromYear","handleHomeFromYear","handleEndFromYear","handlePageUpFromYear","handlePageDownFromYear","datePickerTabEventHandler","monthPickerTabEventHandler","yearPickerTabEventHandler","datePickerEvents","_defineProperty","_datePickerEvents","_CLICK","_getDatePickerContext14","calendarDateEl","_getDatePickerContext13","_getDatePickerContext17","_getDatePickerContext21","_buttonEl","_getDatePickerContext9","nextToFocus","_getDatePickerContext10","_getDatePickerContext8","_getDatePickerContext11","_getDatePickerContext19","_getDatePickerContext20","keydown","keydownKeyCode","_keydown","Up","ArrowUp","Down","ArrowDown","Left","ArrowLeft","Right","ArrowRight","Home","End","PageDown","PageUp","Shift+PageDown","Shift+PageUp","Tab","Shift+Tab","Escape","keyMap","_focusout","relatedTarget","_getDatePickerContext5","newValue","datePicker","mousemove","_datePickerEvents$mou","dateEl","currentCalendarDate","hoverDate","focusMonth","focusYear","root","enhanceDatePicker","defaultValue","calendarWrapper","tabIndex","insertAdjacentHTML","removeAttribute","required","enable","_getDatePickerContext2","_dropdown","DropdownSort","container","updateSelectedValue","overflowMenu","sortingOptions","onOptionClick","selectedItem","li","eventSelected","detail","breakpoints","TARGET","Dropdown","buttonElement","responsiveListCollapseEnabled","getElementsByTagName","outsideClose","toggleDropdown","IntersectionObserver","intersectionRatio","body","observe","doResponsiveCollapse","closeOnEscape","offset","rect","getBoundingClientRect","scrollLeft","pageXOffset","scrollTop","pageYOffset","left","hasParent","child","parentTagName","tagName","closeAll","changed","overflowMenuEl","oi","currentOverflowMenuEL","stopImmediatePropagation","forceClose","targetOffset","right","offsetWidth","innerWidth","offsetAgain","evt","openDropdowns","getTringuideBreakpoint","md","lg","ErrorSummary","handleClick","focusTarget","$target","href","inputId","getFragmentFromUrl","$input","$legendOrLabel","getAssociatedLegendOrLabel","preventScroll","url","pop","$fieldset","legends","$candidateLegend","legendTop","inputRect","height","innerHeight","Modal","$modal","triggers","closers","opener","modalElement","createEvent","initEvent","$backdrop","removeChild","trapFocus","hasForcedAction","handleEscape","dataModalOpener","openerId","activeModals","currentModal","firstFocusableElement","currentDialog","lastFocusableElement","modal","focusTrap","NAV","NAV_LINKS","OPENERS","CLOSE_BUTTON","CLOSERS","TOGGLES","ACTIVE_CLASS","Navigation","mobileMenu","mobile","openers","getComputedStyle","toggleNav","navLinks","isActive","trapContainers","_focusTrap","closer","width","trapContainer","trapTabKey","release","active","closeButton","menuButton","TOGGLE_ATTRIBUTE","RadioToggleGroup","containerElement","radioGroup","radioEls","radio","radioInputElement","contentId","modifierState","InputRegexMask","regexMask","newChar","regexStr","charCode","console","log","selectionStart","selectionEnd","RegExp","returnValue","dk","select_row","unselect_row","select_all_rows","unselect_all_rows","TableSelectableRows","table","strings","updateCheckboxList","checkbox","checkboxList","getCheckboxList","checkedNumber","nextElementSibling","_c","CustomEvent","bubbles","cancelable","updateGroupCheck","tableSelectableRows","groupCheckbox","getGroupCheckbox","tbodyCheckboxList","ResponsiveTable","_classCallCheck","headerCellEls","bodyRowEls","tableEl","header","rowEl","cellEls","children","headerCellEl","hasAttribute","xs","sm","xl","end","home","up","down","delete","direction","Tabnav","tabnav","tabs","keydownEventListener","focusLastTab","focusFirstTab","determineOrientation","keyupEventListener","enter","space","activateTab","w","g","clientWidth","proceed","clientHeight","pressed","getAllTabsInList","list","getIndexOfElementInList","tab","hash","location","setActiveHashTab","alreadyActive","setFocus","_tabpanelID","_tabpanel","tabpanelID","tabpanel","eventChanged","Toast","showToast","toasts","toast","requestAnimationFrame","Tooltip","addTooltip","trigger","tooltip","className","tooltipInner","tooltipArrow","tooltipContent","parent","triggerPosition","parentCoords","tooltipWidth","arrowDirection","bottom","arrowLeftPosition","endPositionOnPage","dist","_endPositionOnPage","arrowRightPosition","closeAllTooltips","elements","closeHoverTooltip","tooltipId","tooltipElement","onTooltipHover","setTimeout","_accordion","_interopRequireDefault","_alert","_checkboxToggleContent","_dropdownSort","_errorSummary","_regexInputMask","_modal","_navigation","_radioToggleContent","_table","_tabnav","_selectableTable","_toast","_tooltip","scope","jsSelectorAccordion","jsSelectorAccordionBordered","alertsWithCloseButton","_c2","jsSelectorCheckboxCollapse","_c3","jsSelectorDropdown","_c4","jsSelectorDropdownSort","_c5","on","$errorSummary","jsSelectorRegex","_c6","modals","jsSelectorRadioCollapse","_c7","jsSelectorTable","_c8","jsSelectableTable","_c9","jsSelectorTabnav","_c10","jsSelectorTooltip","_c11","$Array","$Object","ObjectPrototype","ArrayPrototype","to_string","hasToStringTag","toStringTag","fnToStr","array_slice","array_concat","array_push","strClass","tryFunctionObject","isCallable","bound","args","boundLength","boundArgs","nativeDefineProperty","supportsAccessors","ERR_ACCESSORS_NOT_SUPPORTED","ERR_VALUE_ACCESSORS","property","propertyString","hasValueOrWritable","getterType","setterType","set","__defineSetter__","_params","params","initCustomEvent","elproto","HTMLElement","HIDDEN","input","sequence","seq","_this","receptor","off","win","docEl","navigator","userAgent","platform","maxTouchPoints","MSStream","context","selection","controls"],"mappings":"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","file":"dkfds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/**\n * array-foreach\n * Array#forEach ponyfill for older browsers\n * (Ponyfill: A polyfill that doesn't overwrite the native method)\n * \n * https://github.com/twada/array-foreach\n *\n * Copyright (c) 2015-2016 Takuto Wada\n * Licensed under the MIT license.\n * https://github.com/twada/array-foreach/blob/master/MIT-LICENSE\n */\n'use strict';\n\nmodule.exports = function forEach (ary, callback, thisArg) {\n if (ary.forEach) {\n ary.forEach(callback, thisArg);\n return;\n }\n for (var i = 0; i < ary.length; i+=1) {\n callback.call(thisArg, ary[i], i, ary);\n }\n};\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = {};\n","module.exports = false;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","/* global define, KeyboardEvent, module */\n\n(function () {\n\n var keyboardeventKeyPolyfill = {\n polyfill: polyfill,\n keys: {\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut'\n }\n };\n\n // Function keys (F1-24).\n var i;\n for (i = 1; i < 25; i++) {\n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n }\n\n // Printable ASCII characters.\n var letter = '';\n for (i = 65; i < 91; i++) {\n letter = String.fromCharCode(i);\n keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n }\n\n function polyfill () {\n if (!('KeyboardEvent' in window) ||\n 'key' in KeyboardEvent.prototype) {\n return false;\n }\n\n // Polyfill `key` on `KeyboardEvent`.\n var proto = {\n get: function (x) {\n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n if (Array.isArray(key)) {\n key = key[+this.shiftKey];\n }\n\n return key;\n }\n };\n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n return proto;\n }\n\n if (typeof define === 'function' && define.amd) {\n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n module.exports = keyboardeventKeyPolyfill;\n } else if (window) {\n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n }\n\n})();\n","'use strict';\n\nvar proto = typeof Element !== 'undefined' ? Element.prototype : {};\nvar vendor = proto.matches\n || proto.matchesSelector\n || proto.webkitMatchesSelector\n || proto.mozMatchesSelector\n || proto.msMatchesSelector\n || proto.oMatchesSelector;\n\nmodule.exports = match;\n\n/**\n * Match `el` to `selector`.\n *\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction match(el, selector) {\n if (!el || el.nodeType !== 1) return false;\n if (vendor) return vendor.call(el, selector);\n var nodes = el.parentNode.querySelectorAll(selector);\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i] == el) return true;\n }\n return false;\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('./delegate');\nconst delegateAll = require('./delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","const matches = require('matches-selector');\n\nmodule.exports = function(element, selector) {\n do {\n if (matches(element, selector)) {\n return element;\n }\n } while ((element = element.parentNode) && element.nodeType === 1);\n};\n\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","const closest = require('./closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = closest(event.target, selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('./delegate');\nconst compose = require('./compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","'use strict';\n\nmodule.exports = {\n behavior: require('./behavior'),\n delegate: require('./delegate'),\n delegateAll: require('./delegateAll'),\n ignore: require('./ignore'),\n keymap: require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/getModifierState>\nconst MODIFIERS = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Ctrl': 'ctrlKey',\n 'Shift': 'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n var key = event.key;\n if (hasModifiers) {\n for (var modifier in MODIFIERS) {\n if (event[MODIFIERS[modifier]] === true) {\n key = [modifier, key].join(MODIFIER_SEPARATOR);\n }\n }\n }\n return key;\n};\n\nmodule.exports = function keymap(keys) {\n const hasModifiers = Object.keys(keys).some(function(key) {\n return key.indexOf(MODIFIER_SEPARATOR) > -1;\n });\n return function(event) {\n var key = getEventKey(event, hasModifiers);\n return [key, key.toLowerCase()]\n .reduce(function(result, _key) {\n if (_key in keys) {\n result = keys[key].call(this, event);\n }\n return result;\n }, undefined);\n };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","'use strict';\r\nimport '../polyfills/Function/prototype/bind';\r\nconst toggle = require('../utils/toggle');\r\nconst isElementInViewport = require('../utils/is-in-viewport');\r\nconst BUTTON = `.accordion-button[aria-controls]`;\r\nconst EXPANDED = 'aria-expanded';\r\nconst MULTISELECTABLE = 'aria-multiselectable';\r\nconst MULTISELECTABLE_CLASS = 'accordion-multiselectable';\r\nconst BULK_FUNCTION_OPEN_TEXT = \"Åbn alle\";\r\nconst BULK_FUNCTION_CLOSE_TEXT = \"Luk alle\";\r\nconst BULK_FUNCTION_ACTION_ATTRIBUTE = \"data-accordion-bulk-expand\";\r\n\r\n/**\r\n * Adds click functionality to accordion list\r\n * @param {HTMLElement} $accordion the accordion ul element\r\n */\r\nfunction Accordion($accordion){\r\n if(!$accordion){\r\n throw new Error(`Missing accordion group element`);\r\n }\r\n this.accordion = $accordion;\r\n}\r\n\r\n/**\r\n * Set eventlisteners on click elements in accordion list\r\n */\r\nAccordion.prototype.init = function(){\r\n this.buttons = this.accordion.querySelectorAll(BUTTON);\r\n if(this.buttons.length == 0){\r\n throw new Error(`Missing accordion buttons`);\r\n }\r\n\r\n // loop buttons in list\r\n for (var i = 0; i < this.buttons.length; i++){\r\n let currentButton = this.buttons[i];\r\n \r\n // Verify state on button and state on panel\r\n let expanded = currentButton.getAttribute(EXPANDED) === 'true';\r\n this.toggleButton(currentButton, expanded);\r\n \r\n // Set click event on accordion buttons\r\n currentButton.removeEventListener('click', this.eventOnClick.bind(this, currentButton), false);\r\n currentButton.addEventListener('click', this.eventOnClick.bind(this, currentButton), false);\r\n }\r\n // Set click event on bulk button if present\r\n let prevSibling = this.accordion.previousElementSibling ;\r\n if(prevSibling !== null && prevSibling.classList.contains('accordion-bulk-button')){\r\n this.bulkFunctionButton = prevSibling;\r\n this.bulkFunctionButton.addEventListener('click', this.bulkEvent.bind(this));\r\n }\r\n}\r\n\r\n/**\r\n * Bulk event handler: Triggered when clicking on .accordion-bulk-button\r\n */\r\nAccordion.prototype.bulkEvent = function(){\r\n var $module = this;\r\n if(!$module.accordion.classList.contains('accordion')){ \r\n throw new Error(`Could not find accordion.`);\r\n }\r\n if($module.buttons.length == 0){\r\n throw new Error(`Missing accordion buttons`);\r\n }\r\n \r\n let expand = true;\r\n if($module.bulkFunctionButton.getAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE) === \"false\") {\r\n expand = false;\r\n }\r\n for (var i = 0; i < $module.buttons.length; i++){\r\n $module.toggleButton($module.buttons[i], expand, true);\r\n }\r\n \r\n $module.bulkFunctionButton.setAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE, !expand);\r\n if(!expand === true){\r\n $module.bulkFunctionButton.innerText = BULK_FUNCTION_OPEN_TEXT;\r\n } else{\r\n $module.bulkFunctionButton.innerText = BULK_FUNCTION_CLOSE_TEXT;\r\n }\r\n}\r\n\r\n/**\r\n * Accordion button event handler: Toggles accordion\r\n * @param {HTMLButtonElement} $button \r\n * @param {PointerEvent} e \r\n */\r\nAccordion.prototype.eventOnClick = function ($button, e) {\r\n var $module = this;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n $module.toggleButton($button);\r\n if ($button.getAttribute(EXPANDED) === 'true') {\r\n // We were just expanded, but if another accordion was also just\r\n // collapsed, we may no longer be in the viewport. This ensures\r\n // that we are still visible, so the user isn't confused.\r\n if (!isElementInViewport($button)) $button.scrollIntoView();\r\n }\r\n}\r\n\r\n/**\r\n * Toggle a button's \"pressed\" state, optionally providing a target\r\n * state.\r\n *\r\n * @param {HTMLButtonElement} button\r\n * @param {boolean?} expanded If no state is provided, the current\r\n * state will be toggled (from false to true, and vice-versa).\r\n * @return {boolean} the resulting state\r\n */\r\n Accordion.prototype.toggleButton = function (button, expanded, bulk = false) {\r\n let accordion = null;\r\n if(button.parentNode.parentNode.classList.contains('accordion')){\r\n accordion = button.parentNode.parentNode;\r\n } else if(button.parentNode.parentNode.parentNode.classList.contains('accordion')){\r\n accordion = button.parentNode.parentNode.parentNode;\r\n }\r\n expanded = toggle(button, expanded);\r\n if(expanded){ \r\n let eventOpen = new Event('fds.accordion.open');\r\n button.dispatchEvent(eventOpen);\r\n } else{\r\n let eventClose = new Event('fds.accordion.close');\r\n button.dispatchEvent(eventClose);\r\n }\r\n\r\n let multiselectable = false;\r\n if(accordion !== null && (accordion.getAttribute(MULTISELECTABLE) === 'true' || accordion.classList.contains(MULTISELECTABLE_CLASS))){\r\n multiselectable = true;\r\n let bulkFunction = accordion.previousElementSibling;\r\n if(bulkFunction !== null && bulkFunction.classList.contains('accordion-bulk-button')){\r\n let buttons = accordion.querySelectorAll(BUTTON);\r\n if(bulk === false){\r\n let buttonsOpen = accordion.querySelectorAll(BUTTON+'[aria-expanded=\"true\"]');\r\n let newStatus = true;\r\n\r\n if(buttons.length === buttonsOpen.length){\r\n newStatus = false;\r\n }\r\n \r\n bulkFunction.setAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE, newStatus);\r\n if(newStatus === true){\r\n bulkFunction.innerText = BULK_FUNCTION_OPEN_TEXT;\r\n } else{\r\n bulkFunction.innerText = BULK_FUNCTION_CLOSE_TEXT;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (expanded && !multiselectable) {\r\n let buttons = [ button ];\r\n if(accordion !== null) {\r\n buttons = accordion.querySelectorAll(BUTTON);\r\n }\r\n for(let i = 0; i < buttons.length; i++) {\r\n let currentButtton = buttons[i];\r\n if (currentButtton !== button && currentButtton.getAttribute('aria-expanded' === true)) {\r\n toggle(currentButtton, false);\r\n let eventClose = new Event('fds.accordion.close');\r\n currentButtton.dispatchEvent(eventClose);\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default Accordion;","'use strict';\r\nfunction Alert(alert){\r\n this.alert = alert;\r\n}\r\n\r\nAlert.prototype.init = function(){\r\n let close = this.alert.getElementsByClassName('alert-close');\r\n if(close.length === 1){\r\n close[0].addEventListener('click', this.hide.bind(this));\r\n }\r\n}\r\n\r\nAlert.prototype.hide = function(){\r\n this.alert.classList.add('d-none');\r\n let eventHide = new Event('fds.alert.hide');\r\n this.alert.dispatchEvent(eventHide);\r\n};\r\n\r\nAlert.prototype.show = function(){\r\n this.alert.classList.remove('d-none');\r\n \r\n let eventShow = new Event('fds.alert.show');\r\n this.alert.dispatchEvent(eventShow);\r\n};\r\n\r\nexport default Alert;","'use strict';\r\nimport '../polyfills/Function/prototype/bind';\r\n\r\nconst TOGGLE_TARGET_ATTRIBUTE = 'data-aria-controls';\r\n\r\n/**\r\n * Adds click functionality to checkbox collapse component\r\n * @param {HTMLInputElement} checkboxElement \r\n */\r\nfunction CheckboxToggleContent(checkboxElement){\r\n this.checkboxElement = checkboxElement;\r\n this.targetElement = null;\r\n}\r\n\r\n/**\r\n * Set events on checkbox state change\r\n */\r\nCheckboxToggleContent.prototype.init = function(){\r\n this.checkboxElement.addEventListener('change', this.toggle.bind(this));\r\n this.toggle();\r\n}\r\n\r\n/**\r\n * Toggle checkbox content\r\n */\r\nCheckboxToggleContent.prototype.toggle = function(){\r\n var $module = this;\r\n var targetAttr = this.checkboxElement.getAttribute(TOGGLE_TARGET_ATTRIBUTE)\r\n var targetEl = document.getElementById(targetAttr);\r\n if(targetEl === null || targetEl === undefined){\r\n throw new Error(`Could not find panel element. Verify value of attribute `+ TOGGLE_TARGET_ATTRIBUTE);\r\n }\r\n if(this.checkboxElement.checked){\r\n $module.expand(this.checkboxElement, targetEl);\r\n }else{\r\n $module.collapse(this.checkboxElement, targetEl);\r\n }\r\n}\r\n\r\n/**\r\n * Expand content\r\n * @param {HTMLInputElement} checkboxElement Checkbox input element \r\n * @param {HTMLElement} contentElement Content container element \r\n */\r\nCheckboxToggleContent.prototype.expand = function(checkboxElement, contentElement){\r\n if(checkboxElement !== null && checkboxElement !== undefined && contentElement !== null && contentElement !== undefined){\r\n checkboxElement.setAttribute('data-aria-expanded', 'true');\r\n contentElement.classList.remove('collapsed');\r\n contentElement.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.collapse.expanded');\r\n checkboxElement.dispatchEvent(eventOpen);\r\n }\r\n}\r\n\r\n/**\r\n * Collapse content\r\n * @param {HTMLInputElement} checkboxElement Checkbox input element \r\n * @param {HTMLElement} contentElement Content container element \r\n */\r\nCheckboxToggleContent.prototype.collapse = function(triggerEl, targetEl){\r\n if(triggerEl !== null && triggerEl !== undefined && targetEl !== null && targetEl !== undefined){\r\n triggerEl.setAttribute('data-aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true');\r\n \r\n let eventClose = new Event('fds.collapse.collapsed');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n}\r\n\r\nexport default CheckboxToggleContent;\r\n","import {keymap} from 'receptor';\r\nconst behavior = require(\"../utils/behavior\");\r\nconst select = require(\"../utils/select\");\r\nconst { prefix: PREFIX } = require(\"../config\");\r\nconst { CLICK } = require(\"../events\");\r\nconst activeElement = require(\"../utils/active-element\");\r\nconst isIosDevice = require(\"../utils/is-ios-device\");\r\n\r\nconst DATE_PICKER_CLASS = `date-picker`;\r\nconst DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;\r\nconst DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;\r\nconst DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;\r\nconst DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;\r\nconst DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;\r\nconst DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;\r\nconst DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;\r\nconst DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;\r\nconst CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;\r\n\r\nconst CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;\r\nconst CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;\r\nconst CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;\r\nconst CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;\r\nconst CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;\r\nconst CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;\r\nconst CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;\r\nconst CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;\r\nconst CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;\r\nconst CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;\r\nconst CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;\r\nconst CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;\r\nconst CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;\r\nconst CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;\r\nconst CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;\r\nconst CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;\r\nconst CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;\r\nconst CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;\r\nconst CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;\r\nconst CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;\r\nconst CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;\r\nconst CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;\r\nconst CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;\r\nconst CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;\r\nconst CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;\r\nconst CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;\r\nconst CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;\r\nconst CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;\r\nconst CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;\r\nconst CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;\r\nconst CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;\r\nconst CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;\r\nconst CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;\r\n\r\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\r\nconst DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;\r\nconst DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;\r\nconst DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;\r\nconst DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;\r\nconst DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;\r\nconst CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;\r\nconst CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;\r\nconst CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;\r\nconst CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;\r\nconst CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;\r\nconst CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;\r\nconst CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;\r\nconst CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;\r\nconst CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;\r\nconst CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;\r\nconst CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;\r\nconst CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;\r\nconst CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;\r\nconst CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;\r\nconst CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;\r\nconst CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;\r\nconst CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;\r\nconst CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;\r\n\r\nconst VALIDATION_MESSAGE = \"Indtast venligst en gyldig dato\";\r\n\r\nconst MONTH_LABELS = [\r\n \"Januar\",\r\n \"Februar\",\r\n \"Marts\",\r\n \"April\",\r\n \"Maj\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"August\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"December\",\r\n];\r\n\r\nconst DAY_OF_WEEK_LABELS = [\r\n \"Mandag\",\r\n \"Tirsdag\",\r\n \"Onsdag\",\r\n \"Torsdag\",\r\n \"Fredag\",\r\n \"Lørdag\",\r\n \"Søndag\",\r\n];\r\n\r\nconst ENTER_KEYCODE = 13;\r\n\r\nconst YEAR_CHUNK = 12;\r\n\r\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\r\nconst DEFAULT_EXTERNAL_DATE_FORMAT = \"DD/MM/YYYY\";\r\nconst INTERNAL_DATE_FORMAT = \"YYYY-MM-DD\";\r\n\r\nconst NOT_DISABLED_SELECTOR = \":not([disabled])\";\r\n\r\nconst processFocusableSelectors = (...selectors) =>\r\n selectors.map((query) => query + NOT_DISABLED_SELECTOR).join(\", \");\r\n\r\nconst DATE_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_PREVIOUS_YEAR,\r\n CALENDAR_PREVIOUS_MONTH,\r\n CALENDAR_YEAR_SELECTION,\r\n CALENDAR_MONTH_SELECTION,\r\n CALENDAR_NEXT_YEAR,\r\n CALENDAR_NEXT_MONTH,\r\n CALENDAR_DATE_FOCUSED\r\n);\r\n\r\nconst MONTH_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_MONTH_FOCUSED\r\n);\r\n\r\nconst YEAR_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_PREVIOUS_YEAR_CHUNK,\r\n CALENDAR_NEXT_YEAR_CHUNK,\r\n CALENDAR_YEAR_FOCUSED\r\n);\r\n\r\n// #region Date Manipulation Functions\r\n\r\n/**\r\n * Keep date within month. Month would only be over by 1 to 3 days\r\n *\r\n * @param {Date} dateToCheck the date object to check\r\n * @param {number} month the correct month\r\n * @returns {Date} the date, corrected if needed\r\n */\r\nconst keepDateWithinMonth = (dateToCheck, month) => {\r\n if (month !== dateToCheck.getMonth()) {\r\n dateToCheck.setDate(0);\r\n }\r\n\r\n return dateToCheck;\r\n};\r\n\r\n/**\r\n * Set date from month day year\r\n *\r\n * @param {number} year the year to set\r\n * @param {number} month the month to set (zero-indexed)\r\n * @param {number} date the date to set\r\n * @returns {Date} the set date\r\n */\r\nconst setDate = (year, month, date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(year, month, date);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * todays date\r\n *\r\n * @returns {Date} todays date\r\n */\r\nconst today = () => {\r\n const newDate = new Date();\r\n const day = newDate.getDate();\r\n const month = newDate.getMonth();\r\n const year = newDate.getFullYear();\r\n return setDate(year, month, day);\r\n};\r\n\r\n/**\r\n * Set date to first day of the month\r\n *\r\n * @param {number} date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst startOfMonth = (date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Set date to last day of the month\r\n *\r\n * @param {number} date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst lastDayOfMonth = (date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Add days to date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numDays the difference in days\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addDays = (_date, numDays) => {\r\n const newDate = new Date(_date.getTime());\r\n newDate.setDate(newDate.getDate() + numDays);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Subtract days from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numDays the difference in days\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subDays = (_date, numDays) => addDays(_date, -numDays);\r\n\r\n/**\r\n * Add weeks to date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);\r\n\r\n/**\r\n * Subtract weeks from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);\r\n\r\n/**\r\n * Set date to the start of the week (Monday)\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst startOfWeek = (_date) => {\r\n let dayOfWeek = _date.getDay()-1;\r\n if(dayOfWeek === -1){\r\n dayOfWeek = 6;\r\n }\r\n return subDays(_date, dayOfWeek);\r\n};\r\n\r\n/**\r\n * Set date to the end of the week (Sunday)\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst endOfWeek = (_date) => {\r\n const dayOfWeek = _date.getDay();\r\n return addDays(_date, 7 - dayOfWeek);\r\n};\r\n\r\n/**\r\n * Add months to date and keep date within month\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numMonths the difference in months\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addMonths = (_date, numMonths) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;\r\n newDate.setMonth(newDate.getMonth() + numMonths);\r\n keepDateWithinMonth(newDate, dateMonth);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Subtract months from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numMonths the difference in months\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subMonths = (_date, numMonths) => addMonths(_date, -numMonths);\r\n\r\n/**\r\n * Add years to date and keep date within month\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numYears the difference in years\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addYears = (_date, numYears) => addMonths(_date, numYears * 12);\r\n\r\n/**\r\n * Subtract years from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numYears the difference in years\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subYears = (_date, numYears) => addYears(_date, -numYears);\r\n\r\n/**\r\n * Set months of date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} month zero-indexed month to set\r\n * @returns {Date} the adjusted date\r\n */\r\nconst setMonth = (_date, month) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n newDate.setMonth(month);\r\n keepDateWithinMonth(newDate, month);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Set year of date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} year the year to set\r\n * @returns {Date} the adjusted date\r\n */\r\nconst setYear = (_date, year) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n const month = newDate.getMonth();\r\n newDate.setFullYear(year);\r\n keepDateWithinMonth(newDate, month);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Return the earliest date\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {Date} the earliest date\r\n */\r\nconst min = (dateA, dateB) => {\r\n let newDate = dateA;\r\n\r\n if (dateB < dateA) {\r\n newDate = dateB;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Return the latest date\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {Date} the latest date\r\n */\r\nconst max = (dateA, dateB) => {\r\n let newDate = dateA;\r\n\r\n if (dateB > dateA) {\r\n newDate = dateB;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Check if dates are the in the same year\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {boolean} are dates in the same year\r\n */\r\nconst isSameYear = (dateA, dateB) => {\r\n return dateA && dateB && dateA.getFullYear() === dateB.getFullYear();\r\n};\r\n\r\n/**\r\n * Check if dates are the in the same month\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {boolean} are dates in the same month\r\n */\r\nconst isSameMonth = (dateA, dateB) => {\r\n return isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();\r\n};\r\n\r\n/**\r\n * Check if dates are the same date\r\n *\r\n * @param {Date} dateA the date to compare\r\n * @param {Date} dateA the date to compare\r\n * @returns {boolean} are dates the same date\r\n */\r\nconst isSameDay = (dateA, dateB) => {\r\n return isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();\r\n};\r\n\r\n/**\r\n * return a new date within minimum and maximum date\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @returns {Date} the date between min and max\r\n */\r\nconst keepDateBetweenMinAndMax = (date, minDate, maxDate) => {\r\n let newDate = date;\r\n\r\n if (date < minDate) {\r\n newDate = minDate;\r\n } else if (maxDate && date > maxDate) {\r\n newDate = maxDate;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Check if dates is valid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is there a day within the month within min and max dates\r\n */\r\nconst isDateWithinMinAndMax = (date, minDate, maxDate) =>\r\n date >= minDate && (!maxDate || date <= maxDate);\r\n\r\n/**\r\n * Check if dates month is invalid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is the month outside min or max dates\r\n */\r\nconst isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) => {\r\n return (\r\n lastDayOfMonth(date) < minDate || (maxDate && startOfMonth(date) > maxDate)\r\n );\r\n};\r\n\r\n/**\r\n * Check if dates year is invalid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is the month outside min or max dates\r\n */\r\nconst isDatesYearOutsideMinOrMax = (date, minDate, maxDate) => {\r\n return (\r\n lastDayOfMonth(setMonth(date, 11)) < minDate ||\r\n (maxDate && startOfMonth(setMonth(date, 0)) > maxDate)\r\n );\r\n};\r\n\r\n/**\r\n * Parse a date with format D-M-YY\r\n *\r\n * @param {string} dateString the date string to parse\r\n * @param {string} dateFormat the format of the date string\r\n * @param {boolean} adjustDate should the date be adjusted\r\n * @returns {Date} the parsed date\r\n */\r\nconst parseDateString = (\r\n dateString,\r\n dateFormat = INTERNAL_DATE_FORMAT,\r\n adjustDate = false\r\n) => {\r\n let date;\r\n let month;\r\n let day;\r\n let year;\r\n let parsed;\r\n\r\n if (dateString) {\r\n let monthStr, dayStr, yearStr;\r\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\r\n [dayStr, monthStr, yearStr] = dateString.split(\"/\");\r\n } else {\r\n [yearStr, monthStr, dayStr] = dateString.split(\"-\");\r\n }\r\n\r\n if (yearStr) {\r\n parsed = parseInt(yearStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n year = parsed;\r\n if (adjustDate) {\r\n year = Math.max(0, year);\r\n if (yearStr.length < 3) {\r\n const currentYear = today().getFullYear();\r\n const currentYearStub =\r\n currentYear - (currentYear % 10 ** yearStr.length);\r\n year = currentYearStub + parsed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (monthStr) {\r\n parsed = parseInt(monthStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n month = parsed;\r\n if (adjustDate) {\r\n month = Math.max(1, month);\r\n month = Math.min(12, month);\r\n }\r\n }\r\n }\r\n\r\n if (month && dayStr && year != null) {\r\n parsed = parseInt(dayStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n day = parsed;\r\n if (adjustDate) {\r\n const lastDayOfTheMonth = setDate(year, month, 0).getDate();\r\n day = Math.max(1, day);\r\n day = Math.min(lastDayOfTheMonth, day);\r\n }\r\n }\r\n }\r\n\r\n if (month && day && year != null) {\r\n date = setDate(year, month - 1, day);\r\n }\r\n }\r\n\r\n return date;\r\n};\r\n\r\n/**\r\n * Format a date to format MM-DD-YYYY\r\n *\r\n * @param {Date} date the date to format\r\n * @param {string} dateFormat the format of the date string\r\n * @returns {string} the formatted date string\r\n */\r\nconst formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {\r\n const padZeros = (value, length) => {\r\n return `0000${value}`.slice(-length);\r\n };\r\n\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n if (dateFormat === DEFAULT_EXTERNAL_DATE_FORMAT) {\r\n return [padZeros(day, 2), padZeros(month, 2), padZeros(year, 4)].join(\"/\");\r\n }\r\n\r\n return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join(\"-\");\r\n};\r\n\r\n// #endregion Date Manipulation Functions\r\n\r\n/**\r\n * Create a grid string from an array of html strings\r\n *\r\n * @param {string[]} htmlArray the array of html items\r\n * @param {number} rowSize the length of a row\r\n * @returns {string} the grid string\r\n */\r\nconst listToGridHtml = (htmlArray, rowSize) => {\r\n const grid = [];\r\n let row = [];\r\n\r\n let i = 0;\r\n while (i < htmlArray.length) {\r\n row = [];\r\n while (i < htmlArray.length && row.length < rowSize) {\r\n row.push(`<td>${htmlArray[i]}</td>`);\r\n i += 1;\r\n }\r\n grid.push(`<tr>${row.join(\"\")}</tr>`);\r\n }\r\n\r\n return grid.join(\"\");\r\n};\r\n\r\n/**\r\n * set the value of the element and dispatch a change event\r\n *\r\n * @param {HTMLInputElement} el The element to update\r\n * @param {string} value The new value of the element\r\n */\r\nconst changeElementValue = (el, value = \"\") => {\r\n const elementToChange = el;\r\n elementToChange.value = value;\r\n\r\n\r\n var event = new Event('change');\r\n elementToChange.dispatchEvent(event);\r\n};\r\n\r\n/**\r\n * The properties and elements within the date picker.\r\n * @typedef {Object} DatePickerContext\r\n * @property {HTMLDivElement} calendarEl\r\n * @property {HTMLElement} datePickerEl\r\n * @property {HTMLInputElement} internalInputEl\r\n * @property {HTMLInputElement} externalInputEl\r\n * @property {HTMLDivElement} statusEl\r\n * @property {HTMLDivElement} firstYearChunkEl\r\n * @property {Date} calendarDate\r\n * @property {Date} minDate\r\n * @property {Date} maxDate\r\n * @property {Date} selectedDate\r\n * @property {Date} rangeDate\r\n * @property {Date} defaultDate\r\n */\r\n\r\n/**\r\n * Get an object of the properties and elements belonging directly to the given\r\n * date picker component.\r\n *\r\n * @param {HTMLElement} el the element within the date picker\r\n * @returns {DatePickerContext} elements\r\n */\r\nconst getDatePickerContext = (el) => {\r\n const datePickerEl = el.closest(DATE_PICKER);\r\n\r\n if (!datePickerEl) {\r\n throw new Error(`Element is missing outer ${DATE_PICKER}`);\r\n }\r\n\r\n const internalInputEl = datePickerEl.querySelector(\r\n DATE_PICKER_INTERNAL_INPUT\r\n );\r\n const externalInputEl = datePickerEl.querySelector(\r\n DATE_PICKER_EXTERNAL_INPUT\r\n );\r\n const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);\r\n const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);\r\n const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);\r\n const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);\r\n\r\n const inputDate = parseDateString(\r\n externalInputEl.value,\r\n DEFAULT_EXTERNAL_DATE_FORMAT,\r\n true\r\n );\r\n const selectedDate = parseDateString(internalInputEl.value);\r\n\r\n const calendarDate = parseDateString(calendarEl.dataset.value);\r\n const minDate = parseDateString(datePickerEl.dataset.minDate);\r\n const maxDate = parseDateString(datePickerEl.dataset.maxDate);\r\n const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);\r\n const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);\r\n\r\n if (minDate && maxDate && minDate > maxDate) {\r\n throw new Error(\"Minimum date cannot be after maximum date\");\r\n }\r\n\r\n return {\r\n calendarDate,\r\n minDate,\r\n toggleBtnEl,\r\n selectedDate,\r\n maxDate,\r\n firstYearChunkEl,\r\n datePickerEl,\r\n inputDate,\r\n internalInputEl,\r\n externalInputEl,\r\n calendarEl,\r\n rangeDate,\r\n defaultDate,\r\n statusEl,\r\n };\r\n};\r\n\r\n/**\r\n * Disable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst disable = (el) => {\r\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\r\n\r\n toggleBtnEl.disabled = true;\r\n externalInputEl.disabled = true;\r\n};\r\n\r\n/**\r\n * Enable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst enable = (el) => {\r\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\r\n\r\n toggleBtnEl.disabled = false;\r\n externalInputEl.disabled = false;\r\n};\r\n\r\n// #region Validation\r\n\r\n/**\r\n * Validate the value in the input as a valid date of format D/M/YYYY\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst isDateInputInvalid = (el) => {\r\n const { externalInputEl, minDate, maxDate } = getDatePickerContext(el);\r\n\r\n const dateString = externalInputEl.value;\r\n let isInvalid = false;\r\n\r\n if (dateString) {\r\n isInvalid = true;\r\n\r\n const dateStringParts = dateString.split(\"/\");\r\n const [day, month, year] = dateStringParts.map((str) => {\r\n let value;\r\n const parsed = parseInt(str, 10);\r\n if (!Number.isNaN(parsed)) value = parsed;\r\n return value;\r\n });\r\n\r\n if (month && day && year != null) {\r\n const checkDate = setDate(year, month - 1, day);\r\n\r\n if (\r\n checkDate.getMonth() === month - 1 &&\r\n checkDate.getDate() === day &&\r\n checkDate.getFullYear() === year &&\r\n dateStringParts[2].length === 4 &&\r\n isDateWithinMinAndMax(checkDate, minDate, maxDate)\r\n ) {\r\n isInvalid = false;\r\n }\r\n }\r\n }\r\n\r\n return isInvalid;\r\n};\r\n\r\n/**\r\n * Validate the value in the input as a valid date of format M/D/YYYY\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst validateDateInput = (el) => {\r\n const { externalInputEl } = getDatePickerContext(el);\r\n const isInvalid = isDateInputInvalid(externalInputEl);\r\n\r\n if (isInvalid && !externalInputEl.validationMessage) {\r\n externalInputEl.setCustomValidity(VALIDATION_MESSAGE);\r\n }\r\n\r\n if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {\r\n externalInputEl.setCustomValidity(\"\");\r\n }\r\n};\r\n\r\n// #endregion Validation\r\n\r\n/**\r\n * Enable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst reconcileInputValues = (el) => {\r\n const { internalInputEl, inputDate } = getDatePickerContext(el);\r\n let newValue = \"\";\r\n\r\n if (inputDate && !isDateInputInvalid(el)) {\r\n newValue = formatDate(inputDate);\r\n }\r\n\r\n if (internalInputEl.value !== newValue) {\r\n changeElementValue(internalInputEl, newValue);\r\n }\r\n};\r\n\r\n/**\r\n * Select the value of the date picker inputs.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @param {string} dateString The date string to update in YYYY-MM-DD format\r\n */\r\nconst setCalendarValue = (el, dateString) => {\r\n const parsedDate = parseDateString(dateString);\r\n\r\n if (parsedDate) {\r\n const formattedDate = formatDate(parsedDate, DEFAULT_EXTERNAL_DATE_FORMAT);\r\n\r\n const {\r\n datePickerEl,\r\n internalInputEl,\r\n externalInputEl,\r\n } = getDatePickerContext(el);\r\n\r\n changeElementValue(internalInputEl, dateString);\r\n changeElementValue(externalInputEl, formattedDate);\r\n\r\n validateDateInput(datePickerEl);\r\n }\r\n};\r\n\r\n/**\r\n * Enhance an input with the date picker elements\r\n *\r\n * @param {HTMLElement} el The initial wrapping element of the date picker component\r\n */\r\nconst enhanceDatePicker = (el) => {\r\n const datePickerEl = el.closest(DATE_PICKER);\r\n const defaultValue = datePickerEl.dataset.defaultValue;\r\n\r\n const internalInputEl = datePickerEl.querySelector(`input`);\r\n\r\n if (!internalInputEl) {\r\n throw new Error(`${DATE_PICKER} is missing inner input`);\r\n }\r\n\r\n\r\n const minDate = parseDateString(\r\n datePickerEl.dataset.minDate || internalInputEl.getAttribute(\"min\")\r\n );\r\n datePickerEl.dataset.minDate = minDate\r\n ? formatDate(minDate)\r\n : DEFAULT_MIN_DATE;\r\n\r\n const maxDate = parseDateString(\r\n datePickerEl.dataset.maxDate || internalInputEl.getAttribute(\"max\")\r\n );\r\n if (maxDate) {\r\n datePickerEl.dataset.maxDate = formatDate(maxDate);\r\n }\r\n\r\n const calendarWrapper = document.createElement(\"div\");\r\n calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);\r\n calendarWrapper.tabIndex = \"-1\";\r\n\r\n const externalInputEl = internalInputEl.cloneNode();\r\n externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);\r\n externalInputEl.type = \"text\";\r\n externalInputEl.name = \"\";\r\n\r\n calendarWrapper.appendChild(externalInputEl);\r\n calendarWrapper.insertAdjacentHTML(\r\n \"beforeend\",\r\n [\r\n `<button type=\"button\" class=\"${DATE_PICKER_BUTTON_CLASS}\" aria-haspopup=\"true\" aria-label=\"Åbn kalender\">&nbsp;</button>`,\r\n `<div class=\"${DATE_PICKER_CALENDAR_CLASS}\" role=\"dialog\" aria-modal=\"true\" hidden></div>`,\r\n `<div class=\"sr-only ${DATE_PICKER_STATUS_CLASS}\" role=\"status\" aria-live=\"polite\"></div>`,\r\n ].join(\"\")\r\n );\r\n\r\n internalInputEl.setAttribute(\"aria-hidden\", \"true\");\r\n internalInputEl.setAttribute(\"tabindex\", \"-1\");\r\n internalInputEl.classList.add(\r\n \"sr-only\",\r\n DATE_PICKER_INTERNAL_INPUT_CLASS\r\n );\r\n internalInputEl.removeAttribute('id');\r\n internalInputEl.required = false;\r\n\r\n datePickerEl.appendChild(calendarWrapper);\r\n datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);\r\n\r\n if (defaultValue) {\r\n setCalendarValue(datePickerEl, defaultValue);\r\n }\r\n\r\n if (internalInputEl.disabled) {\r\n disable(datePickerEl);\r\n internalInputEl.disabled = false;\r\n }\r\n \r\n if (externalInputEl.value) {\r\n validateDateInput(externalInputEl);\r\n }\r\n};\r\n\r\n// #region Calendar - Date Selection View\r\n\r\n/**\r\n * render the calendar.\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n * @param {Date} _dateToDisplay a date to render on the calendar\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst renderCalendar = (el, _dateToDisplay) => {\r\n const {\r\n datePickerEl,\r\n calendarEl,\r\n statusEl,\r\n selectedDate,\r\n maxDate,\r\n minDate,\r\n rangeDate,\r\n } = getDatePickerContext(el);\r\n const todaysDate = today();\r\n let dateToDisplay = _dateToDisplay || todaysDate;\r\n\r\n const calendarWasHidden = calendarEl.hidden;\r\n\r\n const focusedDate = addDays(dateToDisplay, 0);\r\n const focusedMonth = dateToDisplay.getMonth();\r\n const focusedYear = dateToDisplay.getFullYear();\r\n\r\n const prevMonth = subMonths(dateToDisplay, 1);\r\n const nextMonth = addMonths(dateToDisplay, 1);\r\n\r\n const currentFormattedDate = formatDate(dateToDisplay);\r\n\r\n const firstOfMonth = startOfMonth(dateToDisplay);\r\n const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);\r\n const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);\r\n\r\n const rangeConclusionDate = selectedDate || dateToDisplay;\r\n const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);\r\n const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);\r\n\r\n const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);\r\n const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);\r\n\r\n const monthLabel = MONTH_LABELS[focusedMonth];\r\n\r\n const generateDateHtml = (dateToRender) => {\r\n const classes = [CALENDAR_DATE_CLASS];\r\n const day = dateToRender.getDate();\r\n const month = dateToRender.getMonth();\r\n const year = dateToRender.getFullYear();\r\n const dayOfWeek = dateToRender.getDay();\r\n\r\n const formattedDate = formatDate(dateToRender);\r\n\r\n let tabindex = \"-1\";\r\n\r\n const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);\r\n const isSelected = isSameDay(dateToRender, selectedDate);\r\n\r\n if (isSameMonth(dateToRender, prevMonth)) {\r\n classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);\r\n }\r\n\r\n if (isSameMonth(dateToRender, focusedDate)) {\r\n classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);\r\n }\r\n\r\n if (isSameMonth(dateToRender, nextMonth)) {\r\n classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_DATE_SELECTED_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, todaysDate)) {\r\n classes.push(CALENDAR_DATE_TODAY_CLASS);\r\n }\r\n\r\n if (rangeDate) {\r\n if (isSameDay(dateToRender, rangeDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, rangeStartDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, rangeEndDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);\r\n }\r\n\r\n if (\r\n isDateWithinMinAndMax(\r\n dateToRender,\r\n withinRangeStartDate,\r\n withinRangeEndDate\r\n )\r\n ) {\r\n classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);\r\n }\r\n }\r\n\r\n if (isSameDay(dateToRender, focusedDate)) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_DATE_FOCUSED_CLASS);\r\n }\r\n\r\n const monthStr = MONTH_LABELS[month];\r\n const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];\r\n\r\n return `<button\r\n type=\"button\"\r\n tabindex=\"${tabindex}\"\r\n class=\"${classes.join(\" \")}\" \r\n data-day=\"${day}\" \r\n data-month=\"${month + 1}\" \r\n data-year=\"${year}\" \r\n data-value=\"${formattedDate}\"\r\n aria-label=\"${dayStr} den ${day} ${monthStr} ${year} \"\r\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\r\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >${day}</button>`;\r\n };\r\n // set date to first rendered day\r\n dateToDisplay = startOfWeek(firstOfMonth);\r\n\r\n const days = [];\r\n\r\n while (\r\n days.length < 28 ||\r\n dateToDisplay.getMonth() === focusedMonth ||\r\n days.length % 7 !== 0\r\n ) {\r\n days.push(generateDateHtml(dateToDisplay));\r\n dateToDisplay = addDays(dateToDisplay, 1); \r\n }\r\n const datesHtml = listToGridHtml(days, 7);\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.dataset.value = currentFormattedDate;\r\n newCalendar.style.top = `${datePickerEl.offsetHeight}px`;\r\n newCalendar.hidden = false;\r\n let content = `<div tabindex=\"-1\" class=\"${CALENDAR_DATE_PICKER_CLASS}\">\r\n <div class=\"${CALENDAR_ROW_CLASS}\">\r\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\r\n <button \r\n type=\"button\"\r\n class=\"${CALENDAR_PREVIOUS_YEAR_CLASS}\"\r\n aria-label=\"Navigér ét år tilbage\"\r\n ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >&nbsp;</button>\r\n </div>\r\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\r\n <button \r\n type=\"button\"\r\n class=\"${CALENDAR_PREVIOUS_MONTH_CLASS}\"\r\n aria-label=\"Navigér én måned tilbage\"\r\n ${prevButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >&nbsp;</button>\r\n </div>\r\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_MONTH_LABEL_CLASS}\">\r\n <button \r\n type=\"button\"\r\n class=\"${CALENDAR_MONTH_SELECTION_CLASS}\" aria-label=\"${monthLabel}. Vælg måned.\"\r\n >${monthLabel}</button>\r\n <button \r\n type=\"button\"\r\n class=\"${CALENDAR_YEAR_SELECTION_CLASS}\" aria-label=\"${focusedYear}. Vælg år.\"\r\n >${focusedYear}</button>\r\n </div>\r\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\r\n <button \r\n type=\"button\"\r\n class=\"${CALENDAR_NEXT_MONTH_CLASS}\"\r\n aria-label=\"Navigér én måned frem\"\r\n ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >&nbsp;</button>\r\n </div>\r\n <div class=\"${CALENDAR_CELL_CLASS} ${CALENDAR_CELL_CENTER_ITEMS_CLASS}\">\r\n <button \r\n type=\"button\"\r\n class=\"${CALENDAR_NEXT_YEAR_CLASS}\"\r\n aria-label=\"Navigér ét år frem\"\r\n ${nextButtonsDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >&nbsp;</button>\r\n </div>\r\n </div>\r\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\r\n <thead>\r\n <tr>`;\r\n for(let d in DAY_OF_WEEK_LABELS){\r\n content += `<th class=\"${CALENDAR_DAY_OF_WEEK_CLASS}\" scope=\"col\" aria-label=\"${DAY_OF_WEEK_LABELS[d]}\">${DAY_OF_WEEK_LABELS[d].charAt(0)}</th>`;\r\n }\r\n content += `</tr>\r\n </thead>\r\n <tbody>\r\n ${datesHtml}\r\n </tbody>\r\n </table>\r\n </div>`;\r\n newCalendar.innerHTML = content;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);\r\n\r\n const statuses = [];\r\n\r\n if (isSameDay(selectedDate, focusedDate)) {\r\n statuses.push(\"Selected date\");\r\n }\r\n\r\n if (calendarWasHidden) {\r\n statuses.push(\r\n \"Du kan navigere mellem dage ved at bruge højre og venstre piltaster, \",\r\n \"uger ved at bruge op og ned piltaster, \",\r\n \"måneder ved ta bruge page up og page down tasterne \",\r\n \"og år ved at at taste shift og page up eller ned.\",\r\n \"Home og end tasten navigerer til start eller slutning af en uge.\"\r\n );\r\n statusEl.textContent = \"\";\r\n } else {\r\n statuses.push(`${monthLabel} ${focusedYear}`);\r\n }\r\n statusEl.textContent = statuses.join(\". \");\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Navigate back one year and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayPreviousYear = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = subYears(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate back one month and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayPreviousMonth = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = subMonths(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward one month and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayNextMonth = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = addMonths(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward one year and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayNextYear = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = addYears(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Hide the calendar of a date picker component.\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst hideCalendar = (el) => {\r\n const { datePickerEl, calendarEl, statusEl } = getDatePickerContext(el);\r\n\r\n datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);\r\n calendarEl.hidden = true;\r\n statusEl.textContent = \"\";\r\n};\r\n\r\n/**\r\n * Select a date within the date picker component.\r\n *\r\n * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component\r\n */\r\nconst selectDate = (calendarDateEl) => {\r\n if (calendarDateEl.disabled) return;\r\n\r\n const { datePickerEl, externalInputEl } = getDatePickerContext(\r\n calendarDateEl\r\n );\r\n setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);\r\n hideCalendar(datePickerEl);\r\n\r\n externalInputEl.focus();\r\n};\r\n\r\n/**\r\n * Toggle the calendar.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst toggleCalendar = (el) => {\r\n if (el.disabled) return;\r\n const {\r\n calendarEl,\r\n inputDate,\r\n minDate,\r\n maxDate,\r\n defaultDate,\r\n } = getDatePickerContext(el);\r\n\r\n if (calendarEl.hidden) {\r\n const dateToDisplay = keepDateBetweenMinAndMax(\r\n inputDate || defaultDate || today(),\r\n minDate,\r\n maxDate\r\n );\r\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n } else {\r\n hideCalendar(el);\r\n }\r\n};\r\n\r\n/**\r\n * Update the calendar when visible.\r\n *\r\n * @param {HTMLElement} el an element within the date picker\r\n */\r\nconst updateCalendarIfVisible = (el) => {\r\n const { calendarEl, inputDate, minDate, maxDate } = getDatePickerContext(el);\r\n const calendarShown = !calendarEl.hidden;\r\n\r\n if (calendarShown && inputDate) {\r\n const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);\r\n renderCalendar(calendarEl, dateToDisplay);\r\n }\r\n};\r\n\r\n// #endregion Calendar - Date Selection View\r\n\r\n// #region Calendar - Month Selection View\r\n/**\r\n * Display the month selection screen in the date picker.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst displayMonthSelection = (el, monthToDisplay) => {\r\n const {\r\n calendarEl,\r\n statusEl,\r\n calendarDate,\r\n minDate,\r\n maxDate,\r\n } = getDatePickerContext(el);\r\n\r\n const selectedMonth = calendarDate.getMonth();\r\n const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;\r\n\r\n const months = MONTH_LABELS.map((month, index) => {\r\n const monthToCheck = setMonth(calendarDate, index);\r\n\r\n const isDisabled = isDatesMonthOutsideMinOrMax(\r\n monthToCheck,\r\n minDate,\r\n maxDate\r\n );\r\n\r\n let tabindex = \"-1\";\r\n\r\n const classes = [CALENDAR_MONTH_CLASS];\r\n const isSelected = index === selectedMonth;\r\n\r\n if (index === focusedMonth) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_MONTH_FOCUSED_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_MONTH_SELECTED_CLASS);\r\n }\r\n\r\n return `<button \r\n type=\"button\"\r\n tabindex=\"${tabindex}\"\r\n class=\"${classes.join(\" \")}\" \r\n data-value=\"${index}\"\r\n data-label=\"${month}\"\r\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\r\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >${month}</button>`;\r\n });\r\n\r\n const monthsHtml = `<div tabindex=\"-1\" class=\"${CALENDAR_MONTH_PICKER_CLASS}\">\r\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\r\n <tbody>\r\n ${listToGridHtml(months, 3)}\r\n </tbody>\r\n </table>\r\n </div>`;\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.innerHTML = monthsHtml;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n statusEl.textContent = \"Select a month.\";\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Select a month in the date picker component.\r\n *\r\n * @param {HTMLButtonElement} monthEl An month element within the date picker component\r\n */\r\nconst selectMonth = (monthEl) => {\r\n if (monthEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n monthEl\r\n );\r\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\r\n let date = setMonth(calendarDate, selectedMonth);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar - Month Selection View\r\n\r\n// #region Calendar - Year Selection View\r\n\r\n/**\r\n * Display the year selection screen in the date picker.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @param {number} yearToDisplay year to display in year selection\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst displayYearSelection = (el, yearToDisplay) => {\r\n const {\r\n calendarEl,\r\n statusEl,\r\n calendarDate,\r\n minDate,\r\n maxDate,\r\n } = getDatePickerContext(el);\r\n\r\n const selectedYear = calendarDate.getFullYear();\r\n const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;\r\n\r\n let yearToChunk = focusedYear;\r\n yearToChunk -= yearToChunk % YEAR_CHUNK;\r\n yearToChunk = Math.max(0, yearToChunk);\r\n\r\n const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearToChunk - 1),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearToChunk + YEAR_CHUNK),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n const years = [];\r\n let yearIndex = yearToChunk;\r\n while (years.length < YEAR_CHUNK) {\r\n const isDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearIndex),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n let tabindex = \"-1\";\r\n\r\n const classes = [CALENDAR_YEAR_CLASS];\r\n const isSelected = yearIndex === selectedYear;\r\n\r\n if (yearIndex === focusedYear) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_YEAR_FOCUSED_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_YEAR_SELECTED_CLASS);\r\n }\r\n\r\n years.push(\r\n `<button \r\n type=\"button\"\r\n tabindex=\"${tabindex}\"\r\n class=\"${classes.join(\" \")}\" \r\n data-value=\"${yearIndex}\"\r\n aria-selected=\"${isSelected ? \"true\" : \"false\"}\"\r\n ${isDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >${yearIndex}</button>`\r\n );\r\n yearIndex += 1;\r\n }\r\n\r\n const yearsHtml = listToGridHtml(years, 3);\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.innerHTML = `<div tabindex=\"-1\" class=\"${CALENDAR_YEAR_PICKER_CLASS}\">\r\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\r\n <tbody>\r\n <tr>\r\n <td>\r\n <button\r\n type=\"button\"\r\n class=\"${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}\" \r\n aria-label=\"Navigér ${YEAR_CHUNK} år tilbage\"\r\n ${prevYearChunkDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >&nbsp;</button>\r\n </td>\r\n <td colspan=\"3\">\r\n <table class=\"${CALENDAR_TABLE_CLASS}\" role=\"presentation\">\r\n <tbody>\r\n ${yearsHtml}\r\n </tbody>\r\n </table>\r\n </td>\r\n <td>\r\n <button\r\n type=\"button\"\r\n class=\"${CALENDAR_NEXT_YEAR_CHUNK_CLASS}\" \r\n aria-label=\"Navigér ${YEAR_CHUNK} år frem\"\r\n ${nextYearChunkDisabled ? `disabled=\"disabled\"` : \"\"}\r\n >&nbsp;</button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>`;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n statusEl.textContent = `Showing years ${yearToChunk} to ${\r\n yearToChunk + YEAR_CHUNK - 1\r\n }. Select a year.`;\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Navigate back by years and display the year selection screen.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst displayPreviousYearChunk = (el) => {\r\n if (el.disabled) return;\r\n\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n el\r\n );\r\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\r\n const selectedYear = parseInt(yearEl.textContent, 10);\r\n\r\n let adjustedYear = selectedYear - YEAR_CHUNK;\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward by years and display the year selection screen.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst displayNextYearChunk = (el) => {\r\n if (el.disabled) return;\r\n\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n el\r\n );\r\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\r\n const selectedYear = parseInt(yearEl.textContent, 10);\r\n\r\n let adjustedYear = selectedYear + YEAR_CHUNK;\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Select a year in the date picker component.\r\n *\r\n * @param {HTMLButtonElement} yearEl A year element within the date picker component\r\n */\r\nconst selectYear = (yearEl) => {\r\n if (yearEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n yearEl\r\n );\r\n const selectedYear = parseInt(yearEl.innerHTML, 10);\r\n let date = setYear(calendarDate, selectedYear);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar - Year Selection View\r\n\r\n// #region Calendar Event Handling\r\n\r\n/**\r\n * Hide the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEscapeFromCalendar = (event) => {\r\n const { datePickerEl, externalInputEl } = getDatePickerContext(event.target);\r\n\r\n hideCalendar(datePickerEl);\r\n externalInputEl.focus();\r\n\r\n event.preventDefault();\r\n};\r\n\r\n// #endregion Calendar Event Handling\r\n\r\n// #region Calendar Date Event Handling\r\n\r\n/**\r\n * Adjust the date and display the calendar if needed.\r\n *\r\n * @param {function} adjustDateFn function that returns the adjusted date\r\n */\r\nconst adjustCalendar = (adjustDateFn) => {\r\n return (event) => {\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n event.target\r\n );\r\n\r\n const date = adjustDateFn(calendarDate);\r\n\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameDay(calendarDate, cappedDate)) {\r\n const newCalendar = renderCalendar(calendarEl, cappedDate);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back one week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromDate = adjustCalendar((date) => subWeeks(date, 1));\r\n\r\n/**\r\n * Navigate forward one week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromDate = adjustCalendar((date) => addWeeks(date, 1));\r\n\r\n/**\r\n * Navigate back one day and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromDate = adjustCalendar((date) => subDays(date, 1));\r\n\r\n/**\r\n * Navigate forward one day and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromDate = adjustCalendar((date) => addDays(date, 1));\r\n\r\n/**\r\n * Navigate to the start of the week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromDate = adjustCalendar((date) => startOfWeek(date));\r\n\r\n/**\r\n * Navigate to the end of the week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromDate = adjustCalendar((date) => endOfWeek(date));\r\n\r\n/**\r\n * Navigate forward one month and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromDate = adjustCalendar((date) => addMonths(date, 1));\r\n\r\n/**\r\n * Navigate back one month and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromDate = adjustCalendar((date) => subMonths(date, 1));\r\n\r\n/**\r\n * Navigate forward one year and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleShiftPageDownFromDate = adjustCalendar((date) => addYears(date, 1));\r\n\r\n/**\r\n * Navigate back one year and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleShiftPageUpFromDate = adjustCalendar((date) => subYears(date, 1));\r\n\r\n/**\r\n * display the calendar for the mousemove date.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} dateEl A date element within the date picker component\r\n */\r\nconst handleMousemoveFromDate = (dateEl) => {\r\n if (dateEl.disabled) return;\r\n\r\n const calendarEl = dateEl.closest(DATE_PICKER_CALENDAR);\r\n\r\n const currentCalendarDate = calendarEl.dataset.value;\r\n const hoverDate = dateEl.dataset.value;\r\n\r\n if (hoverDate === currentCalendarDate) return;\r\n\r\n const dateToDisplay = parseDateString(hoverDate);\r\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Date Event Handling\r\n\r\n// #region Calendar Month Event Handling\r\n\r\n/**\r\n * Adjust the month and display the month selection screen if needed.\r\n *\r\n * @param {function} adjustMonthFn function that returns the adjusted month\r\n */\r\nconst adjustMonthSelectionScreen = (adjustMonthFn) => {\r\n return (event) => {\r\n const monthEl = event.target;\r\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n monthEl\r\n );\r\n const currentDate = setMonth(calendarDate, selectedMonth);\r\n\r\n let adjustedMonth = adjustMonthFn(selectedMonth);\r\n adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));\r\n\r\n const date = setMonth(calendarDate, adjustedMonth);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameMonth(currentDate, cappedDate)) {\r\n const newCalendar = displayMonthSelection(\r\n calendarEl,\r\n cappedDate.getMonth()\r\n );\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back three months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromMonth = adjustMonthSelectionScreen((month) => month - 3);\r\n\r\n/**\r\n * Navigate forward three months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromMonth = adjustMonthSelectionScreen((month) => month + 3);\r\n\r\n/**\r\n * Navigate back one month and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromMonth = adjustMonthSelectionScreen((month) => month - 1);\r\n\r\n/**\r\n * Navigate forward one month and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromMonth = adjustMonthSelectionScreen((month) => month + 1);\r\n\r\n/**\r\n * Navigate to the start of the row of months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromMonth = adjustMonthSelectionScreen(\r\n (month) => month - (month % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the end of the row of months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromMonth = adjustMonthSelectionScreen(\r\n (month) => month + 2 - (month % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the last month (December) and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);\r\n\r\n/**\r\n * Navigate to the first month (January) and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);\r\n\r\n/**\r\n * update the focus on a month when the mouse moves.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} monthEl A month element within the date picker component\r\n */\r\nconst handleMousemoveFromMonth = (monthEl) => {\r\n if (monthEl.disabled) return;\r\n if (monthEl.classList.contains(CALENDAR_MONTH_FOCUSED_CLASS)) return;\r\n\r\n const focusMonth = parseInt(monthEl.dataset.value, 10);\r\n\r\n const newCalendar = displayMonthSelection(monthEl, focusMonth);\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Month Event Handling\r\n\r\n// #region Calendar Year Event Handling\r\n\r\n/**\r\n * Adjust the year and display the year selection screen if needed.\r\n *\r\n * @param {function} adjustYearFn function that returns the adjusted year\r\n */\r\nconst adjustYearSelectionScreen = (adjustYearFn) => {\r\n return (event) => {\r\n const yearEl = event.target;\r\n const selectedYear = parseInt(yearEl.dataset.value, 10);\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n yearEl\r\n );\r\n const currentDate = setYear(calendarDate, selectedYear);\r\n\r\n let adjustedYear = adjustYearFn(selectedYear);\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameYear(currentDate, cappedDate)) {\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back three years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromYear = adjustYearSelectionScreen((year) => year - 3);\r\n\r\n/**\r\n * Navigate forward three years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromYear = adjustYearSelectionScreen((year) => year + 3);\r\n\r\n/**\r\n * Navigate back one year and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromYear = adjustYearSelectionScreen((year) => year - 1);\r\n\r\n/**\r\n * Navigate forward one year and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromYear = adjustYearSelectionScreen((year) => year + 1);\r\n\r\n/**\r\n * Navigate to the start of the row of years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromYear = adjustYearSelectionScreen(\r\n (year) => year - (year % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the end of the row of years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromYear = adjustYearSelectionScreen(\r\n (year) => year + 2 - (year % 3)\r\n);\r\n\r\n/**\r\n * Navigate to back 12 years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromYear = adjustYearSelectionScreen(\r\n (year) => year - YEAR_CHUNK\r\n);\r\n\r\n/**\r\n * Navigate forward 12 years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromYear = adjustYearSelectionScreen(\r\n (year) => year + YEAR_CHUNK\r\n);\r\n\r\n/**\r\n * update the focus on a year when the mouse moves.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} dateEl A year element within the date picker component\r\n */\r\nconst handleMousemoveFromYear = (yearEl) => {\r\n if (yearEl.disabled) return;\r\n if (yearEl.classList.contains(CALENDAR_YEAR_FOCUSED_CLASS)) return;\r\n\r\n const focusYear = parseInt(yearEl.dataset.value, 10);\r\n\r\n const newCalendar = displayYearSelection(yearEl, focusYear);\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Year Event Handling\r\n\r\n// #region Focus Handling Event Handling\r\n\r\nconst tabHandler = (focusable) => {\r\n const getFocusableContext = (el) => {\r\n const { calendarEl } = getDatePickerContext(el);\r\n const focusableElements = select(focusable, calendarEl);\r\n\r\n const firstTabIndex = 0;\r\n const lastTabIndex = focusableElements.length - 1;\r\n const firstTabStop = focusableElements[firstTabIndex];\r\n const lastTabStop = focusableElements[lastTabIndex];\r\n const focusIndex = focusableElements.indexOf(activeElement());\r\n\r\n const isLastTab = focusIndex === lastTabIndex;\r\n const isFirstTab = focusIndex === firstTabIndex;\r\n const isNotFound = focusIndex === -1;\r\n\r\n return {\r\n focusableElements,\r\n isNotFound,\r\n firstTabStop,\r\n isFirstTab,\r\n lastTabStop,\r\n isLastTab,\r\n };\r\n };\r\n\r\n return {\r\n tabAhead(event) {\r\n const { firstTabStop, isLastTab, isNotFound } = getFocusableContext(\r\n event.target\r\n );\r\n\r\n if (isLastTab || isNotFound) {\r\n event.preventDefault();\r\n firstTabStop.focus();\r\n }\r\n },\r\n tabBack(event) {\r\n const { lastTabStop, isFirstTab, isNotFound } = getFocusableContext(\r\n event.target\r\n );\r\n\r\n if (isFirstTab || isNotFound) {\r\n event.preventDefault();\r\n lastTabStop.focus();\r\n }\r\n },\r\n };\r\n};\r\n\r\nconst datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);\r\nconst monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);\r\nconst yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);\r\n\r\n// #endregion Focus Handling Event Handling\r\n\r\n// #region Date Picker Event Delegation Registration / Component\r\n\r\nconst datePickerEvents = {\r\n [CLICK]: {\r\n [DATE_PICKER_BUTTON]() {\r\n toggleCalendar(this);\r\n },\r\n [CALENDAR_DATE]() {\r\n selectDate(this);\r\n },\r\n [CALENDAR_MONTH]() {\r\n selectMonth(this);\r\n },\r\n [CALENDAR_YEAR]() {\r\n selectYear(this);\r\n },\r\n [CALENDAR_PREVIOUS_MONTH]() {\r\n displayPreviousMonth(this);\r\n },\r\n [CALENDAR_NEXT_MONTH]() {\r\n displayNextMonth(this);\r\n },\r\n [CALENDAR_PREVIOUS_YEAR]() {\r\n displayPreviousYear(this);\r\n },\r\n [CALENDAR_NEXT_YEAR]() {\r\n displayNextYear(this);\r\n },\r\n [CALENDAR_PREVIOUS_YEAR_CHUNK]() {\r\n displayPreviousYearChunk(this);\r\n },\r\n [CALENDAR_NEXT_YEAR_CHUNK]() {\r\n displayNextYearChunk(this);\r\n },\r\n [CALENDAR_MONTH_SELECTION]() {\r\n const newCalendar = displayMonthSelection(this);\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n },\r\n [CALENDAR_YEAR_SELECTION]() {\r\n const newCalendar = displayYearSelection(this);\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n },\r\n },\r\n keyup: {\r\n [DATE_PICKER_CALENDAR](event) {\r\n const keydown = this.dataset.keydownKeyCode;\r\n if (`${event.keyCode}` !== keydown) {\r\n event.preventDefault();\r\n }\r\n },\r\n },\r\n keydown: {\r\n [DATE_PICKER_EXTERNAL_INPUT](event) {\r\n if (event.keyCode === ENTER_KEYCODE) {\r\n validateDateInput(this);\r\n }\r\n },\r\n [CALENDAR_DATE]: keymap({\r\n Up: handleUpFromDate,\r\n ArrowUp: handleUpFromDate,\r\n Down: handleDownFromDate,\r\n ArrowDown: handleDownFromDate,\r\n Left: handleLeftFromDate,\r\n ArrowLeft: handleLeftFromDate,\r\n Right: handleRightFromDate,\r\n ArrowRight: handleRightFromDate,\r\n Home: handleHomeFromDate,\r\n End: handleEndFromDate,\r\n PageDown: handlePageDownFromDate,\r\n PageUp: handlePageUpFromDate,\r\n \"Shift+PageDown\": handleShiftPageDownFromDate,\r\n \"Shift+PageUp\": handleShiftPageUpFromDate,\r\n }),\r\n [CALENDAR_DATE_PICKER]: keymap({\r\n Tab: datePickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": datePickerTabEventHandler.tabBack,\r\n }),\r\n [CALENDAR_MONTH]: keymap({\r\n Up: handleUpFromMonth,\r\n ArrowUp: handleUpFromMonth,\r\n Down: handleDownFromMonth,\r\n ArrowDown: handleDownFromMonth,\r\n Left: handleLeftFromMonth,\r\n ArrowLeft: handleLeftFromMonth,\r\n Right: handleRightFromMonth,\r\n ArrowRight: handleRightFromMonth,\r\n Home: handleHomeFromMonth,\r\n End: handleEndFromMonth,\r\n PageDown: handlePageDownFromMonth,\r\n PageUp: handlePageUpFromMonth,\r\n }),\r\n [CALENDAR_MONTH_PICKER]: keymap({\r\n Tab: monthPickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": monthPickerTabEventHandler.tabBack,\r\n }),\r\n [CALENDAR_YEAR]: keymap({\r\n Up: handleUpFromYear,\r\n ArrowUp: handleUpFromYear,\r\n Down: handleDownFromYear,\r\n ArrowDown: handleDownFromYear,\r\n Left: handleLeftFromYear,\r\n ArrowLeft: handleLeftFromYear,\r\n Right: handleRightFromYear,\r\n ArrowRight: handleRightFromYear,\r\n Home: handleHomeFromYear,\r\n End: handleEndFromYear,\r\n PageDown: handlePageDownFromYear,\r\n PageUp: handlePageUpFromYear,\r\n }),\r\n [CALENDAR_YEAR_PICKER]: keymap({\r\n Tab: yearPickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": yearPickerTabEventHandler.tabBack,\r\n }),\r\n [DATE_PICKER_CALENDAR](event) {\r\n this.dataset.keydownKeyCode = event.keyCode;\r\n },\r\n [DATE_PICKER](event) {\r\n const keyMap = keymap({\r\n Escape: handleEscapeFromCalendar,\r\n });\r\n\r\n keyMap(event);\r\n },\r\n },\r\n focusout: {\r\n [DATE_PICKER_EXTERNAL_INPUT]() {\r\n validateDateInput(this);\r\n },\r\n [DATE_PICKER](event) {\r\n if (!this.contains(event.relatedTarget)) {\r\n hideCalendar(this);\r\n }\r\n },\r\n },\r\n input: {\r\n [DATE_PICKER_EXTERNAL_INPUT]() {\r\n reconcileInputValues(this);\r\n updateCalendarIfVisible(this);\r\n },\r\n },\r\n};\r\n\r\nif (!isIosDevice()) {\r\n datePickerEvents.mousemove = {\r\n [CALENDAR_DATE_CURRENT_MONTH]() {\r\n handleMousemoveFromDate(this);\r\n },\r\n [CALENDAR_MONTH]() {\r\n handleMousemoveFromMonth(this);\r\n },\r\n [CALENDAR_YEAR]() {\r\n handleMousemoveFromYear(this);\r\n },\r\n };\r\n}\r\n\r\nconst datePicker = behavior(datePickerEvents, {\r\n init(root) {\r\n select(DATE_PICKER, root).forEach((datePickerEl) => {\r\n if(!datePickerEl.classList.contains(DATE_PICKER_INITIALIZED_CLASS)){\r\n enhanceDatePicker(datePickerEl);\r\n }\r\n });\r\n },\r\n getDatePickerContext,\r\n disable,\r\n enable,\r\n isDateInputInvalid,\r\n setCalendarValue,\r\n validateDateInput,\r\n renderCalendar,\r\n updateCalendarIfVisible,\r\n});\r\n\r\n// #endregion Date Picker Event Delegation Registration / Component\r\n\r\nmodule.exports = datePicker;\r\n","'use strict';\r\nimport Dropdown from './dropdown';\r\nimport '../polyfills/Function/prototype/bind';\r\n\r\n/**\r\n * Add functionality to sorting variant of Overflow menu component\r\n * @param {HTMLElement} container .overflow-menu element\r\n */\r\nfunction DropdownSort (container){\r\n this.container = container;\r\n this.button = container.getElementsByClassName('button-overflow-menu')[0];\r\n\r\n // if no value is selected, choose first option\r\n if(!this.container.querySelector('.overflow-list li[aria-selected=\"true\"]')){\r\n this.container.querySelectorAll('.overflow-list li')[0].setAttribute('aria-selected', \"true\");\r\n }\r\n\r\n this.updateSelectedValue();\r\n}\r\n\r\n/**\r\n * Add click events on overflow menu and options in menu\r\n */\r\nDropdownSort.prototype.init = function(){\r\n this.overflowMenu = new Dropdown(this.button).init();\r\n\r\n let sortingOptions = this.container.querySelectorAll('.overflow-list li button');\r\n for(let s = 0; s < sortingOptions.length; s++){\r\n let option = sortingOptions[s];\r\n option.addEventListener('click', this.onOptionClick.bind(this));\r\n }\r\n}\r\n\r\n/**\r\n * Update button text to selected value\r\n */\r\nDropdownSort.prototype.updateSelectedValue = function(){\r\n let selectedItem = this.container.querySelector('.overflow-list li[aria-selected=\"true\"]');\r\n this.container.getElementsByClassName('button-overflow-menu')[0].getElementsByClassName('selected-value')[0].innerText = selectedItem.innerText;\r\n}\r\n\r\n/**\r\n * Triggers when choosing option in menu\r\n * @param {PointerEvent} e\r\n */\r\nDropdownSort.prototype.onOptionClick = function(e){\r\n let li = e.target.parentNode;\r\n li.parentNode.querySelector('li[aria-selected=\"true\"]').removeAttribute('aria-selected');\r\n li.setAttribute('aria-selected', 'true');\r\n\r\n let button = li.parentNode.parentNode.parentNode.getElementsByClassName('button-overflow-menu')[0];\r\n let eventSelected = new Event('fds.dropdown.selected');\r\n eventSelected.detail = this.target;\r\n button.dispatchEvent(eventSelected);\r\n this.updateSelectedValue();\r\n\r\n // hide menu\r\n let overflowMenu = new Dropdown(button);\r\n overflowMenu.hide();\r\n}\r\n\r\nexport default DropdownSort;\r\n","'use strict';\r\nconst breakpoints = require('../utils/breakpoints');\r\nconst BUTTON = '.button-overflow-menu';\r\nconst jsDropdownCollapseModifier = 'js-dropdown--responsive-collapse'; //option: make dropdown behave as the collapse component when on small screens (used by submenus in the header and step-dropdown).\r\nconst TARGET = 'data-js-target';\r\n\r\n/**\r\n * Add functionality to overflow menu component\r\n * @param {HTMLButtonElement} buttonElement Overflow menu button\r\n */\r\nfunction Dropdown (buttonElement) {\r\n this.buttonElement = buttonElement;\r\n this.targetEl = null;\r\n this.responsiveListCollapseEnabled = false;\r\n\r\n if(this.buttonElement === null ||this.buttonElement === undefined){\r\n throw new Error(`Could not find button for overflow menu component.`);\r\n }\r\n let targetAttr = this.buttonElement.getAttribute(TARGET);\r\n if(targetAttr === null || targetAttr === undefined){\r\n throw new Error('Attribute could not be found on overflow menu component: '+TARGET);\r\n }\r\n let targetEl = document.getElementById(targetAttr.replace('#', ''));\r\n if(targetEl === null || targetEl === undefined){\r\n throw new Error('Panel for overflow menu component could not be found.');\r\n }\r\n this.targetEl = targetEl;\r\n}\r\n\r\n/**\r\n * Set click events\r\n */\r\nDropdown.prototype.init = function (){\r\n if(this.buttonElement !== null && this.buttonElement !== undefined && this.targetEl !== null && this.targetEl !== undefined){\r\n\r\n if(this.buttonElement.parentNode.classList.contains('overflow-menu--md-no-responsive') || this.buttonElement.parentNode.classList.contains('overflow-menu--lg-no-responsive')){\r\n this.responsiveListCollapseEnabled = true;\r\n }\r\n\r\n //Clicked outside dropdown -> close it\r\n document.getElementsByTagName('body')[ 0 ].removeEventListener('click', outsideClose);\r\n document.getElementsByTagName('body')[ 0 ].addEventListener('click', outsideClose);\r\n //Clicked on dropdown open button --> toggle it\r\n this.buttonElement.removeEventListener('click', toggleDropdown);\r\n this.buttonElement.addEventListener('click', toggleDropdown);\r\n let $module = this;\r\n // set aria-hidden correctly for screenreaders (Tringuide responsive)\r\n if(this.responsiveListCollapseEnabled) {\r\n let element = this.buttonElement;\r\n if (window.IntersectionObserver) {\r\n // trigger event when button changes visibility\r\n let observer = new IntersectionObserver(function (entries) {\r\n // button is visible\r\n if (entries[ 0 ].intersectionRatio) {\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n }\r\n } else {\r\n // button is not visible\r\n if ($module.targetEl.getAttribute('aria-hidden') === 'true') {\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n }\r\n }, {\r\n root: document.body\r\n });\r\n observer.observe(element);\r\n } else {\r\n // IE: IntersectionObserver is not supported, so we listen for window resize and grid breakpoint instead\r\n if (doResponsiveCollapse($module.triggerEl)) {\r\n // small screen\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n } else{\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n } else {\r\n // Large screen\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n window.addEventListener('resize', function () {\r\n if (doResponsiveCollapse($module.triggerEl)) {\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n } else{\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n } else {\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n document.removeEventListener('keyup', closeOnEscape);\r\n document.addEventListener('keyup', closeOnEscape);\r\n }\r\n}\r\n\r\n/**\r\n * Hide overflow menu\r\n */\r\nDropdown.prototype.hide = function(){\r\n toggle(this.buttonElement);\r\n}\r\n\r\n/**\r\n * Show overflow menu\r\n */\r\nDropdown.prototype.show = function(){\r\n toggle(this.buttonElement);\r\n}\r\n\r\nlet closeOnEscape = function(event){\r\n var key = event.which || event.keyCode;\r\n if (key === 27) {\r\n closeAll(event);\r\n }\r\n};\r\n\r\n/**\r\n * Get an Array of button elements belonging directly to the given\r\n * accordion element.\r\n * @param parent accordion element\r\n * @returns {NodeListOf<SVGElementTagNameMap[[string]]> | NodeListOf<HTMLElementTagNameMap[[string]]> | NodeListOf<Element>}\r\n */\r\nlet getButtons = function (parent) {\r\n return parent.querySelectorAll(BUTTON);\r\n};\r\n\r\n/**\r\n * Close all overflow menus\r\n * @param {event} event default is null\r\n */\r\nlet closeAll = function (event = null){\r\n let changed = false;\r\n const body = document.querySelector('body');\r\n\r\n let overflowMenuEl = document.getElementsByClassName('overflow-menu');\r\n for (let oi = 0; oi < overflowMenuEl.length; oi++) {\r\n let currentOverflowMenuEL = overflowMenuEl[ oi ];\r\n let triggerEl = currentOverflowMenuEL.querySelector(BUTTON+'[aria-expanded=\"true\"]');\r\n if(triggerEl !== null){\r\n changed = true;\r\n let targetEl = currentOverflowMenuEL.querySelector('#'+triggerEl.getAttribute(TARGET).replace('#', ''));\r\n\r\n if (targetEl !== null && triggerEl !== null) {\r\n if(doResponsiveCollapse(triggerEl)){\r\n if(triggerEl.getAttribute('aria-expanded') === true){\r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true');\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(changed && event !== null){\r\n event.stopImmediatePropagation();\r\n }\r\n};\r\nlet offset = function (el) {\r\n let rect = el.getBoundingClientRect(),\r\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\r\n};\r\n\r\nlet toggleDropdown = function (event, forceClose = false) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n toggle(this, forceClose);\r\n\r\n};\r\n\r\nlet toggle = function(button, forceClose = false){\r\n let triggerEl = button;\r\n let targetEl = null;\r\n if(triggerEl !== null && triggerEl !== undefined){\r\n let targetAttr = triggerEl.getAttribute(TARGET);\r\n if(targetAttr !== null && targetAttr !== undefined){\r\n targetEl = document.getElementById(targetAttr.replace('#', ''));\r\n }\r\n }\r\n if(triggerEl !== null && triggerEl !== undefined && targetEl !== null && targetEl !== undefined){\r\n //change state\r\n\r\n targetEl.style.left = null;\r\n targetEl.style.right = null;\r\n\r\n if(triggerEl.getAttribute('aria-expanded') === 'true' || forceClose){\r\n //close\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true'); \r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }else{\r\n \r\n if(!document.getElementsByTagName('body')[0].classList.contains('mobile_nav-active')){\r\n closeAll();\r\n }\r\n //open\r\n triggerEl.setAttribute('aria-expanded', 'true');\r\n targetEl.classList.remove('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.dropdown.open');\r\n triggerEl.dispatchEvent(eventOpen);\r\n let targetOffset = offset(targetEl);\r\n\r\n if(targetOffset.left < 0){\r\n targetEl.style.left = '0px';\r\n targetEl.style.right = 'auto';\r\n }\r\n let right = targetOffset.left + targetEl.offsetWidth;\r\n if(right > window.innerWidth){\r\n targetEl.style.left = 'auto';\r\n targetEl.style.right = '0px';\r\n }\r\n\r\n let offsetAgain = offset(targetEl);\r\n\r\n if(offsetAgain.left < 0){\r\n\r\n targetEl.style.left = '0px';\r\n targetEl.style.right = 'auto';\r\n }\r\n right = offsetAgain.left + targetEl.offsetWidth;\r\n if(right > window.innerWidth){\r\n\r\n targetEl.style.left = 'auto';\r\n targetEl.style.right = '0px';\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nlet hasParent = function (child, parentTagName){\r\n if(child.parentNode.tagName === parentTagName){\r\n return true;\r\n } else if(parentTagName !== 'BODY' && child.parentNode.tagName !== 'BODY'){\r\n return hasParent(child.parentNode, parentTagName);\r\n }else{\r\n return false;\r\n }\r\n};\r\n\r\nlet outsideClose = function (evt){\r\n if(!document.getElementsByTagName('body')[0].classList.contains('mobile_nav-active')){\r\n if(document.querySelector('body.mobile_nav-active') === null && !evt.target.classList.contains('button-menu-close')) {\r\n let openDropdowns = document.querySelectorAll(BUTTON+'[aria-expanded=true]');\r\n for (let i = 0; i < openDropdowns.length; i++) {\r\n let triggerEl = openDropdowns[i];\r\n let targetEl = null;\r\n let targetAttr = triggerEl.getAttribute(TARGET);\r\n if (targetAttr !== null && targetAttr !== undefined) {\r\n if(targetAttr.indexOf('#') !== -1){\r\n targetAttr = targetAttr.replace('#', '');\r\n }\r\n targetEl = document.getElementById(targetAttr);\r\n }\r\n if (doResponsiveCollapse(triggerEl) || (hasParent(triggerEl, 'HEADER') && !evt.target.classList.contains('overlay'))) {\r\n //closes dropdown when clicked outside\r\n if (evt.target !== triggerEl) {\r\n //clicked outside trigger, force close\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true'); \r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nlet doResponsiveCollapse = function (triggerEl){\r\n if(!triggerEl.classList.contains(jsDropdownCollapseModifier)){\r\n // not nav overflow menu\r\n if(triggerEl.parentNode.classList.contains('overflow-menu--md-no-responsive') || triggerEl.parentNode.classList.contains('overflow-menu--lg-no-responsive')) {\r\n // trinindikator overflow menu\r\n if (window.innerWidth <= getTringuideBreakpoint(triggerEl)) {\r\n // overflow menu på responsiv tringuide aktiveret\r\n return true;\r\n }\r\n } else{\r\n // normal overflow menu\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nlet getTringuideBreakpoint = function (button){\r\n if(button.parentNode.classList.contains('overflow-menu--md-no-responsive')){\r\n return breakpoints.md;\r\n }\r\n if(button.parentNode.classList.contains('overflow-menu--lg-no-responsive')){\r\n return breakpoints.lg;\r\n }\r\n};\r\n\r\nexport default Dropdown;","'use strict';\r\n/**\r\n * Handle focus on input elements upon clicking link in error message\r\n * @param {HTMLElement} element Error summary element\r\n */\r\nfunction ErrorSummary (element) {\r\n this.element = element;\r\n}\r\n\r\n/**\r\n * Set events on links in error summary\r\n */\r\nErrorSummary.prototype.init = function () {\r\n if (!this.element) {\r\n return\r\n }\r\n this.element.focus()\r\n\r\n this.element.addEventListener('click', this.handleClick.bind(this))\r\n}\r\n\r\n/**\r\n* Click event handler\r\n*\r\n* @param {MouseEvent} event - Click event\r\n*/\r\nErrorSummary.prototype.handleClick = function (event) {\r\n var target = event.target\r\n if (this.focusTarget(target)) {\r\n event.preventDefault()\r\n }\r\n}\r\n\r\n/**\r\n * Focus the target element\r\n *\r\n * By default, the browser will scroll the target into view. Because our labels\r\n * or legends appear above the input, this means the user will be presented with\r\n * an input without any context, as the label or legend will be off the top of\r\n * the screen.\r\n *\r\n * Manually handling the click event, scrolling the question into view and then\r\n * focussing the element solves this.\r\n *\r\n * This also results in the label and/or legend being announced correctly in\r\n * NVDA (as tested in 2018.3.2) - without this only the field type is announced\r\n * (e.g. \"Edit, has autocomplete\").\r\n *\r\n * @param {HTMLElement} $target - Event target\r\n * @returns {boolean} True if the target was able to be focussed\r\n */\r\nErrorSummary.prototype.focusTarget = function ($target) {\r\n // If the element that was clicked was not a link, return early\r\n if ($target.tagName !== 'A' || $target.href === false) {\r\n return false\r\n }\r\n\r\n var inputId = this.getFragmentFromUrl($target.href)\r\n var $input = document.getElementById(inputId)\r\n if (!$input) {\r\n return false\r\n }\r\n\r\n var $legendOrLabel = this.getAssociatedLegendOrLabel($input)\r\n if (!$legendOrLabel) {\r\n return false\r\n }\r\n\r\n // Scroll the legend or label into view *before* calling focus on the input to\r\n // avoid extra scrolling in browsers that don't support `preventScroll` (which\r\n // at time of writing is most of them...)\r\n $legendOrLabel.scrollIntoView()\r\n $input.focus({ preventScroll: true })\r\n\r\n return true\r\n}\r\n\r\n/**\r\n * Get fragment from URL\r\n *\r\n * Extract the fragment (everything after the hash) from a URL, but not including\r\n * the hash.\r\n *\r\n * @param {string} url - URL\r\n * @returns {string} Fragment from URL, without the hash\r\n */\r\nErrorSummary.prototype.getFragmentFromUrl = function (url) {\r\n if (url.indexOf('#') === -1) {\r\n return false\r\n }\r\n\r\n return url.split('#').pop()\r\n}\r\n\r\n/**\r\n * Get associated legend or label\r\n *\r\n * Returns the first element that exists from this list:\r\n *\r\n * - The `<legend>` associated with the closest `<fieldset>` ancestor, as long\r\n * as the top of it is no more than half a viewport height away from the\r\n * bottom of the input\r\n * - The first `<label>` that is associated with the input using for=\"inputId\"\r\n * - The closest parent `<label>`\r\n *\r\n * @param {HTMLElement} $input - The input\r\n * @returns {HTMLElement} Associated legend or label, or null if no associated\r\n * legend or label can be found\r\n */\r\nErrorSummary.prototype.getAssociatedLegendOrLabel = function ($input) {\r\n var $fieldset = $input.closest('fieldset')\r\n\r\n if ($fieldset) {\r\n var legends = $fieldset.getElementsByTagName('legend')\r\n\r\n if (legends.length) {\r\n var $candidateLegend = legends[0]\r\n\r\n // If the input type is radio or checkbox, always use the legend if there\r\n // is one.\r\n if ($input.type === 'checkbox' || $input.type === 'radio') {\r\n return $candidateLegend\r\n }\r\n\r\n // For other input types, only scroll to the fieldset’s legend (instead of\r\n // the label associated with the input) if the input would end up in the\r\n // top half of the screen.\r\n //\r\n // This should avoid situations where the input either ends up off the\r\n // screen, or obscured by a software keyboard.\r\n var legendTop = $candidateLegend.getBoundingClientRect().top\r\n var inputRect = $input.getBoundingClientRect()\r\n\r\n // If the browser doesn't support Element.getBoundingClientRect().height\r\n // or window.innerHeight (like IE8), bail and just link to the label.\r\n if (inputRect.height && window.innerHeight) {\r\n var inputBottom = inputRect.top + inputRect.height\r\n\r\n if (inputBottom - legendTop < window.innerHeight / 2) {\r\n return $candidateLegend\r\n }\r\n }\r\n }\r\n }\r\n\r\n return document.querySelector(\"label[for='\" + $input.getAttribute('id') + \"']\") ||\r\n $input.closest('label')\r\n}\r\n\r\nexport default ErrorSummary;","'use strict';\r\n/**\r\n * Adds click functionality to modal\r\n * @param {HTMLElement} $modal Modal element\r\n */\r\nfunction Modal ($modal) {\r\n this.$modal = $modal;\r\n let id = this.$modal.getAttribute('id');\r\n this.triggers = document.querySelectorAll('[data-module=\"modal\"][data-target=\"'+id+'\"]');\r\n}\r\n\r\n/**\r\n * Set events\r\n */\r\nModal.prototype.init = function () {\r\n let triggers = this.triggers;\r\n for (let i = 0; i < triggers.length; i++){\r\n let trigger = triggers[ i ];\r\n trigger.addEventListener('click', this.show.bind(this));\r\n }\r\n let closers = this.$modal.querySelectorAll('[data-modal-close]');\r\n for (let c = 0; c < closers.length; c++){\r\n let closer = closers[ c ];\r\n closer.addEventListener('click', this.hide.bind(this));\r\n }\r\n};\r\n\r\n/**\r\n * Hide modal\r\n */\r\nModal.prototype.hide = function (){\r\n let modalElement = this.$modal;\r\n if(modalElement !== null){\r\n modalElement.setAttribute('aria-hidden', 'true');\r\n\r\n let eventClose = document.createEvent('Event');\r\n eventClose.initEvent('fds.modal.hidden', true, true);\r\n modalElement.dispatchEvent(eventClose);\r\n\r\n let $backdrop = document.querySelector('#modal-backdrop');\r\n $backdrop.parentNode.removeChild($backdrop);\r\n\r\n document.getElementsByTagName('body')[0].classList.remove('modal-open');\r\n document.removeEventListener('keydown', trapFocus, true);\r\n\r\n if(!hasForcedAction(modalElement)){\r\n document.removeEventListener('keyup', handleEscape);\r\n }\r\n let dataModalOpener = modalElement.getAttribute('data-modal-opener');\r\n if(dataModalOpener !== null){\r\n let opener = document.getElementById(dataModalOpener)\r\n if(opener !== null){\r\n opener.focus();\r\n }\r\n modalElement.removeAttribute('data-modal-opener');\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Show modal\r\n */\r\nModal.prototype.show = function (e = null){\r\n let modalElement = this.$modal;\r\n if(modalElement !== null){\r\n if(e !== null){\r\n let openerId = e.target.getAttribute('id');\r\n if(openerId === null){\r\n openerId = 'modal-opener-'+Math.floor(Math.random() * (9999 - 1000 + 1) + 1000);\r\n e.target.setAttribute('id', openerId)\r\n }\r\n modalElement.setAttribute('data-modal-opener', openerId);\r\n }\r\n\r\n // Hide open modals - FDS do not recommend more than one open modal at a time\r\n let activeModals = document.querySelectorAll('.fds-modal[aria-hidden=false]');\r\n for(let i = 0; i < activeModals.length; i++){\r\n new Modal(activeModals[i]).hide();\r\n }\r\n\r\n modalElement.setAttribute('aria-hidden', 'false');\r\n modalElement.setAttribute('tabindex', '-1');\r\n\r\n let eventOpen = document.createEvent('Event');\r\n eventOpen.initEvent('fds.modal.shown', true, true);\r\n modalElement.dispatchEvent(eventOpen);\r\n\r\n let $backdrop = document.createElement('div');\r\n $backdrop.classList.add('modal-backdrop');\r\n $backdrop.setAttribute('id', \"modal-backdrop\");\r\n document.getElementsByTagName('body')[0].appendChild($backdrop);\r\n\r\n document.getElementsByTagName('body')[0].classList.add('modal-open');\r\n\r\n modalElement.focus();\r\n\r\n document.addEventListener('keydown', trapFocus, true);\r\n if(!hasForcedAction(modalElement)){\r\n document.addEventListener('keyup', handleEscape);\r\n }\r\n\r\n }\r\n};\r\n\r\n/**\r\n * Close modal when hitting ESC\r\n * @param {KeyboardEvent} event \r\n */\r\nlet handleEscape = function (event) {\r\n var key = event.which || event.keyCode;\r\n let modalElement = document.querySelector('.fds-modal[aria-hidden=false]');\r\n let currentModal = new Modal(document.querySelector('.fds-modal[aria-hidden=false]'));\r\n if (key === 27){\r\n let possibleOverflowMenus = modalElement.querySelectorAll('.button-overflow-menu[aria-expanded=\"true\"]');\r\n if(possibleOverflowMenus.length === 0){\r\n currentModal.hide();\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Trap focus in modal when open\r\n * @param {PointerEvent} e\r\n */\r\n function trapFocus(e){\r\n var currentDialog = document.querySelector('.fds-modal[aria-hidden=false]');\r\n if(currentDialog !== null){\r\n var focusableElements = currentDialog.querySelectorAll('a[href]:not([disabled]):not([aria-hidden=true]), button:not([disabled]):not([aria-hidden=true]), textarea:not([disabled]):not([aria-hidden=true]), input:not([type=hidden]):not([disabled]):not([aria-hidden=true]), select:not([disabled]):not([aria-hidden=true]), details:not([disabled]):not([aria-hidden=true]), [tabindex]:not([tabindex=\"-1\"]):not([disabled]):not([aria-hidden=true])');\r\n \r\n var firstFocusableElement = focusableElements[0];\r\n var lastFocusableElement = focusableElements[focusableElements.length - 1];\r\n\r\n var isTabPressed = (e.key === 'Tab' || e.keyCode === 9);\r\n\r\n if (!isTabPressed) { \r\n return; \r\n }\r\n\r\n if ( e.shiftKey ) /* shift + tab */ {\r\n if (document.activeElement === firstFocusableElement) {\r\n lastFocusableElement.focus();\r\n e.preventDefault();\r\n }\r\n } else /* tab */ {\r\n if (document.activeElement === lastFocusableElement) {\r\n firstFocusableElement.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction hasForcedAction (modal){\r\n if(modal.getAttribute('data-modal-forced-action') === null){\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport default Modal;\r\n","'use strict';\r\nconst forEach = require('array-foreach');\r\nconst select = require('../utils/select');\r\n\r\nconst NAV = `.nav`;\r\nconst NAV_LINKS = `${NAV} a`;\r\nconst OPENERS = `.js-menu-open`;\r\nconst CLOSE_BUTTON = `.js-menu-close`;\r\nconst OVERLAY = `.overlay`;\r\nconst CLOSERS = `${CLOSE_BUTTON}, .overlay`;\r\nconst TOGGLES = [ NAV, OVERLAY ].join(', ');\r\n\r\nconst ACTIVE_CLASS = 'mobile_nav-active';\r\nconst VISIBLE_CLASS = 'is-visible';\r\n\r\n/**\r\n * Add mobile menu functionality\r\n */\r\nclass Navigation {\r\n /**\r\n * Set events\r\n */\r\n init () {\r\n window.addEventListener('resize', mobileMenu, false);\r\n mobileMenu();\r\n }\r\n\r\n /**\r\n * Remove events\r\n */\r\n teardown () {\r\n window.removeEventListener('resize', mobileMenu, false);\r\n }\r\n}\r\n\r\n/**\r\n * Add functionality to mobile menu\r\n */\r\nconst mobileMenu = function() {\r\n let mobile = false;\r\n let openers = document.querySelectorAll(OPENERS);\r\n for(let o = 0; o < openers.length; o++) {\r\n if(window.getComputedStyle(openers[o], null).display !== 'none') {\r\n openers[o].addEventListener('click', toggleNav);\r\n mobile = true;\r\n }\r\n }\r\n\r\n // if mobile\r\n if(mobile){\r\n let closers = document.querySelectorAll(CLOSERS);\r\n for(let c = 0; c < closers.length; c++) {\r\n closers[ c ].addEventListener('click', toggleNav);\r\n }\r\n\r\n let navLinks = document.querySelectorAll(NAV_LINKS);\r\n for(let n = 0; n < navLinks.length; n++) {\r\n navLinks[ n ].addEventListener('click', function(){\r\n // A navigation link has been clicked! We want to collapse any\r\n // hierarchical navigation UI it's a part of, so that the user\r\n // can focus on whatever they've just selected.\r\n\r\n // Some navigation links are inside dropdowns; when they're\r\n // clicked, we want to collapse those dropdowns.\r\n\r\n\r\n // If the mobile navigation menu is active, we want to hide it.\r\n if (isActive()) {\r\n toggleNav.call(this, false);\r\n }\r\n });\r\n }\r\n\r\n const trapContainers = document.querySelectorAll(NAV);\r\n for(let i = 0; i < trapContainers.length; i++){\r\n focusTrap = _focusTrap(trapContainers[i]);\r\n }\r\n\r\n }\r\n\r\n const closer = document.body.querySelector(CLOSE_BUTTON);\r\n\r\n if (isActive() && closer && closer.getBoundingClientRect().width === 0) {\r\n // The mobile nav is active, but the close box isn't visible, which\r\n // means the user's viewport has been resized so that it is no longer\r\n // in mobile mode. Let's make the page state consistent by\r\n // deactivating the mobile nav.\r\n toggleNav.call(closer, false);\r\n }\r\n};\r\n\r\n/**\r\n * Check if mobile menu is active\r\n * @returns true if mobile menu is active and false if not active\r\n */\r\nconst isActive = () => document.body.classList.contains(ACTIVE_CLASS);\r\n\r\n/**\r\n * Trap focus in mobile menu if active\r\n * @param {HTMLElement} trapContainer \r\n */\r\nconst _focusTrap = (trapContainer) => {\r\n\r\n // Find all focusable children\r\n const focusableElementsString = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]';\r\n let focusableElements = trapContainer.querySelectorAll(focusableElementsString);\r\n let firstTabStop = focusableElements[ 0 ];\r\n\r\n function trapTabKey (e) {\r\n var key = event.which || event.keyCode;\r\n // Check for TAB key press\r\n if (key === 9) {\r\n\r\n let lastTabStop = null;\r\n for(let i = 0; i < focusableElements.length; i++){\r\n let number = focusableElements.length - 1;\r\n let element = focusableElements[ number - i ];\r\n if (element.offsetWidth > 0 && element.offsetHeight > 0) {\r\n lastTabStop = element;\r\n break;\r\n }\r\n }\r\n\r\n // SHIFT + TAB\r\n if (e.shiftKey) {\r\n if (document.activeElement === firstTabStop) {\r\n e.preventDefault();\r\n lastTabStop.focus();\r\n }\r\n\r\n // TAB\r\n } else {\r\n if (document.activeElement === lastTabStop) {\r\n e.preventDefault();\r\n firstTabStop.focus();\r\n }\r\n }\r\n }\r\n\r\n // ESCAPE\r\n if (e.key === 'Escape') {\r\n toggleNav.call(this, false);\r\n }\r\n }\r\n\r\n return {\r\n enable () {\r\n // Focus first child\r\n firstTabStop.focus();\r\n // Listen for and trap the keyboard\r\n document.addEventListener('keydown', trapTabKey);\r\n },\r\n\r\n release () {\r\n document.removeEventListener('keydown', trapTabKey);\r\n },\r\n };\r\n};\r\n\r\nlet focusTrap;\r\n\r\nconst toggleNav = function (active) {\r\n const body = document.body;\r\n if (typeof active !== 'boolean') {\r\n active = !isActive();\r\n }\r\n body.classList.toggle(ACTIVE_CLASS, active);\r\n\r\n forEach(select(TOGGLES), el => {\r\n el.classList.toggle(VISIBLE_CLASS, active);\r\n });\r\n if (active) {\r\n focusTrap.enable();\r\n } else {\r\n focusTrap.release();\r\n }\r\n\r\n const closeButton = body.querySelector(CLOSE_BUTTON);\r\n const menuButton = body.querySelector(OPENERS);\r\n\r\n if (active && closeButton) {\r\n // The mobile nav was just activated, so focus on the close button,\r\n // which is just before all the nav elements in the tab order.\r\n closeButton.focus();\r\n } else if (!active && document.activeElement === closeButton &&\r\n menuButton) {\r\n // The mobile nav was just deactivated, and focus was on the close\r\n // button, which is no longer visible. We don't want the focus to\r\n // disappear into the void, so focus on the menu button if it's\r\n // visible (this may have been what the user was just focused on,\r\n // if they triggered the mobile nav by mistake).\r\n menuButton.focus();\r\n }\r\n\r\n return active;\r\n};\r\n\r\nexport default Navigation;","'use strict';\r\nconst TOGGLE_ATTRIBUTE = 'data-controls';\r\n\r\n/**\r\n * Adds click functionality to radiobutton collapse list\r\n * @param {HTMLElement} containerElement \r\n */\r\nfunction RadioToggleGroup(containerElement){\r\n this.radioGroup = containerElement;\r\n this.radioEls = null;\r\n this.targetEl = null;\r\n}\r\n\r\n/**\r\n * Set events\r\n */\r\nRadioToggleGroup.prototype.init = function (){\r\n this.radioEls = this.radioGroup.querySelectorAll('input[type=\"radio\"]');\r\n if(this.radioEls.length === 0){\r\n throw new Error('No radiobuttons found in radiobutton group.');\r\n }\r\n var that = this;\r\n\r\n for(let i = 0; i < this.radioEls.length; i++){\r\n var radio = this.radioEls[ i ];\r\n \r\n radio.addEventListener('change', function (){\r\n for(let a = 0; a < that.radioEls.length; a++ ){\r\n that.toggle(that.radioEls[ a ]);\r\n }\r\n });\r\n this.toggle(radio);\r\n }\r\n}\r\n\r\n/**\r\n * Toggle radiobutton content\r\n * @param {HTMLInputElement} radioInputElement \r\n */\r\nRadioToggleGroup.prototype.toggle = function (radioInputElement){\r\n var contentId = radioInputElement.getAttribute(TOGGLE_ATTRIBUTE);\r\n if(contentId !== null && contentId !== undefined && contentId !== \"\"){\r\n var contentElement = document.querySelector(contentId);\r\n if(contentElement === null || contentElement === undefined){\r\n throw new Error(`Could not find panel element. Verify value of attribute `+ TOGGLE_ATTRIBUTE);\r\n }\r\n if(radioInputElement.checked){\r\n this.expand(radioInputElement, contentElement);\r\n }else{\r\n this.collapse(radioInputElement, contentElement);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Expand radio button content\r\n * @param {} radioInputElement Radio Input element\r\n * @param {*} contentElement Content element\r\n */\r\nRadioToggleGroup.prototype.expand = function (radioInputElement, contentElement){\r\n if(radioInputElement !== null && radioInputElement !== undefined && contentElement !== null && contentElement !== undefined){\r\n radioInputElement.setAttribute('data-expanded', 'true');\r\n contentElement.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.radio.expanded');\r\n radioInputElement.dispatchEvent(eventOpen);\r\n }\r\n}\r\n/**\r\n * Collapse radio button content\r\n * @param {} radioInputElement Radio Input element\r\n * @param {*} contentElement Content element\r\n */\r\nRadioToggleGroup.prototype.collapse = function(radioInputElement, contentElement){\r\n if(radioInputElement !== null && radioInputElement !== undefined && contentElement !== null && contentElement !== undefined){\r\n radioInputElement.setAttribute('data-expanded', 'false');\r\n contentElement.setAttribute('aria-hidden', 'true');\r\n let eventClose = new Event('fds.radio.collapsed');\r\n radioInputElement.dispatchEvent(eventClose);\r\n }\r\n}\r\n\r\nexport default RadioToggleGroup;","'use strict';\r\nconst modifierState = {\r\n shift: false,\r\n alt: false,\r\n ctrl: false,\r\n command: false\r\n};\r\n/*\r\n* Prevents the user from inputting based on a regex.\r\n* Does not work the same way af <input pattern=\"\">, this pattern is only used for validation, not to prevent input.\r\n* Usecase: number input for date-component.\r\n* Example - number only: <input type=\"text\" data-input-regex=\"^\\d*$\">\r\n*/\r\nclass InputRegexMask {\r\n constructor (element){\r\n element.addEventListener('paste', regexMask);\r\n element.addEventListener('keydown', regexMask);\r\n }\r\n}\r\nvar regexMask = function (event) {\r\n if(modifierState.ctrl || modifierState.command) {\r\n return;\r\n }\r\n var newChar = null;\r\n if(typeof event.key !== 'undefined'){\r\n if(event.key.length === 1){\r\n newChar = event.key;\r\n }\r\n } else {\r\n if(!event.charCode){\r\n newChar = String.fromCharCode(event.keyCode);\r\n } else {\r\n newChar = String.fromCharCode(event.charCode);\r\n }\r\n }\r\n\r\n var regexStr = this.getAttribute('data-input-regex');\r\n\r\n if(event.type !== undefined && event.type === 'paste'){\r\n console.log('paste');\r\n } else{\r\n var element = null;\r\n if(event.target !== undefined){\r\n element = event.target;\r\n }\r\n if(newChar !== null && element !== null) {\r\n if(newChar.length > 0){\r\n let newValue = this.value;\r\n if(element.type === 'number'){\r\n newValue = this.value;//Note input[type=number] does not have .selectionStart/End (Chrome).\r\n }else{\r\n newValue = this.value.slice(0, element.selectionStart) + this.value.slice(element.selectionEnd) + newChar; //removes the numbers selected by the user, then adds new char.\r\n }\r\n\r\n var r = new RegExp(regexStr);\r\n if(r.exec(newValue) === null){\r\n if (event.preventDefault) {\r\n event.preventDefault();\r\n } else {\r\n event.returnValue = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default InputRegexMask;","'use strict';\r\nlet dk = {\r\n \"select_row\": \"Vælg række\",\r\n \"unselect_row\": \"Fravælg række\",\r\n \"select_all_rows\": \"Vælg alle rækker\",\r\n \"unselect_all_rows\": \"Fravælg alle rækker\"\r\n}\r\n\r\n/**\r\n * \r\n * @param {HTMLTableElement} table Table Element\r\n * @param {JSON} strings Translate labels: {\"select_row\": \"Vælg række\", \"unselect_row\": \"Fravælg række\", \"select_all_rows\": \"Vælg alle rækker\", \"unselect_all_rows\": \"Fravælg alle rækker\"}\r\n */\r\nfunction TableSelectableRows (table, strings = dk){\r\n this.table = table;\r\n dk = strings;\r\n}\r\n\r\n/**\r\n * Initialize eventlisteners for checkboxes in table\r\n */\r\nTableSelectableRows.prototype.init = function(){\r\n this.groupCheckbox = this.getGroupCheckbox();\r\n this.tbodyCheckboxList = this.getCheckboxList();\r\n if(this.tbodyCheckboxList.length !== 0){\r\n for(let c = 0; c < this.tbodyCheckboxList.length; c++){\r\n let checkbox = this.tbodyCheckboxList[c];\r\n checkbox.removeEventListener('change', updateGroupCheck);\r\n checkbox.addEventListener('change', updateGroupCheck);\r\n }\r\n }\r\n if(this.groupCheckbox !== false){\r\n this.groupCheckbox.removeEventListener('change', updateCheckboxList);\r\n this.groupCheckbox.addEventListener('change', updateCheckboxList);\r\n }\r\n}\r\n \r\n/**\r\n * Get group checkbox in table header\r\n * @returns element on true - false if not found\r\n */\r\nTableSelectableRows.prototype.getGroupCheckbox = function(){\r\n let checkbox = this.table.getElementsByTagName('thead')[0].getElementsByClassName('form-checkbox');\r\n if(checkbox.length === 0){\r\n return false;\r\n }\r\n return checkbox[0];\r\n}\r\n/**\r\n * Get table body checkboxes\r\n * @returns HTMLCollection\r\n */\r\nTableSelectableRows.prototype.getCheckboxList = function(){\r\n return this.table.getElementsByTagName('tbody')[0].getElementsByClassName('form-checkbox');\r\n}\r\n\r\n/**\r\n * Update checkboxes in table body when group checkbox is changed\r\n * @param {Event} e \r\n */\r\nfunction updateCheckboxList(e){\r\n let checkbox = e.target;\r\n checkbox.removeAttribute('aria-checked');\r\n let table = e.target.parentNode.parentNode.parentNode.parentNode;\r\n let tableSelectableRows = new TableSelectableRows(table);\r\n let checkboxList = tableSelectableRows.getCheckboxList();\r\n let checkedNumber = 0;\r\n if(checkbox.checked){\r\n for(let c = 0; c < checkboxList.length; c++){\r\n checkboxList[c].checked = true;\r\n checkboxList[c].parentNode.parentNode.classList.add('table-row-selected');\r\n checkboxList[c].nextElementSibling.setAttribute('aria-label', dk.unselect_row);\r\n }\r\n\r\n checkedNumber = checkboxList.length;\r\n checkbox.nextElementSibling.setAttribute('aria-label', dk.unselect_all_rows);\r\n } else{\r\n for(let c = 0; c < checkboxList.length; c++){\r\n checkboxList[c].checked = false;\r\n checkboxList[c].parentNode.parentNode.classList.remove('table-row-selected');\r\n checkboxList[c].nextElementSibling.setAttribute('aria-label', dk.select_row);\r\n }\r\n checkbox.nextElementSibling.setAttribute('aria-label', dk.select_all_rows);\r\n }\r\n \r\n const event = new CustomEvent(\"fds.table.selectable.updated\", {\r\n bubbles: true,\r\n cancelable: true,\r\n detail: {checkedNumber}\r\n });\r\n table.dispatchEvent(event);\r\n}\r\n\r\n/**\r\n * Update group checkbox when checkbox in table body is changed\r\n * @param {Event} e \r\n */\r\nfunction updateGroupCheck(e){\r\n // update label for event checkbox\r\n if(e.target.checked){\r\n e.target.parentNode.parentNode.classList.add('table-row-selected');\r\n e.target.nextElementSibling.setAttribute('aria-label', dk.unselect_row);\r\n } else{\r\n e.target.parentNode.parentNode.classList.remove('table-row-selected');\r\n e.target.nextElementSibling.setAttribute('aria-label', dk.select_row);\r\n }\r\n let table = e.target.parentNode.parentNode.parentNode.parentNode;\r\n let tableSelectableRows = new TableSelectableRows(table);\r\n let groupCheckbox = tableSelectableRows.getGroupCheckbox();\r\n if(groupCheckbox !== false){\r\n let checkboxList = tableSelectableRows.getCheckboxList();\r\n\r\n // how many row has been selected\r\n let checkedNumber = 0;\r\n for(let c = 0; c < checkboxList.length; c++){\r\n let loopedCheckbox = checkboxList[c];\r\n if(loopedCheckbox.checked){\r\n checkedNumber++;\r\n }\r\n }\r\n \r\n if(checkedNumber === checkboxList.length){ // if all rows has been selected\r\n groupCheckbox.removeAttribute('aria-checked');\r\n groupCheckbox.checked = true;\r\n groupCheckbox.nextElementSibling.setAttribute('aria-label', dk.unselect_all_rows);\r\n } else if(checkedNumber == 0){ // if no rows has been selected\r\n groupCheckbox.removeAttribute('aria-checked');\r\n groupCheckbox.checked = false;\r\n groupCheckbox.nextElementSibling.setAttribute('aria-label', dk.select_all_rows);\r\n } else{ // if some but not all rows has been selected\r\n groupCheckbox.setAttribute('aria-checked', 'mixed');\r\n groupCheckbox.checked = false;\r\n groupCheckbox.nextElementSibling.setAttribute('aria-label', dk.select_all_rows);\r\n }\r\n const event = new CustomEvent(\"fds.table.selectable.updated\", {\r\n bubbles: true,\r\n cancelable: true,\r\n detail: {checkedNumber}\r\n });\r\n table.dispatchEvent(event);\r\n }\r\n}\r\n\r\nexport default TableSelectableRows;","const select = require('../utils/select');\r\n\r\n/**\r\n * Set data-title on cells, where the attribute is missing\r\n */\r\nclass ResponsiveTable {\r\n constructor (table) {\r\n insertHeaderAsAttributes(table);\r\n }\r\n}\r\n\r\n/**\r\n * Add data attributes needed for responsive mode.\r\n * @param {HTMLTableElement} tableEl Table element\r\n */\r\nfunction insertHeaderAsAttributes (tableEl){\r\n if (!tableEl) return;\r\n\r\n let header = tableEl.getElementsByTagName('thead');\r\n if(header.length !== 0) {\r\n let headerCellEls = header[ 0 ].getElementsByTagName('th');\r\n if (headerCellEls.length == 0) {\r\n headerCellEls = header[ 0 ].getElementsByTagName('td');\r\n }\r\n\r\n if (headerCellEls.length) {\r\n const bodyRowEls = select('tbody tr', tableEl);\r\n Array.from(bodyRowEls).forEach(rowEl => {\r\n let cellEls = rowEl.children;\r\n if (cellEls.length === headerCellEls.length) {\r\n Array.from(headerCellEls).forEach((headerCellEl, i) => {\r\n // Grab header cell text and use it body cell data title.\r\n if(!cellEls[ i ].hasAttribute('data-title') ){\r\n cellEls[ i ].setAttribute('data-title', headerCellEl.textContent);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default ResponsiveTable;\r\n","'use strict';\r\nlet breakpoints = {\r\n 'xs': 0,\r\n 'sm': 576,\r\n 'md': 768,\r\n 'lg': 992,\r\n 'xl': 1200\r\n};\r\n\r\n// For easy reference\r\nvar keys = {\r\n end: 35,\r\n home: 36,\r\n left: 37,\r\n up: 38,\r\n right: 39,\r\n down: 40,\r\n delete: 46\r\n};\r\n\r\n// Add or substract depending on key pressed\r\nvar direction = {\r\n 37: -1,\r\n 38: -1,\r\n 39: 1,\r\n 40: 1\r\n};\r\n\r\n/**\r\n * Add functionality to tabnav component\r\n * @param {HTMLElement} tabnav Tabnav container\r\n */\r\nfunction Tabnav (tabnav) {\r\n this.tabnav = tabnav;\r\n this.tabs = this.tabnav.querySelectorAll('button.tabnav-item');\r\n}\r\n\r\n/**\r\n * Set event on component\r\n */\r\nTabnav.prototype.init = function(){\r\n if(this.tabs.length === 0){\r\n throw new Error(`Tabnav HTML seems to be missing tabnav-item. Add tabnav items to ensure each panel has a button in the tabnavs navigation.`);\r\n }\r\n\r\n // if no hash is set on load, set active tab\r\n if (!setActiveHashTab()) {\r\n // set first tab as active\r\n let tab = this.tabs[ 0 ];\r\n\r\n // check no other tabs as been set at default\r\n let alreadyActive = getActiveTabs(this.tabnav);\r\n if (alreadyActive.length === 0) {\r\n tab = alreadyActive[ 0 ];\r\n }\r\n\r\n // activate and deactivate tabs\r\n this.activateTab(tab, false);\r\n }\r\n let $module = this;\r\n // add eventlisteners on buttons\r\n for(let t = 0; t < this.tabs.length; t ++){\r\n this.tabs[ t ].addEventListener('click', function(){$module.activateTab(this, false)});\r\n this.tabs[ t ].addEventListener('keydown', keydownEventListener);\r\n this.tabs[ t ].addEventListener('keyup', keyupEventListener);\r\n }\r\n}\r\n\r\n/***\r\n * Show tab and hide others\r\n * @param {HTMLButtonElement} tab button element\r\n * @param {boolean} setFocus True if tab button should be focused\r\n */\r\n Tabnav.prototype.activateTab = function(tab, setFocus) {\r\n let tabs = getAllTabsInList(tab);\r\n\r\n // close all tabs except selected\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n if (tabs[ i ] === tab) {\r\n continue;\r\n }\r\n\r\n if (tabs[ i ].getAttribute('aria-selected') === 'true') {\r\n let eventClose = new Event('fds.tabnav.close');\r\n tabs[ i ].dispatchEvent(eventClose);\r\n }\r\n\r\n tabs[ i ].setAttribute('tabindex', '-1');\r\n tabs[ i ].setAttribute('aria-selected', 'false');\r\n let tabpanelID = tabs[ i ].getAttribute('aria-controls');\r\n let tabpanel = document.getElementById(tabpanelID)\r\n if(tabpanel === null){\r\n throw new Error(`Could not find tabpanel.`);\r\n }\r\n tabpanel.setAttribute('aria-hidden', 'true');\r\n }\r\n \r\n // Set selected tab to active\r\n let tabpanelID = tab.getAttribute('aria-controls');\r\n let tabpanel = document.getElementById(tabpanelID);\r\n if(tabpanel === null){\r\n throw new Error(`Could not find accordion panel.`);\r\n }\r\n\r\n tab.setAttribute('aria-selected', 'true');\r\n tabpanel.setAttribute('aria-hidden', 'false');\r\n tab.removeAttribute('tabindex');\r\n\r\n // Set focus when required\r\n if (setFocus) {\r\n tab.focus();\r\n }\r\n\r\n let eventChanged = new Event('fds.tabnav.changed');\r\n tab.parentNode.dispatchEvent(eventChanged);\r\n\r\n let eventOpen = new Event('fds.tabnav.open');\r\n tab.dispatchEvent(eventOpen);\r\n}\r\n\r\n/**\r\n * Add keydown events to tabnav component\r\n * @param {KeyboardEvent} event \r\n */\r\nfunction keydownEventListener (event) {\r\n let key = event.keyCode;\r\n\r\n switch (key) {\r\n case keys.end:\r\n event.preventDefault();\r\n // Activate last tab\r\n focusLastTab(event.target);\r\n break;\r\n case keys.home:\r\n event.preventDefault();\r\n // Activate first tab\r\n focusFirstTab(event.target);\r\n break;\r\n // Up and down are in keydown\r\n // because we need to prevent page scroll >:)\r\n case keys.up:\r\n case keys.down:\r\n determineOrientation(event);\r\n break;\r\n }\r\n}\r\n\r\n/**\r\n * Add keyup events to tabnav component\r\n * @param {KeyboardEvent} event \r\n */\r\nfunction keyupEventListener (event) {\r\n let key = event.keyCode;\r\n\r\n switch (key) {\r\n case keys.left:\r\n case keys.right:\r\n determineOrientation(event);\r\n break;\r\n case keys.delete:\r\n break;\r\n case keys.enter:\r\n case keys.space:\r\n new Tabnav(event.target.parentNode).activateTab(event.target, true);\r\n break;\r\n }\r\n}\r\n\r\n/**\r\n * When a tablist aria-orientation is set to vertical,\r\n * only up and down arrow should function.\r\n * In all other cases only left and right arrow function.\r\n */\r\nfunction determineOrientation (event) {\r\n let key = event.keyCode;\r\n\r\n let w=window,\r\n d=document,\r\n e=d.documentElement,\r\n g=d.getElementsByTagName('body')[ 0 ],\r\n x=w.innerWidth||e.clientWidth||g.clientWidth,\r\n y=w.innerHeight||e.clientHeight||g.clientHeight;\r\n\r\n let vertical = x < breakpoints.md;\r\n let proceed = false;\r\n\r\n if (vertical) {\r\n if (key === keys.up || key === keys.down) {\r\n event.preventDefault();\r\n proceed = true;\r\n }\r\n }\r\n else {\r\n if (key === keys.left || key === keys.right) {\r\n proceed = true;\r\n }\r\n }\r\n if (proceed) {\r\n switchTabOnArrowPress(event);\r\n }\r\n}\r\n\r\n/**\r\n * Either focus the next, previous, first, or last tab\r\n * depending on key pressed\r\n */\r\nfunction switchTabOnArrowPress (event) {\r\n var pressed = event.keyCode;\r\n if (direction[ pressed ]) {\r\n let target = event.target;\r\n let tabs = getAllTabsInList(target);\r\n let index = getIndexOfElementInList(target, tabs);\r\n if (index !== -1) {\r\n if (tabs[ index + direction[ pressed ] ]) {\r\n tabs[ index + direction[ pressed ] ].focus();\r\n }\r\n else if (pressed === keys.left || pressed === keys.up) {\r\n focusLastTab(target);\r\n }\r\n else if (pressed === keys.right || pressed == keys.down) {\r\n focusFirstTab(target);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Get all active tabs in list\r\n * @param tabnav parent .tabnav element\r\n * @returns returns list of active tabs if any\r\n */\r\nfunction getActiveTabs (tabnav) {\r\n return tabnav.querySelectorAll('button.tabnav-item[aria-selected=true]');\r\n}\r\n\r\n/**\r\n * Get a list of all button tabs in current tablist\r\n * @param tab Button tab element\r\n * @returns {*} return array of tabs\r\n */\r\nfunction getAllTabsInList (tab) {\r\n let parentNode = tab.parentNode;\r\n if (parentNode.classList.contains('tabnav')) {\r\n return parentNode.querySelectorAll('button.tabnav-item');\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * Get index of element in list\r\n * @param {HTMLElement} element \r\n * @param {HTMLCollection} list \r\n * @returns {index}\r\n */\r\nfunction getIndexOfElementInList (element, list){\r\n let index = -1;\r\n for (let i = 0; i < list.length; i++ ){\r\n if(list[ i ] === element){\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n return index;\r\n}\r\n\r\n/**\r\n * Checks if there is a tab hash in the url and activates the tab accordingly\r\n * @returns {boolean} returns true if tab has been set - returns false if no tab has been set to active\r\n */\r\nfunction setActiveHashTab () {\r\n let hash = location.hash.replace('#', '');\r\n if (hash !== '') {\r\n let tab = document.querySelector('button.tabnav-item[aria-controls=\"#' + hash + '\"]');\r\n if (tab !== null) {\r\n activateTab(tab, false);\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Get first tab by tab in list\r\n * @param {HTMLButtonElement} tab \r\n */\r\nfunction focusFirstTab (tab) {\r\n getAllTabsInList(tab)[ 0 ].focus();\r\n}\r\n\r\n/**\r\n * Get last tab by tab in list\r\n * @param {HTMLButtonElement} tab \r\n */\r\nfunction focusLastTab (tab) {\r\n let tabs = getAllTabsInList(tab);\r\n tabs[ tabs.length - 1 ].focus();\r\n}\r\n\r\nexport default Tabnav;","'use strict';\r\n/**\r\n * Show/hide toast component\r\n * @param {HTMLElement} element \r\n */\r\nfunction Toast (element){\r\n this.element = element;\r\n}\r\n\r\n/**\r\n * Show toast\r\n */\r\nToast.prototype.show = function(){\r\n this.element.classList.remove('hide');\r\n this.element.classList.add('showing');\r\n this.element.getElementsByClassName('toast-close')[0].addEventListener('click', function(){\r\n let toast = this.parentNode.parentNode;\r\n new Toast(toast).hide();\r\n });\r\n requestAnimationFrame(showToast);\r\n}\r\n\r\n/**\r\n * Hide toast\r\n */\r\nToast.prototype.hide = function(){\r\n this.element.classList.remove('show');\r\n this.element.classList.add('hide'); \r\n}\r\n\r\n/**\r\n * Adds classes to make show animation\r\n */\r\nfunction showToast(){\r\n let toasts = document.querySelectorAll('.toast.showing');\r\n for(let t = 0; t < toasts.length; t++){\r\n let toast = toasts[t];\r\n toast.classList.remove('showing');\r\n toast.classList.add('show');\r\n }\r\n}\r\n\r\nexport default Toast;","'use strict';\r\n/**\r\n * Set tooltip on element\r\n * @param {HTMLElement} element Element which has tooltip\r\n */\r\nfunction Tooltip(element){\r\n this.element = element;\r\n if(this.element.getAttribute('data-tooltip') === null){\r\n throw new Error(`Tooltip text is missing. Add attribute data-tooltip and the content of the tooltip as value.`);\r\n }\r\n}\r\n\r\n/**\r\n * Set eventlisteners\r\n */\r\nTooltip.prototype.init = function (){\r\n let module = this;\r\n this.element.addEventListener('mouseenter', function (e) {\r\n let trigger = e.target;\r\n if(trigger.classList.contains('tooltip-hover') === false && trigger.classList.contains('tooltip-focus') === false){\r\n closeAllTooltips(e);\r\n trigger.classList.add(\"tooltip-hover\");\r\n setTimeout(function(){ \r\n if(trigger.classList.contains('tooltip-hover')){\r\n var element = e.target;\r\n\r\n if (element.getAttribute('aria-describedby') !== null) return;\r\n addTooltip(element);\r\n }\r\n }, 300);\r\n }\r\n });\r\n\r\n this.element.addEventListener('mouseleave', function (e) {\r\n let trigger = e.target;\r\n if(trigger.classList.contains('tooltip-hover')){\r\n trigger.classList.remove('tooltip-hover');\r\n var tooltipId = trigger.getAttribute('aria-describedby'); \r\n let tooltipElement = document.getElementById(tooltipId);\r\n if(tooltipElement !== null){\r\n closeHoverTooltip(trigger);\r\n }\r\n }\r\n });\r\n\r\n this.element.addEventListener('keyup', function(event){\r\n var key = event.which || event.keyCode;\r\n if (key === 27) {\r\n var tooltip = this.getAttribute('aria-describedby');\r\n if(tooltip !== null && document.getElementById(tooltip) !== null){\r\n document.body.removeChild(document.getElementById(tooltip));\r\n }\r\n this.classList.remove('active');\r\n this.removeAttribute('aria-describedby');\r\n }\r\n });\r\n \r\n if(this.element.getAttribute('data-tooltip-trigger') === 'click'){\r\n this.element.addEventListener('click', function (e) {\r\n var trigger = e.target;\r\n closeAllTooltips(e);\r\n trigger.classList.add('tooltip-focus');\r\n trigger.classList.remove('tooltip-hover');\r\n if (trigger.getAttribute('aria-describedby') !== null) return;\r\n addTooltip(trigger);\r\n });\r\n }\r\n \r\n document.getElementsByTagName('body')[0].removeEventListener('click', closeAllTooltips);\r\n document.getElementsByTagName('body')[0].addEventListener('click', closeAllTooltips);\r\n};\r\n/**\r\n * Close all tooltips\r\n */\r\nfunction closeAll (){\r\n var elements = document.querySelectorAll('.js-tooltip[aria-describedby]');\r\n for(var i = 0; i < elements.length; i++) {\r\n var popper = elements[ i ].getAttribute('aria-describedby');\r\n elements[ i ].removeAttribute('aria-describedby');\r\n document.body.removeChild(document.getElementById(popper));\r\n }\r\n}\r\n\r\nfunction addTooltip(trigger){\r\n var pos = trigger.getAttribute('data-tooltip-position') || 'top';\r\n\r\n var tooltip = createTooltip(trigger, pos);\r\n\r\n document.body.appendChild(tooltip);\r\n\r\n positionAt(trigger, tooltip, pos);\r\n}\r\n/**\r\n * Create tooltip element\r\n * @param {HTMLElement} element Element which the tooltip is attached\r\n * @param {string} pos Position of tooltip (top | bottom)\r\n * @returns \r\n */\r\nfunction createTooltip (element, pos) {\r\n var tooltip = document.createElement('div');\r\n tooltip.className = 'tooltip-popper';\r\n var poppers = document.getElementsByClassName('tooltip-popper');\r\n var id = 'tooltip-'+poppers.length+1;\r\n tooltip.setAttribute('id', id);\r\n tooltip.setAttribute('role', 'tooltip');\r\n tooltip.setAttribute('x-placement', pos);\r\n element.setAttribute('aria-describedby', id);\r\n\r\n var tooltipInner = document.createElement('div');\r\n tooltipInner.className = 'tooltip';\r\n\r\n var tooltipArrow = document.createElement('div');\r\n tooltipArrow.className = 'tooltip-arrow';\r\n tooltipInner.appendChild(tooltipArrow);\r\n\r\n var tooltipContent = document.createElement('div');\r\n tooltipContent.className = 'tooltip-content';\r\n tooltipContent.innerHTML = element.getAttribute('data-tooltip');\r\n tooltipInner.appendChild(tooltipContent);\r\n tooltip.appendChild(tooltipInner);\r\n\r\n return tooltip;\r\n}\r\n\r\n\r\n/**\r\n * Positions the tooltip.\r\n *\r\n * @param {object} parent - The trigger of the tooltip.\r\n * @param {object} tooltip - The tooltip itself.\r\n * @param {string} posHorizontal - Desired horizontal position of the tooltip relatively to the trigger (left/center/right)\r\n * @param {string} posVertical - Desired vertical position of the tooltip relatively to the trigger (top/center/bottom)\r\n *\r\n */\r\n function positionAt (parent, tooltip, pos) {\r\n let trigger = parent;\r\n let arrow = tooltip.getElementsByClassName('tooltip-arrow')[0];\r\n let triggerPosition = parent.getBoundingClientRect();\r\n \r\n var parentCoords = parent.getBoundingClientRect(), left, top;\r\n\r\n var tooltipWidth = tooltip.offsetWidth;\r\n\r\n var dist = 12;\r\n let arrowDirection = \"down\";\r\n left = parseInt(parentCoords.left) + ((parent.offsetWidth - tooltip.offsetWidth) / 2);\r\n\r\n switch (pos) {\r\n case 'bottom':\r\n top = parseInt(parentCoords.bottom) + dist;\r\n arrowDirection = \"up\";\r\n break;\r\n\r\n default:\r\n case 'top':\r\n top = parseInt(parentCoords.top) - tooltip.offsetHeight - dist;\r\n }\r\n\r\n // if tooltip is out of bounds on left side\r\n if(left < 0) {\r\n left = dist;\r\n let endPositionOnPage = triggerPosition.left + (trigger.offsetWidth / 2);\r\n let tooltipArrowHalfWidth = 8;\r\n let arrowLeftPosition = endPositionOnPage - dist - tooltipArrowHalfWidth;\r\n tooltip.getElementsByClassName('tooltip-arrow')[0].style.left = arrowLeftPosition+'px';\r\n }\r\n\r\n // \r\n if((top + tooltip.offsetHeight) >= window.innerHeight){\r\n top = parseInt(parentCoords.top) - tooltip.offsetHeight - dist;\r\n arrowDirection = \"up\";\r\n }\r\n \r\n if(top < 0) {\r\n top = parseInt(parentCoords.bottom) + dist;\r\n arrowDirection = \"up\";\r\n }\r\n if(window.innerWidth < (left + tooltipWidth)){\r\n tooltip.style.right = dist + 'px';\r\n let endPositionOnPage = triggerPosition.right - (trigger.offsetWidth / 2);\r\n let tooltipArrowHalfWidth = 8;\r\n let arrowRightPosition = window.innerWidth - endPositionOnPage - dist - tooltipArrowHalfWidth;\r\n tooltip.getElementsByClassName('tooltip-arrow')[0].style.right = arrowRightPosition+'px';\r\n tooltip.getElementsByClassName('tooltip-arrow')[0].style.left = 'auto';\r\n } else {\r\n tooltip.style.left = left + 'px';\r\n }\r\n tooltip.style.top = top + pageYOffset + 'px';\r\n tooltip.getElementsByClassName('tooltip-arrow')[0].classList.add(arrowDirection);\r\n}\r\n\r\n\r\nfunction closeAllTooltips(event, force = false){\r\n if (force || (!event.target.classList.contains('js-tooltip') && !event.target.classList.contains('tooltip') && !event.target.classList.contains('tooltip-content'))) { \r\n var elements = document.querySelectorAll('.tooltip-popper');\r\n for(var i = 0; i < elements.length; i++) {\r\n let trigger = document.querySelector('[aria-describedby='+elements[i].getAttribute('id')+']');\r\n trigger.removeAttribute('data-tooltip-active');\r\n trigger.removeAttribute('aria-describedby');\r\n trigger.classList.remove('tooltip-focus');\r\n trigger.classList.remove('tooltip-hover');\r\n document.body.removeChild(elements[i]);\r\n }\r\n }\r\n}\r\n\r\nfunction closeHoverTooltip(trigger){\r\n var tooltipId = trigger.getAttribute('aria-describedby'); \r\n let tooltipElement = document.getElementById(tooltipId);\r\n tooltipElement.removeEventListener('mouseenter', onTooltipHover);\r\n tooltipElement.addEventListener('mouseenter', onTooltipHover);\r\n setTimeout(function(){ \r\n let tooltipElement = document.getElementById(tooltipId);\r\n if(tooltipElement !== null){\r\n if(!trigger.classList.contains(\"tooltip-hover\")){\r\n removeTooltip(trigger);\r\n }\r\n }\r\n }, 300);\r\n}\r\n\r\nfunction onTooltipHover(e){\r\n let tooltipElement = this;\r\n\r\n let trigger = document.querySelector('[aria-describedby='+tooltipElement.getAttribute('id')+']');\r\n trigger.classList.add('tooltip-hover');\r\n \r\n tooltipElement.addEventListener('mouseleave', function(){\r\n let trigger = document.querySelector('[aria-describedby='+tooltipElement.getAttribute('id')+']');\r\n if(trigger !== null){\r\n trigger.classList.remove('tooltip-hover');\r\n closeHoverTooltip(trigger);\r\n }\r\n });\r\n}\r\n\r\nfunction removeTooltip(trigger){\r\n var tooltipId = trigger.getAttribute('aria-describedby'); \r\n let tooltipElement = document.getElementById(tooltipId);\r\n \r\n if(tooltipId !== null && tooltipElement !== null){\r\n document.body.removeChild(tooltipElement);\r\n }\r\n trigger.removeAttribute('aria-describedby');\r\n trigger.classList.remove('tooltip-hover');\r\n trigger.classList.remove('tooltip-focus');\r\n}\r\n\r\nmodule.exports = Tooltip;\r\n","module.exports = {\r\n prefix: '',\r\n};\r\n","'use strict';\r\nimport Accordion from './components/accordion';\r\nimport Alert from './components/alert';\r\nimport CheckboxToggleContent from './components/checkbox-toggle-content';\r\nimport Dropdown from './components/dropdown';\r\nimport DropdownSort from './components/dropdown-sort';\r\nimport ErrorSummary from './components/error-summary';\r\nimport InputRegexMask from './components/regex-input-mask';\r\nimport Modal from './components/modal';\r\nimport Navigation from './components/navigation';\r\nimport RadioToggleGroup from './components/radio-toggle-content';\r\nimport ResponsiveTable from './components/table';\r\nimport Tabnav from './components/tabnav';\r\nimport TableSelectableRows from './components/selectable-table';\r\nimport Toast from './components/toast';\r\nimport Tooltip from './components/tooltip';\r\nconst datePicker = require('./components/date-picker');\r\n/**\r\n * The 'polyfills' define key ECMAScript 5 methods that may be missing from\r\n * older browsers, so must be loaded first.\r\n */\r\nrequire('./polyfills');\r\n\r\n/**\r\n * Init all components\r\n * @param {JSON} options {scope: HTMLElement} - Init all components within scope (default is document)\r\n */\r\nvar init = function (options) {\r\n // Set the options to an empty object by default if no options are passed.\r\n options = typeof options !== 'undefined' ? options : {}\r\n\r\n // Allow the user to initialise FDS in only certain sections of the page\r\n // Defaults to the entire document if nothing is set.\r\n var scope = typeof options.scope !== 'undefined' ? options.scope : document\r\n\r\n /*\r\n ---------------------\r\n Accordions\r\n ---------------------\r\n */\r\n const jsSelectorAccordion = scope.getElementsByClassName('accordion');\r\n for(let c = 0; c < jsSelectorAccordion.length; c++){\r\n new Accordion(jsSelectorAccordion[ c ]).init();\r\n }\r\n const jsSelectorAccordionBordered = scope.querySelectorAll('.accordion-bordered:not(.accordion)');\r\n for(let c = 0; c < jsSelectorAccordionBordered.length; c++){\r\n new Accordion(jsSelectorAccordionBordered[ c ]).init();\r\n }\r\n\r\n /*\r\n ---------------------\r\n Alerts\r\n ---------------------\r\n */\r\n\r\n const alertsWithCloseButton = scope.querySelectorAll('.alert.has-close');\r\n for(let c = 0; c < alertsWithCloseButton.length; c++){\r\n new Alert(alertsWithCloseButton[ c ]).init();\r\n }\r\n \r\n /*\r\n ---------------------\r\n Checkbox collapse\r\n ---------------------\r\n */\r\n const jsSelectorCheckboxCollapse = scope.getElementsByClassName('js-checkbox-toggle-content');\r\n for(let c = 0; c < jsSelectorCheckboxCollapse.length; c++){\r\n new CheckboxToggleContent(jsSelectorCheckboxCollapse[ c ]).init();\r\n }\r\n\r\n /*\r\n ---------------------\r\n Overflow menu\r\n ---------------------\r\n */\r\n const jsSelectorDropdown = scope.getElementsByClassName('js-dropdown');\r\n for(let c = 0; c < jsSelectorDropdown.length; c++){\r\n new Dropdown(jsSelectorDropdown[ c ]).init();\r\n }\r\n\r\n \r\n /*\r\n ---------------------\r\n Overflow menu sort\r\n ---------------------\r\n */\r\n const jsSelectorDropdownSort = scope.getElementsByClassName('overflow-menu--sort');\r\n for(let c = 0; c < jsSelectorDropdownSort.length; c++){\r\n new DropdownSort(jsSelectorDropdownSort[ c ]).init();\r\n }\r\n\r\n /*\r\n ---------------------\r\n Datepicker\r\n ---------------------\r\n */\r\n datePicker.on(scope);\r\n \r\n /*\r\n ---------------------\r\n Error summary\r\n ---------------------\r\n */\r\n var $errorSummary = scope.querySelector('[data-module=\"error-summary\"]');\r\n new ErrorSummary($errorSummary).init();\r\n\r\n /*\r\n ---------------------\r\n Input Regex - used on date fields\r\n ---------------------\r\n */\r\n const jsSelectorRegex = scope.querySelectorAll('input[data-input-regex]');\r\n for(let c = 0; c < jsSelectorRegex.length; c++){\r\n new InputRegexMask(jsSelectorRegex[ c ]);\r\n }\r\n\r\n /*\r\n ---------------------\r\n Modal\r\n ---------------------\r\n */\r\n const modals = scope.querySelectorAll('.fds-modal');\r\n for(let d = 0; d < modals.length; d++) {\r\n new Modal(modals[d]).init();\r\n }\r\n \r\n /*\r\n ---------------------\r\n Navigation\r\n ---------------------\r\n */\r\n new Navigation().init();\r\n \r\n /*\r\n ---------------------\r\n Radiobutton group collapse\r\n ---------------------\r\n */\r\n const jsSelectorRadioCollapse = scope.getElementsByClassName('js-radio-toggle-group');\r\n for(let c = 0; c < jsSelectorRadioCollapse.length; c++){\r\n new RadioToggleGroup(jsSelectorRadioCollapse[ c ]).init();\r\n }\r\n\r\n /*\r\n ---------------------\r\n Responsive tables\r\n ---------------------\r\n */\r\n const jsSelectorTable = scope.querySelectorAll('table:not(.dataTable)');\r\n for(let c = 0; c < jsSelectorTable.length; c++){\r\n new ResponsiveTable(jsSelectorTable[ c ]);\r\n }\r\n\r\n /*\r\n ---------------------\r\n Selectable rows in table\r\n ---------------------\r\n */\r\n const jsSelectableTable = scope.querySelectorAll('table.table--selectable');\r\n for(let c = 0; c < jsSelectableTable.length; c++){\r\n new TableSelectableRows(jsSelectableTable[ c ]).init();\r\n }\r\n\r\n /*\r\n ---------------------\r\n Tabnav\r\n ---------------------\r\n */\r\n const jsSelectorTabnav = scope.getElementsByClassName('tabnav');\r\n for(let c = 0; c < jsSelectorTabnav.length; c++){\r\n new Tabnav(jsSelectorTabnav[ c ]).init();\r\n }\r\n\r\n /*\r\n ---------------------\r\n Tooltip\r\n ---------------------\r\n */\r\n const jsSelectorTooltip = scope.getElementsByClassName('js-tooltip');\r\n for(let c = 0; c < jsSelectorTooltip.length; c++){\r\n new Tooltip(jsSelectorTooltip[ c ]).init();\r\n }\r\n \r\n};\r\n\r\nmodule.exports = { init, Accordion, Alert, CheckboxToggleContent, Dropdown, DropdownSort, datePicker, ErrorSummary, InputRegexMask, Modal, Navigation, RadioToggleGroup, ResponsiveTable, TableSelectableRows, Tabnav, Toast, Tooltip};","module.exports = {\r\n // This used to be conditionally dependent on whether the\r\n // browser supported touch events; if it did, `CLICK` was set to\r\n // `touchstart`. However, this had downsides:\r\n //\r\n // * It pre-empted mobile browsers' default behavior of detecting\r\n // whether a touch turned into a scroll, thereby preventing\r\n // users from using some of our components as scroll surfaces.\r\n //\r\n // * Some devices, such as the Microsoft Surface Pro, support *both*\r\n // touch and clicks. This meant the conditional effectively dropped\r\n // support for the user's mouse, frustrating users who preferred\r\n // it on those systems.\r\n CLICK: 'click',\r\n};\r\n","import '../../Object/defineProperty'\r\n\r\n(function(undefined) {\r\n // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Function/prototype/bind/detect.js\r\n var detect = 'bind' in Function.prototype\r\n\r\n if (detect) return\r\n\r\n // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Function.prototype.bind&flags=always\r\n Object.defineProperty(Function.prototype, 'bind', {\r\n value: function bind(that) { // .length is 1\r\n // add necessary es5-shim utilities\r\n var $Array = Array;\r\n var $Object = Object;\r\n var ObjectPrototype = $Object.prototype;\r\n var ArrayPrototype = $Array.prototype;\r\n var Empty = function Empty() {};\r\n var to_string = ObjectPrototype.toString;\r\n var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\n var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\r\n var array_slice = ArrayPrototype.slice;\r\n var array_concat = ArrayPrototype.concat;\r\n var array_push = ArrayPrototype.push;\r\n var max = Math.max;\r\n // /add necessary es5-shim utilities\r\n\r\n // 1. Let Target be the this value.\r\n var target = this;\r\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\r\n if (!isCallable(target)) {\r\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\r\n }\r\n // 3. Let A be a new (possibly empty) internal list of all of the\r\n // argument values provided after thisArg (arg1, arg2 etc), in order.\r\n // XXX slicedArgs will stand in for \"A\" if used\r\n var args = array_slice.call(arguments, 1); // for normal call\r\n // 4. Let F be a new native ECMAScript object.\r\n // 11. Set the [[Prototype]] internal property of F to the standard\r\n // built-in Function prototype object as specified in 15.3.3.1.\r\n // 12. Set the [[Call]] internal property of F as described in\r\n // 15.3.4.5.1.\r\n // 13. Set the [[Construct]] internal property of F as described in\r\n // 15.3.4.5.2.\r\n // 14. Set the [[HasInstance]] internal property of F as described in\r\n // 15.3.4.5.3.\r\n var bound;\r\n var binder = function () {\r\n\r\n if (this instanceof bound) {\r\n // 15.3.4.5.2 [[Construct]]\r\n // When the [[Construct]] internal method of a function object,\r\n // F that was created using the bind function is called with a\r\n // list of arguments ExtraArgs, the following steps are taken:\r\n // 1. Let target be the value of F's [[TargetFunction]]\r\n // internal property.\r\n // 2. If target has no [[Construct]] internal method, a\r\n // TypeError exception is thrown.\r\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\r\n // property.\r\n // 4. Let args be a new list containing the same values as the\r\n // list boundArgs in the same order followed by the same\r\n // values as the list ExtraArgs in the same order.\r\n // 5. Return the result of calling the [[Construct]] internal\r\n // method of target providing args as the arguments.\r\n\r\n var result = target.apply(\r\n this,\r\n array_concat.call(args, array_slice.call(arguments))\r\n );\r\n if ($Object(result) === result) {\r\n return result;\r\n }\r\n return this;\r\n\r\n } else {\r\n // 15.3.4.5.1 [[Call]]\r\n // When the [[Call]] internal method of a function object, F,\r\n // which was created using the bind function is called with a\r\n // this value and a list of arguments ExtraArgs, the following\r\n // steps are taken:\r\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\r\n // property.\r\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\r\n // property.\r\n // 3. Let target be the value of F's [[TargetFunction]] internal\r\n // property.\r\n // 4. Let args be a new list containing the same values as the\r\n // list boundArgs in the same order followed by the same\r\n // values as the list ExtraArgs in the same order.\r\n // 5. Return the result of calling the [[Call]] internal method\r\n // of target providing boundThis as the this value and\r\n // providing args as the arguments.\r\n\r\n // equiv: target.call(this, ...boundArgs, ...args)\r\n return target.apply(\r\n that,\r\n array_concat.call(args, array_slice.call(arguments))\r\n );\r\n\r\n }\r\n\r\n };\r\n\r\n // 15. If the [[Class]] internal property of Target is \"Function\", then\r\n // a. Let L be the length property of Target minus the length of A.\r\n // b. Set the length own property of F to either 0 or L, whichever is\r\n // larger.\r\n // 16. Else set the length own property of F to 0.\r\n\r\n var boundLength = max(0, target.length - args.length);\r\n\r\n // 17. Set the attributes of the length own property of F to the values\r\n // specified in 15.3.5.1.\r\n var boundArgs = [];\r\n for (var i = 0; i < boundLength; i++) {\r\n array_push.call(boundArgs, '$' + i);\r\n }\r\n\r\n // XXX Build a dynamic function with desired amount of arguments is the only\r\n // way to set the length property of a function.\r\n // In environments where Content Security Policies enabled (Chrome extensions,\r\n // for ex.) all use of eval or Function costructor throws an exception.\r\n // However in all of these environments Function.prototype.bind exists\r\n // and so this code will never be executed.\r\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\r\n\r\n if (target.prototype) {\r\n Empty.prototype = target.prototype;\r\n bound.prototype = new Empty();\r\n // Clean up dangling references.\r\n Empty.prototype = null;\r\n }\r\n\r\n // TODO\r\n // 18. Set the [[Extensible]] internal property of F to true.\r\n\r\n // TODO\r\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\r\n // 20. Call the [[DefineOwnProperty]] internal method of F with\r\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\r\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\r\n // false.\r\n // 21. Call the [[DefineOwnProperty]] internal method of F with\r\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\r\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\r\n // and false.\r\n\r\n // TODO\r\n // NOTE Function objects created using Function.prototype.bind do not\r\n // have a prototype property or the [[Code]], [[FormalParameters]], and\r\n // [[Scope]] internal properties.\r\n // XXX can't delete prototype in pure-js.\r\n\r\n // 22. Return F.\r\n return bound;\r\n }\r\n });\r\n})\r\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\r\n","(function(undefined) {\r\n\r\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js\r\nvar detect = (\r\n // In IE8, defineProperty could only act on DOM elements, so full support\r\n // for the feature requires the ability to set a property on an arbitrary object\r\n 'defineProperty' in Object && (function() {\r\n \ttry {\r\n \t\tvar a = {};\r\n \t\tObject.defineProperty(a, 'test', {value:42});\r\n \t\treturn true;\r\n \t} catch(e) {\r\n \t\treturn false\r\n \t}\r\n }())\r\n)\r\n\r\nif (detect) return\r\n\r\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always\r\n(function (nativeDefineProperty) {\r\n\r\n\tvar supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');\r\n\tvar ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';\r\n\tvar ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';\r\n\r\n\tObject.defineProperty = function defineProperty(object, property, descriptor) {\r\n\r\n\t\t// Where native support exists, assume it\r\n\t\tif (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {\r\n\t\t\treturn nativeDefineProperty(object, property, descriptor);\r\n\t\t}\r\n\r\n\t\tif (object === null || !(object instanceof Object || typeof object === 'object')) {\r\n\t\t\tthrow new TypeError('Object.defineProperty called on non-object');\r\n\t\t}\r\n\r\n\t\tif (!(descriptor instanceof Object)) {\r\n\t\t\tthrow new TypeError('Property description must be an object');\r\n\t\t}\r\n\r\n\t\tvar propertyString = String(property);\r\n\t\tvar hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;\r\n\t\tvar getterType = 'get' in descriptor && typeof descriptor.get;\r\n\t\tvar setterType = 'set' in descriptor && typeof descriptor.set;\r\n\r\n\t\t// handle descriptor.get\r\n\t\tif (getterType) {\r\n\t\t\tif (getterType !== 'function') {\r\n\t\t\t\tthrow new TypeError('Getter must be a function');\r\n\t\t\t}\r\n\t\t\tif (!supportsAccessors) {\r\n\t\t\t\tthrow new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\r\n\t\t\t}\r\n\t\t\tif (hasValueOrWritable) {\r\n\t\t\t\tthrow new TypeError(ERR_VALUE_ACCESSORS);\r\n\t\t\t}\r\n\t\t\tObject.__defineGetter__.call(object, propertyString, descriptor.get);\r\n\t\t} else {\r\n\t\t\tobject[propertyString] = descriptor.value;\r\n\t\t}\r\n\r\n\t\t// handle descriptor.set\r\n\t\tif (setterType) {\r\n\t\t\tif (setterType !== 'function') {\r\n\t\t\t\tthrow new TypeError('Setter must be a function');\r\n\t\t\t}\r\n\t\t\tif (!supportsAccessors) {\r\n\t\t\t\tthrow new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\r\n\t\t\t}\r\n\t\t\tif (hasValueOrWritable) {\r\n\t\t\t\tthrow new TypeError(ERR_VALUE_ACCESSORS);\r\n\t\t\t}\r\n\t\t\tObject.__defineSetter__.call(object, propertyString, descriptor.set);\r\n\t\t}\r\n\r\n\t\t// OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above\r\n\t\tif ('value' in descriptor) {\r\n\t\t\tobject[propertyString] = descriptor.value;\r\n\t\t}\r\n\r\n\t\treturn object;\r\n\t};\r\n}(Object.defineProperty));\r\n})\r\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\r\n","/* eslint-disable consistent-return */\r\n/* eslint-disable func-names */\r\n(function () {\r\n if (typeof window.CustomEvent === \"function\") return false;\r\n\r\n function CustomEvent(event, _params) {\r\n const params = _params || {\r\n bubbles: false,\r\n cancelable: false,\r\n detail: null,\r\n };\r\n const evt = document.createEvent(\"CustomEvent\");\r\n evt.initCustomEvent(\r\n event,\r\n params.bubbles,\r\n params.cancelable,\r\n params.detail\r\n );\r\n return evt;\r\n }\r\n\r\n window.CustomEvent = CustomEvent;\r\n})();\r\n","'use strict';\r\nconst elproto = window.HTMLElement.prototype;\r\nconst HIDDEN = 'hidden';\r\n\r\nif (!(HIDDEN in elproto)) {\r\n Object.defineProperty(elproto, HIDDEN, {\r\n get: function () {\r\n return this.hasAttribute(HIDDEN);\r\n },\r\n set: function (value) {\r\n if (value) {\r\n this.setAttribute(HIDDEN, '');\r\n } else {\r\n this.removeAttribute(HIDDEN);\r\n }\r\n },\r\n });\r\n}\r\n","'use strict';\r\n// polyfills HTMLElement.prototype.classList and DOMTokenList\r\nrequire('classlist-polyfill');\r\n// polyfills HTMLElement.prototype.hidden\r\nrequire('./element-hidden');\r\n\r\n// polyfills Number.isNaN()\r\nrequire(\"./number-is-nan\");\r\n\r\n// polyfills CustomEvent\r\nrequire(\"./custom-event\");\r\n\r\nrequire('core-js/fn/object/assign');\r\nrequire('core-js/fn/array/from');","Number.isNaN =\r\n Number.isNaN ||\r\n function isNaN(input) {\r\n // eslint-disable-next-line no-self-compare\r\n return typeof input === \"number\" && input !== input;\r\n };\r\n","module.exports = (htmlDocument = document) => htmlDocument.activeElement;\r\n","const assign = require(\"object-assign\");\r\nconst receptor = require(\"receptor\");\r\n\r\n/**\r\n * @name sequence\r\n * @param {...Function} seq an array of functions\r\n * @return { closure } callHooks\r\n */\r\n// We use a named function here because we want it to inherit its lexical scope\r\n// from the behavior props object, not from the module\r\nconst sequence = (...seq) =>\r\n function callHooks(target = document.body) {\r\n seq.forEach((method) => {\r\n if (typeof this[method] === \"function\") {\r\n this[method].call(this, target);\r\n }\r\n });\r\n };\r\n\r\n/**\r\n * @name behavior\r\n * @param {object} events\r\n * @param {object?} props\r\n * @return {receptor.behavior}\r\n */\r\nmodule.exports = (events, props) =>\r\n receptor.behavior(\r\n events,\r\n assign(\r\n {\r\n on: sequence(\"init\", \"add\"),\r\n off: sequence(\"teardown\", \"remove\"),\r\n },\r\n props\r\n )\r\n );\r\n","'use strict';\r\nlet breakpoints = {\r\n 'xs': 0,\r\n 'sm': 576,\r\n 'md': 768,\r\n 'lg': 992,\r\n 'xl': 1200\r\n};\r\n\r\nmodule.exports = breakpoints;\r\n","// https://stackoverflow.com/a/7557433\r\nfunction isElementInViewport (el, win=window,\r\n docEl=document.documentElement) {\r\n var rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (win.innerHeight || docEl.clientHeight) &&\r\n rect.right <= (win.innerWidth || docEl.clientWidth)\r\n );\r\n}\r\n\r\nmodule.exports = isElementInViewport;\r\n","// iOS detection from: http://stackoverflow.com/a/9039885/177710\r\nfunction isIosDevice() {\r\n return (\r\n typeof navigator !== \"undefined\" &&\r\n (navigator.userAgent.match(/(iPod|iPhone|iPad)/g) ||\r\n (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1)) &&\r\n !window.MSStream\r\n );\r\n}\r\n\r\nmodule.exports = isIosDevice;\r\n","/**\r\n * @name isElement\r\n * @desc returns whether or not the given argument is a DOM element.\r\n * @param {any} value\r\n * @return {boolean}\r\n */\r\nconst isElement = (value) =>\r\n value && typeof value === \"object\" && value.nodeType === 1;\r\n\r\n/**\r\n * @name select\r\n * @desc selects elements from the DOM by class selector or ID selector.\r\n * @param {string} selector - The selector to traverse the DOM with.\r\n * @param {Document|HTMLElement?} context - The context to traverse the DOM\r\n * in. If not provided, it defaults to the document.\r\n * @return {HTMLElement[]} - An array of DOM nodes or an empty array.\r\n */\r\nmodule.exports = (selector, context) => {\r\n if (typeof selector !== \"string\") {\r\n return [];\r\n }\r\n\r\n if (!context || !isElement(context)) {\r\n context = window.document; // eslint-disable-line no-param-reassign\r\n }\r\n\r\n const selection = context.querySelectorAll(selector);\r\n return Array.prototype.slice.call(selection);\r\n};\r\n","'use strict';\r\nconst EXPANDED = 'aria-expanded';\r\nconst CONTROLS = 'aria-controls';\r\nconst HIDDEN = 'aria-hidden';\r\n\r\nmodule.exports = (button, expanded) => {\r\n\r\n if (typeof expanded !== 'boolean') {\r\n expanded = button.getAttribute(EXPANDED) === 'false';\r\n }\r\n button.setAttribute(EXPANDED, expanded);\r\n const id = button.getAttribute(CONTROLS);\r\n const controls = document.getElementById(id);\r\n if (!controls) {\r\n throw new Error(\r\n 'No toggle target found with id: \"' + id + '\"'\r\n );\r\n }\r\n\r\n controls.setAttribute(HIDDEN, !expanded);\r\n return expanded;\r\n};\r\n"]}