@dso-toolkit/core 59.0.1 → 61.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dso-date-picker.cjs.entry.js +49 -568
  4. package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dso-expandable.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dso-header.cjs.entry.js +2 -7
  8. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dso-info_2.cjs.entry.js +16 -3
  10. package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
  11. package/dist/cjs/dso-list-button.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  13. package/dist/cjs/dso-logo.cjs.entry.js +23 -0
  14. package/dist/cjs/dso-logo.cjs.entry.js.map +1 -0
  15. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  16. package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -1
  17. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  18. package/dist/cjs/dso-toggletip.cjs.entry.js.map +1 -1
  19. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  20. package/dist/cjs/dso-tooltip.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
  22. package/dist/cjs/dso-viewer-grid.cjs.entry.js +177 -65
  23. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/collection-manifest.json +1 -0
  26. package/dist/collection/components/accordion/components/accordion-section.css +1 -1
  27. package/dist/collection/components/date-picker/date-picker.css +4 -425
  28. package/dist/collection/components/date-picker/date-picker.interfaces.js.map +1 -1
  29. package/dist/collection/components/date-picker/date-picker.js +50 -510
  30. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  31. package/dist/collection/components/date-picker/date-utils.js +24 -100
  32. package/dist/collection/components/date-picker/date-utils.js.map +1 -1
  33. package/dist/collection/components/expandable/expandable.css +1 -0
  34. package/dist/collection/components/header/header.css +4 -8
  35. package/dist/collection/components/header/header.js +1 -7
  36. package/dist/collection/components/header/header.js.map +1 -1
  37. package/dist/collection/components/list-button/list-button.css +1 -0
  38. package/dist/collection/components/logo/logo.css +109 -0
  39. package/dist/collection/components/logo/logo.js +61 -0
  40. package/dist/collection/components/logo/logo.js.map +1 -0
  41. package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
  42. package/dist/collection/components/progress-indicator/progress-indicator.js.map +1 -1
  43. package/dist/collection/components/selectable/selectable.css +1 -3
  44. package/dist/collection/components/toggletip/toggletip.css +1 -0
  45. package/dist/collection/components/tooltip/tooltip.css +35 -26
  46. package/dist/collection/components/viewer-grid/components/document-panel.js +8 -0
  47. package/dist/collection/components/viewer-grid/components/document-panel.js.map +1 -0
  48. package/dist/collection/components/viewer-grid/components/index.js +1 -0
  49. package/dist/collection/components/viewer-grid/components/index.js.map +1 -1
  50. package/dist/collection/components/viewer-grid/components/main-panel.js +12 -8
  51. package/dist/collection/components/viewer-grid/components/main-panel.js.map +1 -1
  52. package/dist/collection/components/viewer-grid/viewer-grid.css +237 -48
  53. package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js +13 -1
  54. package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js.map +1 -1
  55. package/dist/collection/components/viewer-grid/viewer-grid.js +402 -59
  56. package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
  57. package/dist/components/dso-accordion-section.js +1 -1
  58. package/dist/components/dso-accordion-section.js.map +1 -1
  59. package/dist/components/dso-date-picker.js +55 -589
  60. package/dist/components/dso-date-picker.js.map +1 -1
  61. package/dist/components/dso-header.js +2 -8
  62. package/dist/components/dso-header.js.map +1 -1
  63. package/dist/components/dso-list-button.js +1 -1
  64. package/dist/components/dso-list-button.js.map +1 -1
  65. package/dist/components/dso-logo.d.ts +11 -0
  66. package/dist/components/dso-logo.js +40 -0
  67. package/dist/components/dso-logo.js.map +1 -0
  68. package/dist/components/dso-toggletip.js +1 -1
  69. package/dist/components/dso-toggletip.js.map +1 -1
  70. package/dist/components/dso-viewer-grid.js +186 -69
  71. package/dist/components/dso-viewer-grid.js.map +1 -1
  72. package/dist/components/expandable.js +1 -1
  73. package/dist/components/expandable.js.map +1 -1
  74. package/dist/components/index.d.ts +2 -0
  75. package/dist/components/index.js +1 -0
  76. package/dist/components/index.js.map +1 -1
  77. package/dist/components/progress-indicator.js +1 -1
  78. package/dist/components/progress-indicator.js.map +1 -1
  79. package/dist/components/selectable.js +15 -2
  80. package/dist/components/selectable.js.map +1 -1
  81. package/dist/components/tooltip.js +1 -1
  82. package/dist/components/tooltip.js.map +1 -1
  83. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  84. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  85. package/dist/dso-toolkit/p-04662263.entry.js +2 -0
  86. package/dist/dso-toolkit/p-04662263.entry.js.map +1 -0
  87. package/dist/dso-toolkit/p-0c14a2e5.entry.js +2 -0
  88. package/dist/dso-toolkit/p-0c14a2e5.entry.js.map +1 -0
  89. package/dist/dso-toolkit/p-6b42f0cc.entry.js +2 -0
  90. package/dist/dso-toolkit/p-6b42f0cc.entry.js.map +1 -0
  91. package/dist/dso-toolkit/p-6dfe9062.entry.js +2 -0
  92. package/dist/dso-toolkit/p-6dfe9062.entry.js.map +1 -0
  93. package/dist/dso-toolkit/{p-298453a9.entry.js → p-7d90b3b2.entry.js} +2 -2
  94. package/dist/dso-toolkit/{p-298453a9.entry.js.map → p-7d90b3b2.entry.js.map} +1 -1
  95. package/dist/dso-toolkit/p-8b24f933.entry.js +2 -0
  96. package/dist/dso-toolkit/p-8b24f933.entry.js.map +1 -0
  97. package/dist/dso-toolkit/{p-a2a82d7c.entry.js → p-ca222ec3.entry.js} +2 -2
  98. package/dist/dso-toolkit/{p-a2a82d7c.entry.js.map → p-ca222ec3.entry.js.map} +1 -1
  99. package/dist/dso-toolkit/p-caf4d880.entry.js +2 -0
  100. package/dist/dso-toolkit/{p-d37a6c95.entry.js.map → p-caf4d880.entry.js.map} +1 -1
  101. package/dist/dso-toolkit/p-dbea5bbd.entry.js +2 -0
  102. package/dist/dso-toolkit/p-dbea5bbd.entry.js.map +1 -0
  103. package/dist/dso-toolkit/p-e45febe8.entry.js +2 -0
  104. package/dist/dso-toolkit/p-e45febe8.entry.js.map +1 -0
  105. package/dist/dso-toolkit/p-ebda3d53.entry.js +2 -0
  106. package/dist/dso-toolkit/p-ebda3d53.entry.js.map +1 -0
  107. package/dist/esm/dso-accordion-section.entry.js +1 -1
  108. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  109. package/dist/esm/dso-date-picker.entry.js +50 -569
  110. package/dist/esm/dso-date-picker.entry.js.map +1 -1
  111. package/dist/esm/dso-expandable.entry.js +1 -1
  112. package/dist/esm/dso-expandable.entry.js.map +1 -1
  113. package/dist/esm/dso-header.entry.js +2 -7
  114. package/dist/esm/dso-header.entry.js.map +1 -1
  115. package/dist/esm/dso-info_2.entry.js +15 -2
  116. package/dist/esm/dso-info_2.entry.js.map +1 -1
  117. package/dist/esm/dso-list-button.entry.js +1 -1
  118. package/dist/esm/dso-list-button.entry.js.map +1 -1
  119. package/dist/esm/dso-logo.entry.js +19 -0
  120. package/dist/esm/dso-logo.entry.js.map +1 -0
  121. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  122. package/dist/esm/dso-progress-indicator.entry.js.map +1 -1
  123. package/dist/esm/dso-toggletip.entry.js +1 -1
  124. package/dist/esm/dso-toggletip.entry.js.map +1 -1
  125. package/dist/esm/dso-toolkit.js +1 -1
  126. package/dist/esm/dso-tooltip.entry.js +1 -1
  127. package/dist/esm/dso-tooltip.entry.js.map +1 -1
  128. package/dist/esm/dso-viewer-grid.entry.js +178 -66
  129. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  130. package/dist/esm/loader.js +1 -1
  131. package/dist/types/components/date-picker/date-picker.d.ts +8 -99
  132. package/dist/types/components/date-picker/date-picker.interfaces.d.ts +9 -8
  133. package/dist/types/components/date-picker/date-utils.d.ts +6 -34
  134. package/dist/types/components/header/header.d.ts +0 -2
  135. package/dist/types/components/logo/logo.d.ts +15 -0
  136. package/dist/types/components/viewer-grid/components/document-panel.d.ts +10 -0
  137. package/dist/types/components/viewer-grid/components/index.d.ts +1 -0
  138. package/dist/types/components/viewer-grid/components/main-panel.d.ts +10 -4
  139. package/dist/types/components/viewer-grid/viewer-grid.d.ts +82 -17
  140. package/dist/types/components/viewer-grid/viewer-grid.interfaces.d.ts +27 -13
  141. package/dist/types/components.d.ts +116 -42
  142. package/package.json +2 -2
  143. package/dist/cjs/create-identifier-5900c27b.js +0 -19
  144. package/dist/cjs/create-identifier-5900c27b.js.map +0 -1
  145. package/dist/collection/components/date-picker/date-localization.js +0 -30
  146. package/dist/collection/components/date-picker/date-localization.js.map +0 -1
  147. package/dist/collection/components/date-picker/date-picker-day.js +0 -20
  148. package/dist/collection/components/date-picker/date-picker-day.js.map +0 -1
  149. package/dist/collection/components/date-picker/date-picker-month.js +0 -26
  150. package/dist/collection/components/date-picker/date-picker-month.js.map +0 -1
  151. package/dist/collection/components/date-picker/utils/month-range.js +0 -28
  152. package/dist/collection/components/date-picker/utils/month-range.js.map +0 -1
  153. package/dist/collection/components/date-picker/utils/range.js +0 -8
  154. package/dist/collection/components/date-picker/utils/range.js.map +0 -1
  155. package/dist/components/create-identifier.js +0 -17
  156. package/dist/components/create-identifier.js.map +0 -1
  157. package/dist/dso-toolkit/p-3631ce14.entry.js +0 -2
  158. package/dist/dso-toolkit/p-3631ce14.entry.js.map +0 -1
  159. package/dist/dso-toolkit/p-51cfeed4.entry.js +0 -2
  160. package/dist/dso-toolkit/p-51cfeed4.entry.js.map +0 -1
  161. package/dist/dso-toolkit/p-95b70498.entry.js +0 -2
  162. package/dist/dso-toolkit/p-95b70498.entry.js.map +0 -1
  163. package/dist/dso-toolkit/p-9dbe2931.entry.js +0 -2
  164. package/dist/dso-toolkit/p-9dbe2931.entry.js.map +0 -1
  165. package/dist/dso-toolkit/p-a3dc08f4.entry.js +0 -2
  166. package/dist/dso-toolkit/p-a3dc08f4.entry.js.map +0 -1
  167. package/dist/dso-toolkit/p-ad44136d.entry.js +0 -2
  168. package/dist/dso-toolkit/p-ad44136d.entry.js.map +0 -1
  169. package/dist/dso-toolkit/p-c19cfe3f.js +0 -2
  170. package/dist/dso-toolkit/p-c19cfe3f.js.map +0 -1
  171. package/dist/dso-toolkit/p-d37a6c95.entry.js +0 -2
  172. package/dist/dso-toolkit/p-f08a5a06.entry.js +0 -2
  173. package/dist/dso-toolkit/p-f08a5a06.entry.js.map +0 -1
  174. package/dist/esm/create-identifier-479a4699.js +0 -17
  175. package/dist/esm/create-identifier-479a4699.js.map +0 -1
  176. package/dist/types/components/date-picker/date-localization.d.ts +0 -19
  177. package/dist/types/components/date-picker/date-picker-day.d.ts +0 -11
  178. package/dist/types/components/date-picker/date-picker-month.d.ts +0 -20
  179. package/dist/types/components/date-picker/utils/month-range.d.ts +0 -2
  180. package/dist/types/components/date-picker/utils/range.d.ts +0 -1
@@ -1,28 +0,0 @@
1
- export function monthRange(localization, selectedYear, minDate, maxDate) {
2
- if (minDate && maxDate) {
3
- const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };
4
- const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };
5
- return localization.monthNames.filter((_month, index) => {
6
- if (minYear === selectedYear && maxYear === selectedYear) {
7
- return index >= minMonth && index >= maxMonth;
8
- }
9
- if (minYear === selectedYear) {
10
- return index >= minMonth;
11
- }
12
- if (maxYear === selectedYear) {
13
- return index <= maxMonth;
14
- }
15
- return true;
16
- });
17
- }
18
- if (minDate) {
19
- const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };
20
- return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);
21
- }
22
- if (maxDate) {
23
- const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };
24
- return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);
25
- }
26
- return localization.monthNames;
27
- }
28
- //# sourceMappingURL=month-range.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"month-range.js","sourceRoot":"","sources":["../../../../src/components/date-picker/utils/month-range.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CACxB,YAA8B,EAC9B,YAAoB,EACpB,OAAc,EACd,OAAc;EAEd,IAAI,OAAO,IAAI,OAAO,EAAE;IACtB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC/F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE/F,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;MACtD,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY,EAAE;QACxD,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,QAAQ,CAAC;OAC/C;MAED,IAAI,OAAO,KAAK,YAAY,EAAE;QAC5B,OAAO,KAAK,IAAI,QAAQ,CAAC;OAC1B;MAED,IAAI,OAAO,KAAK,YAAY,EAAE;QAC5B,OAAO,KAAK,IAAI,QAAQ,CAAC;OAC1B;MAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;GACJ;EAED,IAAI,OAAO,EAAE;IACX,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE/F,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,YAAY,IAAI,KAAK,IAAI,QAAQ,CAAC,CAAC;GACzG;EAED,IAAI,OAAO,EAAE;IACX,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE/F,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,YAAY,IAAI,KAAK,IAAI,QAAQ,CAAC,CAAC;GACzG;EAED,OAAO,YAAY,CAAC,UAAU,CAAC;AACjC,CAAC","sourcesContent":["import { DsoLocalizedText } from \"../date-localization\";\r\n\r\nexport function monthRange(\r\n localization: DsoLocalizedText,\r\n selectedYear: number,\r\n minDate?: Date,\r\n maxDate?: Date\r\n): string[] {\r\n if (minDate && maxDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => {\r\n if (minYear === selectedYear && maxYear === selectedYear) {\r\n return index >= minMonth && index >= maxMonth;\r\n }\r\n\r\n if (minYear === selectedYear) {\r\n return index >= minMonth;\r\n }\r\n\r\n if (maxYear === selectedYear) {\r\n return index <= maxMonth;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n if (minDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);\r\n }\r\n\r\n if (maxDate) {\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);\r\n }\r\n\r\n return localization.monthNames;\r\n}\r\n"]}
@@ -1,8 +0,0 @@
1
- export function range(from, to) {
2
- const result = [];
3
- for (let i = from; i <= to; i++) {
4
- result.push(i);
5
- }
6
- return result;
7
- }
8
- //# sourceMappingURL=range.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../../src/components/date-picker/utils/range.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,EAAU;EAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;EAC5B,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;GAChB;EACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["export function range(from: number, to: number) {\r\n const result: number[] = [];\r\n for (let i = from; i <= to; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n}\r\n"]}
@@ -1,17 +0,0 @@
1
- /**
2
- * Form random hash
3
- */
4
- function chr4() {
5
- return Math.random().toString(16).slice(-4);
6
- }
7
- /**
8
- * Create random identifier with a prefix
9
- * @param prefix
10
- */
11
- function createIdentifier(prefix) {
12
- return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;
13
- }
14
-
15
- export { createIdentifier as c };
16
-
17
- //# sourceMappingURL=create-identifier.js.map
@@ -1 +0,0 @@
1
- {"file":"create-identifier.js","mappings":"AAAA;;;SAGgB,IAAI;EAClB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;SAIgB,gBAAgB,CAAC,MAAc;EAC7C,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AAClG;;;;","names":[],"sources":["src/utils/create-identifier.ts"],"sourcesContent":["/**\r\n * Form random hash\r\n */\r\nexport function chr4() {\r\n return Math.random().toString(16).slice(-4);\r\n}\r\n\r\n/**\r\n * Create random identifier with a prefix\r\n * @param prefix\r\n */\r\nexport function createIdentifier(prefix: string): string {\r\n return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;\r\n}\r\n"],"version":3}
@@ -1,2 +0,0 @@
1
- import{r as e,c as s,h as t,F as l,f as o,a as c}from"./p-3ca5b6f4.js";import{c as a}from"./p-c87b4d11.js";import{c as i}from"./p-c19cfe3f.js";const d=":host{display:block;background-color:#f2f2f2;color:#000;padding:16px 32px 16px 16px;position:relative}:host>button{background-color:transparent;border-style:none;padding:0;position:absolute;right:8px;top:8px}:host(:not([active]):not([fixed])){display:none}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";const b=class{constructor(t){e(this,t);this.dsoClose=s(this,"dsoClose",7);this.fixed=undefined;this.active=undefined}render(){return t(l,null,t("slot",null),!this.fixed&&t("button",{type:"button",onClick:e=>this.dsoClose.emit(e)},t("dso-icon",{icon:"times"}),t("span",{class:"sr-only"},"Sluiten")))}};b.style=d;const n='.sc-dso-selectable-h{display:block;position:relative}.sc-dso-selectable-h .dso-selectable-options.sc-dso-selectable{list-style:none;margin-top:8px;padding-left:0}.sc-dso-selectable-h .dso-selectable-options.sc-dso-selectable li.sc-dso-selectable+li.sc-dso-selectable{margin-top:8px}.sc-dso-selectable-h label.sc-dso-selectable{font-weight:400;line-height:24px;margin:0}.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable:focus+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable:focus+label.sc-dso-selectable::before{background-color:#fff;box-shadow:0 0 0 2px #e5e5e5}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable{height:24px;left:0;margin:0;opacity:0;position:absolute;top:0;width:24px;z-index:100;zoom:1}@media (prefers-contrast: more){.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable{opacity:1}}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:not([disabled]),.sc-dso-selectable-h input[type=radio].sc-dso-selectable:not([disabled]){cursor:pointer}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable{display:inline;font-style:normal;padding-left:0}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::before{background:#fff;border:0;box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);content:"";height:20px;left:2px;position:absolute;top:2px;width:20px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:focus,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:focus{outline:0}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:focus+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:focus+label.sc-dso-selectable::before{box-shadow:0 0 0 3px var(--dso-selectable-color, #275937);height:18px;left:3px;top:3px;width:18px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox].active.sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].active.sc-dso-selectable+label.sc-dso-selectable::before{background-color:#ebf3e6;box-shadow:0 0 0 1px #275937;height:22px;left:1px;top:1px;width:22px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::before{border-radius:4px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::after{background:transparent;content:"";left:6px;opacity:0;position:absolute;top:6px;zoom:1}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:checked+label.sc-dso-selectable::after,.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:indeterminate+label.sc-dso-selectable::after{opacity:1}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:checked+label.sc-dso-selectable::after{border:solid;border-color:var(--dso-selectable-color, #39870c);border-top-color:transparent;border-width:0 0 3px 3px;height:8px;transform:rotate(-45deg);width:13px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:indeterminate+label.sc-dso-selectable::after{background-color:var(--dso-selectable-color, #39870c);height:12px;width:12px}.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::before{border-radius:50%}.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::after{background-color:transparent;border-radius:50%;content:"";height:12px;left:6px;opacity:0;position:absolute;top:6px;width:12px;zoom:1}.sc-dso-selectable-h input[type=radio].sc-dso-selectable:checked+label.sc-dso-selectable::after{background-color:var(--dso-selectable-color, #39870c);opacity:1}.sc-dso-selectable-h>dso-info.sc-dso-selectable{float:none;margin:8px 16px 0 0;width:100%}[invalid].sc-dso-selectable-h:not([invalid=false]){--dso-selectable-color:#ce3f51}.sc-dso-selectable-h:not(:last-child){margin-bottom:8px}*.sc-dso-selectable,*.sc-dso-selectable::after,*.sc-dso-selectable::before{box-sizing:border-box}.dso-selectable-container.sc-dso-selectable{display:inline-block;position:relative;padding-inline-start:32px}.dso-selectable-container.has-info-button.sc-dso-selectable{padding-inline-end:32px}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable{display:inline-block;margin-inline:-32px;min-height:24px;padding-inline:32px}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable:focus-within.dso-keyboard-focus{border-radius:2px;outline-offset:3px;outline:3px solid #008ccc}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable input[type=radio].sc-dso-selectable:focus+label.sc-dso-selectable::before,.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable input[type=checkbox].sc-dso-selectable:focus+label.sc-dso-selectable::before{box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);height:20px;left:2px;top:2px;width:20px}dso-info-button.sc-dso-selectable{position:absolute;right:0;top:0}';const r=class{constructor(t){e(this,t);this.dsoChange=s(this,"dsoChange",7);this.fallbackIdentifier=i("DsoSelectable");this.type=undefined;this.identifier=undefined;this.name=undefined;this.value=undefined;this.invalid=undefined;this.describedById=undefined;this.labelledById=undefined;this.disabled=undefined;this.required=undefined;this.checked=undefined;this.indeterminate=undefined;this.infoFixed=undefined;this.infoActive=false;this.keyboardFocus=false}async toggleInfo(e){this.infoActive=e!==null&&e!==void 0?e:!this.infoActive}componentDidLoad(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect();this.mutationObserver=new MutationObserver((()=>o(this.host)));this.mutationObserver.observe(this.host,{childList:true});this.setIndeterminate()}disconnectedCallback(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect()}setIndeterminate(){if(!(this.input instanceof HTMLInputElement)||this.type!=="checkbox"){return}this.input.indeterminate=!!this.indeterminate}render(){var e;const s=!!this.host.querySelector('[slot="info"]');return t(l,null,t("div",{class:a("dso-selectable-container",{"has-info-button":s})},t("div",{class:a("dso-selectable-input-wrapper",{"dso-keyboard-focus":this.keyboardFocus})},t("input",{type:this.type,id:this.getIdentifier(),value:this.value,name:this.name,"aria-invalid":(e=this.invalid)===null||e===void 0?void 0:e.toString(),"aria-describedby":s&&this.infoFixed?this.describedById:undefined,"aria-labelledBy":this.labelledById,disabled:this.disabled,required:this.required,checked:this.checked,onChange:e=>this.dsoChange.emit(e),onBlur:()=>this.keyboardFocus=false,onKeyUp:()=>this.keyboardFocus=true,ref:e=>this.input=e}),!this.labelledById?t("label",{htmlFor:this.getIdentifier()},t("slot",null)):t("label",null)),s&&t(l,null,!this.infoFixed&&t("dso-info-button",{active:this.infoActive,onDsoToggle:e=>this.infoActive=e.detail.active}))),s&&t("dso-info",{id:s&&this.infoFixed?this.describedById:undefined,fixed:this.infoFixed,active:this.infoActive,onDsoClose:()=>this.infoActive=false},t("div",null,t("slot",{name:"info"}))))}getIdentifier(){var e;return(e=this.identifier)!==null&&e!==void 0?e:this.fallbackIdentifier}get host(){return c(this)}static get watchers(){return{indeterminate:["setIndeterminate"]}}};r.style=n;export{b as dso_info,r as dso_selectable};
2
- //# sourceMappingURL=p-3631ce14.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["infoCss","Info","render","h","Fragment","this","fixed","type","onClick","e","dsoClose","emit","icon","class","selectableCss","Selectable","fallbackIdentifier","createIdentifier","toggleInfo","active","infoActive","componentDidLoad","_a","mutationObserver","disconnect","MutationObserver","forceUpdate","host","observe","childList","setIndeterminate","disconnectedCallback","input","HTMLInputElement","indeterminate","hasInfo","querySelector","clsx","keyboardFocus","id","getIdentifier","value","name","invalid","toString","infoFixed","describedById","undefined","labelledById","disabled","required","checked","onChange","dsoChange","onBlur","onKeyUp","ref","el","htmlFor","onDsoToggle","detail","onDsoClose","identifier"],"sources":["src/components/info/info.scss?tag=dso-info&encapsulation=shadow","src/components/info/info.tsx","src/components/selectable/selectable.scss?tag=dso-selectable&encapsulation=scoped","src/components/selectable/selectable.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/info\";\r\n\r\n:host {\r\n display: block;\r\n\r\n @include info.root();\r\n}\r\n\r\n:host(:not([active]):not([fixed])) {\r\n display: none;\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n","import { h, Component, Event, Prop, EventEmitter, Fragment } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-info\",\r\n styleUrl: \"./info.scss\",\r\n shadow: true,\r\n})\r\nexport class Info {\r\n /**\r\n * Set to true if the Info should not be toggled and always visible.\r\n */\r\n @Prop({ reflect: true })\r\n fixed?: boolean;\r\n\r\n /**\r\n * Whether the Info is active.\r\n */\r\n @Prop({ reflect: true })\r\n active?: boolean;\r\n\r\n /**\r\n * Emitted when the user activates the close button.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<MouseEvent>;\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <slot></slot>\r\n {!this.fixed && (\r\n <button type=\"button\" onClick={(e) => this.dsoClose.emit(e)}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/selectable\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n:host {\r\n display: block;\r\n\r\n @include selectable.root(\"dso-info\", false);\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n @include selectable.invalid();\r\n }\r\n}\r\n\r\n:host(:not(:last-child)) {\r\n @include selectable.notLastChild();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-selectable-container {\r\n display: inline-block;\r\n position: relative;\r\n padding-inline-start: units.$u4;\r\n\r\n &.has-info-button {\r\n padding-inline-end: units.$u4;\r\n }\r\n\r\n .dso-selectable-input-wrapper {\r\n display: inline-block;\r\n margin-inline: -#{units.$u4};\r\n min-height: units.$u3;\r\n padding-inline: units.$u4;\r\n\r\n &:focus-within.dso-keyboard-focus {\r\n @include utilities.focus-outline();\r\n }\r\n\r\n input[type=\"radio\"],\r\n input[type=\"checkbox\"] {\r\n &:focus + label::before {\r\n @include selectable.selectableBoxShadow(\r\n selectable.$border-width,\r\n var(--dso-selectable-color, selectable.$valid-color)\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\ndso-info-button {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n}\r\n","import {\r\n h,\r\n Component,\r\n Prop,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Element,\r\n State,\r\n forceUpdate,\r\n Watch,\r\n Method,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\nimport { SelectableChangeEvent } from \"./selectable.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-selectable\",\r\n styleUrl: \"selectable.scss\",\r\n scoped: true,\r\n})\r\nexport class Selectable {\r\n /**\r\n * Type of Selectable.\r\n *\r\n * `checkbox`: Multiple options\r\n * `radio`: Single option.\r\n */\r\n @Prop()\r\n type!: \"checkbox\" | \"radio\";\r\n\r\n /**\r\n * To set `<input id>` attribute for external references.\r\n */\r\n @Prop()\r\n identifier?: string;\r\n\r\n /**\r\n * Name of the Selectable. Can be used to group Selectables.\r\n */\r\n @Prop()\r\n name?: string;\r\n\r\n /**\r\n * The value of the Selectable.\r\n */\r\n @Prop()\r\n value!: string;\r\n\r\n /**\r\n * Set to true of the current value is not valid.\r\n */\r\n @Prop()\r\n invalid?: boolean;\r\n\r\n /**\r\n * To link this control to an element that describes it.\r\n */\r\n @Prop()\r\n describedById?: string;\r\n\r\n /**\r\n * To link this control to an element that labels it.\r\n */\r\n @Prop()\r\n labelledById?: string;\r\n\r\n /**\r\n * To disable the Selectable.\r\n */\r\n @Prop()\r\n disabled?: boolean;\r\n\r\n /**\r\n * To mark the Selectable as required.\r\n */\r\n @Prop()\r\n required?: boolean;\r\n\r\n /**\r\n * Mark the Selectable as checked\r\n */\r\n @Prop()\r\n checked?: boolean;\r\n\r\n /**\r\n * An indeterminate state is neither true or false. It means the answer is somewhere in between.\r\n *\r\n * Can be used to indicate child Selectables that are a mix of checked and unchecked.\r\n */\r\n @Prop()\r\n indeterminate?: boolean;\r\n\r\n /**\r\n * Set to true if the Info should not be toggled and always visible.\r\n */\r\n @Prop()\r\n infoFixed?: boolean;\r\n\r\n /**\r\n * Emitted when the user checks or unchecks the Selectable.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<SelectableChangeEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoSelectableElement;\r\n\r\n @State()\r\n infoActive = false;\r\n\r\n @State()\r\n keyboardFocus = false;\r\n\r\n /**\r\n * Method to toggle the Info. Is set to `active` when passed.\r\n *\r\n * If `active` is not passed, Info is toggled to opposite value.\r\n * @param active\r\n */\r\n @Method()\r\n async toggleInfo(active?: boolean) {\r\n this.infoActive = active ?? !this.infoActive;\r\n }\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private fallbackIdentifier = createIdentifier(\"DsoSelectable\");\r\n\r\n private input: HTMLInputElement | undefined;\r\n\r\n componentDidLoad() {\r\n this.mutationObserver?.disconnect();\r\n\r\n this.mutationObserver = new MutationObserver(() => forceUpdate(this.host));\r\n this.mutationObserver.observe(this.host, {\r\n childList: true,\r\n });\r\n\r\n this.setIndeterminate();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.mutationObserver?.disconnect();\r\n }\r\n\r\n @Watch(\"indeterminate\")\r\n setIndeterminate() {\r\n if (!(this.input instanceof HTMLInputElement) || this.type !== \"checkbox\") {\r\n return;\r\n }\r\n\r\n this.input.indeterminate = !!this.indeterminate;\r\n }\r\n\r\n render() {\r\n const hasInfo = !!this.host.querySelector('[slot=\"info\"]');\r\n\r\n return (\r\n <Fragment>\r\n <div class={clsx(\"dso-selectable-container\", { \"has-info-button\": hasInfo })}>\r\n <div class={clsx(\"dso-selectable-input-wrapper\", { \"dso-keyboard-focus\": this.keyboardFocus })}>\r\n <input\r\n type={this.type}\r\n id={this.getIdentifier()}\r\n value={this.value}\r\n name={this.name}\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={hasInfo && this.infoFixed ? this.describedById : undefined}\r\n aria-labelledBy={this.labelledById}\r\n disabled={this.disabled}\r\n required={this.required}\r\n checked={this.checked}\r\n onChange={(e) => this.dsoChange.emit(e)}\r\n onBlur={() => (this.keyboardFocus = false)}\r\n onKeyUp={() => (this.keyboardFocus = true)}\r\n ref={(el) => (this.input = el)}\r\n />\r\n {!this.labelledById ? (\r\n <label htmlFor={this.getIdentifier()}>\r\n <slot></slot>\r\n </label>\r\n ) : (\r\n <label></label>\r\n )}\r\n </div>\r\n {hasInfo && (\r\n <Fragment>\r\n {!this.infoFixed && (\r\n <dso-info-button\r\n active={this.infoActive}\r\n onDsoToggle={(e) => (this.infoActive = e.detail.active)}\r\n ></dso-info-button>\r\n )}\r\n </Fragment>\r\n )}\r\n </div>\r\n {hasInfo && (\r\n <dso-info\r\n id={hasInfo && this.infoFixed ? this.describedById : undefined}\r\n fixed={this.infoFixed}\r\n active={this.infoActive}\r\n onDsoClose={() => (this.infoActive = false)}\r\n >\r\n <div>\r\n <slot name=\"info\"></slot>\r\n </div>\r\n </dso-info>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n\r\n private getIdentifier(): string {\r\n return this.identifier ?? this.fallbackIdentifier;\r\n }\r\n}\r\n"],"mappings":"+IAAA,MAAMA,EAAU,kqB,MCOHC,EAAI,M,uGAmBf,MAAAC,GACE,OACEC,EAACC,EAAQ,KACPD,EAAA,cACEE,KAAKC,OACLH,EAAA,UAAQI,KAAK,SAASC,QAAUC,GAAMJ,KAAKK,SAASC,KAAKF,IACvDN,EAAA,YAAUS,KAAK,UACfT,EAAA,QAAMU,MAAM,WAAS,Y,aCjCjC,MAAMC,EAAgB,4tL,MCsBTC,EAAU,M,8DA0GbV,KAAAW,mBAAqBC,EAAiB,iB,oTAlBjC,M,mBAGG,K,CAShB,gBAAMC,CAAWC,GACfd,KAAKe,WAAaD,IAAM,MAANA,SAAM,EAANA,GAAWd,KAAKe,U,CASpC,gBAAAC,G,OACEC,EAAAjB,KAAKkB,oBAAgB,MAAAD,SAAA,SAAAA,EAAEE,aAEvBnB,KAAKkB,iBAAmB,IAAIE,kBAAiB,IAAMC,EAAYrB,KAAKsB,QACpEtB,KAAKkB,iBAAiBK,QAAQvB,KAAKsB,KAAM,CACvCE,UAAW,OAGbxB,KAAKyB,kB,CAGP,oBAAAC,G,OACET,EAAAjB,KAAKkB,oBAAgB,MAAAD,SAAA,SAAAA,EAAEE,Y,CAIzB,gBAAAM,GACE,KAAMzB,KAAK2B,iBAAiBC,mBAAqB5B,KAAKE,OAAS,WAAY,CACzE,M,CAGFF,KAAK2B,MAAME,gBAAkB7B,KAAK6B,a,CAGpC,MAAAhC,G,MACE,MAAMiC,IAAY9B,KAAKsB,KAAKS,cAAc,iBAE1C,OACEjC,EAACC,EAAQ,KACPD,EAAA,OAAKU,MAAOwB,EAAK,2BAA4B,CAAE,kBAAmBF,KAChEhC,EAAA,OAAKU,MAAOwB,EAAK,+BAAgC,CAAE,qBAAsBhC,KAAKiC,iBAC5EnC,EAAA,SACEI,KAAMF,KAAKE,KACXgC,GAAIlC,KAAKmC,gBACTC,MAAOpC,KAAKoC,MACZC,KAAMrC,KAAKqC,KAAI,gBACDpB,EAAAjB,KAAKsC,WAAO,MAAArB,SAAA,SAAAA,EAAEsB,WAAU,mBACpBT,GAAW9B,KAAKwC,UAAYxC,KAAKyC,cAAgBC,UAAS,kBAC3D1C,KAAK2C,aACtBC,SAAU5C,KAAK4C,SACfC,SAAU7C,KAAK6C,SACfC,QAAS9C,KAAK8C,QACdC,SAAW3C,GAAMJ,KAAKgD,UAAU1C,KAAKF,GACrC6C,OAAQ,IAAOjD,KAAKiC,cAAgB,MACpCiB,QAAS,IAAOlD,KAAKiC,cAAgB,KACrCkB,IAAMC,GAAQpD,KAAK2B,MAAQyB,KAE3BpD,KAAK2C,aACL7C,EAAA,SAAOuD,QAASrD,KAAKmC,iBACnBrC,EAAA,cAGFA,EAAA,eAGHgC,GACChC,EAACC,EAAQ,MACLC,KAAKwC,WACL1C,EAAA,mBACEgB,OAAQd,KAAKe,WACbuC,YAAclD,GAAOJ,KAAKe,WAAaX,EAAEmD,OAAOzC,WAMzDgB,GACChC,EAAA,YACEoC,GAAIJ,GAAW9B,KAAKwC,UAAYxC,KAAKyC,cAAgBC,UACrDzC,MAAOD,KAAKwC,UACZ1B,OAAQd,KAAKe,WACbyC,WAAY,IAAOxD,KAAKe,WAAa,OAErCjB,EAAA,WACEA,EAAA,QAAMuC,KAAK,W,CAQf,aAAAF,G,MACN,OAAOlB,EAAAjB,KAAKyD,cAAU,MAAAxC,SAAA,EAAAA,EAAIjB,KAAKW,kB"}
@@ -1,2 +0,0 @@
1
- import{r as s,c as o,h as e,F as d,a as r}from"./p-3ca5b6f4.js";import{c as i}from"./p-c87b4d11.js";import{d as a}from"./p-1805f5b0.js";import{i as t}from"./p-9747c291.js";const n=".sc-dso-header-h{display:block}.dso-header.sc-dso-header{border-bottom:1px solid #ccc;display:flex;flex-wrap:wrap;position:relative}@media screen and (min-width: 768px){.dso-header.sc-dso-header{align-items:center}}@media screen and (max-width: 991px){.dso-header.use-drop-down.sc-dso-header{flex-wrap:nowrap}}.dso-header.sc-dso-header .dso-nav.sc-dso-header{border:0}.logo-container.sc-dso-header{display:flex;flex-wrap:wrap;gap:0 24px;padding-bottom:16px;padding-top:16px}.login.sc-dso-header .dso-tertiary.sc-dso-header,.logout.sc-dso-header .dso-tertiary.sc-dso-header{cursor:pointer;font-family:Asap, sans-serif;font-weight:600;vertical-align:text-bottom}.profile.sc-dso-header a.sc-dso-header,.logout.sc-dso-header a.sc-dso-header,.login.sc-dso-header a.sc-dso-header{text-decoration:none;color:#39870c;font-weight:600}.profile.sc-dso-header a.sc-dso-header:hover,.profile.sc-dso-header a.sc-dso-header:focus,.logout.sc-dso-header a.sc-dso-header:hover,.logout.sc-dso-header a.sc-dso-header:focus,.login.sc-dso-header a.sc-dso-header:hover,.login.sc-dso-header a.sc-dso-header:focus{text-decoration:none}.profile.sc-dso-header a.sc-dso-header:active,.logout.sc-dso-header a.sc-dso-header:active,.login.sc-dso-header a.sc-dso-header:active{text-decoration:underline}.profile.sc-dso-header a.sc-dso-header:focus,.logout.sc-dso-header a.sc-dso-header:focus,.login.sc-dso-header a.sc-dso-header:focus{color:#fff}.dso-header-session.sc-dso-header{display:flex;margin-left:auto}.dso-header-session.sc-dso-header .profile.sc-dso-header a.sc-dso-header{margin-left:8px}.dso-header-session.sc-dso-header .profile.sc-dso-header+.logout.sc-dso-header{border-left:3px solid #ccc;margin-left:16px;padding-left:16px}.dso-navbar.sc-dso-header{flex-basis:100%}.dso-navbar.sc-dso-header .dso-dropdown-options.sc-dso-header{border-top:1px solid #ccc}dso-dropdown-menu.sc-dso-header button.sc-dso-header{align-items:flex-end;background-color:transparent;border:0;display:flex;font-family:Asap, sans-serif;padding-right:32px}dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header{border:0;border-radius:0}@media screen and (min-width: 768px){dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header{width:375px}}@media screen and (max-width: 767px){dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header{width:100%}}dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header a.sc-dso-header,dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header button.sc-dso-header{color:#275937;font-size:1.25rem;padding:16px;white-space:pre-wrap}dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header a.sc-dso-header:focus,dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header button.sc-dso-header:focus{color:#fff}dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header a.sc-dso-header:hover,dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header button.sc-dso-header:hover{background-color:#fff;color:#275937;text-decoration:underline}dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.dso-active.sc-dso-header a.sc-dso-header{font-weight:600}dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header ul.sc-dso-header li.sc-dso-header+li.sc-dso-header{border-top:1px solid #ccc}.dropdown.sc-dso-header{margin-left:auto}.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header{position:static}@media screen and (max-width: 767px){.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header{margin-top:28px}}.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header{right:0;top:100%}.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header>button.sc-dso-header{color:#39870c;font-size:16px;font-weight:600;line-height:normal;position:relative}.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header>button.sc-dso-header::after{margin-left:8px;position:absolute;right:0px;top:50%;transform:translateY(-50%)}.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header>button.sc-dso-header:hover,.dropdown.sc-dso-header dso-dropdown-menu.sc-dso-header>button.sc-dso-header:active{cursor:pointer;text-decoration:underline}.dso-nav.sc-dso-header{align-items:end;column-gap:32px;display:flex;list-style:none;margin-bottom:0;margin-top:0;padding-left:0}.dso-nav.sc-dso-header>li.sc-dso-header{margin-bottom:4px}.dso-nav.sc-dso-header>li.sc-dso-header>a.sc-dso-header{display:block}.dso-nav.sc-dso-header>li.sc-dso-header>a.sc-dso-header,.dso-nav.sc-dso-header>li.sc-dso-header>a.sc-dso-header:hover,.dso-nav.sc-dso-header>li.sc-dso-header>a.sc-dso-header:focus,.dso-nav.sc-dso-header>li.sc-dso-header>a.sc-dso-header:visited{color:#275937}.dso-nav.sc-dso-header>li.dso-active.sc-dso-header,.dso-nav.sc-dso-header>li.is-active.sc-dso-header{margin-bottom:0}.dso-nav.sc-dso-header>li.dso-active.sc-dso-header>a.sc-dso-header,.dso-nav.sc-dso-header>li.is-active.sc-dso-header>a.sc-dso-header{border-bottom:4px solid #8b4a6a;font-weight:bold}.dso-nav.dso-nav-main.sc-dso-header{display:flex !important}.dso-nav.dso-nav-main.sc-dso-header>li.sc-dso-header>a.sc-dso-header{text-decoration:none;font-size:1.25em;line-height:1;margin-top:8px;padding:16px 0;white-space:nowrap}.dso-nav.dso-nav-main.sc-dso-header>li.sc-dso-header>a.sc-dso-header:hover,.dso-nav.dso-nav-main.sc-dso-header>li.sc-dso-header>a.sc-dso-header:focus,.dso-nav.dso-nav-main.sc-dso-header>li.sc-dso-header>a.sc-dso-header:active{text-decoration:underline}.dso-nav.dso-nav-main.sc-dso-header dso-dropdown-menu.sc-dso-header .dso-dropdown-options.sc-dso-header{left:-1rem !important;top:3px !important}.dso-nav.dso-nav-main.sc-dso-header dso-dropdown-menu.sc-dso-header button.sc-dso-header{font-size:1.25em;line-height:1;margin-top:8px;padding:16px 0;align-items:center;color:#275937;padding-right:32px}.dso-nav.dso-nav-main.sc-dso-header dso-dropdown-menu.sc-dso-header button.sc-dso-header:hover,.dso-nav.dso-nav-main.sc-dso-header dso-dropdown-menu.sc-dso-header button.sc-dso-header:active{cursor:pointer;text-decoration:underline}.dso-nav.dso-nav-main.sc-dso-header dso-dropdown-menu.sc-dso-header button.sc-dso-header::after{margin-left:8px;position:absolute;right:0px;top:auto;transform:none}.dso-nav.sc-dso-header .menu-user-home.sc-dso-header{margin-left:auto}.dso-nav.sc-dso-header .menu-user-home.sc-dso-header dso-icon.sc-dso-header{height:1em;margin-right:8px;position:relative;top:-2px;width:1.2em}";const h=992;const c=class{constructor(d){s(this,d);this.dsoHeaderClick=o(this,"dsoHeaderClick",7);this.onWindowResize=a((()=>{var s,o;(s=this.dropdownElement)===null||s===void 0?void 0:s.removeAttribute("open");(o=this.dropdownElement)===null||o===void 0?void 0:o.removeAttribute("tabindex");this.setDropDownMenu();this.setOverflowMenu();if(this.showDropDown){this.dropdownOptionsOffset=this.calculateDropdownOptionsOffset()}}),100);this.MenuItem=s=>e("li",{class:s.active?"dso-active":undefined},e("a",{href:s.url,"aria-current":s.active?"page":undefined,onClick:o=>this.clickHandler(o,"menuItem",{menuItem:s})},s.label));this.mainMenu=[];this.useDropDownMenu="auto";this.authStatus="none";this.loginUrl=undefined;this.logoutUrl=undefined;this.userProfileName=undefined;this.userProfileUrl=undefined;this.userHomeUrl=undefined;this.userHomeActive=undefined;this.showDropDown=undefined;this.hasSubLogo=false;this.overflowMenuItems=0;this.dropdownOptionsOffset=0}clickHandler(s,o,e){var d,r;this.dsoHeaderClick.emit({originalEvent:s,isModifiedEvent:t(s),type:o,menuItem:e===null||e===void 0?void 0:e.menuItem,url:(d=e===null||e===void 0?void 0:e.url)!==null&&d!==void 0?d:(r=e===null||e===void 0?void 0:e.menuItem)===null||r===void 0?void 0:r.url})}setShowDropDown(s){if(s==="auto"){this.setDropDownMenu();return}this.showDropDown=s==="always"}componentWillLoad(){this.hasSubLogo=this.host.querySelector("*[slot = 'sub-logo']")!==null}shrinkMenuToFit(){if(!this.wrapper||!this.nav){return}if(this.wrapper.clientWidth>=this.nav.clientWidth){return}if(this.mainMenu&&this.overflowMenuItems>=this.mainMenu.length){return}this.overflowMenuItems++}componentDidRender(){if(this.showDropDown){this.dropdownOptionsOffset=this.calculateDropdownOptionsOffset();return}window.setTimeout((()=>this.shrinkMenuToFit()),0)}componentDidLoad(){this.setShowDropDown(this.useDropDownMenu);if(this.showDropDown){this.dropdownOptionsOffset=this.calculateDropdownOptionsOffset()}}setOverflowMenu(){if(this.showDropDown){return}if(this.overflowMenuItems!==0){this.overflowMenuItems=0;return}this.shrinkMenuToFit()}setDropDownMenu(){if(this.useDropDownMenu!=="auto"){return}this.showDropDown=window.innerWidth<h}calculateDropdownOptionsOffset(){var s;if(!this.dropdownElement){return 0}return this.host.clientHeight-(((s=this.dropdownElement)===null||s===void 0?void 0:s.getBoundingClientRect().bottom)-this.host.getBoundingClientRect().top)}connectedCallback(){window.addEventListener("resize",this.onWindowResize)}disconnectedCallback(){window.removeEventListener("resize",this.onWindowResize)}render(){if(this.showDropDown===undefined){return}return e(d,null,e("div",{class:i("dso-header",{["use-drop-down"]:this.showDropDown,["has-sub-logo"]:this.hasSubLogo}),ref:s=>this.wrapper=s},e("div",{class:"logo-container"},e("div",{class:"logo"},e("slot",{name:"logo"})),e("div",{class:"sub-logo"},e("slot",{name:"sub-logo"}))),this.showDropDown&&this.mainMenu&&(this.mainMenu.length>0||this.userHomeUrl||this.authStatus!=="none")&&e("div",{class:"dropdown"},e("dso-dropdown-menu",{"dropdown-align":"right",strategy:"absolute",dropdownOptionsOffset:this.dropdownOptionsOffset,ref:s=>this.dropdownElement=s},e("button",{type:"button",slot:"toggle"},e("span",null,"Menu")),e("div",{class:"dso-dropdown-options"},e("ul",null,this.mainMenu.map(this.MenuItem),this.userHomeUrl&&e("li",null,e("a",{href:this.userHomeUrl,onClick:s=>this.clickHandler(s,"userHome",{url:this.userHomeUrl})},"Mijn Omgevingsloket")),this.userProfileUrl&&this.userProfileName&&this.authStatus==="loggedIn"&&e("li",null,e("a",{href:this.userProfileUrl,onClick:s=>this.clickHandler(s,"profile",{url:this.userProfileUrl})},this.userProfileName,e("span",{class:"profile-label"}," - Mijn profiel"))),this.authStatus==="loggedOut"&&e("li",null,this.loginUrl?e("a",{href:this.loginUrl,onClick:s=>this.clickHandler(s,"login",{url:this.loginUrl})},"Inloggen"):e("button",{type:"button",onClick:s=>this.clickHandler(s,"login")},"Inloggen")),this.authStatus==="loggedIn"&&e("li",null,this.logoutUrl?e("a",{href:this.logoutUrl,onClick:s=>this.clickHandler(s,"logout",{url:this.logoutUrl})},"Uitloggen"):e("button",{type:"button",onClick:s=>this.clickHandler(s,"logout")},"Uitloggen")))))),!this.showDropDown&&e(d,null,e("div",{class:"dso-header-session"},this.userProfileUrl&&this.userProfileName&&this.authStatus==="loggedIn"&&e("div",{class:"profile"},e("span",{class:"profile-label"},"Welkom:"),e("a",{href:this.userProfileUrl,onClick:s=>this.clickHandler(s,"profile",{url:this.userProfileUrl})},this.userProfileName)),this.authStatus==="loggedOut"&&e("div",{class:"login"},this.loginUrl?e("a",{href:this.loginUrl,onClick:s=>this.clickHandler(s,"login",{url:this.loginUrl})},"Inloggen"):e("button",{class:"dso-tertiary",type:"button",onClick:s=>this.clickHandler(s,"login")},"Inloggen")),this.authStatus==="loggedIn"&&e("div",{class:"logout"},this.logoutUrl?e("a",{href:this.logoutUrl,onClick:s=>this.clickHandler(s,"logout",{url:this.logoutUrl})},"Uitloggen"):e("button",{class:"dso-tertiary",type:"button",onClick:s=>this.clickHandler(s,"logout")},"Uitloggen"))),(this.mainMenu&&this.mainMenu.length>0||this.userHomeUrl)&&e("nav",{class:"dso-navbar"},e("ul",{class:"dso-nav dso-nav-main",ref:s=>this.nav=s},this.mainMenu&&this.mainMenu.filter(((s,o)=>this.mainMenu&&o<this.mainMenu.length-this.overflowMenuItems)).map(this.MenuItem),this.overflowMenuItems>0&&e("li",null,e("dso-dropdown-menu",{placement:"bottom"},e("button",{type:"button",slot:"toggle"},e("span",null,"Meer")),e("div",{class:"dso-dropdown-options"},e("ul",null,this.mainMenu&&this.mainMenu.filter(((s,o)=>this.mainMenu&&o>=this.mainMenu.length-this.overflowMenuItems)).map(this.MenuItem))))),this.userHomeUrl&&e("li",{class:i("menu-user-home",{"dso-active":this.userHomeActive})},e("a",{href:this.userHomeUrl,"aria-current":this.userHomeActive?"page":undefined,onClick:s=>this.clickHandler(s,"userHome",{url:this.userHomeUrl})},e("dso-icon",{icon:"user-line"}),"Mijn Omgevingsloket")))))))}get host(){return r(this)}static get watchers(){return{useDropDownMenu:["setShowDropDown"]}}};c.style=n;export{c as dso_header};
2
- //# sourceMappingURL=p-51cfeed4.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["headerCss","minDesktopViewportWidth","Header","this","onWindowResize","debounce","_a","dropdownElement","removeAttribute","_b","setDropDownMenu","setOverflowMenu","showDropDown","dropdownOptionsOffset","calculateDropdownOptionsOffset","MenuItem","item","h","class","active","undefined","href","url","onClick","e","clickHandler","menuItem","label","type","options","dsoHeaderClick","emit","originalEvent","isModifiedEvent","setShowDropDown","value","componentWillLoad","hasSubLogo","host","querySelector","shrinkMenuToFit","wrapper","nav","clientWidth","mainMenu","overflowMenuItems","length","componentDidRender","window","setTimeout","componentDidLoad","useDropDownMenu","innerWidth","clientHeight","getBoundingClientRect","bottom","top","connectedCallback","addEventListener","disconnectedCallback","removeEventListener","render","Fragment","clsx","ref","element","name","userHomeUrl","authStatus","strategy","slot","map","userProfileUrl","userProfileName","loginUrl","logoutUrl","filter","_","index","placement","userHomeActive","icon"],"sources":["src/components/header/header.scss?tag=dso-header&encapsulation=scoped","src/components/header/header.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n\r\n@use \"header.variables\" as core-header-variables;\r\n\r\n@mixin nav-item-border($color) {\r\n border-bottom: 4px solid $color;\r\n}\r\n\r\n@mixin nav-item-main {\r\n font-size: 1.25em;\r\n line-height: 1;\r\n margin-top: units.$u1;\r\n padding: units.$u2 0;\r\n}\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n.dso-header {\r\n border-bottom: 1px solid colors.$grijs-20;\r\n display: flex;\r\n flex-wrap: wrap;\r\n position: relative;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n align-items: center;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n &.use-drop-down {\r\n flex-wrap: nowrap;\r\n }\r\n }\r\n\r\n .dso-nav {\r\n border: 0;\r\n }\r\n}\r\n\r\n.logo-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0 units.$u3;\r\n padding-bottom: units.$u2;\r\n padding-top: units.$u2;\r\n}\r\n\r\n.login,\r\n.logout {\r\n .dso-tertiary {\r\n cursor: pointer;\r\n font-family: typography.$font-family-base;\r\n font-weight: 600;\r\n vertical-align: text-bottom;\r\n }\r\n}\r\n\r\n.profile,\r\n.logout,\r\n.login {\r\n a {\r\n @include anchor.clean();\r\n\r\n color: colors.$grasgroen;\r\n font-weight: 600;\r\n\r\n &:focus {\r\n color: colors.$wit;\r\n }\r\n }\r\n}\r\n\r\n.dso-header-session {\r\n display: flex;\r\n margin-left: auto;\r\n\r\n .profile {\r\n a {\r\n margin-left: units.$u1;\r\n }\r\n\r\n + .logout {\r\n border-left: 3px solid colors.$grijs-20;\r\n margin-left: units.$u2;\r\n padding-left: units.$u2;\r\n }\r\n }\r\n}\r\n\r\n.dso-navbar {\r\n flex-basis: 100%;\r\n\r\n .dso-dropdown-options {\r\n border-top: 1px solid colors.$grijs-20;\r\n }\r\n}\r\n\r\ndso-dropdown-menu {\r\n button {\r\n align-items: flex-end;\r\n background-color: transparent;\r\n border: 0;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n padding-right: units.$u4;\r\n }\r\n\r\n .dso-dropdown-options {\r\n border: 0;\r\n border-radius: 0;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n width: 375px;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n width: 100%;\r\n }\r\n\r\n ul li {\r\n a,\r\n button {\r\n color: colors.$bosgroen;\r\n font-size: 1.25rem;\r\n padding: units.$u2;\r\n white-space: pre-wrap;\r\n\r\n &:focus {\r\n color: colors.$wit;\r\n }\r\n\r\n &:hover {\r\n background-color: colors.$wit;\r\n color: colors.$bosgroen;\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n &.dso-active {\r\n a {\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n + li {\r\n border-top: 1px solid colors.$grijs-20;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dropdown {\r\n margin-left: auto;\r\n\r\n dso-dropdown-menu {\r\n position: static;\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n margin-top: units.$u1 * 3.5;\r\n }\r\n\r\n .dso-dropdown-options {\r\n right: 0;\r\n top: 100%;\r\n }\r\n\r\n > button {\r\n color: colors.$grasgroen;\r\n font-size: typography.$font-size-base;\r\n font-weight: 600;\r\n line-height: normal;\r\n position: relative;\r\n\r\n &::after {\r\n margin-left: units.$u1;\r\n position: absolute;\r\n right: 0px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-nav {\r\n align-items: end;\r\n column-gap: units.$u4;\r\n display: flex;\r\n list-style: none;\r\n margin-bottom: 0;\r\n margin-top: 0;\r\n padding-left: 0;\r\n\r\n > li {\r\n margin-bottom: 4px;\r\n\r\n > a {\r\n display: block;\r\n\r\n &,\r\n &:hover,\r\n &:focus,\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n &.dso-active,\r\n &.is-active {\r\n margin-bottom: 0;\r\n\r\n > a {\r\n @include nav-item-border(core-header-variables.$navigation-selected-color);\r\n\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n\r\n &.dso-nav-main {\r\n display: flex !important;\r\n\r\n > li {\r\n > a {\r\n @include anchor.reverse();\r\n @include nav-item-main();\r\n\r\n // stylelint-disable-next-line declaration-property-value-disallowed-list -- no wrapping wanted because of icon\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n dso-dropdown-menu {\r\n .dso-dropdown-options {\r\n left: units.$ru2 * -1 !important;\r\n top: 3px !important;\r\n }\r\n\r\n button {\r\n @include nav-item-main();\r\n\r\n align-items: center;\r\n color: colors.$bosgroen;\r\n padding-right: units.$u4;\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n\r\n &::after {\r\n margin-left: units.$u1;\r\n position: absolute;\r\n right: 0px;\r\n top: auto;\r\n transform: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-user-home {\r\n margin-left: auto;\r\n\r\n dso-icon {\r\n height: 1em;\r\n margin-right: units.$u1;\r\n position: relative;\r\n top: -2px;\r\n width: 1.2em;\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, h, Prop, State, Watch } from \"@stencil/core\";\r\n\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { HeaderMenuItem, HeaderNavigationType, HeaderEvent } from \"./header.interfaces\";\r\n\r\nconst minDesktopViewportWidth = 992;\r\n\r\n@Component({\r\n tag: \"dso-header\",\r\n styleUrl: \"header.scss\",\r\n scoped: true,\r\n})\r\nexport class Header {\r\n private clickHandler(\r\n e: MouseEvent,\r\n type: HeaderNavigationType,\r\n options?: { menuItem?: HeaderMenuItem; url?: string }\r\n ) {\r\n this.dsoHeaderClick.emit({\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n type,\r\n menuItem: options?.menuItem,\r\n url: options?.url ?? options?.menuItem?.url,\r\n });\r\n }\r\n\r\n private dropdownElement?: HTMLElement;\r\n\r\n @Element()\r\n host!: HTMLDsoHeaderElement;\r\n\r\n /**\r\n * The main menu items.\r\n */\r\n @Prop()\r\n mainMenu?: HeaderMenuItem[] = [];\r\n\r\n /**\r\n * Either have the dropdown menu appear automatically or always.\r\n */\r\n @Prop()\r\n useDropDownMenu: \"always\" | \"auto\" = \"auto\";\r\n\r\n /**\r\n * Used to show the login/logout option. 'none' renders nothing.\r\n */\r\n @Prop()\r\n authStatus: \"none\" | \"loggedIn\" | \"loggedOut\" = \"none\";\r\n\r\n /**\r\n * When the `authStatus` is `loggedOut` a loginUrl can be provided, the login button will render as an anchor.\r\n */\r\n @Prop()\r\n loginUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"logout\".\r\n */\r\n @Prop()\r\n logoutUrl?: string;\r\n\r\n /**\r\n * The name to show when the user is logged in.\r\n */\r\n @Prop()\r\n userProfileName?: string;\r\n\r\n /**\r\n * The URL to open when the user activates the profile url.\r\n */\r\n @Prop()\r\n userProfileUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeUrl?: string;\r\n\r\n /**\r\n * Set this to true when the user is at \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeActive?: boolean;\r\n\r\n @State()\r\n showDropDown?: boolean;\r\n\r\n @State()\r\n hasSubLogo = false;\r\n\r\n @State()\r\n overflowMenuItems = 0;\r\n\r\n @State()\r\n dropdownOptionsOffset = 0;\r\n\r\n /**\r\n * Emitted when something in the header is selected.\r\n *\r\n * `event.detail.type` indicates the functionality the user pressed. eg. `'login'` or `'menuItem'`\r\n */\r\n @Event()\r\n dsoHeaderClick!: EventEmitter<HeaderEvent>;\r\n\r\n @Watch(\"useDropDownMenu\")\r\n setShowDropDown(value: \"always\" | \"auto\") {\r\n if (value === \"auto\") {\r\n this.setDropDownMenu();\r\n\r\n return;\r\n }\r\n\r\n this.showDropDown = value === \"always\";\r\n }\r\n\r\n private wrapper: HTMLDivElement | undefined;\r\n\r\n private nav: HTMLUListElement | undefined;\r\n\r\n componentWillLoad() {\r\n this.hasSubLogo = this.host.querySelector(\"*[slot = 'sub-logo']\") !== null;\r\n }\r\n\r\n private shrinkMenuToFit() {\r\n if (!this.wrapper || !this.nav) {\r\n return;\r\n }\r\n\r\n if (this.wrapper.clientWidth >= this.nav.clientWidth) {\r\n return;\r\n }\r\n\r\n if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {\r\n return;\r\n }\r\n\r\n this.overflowMenuItems++;\r\n }\r\n\r\n componentDidRender() {\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n\r\n return;\r\n }\r\n\r\n window.setTimeout(() => this.shrinkMenuToFit(), 0);\r\n }\r\n\r\n componentDidLoad() {\r\n this.setShowDropDown(this.useDropDownMenu);\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }\r\n\r\n private setOverflowMenu() {\r\n if (this.showDropDown) {\r\n return;\r\n }\r\n\r\n if (this.overflowMenuItems !== 0) {\r\n this.overflowMenuItems = 0;\r\n return;\r\n }\r\n\r\n this.shrinkMenuToFit();\r\n }\r\n\r\n private setDropDownMenu() {\r\n if (this.useDropDownMenu !== \"auto\") {\r\n return;\r\n }\r\n\r\n this.showDropDown = window.innerWidth < minDesktopViewportWidth;\r\n }\r\n\r\n private calculateDropdownOptionsOffset() {\r\n if (!this.dropdownElement) {\r\n return 0;\r\n }\r\n\r\n return (\r\n this.host.clientHeight -\r\n (this.dropdownElement?.getBoundingClientRect().bottom - this.host.getBoundingClientRect().top)\r\n );\r\n }\r\n\r\n private onWindowResize = debounce(() => {\r\n this.dropdownElement?.removeAttribute(\"open\");\r\n this.dropdownElement?.removeAttribute(\"tabindex\");\r\n\r\n this.setDropDownMenu();\r\n this.setOverflowMenu();\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }, 100);\r\n\r\n connectedCallback() {\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n disconnectedCallback() {\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n private MenuItem = (item: HeaderMenuItem) => {\r\n return (\r\n <li class={item.active ? \"dso-active\" : undefined}>\r\n <a\r\n href={item.url}\r\n aria-current={item.active ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"menuItem\", { menuItem: item })}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n );\r\n };\r\n\r\n render() {\r\n // Prevent 'flickering' when useDropDownMenu = 'always'\r\n if (this.showDropDown === undefined) {\r\n return;\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n class={clsx(\"dso-header\", {\r\n [\"use-drop-down\"]: this.showDropDown,\r\n [\"has-sub-logo\"]: this.hasSubLogo,\r\n })}\r\n ref={(element) => (this.wrapper = element)}\r\n >\r\n <div class=\"logo-container\">\r\n <div class=\"logo\">\r\n <slot name=\"logo\" />\r\n </div>\r\n <div class=\"sub-logo\">\r\n <slot name=\"sub-logo\" />\r\n </div>\r\n </div>\r\n {this.showDropDown &&\r\n this.mainMenu &&\r\n (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== \"none\") && (\r\n <div class=\"dropdown\">\r\n <dso-dropdown-menu\r\n dropdown-align=\"right\"\r\n strategy=\"absolute\"\r\n dropdownOptionsOffset={this.dropdownOptionsOffset}\r\n ref={(element) => (this.dropdownElement = element)}\r\n >\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>Menu</span>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu.map(this.MenuItem)}\r\n {this.userHomeUrl && (\r\n <li>\r\n <a\r\n href={this.userHomeUrl}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n Mijn Omgevingsloket\r\n </a>\r\n </li>\r\n )}\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <li>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n <span class=\"profile-label\"> - Mijn profiel</span>\r\n </a>\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <li>\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n Inloggen\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n Inloggen\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <li>\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n Uitloggen\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n Uitloggen\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </div>\r\n )}\r\n {!this.showDropDown && (\r\n <>\r\n <div class=\"dso-header-session\">\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <div class=\"profile\">\r\n <span class=\"profile-label\">Welkom:</span>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n </a>\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <div class=\"login\">\r\n {this.loginUrl ? (\r\n <a href={this.loginUrl} onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}>\r\n Inloggen\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n Inloggen\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <div class=\"logout\">\r\n {this.logoutUrl ? (\r\n <a href={this.logoutUrl} onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}>\r\n Uitloggen\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n Uitloggen\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n {((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-main\" ref={(element) => (this.nav = element)}>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)\r\n .map(this.MenuItem)}\r\n {this.overflowMenuItems > 0 && (\r\n <li>\r\n <dso-dropdown-menu placement=\"bottom\">\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>Meer</span>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter(\r\n (_, index) =>\r\n this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems\r\n )\r\n .map(this.MenuItem)}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </li>\r\n )}\r\n {this.userHomeUrl && (\r\n <li class={clsx(\"menu-user-home\", { \"dso-active\": this.userHomeActive })}>\r\n <a\r\n href={this.userHomeUrl}\r\n aria-current={this.userHomeActive ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n <dso-icon icon=\"user-line\"></dso-icon>\r\n Mijn Omgevingsloket\r\n </a>\r\n </li>\r\n )}\r\n </ul>\r\n </nav>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s,F as i,a as e}from"./p-3ca5b6f4.js";const o="*,*::after,*::before{box-sizing:border-box}:host{display:inline-block}:host(:focus){outline:none}";const h=class{constructor(s){t(this,s);this.click=()=>{this.active?this.close():this.open()};this.open=()=>{this.active=true;this.host.addEventListener("keydown",this.keyDownListener);this.host.addEventListener("focusout",this.focusOutListener)};this.close=()=>{this.host.removeEventListener("focusout",this.focusOutListener);this.host.removeEventListener("keydown",this.keyDownListener);this.active=false};this.focusOutListener=t=>{if(!this.host.contains(t.relatedTarget)){this.close()}};this.keyDownListener=t=>{var s;if(!t.defaultPrevented&&t.key==="Escape"){this.close();(s=this.infoButton)===null||s===void 0?void 0:s.setFocus();t.preventDefault()}return};this.active=false;this.label="Toelichting";this.position="right";this.small=undefined;this.secondary=undefined}render(){return s(i,null,s("dso-info-button",{"aria-describedby":"toggle",onClick:this.click,label:this.label,active:this.active,secondary:this.secondary,ref:t=>this.infoButton=t}),s("dso-tooltip",{stateless:true,descriptive:true,id:"toggle",strategy:"absolute",active:this.active,position:this.position,small:this.small},s("slot",null)))}get host(){return e(this)}};h.style=o;export{h as dso_toggletip};
2
- //# sourceMappingURL=p-95b70498.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["toggletipCss","Toggletip","this","click","active","close","open","host","addEventListener","keyDownListener","focusOutListener","removeEventListener","event","contains","relatedTarget","defaultPrevented","key","_a","infoButton","setFocus","preventDefault","render","h","Fragment","onClick","label","secondary","ref","element","stateless","descriptive","id","strategy","position","small"],"sources":["src/components/toggletip/toggletip.scss?tag=dso-toggletip&encapsulation=shadow","src/components/toggletip/toggletip.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: inline-block;\r\n}\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n","import { h, Component, Fragment, Element, Prop, State } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-toggletip\",\r\n styleUrl: \"toggletip.scss\",\r\n shadow: true,\r\n})\r\nexport class Toggletip {\r\n @Element()\r\n host!: HTMLDsoToggletipElement;\r\n\r\n @State()\r\n active = false;\r\n\r\n /**\r\n * Toggletip label.\r\n */\r\n @Prop()\r\n label = \"Toelichting\";\r\n\r\n /**\r\n * Toggletip position.\r\n */\r\n @Prop()\r\n position: \"top\" | \"right\" | \"bottom\" | \"left\" = \"right\";\r\n\r\n /**\r\n * Set to true for small Toggletip.\r\n */\r\n @Prop()\r\n small?: boolean;\r\n\r\n /**\r\n * Set to true for secondary Toggletip.\r\n */\r\n @Prop()\r\n secondary?: boolean;\r\n\r\n private infoButton?: HTMLDsoInfoButtonElement;\r\n\r\n private click = () => {\r\n this.active ? this.close() : this.open();\r\n };\r\n\r\n private open = () => {\r\n this.active = true;\r\n this.host.addEventListener(\"keydown\", this.keyDownListener);\r\n this.host.addEventListener(\"focusout\", this.focusOutListener);\r\n };\r\n\r\n private close = () => {\r\n this.host.removeEventListener(\"focusout\", this.focusOutListener);\r\n this.host.removeEventListener(\"keydown\", this.keyDownListener);\r\n this.active = false;\r\n };\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (!this.host.contains(event.relatedTarget as Node)) {\r\n this.close();\r\n }\r\n };\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (!event.defaultPrevented && event.key === \"Escape\") {\r\n this.close();\r\n this.infoButton?.setFocus();\r\n event.preventDefault();\r\n }\r\n\r\n return;\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n <dso-info-button\r\n aria-describedby=\"toggle\"\r\n onClick={this.click}\r\n label={this.label}\r\n active={this.active}\r\n secondary={this.secondary}\r\n ref={(element) => (this.infoButton = element)}\r\n />\r\n <dso-tooltip\r\n stateless\r\n descriptive\r\n id=\"toggle\"\r\n strategy=\"absolute\"\r\n active={this.active}\r\n position={this.position}\r\n small={this.small}\r\n >\r\n <slot />\r\n </dso-tooltip>\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"yDAAA,MAAMA,EAAe,oG,MCORC,EAAS,M,yBAiCZC,KAAAC,MAAQ,KACdD,KAAKE,OAASF,KAAKG,QAAUH,KAAKI,MAAM,EAGlCJ,KAAAI,KAAO,KACbJ,KAAKE,OAAS,KACdF,KAAKK,KAAKC,iBAAiB,UAAWN,KAAKO,iBAC3CP,KAAKK,KAAKC,iBAAiB,WAAYN,KAAKQ,iBAAiB,EAGvDR,KAAAG,MAAQ,KACdH,KAAKK,KAAKI,oBAAoB,WAAYT,KAAKQ,kBAC/CR,KAAKK,KAAKI,oBAAoB,UAAWT,KAAKO,iBAC9CP,KAAKE,OAAS,KAAK,EAGbF,KAAAQ,iBAAoBE,IAC1B,IAAKV,KAAKK,KAAKM,SAASD,EAAME,eAAwB,CACpDZ,KAAKG,O,GAIDH,KAAAO,gBAAmBG,I,MACzB,IAAKA,EAAMG,kBAAoBH,EAAMI,MAAQ,SAAU,CACrDd,KAAKG,SACLY,EAAAf,KAAKgB,cAAU,MAAAD,SAAA,SAAAA,EAAEE,WACjBP,EAAMQ,gB,CAGR,Q,YAzDO,M,WAMD,c,cAMwC,Q,8CAgDhD,MAAAC,GACE,OACEC,EAAAC,EAAA,KACED,EAAA,sCACmB,SACjBE,QAAStB,KAAKC,MACdsB,MAAOvB,KAAKuB,MACZrB,OAAQF,KAAKE,OACbsB,UAAWxB,KAAKwB,UAChBC,IAAMC,GAAa1B,KAAKgB,WAAaU,IAEvCN,EAAA,eACEO,UAAS,KACTC,YAAW,KACXC,GAAG,SACHC,SAAS,WACT5B,OAAQF,KAAKE,OACb6B,SAAU/B,KAAK+B,SACfC,MAAOhC,KAAKgC,OAEZZ,EAAA,c"}
@@ -1,2 +0,0 @@
1
- import{h as e,r as t,c as s,H as i,a as o}from"./p-3ca5b6f4.js";import{c as d}from"./p-c19cfe3f.js";var a;(function(e){e[e["Sunday"]=0]="Sunday";e[e["Monday"]=1]="Monday";e[e["Tuesday"]=2]="Tuesday";e[e["Wednesday"]=3]="Wednesday";e[e["Thursday"]=4]="Thursday";e[e["Friday"]=5]="Friday";e[e["Saturday"]=6]="Saturday"})(a||(a={}));function n(e,t,s){const i=parseInt(s,10);const o=parseInt(t,10);const d=parseInt(e,10);const a=Number.isInteger(d)&&Number.isInteger(o)&&Number.isInteger(i)&&o>0&&o<=12&&i>0&&i<=31&&d>0;if(a){return new Date(d,o-1,i)}}function r(e){if(!e){return}const t=e.split("-");if(t.length===3&&typeof t[0]==="string"&&typeof t[1]==="string"&&typeof t[2]==="string"&&t[2].length===4){return n(t[2],t[1],t[0])}}function c(e){if(!e){return""}const t=e.getDate().toString(10).padStart(2,"0");const s=(e.getMonth()+1).toString(10).padStart(2,"0");const i=e.getFullYear().toString(10).padStart(2,"0");return`${t}-${s}-${i}`}function l(e,t){if(!e||!t){return false}return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function h(e,t){const s=new Date(e);s.setDate(s.getDate()+t);return s}function p(e,t=a.Monday){const s=new Date(e);const i=s.getDay();const o=(i<t?7:0)+i-t;s.setDate(s.getDate()-o);return s}function u(e,t=a.Monday){const s=new Date(e);const i=s.getDay();const o=(i<t?-7:0)+6-(i-t);s.setDate(s.getDate()+o);return s}function f(e){return new Date(e.getFullYear(),e.getMonth(),1)}function _(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function b(e,t){const s=new Date(e);s.setMonth(t);return s}function g(e,t){const s=new Date(e);s.setFullYear(t);return s}function m(e,t,s){return k(e,t,s)===e}function k(e,t,s){const i=e.getTime();if(t&&t instanceof Date&&i<t.getTime()){return t}if(s&&s instanceof Date&&i>s.getTime()){return s}return e}function x(e,t){const s=[];let i=e;while(!l(i,t)){s.push(i);i=h(i,1)}s.push(i);return s}function y(e,t=a.Monday){const s=p(f(e),t);const i=u(_(e),t);return x(s,i)}const v=({focusedDay:t,today:s,day:i,onDaySelect:o,onKeyboardNavigation:d,focusedDayRef:a,inRange:n})=>{const r=l(i,s);const h=l(i,t);const p=i.getMonth()!==t.getMonth();const u=!n;function f(e){o(e,i)}return e("button",{class:{"dso-date__day":true,"is-today":r},tabIndex:h?0:-1,onClick:f,onKeyDown:d,disabled:u||p,type:"button",ref:e=>{if(h&&e&&a){a(e)}}},e("span",{"aria-hidden":"true"},i.getDate()),e("span",{class:"dso-date__vhidden"},c(i)))};function w(e,t){const s=[];for(let i=0;i<e.length;i+=t){s.push(e.slice(i,i+t))}return s}function D(e,t,s){return e.map(((i,o)=>{const d=(o+t)%e.length;const a=e[d];if(!a){throw new Error("No item found")}return s(a)}))}const M=({selectedDate:t,focusedDate:s,labelledById:i,localization:o,firstDayOfWeek:d,min:a,max:n,onDateSelect:r,onKeyboardNavigation:c,focusedDayRef:h,onMouseDown:p,onFocusIn:u})=>{const f=new Date;const _=y(s,d);return e("table",{class:"dso-date__table",role:"grid","aria-labelledby":i,onFocusin:u,onMouseDown:p},e("thead",null,e("tr",null,D(o.dayNames,d,(t=>e("th",{class:"dso-date__table-header",scope:"col"},e("span",{"aria-hidden":"true"},t.substr(0,2)),e("span",{class:"dso-date__vhidden"},t)))))),e("tbody",null,w(_,7).map((i=>e("tr",{class:"dso-date__row"},i.map((i=>e("td",{class:"dso-date__cell",role:"gridcell","aria-selected":l(i,t)?"true":undefined,"aria-current":l(i,f)?"date":undefined},e(v,{day:i,today:f,focusedDay:s,inRange:m(i,a,n),onDaySelect:r,onKeyboardNavigation:c,focusedDayRef:h})))))))))};const z={buttonLabel:"Kies datum",placeholder:"dd-mm-jjjj",selectedDateMessage:"Geselecteerde datum is",prevMonthLabel:"Vorige maand",nextMonthLabel:"Volgende maand",monthSelectLabel:"Maand",yearSelectLabel:"Jaar",closeLabel:"Sluiten",keyboardInstruction:"Gebruik de pijltjestoetsen om een dag te kiezen",calendarHeading:"Kies een datum",dayNames:["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],monthNames:["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec"]};function N(e,t,s,i){if(s&&i){const{minYear:o,minMonth:d}={minYear:s.getFullYear(),minMonth:s.getMonth()};const{maxYear:a,maxMonth:n}={maxYear:i.getFullYear(),maxMonth:i.getMonth()};return e.monthNames.filter(((e,s)=>{if(o===t&&a===t){return s>=d&&s>=n}if(o===t){return s>=d}if(a===t){return s<=n}return true}))}if(s){const{minYear:i,minMonth:o}={minYear:s.getFullYear(),minMonth:s.getMonth()};return e.monthNames.filter(((e,s)=>i===t&&s>=o))}if(i){const{maxYear:s,maxMonth:o}={maxYear:i.getFullYear(),maxMonth:i.getMonth()};return e.monthNames.filter(((e,i)=>s===t&&i<=o))}return e.monthNames}function S(e,t){const s=[];for(let i=e;i<=t;i++){s.push(i)}return s}const T='.sc-dso-date-picker-h{display:block}[invalid].sc-dso-date-picker-h:not([invalid=false]) .dso-date__input.sc-dso-date-picker{border-color:#ce3f51}.dso-date.sc-dso-date-picker *.sc-dso-date-picker,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::before,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::after{box-sizing:border-box}.dso-date.sc-dso-date-picker{box-sizing:border-box;color:#191919;display:block;font-family:"Asap", sans-serif;margin:0;position:relative;text-align:left;width:100%}.dso-date.sc-dso-date-picker:not(.dso-visible) .dso-date__dialog.sc-dso-date-picker{display:none}.dso-date__input.sc-dso-date-picker{display:block;width:100%;height:40px;padding:6px 14px;font-size:1rem;line-height:1.5;color:#191919;background-color:#fff;background-image:none;border:1px solid #275937;border-radius:4px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.dso-date__input.sc-dso-date-picker::-moz-placeholder{color:#666;opacity:1}.dso-date__input.sc-dso-date-picker:-ms-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-webkit-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-ms-expand{background-color:transparent;border:0}.dso-date__input.sc-dso-date-picker:focus{border-color:#275937;outline:0;box-shadow:inset 0 0 0 1px #275937}.dso-date__input[disabled].sc-dso-date-picker,.dso-date__input[readonly].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{background-color:#fff;opacity:1}.dso-date__input[disabled].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{cursor:default}.dso-date__input[disabled].sc-dso-date-picker{border-color:#e5e5e5;color:#999}.dso-date__input[readonly].sc-dso-date-picker{border-width:1px}.dso-date__input[type=text].sc-dso-date-picker{line-height:40px}.dso-date__input[size].sc-dso-date-picker{width:auto}.dso-date__toggle.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:transparent;border:0;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#39870c;cursor:pointer;display:flex;height:38px;justify-content:center;padding:0;position:absolute;right:0;transform:translateY(-50%);top:50%;user-select:none;width:38px;z-index:101}.dso-date__toggle.sc-dso-date-picker:disabled{color:#afcf9d;cursor:default}.dso-date__dialog.sc-dso-date-picker{border-width:1px;display:flex;right:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;will-change:transform, opacity, visibility;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog.sc-dso-date-picker{background:rgba(25, 25, 25, 0.5);bottom:0;position:fixed;left:0;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.dso-date__dialog.is-left.sc-dso-date-picker{left:-11px;right:auto;width:auto}.dso-date__dialog.is-active.sc-dso-date-picker{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.dso-date__dialog-content.sc-dso-date-picker{background:#fff;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);margin-left:auto;margin-right:-1px;margin-top:8px;max-width:310px;min-width:290px;padding:16px;position:relative;transform:none;width:100%;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog-content.sc-dso-date-picker{border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active.sc-dso-date-picker .dso-date__dialog-content.sc-dso-date-picker{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.dso-date__table.sc-dso-date-picker{border-collapse:collapse;border-spacing:0;color:#191919;font-size:1rem;font-weight:400;line-height:1.25;min-width:280px;table-layout:fixed;text-align:center;width:100%}.dso-date__table-header.sc-dso-date-picker{font-size:0.875em;font-weight:600;height:36px;line-height:36px;text-align:center;text-decoration:none;text-transform:uppercase}.dso-date__cell.sc-dso-date-picker{height:40px;padding:1px;text-align:center;width:40px}.dso-date__day.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;box-shadow:0 0 0 1px transparent;color:#191919;cursor:pointer;display:inline-block;font-family:"Asap", sans-serif;font-variant-numeric:tabular-nums;font-weight:400;height:38px;line-height:0;padding:0;position:relative;text-align:center;vertical-align:middle;width:38px;z-index:100}.dso-date__day.is-today.sc-dso-date-picker{background:transparent;height:36px;box-shadow:0 0 0 1px #39870c;width:36px}.dso-date__day.sc-dso-date-picker:hover,.dso-date__day.sc-dso-date-picker:active{background:#39870c;color:#fff}.dso-date__day.sc-dso-date-picker:focus{background:transparent;box-shadow:0 0 0 2px #275937;color:#191919;height:34px;outline:0;width:34px}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker{background:#39870c;color:#fff}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus{background:transparent}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus span[aria-hidden=true].sc-dso-date-picker{background:#39870c;border:1px solid #fff;line-height:32px}.dso-date__day.sc-dso-date-picker:disabled{background:#fff;color:#ccc;cursor:default}.dso-date__day.sc-dso-date-picker span[aria-hidden=true].sc-dso-date-picker{border-radius:50%;display:inline-block;height:34px;line-height:34px;width:34px}.dso-date__header.sc-dso-date-picker{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.dso-date__header.sc-dso-date-picker span.sc-dso-date-picker{font-size:0.875rem}.dso-date__nav.sc-dso-date-picker{white-space:nowrap}.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:transparent;border:1px solid #39870c;border-radius:4px;box-sizing:border-box;color:#39870c;cursor:pointer;display:inline-flex;font-size:1em;height:32px;justify-content:center;margin-left:8px;padding:0;width:32px}@media (max-width: 35.9375em){.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{height:40px;width:40px}}.dso-date__prev.sc-dso-date-picker:hover,.dso-date__prev.sc-dso-date-picker:active,.dso-date__next.sc-dso-date-picker:hover,.dso-date__next.sc-dso-date-picker:active{background-color:#39870c;color:#fff}.dso-date__prev.sc-dso-date-picker:focus,.dso-date__next.sc-dso-date-picker:focus{background:transparent;color:#39870c}.dso-date__prev.sc-dso-date-picker:disabled,.dso-date__prev.sc-dso-date-picker:disabled:hover,.dso-date__next.sc-dso-date-picker:disabled,.dso-date__next.sc-dso-date-picker:disabled:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d;opacity:1}.dso-date__prev.sc-dso-date-picker svg.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker svg.sc-dso-date-picker{margin:0 auto}.dso-date__select.sc-dso-date-picker{display:inline-flex;height:28px;line-height:28px;position:relative}.dso-date__select.sc-dso-date-picker span.sc-dso-date-picker{margin-right:4px}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker{color:#275937;cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:101}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:focus+.dso-date__select-label.sc-dso-date-picker{box-shadow:0 0 0 2px #275937}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:disabled{color:#afcf9d}.dso-date__select-label.sc-dso-date-picker{align-items:center;border-radius:4px;color:#39870c;display:flex;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:100}.dso-date__select-label.sc-dso-date-picker span.sc-dso-date-picker{font-size:1.25rem;font-weight:600;line-height:1.25}.dso-date__select-label.sc-dso-date-picker svg.sc-dso-date-picker{width:16px;height:16px}.dso-date__mobile.sc-dso-date-picker{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;font-size:1em;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.dso-date__mobile.sc-dso-date-picker{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-16px;top:-16px;width:auto}}.dso-date__mobile-heading.sc-dso-date-picker{display:inline-block;font-weight:600;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.dso-date__mobile-heading.sc-dso-date-picker{display:none}}.dso-date__close.sc-dso-date-picker{-webkit-appearance:none;align-items:center;appearance:none;background-color:#fff;border:0;border-radius:50%;color:#39870c;cursor:pointer;display:flex;font-size:1em;height:32px;justify-content:center;margin-right:-4px;padding:0;width:32px}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker{margin-right:0;opacity:0}}.dso-date__close.sc-dso-date-picker:focus{box-shadow:0 0 0 2px #275937;outline:none}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker:focus{opacity:1}}.dso-date__vhidden.sc-dso-date-picker{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}';const Y={TAB:9,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40};const E=/[^0-9-]+/g;const j=300;function F(e,t){const s=e.value;const i=e.selectionStart;if(!i){return s}const o=s.slice(0,i);const d=s.slice(i,s.length);const a=o.replace(t,"");const n=d.replace(t,"");const r=a+n;const c=a.length;e.value=r;e.selectionStart=e.selectionEnd=c;return r}const K=class{constructor(e){t(this,e);this.dsoDateChange=s(this,"dsoDateChange",7);this.dsoBlur=s(this,"dsoBlur",7);this.dsoKeyUp=s(this,"dsoKeyUp",7);this.dsoKeyDown=s(this,"dsoKeyDown",7);this.dsoFocus=s(this,"dsoFocus",7);this.monthSelectId=d("DsoDateMonth");this.yearSelectId=d("DsoDateYear");this.dialogLabelId=d("DsoDateLabel");this.localization=z;this.firstDayOfWeek=a.Monday;this.enableActiveFocus=()=>{this.activeFocus=true};this.disableActiveFocus=()=>{this.activeFocus=false};this.toggleOpen=e=>{e.preventDefault();this.open?this.hide(false):this.show()};this.handleEscKey=e=>{if(e.keyCode===Y.ESC){this.hide()}};this.handleBlur=e=>{e.stopPropagation();this.dsoBlur.emit({component:"dso-date-picker"})};this.handleKeyUp=e=>{e.stopPropagation();this.dsoKeyUp.emit({component:"dso-date-picker",originalEvent:e})};this.handleKeyDown=e=>{e.stopPropagation();this.dsoKeyDown.emit({component:"dso-date-picker",originalEvent:e})};this.handleFocus=e=>{e.stopPropagation();this.dsoFocus.emit({component:"dso-date-picker"})};this.handleTouchStart=e=>{const t=e.changedTouches[0];if(!t){throw new Error("No touch found")}this.initialTouchX=t.pageX;this.initialTouchY=t.pageY};this.handleTouchMove=e=>{e.preventDefault()};this.handleTouchEnd=e=>{var t,s;const i=e.changedTouches[0];if(!i){throw new Error("No touch found")}const o=i.pageX-((t=this.initialTouchX)!==null&&t!==void 0?t:0);const d=i.pageY-((s=this.initialTouchY)!==null&&s!==void 0?s:0);const a=70;const n=Math.abs(o)>=a&&Math.abs(d)<=a;const r=Math.abs(d)>=a&&Math.abs(o)<=a&&d>0;if(n){this.addMonths(o<0?1:-1)}else if(r){this.hide(false);e.preventDefault()}this.initialTouchY=undefined;this.initialTouchX=undefined};this.handleNextMonthClick=e=>{e.preventDefault();this.addMonths(1)};this.handlePreviousMonthClick=e=>{e.preventDefault();this.addMonths(-1)};this.handleFirstFocusableKeydown=e=>{var t;if(e.keyCode===Y.TAB&&e.shiftKey){(t=this.focusedDayNode)===null||t===void 0?void 0:t.focus();e.preventDefault()}};this.handleKeyboardNavigation=e=>{var t;if(e.keyCode===Y.TAB&&!e.shiftKey){e.preventDefault();(t=this.firstFocusableElement)===null||t===void 0?void 0:t.focus();return}let s=true;switch(e.keyCode){case Y.RIGHT:this.addDays(1);break;case Y.LEFT:this.addDays(-1);break;case Y.DOWN:this.addDays(7);break;case Y.UP:this.addDays(-7);break;case Y.PAGE_UP:if(e.shiftKey){this.addYears(-1)}else{this.addMonths(-1)}break;case Y.PAGE_DOWN:if(e.shiftKey){this.addYears(1)}else{this.addMonths(1)}break;case Y.HOME:this.startOfWeek();break;case Y.END:this.endOfWeek();break;default:s=false}if(s){e.preventDefault();this.enableActiveFocus()}};this.handleDaySelect=(e,t)=>{if(!m(t,r(this.min),r(this.max))){return}if(t.getMonth()===this.focusedDay.getMonth()){this.setValue(t);this.hide()}else{this.setFocusedDay(t)}};this.handleMonthSelect=e=>{if(e.target instanceof HTMLSelectElement){this.setMonth(parseInt(e.target.value,10))}};this.handleYearSelect=e=>{if(e.target instanceof HTMLSelectElement){this.setYear(parseInt(e.target.value,10))}};this.handleInputChange=e=>{const t=e.target;const s=F(t,E);this.setValue(s)};this.prepareEvent=e=>{const t={component:"dso-date-picker",value:"",valueAsDate:undefined};if(e instanceof Date){t.valueAsDate=e}else{t.value=e;t.valueAsDate=r(e)}if(t.valueAsDate){t.value=c(t.valueAsDate)}if(!t.valueAsDate&&this.required){t.error="required"}if(t.value&&!t.valueAsDate){t.error="invalid"}if(t.valueAsDate&&(this.min||this.max)){const e=r(this.min);const s=r(this.max);const i=k(t.valueAsDate,e,s);if(i!==t.valueAsDate&&i===e){t.valueAsDate=undefined;t.error="min-range"}else if(i!==t.valueAsDate&&i===s){t.valueAsDate=undefined;t.error="max-range"}}return t};this.processFocusedDayNode=e=>{this.focusedDayNode=e;if(this.activeFocus&&this.open){setTimeout((()=>e.focus()),0)}};this.activeFocus=false;this.focusedDay=new Date;this.open=false;this.visible=false;this.name="date";this.identifier=undefined;this.disabled=false;this.role=null;this.direction="right";this.required=false;this.invalid=undefined;this.describedBy=undefined;this.dsoAutofocus=false;this.value="";this.min=undefined;this.max=undefined}handleDocumentClick(e){if(!this.open){return}const t=e.composedPath();for(const e of t){if(e instanceof Node&&this.element.contains(e)){return}}this.hide(false)}async setFocus(){var e;return(e=this.datePickerInput)===null||e===void 0?void 0:e.focus()}async show(){if(typeof this.hideTimeoutId!=="undefined"){clearTimeout(this.hideTimeoutId)}this.visible=true;setTimeout((()=>{this.open=true;this.setFocusedDay(r(this.value)||new Date);if(typeof this.focusTimeoutId!=="undefined"){clearTimeout(this.focusTimeoutId)}this.focusTimeoutId=setTimeout((()=>{var e;return(e=this.monthSelectNode)===null||e===void 0?void 0:e.focus()}),j)}))}async hide(e=true){this.open=false;if(typeof this.focusTimeoutId!=="undefined"){clearTimeout(this.focusTimeoutId)}this.hideTimeoutId=setTimeout((()=>{if(e&&this.datePickerButton){this.datePickerButton.focus()}this.visible=false}),j+200)}addDays(e){this.setFocusedDay(h(this.focusedDay,e))}addMonths(e){this.setMonth(this.focusedDay.getMonth()+e)}addYears(e){this.setYear(this.focusedDay.getFullYear()+e)}startOfWeek(){this.setFocusedDay(p(this.focusedDay,this.firstDayOfWeek))}endOfWeek(){this.setFocusedDay(u(this.focusedDay,this.firstDayOfWeek))}setMonth(e){const t=b(f(this.focusedDay),e);const s=_(t);const i=b(this.focusedDay,e);this.setFocusedDay(k(i,t,s))}setYear(e){const t=g(f(this.focusedDay),e);const s=_(t);const i=g(this.focusedDay,e);this.setFocusedDay(k(i,t,s))}setFocusedDay(e){this.focusedDay=k(e,r(this.min),r(this.max))}setValue(e){const t=this.prepareEvent(e);this.value=typeof e==="string"?e:t.value;if(this.value!==this.previousValue){this.dsoDateChange.emit(t);this.previousValue=this.value}}componentWillLoad(){const e=r(this.min);const t=r(this.max);if(e&&e>this.focusedDay){this.focusedDay=e}if(t&&t<this.focusedDay){this.focusedDay=t}}componentDidLoad(){const e=r(this.value);if(e){this.previousValue=this.value=c(e)}if(this.dsoAutofocus){this.setFocus()}}render(){var t,s;const o=r(this.value);const d=o&&c(o);const a=(o||this.focusedDay).getFullYear();const n=this.focusedDay.getMonth();const l=this.focusedDay.getFullYear();const h=r(this.min);const p=r(this.max);const u=h&&h.getMonth()===n&&h.getFullYear()===l;const f=p&&p.getMonth()===n&&p.getFullYear()===l;let _=a-10;let b=a+10;if(h){_=Math.max(_,h.getFullYear())}if(p){b=Math.min(b,p.getFullYear())}return e(i,null,e("div",{class:{"dso-date":true,"dso-visible":this.visible}},e("div",{class:"dso-date__input-wrapper"},e("input",{class:"dso-date__input",value:this.value,placeholder:this.localization.placeholder,id:this.identifier,disabled:this.disabled,role:(t=this.role)!==null&&t!==void 0?t:undefined,required:this.required?true:undefined,"aria-autocomplete":"none","aria-invalid":(s=this.invalid)===null||s===void 0?void 0:s.toString(),"aria-describedby":this.describedBy,onInput:this.handleInputChange,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown,autoComplete:"off",ref:e=>this.datePickerInput=e}),e("button",{type:"button",class:"dso-date__toggle",onClick:this.toggleOpen,disabled:this.disabled,ref:e=>this.datePickerButton=e},e("span",{class:"dso-date__toggle-icon"},e("dso-icon",{icon:"calendar"})),e("span",{class:"dso-date__vhidden"},this.localization.buttonLabel,d&&e("span",null,", ",this.localization.selectedDateMessage," ",d)))),e("div",{class:{"dso-date__dialog":true,"is-left":this.direction==="left","is-active":this.open},role:"dialog","aria-modal":"true","aria-hidden":this.open?"false":"true","aria-labelledby":this.dialogLabelId,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd},e("div",{class:"dso-date__dialog-content",onKeyDown:this.handleEscKey},e("div",{class:"dso-date__vhidden dso-date__instructions","aria-live":"polite"},this.localization.keyboardInstruction),e("div",{class:"dso-date__mobile",onFocusin:this.disableActiveFocus},e("label",{class:"dso-date__mobile-heading"},this.localization.calendarHeading),e("button",{class:"dso-date__close",ref:e=>this.firstFocusableElement=e,onKeyDown:this.handleFirstFocusableKeydown,onClick:()=>this.hide(),type:"button"},e("dso-icon",{icon:"times"}),e("span",{class:"dso-date__vhidden"},this.localization.closeLabel))),e("div",{class:"dso-date__header",onFocusin:this.disableActiveFocus},e("div",null,e("h2",{id:this.dialogLabelId,class:"dso-date__vhidden","aria-live":"polite"},this.localization.monthNames[n]," ",this.focusedDay.getFullYear()),e("label",{htmlFor:this.monthSelectId,class:"dso-date__vhidden"},this.localization.monthSelectLabel),e("div",{class:"dso-date__select"},e("select",{id:this.monthSelectId,class:"dso-date__select--month",ref:e=>this.monthSelectNode=e,onChange:this.handleMonthSelect},N(this.localization,a,h,p).map((t=>{const s=this.localization.monthNames.indexOf(t);return e("option",{key:t,value:s,selected:s===n},t)}))),e("div",{class:"dso-date__select-label","aria-hidden":"true"},e("span",null,this.localization.monthNamesShort[n]),e("dso-icon",{icon:"chevron-down"}))),e("label",{htmlFor:this.yearSelectId,class:"dso-date__vhidden"},this.localization.yearSelectLabel),e("div",{class:"dso-date__select"},e("select",{id:this.yearSelectId,class:"dso-date__select--year",onChange:this.handleYearSelect},S(_,b).map((t=>e("option",{key:t,selected:t===l},t)))),e("div",{class:"dso-date__select-label","aria-hidden":"true"},e("span",null,this.focusedDay.getFullYear()),e("dso-icon",{icon:"chevron-down"})))),e("div",{class:"dso-date__nav"},e("button",{class:"dso-date__prev",onClick:this.handlePreviousMonthClick,disabled:u,type:"button"},e("dso-icon",{icon:"chevron-left"}),e("span",{class:"dso-date__vhidden"},this.localization.prevMonthLabel)),e("button",{class:"dso-date__next",onClick:this.handleNextMonthClick,disabled:f,type:"button"},e("dso-icon",{icon:"chevron-right"}),e("span",{class:"dso-date__vhidden"},this.localization.nextMonthLabel)))),e(M,{selectedDate:o,focusedDate:this.focusedDay,onDateSelect:this.handleDaySelect,onKeyboardNavigation:this.handleKeyboardNavigation,labelledById:this.dialogLabelId,localization:this.localization,firstDayOfWeek:this.firstDayOfWeek,focusedDayRef:this.processFocusedDayNode,min:h,max:p})))))}get element(){return o(this)}};K.style=T;export{K as dso_date_picker};
2
- //# sourceMappingURL=p-9dbe2931.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DaysOfWeek","createDate","year","month","day","dayInt","parseInt","monthInt","yearInt","isValid","Number","isInteger","Date","parseDutchDate","value","matches","split","length","printDutchDate","date","d","getDate","toString","padStart","m","getMonth","y","getFullYear","isEqual","a","b","addDays","days","setDate","startOfWeek","firstDayOfWeek","Monday","getDay","diff","endOfWeek","startOfMonth","endOfMonth","setMonth","setYear","setFullYear","inRange","min","max","clamp","time","getTime","getDaysInRange","start","end","current","push","getViewOfMonth","DatePickerDay","focusedDay","today","onDaySelect","onKeyboardNavigation","focusedDayRef","isToday","isFocused","notCurrentMonth","isOutsideRange","handleClick","e","h","class","tabIndex","onClick","onKeyDown","disabled","type","ref","el","chunk","array","chunkSize","result","i","slice","mapWithOffset","startingOffset","mapFn","map","_","adjustedIndex","item","Error","DatePickerMonth","selectedDate","focusedDate","labelledById","localization","onDateSelect","onMouseDown","onFocusIn","role","onFocusin","dayNames","dayName","scope","substr","week","undefined","buttonLabel","placeholder","selectedDateMessage","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","closeLabel","keyboardInstruction","calendarHeading","monthNames","monthNamesShort","monthRange","selectedYear","minDate","maxDate","minYear","minMonth","maxYear","maxMonth","filter","_month","index","range","from","to","datePickerCss","keyCode","TAB","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DISALLOWED_CHARACTERS","TRANSITION_MS","cleanValue","input","regex","cursor","selectionStart","beforeCursor","afterCursor","filteredBeforeCursor","replace","filterAfterCursor","newValue","newCursor","selectionEnd","DsoDatePicker","this","monthSelectId","createIdentifier","yearSelectId","dialogLabelId","defaultLocalization","enableActiveFocus","activeFocus","disableActiveFocus","toggleOpen","preventDefault","open","hide","show","handleEscKey","event","handleBlur","stopPropagation","dsoBlur","emit","component","handleKeyUp","dsoKeyUp","originalEvent","handleKeyDown","dsoKeyDown","handleFocus","dsoFocus","handleTouchStart","touch","changedTouches","initialTouchX","pageX","initialTouchY","pageY","handleTouchMove","handleTouchEnd","distX","_a","distY","_b","threshold","isHorizontalSwipe","Math","abs","isDownwardsSwipe","addMonths","handleNextMonthClick","handlePreviousMonthClick","handleFirstFocusableKeydown","shiftKey","focusedDayNode","focus","handleKeyboardNavigation","firstFocusableElement","handled","addYears","handleDaySelect","_event","setValue","setFocusedDay","handleMonthSelect","target","HTMLSelectElement","handleYearSelect","handleInputChange","cleanedValue","prepareEvent","valueAsDate","required","error","clampValue","processFocusedDayNode","element","setTimeout","handleDocumentClick","path","composedPath","Node","contains","setFocus","datePickerInput","hideTimeoutId","clearTimeout","visible","focusTimeoutId","monthSelectNode","moveFocusToButton","datePickerButton","months","years","previousValue","dsoDateChange","componentWillLoad","componentDidLoad","dsoAutofocus","render","formattedDate","focusedMonth","focusedYear","prevMonthDisabled","nextMonthDisabled","Host","id","identifier","invalid","describedBy","onInput","onFocus","onBlur","onKeyUp","autoComplete","icon","direction","onTouchMove","onTouchStart","onTouchEnd","htmlFor","onChange","indexOf","key","selected"],"sources":["src/components/date-picker/date-utils.ts","src/components/date-picker/date-picker-day.tsx","src/components/date-picker/date-picker-month.tsx","src/components/date-picker/date-localization.ts","src/components/date-picker/utils/month-range.ts","src/components/date-picker/utils/range.ts","src/components/date-picker/date-picker.scss?tag=dso-date-picker&encapsulation=scoped","src/components/date-picker/date-picker.tsx"],"sourcesContent":["// eslint-disable-next-line @stencil-community/ban-exported-const-enums -- This enum is not part of public API\r\nexport enum DaysOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n}\r\n\r\nexport function createDate(year: string, month: string, day: string): Date | undefined {\r\n const dayInt = parseInt(day, 10);\r\n const monthInt = parseInt(month, 10);\r\n const yearInt = parseInt(year, 10);\r\n\r\n const isValid =\r\n Number.isInteger(yearInt) && // all parts should be integers\r\n Number.isInteger(monthInt) &&\r\n Number.isInteger(dayInt) &&\r\n monthInt > 0 && // month must be 1-12\r\n monthInt <= 12 &&\r\n dayInt > 0 && // day must be 1-31\r\n dayInt <= 31 &&\r\n yearInt > 0;\r\n\r\n if (isValid) {\r\n return new Date(yearInt, monthInt - 1, dayInt);\r\n }\r\n}\r\n\r\n/**\r\n * @param value date string in Dutch format D-M-YYYY\r\n */\r\nexport function parseDutchDate(value: string | undefined): Date | undefined {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n const matches = value.split(\"-\");\r\n\r\n if (\r\n matches.length === 3 &&\r\n typeof matches[0] === \"string\" &&\r\n typeof matches[1] === \"string\" &&\r\n typeof matches[2] === \"string\" &&\r\n matches[2].length === 4\r\n ) {\r\n return createDate(matches[2], matches[1], matches[0]);\r\n }\r\n}\r\n\r\n/**\r\n * print date in format DD-MM-YYYY\r\n * @param date\r\n */\r\nexport function printDutchDate(date: Date | undefined): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const d = date.getDate().toString(10).padStart(2, \"0\");\r\n const m = (date.getMonth() + 1).toString(10).padStart(2, \"0\");\r\n const y = date.getFullYear().toString(10).padStart(2, \"0\");\r\n\r\n return `${d}-${m}-${y}`;\r\n}\r\n\r\n/**\r\n * Compare if two dates are equal in terms of day, month, and year\r\n */\r\nexport function isEqual(a: Date | undefined, b: Date | undefined): boolean {\r\n if (!a || !b) {\r\n return false;\r\n }\r\n\r\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n}\r\n\r\nexport function addDays(date: Date, days: number): Date {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + days);\r\n return d;\r\n}\r\n\r\nexport function addMonths(date: Date, months: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(date.getMonth() + months);\r\n return d;\r\n}\r\n\r\nexport function addYears(date: Date, years: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(date.getFullYear() + years);\r\n return d;\r\n}\r\n\r\nexport function startOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\r\n\r\n d.setDate(d.getDate() - diff);\r\n return d;\r\n}\r\n\r\nexport function endOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);\r\n\r\n d.setDate(d.getDate() + diff);\r\n return d;\r\n}\r\n\r\nexport function startOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n\r\nexport function endOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n\r\nexport function setMonth(date: Date, month: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n}\r\n\r\nexport function setYear(date: Date, year: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n}\r\n\r\n/**\r\n * Check if date is within a min and max\r\n */\r\nexport function inRange(date: Date, min?: Date, max?: Date): boolean {\r\n return clamp(date, min, max) === date;\r\n}\r\n\r\n/**\r\n * Ensures date is within range, returns min or max if out of bounds\r\n */\r\nexport function clamp(date: Date, min?: Date, max?: Date): Date {\r\n const time = date.getTime();\r\n\r\n if (min && min instanceof Date && time < min.getTime()) {\r\n return min;\r\n }\r\n\r\n if (max && max instanceof Date && time > max.getTime()) {\r\n return max;\r\n }\r\n\r\n return date;\r\n}\r\n\r\n/**\r\n * given start and end date, return an (inclusive) array of all dates in between\r\n * @param start\r\n * @param end\r\n */\r\nfunction getDaysInRange(start: Date, end: Date): Date[] {\r\n const days: Date[] = [];\r\n let current = start;\r\n\r\n while (!isEqual(current, end)) {\r\n days.push(current);\r\n current = addDays(current, 1);\r\n }\r\n\r\n days.push(current);\r\n\r\n return days;\r\n}\r\n\r\n/**\r\n * given a date, return an array of dates from a calendar perspective\r\n * @param date\r\n * @param firstDayOfWeek\r\n */\r\nexport function getViewOfMonth(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date[] {\r\n const start = startOfWeek(startOfMonth(date), firstDayOfWeek);\r\n const end = endOfWeek(endOfMonth(date), firstDayOfWeek);\r\n\r\n return getDaysInRange(start, end);\r\n}\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { isEqual, printDutchDate } from \"./date-utils\";\r\n\r\nexport type DatePickerDayProps = {\r\n focusedDay: Date;\r\n today: Date;\r\n day: Date;\r\n inRange: boolean;\r\n onDaySelect: (event: MouseEvent, day: Date) => void;\r\n onKeyboardNavigation: (event: KeyboardEvent) => void;\r\n focusedDayRef?: (element: HTMLButtonElement) => void;\r\n};\r\n\r\nexport const DatePickerDay: FunctionalComponent<DatePickerDayProps> = ({\r\n focusedDay,\r\n today,\r\n day,\r\n onDaySelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n inRange,\r\n}) => {\r\n const isToday = isEqual(day, today);\r\n const isFocused = isEqual(day, focusedDay);\r\n const notCurrentMonth = day.getMonth() !== focusedDay.getMonth();\r\n const isOutsideRange = !inRange;\r\n\r\n function handleClick(e: MouseEvent) {\r\n onDaySelect(e, day);\r\n }\r\n\r\n return (\r\n <button\r\n class={{\r\n \"dso-date__day\": true,\r\n \"is-today\": isToday,\r\n }}\r\n tabIndex={isFocused ? 0 : -1}\r\n onClick={handleClick}\r\n onKeyDown={onKeyboardNavigation}\r\n disabled={isOutsideRange || notCurrentMonth}\r\n type=\"button\"\r\n ref={(el) => {\r\n if (isFocused && el && focusedDayRef) {\r\n focusedDayRef(el);\r\n }\r\n }}\r\n >\r\n <span aria-hidden=\"true\">{day.getDate()}</span>\r\n <span class=\"dso-date__vhidden\">{printDutchDate(day)}</span>\r\n </button>\r\n );\r\n};\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { DsoLocalizedText } from \"./date-localization\";\r\nimport { DatePickerDay, DatePickerDayProps } from \"./date-picker-day\";\r\nimport { getViewOfMonth, inRange, DaysOfWeek, isEqual } from \"./date-utils\";\r\n\r\nfunction chunk<T>(array: T[], chunkSize: number): T[][] {\r\n const result = [];\r\n\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n result.push(array.slice(i, i + chunkSize));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction mapWithOffset<T, U>(array: T[], startingOffset: number, mapFn: (item: T) => U): U[] {\r\n return array.map((_, i) => {\r\n const adjustedIndex = (i + startingOffset) % array.length;\r\n const item = array[adjustedIndex];\r\n if (!item) {\r\n throw new Error(\"No item found\");\r\n }\r\n\r\n return mapFn(item);\r\n });\r\n}\r\n\r\ntype DatePickerMonthProps = {\r\n selectedDate: Date | undefined;\r\n focusedDate: Date;\r\n labelledById: string;\r\n localization: DsoLocalizedText;\r\n firstDayOfWeek: DaysOfWeek;\r\n min?: Date;\r\n max?: Date;\r\n onDateSelect: DatePickerDayProps[\"onDaySelect\"];\r\n onKeyboardNavigation: DatePickerDayProps[\"onKeyboardNavigation\"];\r\n focusedDayRef: (element: HTMLButtonElement) => void;\r\n onFocusIn?: (e: FocusEvent) => void;\r\n onMouseDown?: (e: MouseEvent) => void;\r\n};\r\n\r\nexport const DatePickerMonth: FunctionalComponent<DatePickerMonthProps> = ({\r\n selectedDate,\r\n focusedDate,\r\n labelledById,\r\n localization,\r\n firstDayOfWeek,\r\n min,\r\n max,\r\n onDateSelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n onMouseDown,\r\n onFocusIn,\r\n}) => {\r\n const today = new Date();\r\n const days = getViewOfMonth(focusedDate, firstDayOfWeek);\r\n\r\n return (\r\n <table\r\n class=\"dso-date__table\"\r\n role=\"grid\"\r\n aria-labelledby={labelledById}\r\n onFocusin={onFocusIn}\r\n onMouseDown={onMouseDown}\r\n >\r\n <thead>\r\n <tr>\r\n {mapWithOffset(localization.dayNames, firstDayOfWeek, (dayName) => (\r\n <th class=\"dso-date__table-header\" scope=\"col\">\r\n <span aria-hidden=\"true\">{dayName.substr(0, 2)}</span>\r\n <span class=\"dso-date__vhidden\">{dayName}</span>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {chunk(days, 7).map((week) => (\r\n <tr class=\"dso-date__row\">\r\n {week.map((day) => (\r\n <td\r\n class=\"dso-date__cell\"\r\n role=\"gridcell\"\r\n aria-selected={isEqual(day, selectedDate) ? \"true\" : undefined}\r\n aria-current={isEqual(day, today) ? \"date\" : undefined}\r\n >\r\n <DatePickerDay\r\n day={day}\r\n today={today}\r\n focusedDay={focusedDate}\r\n inRange={inRange(day, min, max)}\r\n onDaySelect={onDateSelect}\r\n onKeyboardNavigation={onKeyboardNavigation}\r\n focusedDayRef={focusedDayRef}\r\n />\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n","type MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string];\r\ntype DayNames = [string, string, string, string, string, string, string];\r\n\r\nexport type DsoLocalizedText = {\r\n buttonLabel: string;\r\n placeholder: string;\r\n selectedDateMessage: string;\r\n prevMonthLabel: string;\r\n nextMonthLabel: string;\r\n monthSelectLabel: string;\r\n yearSelectLabel: string;\r\n closeLabel: string;\r\n keyboardInstruction: string;\r\n calendarHeading: string;\r\n dayNames: DayNames;\r\n monthNames: MonthsNames;\r\n monthNamesShort: MonthsNames;\r\n};\r\n\r\nconst localization: DsoLocalizedText = {\r\n buttonLabel: \"Kies datum\",\r\n placeholder: \"dd-mm-jjjj\",\r\n selectedDateMessage: \"Geselecteerde datum is\",\r\n prevMonthLabel: \"Vorige maand\",\r\n nextMonthLabel: \"Volgende maand\",\r\n monthSelectLabel: \"Maand\",\r\n yearSelectLabel: \"Jaar\",\r\n closeLabel: \"Sluiten\",\r\n keyboardInstruction: \"Gebruik de pijltjestoetsen om een dag te kiezen\",\r\n calendarHeading: \"Kies een datum\",\r\n dayNames: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\r\n monthNames: [\r\n \"Januari\",\r\n \"Februari\",\r\n \"Maart\",\r\n \"April\",\r\n \"Mei\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"Augustus\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n monthNamesShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\r\n};\r\n\r\nexport default localization;\r\n","import { DsoLocalizedText } from \"../date-localization\";\r\n\r\nexport function monthRange(\r\n localization: DsoLocalizedText,\r\n selectedYear: number,\r\n minDate?: Date,\r\n maxDate?: Date\r\n): string[] {\r\n if (minDate && maxDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => {\r\n if (minYear === selectedYear && maxYear === selectedYear) {\r\n return index >= minMonth && index >= maxMonth;\r\n }\r\n\r\n if (minYear === selectedYear) {\r\n return index >= minMonth;\r\n }\r\n\r\n if (maxYear === selectedYear) {\r\n return index <= maxMonth;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n if (minDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);\r\n }\r\n\r\n if (maxDate) {\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);\r\n }\r\n\r\n return localization.monthNames;\r\n}\r\n","export function range(from: number, to: number) {\r\n const result: number[] = [];\r\n for (let i = from; i <= to; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n}\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/form-control\";\r\n\r\n@use \"date-picker.variables\" as core-date-picker-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n .dso-date__input {\r\n border-color: colors.$danger-color;\r\n }\r\n }\r\n}\r\n\r\n.dso-date *,\r\n.dso-date *::before,\r\n.dso-date *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n.dso-date {\r\n box-sizing: border-box;\r\n color: core-date-picker-variables.$color-text;\r\n display: block;\r\n font-family: core-date-picker-variables.$font;\r\n margin: 0;\r\n position: relative;\r\n text-align: left;\r\n width: 100%;\r\n\r\n &:not(.dso-visible) {\r\n .dso-date__dialog {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__input {\r\n @include form-control.root();\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TOGGLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__toggle {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n -webkit-user-select: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-variables.$color-button-bg;\r\n border: 0;\r\n border-radius: 0;\r\n border-bottom-right-radius: core-date-picker-variables.$radius;\r\n border-top-right-radius: core-date-picker-variables.$radius;\r\n color: core-date-picker-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n height: core-date-picker-variables.$size;\r\n justify-content: center;\r\n padding: 0;\r\n position: absolute;\r\n right: 0;\r\n transform: translateY(-50%);\r\n top: 50%;\r\n user-select: none;\r\n width: core-date-picker-variables.$size;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:disabled {\r\n color: core-date-picker-variables.$nav-button-disabled;\r\n cursor: default;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ DIALOG\r\n// ---------------------------------------------\r\n\r\n.dso-date__dialog {\r\n border-width: core-date-picker-variables.$border-width;\r\n display: flex;\r\n right: 0;\r\n min-width: 320px;\r\n opacity: 0;\r\n position: absolute;\r\n top: 100%;\r\n transform: scale(0.96) translateZ(0) translateY(-20px);\r\n transform-origin: top right;\r\n transition: transform 300ms ease, opacity 300ms ease, visibility 300ms ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n background: core-date-picker-variables.$overlay;\r\n bottom: 0;\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n transform: translateZ(0);\r\n transform-origin: bottom center;\r\n }\r\n\r\n &.is-left {\r\n left: units.$padding-base-horizontal * -1 + core-date-picker-variables.$border-width;\r\n right: auto;\r\n width: auto;\r\n }\r\n\r\n &.is-active {\r\n opacity: 1;\r\n // The value of 1.0001 fixes a Chrome glitch with scaling\r\n transform: scale(1.0001) translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n}\r\n\r\n.dso-date__dialog-content {\r\n background: core-date-picker-variables.$surface;\r\n border: 1px solid rgba(0, 0, 0, 0.1);\r\n border-radius: core-date-picker-variables.$radius;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n margin-left: auto;\r\n margin-right: -1px;\r\n margin-top: 8px;\r\n max-width: 310px;\r\n min-width: 290px;\r\n padding: 16px;\r\n position: relative;\r\n transform: none;\r\n width: 100%;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n border: 0;\r\n border-radius: 0;\r\n border-top-left-radius: core-date-picker-variables.$radius;\r\n border-top-right-radius: core-date-picker-variables.$radius;\r\n bottom: 0;\r\n left: 0;\r\n margin: 0;\r\n max-width: none;\r\n min-height: 26em;\r\n opacity: 0;\r\n padding: 0 8% 20px;\r\n position: absolute;\r\n transform: translateZ(0) translateY(100%);\r\n transition: transform core-date-picker-variables.$transition-duration ease,\r\n opacity core-date-picker-variables.$transition-duration ease,\r\n visibility core-date-picker-variables.$transition-duration ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n\r\n .is-active & {\r\n opacity: 1;\r\n transform: translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TABLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n color: core-date-picker-variables.$color-text;\r\n font-size: 1rem;\r\n font-weight: core-date-picker-variables.$font-normal;\r\n line-height: 1.25;\r\n min-width: (core-date-picker-variables.$size + 2) * 7;\r\n table-layout: fixed;\r\n text-align: center;\r\n width: 100%;\r\n}\r\n\r\n.dso-date__table-header {\r\n font-size: 0.875em;\r\n font-weight: core-date-picker-variables.$font-bold;\r\n height: 36px;\r\n line-height: 36px;\r\n text-align: center;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n}\r\n\r\n.dso-date__cell {\r\n height: core-date-picker-variables.$size + 2;\r\n padding: 1px;\r\n text-align: center;\r\n width: core-date-picker-variables.$size + 2;\r\n}\r\n\r\n.dso-date__day {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n appearance: none;\r\n background: transparent;\r\n border: 0;\r\n border-radius: 50%;\r\n box-shadow: 0 0 0 1px transparent;\r\n color: core-date-picker-variables.$color-text;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-family: core-date-picker-variables.$font;\r\n font-variant-numeric: tabular-nums;\r\n font-weight: core-date-picker-variables.$font-normal;\r\n height: core-date-picker-variables.$size;\r\n line-height: 0;\r\n padding: 0;\r\n position: relative;\r\n text-align: center;\r\n vertical-align: middle;\r\n width: core-date-picker-variables.$size;\r\n z-index: zindex.$datepicker;\r\n\r\n &.is-today {\r\n background: transparent;\r\n height: core-date-picker-variables.$size - 2;\r\n box-shadow: 0 0 0 1px core-date-picker-variables.$color-button;\r\n width: core-date-picker-variables.$size - 2;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background: core-date-picker-variables.$color-button;\r\n color: core-date-picker-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: transparent;\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n color: core-date-picker-variables.$color-text;\r\n height: core-date-picker-variables.$size - 4;\r\n outline: 0;\r\n width: core-date-picker-variables.$size - 4;\r\n }\r\n\r\n [aria-selected=\"true\"] & {\r\n background: core-date-picker-variables.$color-button;\r\n color: core-date-picker-variables.$color-text-active;\r\n\r\n &:focus {\r\n background: transparent;\r\n\r\n span[aria-hidden=\"true\"] {\r\n background: core-date-picker-variables.$color-button;\r\n border: 1px solid colors.$wit;\r\n line-height: core-date-picker-variables.$size - 6;\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n background: colors.$wit;\r\n color: core-date-picker-variables.$color-text-disabled;\r\n cursor: default;\r\n }\r\n\r\n span[aria-hidden=\"true\"] {\r\n border-radius: 50%;\r\n display: inline-block;\r\n height: core-date-picker-variables.$size - 4;\r\n line-height: core-date-picker-variables.$size - 4;\r\n width: core-date-picker-variables.$size - 4;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ HEADER\r\n// ---------------------------------------------\r\n\r\n.dso-date__header {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n width: 100%;\r\n\r\n span {\r\n font-size: 0.875rem;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ NAVIGATION\r\n// ---------------------------------------------\r\n\r\n.dso-date__nav {\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n}\r\n\r\n.dso-date__prev,\r\n.dso-date__next {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-variables.$color-button-bg;\r\n border: 1px solid core-date-picker-variables.$color-button;\r\n border-radius: core-date-picker-variables.$radius;\r\n box-sizing: border-box;\r\n color: core-date-picker-variables.$color-button;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 1em;\r\n height: 32px;\r\n justify-content: center;\r\n margin-left: 8px;\r\n padding: 0;\r\n width: 32px;\r\n\r\n @media (max-width: 35.9375em) {\r\n height: 40px;\r\n width: 40px;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background-color: core-date-picker-variables.$color-button;\r\n color: core-date-picker-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: core-date-picker-variables.$color-button-bg;\r\n color: core-date-picker-variables.$color-button;\r\n }\r\n\r\n &:disabled {\r\n &,\r\n &:hover {\r\n background-color: colors.$wit;\r\n border-color: core-date-picker-variables.$nav-button-disabled;\r\n color: core-date-picker-variables.$nav-button-disabled;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n svg {\r\n margin: 0 auto;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ SELECT\r\n// ---------------------------------------------\r\n\r\n.dso-date__select {\r\n display: inline-flex;\r\n height: units.$u1 * 4 - 4;\r\n line-height: units.$u1 * 4 - 4;\r\n position: relative;\r\n\r\n span {\r\n margin-right: 4px;\r\n }\r\n\r\n select {\r\n color: core-date-picker-variables.$color-primary;\r\n cursor: pointer;\r\n font-size: 1rem;\r\n height: 100%;\r\n left: 0;\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:focus + .dso-date__select-label {\r\n box-shadow: 0 0 0 2px core-date-picker-variables.$color-primary;\r\n }\r\n\r\n &:disabled {\r\n color: core-date-picker-variables.$nav-button-disabled;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__select-label {\r\n align-items: center;\r\n border-radius: core-date-picker-variables.$radius;\r\n color: core-date-picker-variables.$select;\r\n display: flex;\r\n padding: 0 4px 0 8px;\r\n pointer-events: none;\r\n position: relative;\r\n width: 100%;\r\n z-index: zindex.$datepicker;\r\n\r\n span {\r\n font-size: 1.25rem;\r\n font-weight: core-date-picker-variables.$font-bold;\r\n line-height: 1.25;\r\n }\r\n\r\n svg {\r\n width: 16px;\r\n height: 16px;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ MOBILE\r\n// ---------------------------------------------\r\n\r\n.dso-date__mobile {\r\n align-items: center;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\r\n display: flex;\r\n font-size: 1em;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n margin-left: -10%;\r\n overflow: hidden;\r\n padding: 12px 20px;\r\n position: relative;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n width: 120%;\r\n\r\n @media (min-width: 36em) {\r\n border: 0;\r\n margin: 0;\r\n overflow: visible;\r\n padding: 0;\r\n position: absolute;\r\n right: -16px;\r\n top: -16px;\r\n width: auto;\r\n }\r\n}\r\n\r\n.dso-date__mobile-heading {\r\n display: inline-block;\r\n font-weight: core-date-picker-variables.$font-bold;\r\n max-width: 84%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n\r\n @media (min-width: 36em) {\r\n display: none;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ CLOSE\r\n// ---------------------------------------------\r\n\r\n.dso-date__close {\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: colors.$wit;\r\n border: 0;\r\n border-radius: 50%;\r\n color: core-date-picker-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n font-size: 1em;\r\n height: units.$u1 * 4;\r\n justify-content: center;\r\n margin-right: -4px;\r\n padding: 0;\r\n width: units.$u1 * 4;\r\n\r\n @media (min-width: 36em) {\r\n margin-right: 0;\r\n opacity: 0;\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n outline: none;\r\n\r\n @media (min-width: 36em) {\r\n opacity: 1;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ VISUALLY HIDDEN\r\n// ---------------------------------------------\r\n\r\n.dso-date__vhidden {\r\n border: 0;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: 1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 1px;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Host,\r\n Prop,\r\n Element,\r\n h,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Listen,\r\n Method,\r\n} from \"@stencil/core\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\nimport {\r\n addDays,\r\n startOfWeek,\r\n endOfWeek,\r\n setMonth,\r\n setYear,\r\n clamp,\r\n inRange,\r\n endOfMonth,\r\n startOfMonth,\r\n printDutchDate,\r\n parseDutchDate,\r\n DaysOfWeek,\r\n} from \"./date-utils\";\r\nimport { DatePickerMonth } from \"./date-picker-month\";\r\nimport defaultLocalization, { DsoLocalizedText } from \"./date-localization\";\r\nimport {\r\n DsoDatePickerDirection,\r\n DsoDatePickerChangeEvent,\r\n DsoDatePickerFocusEvent,\r\n DsoDatePickerKeyboardEvent,\r\n} from \"./date-picker.interfaces\";\r\nimport { monthRange } from \"./utils/month-range\";\r\nimport { range } from \"./utils/range\";\r\n\r\nconst keyCode = {\r\n TAB: 9,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\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};\r\n\r\nconst DISALLOWED_CHARACTERS = /[^0-9-]+/g;\r\nconst TRANSITION_MS = 300;\r\n\r\nfunction cleanValue(input: HTMLInputElement, regex: RegExp): string {\r\n const value = input.value;\r\n const cursor = input.selectionStart;\r\n\r\n if (!cursor) {\r\n return value;\r\n }\r\n\r\n const beforeCursor = value.slice(0, cursor);\r\n const afterCursor = value.slice(cursor, value.length);\r\n\r\n const filteredBeforeCursor = beforeCursor.replace(regex, \"\");\r\n const filterAfterCursor = afterCursor.replace(regex, \"\");\r\n\r\n const newValue = filteredBeforeCursor + filterAfterCursor;\r\n const newCursor = filteredBeforeCursor.length;\r\n\r\n input.value = newValue;\r\n input.selectionStart = input.selectionEnd = newCursor;\r\n\r\n return newValue;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-date-picker\",\r\n styleUrl: \"date-picker.scss\",\r\n shadow: false,\r\n scoped: true,\r\n})\r\nexport class DsoDatePicker implements ComponentInterface {\r\n /**\r\n * Own Properties\r\n */\r\n private monthSelectId = createIdentifier(\"DsoDateMonth\");\r\n private yearSelectId = createIdentifier(\"DsoDateYear\");\r\n private dialogLabelId = createIdentifier(\"DsoDateLabel\");\r\n\r\n private datePickerButton: HTMLButtonElement | undefined;\r\n private datePickerInput: HTMLInputElement | undefined;\r\n private firstFocusableElement: HTMLElement | undefined;\r\n private monthSelectNode: HTMLElement | undefined;\r\n private focusedDayNode: HTMLButtonElement | undefined;\r\n\r\n private focusTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n private hideTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n\r\n private initialTouchX: number | undefined;\r\n private initialTouchY: number | undefined;\r\n\r\n private localization: DsoLocalizedText = defaultLocalization;\r\n private firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday;\r\n\r\n private previousValue: string | undefined;\r\n\r\n /**\r\n * Reference to host HTML element.\r\n */\r\n @Element()\r\n element!: HTMLDsoDatePickerElement;\r\n\r\n /**\r\n * State() variables\r\n */\r\n @State()\r\n activeFocus = false;\r\n\r\n @State()\r\n focusedDay = new Date();\r\n\r\n @State()\r\n open = false;\r\n\r\n @State()\r\n visible = false;\r\n\r\n /**\r\n * Public Property API\r\n */\r\n\r\n /**\r\n * Name of the date picker input.\r\n */\r\n @Prop()\r\n name = \"date\";\r\n\r\n /**\r\n * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute.\r\n */\r\n @Prop()\r\n identifier: string | undefined;\r\n\r\n /**\r\n * Makes the date picker input component disabled. This prevents users from being able to\r\n * interact with the input, and conveys its inactive state to assistive technologies.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Defines a specific role attribute for the date picker input.\r\n */\r\n @Prop()\r\n role: string | null = null;\r\n\r\n /**\r\n * Forces the opening direction of the calendar modal to be always left or right.\r\n * This setting can be useful when the input is smaller than the opening date picker\r\n * would be as by default the picker always opens towards right.\r\n */\r\n @Prop()\r\n direction: DsoDatePickerDirection = \"right\";\r\n\r\n /**\r\n * Should the input be marked as required?\r\n */\r\n @Prop()\r\n required = false;\r\n\r\n /**\r\n * Is input invalid?\r\n */\r\n @Prop({ reflect: true })\r\n invalid?: boolean;\r\n\r\n /**\r\n * ID of element that describes the input element\r\n */\r\n @Prop()\r\n describedBy?: string;\r\n\r\n /**\r\n * Should the input be focused on load?\r\n */\r\n @Prop()\r\n dsoAutofocus = false;\r\n\r\n /**\r\n * Date value. Must be in Dutch date format: DD-MM-YYYY.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n value = \"\";\r\n\r\n /**\r\n * Minimum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the max property.\r\n */\r\n @Prop()\r\n min: string | undefined;\r\n\r\n /**\r\n * Maximum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the min property.\r\n */\r\n @Prop()\r\n max: string | undefined;\r\n\r\n /**\r\n * Events section.\r\n */\r\n\r\n /**\r\n * Event emitted when a date is selected.\r\n */\r\n @Event()\r\n dsoDateChange!: EventEmitter<DsoDatePickerChangeEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is blurred.\r\n */\r\n @Event()\r\n dsoBlur!: EventEmitter<DsoDatePickerFocusEvent>;\r\n\r\n /**\r\n * Event emitted on key up in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyUp!: EventEmitter<DsoDatePickerKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted on key down in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyDown!: EventEmitter<DsoDatePickerKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is focused.\r\n */\r\n @Event()\r\n dsoFocus!: EventEmitter<DsoDatePickerFocusEvent>;\r\n\r\n /**\r\n * Component event handling.\r\n */\r\n @Listen(\"click\", { target: \"document\", capture: true })\r\n handleDocumentClick(e: MouseEvent) {\r\n if (!this.open) {\r\n return;\r\n }\r\n\r\n const path = e.composedPath();\r\n\r\n for (const target of path) {\r\n if (target instanceof Node && this.element.contains(target)) {\r\n return;\r\n }\r\n }\r\n\r\n this.hide(false);\r\n }\r\n\r\n /**\r\n * Sets focus on the date picker's input. Use this method instead of the global `focus()`.\r\n */\r\n @Method()\r\n async setFocus() {\r\n return this.datePickerInput?.focus();\r\n }\r\n\r\n /**\r\n * Public methods API\r\n */\r\n\r\n /**\r\n * Show the calendar modal, moving focus to the calendar inside.\r\n */\r\n @Method()\r\n async show() {\r\n if (typeof this.hideTimeoutId !== \"undefined\") {\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n\r\n this.visible = true;\r\n\r\n setTimeout(() => {\r\n this.open = true;\r\n this.setFocusedDay(parseDutchDate(this.value) || new Date());\r\n\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.focusTimeoutId = setTimeout(() => this.monthSelectNode?.focus(), TRANSITION_MS);\r\n });\r\n }\r\n\r\n /**\r\n * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus\r\n * returning to the date picker's button. Default is true.\r\n */\r\n @Method()\r\n async hide(moveFocusToButton = true) {\r\n this.open = false;\r\n\r\n // in cases where calendar is quickly shown and hidden\r\n // we should avoid moving focus to the button\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.hideTimeoutId = setTimeout(() => {\r\n if (moveFocusToButton && this.datePickerButton) {\r\n this.datePickerButton.focus();\r\n }\r\n\r\n this.visible = false;\r\n }, TRANSITION_MS + 200);\r\n }\r\n\r\n /**\r\n * Local methods.\r\n */\r\n private enableActiveFocus = () => {\r\n this.activeFocus = true;\r\n };\r\n\r\n private disableActiveFocus = () => {\r\n this.activeFocus = false;\r\n };\r\n\r\n private addDays(days: number) {\r\n this.setFocusedDay(addDays(this.focusedDay, days));\r\n }\r\n\r\n private addMonths(months: number) {\r\n this.setMonth(this.focusedDay.getMonth() + months);\r\n }\r\n\r\n private addYears(years: number) {\r\n this.setYear(this.focusedDay.getFullYear() + years);\r\n }\r\n\r\n private startOfWeek() {\r\n this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private endOfWeek() {\r\n this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private setMonth(month: number) {\r\n const min = setMonth(startOfMonth(this.focusedDay), month);\r\n const max = endOfMonth(min);\r\n const date = setMonth(this.focusedDay, month);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setYear(year: number) {\r\n const min = setYear(startOfMonth(this.focusedDay), year);\r\n const max = endOfMonth(min);\r\n const date = setYear(this.focusedDay, year);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setFocusedDay(day: Date) {\r\n this.focusedDay = clamp(day, parseDutchDate(this.min), parseDutchDate(this.max));\r\n }\r\n\r\n private toggleOpen = (e: Event) => {\r\n e.preventDefault();\r\n this.open ? this.hide(false) : this.show();\r\n };\r\n\r\n private handleEscKey = (event: KeyboardEvent) => {\r\n if (event.keyCode === keyCode.ESC) {\r\n this.hide();\r\n }\r\n };\r\n\r\n private handleBlur = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoBlur.emit({\r\n component: \"dso-date-picker\",\r\n });\r\n };\r\n\r\n private handleKeyUp = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyUp.emit({\r\n component: \"dso-date-picker\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyDown.emit({\r\n component: \"dso-date-picker\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleFocus = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoFocus.emit({\r\n component: \"dso-date-picker\",\r\n });\r\n };\r\n\r\n private handleTouchStart = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n this.initialTouchX = touch.pageX;\r\n this.initialTouchY = touch.pageY;\r\n };\r\n\r\n private handleTouchMove = (event: TouchEvent) => {\r\n event.preventDefault();\r\n };\r\n\r\n private handleTouchEnd = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n const distX = touch.pageX - (this.initialTouchX ?? 0); // get horizontal dist traveled\r\n const distY = touch.pageY - (this.initialTouchY ?? 0); // get vertical dist traveled\r\n const threshold = 70;\r\n\r\n const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\r\n const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;\r\n\r\n if (isHorizontalSwipe) {\r\n this.addMonths(distX < 0 ? 1 : -1);\r\n } else if (isDownwardsSwipe) {\r\n this.hide(false);\r\n event.preventDefault();\r\n }\r\n\r\n this.initialTouchY = undefined;\r\n this.initialTouchX = undefined;\r\n };\r\n\r\n private handleNextMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(1);\r\n };\r\n\r\n private handlePreviousMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(-1);\r\n };\r\n\r\n private handleFirstFocusableKeydown = (event: KeyboardEvent) => {\r\n // this ensures focus is trapped inside the dialog\r\n if (event.keyCode === keyCode.TAB && event.shiftKey) {\r\n this.focusedDayNode?.focus();\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n private handleKeyboardNavigation = (event: KeyboardEvent) => {\r\n // handle tab separately, since it needs to be treated\r\n // differently to other keyboard interactions\r\n if (event.keyCode === keyCode.TAB && !event.shiftKey) {\r\n event.preventDefault();\r\n this.firstFocusableElement?.focus();\r\n return;\r\n }\r\n\r\n let handled = true;\r\n\r\n switch (event.keyCode) {\r\n case keyCode.RIGHT:\r\n this.addDays(1);\r\n break;\r\n case keyCode.LEFT:\r\n this.addDays(-1);\r\n break;\r\n case keyCode.DOWN:\r\n this.addDays(7);\r\n break;\r\n case keyCode.UP:\r\n this.addDays(-7);\r\n break;\r\n case keyCode.PAGE_UP:\r\n if (event.shiftKey) {\r\n this.addYears(-1);\r\n } else {\r\n this.addMonths(-1);\r\n }\r\n break;\r\n case keyCode.PAGE_DOWN:\r\n if (event.shiftKey) {\r\n this.addYears(1);\r\n } else {\r\n this.addMonths(1);\r\n }\r\n break;\r\n case keyCode.HOME:\r\n this.startOfWeek();\r\n break;\r\n case keyCode.END:\r\n this.endOfWeek();\r\n break;\r\n default:\r\n handled = false;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.enableActiveFocus();\r\n }\r\n };\r\n\r\n private handleDaySelect = (_event: MouseEvent, day: Date) => {\r\n if (!inRange(day, parseDutchDate(this.min), parseDutchDate(this.max))) {\r\n return;\r\n }\r\n\r\n if (day.getMonth() === this.focusedDay.getMonth()) {\r\n this.setValue(day);\r\n this.hide();\r\n } else {\r\n this.setFocusedDay(day);\r\n }\r\n };\r\n\r\n private handleMonthSelect = (e: Event) => {\r\n // Todo\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setMonth(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleYearSelect = (e: Event) => {\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setYear(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleInputChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n\r\n const cleanedValue = cleanValue(target, DISALLOWED_CHARACTERS);\r\n\r\n this.setValue(cleanedValue);\r\n };\r\n\r\n private setValue(value: Date | string) {\r\n const event = this.prepareEvent(value);\r\n\r\n this.value = typeof value === \"string\" ? value : event.value;\r\n\r\n if (this.value !== this.previousValue) {\r\n this.dsoDateChange.emit(event);\r\n this.previousValue = this.value;\r\n }\r\n }\r\n\r\n private prepareEvent = (value: Date | string): DsoDatePickerChangeEvent => {\r\n const event: DsoDatePickerChangeEvent = {\r\n component: \"dso-date-picker\",\r\n value: \"\",\r\n valueAsDate: undefined,\r\n };\r\n\r\n if (value instanceof Date) {\r\n event.valueAsDate = value;\r\n } else {\r\n event.value = value;\r\n event.valueAsDate = parseDutchDate(value);\r\n }\r\n\r\n if (event.valueAsDate) {\r\n event.value = printDutchDate(event.valueAsDate);\r\n }\r\n\r\n if (!event.valueAsDate && this.required) {\r\n event.error = \"required\";\r\n }\r\n\r\n if (event.value && !event.valueAsDate) {\r\n event.error = \"invalid\";\r\n }\r\n\r\n if (event.valueAsDate && (this.min || this.max)) {\r\n const min = parseDutchDate(this.min);\r\n const max = parseDutchDate(this.max);\r\n const clampValue = clamp(event.valueAsDate, min, max);\r\n\r\n if (clampValue !== event.valueAsDate && clampValue === min) {\r\n event.valueAsDate = undefined;\r\n event.error = \"min-range\";\r\n } else if (clampValue !== event.valueAsDate && clampValue === max) {\r\n event.valueAsDate = undefined;\r\n event.error = \"max-range\";\r\n }\r\n }\r\n\r\n return event;\r\n };\r\n\r\n private processFocusedDayNode = (element: HTMLButtonElement) => {\r\n this.focusedDayNode = element;\r\n\r\n if (this.activeFocus && this.open) {\r\n setTimeout(() => element.focus(), 0);\r\n }\r\n };\r\n\r\n componentWillLoad(): void | Promise<void> {\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n\r\n if (minDate && minDate > this.focusedDay) {\r\n this.focusedDay = minDate;\r\n }\r\n\r\n if (maxDate && maxDate < this.focusedDay) {\r\n this.focusedDay = maxDate;\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n if (valueAsDate) {\r\n this.previousValue = this.value = printDutchDate(valueAsDate);\r\n }\r\n\r\n if (this.dsoAutofocus) {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n /**\r\n * render() function\r\n * Always the last one in the class.\r\n */\r\n render() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n const formattedDate = valueAsDate && printDutchDate(valueAsDate);\r\n const selectedYear = (valueAsDate || this.focusedDay).getFullYear();\r\n const focusedMonth = this.focusedDay.getMonth();\r\n const focusedYear = this.focusedDay.getFullYear();\r\n\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n const prevMonthDisabled = minDate && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;\r\n const nextMonthDisabled = maxDate && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;\r\n\r\n let minYear = selectedYear - 10;\r\n let maxYear = selectedYear + 10;\r\n if (minDate) {\r\n minYear = Math.max(minYear, minDate.getFullYear());\r\n }\r\n if (maxDate) {\r\n maxYear = Math.min(maxYear, maxDate.getFullYear());\r\n }\r\n\r\n return (\r\n <Host>\r\n <div class={{ \"dso-date\": true, \"dso-visible\": this.visible }}>\r\n <div class=\"dso-date__input-wrapper\">\r\n <input\r\n class=\"dso-date__input\"\r\n value={this.value}\r\n placeholder={this.localization.placeholder}\r\n id={this.identifier}\r\n disabled={this.disabled}\r\n role={this.role ?? undefined}\r\n required={this.required ? true : undefined}\r\n aria-autocomplete=\"none\"\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={this.describedBy}\r\n onInput={this.handleInputChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyUp={this.handleKeyUp}\r\n onKeyDown={this.handleKeyDown}\r\n autoComplete=\"off\"\r\n ref={(element) => (this.datePickerInput = element)}\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"dso-date__toggle\"\r\n onClick={this.toggleOpen}\r\n disabled={this.disabled}\r\n ref={(element) => (this.datePickerButton = element)}\r\n >\r\n <span class=\"dso-date__toggle-icon\">\r\n <dso-icon icon=\"calendar\"></dso-icon>\r\n </span>\r\n <span class=\"dso-date__vhidden\">\r\n {this.localization.buttonLabel}\r\n {formattedDate && (\r\n <span>\r\n , {this.localization.selectedDateMessage} {formattedDate}\r\n </span>\r\n )}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <div\r\n class={{\r\n \"dso-date__dialog\": true,\r\n \"is-left\": this.direction === \"left\",\r\n \"is-active\": this.open,\r\n }}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-hidden={this.open ? \"false\" : \"true\"}\r\n aria-labelledby={this.dialogLabelId}\r\n onTouchMove={this.handleTouchMove}\r\n onTouchStart={this.handleTouchStart}\r\n onTouchEnd={this.handleTouchEnd}\r\n >\r\n <div class=\"dso-date__dialog-content\" onKeyDown={this.handleEscKey}>\r\n <div class=\"dso-date__vhidden dso-date__instructions\" aria-live=\"polite\">\r\n {this.localization.keyboardInstruction}\r\n </div>\r\n <div class=\"dso-date__mobile\" onFocusin={this.disableActiveFocus}>\r\n <label class=\"dso-date__mobile-heading\">{this.localization.calendarHeading}</label>\r\n <button\r\n class=\"dso-date__close\"\r\n ref={(element) => (this.firstFocusableElement = element)}\r\n onKeyDown={this.handleFirstFocusableKeydown}\r\n onClick={() => this.hide()}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.closeLabel}</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-date__header\" onFocusin={this.disableActiveFocus}>\r\n <div>\r\n <h2 id={this.dialogLabelId} class=\"dso-date__vhidden\" aria-live=\"polite\">\r\n {this.localization.monthNames[focusedMonth]} {this.focusedDay.getFullYear()}\r\n </h2>\r\n\r\n <label htmlFor={this.monthSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.monthSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select\r\n id={this.monthSelectId}\r\n class=\"dso-date__select--month\"\r\n ref={(element) => (this.monthSelectNode = element)}\r\n onChange={this.handleMonthSelect}\r\n >\r\n {monthRange(this.localization, selectedYear, minDate, maxDate).map((month) => {\r\n const index = this.localization.monthNames.indexOf(month);\r\n\r\n return (\r\n <option key={month} value={index} selected={index === focusedMonth}>\r\n {month}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.localization.monthNamesShort[focusedMonth]}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n\r\n <label htmlFor={this.yearSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.yearSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select id={this.yearSelectId} class=\"dso-date__select--year\" onChange={this.handleYearSelect}>\r\n {range(minYear, maxYear).map((year) => (\r\n <option key={year} selected={year === focusedYear}>\r\n {year}\r\n </option>\r\n ))}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.focusedDay.getFullYear()}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dso-date__nav\">\r\n <button\r\n class=\"dso-date__prev\"\r\n onClick={this.handlePreviousMonthClick}\r\n disabled={prevMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.prevMonthLabel}</span>\r\n </button>\r\n <button\r\n class=\"dso-date__next\"\r\n onClick={this.handleNextMonthClick}\r\n disabled={nextMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.nextMonthLabel}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <DatePickerMonth\r\n selectedDate={valueAsDate}\r\n focusedDate={this.focusedDay}\r\n onDateSelect={this.handleDaySelect}\r\n onKeyboardNavigation={this.handleKeyboardNavigation}\r\n labelledById={this.dialogLabelId}\r\n localization={this.localization}\r\n firstDayOfWeek={this.firstDayOfWeek}\r\n focusedDayRef={this.processFocusedDayNode}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{h as o,r as n,c as s,f as t,F as d,H as c,a as e}from"./p-3ca5b6f4.js";const a={success:"succes:",info:"info:",warning:"waarschuwing:",danger:"fout:",error:"fout:"};const i=({handleUrl:n,onClick:s,open:t},d)=>{if(n){return o("a",{href:n,onClick:s,"aria-expanded":t?"true":"false"},d)}return o("button",{type:"button",onClick:s,"aria-expanded":t?"true":"false"},d)};const r=({heading:n,ref:s},t)=>{switch(n){default:case"h2":return o("h2",{ref:s,class:"dso-section-handle"},t);case"h3":return o("h3",{ref:s,class:"dso-section-handle"},t);case"h4":return o("h4",{ref:s,class:"dso-section-handle"},t);case"h5":return o("h5",{ref:s,class:"dso-section-handle"},t)}};const l=({state:n})=>{if(n==="error"){return o("dso-icon",{icon:"status-error"})}if(n==="danger"){return o("dso-icon",{icon:"status-danger"})}if(n==="success"){return o("dso-icon",{icon:"status-success"})}if(n==="info"){return o("dso-icon",{icon:"status-info"})}if(n==="warning"){return o("dso-icon",{icon:"status-warning"})}};const h=({state:n,icon:s,attachmentCount:t})=>{if(n){return o(l,{state:n})}if(t){return o("dso-attachments-counter",{count:t})}if(s){return o("dso-icon",{icon:s})}};const p="*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}:host{display:block}:host .dso-section-handle{font-size:1em;font-weight:600;line-height:1.375em;margin:0;position:relative}:host .dso-section-handle>a:active{text-decoration:none}:host .dso-section-handle a{text-decoration:none}:host .dso-section-handle a:hover,:host .dso-section-handle a:focus{text-decoration:none}:host .dso-section-handle a:active{text-decoration:underline}:host .dso-section-handle .dso-status{font-weight:400;text-decoration:underline}:host .dso-section-handle>button,:host .dso-section-handle>a{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;font-family:Asap, sans-serif;font-size:1em;font-weight:600;line-height:1.375em;margin:0;padding:12px 16px 12px;text-align:start;width:100%;word-break:break-word}:host .dso-section-handle>button dso-icon,:host .dso-section-handle>a dso-icon{flex-shrink:0}:host .dso-section-handle>button dso-icon.dso-section-handle-chevron,:host .dso-section-handle>a dso-icon.dso-section-handle-chevron{transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transform:rotate(0)}:host .dso-section-handle>button>.dso-section-handle-addons:first-child,:host .dso-section-handle>button>dso-icon:first-child,:host .dso-section-handle>a>.dso-section-handle-addons:first-child,:host .dso-section-handle>a>dso-icon:first-child{margin-right:8px}:host .dso-section-handle>button>dso-icon:last-child,:host .dso-section-handle>a>dso-icon:last-child{margin-left:auto}:host .dso-section-handle>button>.dso-section-handle-addons:last-child,:host .dso-section-handle>a>.dso-section-handle-addons:last-child{margin-left:auto}:host .dso-section-handle>button>.dso-section-handle-addons:last-child dso-attachments-counter,:host .dso-section-handle>button>.dso-section-handle-addons:last-child dso-icon,:host .dso-section-handle>a>.dso-section-handle-addons:last-child dso-attachments-counter,:host .dso-section-handle>a>.dso-section-handle-addons:last-child dso-icon{margin-left:16px}:host([open]:not([open=false])) .dso-section-handle>button .dso-section-handle-chevron:first-child,:host([open]:not([open=false])) .dso-section-handle>a .dso-section-handle-chevron:first-child{transform:rotate(90deg)}:host([open]:not([open=false])) .dso-section-handle>button .dso-section-handle-chevron:last-child,:host([open]:not([open=false])) .dso-section-handle>a .dso-section-handle-chevron:last-child{transform:rotate(-180deg)}.dso-section-body{background-color:#fff;border-top:0;margin-top:-4px}.dso-section-body .dso-section-body-content{padding:20px 16px 16px}:host(.dso-accordion-default) .dso-section-handle{background-color:#fff;border:1px solid #8b4a6a;border-radius:4px}:host(.dso-accordion-default) .dso-section-handle a,:host(.dso-accordion-default) .dso-section-handle button{color:#8b4a6a}:host(.dso-accordion-default) .dso-section-handle a:hover,:host(.dso-accordion-default) .dso-section-handle a:active,:host(.dso-accordion-default) .dso-section-handle a.active,:host(.dso-accordion-default) .dso-section-handle button:hover,:host(.dso-accordion-default) .dso-section-handle button:active,:host(.dso-accordion-default) .dso-section-handle button.active{color:#8b4a6a}:host(.dso-accordion-default) .dso-section-body{border:1px solid #8b4a6a;border-radius:0 0 4px 4px}:host(.dso-accordion-default[open]:not([open=false]))>.dso-section-handle{background-color:#8b4a6a;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}:host(.dso-accordion-default[open]:not([open=false]))>.dso-section-handle a,:host(.dso-accordion-default[open]:not([open=false]))>.dso-section-handle button{color:#fff}:host(.dso-accordion-default[open]:not([open=false]))>.dso-section-handle a dso-attachments-counter,:host(.dso-accordion-default[open]:not([open=false]))>.dso-section-handle button dso-attachments-counter{--dso-attachments-counter-color:#fff;--dso-icon:var(--di-paperclip-wit)}:host(.dso-accordion-default.dso-nested-accordion[open]:not([open=false])) .dso-section-body{background-color:#e5e5e5}:host(.dso-accordion-compact) .dso-section-handle{border-bottom:1px solid transparent;border-top:1px solid #ccc}:host(.dso-accordion-compact) .dso-section-handle a,:host(.dso-accordion-compact) .dso-section-handle button{color:#39870c;padding-bottom:11px;padding-left:0;padding-top:11px}:host(.dso-accordion-compact) .dso-section-handle a:hover,:host(.dso-accordion-compact) .dso-section-handle a:active,:host(.dso-accordion-compact) .dso-section-handle a.active,:host(.dso-accordion-compact) .dso-section-handle button:hover,:host(.dso-accordion-compact) .dso-section-handle button:active,:host(.dso-accordion-compact) .dso-section-handle button.active{color:#39870c}:host(.dso-accordion-compact) .dso-section-body .dso-section-body-content{padding-left:32px;padding-top:0;padding-right:0}:host(.dso-accordion-compact.dso-accordion-reverse-align) .dso-section-handle a,:host(.dso-accordion-compact.dso-accordion-reverse-align) .dso-section-handle button{padding-left:16px}:host(.dso-accordion-compact.dso-accordion-reverse-align) .dso-section-body .dso-section-body-content{padding-left:16px;padding-right:0}:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle{background-color:transparent}:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle a,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle button{color:#39870c}:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle a:hover,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle a:active,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle a.active,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle button:hover,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle button:active,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle button.active{color:#39870c}:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle a dso-attachments-counter,:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle button dso-attachments-counter{--dso-attachments-counter-color:#666;--dso-icon:var(--di-paperclip-grijs)}:host(.dso-accordion-compact[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-body{border-top:0}:host(.dso-accordion-compact.dso-nested-accordion[open]:not([open=false]))>.dso-section-body{padding-bottom:0}:host(.dso-accordion-compact.dso-nested-accordion[open]:not([open=false]))>.dso-section-body dso-accordion-section:last-child{border-bottom:0}:host(.dso-accordion-compact-black) .dso-section-handle{border-bottom:1px solid transparent;border-top:1px solid #ccc}:host(.dso-accordion-compact-black) .dso-section-handle a,:host(.dso-accordion-compact-black) .dso-section-handle button{color:#000;padding-bottom:11px;padding-left:0;padding-top:11px}:host(.dso-accordion-compact-black) .dso-section-handle a:hover,:host(.dso-accordion-compact-black) .dso-section-handle a:active,:host(.dso-accordion-compact-black) .dso-section-handle a.active,:host(.dso-accordion-compact-black) .dso-section-handle button:hover,:host(.dso-accordion-compact-black) .dso-section-handle button:active,:host(.dso-accordion-compact-black) .dso-section-handle button.active{color:#000}:host(.dso-accordion-compact-black) .dso-section-body .dso-section-body-content{padding-left:32px;padding-top:0;padding-right:0}:host(.dso-accordion-compact-black.dso-accordion-reverse-align) .dso-section-handle a,:host(.dso-accordion-compact-black.dso-accordion-reverse-align) .dso-section-handle button{padding-left:16px}:host(.dso-accordion-compact-black.dso-accordion-reverse-align) .dso-section-body .dso-section-body-content{padding-left:16px;padding-right:0}:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle{background-color:transparent}:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle a,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle button{color:#000}:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle a:hover,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle a:active,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle a.active,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle button:hover,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle button:active,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle button.active{color:#000}:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle a dso-attachments-counter,:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-handle button dso-attachments-counter{--dso-attachments-counter-color:#666;--dso-icon:var(--di-paperclip-grijs)}:host(.dso-accordion-compact-black[open]:not([open=false]))>.dso-section-body{border-top:0}:host(.dso-accordion-compact-black.dso-nested-accordion[open]:not([open=false]))>.dso-section-body{padding-bottom:0}:host(.dso-accordion-compact-black.dso-nested-accordion[open]:not([open=false]))>.dso-section-body dso-accordion-section:last-child{border-bottom:0}:host(.dso-accordion-conclusion) .dso-section-handle{background-color:#f2f2f2;border:1px solid #f2f2f2}:host(.dso-accordion-conclusion) .dso-section-handle a,:host(.dso-accordion-conclusion) .dso-section-handle button{color:#000}:host(.dso-accordion-conclusion) .dso-section-handle a:hover,:host(.dso-accordion-conclusion) .dso-section-handle a:active,:host(.dso-accordion-conclusion) .dso-section-handle a.active,:host(.dso-accordion-conclusion) .dso-section-handle button:hover,:host(.dso-accordion-conclusion) .dso-section-handle button:active,:host(.dso-accordion-conclusion) .dso-section-handle button.active{background-color:#e5e5e5}:host(.dso-accordion-conclusion) .dso-section-handle a dso-attachments-counter,:host(.dso-accordion-conclusion) .dso-section-handle button dso-attachments-counter{--dso-attachments-counter-color:#000;--dso-icon:var(--di-paperclip-zwart)}:host(.dso-accordion-conclusion) .dso-section-body{border:2px solid #f2f2f2}:host(.dso-accordion-conclusion[open]:not([open=false]):not(.dso-nested-accordion))>.dso-section-handle{background-color:#f2f2f2}:host(.dso-accordion-conclusion.dso-nested-accordion[open]:not([open=false])){background-color:#fff}:host(.dso-accordion-neutral) .dso-section-handle{background-color:transparent;border:none;border-radius:4px;margin-block-end:2px}:host(.dso-accordion-neutral) .dso-section-handle a,:host(.dso-accordion-neutral) .dso-section-handle button{color:#000;padding:5px 16px 5px 0}:host(.dso-accordion-neutral) .dso-section-handle a:hover,:host(.dso-accordion-neutral) .dso-section-handle a:active,:host(.dso-accordion-neutral) .dso-section-handle a.active,:host(.dso-accordion-neutral) .dso-section-handle button:hover,:host(.dso-accordion-neutral) .dso-section-handle button:active,:host(.dso-accordion-neutral) .dso-section-handle button.active{color:#000}:host(.dso-accordion-neutral) .dso-section-handle a .info-icon,:host(.dso-accordion-neutral) .dso-section-handle button .info-icon{color:#39870c;margin-inline-start:8px}:host(.dso-accordion-neutral) .dso-section-handle dso-icon,:host(.dso-accordion-neutral) .dso-section-handle svg.di{vertical-align:top}:host(.dso-accordion-neutral) .dso-section-body{background-color:transparent;border:1px solid #275937;box-shadow:1px 3px 4px rgba(0, 0, 0, 0.5);margin-block:0}:host(.dso-accordion-neutral) .dso-section-body.dso-animate-ready{transition:margin-block 260ms cubic-bezier(0.4, 0, 0.2, 1)}:host(.dso-accordion-neutral) .dso-section-body .dso-section-body-content{padding:16px 32px 24px 32px}:host(.dso-accordion-neutral[open]:not([open=false]))>.dso-section-handle{background-color:transparant;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}:host(.dso-accordion-neutral[open]:not([open=false]))>.dso-section-handle a,:host(.dso-accordion-neutral[open]:not([open=false]))>.dso-section-handle button{color:#000}:host(.dso-accordion-neutral[open]:not([open=false]))>.dso-section-handle a dso-attachments-counter,:host(.dso-accordion-neutral[open]:not([open=false]))>.dso-section-handle button dso-attachments-counter{--dso-attachments-counter-color:#fff;--dso-icon:var(--di-paperclip-wit)}:host(.dso-accordion-neutral[open]:not([open=false])) .dso-section-body{margin-block-end:16px;margin-block-start:2px}:host(.dso-accordion-neutral.dso-nested-accordion[open]:not([open=false])) .dso-section-body{background-color:#e5e5e5}";const u=class{constructor(o){n(this,o);this.dsoToggleClick=s(this,"dsoToggleClick",3);this.dsoAnimationEnd=s(this,"dsoAnimationEnd",3);this.handleClick=o=>{this.dsoToggleClick.emit({originalEvent:o,open:!this.open})};this.handleExpandableAnimationEnd=o=>{this.dsoAnimationEnd.emit({open:this.open,scrollIntoView:()=>this.scrollIntoView(o.detail.bodyHeight)})};this.handleTitle=undefined;this.heading="h2";this.handleUrl=undefined;this.status=undefined;this.attachmentCount=undefined;this.icon=undefined;this.statusDescription=undefined;this.open=false;this.hasNestedAccordion=false;this.hover=false}componentWillLoad(){var o;this.hasNestedAccordion=this.host.querySelector("dso-accordion")!==null;(o=this.accordion)===null||o===void 0?void 0:o._getState().then((o=>{this.accordionState=o;t(this.host)}))}get isNeutral(){var o;return((o=this.accordionState)===null||o===void 0?void 0:o.variant)==="neutral"}async scrollIntoView(o){var n,s;const t=(n=this.sectionBody)===null||n===void 0?void 0:n.getBoundingClientRect();const d=(s=this.sectionHeading)===null||s===void 0?void 0:s.getBoundingClientRect();if(!t||!d||!this.accordionState){return}const c=d.top+d.height+(this.open?o!==null&&o!==void 0?o:0:0);if(c>window.innerHeight){const o=c-d.top;const n=o>window.innerHeight;window.scrollTo({top:n?this.host.offsetTop:this.host.offsetTop-(window.innerHeight-o),behavior:"smooth"})}else if(d.top<0){window.scrollTo({top:this.host.offsetTop,behavior:"smooth"})}}get accordion(){return this.host.closest("dso-accordion")}render(){var n;const{variant:s,reverseAlign:t}=(n=this.accordionState)!==null&&n!==void 0?n:{};const e=!!this.statusDescription||!!this.status||!!this.icon||!!this.attachmentCount;return o(c,{class:{"dso-accordion-section":true,["dso-accordion-"+s]:true,"dso-nested-accordion":this.hasNestedAccordion,"dso-accordion-reverse-align":t!==null&&t!==void 0?t:false},hidden:!s,onMouseenter:()=>this.hover=true,onMouseleave:()=>this.hover=false},o(r,{heading:this.heading,ref:o=>this.sectionHeading=o},o(i,{handleUrl:this.handleUrl,onClick:this.handleClick,open:this.open},t?o(d,null,e&&o("div",{class:"dso-section-handle-addons"},o(h,{icon:this.icon})),o("span",null,this.handleTitle),o("dso-icon",{class:"dso-section-handle-chevron",icon:"chevron-down"})):o(d,null,o("dso-icon",{class:"dso-section-handle-chevron",icon:"chevron-right"}),this.status&&o("span",{class:"sr-only"},a[this.status]),o("span",null,this.handleTitle,this.isNeutral&&o("dso-icon",{class:"info-icon",icon:this.open||this.hover?"info-active":"info"})),e&&o("div",{class:"dso-section-handle-addons"},this.statusDescription&&o("span",{class:"dso-status"},this.statusDescription),o(h,{state:this.status,icon:this.icon,attachmentCount:this.attachmentCount}))))),o("dso-expandable",{class:"dso-section-body",open:this.open,enableAnimation:true,minimumHeight:this.isNeutral?0:4,onDsoExpandableAnimationEnd:this.handleExpandableAnimationEnd},o("div",{class:"dso-section-body-content",ref:o=>this.sectionBody=o},o("slot",null))))}get host(){return e(this)}};u.style=p;export{u as dso_accordion_section};
2
- //# sourceMappingURL=p-a3dc08f4.entry.js.map