@dso-toolkit/core 81.0.0 → 82.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 (171) hide show
  1. package/dist/bundle/dso-accordion-section.js +3 -3
  2. package/dist/bundle/dso-accordion-section.js.map +1 -1
  3. package/dist/bundle/dso-accordion.js +2 -2
  4. package/dist/bundle/dso-accordion.js.map +1 -1
  5. package/dist/bundle/dso-document-component.js +1 -1
  6. package/dist/bundle/dso-history-item.js +3 -2
  7. package/dist/bundle/dso-history-item.js.map +1 -1
  8. package/dist/bundle/dso-list-button.js +1 -1
  9. package/dist/bundle/dso-list-button.js.map +1 -1
  10. package/dist/bundle/dso-map-base-layers.js +1 -1
  11. package/dist/bundle/dso-map-overlays.js +1 -1
  12. package/dist/bundle/dso-ozon-content.js +1 -1
  13. package/dist/bundle/dso-selectable.js +1 -1
  14. package/dist/bundle/dsot-document-component-demo.js +2 -2
  15. package/dist/bundle/{p-ZFqVNkha.js → p-COQMcyrp.js} +3 -3
  16. package/dist/bundle/p-COQMcyrp.js.map +1 -0
  17. package/dist/bundle/{p-CN3aN7RU.js → p-DbaZzGS_.js} +73 -22
  18. package/dist/bundle/p-DbaZzGS_.js.map +1 -0
  19. package/dist/bundle/{p-CFAsG6Ok.js → p-ZIaudZgD.js} +6 -5
  20. package/dist/bundle/p-ZIaudZgD.js.map +1 -0
  21. package/dist/cjs/dso-accordion-section.cjs.entry.js +3 -3
  22. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  23. package/dist/cjs/dso-accordion-section.entry.cjs.js.map +1 -1
  24. package/dist/cjs/dso-accordion.cjs.entry.js +2 -2
  25. package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
  26. package/dist/cjs/dso-accordion.entry.cjs.js.map +1 -1
  27. package/dist/cjs/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-ozon-content-toggletip.dso-panel.dso-table.entry.cjs.js.map +1 -1
  28. package/dist/cjs/dso-alert_7.cjs.entry.js +61 -20
  29. package/dist/cjs/dso-alert_7.cjs.entry.js.map +1 -1
  30. package/dist/cjs/dso-annotation-locatie.dso-document-component.entry.cjs.js.map +1 -1
  31. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +4 -3
  32. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
  33. package/dist/cjs/dso-history-item.cjs.entry.js +3 -2
  34. package/dist/cjs/dso-history-item.cjs.entry.js.map +1 -1
  35. package/dist/cjs/dso-history-item.entry.cjs.js.map +1 -1
  36. package/dist/cjs/dso-info.dso-selectable.entry.cjs.js.map +1 -1
  37. package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
  38. package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  40. package/dist/cjs/dso-list-button.entry.cjs.js.map +1 -1
  41. package/dist/cjs/parse-wijzigactie-from-node.function-DQ6mi_34.js +42 -0
  42. package/dist/cjs/parse-wijzigactie-from-node.function-DQ6mi_34.js.map +1 -0
  43. package/dist/collection/components/accordion/accordion.css +10 -0
  44. package/dist/collection/components/accordion/accordion.js +1 -1
  45. package/dist/collection/components/accordion/accordion.js.map +1 -1
  46. package/dist/collection/components/accordion/components/accordion-section.css +1 -0
  47. package/dist/collection/components/accordion/components/accordion-section.js +2 -2
  48. package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
  49. package/dist/collection/components/document-component/document-component.css +19 -12
  50. package/dist/collection/components/document-component/document-component.interfaces.js.map +1 -1
  51. package/dist/collection/components/document-component/document-component.js +4 -2
  52. package/dist/collection/components/document-component/document-component.js.map +1 -1
  53. package/dist/collection/components/history-item/history-item.css +4 -0
  54. package/dist/collection/components/history-item/history-item.interfaces.js.map +1 -1
  55. package/dist/collection/components/history-item/history-item.js +3 -2
  56. package/dist/collection/components/history-item/history-item.js.map +1 -1
  57. package/dist/collection/components/ozon-content/nodes/begrip.node.js +31 -0
  58. package/dist/collection/components/ozon-content/nodes/begrip.node.js.map +1 -0
  59. package/dist/collection/components/ozon-content/nodes/begrippenlijst.node.js +16 -0
  60. package/dist/collection/components/ozon-content/nodes/begrippenlijst.node.js.map +1 -0
  61. package/dist/collection/components/ozon-content/nodes/figuur.node.js +4 -4
  62. package/dist/collection/components/ozon-content/nodes/figuur.node.js.map +1 -1
  63. package/dist/collection/components/ozon-content/nodes/kop.node.js +1 -1
  64. package/dist/collection/components/ozon-content/nodes/kop.node.js.map +1 -1
  65. package/dist/collection/components/ozon-content/nodes/table.node/table-cell.js +4 -2
  66. package/dist/collection/components/ozon-content/nodes/table.node/table-cell.js.map +1 -1
  67. package/dist/collection/components/ozon-content/nodes/table.node/table-rows.js +2 -1
  68. package/dist/collection/components/ozon-content/nodes/table.node/table-rows.js.map +1 -1
  69. package/dist/collection/components/ozon-content/nodes/text.node.js +2 -7
  70. package/dist/collection/components/ozon-content/nodes/text.node.js.map +1 -1
  71. package/dist/collection/components/ozon-content/ozon-content-context.interface.js.map +1 -1
  72. package/dist/collection/components/ozon-content/ozon-content-mapper.js +4 -0
  73. package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
  74. package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js.map +1 -1
  75. package/dist/collection/components/ozon-content/ozon-content.css +224 -0
  76. package/dist/collection/components/ozon-content/ozon-content.interfaces.js.map +1 -1
  77. package/dist/collection/components/ozon-content/ozon-content.js +6 -6
  78. package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
  79. package/dist/collection/components/selectable/selectable.css +22 -6
  80. package/dist/collection/functional-components/mark-text/mark-text.functional-component.js +11 -0
  81. package/dist/collection/functional-components/mark-text/mark-text.functional-component.js.map +1 -0
  82. package/dist/collection/functional-components/mark-text/mark-text.interfaces.js +2 -0
  83. package/dist/collection/functional-components/mark-text/mark-text.interfaces.js.map +1 -0
  84. package/dist/components/document-component.js +4 -3
  85. package/dist/components/document-component.js.map +1 -1
  86. package/dist/components/dso-accordion-section.js +3 -3
  87. package/dist/components/dso-accordion-section.js.map +1 -1
  88. package/dist/components/dso-accordion.js +2 -2
  89. package/dist/components/dso-accordion.js.map +1 -1
  90. package/dist/components/dso-history-item.js +3 -2
  91. package/dist/components/dso-history-item.js.map +1 -1
  92. package/dist/components/dso-list-button.js.map +1 -1
  93. package/dist/components/ozon-content.js +71 -20
  94. package/dist/components/ozon-content.js.map +1 -1
  95. package/dist/components/selectable.js +1 -1
  96. package/dist/components/selectable.js.map +1 -1
  97. package/dist/dso-toolkit/dso-accordion-section.entry.esm.js.map +1 -1
  98. package/dist/dso-toolkit/dso-accordion.entry.esm.js.map +1 -1
  99. package/dist/dso-toolkit/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-ozon-content-toggletip.dso-panel.dso-table.entry.esm.js.map +1 -1
  100. package/dist/dso-toolkit/dso-annotation-locatie.dso-document-component.entry.esm.js.map +1 -1
  101. package/dist/dso-toolkit/dso-history-item.entry.esm.js.map +1 -1
  102. package/dist/dso-toolkit/dso-info.dso-selectable.entry.esm.js.map +1 -1
  103. package/dist/dso-toolkit/dso-list-button.entry.esm.js.map +1 -1
  104. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  105. package/dist/dso-toolkit/p-004b02b7.entry.js +2 -0
  106. package/dist/dso-toolkit/p-004b02b7.entry.js.map +1 -0
  107. package/dist/dso-toolkit/p-05275c43.entry.js +2 -0
  108. package/dist/dso-toolkit/p-05275c43.entry.js.map +1 -0
  109. package/dist/dso-toolkit/p-32b64025.entry.js.map +1 -1
  110. package/dist/dso-toolkit/p-4bd397cb.entry.js +2 -0
  111. package/dist/dso-toolkit/p-4bd397cb.entry.js.map +1 -0
  112. package/dist/dso-toolkit/p-4f87903d.entry.js +2 -0
  113. package/dist/dso-toolkit/p-4f87903d.entry.js.map +1 -0
  114. package/dist/dso-toolkit/p-5a7ce367.entry.js +2 -0
  115. package/dist/dso-toolkit/p-5a7ce367.entry.js.map +1 -0
  116. package/dist/dso-toolkit/p-DrItCTMr.js +2 -0
  117. package/dist/dso-toolkit/p-DrItCTMr.js.map +1 -0
  118. package/dist/dso-toolkit/p-c0bb872c.entry.js +2 -0
  119. package/dist/dso-toolkit/p-c0bb872c.entry.js.map +1 -0
  120. package/dist/esm/dso-accordion-section.entry.js +3 -3
  121. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  122. package/dist/esm/dso-accordion.entry.js +2 -2
  123. package/dist/esm/dso-accordion.entry.js.map +1 -1
  124. package/dist/esm/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-ozon-content-toggletip.dso-panel.dso-table.entry.js.map +1 -1
  125. package/dist/esm/dso-alert_7.entry.js +61 -20
  126. package/dist/esm/dso-alert_7.entry.js.map +1 -1
  127. package/dist/esm/dso-annotation-locatie.dso-document-component.entry.js.map +1 -1
  128. package/dist/esm/dso-annotation-locatie_2.entry.js +4 -3
  129. package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
  130. package/dist/esm/dso-history-item.entry.js +3 -2
  131. package/dist/esm/dso-history-item.entry.js.map +1 -1
  132. package/dist/esm/dso-info.dso-selectable.entry.js.map +1 -1
  133. package/dist/esm/dso-info_2.entry.js +1 -1
  134. package/dist/esm/dso-info_2.entry.js.map +1 -1
  135. package/dist/esm/dso-list-button.entry.js.map +1 -1
  136. package/dist/esm/parse-wijzigactie-from-node.function-lzoUYmkU.js +38 -0
  137. package/dist/esm/parse-wijzigactie-from-node.function-lzoUYmkU.js.map +1 -0
  138. package/dist/types/components/document-component/document-component.interfaces.d.ts +4 -4
  139. package/dist/types/components/history-item/history-item.interfaces.d.ts +1 -1
  140. package/dist/types/components/ozon-content/nodes/begrip.node.d.ts +6 -0
  141. package/dist/types/components/ozon-content/nodes/begrippenlijst.node.d.ts +6 -0
  142. package/dist/types/components/ozon-content/nodes/table.node/table-cell.d.ts +2 -0
  143. package/dist/types/components/ozon-content/ozon-content-context.interface.d.ts +3 -2
  144. package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +3 -2
  145. package/dist/types/components/ozon-content/ozon-content.d.ts +3 -2
  146. package/dist/types/components/ozon-content/ozon-content.interfaces.d.ts +0 -6
  147. package/dist/types/components.d.ts +6 -4
  148. package/dist/types/functional-components/mark-text/mark-text.functional-component.d.ts +8 -0
  149. package/dist/types/functional-components/mark-text/mark-text.interfaces.d.ts +6 -0
  150. package/package.json +3 -3
  151. package/dist/bundle/p-CFAsG6Ok.js.map +0 -1
  152. package/dist/bundle/p-CN3aN7RU.js.map +0 -1
  153. package/dist/bundle/p-ZFqVNkha.js.map +0 -1
  154. package/dist/cjs/parse-wijzigactie-from-node.function-DVYsomcI.js +0 -29
  155. package/dist/cjs/parse-wijzigactie-from-node.function-DVYsomcI.js.map +0 -1
  156. package/dist/dso-toolkit/p-622e11c0.entry.js +0 -2
  157. package/dist/dso-toolkit/p-622e11c0.entry.js.map +0 -1
  158. package/dist/dso-toolkit/p-70ea6c42.entry.js +0 -2
  159. package/dist/dso-toolkit/p-70ea6c42.entry.js.map +0 -1
  160. package/dist/dso-toolkit/p-932b7006.entry.js +0 -2
  161. package/dist/dso-toolkit/p-932b7006.entry.js.map +0 -1
  162. package/dist/dso-toolkit/p-DD1v6_X_.js +0 -2
  163. package/dist/dso-toolkit/p-DD1v6_X_.js.map +0 -1
  164. package/dist/dso-toolkit/p-c123217b.entry.js +0 -2
  165. package/dist/dso-toolkit/p-c123217b.entry.js.map +0 -1
  166. package/dist/dso-toolkit/p-d14bcff7.entry.js +0 -2
  167. package/dist/dso-toolkit/p-d14bcff7.entry.js.map +0 -1
  168. package/dist/dso-toolkit/p-ebef2eef.entry.js +0 -2
  169. package/dist/dso-toolkit/p-ebef2eef.entry.js.map +0 -1
  170. package/dist/esm/parse-wijzigactie-from-node.function-DD1v6_X_.js +0 -26
  171. package/dist/esm/parse-wijzigactie-from-node.function-DD1v6_X_.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["translations","en","close","success","info","warning","error","nl","alertCss","Alert","constructor","hostRef","this","closable","text","i18n","host","render","status","Error","h","key","class","clsx","compact","role","roleAlert","undefined","icon","label","variant","onDsoClick","e","dsoClose","emit","originalEvent","badgeCss","Badge","imageOverlayCss","wijzigactieLabels","verwijder","voegtoe","Dimmer","active","src","alt","ref","click","children","ImageOverlay","zoomable","titelSlot","bijschriftSlot","loadListener","event","target","HTMLImageElement","setZoomable","connectedCallback","querySelector","componentDidLoad","resizeObserver","ResizeObserver","debounce","imgElement","mutationObserver","MutationObserver","forceUpdate","_a","type","_b","disconnect","initZoomableImage","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","trap","deactivate","_c","complete","imageElement","width","naturalWidth","height","naturalHeight","isWijzigactie","wijzigactie","editActionLabel","button","element","iconButtonElement","Host","onClick","setFocus","wrapperElement","name","hidden","componentDidRender","createFocusTrap","escapeDeactivates","clickOutsideDeactivates","MouseEvent","composedPath","setReturnFocus","onDeactivate","tabbableOptions","getShadowRoot","node","shadowRoot","activate","getNodeName","Element","localName","nodeName","includes","substring","indexOf","OzonContentAbbrNode","mapNodeToJsx","title","getAttribute","childNodes","WrapWijzigactie","wijzigactieToClassName","isNestedAl","path","some","n","OzonContentAlNode","inline","content","parseWijzigactieFromNode","className","OzonContentBronNode","OzonContentDocumentNode","Fragment","symbolTag","reAsciiWord","reLatin","rsAstralRange","rsComboMarksRange","rsComboSymbolsRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsLowerMisc","rsUpperMisc","rsOptLowerContr","rsOptUpperContr","reOptMod","rsOptVar","rsOptJoin","join","rsSeq","rsEmoji","reApos","RegExp","reComboMark","reUnicodeWord","reHasUnicodeWord","deburredLetters","freeGlobal","global","Object","freeSelf","self","root","Function","arrayReduce","array","iteratee","accumulator","initAccum","index","length","asciiWords","string","match","basePropertyOf","object","deburrLetter","hasUnicodeWord","test","unicodeWords","objectProto","prototype","objectToString","toString","Symbol","symbolProto","symbolToString","baseToString","value","isSymbol","call","result","Infinity","createCompounder","callback","words","deburr","replace","isObjectLike","kebabCase","word","toLowerCase","pattern","guard","lodash_kebabcase","OzonContentExtRefNode","urlResolver","tagName","href","rel","OzonContentFallbackNode","Bijschrift","bijschrift","bron","bronText","textContent","trim","inhoud","OzonContentFiguurNode","getStyle","illustratie","widthPixels","Number","breedte","heightPixels","hoogte","style","uitlijning","widthPercentage","Math","min","dpi","assign","mapIllustratieNode","naam","find","u","Array","from","titel","illustratieNode","bijschriftNode","locatie","slot","_e","_d","OzonContentInhoudNode","richContent","OzonContentInlineTekstAfbeeldingNode","OzonContentInlineNodes","Tag","OzonContentIntIoRefNode","emitClick","intIoRefOnClick","OzonContentIntRefNode","begripResolver","scope","definitie","definitieNode","parseXml","handleIntRefClick","isModifiedEvent","mapData","nummer","opschrift","subtitels","querySelectorAll","OzonContentKopNode","handles","handleKopClick","wijzigactieLabel","wijzigactieNummer","wijzigactieOpschrift","part","map","subtitel","wijzigactieSubtitel","OzonContentLijstNode","parseTypeFromLijstNode","aanhef","sluiting","listItems","filter","item","itemNodes","liNummer","liWijzigactie","OzonContentNieuweTekstNode","OzonContentNootNode","identify","state","openNoteId","setState","noteId","console","noteControlsId","nootNummer","onBlur","id","stateless","descriptive","mapColspecs","count","nodeList","elements","totalWidth","getTotalWidth","columns","colNumber","colsep","number","parseInt","rowsep","getWidth","reduce","colWidth","isNaN","round","Colgroup","colspecs","colspec","getColspecStartColsep","nameStart","colspecStart","c","getColspecStartRowsep","getData","cell","row","parentElement","tgroup","table","moreRows","nameEnd","getColspan","colspecEnd","colspan","Cell","context","rowSpan","colSpan","Rows","rows","colAttribute","columnCount","caption","headRows","bodyRows","frame","OzonContentTableNode","uuidv4","OzonContentTextNode","mark","emitMarkItemHighlight","highlight","OzonContentVerwijderdeTekstNode","Mapper","mappers","skip","t","m","push","fallbackNode","findMapper","isArray","NodeList","mapper","identity","s","transform","input","doc","getRootNode","ozonContentCss","OzonContent","handleMarkItemHighlight","elementRef","dsoOzonContentMarkItemHighlight","contentWatcher","dsoClick","transformed","ozonContentToggletipCss","ozonContentToggletip","showToggletip","open","addEventListener","keyDownListener","focusOutListener","removeEventListener","contains","relatedTarget","tooltip","showPopover","hidePopover","cleanUp","container","tooltipArrow","positionTooltip","referenceElement","tipRef","tipArrowRef","placementTip","Tooltip","visible","onAfterHidden","tipElementRef","tipArrowElementRef","panelCss","Panel","emphasized","dsoCloseClick","detail","closeButtonLabel","tableCss","Table","labelledbyId","v4","noModal","modalActive","startResponsiveBehavior","componentWillLoad","entries","setResponsiveTable","setFocusTrap","isResponsive","placeholderHeight","focusTrapElement","display","buttonElement","openModal","closeModal","clientHeight","dsoTable","tableElement","HTMLTableElement","floor","getBoundingClientRect","contentRect"],"sources":["src/components/alert/alert.i18n.ts","src/components/alert/alert.scss?tag=dso-alert&encapsulation=shadow","src/components/alert/alert.tsx","src/components/badge/badge.scss?tag=dso-badge&encapsulation=shadow","src/components/badge/badge.tsx","src/components/image-overlay/image-overlay.scss?tag=dso-image-overlay&encapsulation=shadow","src/components/image-overlay/image-overlay.tsx","src/components/ozon-content/get-node-name.function.ts","src/components/ozon-content/nodes/abbr.node.tsx","src/components/ozon-content/functional-components/wrap-wijzigactie.functional-component.tsx","src/components/ozon-content/functions/wijzigactie-to-class-name.function.ts","src/components/ozon-content/nodes/al.node.tsx","src/components/ozon-content/nodes/bron.node.tsx","src/components/ozon-content/nodes/document.node.tsx","../../node_modules/lodash.kebabcase/index.js","src/components/ozon-content/nodes/ext-ref.node.tsx","src/components/ozon-content/nodes/fallback.node.tsx","src/components/ozon-content/nodes/figuur.node.tsx","src/components/ozon-content/nodes/inhoud.node.tsx","src/components/ozon-content/nodes/inline-tekst-afbeelding.node.tsx","src/components/ozon-content/nodes/inline.nodes.tsx","src/components/ozon-content/nodes/int-io-ref.node.tsx","src/components/ozon-content/nodes/int-ref.node.tsx","src/components/ozon-content/nodes/kop.node.tsx","src/components/ozon-content/nodes/lijst.node.tsx","src/components/ozon-content/nodes/nieuwe-tekst.node.tsx","src/components/ozon-content/nodes/noot.node.tsx","src/components/ozon-content/nodes/table.node/colspec/colspec-mapper.ts","src/components/ozon-content/nodes/table.node/table-colgroup.tsx","src/components/ozon-content/nodes/table.node/table-cell.tsx","src/components/ozon-content/nodes/table.node/table-rows.tsx","src/components/ozon-content/nodes/table.node/table.node.tsx","src/components/ozon-content/nodes/text.node.tsx","src/components/ozon-content/nodes/verwijderde-tekst.node.tsx","src/components/ozon-content/ozon-content-mapper.tsx","src/components/ozon-content/ozon-content.scss?tag=dso-ozon-content&encapsulation=shadow","src/components/ozon-content/ozon-content.tsx","src/components/ozon-content/components/ozon-content-toggletip/ozon-content-toggletip.scss?tag=dso-ozon-content-toggletip&encapsulation=shadow","src/components/ozon-content/components/ozon-content-toggletip/ozon-content-toggletip.tsx","src/components/panel/panel.i18n.ts","src/components/panel/panel.scss?tag=dso-panel&encapsulation=shadow","src/components/panel/panel.tsx","src/components/table/table.scss?tag=dso-table&encapsulation=shadow","src/components/table/table.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-alert\": {\r\n close: \"Close\",\r\n success: \"Success\",\r\n info: \"Notice\",\r\n warning: \"Warning\",\r\n error: \"Error\",\r\n },\r\n },\r\n nl: {\r\n \"dso-alert\": {\r\n close: \"Sluiten\",\r\n success: \"Gelukt\",\r\n info: \"Opmerking\",\r\n warning: \"Waarschuwing\",\r\n error: \"Fout\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/alert\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host(:not(:first-child)) {\r\n margin-block-start: units.$u3;\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\r\n.alert {\r\n @include alert.root();\r\n\r\n dso-icon-button {\r\n position: absolute;\r\n inset-block-start: units.$u1 - alert.$border-size;\r\n inset-inline-end: units.$u1 - alert.$border-size;\r\n }\r\n\r\n &.dso-compact {\r\n min-block-size: alert.$inline-padding;\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./alert.i18n\";\r\nimport { AlertCloseEvent } from \"./alert.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-alert\",\r\n styleUrl: \"alert.scss\",\r\n shadow: true,\r\n})\r\nexport class Alert {\r\n @Element()\r\n host!: HTMLDsoAlertElement;\r\n\r\n /**\r\n * Set status of alert\r\n */\r\n @Prop({ reflect: true })\r\n status!: \"success\" | \"info\" | \"warning\" | \"error\";\r\n\r\n /**\r\n * Whether or not to show the role attribute with value \"alert\". To control the tooltip add the `role-alert` attribute.\r\n */\r\n @Prop()\r\n roleAlert?: boolean;\r\n\r\n /**\r\n * Show alert as compact variant (without icon)\r\n */\r\n @Prop({ reflect: true })\r\n compact?: boolean;\r\n\r\n /**\r\n * When `false` the close button in the alert will not be rendered.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n /**\r\n * Emitted when the user closes the Alert.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<AlertCloseEvent>;\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n render() {\r\n const status = this.text(this.status);\r\n if (!status) {\r\n throw new Error(`Invalid status ${this.status}`);\r\n }\r\n\r\n return (\r\n <div\r\n class={clsx(\"alert\", `alert-${this.status}`, { \"dso-compact\": this.compact })}\r\n role={this.roleAlert ? \"alert\" : undefined}\r\n >\r\n {!this.compact && <dso-icon class=\"icon-status\" icon={\"status-\" + this.status} />}\r\n <span class=\"sr-only\">{status}:</span>\r\n <slot></slot>\r\n\r\n {this.closable && (\r\n <dso-icon-button\r\n label={this.text(\"close\")}\r\n variant=\"tertiary\"\r\n icon=\"times\"\r\n onDsoClick={(e) => this.dsoClose.emit({ originalEvent: e })}\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/badge\";\r\n\r\n:host {\r\n display: inline-block;\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\r\n.dso-badge {\r\n @include badge.root();\r\n}\r\n","import { Component, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { BadgeStatus } from \"./badge.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-badge\",\r\n styleUrl: \"badge.scss\",\r\n shadow: true,\r\n})\r\nexport class Badge {\r\n /**\r\n * The status of the Badge.\r\n */\r\n @Prop()\r\n status?: BadgeStatus;\r\n\r\n render() {\r\n return (\r\n <span class={clsx(\"dso-badge\", { [`badge-${this.status}`]: this.status })}>\r\n <slot></slot>\r\n </span>\r\n );\r\n }\r\n}\r\n","@use \"sass:color\";\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n:host {\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n:host(:hover) .open,\r\n.open:focus {\r\n opacity: 1;\r\n}\r\n\r\n.open {\r\n // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\r\n & {\r\n opacity: 0;\r\n position: absolute;\r\n inset-inline-end: units.$u2;\r\n inset-block-start: units.$u2;\r\n }\r\n}\r\n\r\n.dimmer {\r\n position: fixed;\r\n inset: 0;\r\n z-index: zindex.$image-overlay - 1;\r\n display: flex;\r\n padding: units.$u4;\r\n background-color: color.scale(colors.$wit, $alpha: -20%);\r\n justify-content: center;\r\n}\r\n\r\n.wrapper {\r\n align-self: center;\r\n box-shadow: 0 units.$u1 units.$u3 0 rgba(25, 25, 25, 0.4);\r\n line-height: 0;\r\n outline: 4px solid colors.$wit;\r\n position: relative;\r\n z-index: zindex.$image-overlay;\r\n\r\n .title {\r\n background-color: colors.$wit;\r\n font-weight: 700;\r\n line-height: initial;\r\n padding: units.$u1;\r\n position: absolute;\r\n }\r\n\r\n img {\r\n inline-size: auto;\r\n block-size: auto;\r\n max-inline-size: 100%;\r\n max-block-size: calc(100vh - #{units.$u8});\r\n }\r\n\r\n .figuur-bijschrift:not([hidden]) {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n padding-block-end: units.$u1 * 1.5;\r\n padding-block-start: units.$u2;\r\n }\r\n}\r\n\r\n.close {\r\n // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\r\n & {\r\n position: absolute;\r\n inset-block-start: units.$u2;\r\n inset-inline-end: units.$u2;\r\n }\r\n}\r\n\r\nins.editaction-add {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include insert.element();\r\n @include insert.root();\r\n\r\n .wrapper {\r\n outline: none;\r\n padding: units.$u1;\r\n @include insert.root();\r\n\r\n .editaction-label {\r\n line-height: 1.5;\r\n }\r\n\r\n .close {\r\n inset-block-start: units.$u6;\r\n }\r\n }\r\n\r\n .open {\r\n inset-block-start: units.$u6;\r\n }\r\n}\r\n\r\ndel.editaction-remove {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n .wrapper {\r\n outline: none;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n .title {\r\n text-decoration: line-through;\r\n }\r\n\r\n .editaction-label {\r\n line-height: 1.5;\r\n }\r\n\r\n .close {\r\n inset-block-start: units.$u6;\r\n }\r\n }\r\n\r\n .open {\r\n inset-block-start: units.$u6;\r\n }\r\n}\r\n\r\n.editaction-label {\r\n font-style: italic;\r\n margin-block-end: units.$u1;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n FunctionalComponent,\r\n Host,\r\n Listen,\r\n Prop,\r\n State,\r\n forceUpdate,\r\n h,\r\n} from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { FocusTrap, createFocusTrap } from \"focus-trap\";\r\n\r\ntype ImageOverlayWijzigactie = \"voegtoe\" | \"verwijder\";\r\n\r\nconst wijzigactieLabels: { [wijzigactie in ImageOverlayWijzigactie]: string } = {\r\n verwijder: \"Verwijderd\",\r\n voegtoe: \"Toegevoegd\",\r\n};\r\n\r\nconst Dimmer: FunctionalComponent<{\r\n active: boolean;\r\n src: string | undefined;\r\n alt: string | undefined;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n click: () => void;\r\n}> = ({ active, src, alt, ref, click }, children) =>\r\n active &&\r\n src && (\r\n <div class=\"dimmer\">\r\n <div class=\"wrapper\" ref={ref}>\r\n {children[2]}\r\n {children[0]}\r\n <img src={src} alt={alt} />\r\n <dso-icon-button icon=\"times\" variant=\"map\" class=\"close\" label=\"Sluiten\" onDsoClick={click} />\r\n {children[1]}\r\n </div>\r\n </div>\r\n );\r\n\r\n@Component({\r\n tag: \"dso-image-overlay\",\r\n styleUrl: \"./image-overlay.scss\",\r\n shadow: true,\r\n})\r\nexport class ImageOverlay implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoImageOverlayElement;\r\n\r\n /**\r\n * The wijzigactie.\r\n */\r\n @Prop()\r\n wijzigactie?: string;\r\n\r\n @State()\r\n active = false;\r\n\r\n @State()\r\n zoomable = false;\r\n\r\n private iconButtonElement: HTMLDsoIconButtonElement | undefined;\r\n\r\n private wrapperElement: HTMLDivElement | undefined;\r\n\r\n private trap: FocusTrap | undefined;\r\n\r\n private titelSlot: HTMLElement | null = null;\r\n\r\n private bijschriftSlot: HTMLElement | null = null;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private resizeObserver?: ResizeObserver;\r\n\r\n @Listen(\"load\", { capture: true })\r\n loadListener(event: Event) {\r\n if (event.target instanceof HTMLImageElement) {\r\n this.setZoomable(event.target);\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n this.titelSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='titel']\");\r\n\r\n this.bijschriftSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='bijschrift']\");\r\n }\r\n\r\n componentDidLoad() {\r\n this.resizeObserver = new ResizeObserver(\r\n debounce(() => {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (imgElement instanceof HTMLImageElement) {\r\n this.setZoomable(imgElement);\r\n }\r\n }, 200),\r\n );\r\n\r\n this.mutationObserver = new MutationObserver((e) => {\r\n forceUpdate(this.host);\r\n\r\n if (e[0]?.type === \"childList\") {\r\n this.resizeObserver?.disconnect();\r\n // <img> is gone or a new element.\r\n this.initZoomableImage();\r\n }\r\n });\r\n\r\n this.mutationObserver.observe(this.host, {\r\n attributes: true,\r\n subtree: true,\r\n attributeFilter: [\"src\", \"alt\"],\r\n childList: true,\r\n });\r\n\r\n this.initZoomableImage();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.trap?.deactivate();\r\n this.mutationObserver?.disconnect();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private initZoomableImage(): void {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (!(imgElement instanceof HTMLImageElement)) {\r\n return;\r\n }\r\n\r\n // Due to timing issues where the image is loaded before we listen to load events we double check if the image is already complete.\r\n if (imgElement.complete) {\r\n this.setZoomable(imgElement);\r\n }\r\n\r\n this.resizeObserver?.observe(imgElement);\r\n }\r\n\r\n private setZoomable(imageElement: HTMLImageElement): void {\r\n const { width, naturalWidth, height, naturalHeight } = imageElement;\r\n\r\n this.zoomable = width < naturalWidth || height < naturalHeight;\r\n }\r\n\r\n private isWijzigactie(wijzigactie: string): wijzigactie is ImageOverlayWijzigactie {\r\n return wijzigactie === \"voegtoe\" || wijzigactie === \"verwijder\";\r\n }\r\n\r\n render() {\r\n const { src, alt } = this.host.querySelector(\"img\") ?? {};\r\n\r\n const editActionLabel: string | undefined =\r\n (this.wijzigactie && this.isWijzigactie(this.wijzigactie) && wijzigactieLabels[this.wijzigactie]) || undefined;\r\n\r\n const button = this.zoomable && (\r\n <dso-icon-button\r\n icon=\"external-link\"\r\n class=\"open\"\r\n variant=\"map\"\r\n label=\"Afbeelding vergroot weergeven\"\r\n ref={(element) => (this.iconButtonElement = element)}\r\n onDsoClick={() => (this.active = true)}\r\n />\r\n );\r\n\r\n if (this.wijzigactie === \"verwijder\") {\r\n return (\r\n <Host onClick={() => this.iconButtonElement?.setFocus()}>\r\n <del class=\"editaction-remove\">\r\n <div class=\"editaction-label\">{editActionLabel}:</div>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n {<div class=\"editaction-label\">{editActionLabel}:</div>}\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </del>\r\n </Host>\r\n );\r\n }\r\n\r\n if (this.wijzigactie === \"voegtoe\") {\r\n return (\r\n <Host onClick={() => this.iconButtonElement?.setFocus()}>\r\n <ins class=\"editaction-add\">\r\n <div class=\"editaction-label\">{editActionLabel}:</div>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n {<div class=\"editaction-label\">{editActionLabel}:</div>}\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </ins>\r\n </Host>\r\n );\r\n }\r\n\r\n return (\r\n <Host onClick={() => this.iconButtonElement?.setFocus()}>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </Host>\r\n );\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active && this.wrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.wrapperElement, {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.wrapperElement) {\r\n this.active = false;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.iconButtonElement ?? false,\r\n onDeactivate: () => (this.active = false),\r\n tabbableOptions: {\r\n getShadowRoot: (node) => node.shadowRoot ?? undefined,\r\n },\r\n }).activate();\r\n } else if (!this.active && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n}\r\n","export function getNodeName(node: Node): string {\r\n if (node instanceof Element) {\r\n return node.localName;\r\n }\r\n\r\n if (node.nodeName.includes(\":\")) {\r\n return node.nodeName.substring(node.nodeName.indexOf(\":\") + 1);\r\n }\r\n\r\n return node.nodeName;\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentAbbrNode implements OzonContentNode {\r\n name = \"abbr\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const title = node.getAttribute(\"title\");\r\n\r\n return (\r\n <span class=\"od-abbr\">\r\n <abbr>{mapNodeToJsx(node.childNodes)}</abbr>\r\n {title && ` (${title})`}\r\n </span>\r\n );\r\n }\r\n}\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport interface WrapWijzigactieProps {\r\n wijzigactie: OzonContentWijzigActie | undefined;\r\n}\r\n\r\nexport const WrapWijzigactie: FunctionalComponent<WrapWijzigactieProps> = ({ wijzigactie }, children) => {\r\n if (wijzigactie === \"voegtoe\") {\r\n return <ins>{children}</ins>;\r\n }\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return <del>{children}</del>;\r\n }\r\n\r\n return children;\r\n};\r\n","import { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport function wijzigactieToClassName(wijzigactie: OzonContentWijzigActie | undefined): string | undefined {\r\n if (wijzigactie === \"voegtoe\") {\r\n return \"editaction-add\";\r\n }\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return \"editaction-remove\";\r\n }\r\n\r\n return undefined;\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nfunction isNestedAl(path: Node[]) {\r\n return path.some((n) => {\r\n const nodeName = getNodeName(n);\r\n\r\n return nodeName === \"Al\" || nodeName === \"Opschrift\";\r\n });\r\n}\r\n\r\nexport class OzonContentAlNode implements OzonContentNode {\r\n name = \"Al\";\r\n\r\n render(node: Element, { mapNodeToJsx, path, inline }: OzonContentNodeContext) {\r\n let content = mapNodeToJsx(node.childNodes);\r\n const wijzigactie = parseWijzigactieFromNode(node);\r\n const className = wijzigactieToClassName(wijzigactie);\r\n\r\n if (inline || isNestedAl(path)) {\r\n content = (\r\n <span role=\"paragraph\" class={className}>\r\n {content}\r\n </span>\r\n );\r\n } else {\r\n content = <p class={className}>{content}</p>;\r\n }\r\n\r\n return <WrapWijzigactie wijzigactie={wijzigactie}>{content}</WrapWijzigactie>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentBronNode implements OzonContentNode {\r\n name = \"Bron\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <span class=\"dso-ozon-bron\">{mapNodeToJsx(node.childNodes)}</span>;\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentDocumentNode implements OzonContentNode {\r\n name = \"#document\";\r\n\r\n render(node: Node, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <Fragment>{mapNodeToJsx(node.childNodes)}</Fragment>;\r\n }\r\n}\r\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = kebabCase;\n","import { h } from \"@stencil/core\";\r\nimport kebabCase from \"lodash.kebabcase\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentExtRefNode implements OzonContentNode {\r\n name = [\"ExtRef\", \"ExtIoRef\"];\r\n\r\n render(node: Element, { mapNodeToJsx, urlResolver }: OzonContentNodeContext) {\r\n const className = kebabCase(node.tagName);\r\n const value = node.getAttribute(\"ref\");\r\n const name: \"ExtRef\" | \"ExtIoRef\" = node.tagName === \"ExtRef\" ? \"ExtRef\" : \"ExtIoRef\";\r\n const href = urlResolver ? urlResolver(name, \"ref\", value, node) : value;\r\n\r\n return (\r\n <a\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n href={href ?? undefined}\r\n class={className}\r\n title=\"Opent andere website in nieuw tabblad\"\r\n >\r\n <span>{mapNodeToJsx(node.childNodes)}</span>\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n </a>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentFallbackNode implements OzonContentNode {\r\n // This name does not match any elements\r\n name = [\"<fallback>\"];\r\n\r\n render(node: Node, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <span class={`fallback od-${getNodeName(node)}`}>{mapNodeToJsx(node.childNodes)}</span>;\r\n }\r\n}\r\n","import { Fragment, FunctionalComponent, JSX, h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\ntype BijschriftProps = {\r\n bijschrift?: IBijschrift;\r\n bron?: ChildNode;\r\n mapNodeToJsx: (node: Node | NodeList | Node[]) => JSX.Element;\r\n};\r\n\r\ninterface IBijschrift {\r\n inhoud: NodeListOf<ChildNode>;\r\n locatie: string;\r\n}\r\n\r\ninterface Illustratie {\r\n naam: string;\r\n breedte: number;\r\n hoogte: number;\r\n dpi: number;\r\n uitlijning: \"start\" | \"center\" | \"end\";\r\n alt: string | undefined;\r\n}\r\n\r\nconst Bijschrift: FunctionalComponent<BijschriftProps> = ({ bijschrift, bron, mapNodeToJsx }) => {\r\n const bronText = bron && bron.textContent?.trim();\r\n\r\n return (\r\n <span class=\"figuur-bijschrift\">\r\n {bijschrift && bijschrift.inhoud && mapNodeToJsx(bijschrift.inhoud)}\r\n {bronText && (\r\n <Fragment>\r\n {`${bijschrift ? \" \" : \"\"}(bron: `}\r\n {mapNodeToJsx(bron)})\r\n </Fragment>\r\n )}\r\n </span>\r\n );\r\n};\r\n\r\nexport class OzonContentFiguurNode implements OzonContentNode {\r\n name = [\"Figuur\"];\r\n\r\n private getStyle(illustratie: Illustratie) {\r\n const widthPixels = Number(illustratie.breedte);\r\n const heightPixels = Number(illustratie.hoogte);\r\n\r\n const style = {\r\n \"--_dso-ozon-content-illustratie-uitlijning\": illustratie.uitlijning,\r\n };\r\n\r\n if (widthPixels && heightPixels) {\r\n // This is the STOP formula to calculate the width in percentage\r\n // see: https://koop.gitlab.io/stop/standaard/1.4.0-ic/regeltekst_afbeelding.html\r\n // We maximise it to 100% in the case of missing dpi or a calculated percentage greater than 100%\r\n const widthPercentage = Math.min(illustratie.dpi ? (16.4 * widthPixels) / Number(illustratie.dpi) : 100, 100);\r\n\r\n Object.assign(style, {\r\n \"--_dso-ozon-content-illustratie-aspect-ratio\": (widthPixels / heightPixels).toString(),\r\n \"--_dso-ozon-content-illustratie-width\": `${widthPercentage}%`,\r\n });\r\n }\r\n\r\n return style;\r\n }\r\n\r\n private mapIllustratieNode(node: Element): Illustratie {\r\n return {\r\n naam: node.getAttribute(\"naam\") ?? \"\",\r\n breedte: Number(node.getAttribute(\"breedte\")),\r\n hoogte: Number(node.getAttribute(\"hoogte\")),\r\n dpi: Number(node.getAttribute(\"dpi\")),\r\n uitlijning:\r\n [\"start\", \"center\", \"end\"].find((u): u is Illustratie[\"uitlijning\"] => node.getAttribute(\"uitlijning\") === u) ??\r\n \"start\",\r\n alt: node.getAttribute(\"alt\") ?? undefined,\r\n };\r\n }\r\n\r\n render(node: Element, { mapNodeToJsx, urlResolver }: OzonContentNodeContext) {\r\n const childNodes = Array.from(node.childNodes);\r\n const titel = childNodes.find((n) => getNodeName(n) === \"Titel\")?.textContent;\r\n const bron = childNodes.find((n) => getNodeName(n) === \"Bron\");\r\n\r\n const illustratieNode = childNodes.find((n) => getNodeName(n) === \"Illustratie\");\r\n const bijschriftNode = childNodes.find((n) => getNodeName(n) === \"Bijschrift\");\r\n\r\n const wijzigactie = node.getAttribute(\"wijzigactie\") || undefined;\r\n\r\n if (illustratieNode instanceof Element) {\r\n const illustratie = this.mapIllustratieNode(illustratieNode);\r\n\r\n const bijschrift =\r\n bijschriftNode instanceof Element\r\n ? {\r\n inhoud: bijschriftNode.childNodes,\r\n locatie: bijschriftNode.getAttribute(\"locatie\") ?? \"onder\",\r\n }\r\n : undefined;\r\n\r\n const src = urlResolver ? urlResolver(\"Illustratie\", \"naam\", illustratie.naam, node) : illustratie.naam;\r\n\r\n return (\r\n <div\r\n class={`dso-ozon-figuur ${bijschrift ? `bijschrift-${bijschrift.locatie}` : \"onder\"}`}\r\n style={this.getStyle(illustratie)}\r\n >\r\n {titel && <span class=\"figuur-titel\">{titel}</span>}\r\n {bijschrift?.locatie === \"boven\" && (\r\n <Bijschrift bijschrift={bijschrift} bron={bron} mapNodeToJsx={mapNodeToJsx} />\r\n )}\r\n <dso-image-overlay wijzigactie={wijzigactie}>\r\n {titel && (\r\n <div slot=\"titel\">\r\n <span>{titel}</span>\r\n </div>\r\n )}\r\n <img src={src ?? undefined} alt={illustratie.alt ?? titel ?? illustratie.naam ?? undefined} />\r\n {(bijschrift || bron) && (\r\n <div slot=\"bijschrift\">\r\n <Bijschrift bijschrift={bijschrift} bron={bron} mapNodeToJsx={mapNodeToJsx} />\r\n </div>\r\n )}\r\n </dso-image-overlay>\r\n {(bijschrift?.locatie === \"onder\" || (!bijschrift && bron)) && (\r\n <Bijschrift bijschrift={bijschrift} bron={bron} mapNodeToJsx={mapNodeToJsx} />\r\n )}\r\n </div>\r\n );\r\n }\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentInhoudNode implements OzonContentNode {\r\n name = [\"Inhoud\", \"ContainerBlocksType\", \"BlockMixedcontentMetMaximaleInlinesMarkersPopupsType\"];\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const wijzigactie = node.getAttribute(\"wijzigactie\");\r\n\r\n const richContent = <div class=\"dso-rich-content\">{mapNodeToJsx(node.childNodes)}</div>;\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return <del class=\"editaction-remove\">{richContent}</del>;\r\n }\r\n\r\n if (wijzigactie === \"voegtoe\") {\r\n return <ins class=\"editaction-add\">{richContent}</ins>;\r\n }\r\n\r\n return richContent;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentInlineTekstAfbeeldingNode implements OzonContentNode {\r\n name = [\"InlineTekstAfbeelding\", \"Illustratie\"];\r\n\r\n render(node: Element, { urlResolver }: OzonContentNodeContext) {\r\n const value = node.getAttribute(\"naam\");\r\n const name: \"InlineTekstAfbeelding\" | \"Illustratie\" =\r\n node.tagName === \"InlineTekstAfbeelding\" ? \"InlineTekstAfbeelding\" : \"Illustratie\";\r\n const src = urlResolver ? urlResolver(name, \"naam\", value, node) : value;\r\n\r\n return (\r\n <img\r\n src={src ?? undefined}\r\n alt={node.getAttribute(\"naam\") ?? undefined}\r\n height={node.getAttribute(\"hoogte\") ?? undefined}\r\n width={node.getAttribute(\"breedte\") ?? undefined}\r\n />\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentInlineNodes implements OzonContentNode {\r\n name = [\"sub\", \"sup\", \"strong\", \"b\", \"u\", \"i\", \"br\"];\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n if (node.localName === \"br\") {\r\n return <br />;\r\n }\r\n\r\n const Tag = node.localName;\r\n\r\n return <Tag>{mapNodeToJsx(node.childNodes)}</Tag>;\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentIntIoRefNode implements OzonContentNode {\r\n name = \"IntIoRef\";\r\n\r\n render(node: Element, { mapNodeToJsx, emitClick, urlResolver }: OzonContentNodeContext) {\r\n const value = node.getAttribute(\"ref\");\r\n const href = urlResolver ? urlResolver(\"IntIoRef\", \"ref\", value, node) : value;\r\n\r\n if (!value) {\r\n return mapNodeToJsx(node.childNodes);\r\n }\r\n\r\n const intIoRefOnClick = (event: MouseEvent) => {\r\n emitClick({\r\n type: \"IntIoRef\",\r\n node,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <dso-ozon-content-toggletip icon=\"map-location\">\r\n <span slot=\"label\">{mapNodeToJsx(node.childNodes)}</span>\r\n <p>\r\n Gebieden op de kaart tonen:{\" \"}\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={intIoRefOnClick}>\r\n <span>Kenmerken en kaart</span>\r\n <dso-icon icon=\"label\" />\r\n </button>\r\n </p>\r\n <p>\r\n Officiële publicaties:{\" \"}\r\n <a\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n href={href ?? undefined}\r\n title=\"Opent andere website in nieuw tabblad\"\r\n >\r\n <span>{mapNodeToJsx(node.childNodes)}</span>\r\n <dso-icon icon=\"external-link\" />\r\n </a>\r\n </p>\r\n </dso-ozon-content-toggletip>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { isModifiedEvent } from \"../../../utils/is-modified-event\";\r\nimport { parseXml } from \"../../../utils/parse-xml\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentIntRefNode implements OzonContentNode {\r\n name = \"IntRef\";\r\n\r\n render(node: Element, { mapNodeToJsx, emitClick, begripResolver, urlResolver }: OzonContentNodeContext) {\r\n const scope = node.getAttribute(\"scope\");\r\n const value = node.getAttribute(\"ref\");\r\n\r\n if (scope === \"Begrip\") {\r\n const definitie = begripResolver?.(value, node) ?? value;\r\n const definitieNode = typeof definitie === \"string\" ? parseXml(definitie) : definitie;\r\n\r\n return (\r\n <dso-ozon-content-toggletip icon=\"info\">\r\n <span slot=\"label\">{mapNodeToJsx(node.childNodes)}</span>\r\n {definitieNode ? mapNodeToJsx(definitieNode) : null}\r\n </dso-ozon-content-toggletip>\r\n );\r\n }\r\n\r\n const handleIntRefClick = (event: MouseEvent) => {\r\n emitClick({\r\n type: \"IntRef\",\r\n node,\r\n originalEvent: event,\r\n isModifiedEvent: isModifiedEvent(event),\r\n });\r\n };\r\n\r\n return (\r\n <a href={urlResolver?.(\"IntRef\", \"ref\", value, node)} onClick={handleIntRefClick}>\r\n {mapNodeToJsx(node.childNodes)}\r\n </a>\r\n );\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nfunction mapData(node: Element) {\r\n return {\r\n label: node.querySelector(\"Label\"),\r\n nummer: node.querySelector(\"Nummer\"),\r\n opschrift: node.querySelector(\"Opschrift\"),\r\n subtitels: Array.from(node.querySelectorAll(\"Subtitel\")),\r\n };\r\n}\r\n\r\nexport class OzonContentKopNode implements OzonContentNode {\r\n name = \"Kop\";\r\n\r\n handles = [\"Label\", \"Nummer\", \"Opschrift\", \"Subtitel\"];\r\n\r\n render(node: Element, { mapNodeToJsx, emitClick }: OzonContentNodeContext) {\r\n const handleKopClick = (event: MouseEvent) => {\r\n emitClick({\r\n type: \"Kop\",\r\n node,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n const { label, nummer, opschrift, subtitels } = mapData(node);\r\n\r\n const wijzigactieLabel = label ? parseWijzigactieFromNode(label) : undefined;\r\n const wijzigactieNummer = nummer ? parseWijzigactieFromNode(nummer) : undefined;\r\n const wijzigactieOpschrift = opschrift ? parseWijzigactieFromNode(opschrift) : undefined;\r\n\r\n return (\r\n <WrapWijzigactie wijzigactie={parseWijzigactieFromNode(node)}>\r\n <div onClick={handleKopClick} part=\"_kop\">\r\n {label && <WrapWijzigactie wijzigactie={wijzigactieLabel}>{mapNodeToJsx(label.childNodes)}</WrapWijzigactie>}\r\n {nummer && (\r\n <>\r\n {\" \"}\r\n <WrapWijzigactie wijzigactie={wijzigactieNummer}>{mapNodeToJsx(nummer.childNodes)}</WrapWijzigactie>\r\n </>\r\n )}\r\n {opschrift && (\r\n <>\r\n {\" \"}\r\n <WrapWijzigactie wijzigactie={wijzigactieOpschrift}>{mapNodeToJsx(opschrift.childNodes)}</WrapWijzigactie>\r\n </>\r\n )}\r\n </div>\r\n {subtitels.length > 0 && (\r\n <div class=\"subtitels-container\" part=\"_subtitels\">\r\n {subtitels.map((subtitel) => {\r\n const wijzigactieSubtitel = parseWijzigactieFromNode(subtitel);\r\n\r\n return (\r\n <div class=\"subtitel\">\r\n <WrapWijzigactie wijzigactie={wijzigactieSubtitel}>\r\n {mapNodeToJsx(subtitel.childNodes)}\r\n </WrapWijzigactie>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </WrapWijzigactie>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentLijstNode implements OzonContentNode {\r\n name = \"Lijst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const wijzigactie = parseWijzigactieFromNode(node);\r\n const childNodes = Array.from(node.childNodes);\r\n const type = parseTypeFromLijstNode(node);\r\n const aanhef = childNodes.find((n) => getNodeName(n) === \"Lijstaanhef\");\r\n const sluiting = childNodes.find((n) => getNodeName(n) === \"Lijstsluiting\");\r\n const listItems = childNodes.filter((n) => getNodeName(n) === \"Li\");\r\n\r\n return (\r\n <WrapWijzigactie wijzigactie={wijzigactie}>\r\n <div class={clsx(\"dso-ozon-lijst od-Lijst\", wijzigactieToClassName(wijzigactie))}>\r\n {aanhef && mapNodeToJsx(aanhef)}\r\n <ul class={type}>\r\n {listItems.map((item) => {\r\n const itemNodes = Array.from(item.childNodes);\r\n const liNummer = itemNodes.find((n) => getNodeName(n) === \"LiNummer\")?.childNodes;\r\n const liWijzigactie = parseWijzigactieFromNode(item);\r\n\r\n return (\r\n <li class={clsx(\"od-Li\", wijzigactieToClassName(liWijzigactie))}>\r\n {liNummer && <span class=\"od-LiNummer\">{mapNodeToJsx(liNummer)}</span>}\r\n <WrapWijzigactie wijzigactie={liWijzigactie}>\r\n {mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== \"LiNummer\"))}\r\n </WrapWijzigactie>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n {sluiting && mapNodeToJsx(sluiting)}\r\n </div>\r\n </WrapWijzigactie>\r\n );\r\n }\r\n}\r\n\r\nfunction parseTypeFromLijstNode(node: Node): LijstType | undefined {\r\n const type = node instanceof Element ? node.getAttribute(\"type\") : undefined;\r\n\r\n return type === \"expliciet\" || type === \"ongemarkeerd\" ? type : undefined;\r\n}\r\n\r\ntype LijstType = \"expliciet\" | \"ongemarkeerd\";\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentNieuweTekstNode implements OzonContentNode {\r\n name = \"NieuweTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <ins class=\"new-text\">{mapNodeToJsx(node.childNodes)}</ins>;\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentNootNode implements OzonContentNode {\r\n name = \"Noot\";\r\n\r\n handles = [\"NootNummer\"];\r\n\r\n identify(): string | undefined {\r\n return \"Noot\";\r\n }\r\n\r\n render(node: Element, { mapNodeToJsx, state: openNoteId, setState }: OzonContentNodeContext<string | undefined>) {\r\n const noteId = node.getAttribute(\"id\");\r\n if (!noteId) {\r\n console.error(\"Noot node without id\", node);\r\n\r\n return <Fragment />;\r\n }\r\n\r\n const noteControlsId = `dso-ozon-note-${noteId}`;\r\n\r\n const childNodes = Array.from(node.childNodes);\r\n const nootNummer = childNodes.find((n) => getNodeName(n) === \"NootNummer\")?.textContent ?? noteId;\r\n\r\n return (\r\n <Fragment>\r\n <sup>\r\n <button\r\n type=\"button\"\r\n class=\"toggle-note\"\r\n aria-describedby={noteControlsId}\r\n onClick={() => setState?.(openNoteId === noteId ? undefined : noteId)}\r\n onBlur={() => setState?.(undefined)}\r\n aria-expanded={openNoteId === noteId ? \"true\" : \"false\"}\r\n >\r\n {nootNummer}\r\n </button>\r\n </sup>\r\n <dso-tooltip active={openNoteId === noteId} id={noteControlsId} stateless descriptive>\r\n <span role=\"section\">{mapNodeToJsx(Array.from(node.querySelectorAll(\":scope > Al\")))}</span>\r\n </dso-tooltip>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","import { Colspec, Colspecs } from \"./colspec.interface\";\r\n\r\nexport function mapColspecs(count: number, nodeList: NodeListOf<Element>): Colspecs {\r\n const elements = Array.from(nodeList);\r\n const totalWidth = getTotalWidth(elements);\r\n\r\n return {\r\n totalWidth,\r\n count,\r\n columns: elements.map((element, index): Colspec => {\r\n const colNumber = element.getAttribute(\"colnum\");\r\n\r\n return {\r\n colsep: element.getAttribute(\"colsep\"),\r\n name: element.getAttribute(\"colname\") ?? \"\",\r\n number: colNumber ? parseInt(colNumber, 10) : index + 1,\r\n rowsep: element.getAttribute(\"rowsep\"),\r\n width: getWidth(totalWidth, element),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nfunction getTotalWidth(elements: Element[]): number {\r\n return elements.reduce((totalWidth, element) => {\r\n const width = element.getAttribute(\"colwidth\")?.replace(/[^0-9]/, \"\") ?? \"\";\r\n const colWidth = parseInt(width, 10);\r\n\r\n return totalWidth + (isNaN(colWidth) ? 0 : colWidth);\r\n }, 0);\r\n}\r\n\r\nfunction getWidth(totalWidth: number, element: Element): string | undefined {\r\n const width = element.getAttribute(\"colwidth\");\r\n\r\n if (!width) {\r\n return undefined;\r\n }\r\n\r\n if (width === \"*\") {\r\n return \"100%\";\r\n }\r\n\r\n if (width.includes(\"*\") || width.match(/^[\\d+]$/)) {\r\n const colWidth = parseInt(width.replace(/[^0-9]/, \"\"), 10);\r\n\r\n return `${Math.round((colWidth / totalWidth) * 100)}%`;\r\n }\r\n\r\n return width;\r\n}\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nexport const Colgroup: FunctionalComponent<{ colspecs: Colspecs }> = ({ colspecs }) =>\r\n colspecs.columns.length > 0 ? (\r\n <colgroup>\r\n {colspecs.columns.map((colspec) => (\r\n <col style={{ width: colspec.width }} />\r\n ))}\r\n </colgroup>\r\n ) : (\r\n <Fragment />\r\n );\r\n","import { FunctionalComponent } from \"@stencil/core\";\r\nimport { h } from \"@stencil/core/internal\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nfunction getColspecStartColsep({ columns }: Colspecs, nameStart: string): string | null {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n\r\n return colspecStart ? colspecStart.colsep : null;\r\n}\r\n\r\nfunction getColspecStartRowsep({ columns }: Colspecs, nameStart: string): string | null {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n\r\n return colspecStart ? colspecStart.rowsep : null;\r\n}\r\n\r\nfunction getData(cell: Element, colspecs?: Colspecs) {\r\n const nameStart = cell.getAttribute(\"namest\");\r\n const row = cell.parentElement;\r\n const tgroup = row?.parentElement?.parentElement;\r\n const table = tgroup?.parentElement;\r\n const colsep =\r\n cell.getAttribute(\"colsep\") ||\r\n (colspecs && nameStart ? getColspecStartColsep(colspecs, nameStart) : null) ||\r\n (tgroup && tgroup.getAttribute(\"colsep\")) ||\r\n (table && table.getAttribute(\"colsep\"));\r\n const rowsep =\r\n cell.getAttribute(\"rowsep\") ||\r\n (row && row.getAttribute(\"rowsep\")) ||\r\n (colspecs && nameStart ? getColspecStartRowsep(colspecs, nameStart) : null) ||\r\n (tgroup && tgroup.getAttribute(\"rowsep\")) ||\r\n (table && table.getAttribute(\"rowsep\"));\r\n\r\n return {\r\n moreRows: cell.getAttribute(\"morerows\"),\r\n nameStart,\r\n nameEnd: cell.getAttribute(\"nameend\"),\r\n colsep,\r\n rowsep,\r\n };\r\n}\r\n\r\nfunction getColspan({ columns }: Colspecs, nameStart: string, nameEnd: string): number | undefined {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n const colspecEnd = columns.find((c) => c.name === nameEnd);\r\n if (!colspecStart || !colspecEnd) {\r\n return undefined;\r\n }\r\n\r\n const colspan = colspecEnd.number - colspecStart.number + 1;\r\n\r\n return colspan === 1 ? undefined : colspan;\r\n}\r\n\r\nexport const Cell: FunctionalComponent<{\r\n context: OzonContentNodeContext;\r\n colspecs: Colspecs | undefined;\r\n cell: Element;\r\n}> = ({ context: { mapNodeToJsx }, colspecs, cell }) => {\r\n const { moreRows, nameStart, nameEnd, colsep, rowsep } = getData(cell, colspecs);\r\n\r\n return (\r\n <td\r\n class={clsx({ \"dso-horizontal-line\": rowsep !== \"0\" }, { \"dso-vertical-line\": colsep !== \"0\" })}\r\n rowSpan={moreRows ? parseInt(moreRows, 10) + 1 : undefined}\r\n colSpan={colspecs && nameStart && nameEnd ? getColspan(colspecs, nameStart, nameEnd) : undefined}\r\n >\r\n {mapNodeToJsx(cell.childNodes)}\r\n </td>\r\n );\r\n};\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\nimport { Cell } from \"./table-cell\";\r\n\r\nexport const Rows: FunctionalComponent<{\r\n context: OzonContentNodeContext;\r\n colspecs: Colspecs | undefined;\r\n rows: Element[];\r\n}> = ({ context, colspecs, rows }) => {\r\n return (\r\n <>\r\n {rows.map((row) => (\r\n <tr>\r\n {Array.from(row.children).map((cell) => (\r\n <Cell cell={cell} colspecs={colspecs} context={context} />\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n );\r\n};\r\n","import { h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getNodeName } from \"../../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../../ozon-content-node.interface\";\r\n\r\nimport { mapColspecs } from \"./colspec/colspec-mapper\";\r\nimport { Colgroup } from \"./table-colgroup\";\r\nimport { Rows } from \"./table-rows\";\r\n\r\nfunction mapData(node: Element) {\r\n const tgroup = node.querySelector(\":scope > tgroup\");\r\n const colAttribute = tgroup?.getAttribute(\"cols\") ?? undefined;\r\n const columnCount = colAttribute ? parseInt(colAttribute, 10) : undefined;\r\n\r\n return {\r\n caption: node.querySelector(\":scope > title\")?.textContent ?? undefined,\r\n colspecs: tgroup && columnCount ? mapColspecs(columnCount, tgroup.querySelectorAll(\":scope > colspec\")) : undefined,\r\n headRows: Array.from(node.querySelectorAll(\":scope > tgroup > thead > row\")),\r\n bodyRows: Array.from(node.querySelectorAll(\":scope > tgroup > tbody > row\")),\r\n wijzigactie: node.getAttribute(\"wijzigactie\"),\r\n frame: node.getAttribute(\"frame\") ? node.getAttribute(\"frame\") : \"all\",\r\n };\r\n}\r\n\r\nexport class OzonContentTableNode implements OzonContentNode {\r\n name = \"table\";\r\n\r\n handles = [\"title\", \"tgroup\", \"colspec\", \"thead\", \"tbody\", \"row\", \"cell\"];\r\n\r\n id = uuidv4();\r\n\r\n render(node: Element, context: OzonContentNodeContext) {\r\n const { caption, colspecs, headRows, bodyRows, wijzigactie, frame } = mapData(node);\r\n\r\n const bron = Array.from(node.childNodes).find((n) => getNodeName(n) === \"Bron\");\r\n\r\n return (\r\n <dso-table>\r\n <table\r\n class={clsx(\"table\", {\r\n \"editaction-add\": wijzigactie === \"voegtoe\",\r\n \"editaction-remove\": wijzigactie === \"verwijder\",\r\n [`dso-table-outside-lines-${frame}`]: frame,\r\n })}\r\n {...(bron ? { \"aria-describedby\": this.id } : {})}\r\n >\r\n {caption && <caption>{caption}</caption>}\r\n {colspecs && <Colgroup colspecs={colspecs} />}\r\n {headRows.length > 0 && (\r\n <thead>\r\n <Rows rows={headRows} colspecs={colspecs} context={context}></Rows>\r\n </thead>\r\n )}\r\n {bodyRows.length > 0 && (\r\n <tbody>\r\n <Rows rows={bodyRows} colspecs={colspecs} context={context}></Rows>\r\n </tbody>\r\n )}\r\n </table>\r\n {bron && <div id={this.id}>{context.mapNodeToJsx(bron)}</div>}\r\n </dso-table>\r\n );\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentTextNode implements OzonContentNode {\r\n name = \"#text\";\r\n\r\n render({ textContent }: Node, { mark, emitMarkItemHighlight }: OzonContentNodeContext) {\r\n if (!mark || !textContent) {\r\n return <>{textContent}</>;\r\n }\r\n\r\n const result = mark(textContent);\r\n\r\n return !result || result.length === 0 ? (\r\n <>{textContent}</>\r\n ) : (\r\n <>\r\n {result.map((value) => {\r\n if (typeof value === \"string\") {\r\n return <>{value}</>;\r\n }\r\n\r\n return (\r\n <mark\r\n class={value.highlight ? \"dso-highlight\" : undefined}\r\n ref={(ref) => value.highlight && ref && emitMarkItemHighlight(value.text, ref)}\r\n >\r\n {value.text}\r\n </mark>\r\n );\r\n })}\r\n </>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentVerwijderdeTekstNode implements OzonContentNode {\r\n name = \"VerwijderdeTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <del class=\"removed-text\">{mapNodeToJsx(node.childNodes)}</del>;\r\n }\r\n}\r\n","import { Fragment, JSX, h } from \"@stencil/core\";\r\n\r\nimport { parseXml } from \"../../utils/parse-xml\";\r\n\r\nimport { getNodeName } from \"./get-node-name.function\";\r\nimport { OzonContentAbbrNode } from \"./nodes/abbr.node\";\r\nimport { OzonContentAlNode } from \"./nodes/al.node\";\r\nimport { OzonContentBronNode } from \"./nodes/bron.node\";\r\nimport { OzonContentDocumentNode } from \"./nodes/document.node\";\r\nimport { OzonContentExtRefNode } from \"./nodes/ext-ref.node\";\r\nimport { OzonContentFallbackNode } from \"./nodes/fallback.node\";\r\nimport { OzonContentFiguurNode } from \"./nodes/figuur.node\";\r\nimport { OzonContentInhoudNode } from \"./nodes/inhoud.node\";\r\nimport { OzonContentInlineTekstAfbeeldingNode } from \"./nodes/inline-tekst-afbeelding.node\";\r\nimport { OzonContentInlineNodes } from \"./nodes/inline.nodes\";\r\nimport { OzonContentIntIoRefNode } from \"./nodes/int-io-ref.node\";\r\nimport { OzonContentIntRefNode } from \"./nodes/int-ref.node\";\r\nimport { OzonContentKopNode } from \"./nodes/kop.node\";\r\nimport { OzonContentLijstNode } from \"./nodes/lijst.node\";\r\nimport { OzonContentNieuweTekstNode } from \"./nodes/nieuwe-tekst.node\";\r\nimport { OzonContentNootNode } from \"./nodes/noot.node\";\r\nimport { OzonContentTableNode } from \"./nodes/table.node\";\r\nimport { OzonContentTextNode } from \"./nodes/text.node\";\r\nimport { OzonContentVerwijderdeTekstNode } from \"./nodes/verwijderde-tekst.node\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { OzonContentNode } from \"./ozon-content-node.interface\";\r\nimport { OzonContentInputType } from \"./ozon-content.interfaces\";\r\n\r\nexport class Mapper {\r\n private mappers: OzonContentNode[] = [\r\n new OzonContentAbbrNode(),\r\n new OzonContentTextNode(),\r\n new OzonContentDocumentNode(),\r\n new OzonContentInhoudNode(),\r\n new OzonContentKopNode(),\r\n new OzonContentIntRefNode(),\r\n new OzonContentExtRefNode(),\r\n new OzonContentAlNode(),\r\n new OzonContentInlineNodes(),\r\n new OzonContentInlineTekstAfbeeldingNode(),\r\n new OzonContentNootNode(),\r\n new OzonContentTableNode(),\r\n new OzonContentIntIoRefNode(),\r\n new OzonContentFiguurNode(),\r\n new OzonContentLijstNode(),\r\n new OzonContentBronNode(),\r\n new OzonContentNieuweTekstNode(),\r\n new OzonContentVerwijderdeTekstNode(),\r\n ];\r\n\r\n private skip = this.mappers.reduce<string[]>((t, m) => {\r\n if (m.handles) {\r\n t.push(...m.handles);\r\n }\r\n\r\n return t;\r\n }, []);\r\n\r\n private fallbackNode = new OzonContentFallbackNode();\r\n\r\n private findMapper(name: string): OzonContentNode | undefined {\r\n if (this.skip.includes(name)) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n this.mappers.find((m) => {\r\n if (Array.isArray(m.name)) {\r\n return m.name.includes(name);\r\n }\r\n\r\n return m.name === name;\r\n }) ?? this.fallbackNode\r\n );\r\n }\r\n\r\n mapNodeToJsx(node: Node | Node[] | NodeList, context: OzonContentContext, path: Node[]): JSX.Element {\r\n if (node instanceof NodeList) {\r\n return <Fragment>{Array.from(node).map((n) => this.mapNodeToJsx(n, context, path))}</Fragment>;\r\n }\r\n\r\n if (Array.isArray(node)) {\r\n return <Fragment>{node.map((n) => this.mapNodeToJsx(n, context, path))}</Fragment>;\r\n }\r\n\r\n const nodeName = getNodeName(node);\r\n const mapper = this.findMapper(nodeName);\r\n if (!mapper) {\r\n return <Fragment />;\r\n }\r\n\r\n const identity = mapper.identify?.(node);\r\n\r\n const state = identity ? context.state[identity] : undefined;\r\n const setState = identity ? (s: unknown) => context.setState({ ...context.state, [identity]: s }) : undefined;\r\n\r\n return mapper.render(node, {\r\n inline: context.inline,\r\n mark: context.mark,\r\n mapNodeToJsx: (n) => this.mapNodeToJsx(n, context, [...path, node]),\r\n emitClick: context.emitClick,\r\n setState,\r\n emitMarkItemHighlight: context.emitMarkItemHighlight,\r\n state,\r\n path,\r\n urlResolver: context.urlResolver,\r\n begripResolver: context.begripResolver,\r\n });\r\n }\r\n\r\n transform(input: OzonContentInputType | undefined, context: OzonContentContext): JSX.Element {\r\n if (!input) {\r\n return <Fragment />;\r\n }\r\n\r\n const doc = typeof input === \"string\" ? parseXml(input) : input;\r\n\r\n if (!doc) {\r\n return <Fragment />;\r\n }\r\n\r\n return this.mapNodeToJsx(doc.getRootNode(), context, []);\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n\r\n@use \"~dso-toolkit/src/components/link\";\r\n@use \"~dso-toolkit/src/components/button/button.mixins\" as button-mixins;\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n@use \"~dso-toolkit/src/components/rich-content\";\r\n\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n@use \"~dso-toolkit/src/components/mark/mark\";\r\n@use \"~dso-toolkit/src/components/superscript/superscript\";\r\n@use \"~dso-toolkit/src/components/subscript/subscript\";\r\n@use \"~dso-toolkit/src/components/table/table\";\r\n\r\n@use \"./ozon-content.variables\" as ozon-content-variables;\r\n\r\n:host(:not([inline])) {\r\n display: block;\r\n}\r\n\r\n:host([inline]) {\r\n display: inline;\r\n}\r\n\r\nbutton.toggle-note {\r\n @include button-mixins.tertiary($modifiers: false);\r\n}\r\n\r\nspan[role=\"section\"],\r\nspan[role=\"paragraph\"] {\r\n display: block;\r\n}\r\n\r\n:host(:not([inline])) .fallback {\r\n display: block;\r\n}\r\n\r\na {\r\n @include link.root();\r\n}\r\n\r\n// Styling below copied from DSO Viewer 20211011\r\n\r\n.od-Term {\r\n font-weight: 700;\r\n}\r\n\r\n.od-Definitie,\r\n.od-Tussenkop {\r\n font-style: italic;\r\n}\r\n\r\n.od-Inhoud,\r\n.od-Inhoud > .od-Lijst,\r\n.od-Lidnr,\r\n.od-LiNr,\r\n.od-Opschrift,\r\n.od-Tussenkop {\r\n display: inline;\r\n}\r\n\r\n.od-Al {\r\n margin-block-end: 0.75em;\r\n}\r\n\r\n.dso-ozon-bron {\r\n font-style: italic;\r\n font-size: 0.75rem;\r\n}\r\n\r\n.dso-ozon-figuur {\r\n text-align: var(--_dso-ozon-content-illustratie-uitlijning);\r\n margin-block-end: units.$u1;\r\n\r\n .figuur-bijschrift {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n }\r\n\r\n &.bijschrift-boven {\r\n .figuur-bijschrift {\r\n padding-block-end: 0.25rem;\r\n }\r\n }\r\n\r\n &.bijschrift-onder {\r\n .figuur-bijschrift {\r\n padding-block-start: 0.25rem;\r\n }\r\n }\r\n\r\n .figuur-titel {\r\n color: colors.$mauve;\r\n display: block;\r\n font-weight: 500;\r\n padding-block-end: 0.5rem;\r\n }\r\n\r\n > dso-image-overlay {\r\n inline-size: var(--_dso-ozon-content-illustratie-width);\r\n block-size: auto;\r\n max-block-size: 200vh;\r\n aspect-ratio: var(--_dso-ozon-content-illustratie-aspect-ratio);\r\n\r\n img {\r\n block-size: 100%;\r\n inline-size: 100%;\r\n }\r\n }\r\n}\r\n\r\n.dso-ozon-lijst {\r\n span.od-Lijstaanhef,\r\n span.od-Lijstsluiting {\r\n margin-block-end: units.$u1;\r\n }\r\n\r\n ul {\r\n margin-block-end: units.$u1 !important;\r\n margin-block-start: units.$u1;\r\n\r\n p {\r\n margin-block-end: units.$u1;\r\n }\r\n\r\n &.expliciet {\r\n list-style: none;\r\n\r\n > .od-Li {\r\n position: relative;\r\n\r\n > span.od-LiNummer {\r\n position: absolute;\r\n inset-inline-start: units.$u6 * -1 + 4;\r\n text-align: end;\r\n inline-size: units.$u5;\r\n }\r\n }\r\n }\r\n }\r\n\r\n p {\r\n margin: 0;\r\n }\r\n}\r\n\r\n.od-Tabel thead {\r\n font-weight: 600;\r\n}\r\n\r\n.od-Kadertekst {\r\n border: 1px solid #e5e5e5;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n}\r\n\r\np,\r\nspan[role=\"paragraph\"],\r\n.dso-ozon-lijst,\r\n.dso-ozon-lijst > ul > li,\r\ntable {\r\n &.editaction-add {\r\n @include insert.root();\r\n }\r\n\r\n &.editaction-remove {\r\n @include delete.root();\r\n }\r\n}\r\n\r\nins {\r\n @include insert.element();\r\n\r\n &.new-text {\r\n @include insert.root();\r\n }\r\n\r\n &.editaction-add {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n\r\n @include insert.root();\r\n\r\n p:last-child {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\ndel {\r\n &.removed-text {\r\n @include delete.root();\r\n }\r\n\r\n &.editaction-remove {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n p:last-child {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n.editaction-label {\r\n font-style: italic;\r\n}\r\n\r\n.dso-rich-content {\r\n @include rich-content.children();\r\n}\r\n\r\n.od-abbr {\r\n text-decoration: underline dotted;\r\n}\r\n\r\n.subtitels-container {\r\n cursor: default;\r\n}\r\n\r\n.subtitel {\r\n color: ozon-content-variables.$subtitel-color;\r\n font-weight: 700;\r\n margin-block: 0 units.$u2;\r\n margin-inline: 0;\r\n\r\n &:has(del, ins) {\r\n display: inline-block;\r\n inline-size: 100%;\r\n margin-inline: units.$u1 * -0.5;\r\n padding-inline: units.$u1 * 0.5;\r\n }\r\n\r\n &:has(del:not(.removed-text)) {\r\n @include delete.root();\r\n }\r\n\r\n &:has(ins:not(.new-text)) {\r\n @include insert.element();\r\n @include insert.root();\r\n }\r\n\r\n ins,\r\n del {\r\n color: ozon-content-variables.$subtitel-renvooi-color;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n JSX,\r\n Prop,\r\n State,\r\n Watch,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { Mapper } from \"./ozon-content-mapper\";\r\nimport { OzonContentNodeState } from \"./ozon-content-node-state.interface\";\r\nimport {\r\n OzonContentBegripResolver,\r\n OzonContentClickEvent,\r\n OzonContentInputType,\r\n OzonContentMarkFunction,\r\n OzonContentMarkItemHighlightEvent,\r\n OzonContentUrlResolver,\r\n} from \"./ozon-content.interfaces\";\r\n\r\nconst mapper = new Mapper();\r\n\r\n@Component({\r\n tag: \"dso-ozon-content\",\r\n styleUrl: \"ozon-content.scss\",\r\n shadow: true,\r\n})\r\nexport class OzonContent implements ComponentInterface {\r\n /**\r\n * The XML to be rendered.\r\n */\r\n @Prop()\r\n content?: OzonContentInputType;\r\n\r\n /**\r\n * Setting this property creates dso-ozon-content as inline element instead of a block element.\r\n */\r\n @Prop({ reflect: true })\r\n inline = false;\r\n\r\n /**\r\n * To mark text.\r\n */\r\n @Prop()\r\n mark?: OzonContentMarkFunction;\r\n\r\n /**\r\n * A UrlResolver that will be called for all STOP elements that render to HTML5 elements with external references.\r\n */\r\n @Prop()\r\n urlResolver?: OzonContentUrlResolver;\r\n\r\n /**\r\n * A BegripResolver that will be called for STOP element \"IntRef\" with scope=\"Begrip\".\r\n */\r\n @Prop()\r\n begripResolver?: OzonContentBegripResolver;\r\n\r\n /**\r\n * Emitted when an interactive element is clicked.\r\n */\r\n @Event({ bubbles: false })\r\n dsoClick!: EventEmitter<OzonContentClickEvent>;\r\n\r\n /**\r\n * Emitted when a marked item is highlighted.\r\n */\r\n @Event({ bubbles: false })\r\n dsoOzonContentMarkItemHighlight!: EventEmitter<OzonContentMarkItemHighlightEvent>;\r\n\r\n @Watch(\"content\")\r\n contentWatcher() {\r\n this.state = {};\r\n }\r\n\r\n @State()\r\n state: OzonContentNodeState = {};\r\n\r\n private handleMarkItemHighlight = (text: string, elementRef: HTMLElement) => {\r\n this.dsoOzonContentMarkItemHighlight.emit({ text, elementRef });\r\n };\r\n\r\n render(): JSX.Element {\r\n const context: OzonContentContext = {\r\n state: this.state,\r\n inline: this.inline,\r\n mark: this.mark,\r\n setState: (state) => (this.state = state),\r\n emitMarkItemHighlight: this.handleMarkItemHighlight,\r\n emitClick: this.dsoClick.emit,\r\n urlResolver: this.urlResolver,\r\n begripResolver: this.begripResolver,\r\n };\r\n\r\n const transformed = mapper.transform(this.content, context);\r\n\r\n return <Fragment>{transformed}</Fragment>;\r\n }\r\n}\r\n\r\nconst dependencies = () => {\r\n dependencies();\r\n\r\n return (\r\n <Fragment>\r\n <dso-icon />\r\n <dso-image-overlay />\r\n <dso-ozon-content-toggletip />\r\n <dso-tooltip />\r\n <dso-table />\r\n </Fragment>\r\n );\r\n};\r\n","@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n@use \"../../../../functional-components/tooltip\";\r\n\r\n@include utilities.box-sizing();\r\n@include tooltip.include($max-inline-size: 60 * units.$u1);\r\n\r\n:host {\r\n display: inline-block;\r\n --_dt-rich-content-margin-block: #{units.$u1};\r\n}\r\n\r\n::slotted(:not([slot=\"label\"])) {\r\n cursor: default !important;\r\n}\r\n\r\n.toggletip-button {\r\n @include button.base($modifiers: false);\r\n\r\n // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\r\n & {\r\n border: 0;\r\n color: var(--_dso-ozon-content-toggletip-color, colors.$donkerblauw);\r\n line-height: 1;\r\n padding: 0;\r\n background-color: transparent;\r\n cursor: pointer;\r\n vertical-align: baseline;\r\n }\r\n\r\n &,\r\n &:hover,\r\n &:focus-visible,\r\n &:active {\r\n text-decoration-line: var(--_dso-ozon-content-toggletip-text-decoration, underline);\r\n text-decoration-style: dotted;\r\n text-underline-offset: 15%;\r\n }\r\n\r\n dso-icon {\r\n margin-inline-start: units.$u1 * 0.5;\r\n vertical-align: middle;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Fragment, Prop, State, h } from \"@stencil/core\";\r\n\r\nimport { positionTooltip } from \"../../../../functional-components/tooltip/position-tooltip.function\";\r\nimport { Tooltip } from \"../../../../functional-components/tooltip/tooltip.functional-component\";\r\nimport { TooltipClean } from \"../../../../functional-components/tooltip/tooltip.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-ozon-content-toggletip\",\r\n styleUrl: \"./ozon-content-toggletip.scss\",\r\n shadow: true,\r\n})\r\nexport class ozonContentToggletip implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoOzonContentToggletipElement;\r\n\r\n /**\r\n * The alias of the icon in the button.\r\n */\r\n @Prop({ reflect: true })\r\n icon?: string;\r\n\r\n @State()\r\n active = false;\r\n\r\n @State()\r\n showToggletip = false;\r\n\r\n private container: HTMLButtonElement | undefined;\r\n private tooltip: HTMLElement | undefined;\r\n private tooltipArrow: HTMLElement | undefined;\r\n\r\n private click = () => {\r\n if (this.active) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\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.key === \"Escape\") {\r\n this.close();\r\n }\r\n\r\n return;\r\n };\r\n\r\n componentDidRender() {\r\n if (this.tooltip) {\r\n if (this.active && !this.showToggletip) {\r\n this.tooltip.showPopover();\r\n this.showToggletip = true;\r\n } else if (!this.active && this.showToggletip) {\r\n this.tooltip?.hidePopover();\r\n this.showToggletip = false;\r\n }\r\n }\r\n\r\n let cleanUp: TooltipClean | undefined;\r\n\r\n if (this.active && !cleanUp && this.container && this.tooltip && this.tooltipArrow) {\r\n cleanUp = positionTooltip({\r\n referenceElement: this.container,\r\n tipRef: this.tooltip,\r\n tipArrowRef: this.tooltipArrow,\r\n placementTip: \"top\",\r\n });\r\n }\r\n\r\n if (!this.active && cleanUp) {\r\n cleanUp();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <button class=\"toggletip-button\" ref={(element) => (this.container = element)} onClick={this.click}>\r\n <slot name=\"label\" />\r\n <dso-icon icon={this.icon} />\r\n <Tooltip\r\n visible\r\n onAfterHidden={() => {}}\r\n tipElementRef={(element) => (this.tooltip = element)}\r\n tipArrowElementRef={(element) => (this.tooltipArrow = element)}\r\n >\r\n <slot />\r\n </Tooltip>\r\n </button>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-panel\": {\r\n close: \"Close\",\r\n },\r\n },\r\n nl: {\r\n \"dso-panel\": {\r\n close: \"Sluiten\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n@use \"~dso-toolkit/src/di\";\r\n\r\n@use \"panel.variables\" as panel-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n border: 1px solid colors.$grijs-30;\r\n border-radius: units.$u1 * 0.5;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.panel-heading {\r\n display: flex;\r\n gap: units.$u2;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n\r\n padding-block: units.$u1;\r\n padding-inline-start: var(--panel-heading-padding-inline-start, panel-variables.$panel-heading-padding-inline-start);\r\n padding-inline-end: units.$u1;\r\n\r\n border-block-end: 1px solid colors.$grijs-30;\r\n\r\n border-start-start-radius: units.$u1 * 0.5;\r\n border-start-end-radius: units.$u1 * 0.5;\r\n border-color: colors.$grijs-30;\r\n\r\n @include set-colors.apply(colors.$grijs-10, \"panel\");\r\n\r\n .sr-only {\r\n @include utilities.sr-only();\r\n }\r\n}\r\n\r\n.emphasized .panel-heading {\r\n background-color: panel-variables.$background-color-emphasized;\r\n}\r\n\r\n::slotted([slot=\"heading\"]) {\r\n margin: 0 !important;\r\n font-size: 1rem !important;\r\n font-weight: 600 !important;\r\n line-height: 1.5 !important;\r\n color: colors.$zwart !important;\r\n}\r\n\r\n.panel-body {\r\n padding-block: units.$u2;\r\n padding-inline: var(--panel-body-padding-inline, panel-variables.$panel-body-padding-inline);\r\n\r\n background-color: var(--_dso-panel-body-background-color, transparent);\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./panel.i18n\";\r\n\r\nexport interface PanelCloseEvent {\r\n originalEvent: Event;\r\n}\r\n\r\n/**\r\n * @slot - The contents to be highlighted within the panel\r\n * @slot heading - The heading (h2 - h6) with the title of the panel\r\n */\r\n@Component({\r\n tag: \"dso-panel\",\r\n styleUrl: \"panel.scss\",\r\n shadow: true,\r\n})\r\nexport class Panel implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoPanelElement;\r\n\r\n /**\r\n * The accessible name for the close button.\r\n */\r\n @Prop()\r\n closeButtonLabel?: string;\r\n\r\n /**\r\n * To display the panel as an emphasized panel.\r\n */\r\n @Prop()\r\n emphasized = false;\r\n\r\n /**\r\n * Emitted when the user click the close button.\r\n */\r\n @Event()\r\n dsoCloseClick!: EventEmitter<PanelCloseEvent>;\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n render() {\r\n return (\r\n <div class={clsx([\"dso-panel\", { emphasized: this.emphasized }])}>\r\n <div class=\"panel-heading\">\r\n <slot name=\"heading\" />\r\n <dso-icon-button\r\n icon=\"times\"\r\n variant=\"tertiary\"\r\n onDsoClick={(e) => this.dsoCloseClick.emit({ originalEvent: e.detail.originalEvent })}\r\n label={this.closeButtonLabel || this.text(\"close\")}\r\n />\r\n </div>\r\n <div class=\"panel-body\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"sass:color\";\r\n\r\n@use \"~dso-toolkit/src/components/grid/grid.variables\" as grid-variables;\r\n@use \"~dso-toolkit/src/components/modal/modal.variables\" as modal-variables;\r\n\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/components/rich-content\";\r\n@use \"~dso-toolkit/src/components/table\";\r\n\r\n:host {\r\n display: block;\r\n margin-block-end: units.$u3;\r\n}\r\n\r\n.dso-header {\r\n min-block-size: units.$u4;\r\n\r\n h2 {\r\n color: colors.$bosgroen;\r\n font-size: units.$font-size-h2;\r\n font-weight: 700;\r\n }\r\n\r\n .dso-close {\r\n color: colors.$bosgroen;\r\n }\r\n}\r\n\r\n:host .dso-modal {\r\n inset: 0px;\r\n block-size: 100%;\r\n position: fixed;\r\n z-index: zindex.$modal;\r\n\r\n @include modal.root();\r\n}\r\n\r\n.dso-modal .dso-dialog.dso-table-dialog {\r\n margin-block-start: 1rem;\r\n max-inline-size: calc(100% - 2rem);\r\n margin-inline-start: auto;\r\n margin-inline-end: auto;\r\n inline-size: auto;\r\n\r\n .dso-body {\r\n $dso-body-unavailable-height: (\r\n (2 * modal.$header-padding) + (modal.$footer-button-block-size + modal.$footer-padding)\r\n );\r\n max-block-size: calc(100vh - #{$dso-body-unavailable-height} - 1.5em - 2rem); // margin\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n max-inline-size: 100%;\r\n }\r\n}\r\n\r\n:host([is-responsive=\"true\"]) {\r\n .dso-table-body {\r\n border: 1px solid table.$border-color;\r\n margin-block-end: 0;\r\n overflow-y: auto;\r\n inline-size: 100%;\r\n\r\n &.dso-body {\r\n inline-size: calc(100% - modal.$body-padding * 2);\r\n }\r\n }\r\n}\r\n\r\n.dso-table-utilities {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-block-end: units.$u1;\r\n\r\n .dso-responsive-message {\r\n margin-block-end: 0;\r\n\r\n &:only-child {\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n .open-modal-button {\r\n &:only-child {\r\n margin-inline-start: auto;\r\n }\r\n }\r\n}\r\n\r\n.dso-responsive-message {\r\n font-size: 0.8em;\r\n margin-block-end: units.$u1;\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-modal-overlay {\r\n background-color: color.scale(modal-variables.$backdrop-bg, $alpha: modal-variables.$backdrop-opacity);\r\n display: block;\r\n position: fixed;\r\n inset: 0;\r\n z-index: zindex.$modal-background-overlay;\r\n}\r\n\r\n.dso-table-placeholder {\r\n box-shadow: inset 0 0 0 1px table.$border-color;\r\n display: grid;\r\n place-content: center;\r\n}\r\n","import { Component, ComponentInterface, Element, Host, Prop, State, h } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { FocusTrap, createFocusTrap } from \"focus-trap\";\r\nimport { v4 } from \"uuid\";\r\n\r\n@Component({\r\n tag: \"dso-table\",\r\n styleUrl: \"table.scss\",\r\n shadow: true,\r\n})\r\nexport class Table implements ComponentInterface {\r\n private resizeObserver?: ResizeObserver;\r\n\r\n private focusTrapElement?: HTMLDivElement;\r\n\r\n private buttonElement?: HTMLButtonElement;\r\n\r\n private trap?: FocusTrap;\r\n\r\n private labelledbyId = v4();\r\n\r\n @Element()\r\n host!: HTMLDsoTableElement;\r\n\r\n /**\r\n * Prevents the table being opened in a modal.\r\n */\r\n @Prop({ reflect: true })\r\n noModal = false;\r\n\r\n @State()\r\n isResponsive?: boolean;\r\n\r\n @State()\r\n modalActive = false;\r\n\r\n @State()\r\n placeholderHeight?: number;\r\n\r\n private startResponsiveBehavior(): void {\r\n this.resizeObserver?.observe(this.host);\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.resizeObserver = new ResizeObserver(debounce((entries) => this.setResponsiveTable(entries), 200));\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.startResponsiveBehavior();\r\n }\r\n\r\n componentDidRender() {\r\n this.setFocusTrap();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n render() {\r\n const caption = this.host.querySelector(\":scope > table > caption\")?.textContent?.trim();\r\n\r\n return (\r\n <Host is-responsive={this.isResponsive?.toString()}>\r\n {this.modalActive && this.placeholderHeight && (\r\n <div class=\"dso-table-placeholder\" style={{ height: `${this.placeholderHeight}px` }} />\r\n )}\r\n\r\n {this.modalActive && <div class=\"dso-modal-overlay\"></div>}\r\n\r\n <div class={{ \"dso-modal\": this.modalActive }}>\r\n <div\r\n class={{ \"dso-dialog\": this.modalActive, \"dso-table-dialog\": true }}\r\n ref={(element) => (this.focusTrapElement = element)}\r\n {...(this.modalActive ? { [\"aria-labelledby\"]: this.labelledbyId, role: \"dialog\" } : {})}\r\n >\r\n {(this.isResponsive || !this.noModal) && (\r\n <div class=\"dso-table-utilities\" style={this.modalActive ? { display: \"none\" } : undefined}>\r\n {this.isResponsive && (\r\n <div class=\"dso-responsive-message\">\r\n <span>beweeg de tabel van links naar rechts</span>\r\n </div>\r\n )}\r\n\r\n {!this.noModal && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary open-modal-button\"\r\n ref={(element) => (this.buttonElement = element)}\r\n onClick={() => this.openModal()}\r\n >\r\n <span class=\"sr-only\">tabel {caption ?? \"\"} </span>\r\n <span>vergroten</span>\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n\r\n {this.modalActive && (\r\n <div class=\"dso-header\">\r\n <h2 id={this.labelledbyId} class={{ \"sr-only\": !caption }}>\r\n {caption || \"Uitvergrote tabel dialoog\"}\r\n </h2>\r\n <button type=\"button\" class=\"dso-close\" onClick={() => this.closeModal()}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n </div>\r\n )}\r\n\r\n <div class={{ \"dso-body\": this.modalActive, \"dso-table-body\": true }}>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private openModal() {\r\n this.placeholderHeight = this.host.clientHeight;\r\n this.modalActive = true;\r\n }\r\n\r\n private closeModal() {\r\n this.placeholderHeight = undefined;\r\n this.modalActive = false;\r\n }\r\n\r\n private setFocusTrap() {\r\n if (this.modalActive && this.focusTrapElement && !this.trap) {\r\n this.trap = createFocusTrap([this.host, this.focusTrapElement], {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.focusTrapElement) {\r\n this.closeModal();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.buttonElement ?? false,\r\n onDeactivate: () => this.closeModal(),\r\n tabbableOptions: {\r\n getShadowRoot: true,\r\n },\r\n }).activate();\r\n } else if (!this.modalActive && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n\r\n private setResponsiveTable([dsoTable]: ResizeObserverEntry[]): void {\r\n if (!dsoTable) {\r\n throw new Error(\"No dsoTable found\");\r\n }\r\n\r\n const tableElement = dsoTable.target.querySelector(\"table\");\r\n\r\n if (dsoTable && tableElement instanceof HTMLTableElement) {\r\n this.isResponsive =\r\n Math.floor(tableElement.getBoundingClientRect().width) > Math.floor(dsoTable.contentRect.width);\r\n }\r\n }\r\n}\r\n"],"mappings":"qeAEO,MAAMA,EAAyB,CACpCC,GAAI,CACF,YAAa,CACXC,MAAO,QACPC,QAAS,UACTC,KAAM,SACNC,QAAS,UACTC,MAAO,UAGXC,GAAI,CACF,YAAa,CACXL,MAAO,UACPC,QAAS,SACTC,KAAM,YACNC,QAAS,eACTC,MAAO,UClBb,MAAME,EAAW,+7M,MCaJC,EAAK,MALlB,WAAAC,CAAAC,G,6CA+BEC,KAAQC,SAAG,MAQHD,KAAAE,KAAOC,GAAK,IAAMH,KAAKI,MAAMhB,EA4BtC,CA1BC,MAAAiB,GACE,MAAMC,EAASN,KAAKE,KAAKF,KAAKM,QAC9B,IAAKA,EAAQ,CACX,MAAM,IAAIC,MAAM,kBAAkBP,KAAKM,S,CAGzC,OACEE,EAAA,OAAAC,IAAA,2CACEC,MAAOC,EAAK,QAAS,SAASX,KAAKM,SAAU,CAAE,cAAeN,KAAKY,UACnEC,KAAMb,KAAKc,UAAY,QAAUC,YAE/Bf,KAAKY,SAAWJ,EAAA,YAAAC,IAAA,2CAAUC,MAAM,cAAcM,KAAM,UAAYhB,KAAKM,SACvEE,EAAM,QAAAC,IAAA,2CAAAC,MAAM,WAAWJ,EAAe,KACtCE,EAAa,QAAAC,IAAA,6CAEZT,KAAKC,UACJO,EAAA,mBAAAC,IAAA,2CACEQ,MAAOjB,KAAKE,KAAK,SACjBgB,QAAQ,WACRF,KAAK,QACLG,WAAaC,GAAMpB,KAAKqB,SAASC,KAAK,CAAEC,cAAeH,M,uCCrEnE,MAAMI,EAAW,i0S,MCUJC,EAAK,M,yBAOhB,MAAApB,GACE,OACEG,EAAA,QAAAC,IAAA,2CAAMC,MAAOC,EAAK,YAAa,CAAE,CAAC,SAASX,KAAKM,UAAWN,KAAKM,UAC9DE,EAAa,QAAAC,IAAA,6C,aCpBrB,MAAMiB,EAAkB,2sPCiBxB,MAAMC,EAA0E,CAC9EC,UAAW,aACXC,QAAS,cAGX,MAAMC,EAMD,EAAGC,SAAQC,MAAKC,MAAKC,MAAKC,SAASC,IACtCL,GACAC,GACExB,EAAK,OAAAE,MAAM,UACTF,EAAA,OAAKE,MAAM,UAAUwB,IAAKA,GACvBE,EAAS,GACTA,EAAS,GACV5B,EAAA,OAAKwB,IAAKA,EAAKC,IAAKA,IACpBzB,EAAA,mBAAiBQ,KAAK,QAAQE,QAAQ,MAAMR,MAAM,QAAQO,MAAM,UAAUE,WAAYgB,IACrFC,EAAS,K,MAULC,EAAY,MALzB,WAAAvC,CAAAC,G,UAgBEC,KAAM+B,OAAG,MAGT/B,KAAQsC,SAAG,MAQHtC,KAASuC,UAAuB,KAEhCvC,KAAcwC,eAAuB,IA6M9C,CAtMC,YAAAC,CAAaC,GACX,GAAIA,EAAMC,kBAAkBC,iBAAkB,CAC5C5C,KAAK6C,YAAYH,EAAMC,O,EAI3B,iBAAAG,GACE9C,KAAKuC,UAAYvC,KAAKI,KAAK2C,cAA8B,qBAEzD/C,KAAKwC,eAAiBxC,KAAKI,KAAK2C,cAA8B,yB,CAGhE,gBAAAC,GACEhD,KAAKiD,eAAiB,IAAIC,eACxBC,GAAS,KACP,MAAMC,EAAapD,KAAKI,KAAK2C,cAAc,OAE3C,GAAIK,aAAsBR,iBAAkB,CAC1C5C,KAAK6C,YAAYO,E,IAElB,MAGLpD,KAAKqD,iBAAmB,IAAIC,kBAAkBlC,I,QAC5CmC,EAAYvD,KAAKI,MAEjB,KAAIoD,EAAApC,EAAE,MAAE,MAAAoC,SAAA,SAAAA,EAAEC,QAAS,YAAa,EAC9BC,EAAA1D,KAAKiD,kBAAgB,MAAAS,SAAA,SAAAA,EAAAC,aAErB3D,KAAK4D,mB,KAIT5D,KAAKqD,iBAAiBQ,QAAQ7D,KAAKI,KAAM,CACvC0D,WAAY,KACZC,QAAS,KACTC,gBAAiB,CAAC,MAAO,OACzBC,UAAW,OAGbjE,KAAK4D,mB,CAGP,oBAAAM,G,WACEV,EAAAxD,KAAKmE,QAAM,MAAAX,SAAA,SAAAA,EAAAY,cACXV,EAAA1D,KAAKqD,oBAAkB,MAAAK,SAAA,SAAAA,EAAAC,cACvBU,EAAArE,KAAKiD,kBAAgB,MAAAoB,SAAA,SAAAA,EAAAV,Y,CAGf,iBAAAC,G,MACN,MAAMR,EAAapD,KAAKI,KAAK2C,cAAc,OAE3C,KAAMK,aAAsBR,kBAAmB,CAC7C,M,CAIF,GAAIQ,EAAWkB,SAAU,CACvBtE,KAAK6C,YAAYO,E,EAGnBI,EAAAxD,KAAKiD,kBAAc,MAAAO,SAAA,SAAAA,EAAEK,QAAQT,E,CAGvB,WAAAP,CAAY0B,GAClB,MAAMC,MAAEA,EAAKC,aAAEA,EAAYC,OAAEA,EAAMC,cAAEA,GAAkBJ,EAEvDvE,KAAKsC,SAAWkC,EAAQC,GAAgBC,EAASC,C,CAG3C,aAAAC,CAAcC,GACpB,OAAOA,IAAgB,WAAaA,IAAgB,W,CAGtD,MAAAxE,G,MACE,MAAM2B,IAAEA,EAAGC,IAAEA,IAAQuB,EAAAxD,KAAKI,KAAK2C,cAAc,UAAM,MAAAS,SAAA,EAAAA,EAAI,GAEvD,MAAMsB,EACH9E,KAAK6E,aAAe7E,KAAK4E,cAAc5E,KAAK6E,cAAgBlD,EAAkB3B,KAAK6E,cAAiB9D,UAEvG,MAAMgE,EAAS/E,KAAKsC,UAClB9B,EAAA,mBACEQ,KAAK,gBACLN,MAAM,OACNQ,QAAQ,MACRD,MAAM,gCACNiB,IAAM8C,GAAahF,KAAKiF,kBAAoBD,EAC5C7D,WAAY,IAAOnB,KAAK+B,OAAS,OAIrC,GAAI/B,KAAK6E,cAAgB,YAAa,CACpC,OACErE,EAAC0E,EAAI,CAACC,QAAS,KAAK,IAAA3B,EAAC,OAAAA,EAAAxD,KAAKiF,qBAAiB,MAAAzB,SAAA,SAAAA,EAAE4B,UAAU,GACrD5E,EAAK,OAAAE,MAAM,qBACTF,EAAK,OAAAE,MAAM,oBAAoBoE,EAAuB,KACtDtE,EAACsB,EACC,CAAAC,OAAQ/B,KAAK+B,OACbC,IAAKA,EACLC,IAAKA,EACLC,IAAM8C,GAAahF,KAAKqF,eAAiBL,EACzC7C,MAAO,IAAOnC,KAAK+B,OAAS,OAE3B/B,KAAKuC,WACJ/B,EAAK,OAAAE,MAAM,SACTF,EAAA,QAAM8E,KAAK,WAGf9E,EAAK,OAAAE,MAAM,oBAAoB6E,QAASvF,KAAKwC,gBAC3ChC,EAAA,QAAM8E,KAAK,gBAEZ9E,EAAK,OAAAE,MAAM,oBAAoBoE,EAAe,MAEjDtE,EAAQ,aACPuE,G,CAMT,GAAI/E,KAAK6E,cAAgB,UAAW,CAClC,OACErE,EAAC0E,EAAI,CAACC,QAAS,KAAK,IAAA3B,EAAC,OAAAA,EAAAxD,KAAKiF,qBAAiB,MAAAzB,SAAA,SAAAA,EAAE4B,UAAU,GACrD5E,EAAK,OAAAE,MAAM,kBACTF,EAAK,OAAAE,MAAM,oBAAoBoE,EAAuB,KACtDtE,EAACsB,EACC,CAAAC,OAAQ/B,KAAK+B,OACbC,IAAKA,EACLC,IAAKA,EACLC,IAAM8C,GAAahF,KAAKqF,eAAiBL,EACzC7C,MAAO,IAAOnC,KAAK+B,OAAS,OAE3B/B,KAAKuC,WACJ/B,EAAK,OAAAE,MAAM,SACTF,EAAA,QAAM8E,KAAK,WAGf9E,EAAK,OAAAE,MAAM,oBAAoB6E,QAASvF,KAAKwC,gBAC3ChC,EAAA,QAAM8E,KAAK,gBAEZ9E,EAAK,OAAAE,MAAM,oBAAoBoE,EAAe,MAEjDtE,EAAQ,aACPuE,G,CAMT,OACEvE,EAAC0E,EAAI,CAACC,QAAS,KAAK,IAAA3B,EAAC,OAAAA,EAAAxD,KAAKiF,qBAAiB,MAAAzB,SAAA,SAAAA,EAAE4B,UAAU,GACrD5E,EAACsB,EACC,CAAAC,OAAQ/B,KAAK+B,OACbC,IAAKA,EACLC,IAAKA,EACLC,IAAM8C,GAAahF,KAAKqF,eAAiBL,EACzC7C,MAAO,IAAOnC,KAAK+B,OAAS,OAE3B/B,KAAKuC,WACJ/B,EAAK,OAAAE,MAAM,SACTF,EAAA,QAAM8E,KAAK,WAGf9E,EAAK,OAAAE,MAAM,oBAAoB6E,QAASvF,KAAKwC,gBAC3ChC,EAAA,QAAM8E,KAAK,iBAGf9E,EAAQ,aACPuE,E,CAKP,kBAAAS,G,QACE,GAAIxF,KAAK+B,QAAU/B,KAAKqF,iBAAmBrF,KAAKmE,KAAM,CACpDnE,KAAKmE,KAAOsB,EAAgBzF,KAAKqF,eAAgB,CAC/CK,kBAAmB,KACnBC,wBAA0BvE,IACxB,GAAIA,aAAawE,YAAcxE,EAAEyE,eAAe,KAAO7F,KAAKqF,eAAgB,CAC1ErF,KAAK+B,OAAS,MAEd,OAAO,K,CAGT,OAAO,IAAI,EAEb+D,gBAAgBtC,EAAAxD,KAAKiF,qBAAiB,MAAAzB,SAAA,EAAAA,EAAI,MAC1CuC,aAAc,IAAO/F,KAAK+B,OAAS,MACnCiE,gBAAiB,CACfC,cAAgBC,IAAS,IAAA1C,EAAA,OAAAA,EAAA0C,EAAKC,cAAc,MAAA3C,SAAA,EAAAA,EAAAzC,SAAS,KAEtDqF,U,MACE,IAAKpG,KAAK+B,QAAU/B,KAAKmE,KAAM,EACpCT,EAAA1D,KAAKmE,QAAM,MAAAT,SAAA,SAAAA,EAAAU,oBAEJpE,KAAKmE,I,wCCjRZ,SAAUkC,EAAYH,GAC1B,GAAIA,aAAgBI,QAAS,CAC3B,OAAOJ,EAAKK,S,CAGd,GAAIL,EAAKM,SAASC,SAAS,KAAM,CAC/B,OAAOP,EAAKM,SAASE,UAAUR,EAAKM,SAASG,QAAQ,KAAO,E,CAG9D,OAAOT,EAAKM,QACd,C,MCLaI,EAAb,WAAA9G,GACEE,KAAIsF,KAAG,M,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,MAAMC,EAAQZ,EAAKa,aAAa,SAEhC,OACEvG,EAAA,QAAME,MAAM,WACVF,EAAA,YAAOqG,EAAaX,EAAKc,aACxBF,GAAS,KAAKA,K,ECNhB,MAAMG,EAA6D,EAAGpC,eAAezC,KAC1F,GAAIyC,IAAgB,UAAW,CAC7B,OAAOrE,EAAA,WAAM4B,E,CAGf,GAAIyC,IAAgB,YAAa,CAC/B,OAAOrE,EAAA,WAAM4B,E,CAGf,OAAOA,CAAQ,ECfX,SAAU8E,EAAuBrC,GACrC,GAAIA,IAAgB,UAAW,CAC7B,MAAO,gB,CAGT,GAAIA,IAAgB,YAAa,CAC/B,MAAO,mB,CAGT,OAAO9D,SACT,CCHA,SAASoG,EAAWC,GAClB,OAAOA,EAAKC,MAAMC,IAChB,MAAMd,EAAWH,EAAYiB,GAE7B,OAAOd,IAAa,MAAQA,IAAa,WAAW,GAExD,C,MAEae,EAAb,WAAAzH,GACEE,KAAIsF,KAAG,I,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,EAAYO,KAAEA,EAAII,OAAEA,IAC1C,IAAIC,EAAUZ,EAAaX,EAAKc,YAChC,MAAMnC,EAAc6C,EAAyBxB,GAC7C,MAAMyB,EAAYT,EAAuBrC,GAEzC,GAAI2C,GAAUL,EAAWC,GAAO,CAC9BK,EACEjH,EAAM,QAAAK,KAAK,YAAYH,MAAOiH,GAC3BF,E,KAGA,CACLA,EAAUjH,EAAA,KAAGE,MAAOiH,GAAYF,E,CAGlC,OAAOjH,EAACyG,EAAgB,CAAApC,YAAaA,GAAc4C,E,QC9B1CG,EAAb,WAAA9H,GACEE,KAAIsF,KAAG,M,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,OAAOrG,EAAM,QAAAE,MAAM,iBAAiBmG,EAAaX,EAAKc,Y,QCJ7Ca,EAAb,WAAA/H,GACEE,KAAIsF,KAAG,W,CAEP,MAAAjF,CAAO6F,GAAYW,aAAEA,IACnB,OAAOrG,EAACsH,EAAQ,KAAEjB,EAAaX,EAAKc,Y,6CCIxC,IAAIe,EAAY,kBAGhB,IAAIC,EAAc,4CAGlB,IAAIC,EAAU,8CAGd,IAAIC,EAAgB,kBAChBC,EAAoB,iCACpBC,EAAsB,kBACtBC,EAAiB,kBACjBC,EAAe,4BACfC,EAAgB,uBAChBC,EAAiB,+CACjBC,EAAqB,kBACrBC,EAAe,+JACfC,EAAe,4BACfC,EAAa,iBACbC,EAAeN,EAAgBC,EAAiBC,EAAqBC,EAGzE,IAAII,EAAS,OACTC,EAAU,IAAMF,EAAe,IAC/BG,EAAU,IAAMb,EAAoBC,EAAsB,IAC1Da,EAAW,OACXC,EAAY,IAAMb,EAAiB,IACnCc,EAAU,IAAMb,EAAe,IAC/Bc,EAAS,KAAOlB,EAAgBW,EAAeI,EAAWZ,EAAiBC,EAAeK,EAAe,IACzGU,EAAS,2BACTC,EAAa,MAAQN,EAAU,IAAMK,EAAS,IAC9CE,EAAc,KAAOrB,EAAgB,IACrCsB,EAAa,kCACbC,EAAa,qCACbC,EAAU,IAAMf,EAAe,IAC/BgB,EAAQ,UAGZ,IAAIC,EAAc,MAAQT,EAAU,IAAMC,EAAS,IAC/CS,EAAc,MAAQH,EAAU,IAAMN,EAAS,IAC/CU,EAAkB,MAAQhB,EAAS,yBACnCiB,EAAkB,MAAQjB,EAAS,yBACnCkB,EAAWV,EAAa,IACxBW,EAAW,IAAMrB,EAAa,KAC9BsB,EAAY,MAAQP,EAAQ,MAAQ,CAACJ,EAAaC,EAAYC,GAAYU,KAAK,KAAO,IAAMF,EAAWD,EAAW,KAClHI,EAAQH,EAAWD,EAAWE,EAC9BG,EAAU,MAAQ,CAACnB,EAAWM,EAAYC,GAAYU,KAAK,KAAO,IAAMC,EAG5E,IAAIE,EAASC,OAAOzB,EAAQ,KAM5B,IAAI0B,EAAcD,OAAOvB,EAAS,KAGlC,IAAIyB,EAAgBF,OAAO,CACzBb,EAAU,IAAMP,EAAU,IAAMW,EAAkB,MAAQ,CAACf,EAASW,EAAS,KAAKS,KAAK,KAAO,IAC9FN,EAAc,IAAME,EAAkB,MAAQ,CAAChB,EAASW,EAAUE,EAAa,KAAKO,KAAK,KAAO,IAChGT,EAAU,IAAME,EAAc,IAAME,EACpCJ,EAAU,IAAMK,EAChBd,EACAoB,GACAF,KAAK,KAAM,KAGb,IAAIO,EAAmB,sEAGvB,IAAIC,EAAkB,CAEpB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IACnC,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAER,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,KAAM,EAAU,KAC1B,EAAU,KAAM,EAAU,KAC1B,EAAU,KAAM,EAAU,MAI5B,IAAIC,SAAoBC,GAAU,UAAYA,GAAUA,EAAOC,SAAWA,QAAUD,EAGpF,IAAIE,SAAkBC,MAAQ,UAAYA,MAAQA,KAAKF,SAAWA,QAAUE,KAG5E,IAAIC,EAAOL,GAAcG,GAAYG,SAAS,cAATA,GAcrC,SAASC,EAAYC,EAAOC,EAAUC,EAAaC,GACjD,IAAIC,GAAQ,EACRC,EAASL,EAAQA,EAAMK,OAAS,EAKpC,QAASD,EAAQC,EAAQ,CACvBH,EAAcD,EAASC,EAAaF,EAAMI,GAAQA,EAAOJ,EAC7D,CACE,OAAOE,CACT,CASA,SAASI,EAAWC,GAClB,OAAOA,EAAOC,MAAM5D,IAAgB,EACtC,CASA,SAAS6D,EAAeC,GACtB,OAAO,SAASrL,GACd,OAAOqL,GAAU,KAAO/K,UAAY+K,EAAOrL,E,CAE/C,CAUA,IAAIsL,EAAeF,EAAelB,GASlC,SAASqB,EAAeL,GACtB,OAAOjB,EAAiBuB,KAAKN,EAC/B,CASA,SAASO,GAAaP,GACpB,OAAOA,EAAOC,MAAMnB,IAAkB,EACxC,CAGA,IAAI0B,GAAcrB,OAAOsB,UAOzB,IAAIC,GAAiBF,GAAYG,SAGjC,IAAIC,GAAStB,EAAKsB,OAGlB,IAAIC,GAAcD,GAASA,GAAOH,UAAYrL,UAC1C0L,GAAiBD,GAAcA,GAAYF,SAAWvL,UAU1D,SAAS2L,GAAaC,GAEpB,UAAWA,GAAS,SAAU,CAC5B,OAAOA,CACX,CACE,GAAIC,GAASD,GAAQ,CACnB,OAAOF,GAAiBA,GAAeI,KAAKF,GAAS,EACzD,CACE,IAAIG,EAAUH,EAAQ,GACtB,OAAQG,GAAU,KAAQ,EAAIH,IAAUI,SAAa,KAAOD,CAC9D,CASA,SAASE,GAAiBC,GACxB,OAAO,SAAStB,GACd,OAAOR,EAAY+B,GAAMC,GAAOxB,GAAQyB,QAAQ9C,EAAQ,KAAM2C,EAAU,G,CAE5E,CA0BA,SAASI,GAAaV,GACpB,QAASA,UAAgBA,GAAS,QACpC,CAmBA,SAASC,GAASD,GAChB,cAAcA,GAAS,UACpBU,GAAaV,IAAUN,GAAeQ,KAAKF,IAAU5E,CAC1D,CAuBA,SAASuE,GAASK,GAChB,OAAOA,GAAS,KAAO,GAAKD,GAAaC,EAC3C,CAoBA,SAASQ,GAAOxB,GACdA,EAASW,GAASX,GAClB,OAAOA,GAAUA,EAAOyB,QAAQnF,EAAS8D,GAAcqB,QAAQ5C,EAAa,GAC9E,CAuBA,IAAI8C,GAAYN,IAAiB,SAASF,EAAQS,EAAM/B,GACtD,OAAOsB,GAAUtB,EAAQ,IAAM,IAAM+B,EAAKC,aAC5C,IAqBA,SAASN,GAAMvB,EAAQ8B,EAASC,GAC9B/B,EAASW,GAASX,GAClB8B,EAA8BA,EAE9B,GAAIA,IAAY1M,UAAW,CACzB,OAAOiL,EAAeL,GAAUO,GAAaP,GAAUD,EAAWC,EACtE,CACE,OAAOA,EAAOC,MAAM6B,IAAY,EAClC,CAEAE,EAAiBL,G,oCC5aJM,EAAb,WAAA9N,GACEE,KAAAsF,KAAO,CAAC,SAAU,W,CAElB,MAAAjF,CAAO6F,GAAeW,aAAEA,EAAYgH,YAAEA,IACpC,MAAMlG,EAAY2F,EAAUpH,EAAK4H,SACjC,MAAMnB,EAAQzG,EAAKa,aAAa,OAChC,MAAMzB,EAA8BY,EAAK4H,UAAY,SAAW,SAAW,WAC3E,MAAMC,EAAOF,EAAcA,EAAYvI,EAAM,MAAOqH,EAAOzG,GAAQyG,EAEnE,OACEnM,EACE,KAAAmC,OAAO,SACPqL,IAAI,sBACJD,KAAMA,IAAI,MAAJA,SAAI,EAAJA,EAAQhN,UACdL,MAAOiH,EACPb,MAAM,yCAENtG,EAAA,YAAOqG,EAAaX,EAAKc,aACzBxG,EAAA,YAAUQ,KAAK,kB,QClBViN,EAAb,WAAAnO,GAEEE,KAAAsF,KAAO,CAAC,a,CAER,MAAAjF,CAAO6F,GAAYW,aAAEA,IACnB,OAAOrG,EAAA,QAAME,MAAO,eAAe2F,EAAYH,MAAUW,EAAaX,EAAKc,Y,ECe/E,MAAMkH,EAAmD,EAAGC,aAAYC,OAAMvH,mB,MAC5E,MAAMwH,EAAWD,KAAQ5K,EAAA4K,EAAKE,eAAa,MAAA9K,SAAA,SAAAA,EAAA+K,QAE3C,OACE/N,EAAA,QAAME,MAAM,qBACTyN,GAAcA,EAAWK,QAAU3H,EAAasH,EAAWK,QAC3DH,GACC7N,EAACsH,EAAQ,KACN,GAAGqG,EAAa,IAAM,YACtBtH,EAAauH,G,KAGb,E,MAIEK,EAAb,WAAA3O,GACEE,KAAAsF,KAAO,CAAC,S,CAEA,QAAAoJ,CAASC,GACf,MAAMC,EAAcC,OAAOF,EAAYG,SACvC,MAAMC,EAAeF,OAAOF,EAAYK,QAExC,MAAMC,EAAQ,CACZ,6CAA8CN,EAAYO,YAG5D,GAAIN,GAAeG,EAAc,CAI/B,MAAMI,EAAkBC,KAAKC,IAAIV,EAAYW,IAAO,KAAOV,EAAeC,OAAOF,EAAYW,KAAO,IAAK,KAEzGxE,OAAOyE,OAAON,EAAO,CACnB,gDAAiDL,EAAcG,GAAczC,WAC7E,wCAAyC,GAAG6C,M,CAIhD,OAAOF,C,CAGD,kBAAAO,CAAmBtJ,G,UACzB,MAAO,CACLuJ,MAAMjM,EAAA0C,EAAKa,aAAa,WAAO,MAAAvD,SAAA,EAAAA,EAAI,GACnCsL,QAASD,OAAO3I,EAAKa,aAAa,YAClCiI,OAAQH,OAAO3I,EAAKa,aAAa,WACjCuI,IAAKT,OAAO3I,EAAKa,aAAa,QAC9BmI,YACExL,EAAA,CAAC,QAAS,SAAU,OAAOgM,MAAMC,GAAsCzJ,EAAKa,aAAa,gBAAkB4I,OAAE,MAAAjM,SAAA,EAAAA,EAC7G,QACFzB,KAAKoC,EAAA6B,EAAKa,aAAa,UAAM,MAAA1C,SAAA,EAAAA,EAAItD,U,CAIrC,MAAAV,CAAO6F,GAAeW,aAAEA,EAAYgH,YAAEA,I,cACpC,MAAM7G,EAAa4I,MAAMC,KAAK3J,EAAKc,YACnC,MAAM8I,GAAQtM,EAAAwD,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,aAAU,MAAA9D,SAAA,SAAAA,EAAA8K,YAClE,MAAMF,EAAOpH,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,SAEvD,MAAMyI,EAAkB/I,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,gBAClE,MAAM0I,EAAiBhJ,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,eAEjE,MAAMzC,EAAcqB,EAAKa,aAAa,gBAAkBhG,UAExD,GAAIgP,aAA2BzJ,QAAS,CACtC,MAAMqI,EAAc3O,KAAKwP,mBAAmBO,GAE5C,MAAM5B,EACJ6B,aAA0B1J,QACtB,CACEkI,OAAQwB,EAAehJ,WACvBiJ,SAASvM,EAAAsM,EAAejJ,aAAa,cAAU,MAAArD,SAAA,EAAAA,EAAI,SAErD3C,UAEN,MAAMiB,EAAM6L,EAAcA,EAAY,cAAe,OAAQc,EAAYc,KAAMvJ,GAAQyI,EAAYc,KAEnG,OACEjP,EACE,OAAAE,MAAO,mBAAmByN,EAAa,cAAcA,EAAW8B,UAAY,UAC5EhB,MAAOjP,KAAK0O,SAASC,IAEpBmB,GAAStP,EAAM,QAAAE,MAAM,gBAAgBoP,IACrC3B,IAAA,MAAAA,SAAA,SAAAA,EAAY8B,WAAY,SACvBzP,EAAC0N,EAAU,CAACC,WAAYA,EAAYC,KAAMA,EAAMvH,aAAcA,IAEhErG,EAAmB,qBAAAqE,YAAaA,GAC7BiL,GACCtP,EAAK,OAAA0P,KAAK,SACR1P,EAAO,YAAAsP,IAGXtP,EAAK,OAAAwB,IAAKA,IAAA,MAAAA,SAAA,EAAAA,EAAOjB,UAAWkB,KAAKkO,GAAAC,GAAA/L,EAAAsK,EAAY1M,OAAO,MAAAoC,SAAA,EAAAA,EAAAyL,KAAS,MAAAM,SAAA,EAAAA,EAAAzB,EAAYc,QAAQ,MAAAU,SAAA,EAAAA,EAAApP,aAC/EoN,GAAcC,IACd5N,EAAA,OAAK0P,KAAK,cACR1P,EAAC0N,EAAW,CAAAC,WAAYA,EAAYC,KAAMA,EAAMvH,aAAcA,QAIlEsH,IAAU,MAAVA,SAAU,SAAVA,EAAY8B,WAAY,UAAa9B,GAAcC,IACnD5N,EAAC0N,EAAW,CAAAC,WAAYA,EAAYC,KAAMA,EAAMvH,aAAcA,I,SC1H7DwJ,EAAb,WAAAvQ,GACEE,KAAIsF,KAAG,CAAC,SAAU,sBAAuB,uD,CAEzC,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,MAAMhC,EAAcqB,EAAKa,aAAa,eAEtC,MAAMuJ,EAAc9P,EAAK,OAAAE,MAAM,oBAAoBmG,EAAaX,EAAKc,aAErE,GAAInC,IAAgB,YAAa,CAC/B,OAAOrE,EAAA,OAAKE,MAAM,qBAAqB4P,E,CAGzC,GAAIzL,IAAgB,UAAW,CAC7B,OAAOrE,EAAA,OAAKE,MAAM,kBAAkB4P,E,CAGtC,OAAOA,C,QChBEC,EAAb,WAAAzQ,GACEE,KAAAsF,KAAO,CAAC,wBAAyB,c,CAEjC,MAAAjF,CAAO6F,GAAe2H,YAAEA,I,UACtB,MAAMlB,EAAQzG,EAAKa,aAAa,QAChC,MAAMzB,EACJY,EAAK4H,UAAY,wBAA0B,wBAA0B,cACvE,MAAM9L,EAAM6L,EAAcA,EAAYvI,EAAM,OAAQqH,EAAOzG,GAAQyG,EAEnE,OACEnM,EAAA,OACEwB,IAAKA,IAAA,MAAAA,SAAA,EAAAA,EAAOjB,UACZkB,KAAKuB,EAAA0C,EAAKa,aAAa,WAAO,MAAAvD,SAAA,EAAAA,EAAIzC,UAClC2D,QAAQhB,EAAAwC,EAAKa,aAAa,aAAa,MAAArD,SAAA,EAAAA,EAAA3C,UACvCyD,OAAOH,EAAA6B,EAAKa,aAAa,cAAc,MAAA1C,SAAA,EAAAA,EAAAtD,W,QCdlCyP,EAAb,WAAA1Q,GACEE,KAAAsF,KAAO,CAAC,MAAO,MAAO,SAAU,IAAK,IAAK,IAAK,K,CAE/C,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,GAAIX,EAAKK,YAAc,KAAM,CAC3B,OAAO/F,EAAA,U,CAGT,MAAMiQ,EAAMvK,EAAKK,UAEjB,OAAO/F,EAACiQ,EAAG,KAAE5J,EAAaX,EAAKc,Y,QCVtB0J,EAAb,WAAA5Q,GACEE,KAAIsF,KAAG,U,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,EAAY8J,UAAEA,EAAS9C,YAAEA,IAC/C,MAAMlB,EAAQzG,EAAKa,aAAa,OAChC,MAAMgH,EAAOF,EAAcA,EAAY,WAAY,MAAOlB,EAAOzG,GAAQyG,EAEzE,IAAKA,EAAO,CACV,OAAO9F,EAAaX,EAAKc,W,CAG3B,MAAM4J,EAAmBlO,IACvBiO,EAAU,CACRlN,KAAM,WACNyC,OACA3E,cAAemB,GACf,EAGJ,OACElC,EAACsH,EAAQ,KACPtH,EAA4B,8BAAAQ,KAAK,gBAC/BR,EAAM,QAAA0P,KAAK,SAASrJ,EAAaX,EAAKc,aACtCxG,EAAA,S,8BAC8B,IAC5BA,EAAQ,UAAAiD,KAAK,SAAS/C,MAAM,eAAeyE,QAASyL,GAClDpQ,EAA+B,kCAC/BA,EAAA,YAAUQ,KAAK,YAGnBR,EAAA,S,yBACyB,IACvBA,EACE,KAAAmC,OAAO,SACPqL,IAAI,sBACJD,KAAMA,IAAA,MAAAA,SAAI,EAAJA,EAAQhN,UACd+F,MAAM,yCAENtG,EAAA,YAAOqG,EAAaX,EAAKc,aACzBxG,EAAU,YAAAQ,KAAK,qB,QCrChB6P,EAAb,WAAA/Q,GACEE,KAAIsF,KAAG,Q,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,EAAY8J,UAAEA,EAASG,eAAEA,EAAcjD,YAAEA,I,MAC/D,MAAMkD,EAAQ7K,EAAKa,aAAa,SAChC,MAAM4F,EAAQzG,EAAKa,aAAa,OAEhC,GAAIgK,IAAU,SAAU,CACtB,MAAMC,GAAYxN,EAAAsN,IAAc,MAAdA,SAAc,SAAdA,EAAiBnE,EAAOzG,MAAK,MAAA1C,SAAA,EAAAA,EAAImJ,EACnD,MAAMsE,SAAuBD,IAAc,SAAWE,EAASF,GAAaA,EAE5E,OACExQ,EAAA,8BAA4BQ,KAAK,QAC/BR,EAAM,QAAA0P,KAAK,SAASrJ,EAAaX,EAAKc,aACrCiK,EAAgBpK,EAAaoK,GAAiB,K,CAKrD,MAAME,EAAqBzO,IACzBiO,EAAU,CACRlN,KAAM,SACNyC,OACA3E,cAAemB,EACf0O,gBAAiBA,EAAgB1O,IACjC,EAGJ,OACElC,EAAA,KAAGuN,KAAMF,IAAW,MAAXA,SAAW,SAAXA,EAAc,SAAU,MAAOlB,EAAOzG,GAAOf,QAASgM,GAC5DtK,EAAaX,EAAKc,Y,EC9B3B,SAASqK,EAAQnL,GACf,MAAO,CACLjF,MAAOiF,EAAKnD,cAAc,SAC1BuO,OAAQpL,EAAKnD,cAAc,UAC3BwO,UAAWrL,EAAKnD,cAAc,aAC9ByO,UAAW5B,MAAMC,KAAK3J,EAAKuL,iBAAiB,aAEhD,C,MAEaC,EAAb,WAAA5R,GACEE,KAAIsF,KAAG,MAEPtF,KAAO2R,QAAG,CAAC,QAAS,SAAU,YAAa,W,CAE3C,MAAAtR,CAAO6F,GAAeW,aAAEA,EAAY8J,UAAEA,IACpC,MAAMiB,EAAkBlP,IACtBiO,EAAU,CACRlN,KAAM,MACNyC,OACA3E,cAAemB,GACf,EAGJ,MAAMzB,MAAEA,EAAKqQ,OAAEA,EAAMC,UAAEA,EAASC,UAAEA,GAAcH,EAAQnL,GAExD,MAAM2L,EAAmB5Q,EAAQyG,EAAyBzG,GAASF,UACnE,MAAM+Q,EAAoBR,EAAS5J,EAAyB4J,GAAUvQ,UACtE,MAAMgR,EAAuBR,EAAY7J,EAAyB6J,GAAaxQ,UAE/E,OACEP,EAACyG,EAAe,CAACpC,YAAa6C,EAAyBxB,IACrD1F,EAAA,OAAK2E,QAASyM,EAAgBI,KAAK,QAChC/Q,GAAST,EAACyG,EAAe,CAACpC,YAAagN,GAAmBhL,EAAa5F,EAAM+F,aAC7EsK,GACC9Q,EAAAsH,EAAA,KACG,IACDtH,EAACyG,EAAe,CAACpC,YAAaiN,GAAoBjL,EAAayK,EAAOtK,cAGzEuK,GACC/Q,EAAAsH,EAAA,KACG,IACDtH,EAACyG,EAAe,CAACpC,YAAakN,GAAuBlL,EAAa0K,EAAUvK,eAIjFwK,EAAU/F,OAAS,GAClBjL,EAAA,OAAKE,MAAM,sBAAsBsR,KAAK,cACnCR,EAAUS,KAAKC,IACd,MAAMC,EAAsBzK,EAAyBwK,GAErD,OACE1R,EAAA,OAAKE,MAAM,YACTF,EAACyG,EAAe,CAACpC,YAAasN,GAC3BtL,EAAaqL,EAASlL,aAErB,K,QCrDToL,EAAb,WAAAtS,GACEE,KAAIsF,KAAG,O,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,MAAMhC,EAAc6C,EAAyBxB,GAC7C,MAAMc,EAAa4I,MAAMC,KAAK3J,EAAKc,YACnC,MAAMvD,EAAO4O,EAAuBnM,GACpC,MAAMoM,EAAStL,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,gBACzD,MAAMiL,EAAWvL,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,kBAC3D,MAAMkL,EAAYxL,EAAWyL,QAAQnL,GAAMjB,EAAYiB,KAAO,OAE9D,OACE9G,EAACyG,EAAgB,CAAApC,YAAaA,GAC5BrE,EAAK,OAAAE,MAAOC,EAAK,0BAA2BuG,EAAuBrC,KAChEyN,GAAUzL,EAAayL,GACxB9R,EAAI,MAAAE,MAAO+C,GACR+O,EAAUP,KAAKS,I,MACd,MAAMC,EAAY/C,MAAMC,KAAK6C,EAAK1L,YAClC,MAAM4L,GAAWpP,EAAAmP,EAAUjD,MAAMpI,GAAMjB,EAAYiB,KAAO,gBAAa,MAAA9D,SAAA,SAAAA,EAAAwD,WACvE,MAAM6L,EAAgBnL,EAAyBgL,GAE/C,OACElS,EAAA,MAAIE,MAAOC,EAAK,QAASuG,EAAuB2L,KAC7CD,GAAYpS,EAAM,QAAAE,MAAM,eAAemG,EAAa+L,IACrDpS,EAACyG,EAAe,CAACpC,YAAagO,GAC3BhM,EAAa8L,EAAUF,QAAQnL,GAAMjB,EAAYiB,KAAO,eAExD,KAIViL,GAAY1L,EAAa0L,I,EAOpC,SAASF,EAAuBnM,GAC9B,MAAMzC,EAAOyC,aAAgBI,QAAUJ,EAAKa,aAAa,QAAUhG,UAEnE,OAAO0C,IAAS,aAAeA,IAAS,eAAiBA,EAAO1C,SAClE,C,MC/Ca+R,GAAb,WAAAhT,GACEE,KAAIsF,KAAG,a,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,OAAOrG,EAAK,OAAAE,MAAM,YAAYmG,EAAaX,EAAKc,Y,QCHvC+L,GAAb,WAAAjT,GACEE,KAAIsF,KAAG,OAEPtF,KAAA2R,QAAU,CAAC,a,CAEX,QAAAqB,GACE,MAAO,M,CAGT,MAAA3S,CAAO6F,GAAeW,aAAEA,EAAcoM,MAAOC,EAAUC,SAAEA,I,QACvD,MAAMC,EAASlN,EAAKa,aAAa,MACjC,IAAKqM,EAAQ,CACXC,QAAQ3T,MAAM,uBAAwBwG,GAEtC,OAAO1F,EAACsH,EAAQ,K,CAGlB,MAAMwL,EAAiB,iBAAiBF,IAExC,MAAMpM,EAAa4I,MAAMC,KAAK3J,EAAKc,YACnC,MAAMuM,GAAa7P,GAAAF,EAAAwD,EAAW0I,MAAMpI,GAAMjB,EAAYiB,KAAO,kBAAe,MAAA9D,SAAA,SAAAA,EAAA8K,eAAe,MAAA5K,SAAA,EAAAA,EAAA0P,EAE3F,OACE5S,EAACsH,EAAQ,KACPtH,EAAA,WACEA,EAAA,UACEiD,KAAK,SACL/C,MAAM,cAAa,mBACD4S,EAClBnO,QAAS,IAAMgO,IAAA,MAAAA,SAAA,SAAAA,EAAWD,IAAeE,EAASrS,UAAYqS,GAC9DI,OAAQ,IAAML,IAAQ,MAARA,SAAQ,SAARA,EAAWpS,WACV,gBAAAmS,IAAeE,EAAS,OAAS,SAE/CG,IAGL/S,EAAA,eAAauB,OAAQmR,IAAeE,EAAQK,GAAIH,EAAgBI,UAAS,KAACC,YAAW,MACnFnT,EAAM,QAAAK,KAAK,WAAWgG,EAAa+I,MAAMC,KAAK3J,EAAKuL,iBAAiB,mB,ECzC9D,SAAAmC,GAAYC,EAAeC,GACzC,MAAMC,EAAWnE,MAAMC,KAAKiE,GAC5B,MAAME,EAAaC,GAAcF,GAEjC,MAAO,CACLC,aACAH,QACAK,QAASH,EAAS9B,KAAI,CAACjN,EAASwG,K,MAC9B,MAAM2I,EAAYnP,EAAQ+B,aAAa,UAEvC,MAAO,CACLqN,OAAQpP,EAAQ+B,aAAa,UAC7BzB,MAAM9B,EAAAwB,EAAQ+B,aAAa,cAAU,MAAAvD,SAAA,EAAAA,EAAI,GACzC6Q,OAAQF,EAAYG,SAASH,EAAW,IAAM3I,EAAQ,EACtD+I,OAAQvP,EAAQ+B,aAAa,UAC7BvC,MAAOgQ,GAASR,EAAYhP,GAC7B,IAGP,CAEA,SAASiP,GAAcF,GACrB,OAAOA,EAASU,QAAO,CAACT,EAAYhP,K,QAClC,MAAMR,GAAQd,GAAAF,EAAAwB,EAAQ+B,aAAa,eAAa,MAAAvD,SAAA,SAAAA,EAAA4J,QAAQ,SAAU,OAAG,MAAA1J,SAAA,EAAAA,EAAI,GACzE,MAAMgR,EAAWJ,SAAS9P,EAAO,IAEjC,OAAOwP,GAAcW,MAAMD,GAAY,EAAIA,EAAS,GACnD,EACL,CAEA,SAASF,GAASR,EAAoBhP,GACpC,MAAMR,EAAQQ,EAAQ+B,aAAa,YAEnC,IAAKvC,EAAO,CACV,OAAOzD,S,CAGT,GAAIyD,IAAU,IAAK,CACjB,MAAO,M,CAGT,GAAIA,EAAMiC,SAAS,MAAQjC,EAAMoH,MAAM,WAAY,CACjD,MAAM8I,EAAWJ,SAAS9P,EAAM4I,QAAQ,SAAU,IAAK,IAEvD,MAAO,GAAGgC,KAAKwF,MAAOF,EAAWV,EAAc,O,CAGjD,OAAOxP,CACT,CC9CO,MAAMqQ,GAAwD,EAAGC,cACtEA,EAASZ,QAAQzI,OAAS,EACxBjL,EAAA,gBACGsU,EAASZ,QAAQjC,KAAK8C,GACrBvU,EAAA,OAAKyO,MAAO,CAAEzK,MAAOuQ,EAAQvQ,YAIjChE,EAACsH,EAAW,MCJhB,SAASkN,IAAsBd,QAAEA,GAAqBe,GACpD,MAAMC,EAAehB,EAAQxE,MAAMyF,GAAMA,EAAE7P,OAAS2P,IAEpD,OAAOC,EAAeA,EAAad,OAAS,IAC9C,CAEA,SAASgB,IAAsBlB,QAAEA,GAAqBe,GACpD,MAAMC,EAAehB,EAAQxE,MAAMyF,GAAMA,EAAE7P,OAAS2P,IAEpD,OAAOC,EAAeA,EAAaX,OAAS,IAC9C,CAEA,SAASc,GAAQC,EAAeR,G,MAC9B,MAAMG,EAAYK,EAAKvO,aAAa,UACpC,MAAMwO,EAAMD,EAAKE,cACjB,MAAMC,GAASjS,EAAA+R,IAAA,MAAAA,SAAA,SAAAA,EAAKC,iBAAe,MAAAhS,SAAA,SAAAA,EAAAgS,cACnC,MAAME,EAAQD,IAAM,MAANA,SAAA,SAAAA,EAAQD,cACtB,MAAMpB,EACJkB,EAAKvO,aAAa,YACjB+N,GAAYG,EAAYD,GAAsBF,EAAUG,GAAa,OACrEQ,GAAUA,EAAO1O,aAAa,WAC9B2O,GAASA,EAAM3O,aAAa,UAC/B,MAAMwN,EACJe,EAAKvO,aAAa,WACjBwO,GAAOA,EAAIxO,aAAa,YACxB+N,GAAYG,EAAYG,GAAsBN,EAAUG,GAAa,OACrEQ,GAAUA,EAAO1O,aAAa,WAC9B2O,GAASA,EAAM3O,aAAa,UAE/B,MAAO,CACL4O,SAAUL,EAAKvO,aAAa,YAC5BkO,YACAW,QAASN,EAAKvO,aAAa,WAC3BqN,SACAG,SAEJ,CAEA,SAASsB,IAAW3B,QAAEA,GAAqBe,EAAmBW,GAC5D,MAAMV,EAAehB,EAAQxE,MAAMyF,GAAMA,EAAE7P,OAAS2P,IACpD,MAAMa,EAAa5B,EAAQxE,MAAMyF,GAAMA,EAAE7P,OAASsQ,IAClD,IAAKV,IAAiBY,EAAY,CAChC,OAAO/U,S,CAGT,MAAMgV,EAAUD,EAAWzB,OAASa,EAAab,OAAS,EAE1D,OAAO0B,IAAY,EAAIhV,UAAYgV,CACrC,CAEO,MAAMC,GAIR,EAAGC,SAAWpP,gBAAgBiO,WAAUQ,WAC3C,MAAMK,SAAEA,EAAQV,UAAEA,EAASW,QAAEA,EAAOxB,OAAEA,EAAMG,OAAEA,GAAWc,GAAQC,EAAMR,GAEvE,OACEtU,EAAA,MACEE,MAAOC,EAAK,CAAE,sBAAuB4T,IAAW,KAAO,CAAE,oBAAqBH,IAAW,MACzF8B,QAASP,EAAWrB,SAASqB,EAAU,IAAM,EAAI5U,UACjDoV,QAASrB,GAAYG,GAAaW,EAAUC,GAAWf,EAAUG,EAAWW,GAAW7U,WAEtF8F,EAAayO,EAAKtO,YAChB,ECjEF,MAAMoP,GAIR,EAAGH,UAASnB,WAAUuB,UAEvB7V,EACGsH,EAAA,KAAAuO,EAAKpE,KAAKsD,GACT/U,EAAA,UACGoP,MAAMC,KAAK0F,EAAInT,UAAU6P,KAAKqD,GAC7B9U,EAACwV,GAAI,CAACV,KAAMA,EAAMR,SAAUA,EAAUmB,QAASA,UCL3D,SAAS5E,GAAQnL,G,UACf,MAAMuP,EAASvP,EAAKnD,cAAc,mBAClC,MAAMuT,GAAe9S,EAAAiS,IAAM,MAANA,SAAM,SAANA,EAAQ1O,aAAa,WAAO,MAAAvD,SAAA,EAAAA,EAAIzC,UACrD,MAAMwV,EAAcD,EAAehC,SAASgC,EAAc,IAAMvV,UAEhE,MAAO,CACLyV,SAASnS,GAAAX,EAAAwC,EAAKnD,cAAc,qBAAiB,MAAAW,SAAA,SAAAA,EAAE4K,eAAW,MAAAjK,SAAA,EAAAA,EAAItD,UAC9D+T,SAAUW,GAAUc,EAAc3C,GAAY2C,EAAad,EAAOhE,iBAAiB,qBAAuB1Q,UAC1G0V,SAAU7G,MAAMC,KAAK3J,EAAKuL,iBAAiB,kCAC3CiF,SAAU9G,MAAMC,KAAK3J,EAAKuL,iBAAiB,kCAC3C5M,YAAaqB,EAAKa,aAAa,eAC/B4P,MAAOzQ,EAAKa,aAAa,SAAWb,EAAKa,aAAa,SAAW,MAErE,C,MAEa6P,GAAb,WAAA9W,GACEE,KAAIsF,KAAG,QAEPtF,KAAA2R,QAAU,CAAC,QAAS,SAAU,UAAW,QAAS,QAAS,MAAO,QAElE3R,KAAEyT,GAAGoD,G,CAEL,MAAAxW,CAAO6F,EAAe+P,GACpB,MAAMO,QAAEA,EAAO1B,SAAEA,EAAQ2B,SAAEA,EAAQC,SAAEA,EAAQ7R,YAAEA,EAAW8R,MAAEA,GAAUtF,GAAQnL,GAE9E,MAAMkI,EAAOwB,MAAMC,KAAK3J,EAAKc,YAAY0I,MAAMpI,GAAMjB,EAAYiB,KAAO,SAExE,OACE9G,EAAA,iBACEA,EAAA,QAAAsK,OAAAyE,OAAA,CACE7O,MAAOC,EAAK,QAAS,CACnB,iBAAkBkE,IAAgB,UAClC,oBAAqBA,IAAgB,YACrC,CAAC,2BAA2B8R,KAAUA,KAEnCvI,EAAO,CAAE,mBAAoBpO,KAAKyT,IAAO,IAE7C+C,GAAWhW,EAAU,eAAAgW,GACrB1B,GAAYtU,EAACqU,GAAQ,CAACC,SAAUA,IAChC2B,EAAShL,OAAS,GACjBjL,EAAA,aACEA,EAAC4V,GAAI,CAACC,KAAMI,EAAU3B,SAAUA,EAAUmB,QAASA,KAGtDS,EAASjL,OAAS,GACjBjL,EAAA,aACEA,EAAC4V,GAAK,CAAAC,KAAMK,EAAU5B,SAAUA,EAAUmB,QAASA,MAIxD7H,GAAQ5N,EAAK,OAAAiT,GAAIzT,KAAKyT,IAAKwC,EAAQpP,aAAauH,I,QCzD5C0I,GAAb,WAAAhX,GACEE,KAAIsF,KAAG,O,CAEP,MAAAjF,EAAOiO,YAAEA,IAAqByI,KAAEA,EAAIC,sBAAEA,IACpC,IAAKD,IAASzI,EAAa,CACzB,OAAO9N,EAAAsH,EAAA,KAAGwG,E,CAGZ,MAAMxB,EAASiK,EAAKzI,GAEpB,OAAQxB,GAAUA,EAAOrB,SAAW,EAClCjL,EAAGsH,EAAA,KAAAwG,GAEH9N,EACGsH,EAAA,KAAAgF,EAAOmF,KAAKtF,IACX,UAAWA,IAAU,SAAU,CAC7B,OAAOnM,EAAAsH,EAAA,KAAG6E,E,CAGZ,OACEnM,EACE,QAAAE,MAAOiM,EAAMsK,UAAY,gBAAkBlW,UAC3CmB,IAAMA,GAAQyK,EAAMsK,WAAa/U,GAAO8U,EAAsBrK,EAAMzM,KAAMgC,IAEzEyK,EAAMzM,KACF,I,QCzBNgX,GAAb,WAAApX,GACEE,KAAIsF,KAAG,kB,CAEP,MAAAjF,CAAO6F,GAAeW,aAAEA,IACtB,OAAOrG,EAAK,OAAAE,MAAM,gBAAgBmG,EAAaX,EAAKc,Y,QCmB3CmQ,GAAb,WAAArX,GACUE,KAAAoX,QAA6B,CACnC,IAAIxQ,EACJ,IAAIkQ,GACJ,IAAIjP,EACJ,IAAIwI,EACJ,IAAIqB,EACJ,IAAIb,EACJ,IAAIjD,EACJ,IAAIrG,EACJ,IAAIiJ,EACJ,IAAID,EACJ,IAAIwC,GACJ,IAAI6D,GACJ,IAAIlG,EACJ,IAAIjC,EACJ,IAAI2D,EACJ,IAAIxK,EACJ,IAAIkL,GACJ,IAAIoE,IAGElX,KAAAqX,KAAOrX,KAAKoX,QAAQ3C,QAAiB,CAAC6C,EAAGC,KAC/C,GAAIA,EAAE5F,QAAS,CACb2F,EAAEE,QAAQD,EAAE5F,Q,CAGd,OAAO2F,CAAC,GACP,IAEKtX,KAAAyX,aAAe,IAAIxJ,C,CAEnB,UAAAyJ,CAAWpS,G,MACjB,GAAItF,KAAKqX,KAAK5Q,SAASnB,GAAO,CAC5B,OAAOvE,S,CAGT,OACEyC,EAAAxD,KAAKoX,QAAQ1H,MAAM6H,IACjB,GAAI3H,MAAM+H,QAAQJ,EAAEjS,MAAO,CACzB,OAAOiS,EAAEjS,KAAKmB,SAASnB,E,CAGzB,OAAOiS,EAAEjS,OAASA,CAAI,OAClB,MAAA9B,SAAA,EAAAA,EAAAxD,KAAKyX,Y,CAIf,YAAA5Q,CAAaX,EAAgC+P,EAA6B7O,G,MACxE,GAAIlB,aAAgB0R,SAAU,CAC5B,OAAOpX,EAACsH,EAAU,KAAA8H,MAAMC,KAAK3J,GAAM+L,KAAK3K,GAAMtH,KAAK6G,aAAaS,EAAG2O,EAAS7O,K,CAG9E,GAAIwI,MAAM+H,QAAQzR,GAAO,CACvB,OAAO1F,EAACsH,EAAQ,KAAE5B,EAAK+L,KAAK3K,GAAMtH,KAAK6G,aAAaS,EAAG2O,EAAS7O,K,CAGlE,MAAMZ,EAAWH,EAAYH,GAC7B,MAAM2R,EAAS7X,KAAK0X,WAAWlR,GAC/B,IAAKqR,EAAQ,CACX,OAAOrX,EAACsH,EAAQ,K,CAGlB,MAAMgQ,GAAWtU,EAAAqU,EAAO7E,YAAQ,MAAAxP,SAAA,SAAAA,EAAAqJ,KAAAgL,EAAG3R,GAEnC,MAAM+M,EAAQ6E,EAAW7B,EAAQhD,MAAM6E,GAAY/W,UACnD,MAAMoS,EAAW2E,EAAYC,GAAe9B,EAAQ9C,SAAcrI,OAAAyE,OAAAzE,OAAAyE,OAAA,GAAA0G,EAAQhD,OAAO,CAAA6E,CAACA,GAAWC,KAAOhX,UAEpG,OAAO8W,EAAOxX,OAAO6F,EAAM,CACzBsB,OAAQyO,EAAQzO,OAChBuP,KAAMd,EAAQc,KACdlQ,aAAeS,GAAMtH,KAAK6G,aAAaS,EAAG2O,EAAS,IAAI7O,EAAMlB,IAC7DyK,UAAWsF,EAAQtF,UACnBwC,WACA6D,sBAAuBf,EAAQe,sBAC/B/D,QACA7L,OACAyG,YAAaoI,EAAQpI,YACrBiD,eAAgBmF,EAAQnF,gB,CAI5B,SAAAkH,CAAUC,EAAyChC,GACjD,IAAKgC,EAAO,CACV,OAAOzX,EAACsH,EAAQ,K,CAGlB,MAAMoQ,SAAaD,IAAU,SAAW/G,EAAS+G,GAASA,EAE1D,IAAKC,EAAK,CACR,OAAO1X,EAACsH,EAAQ,K,CAGlB,OAAO9H,KAAK6G,aAAaqR,EAAIC,cAAelC,EAAS,G,ECzHzD,MAAMmC,GAAiB,4knFCyBvB,MAAMP,GAAS,IAAIV,G,MAONkB,GAAW,MALxB,WAAAvY,CAAAC,G,8HAgBEC,KAAMwH,OAAG,MAsCTxH,KAAKiT,MAAyB,GAEtBjT,KAAAsY,wBAA0B,CAACpY,EAAcqY,KAC/CvY,KAAKwY,gCAAgClX,KAAK,CAAEpB,OAAMqY,cAAa,CAmBlE,CA3BC,cAAAE,GACEzY,KAAKiT,MAAQ,E,CAUf,MAAA5S,GACE,MAAM4V,EAA8B,CAClChD,MAAOjT,KAAKiT,MACZzL,OAAQxH,KAAKwH,OACbuP,KAAM/W,KAAK+W,KACX5D,SAAWF,GAAWjT,KAAKiT,MAAQA,EACnC+D,sBAAuBhX,KAAKsY,wBAC5B3H,UAAW3Q,KAAK0Y,SAASpX,KACzBuM,YAAa7N,KAAK6N,YAClBiD,eAAgB9Q,KAAK8Q,gBAGvB,MAAM6H,EAAcd,GAAOG,UAAUhY,KAAKyH,QAASwO,GAEnD,OAAOzV,EAACsH,EAAU,CAAArH,IAAA,4CAAAkY,E,wECrGtB,MAAMC,GAA0B,wnE,MCWnBC,GAAoB,MALjC,WAAA/Y,CAAAC,G,UAgBEC,KAAM+B,OAAG,MAGT/B,KAAa8Y,cAAG,MAMR9Y,KAAKmC,MAAG,KACd,GAAInC,KAAK+B,OAAQ,CACf/B,KAAKV,O,KACA,CACLU,KAAK+Y,M,GAID/Y,KAAI+Y,KAAG,KACb/Y,KAAK+B,OAAS,KACd/B,KAAKI,KAAK4Y,iBAAiB,UAAWhZ,KAAKiZ,iBAC3CjZ,KAAKI,KAAK4Y,iBAAiB,WAAYhZ,KAAKkZ,iBAAiB,EAGvDlZ,KAAKV,MAAG,KACdU,KAAKI,KAAK+Y,oBAAoB,WAAYnZ,KAAKkZ,kBAC/ClZ,KAAKI,KAAK+Y,oBAAoB,UAAWnZ,KAAKiZ,iBAC9CjZ,KAAK+B,OAAS,KAAK,EAGb/B,KAAAkZ,iBAAoBxW,IAC1B,IAAK1C,KAAKI,KAAKgZ,SAAS1W,EAAM2W,eAAwB,CACpDrZ,KAAKV,O,GAIDU,KAAAiZ,gBAAmBvW,IACzB,GAAIA,EAAMjC,MAAQ,SAAU,CAC1BT,KAAKV,O,CAGP,OAgDH,CA7CC,kBAAAkG,G,MACE,GAAIxF,KAAKsZ,QAAS,CAChB,GAAItZ,KAAK+B,SAAW/B,KAAK8Y,cAAe,CACtC9Y,KAAKsZ,QAAQC,cACbvZ,KAAK8Y,cAAgB,I,MAChB,IAAK9Y,KAAK+B,QAAU/B,KAAK8Y,cAAe,EAC7CtV,EAAAxD,KAAKsZ,WAAS,MAAA9V,SAAA,SAAAA,EAAAgW,cACdxZ,KAAK8Y,cAAgB,K,EAIzB,IAAIW,EAEJ,GAAIzZ,KAAK+B,SAAW0X,GAAWzZ,KAAK0Z,WAAa1Z,KAAKsZ,SAAWtZ,KAAK2Z,aAAc,CAClFF,EAAUG,EAAgB,CACxBC,iBAAkB7Z,KAAK0Z,UACvBI,OAAQ9Z,KAAKsZ,QACbS,YAAa/Z,KAAK2Z,aAClBK,aAAc,O,CAIlB,IAAKha,KAAK+B,QAAU0X,EAAS,CAC3BA,G,EAIJ,MAAApZ,GACE,OACEG,EAACsH,EAAQ,CAAArH,IAAA,4CACPD,EAAQ,UAAAC,IAAA,2CAAAC,MAAM,mBAAmBwB,IAAM8C,GAAahF,KAAK0Z,UAAY1U,EAAUG,QAASnF,KAAKmC,OAC3F3B,EAAM,QAAAC,IAAA,2CAAA6E,KAAK,UACX9E,EAAA,YAAAC,IAAA,2CAAUO,KAAMhB,KAAKgB,OACrBR,EAACyZ,EACC,CAAAxZ,IAAA,2CAAAyZ,QACA,KAAAC,cAAe,OACfC,cAAgBpV,GAAahF,KAAKsZ,QAAUtU,EAC5CqV,mBAAqBrV,GAAahF,KAAK2Z,aAAe3U,GAEtDxE,EAAA,QAAAC,IAAA,+C,yCCtGL,MAAMrB,GAAyB,CACpCC,GAAI,CACF,YAAa,CACXC,MAAO,UAGXK,GAAI,CACF,YAAa,CACXL,MAAO,aCVb,MAAMgb,GAAW,mtE,MCoBJC,GAAK,MALlB,WAAAza,CAAAC,G,uDAmBEC,KAAUwa,WAAG,MAQLxa,KAAAE,KAAOC,GAAK,IAAMH,KAAKI,MAAMhB,GAoBtC,CAlBC,MAAAiB,GACE,OACEG,EAAK,OAAAC,IAAA,2CAAAC,MAAOC,EAAK,CAAC,YAAa,CAAE6Z,WAAYxa,KAAKwa,eAChDha,EAAK,OAAAC,IAAA,2CAAAC,MAAM,iBACTF,EAAM,QAAAC,IAAA,2CAAA6E,KAAK,YACX9E,EACE,mBAAAC,IAAA,2CAAAO,KAAK,QACLE,QAAQ,WACRC,WAAaC,GAAMpB,KAAKya,cAAcnZ,KAAK,CAAEC,cAAeH,EAAEsZ,OAAOnZ,gBACrEN,MAAOjB,KAAK2a,kBAAoB3a,KAAKE,KAAK,YAG9CM,EAAK,OAAAC,IAAA,2CAAAC,MAAM,cACTF,EAAa,QAAAC,IAAA,8C,yCCzDvB,MAAMma,GAAW,q6hD,MCUJC,GAAK,MALlB,WAAA/a,CAAAC,G,UAcUC,KAAY8a,aAAGC,IASvB/a,KAAOgb,QAAG,MAMVhb,KAAWib,YAAG,KAsIf,CAjIS,uBAAAC,G,OACN1X,EAAAxD,KAAKiD,kBAAgB,MAAAO,SAAA,SAAAA,EAAAK,QAAQ7D,KAAKI,K,CAGpC,iBAAA+a,GACEnb,KAAKiD,eAAiB,IAAIC,eAAeC,GAAUiY,GAAYpb,KAAKqb,mBAAmBD,IAAU,K,CAGnG,gBAAApY,GACEhD,KAAKkb,yB,CAGP,kBAAA1V,GACExF,KAAKsb,c,CAGP,oBAAApX,G,OACEV,EAAAxD,KAAKiD,kBAAgB,MAAAO,SAAA,SAAAA,EAAAG,Y,CAGvB,MAAAtD,G,UACE,MAAMmW,GAAU9S,GAAAF,EAAAxD,KAAKI,KAAK2C,cAAc,+BAA2B,MAAAS,SAAA,SAAAA,EAAE8K,eAAa,MAAA5K,SAAA,SAAAA,EAAA6K,OAElF,OACE/N,EAAC0E,EAAoB,CAAAzE,IAAA,4DAAA4D,EAAArE,KAAKub,gBAAc,MAAAlX,SAAA,SAAAA,EAAAiI,YACrCtM,KAAKib,aAAejb,KAAKwb,mBACxBhb,EAAK,OAAAC,IAAA,2CAAAC,MAAM,wBAAwBuO,MAAO,CAAEvK,OAAQ,GAAG1E,KAAKwb,yBAG7Dxb,KAAKib,aAAeza,EAAA,OAAAC,IAAA,2CAAKC,MAAM,sBAEhCF,EAAK,OAAAC,IAAA,2CAAAC,MAAO,CAAE,YAAaV,KAAKib,cAC9Bza,EACE,MAAAsK,OAAAyE,OAAA,CAAA9O,IAAA,2CAAAC,MAAO,CAAE,aAAcV,KAAKib,YAAa,mBAAoB,MAC7D/Y,IAAM8C,GAAahF,KAAKyb,iBAAmBzW,GACtChF,KAAKib,YAAc,CAAE,CAAC,mBAAoBjb,KAAK8a,aAAcja,KAAM,UAAa,KAEnFb,KAAKub,eAAiBvb,KAAKgb,UAC3Bxa,EAAK,OAAAC,IAAA,2CAAAC,MAAM,sBAAsBuO,MAAOjP,KAAKib,YAAc,CAAES,QAAS,QAAW3a,WAC9Ef,KAAKub,cACJ/a,EAAK,OAAAC,IAAA,2CAAAC,MAAM,0BACTF,EAAA,QAAAC,IAAA,uFAIFT,KAAKgb,SACLxa,EAAA,UAAAC,IAAA,2CACEgD,KAAK,SACL/C,MAAM,iCACNwB,IAAM8C,GAAahF,KAAK2b,cAAgB3W,EACxCG,QAAS,IAAMnF,KAAK4b,aAEpBpb,EAAM,QAAAC,IAAA,2CAAAC,MAAM,WAAiB,SAAA8V,IAAA,MAAAA,SAAA,EAAAA,EAAW,GAAW,KACnDhW,EAAsB,QAAAC,IAAA,yDACtBD,EAAA,YAAAC,IAAA,2CAAUO,KAAK,oBAMtBhB,KAAKib,aACJza,EAAK,OAAAC,IAAA,2CAAAC,MAAM,cACTF,EAAA,MAAAC,IAAA,2CAAIgT,GAAIzT,KAAK8a,aAAcpa,MAAO,CAAE,WAAY8V,IAC7CA,GAAW,6BAEdhW,EAAA,UAAAC,IAAA,2CAAQgD,KAAK,SAAS/C,MAAM,YAAYyE,QAAS,IAAMnF,KAAK6b,cAC1Drb,EAAU,YAAAC,IAAA,2CAAAO,KAAK,UACfR,EAAA,QAAAC,IAAA,2CAAMC,MAAM,WAAwB,aAK1CF,EAAA,OAAAC,IAAA,2CAAKC,MAAO,CAAE,WAAYV,KAAKib,YAAa,iBAAkB,OAC5Dza,EAAA,QAAAC,IAAA,gD,CAQJ,SAAAmb,GACN5b,KAAKwb,kBAAoBxb,KAAKI,KAAK0b,aACnC9b,KAAKib,YAAc,I,CAGb,UAAAY,GACN7b,KAAKwb,kBAAoBza,UACzBf,KAAKib,YAAc,K,CAGb,YAAAK,G,QACN,GAAItb,KAAKib,aAAejb,KAAKyb,mBAAqBzb,KAAKmE,KAAM,CAC3DnE,KAAKmE,KAAOsB,EAAgB,CAACzF,KAAKI,KAAMJ,KAAKyb,kBAAmB,CAC9D/V,kBAAmB,KACnBC,wBAA0BvE,IACxB,GAAIA,aAAawE,YAAcxE,EAAEyE,eAAe,KAAO7F,KAAKyb,iBAAkB,CAC5Ezb,KAAK6b,aAEL,OAAO,K,CAGT,OAAO,IAAI,EAEb/V,gBAAgBtC,EAAAxD,KAAK2b,iBAAa,MAAAnY,SAAA,EAAAA,EAAI,MACtCuC,aAAc,IAAM/F,KAAK6b,aACzB7V,gBAAiB,CACfC,cAAe,QAEhBG,U,MACE,IAAKpG,KAAKib,aAAejb,KAAKmE,KAAM,EACzCT,EAAA1D,KAAKmE,QAAM,MAAAT,SAAA,SAAAA,EAAAU,oBAEJpE,KAAKmE,I,EAIR,kBAAAkX,EAAoBU,IAC1B,IAAKA,EAAU,CACb,MAAM,IAAIxb,MAAM,oB,CAGlB,MAAMyb,EAAeD,EAASpZ,OAAOI,cAAc,SAEnD,GAAIgZ,GAAYC,aAAwBC,iBAAkB,CACxDjc,KAAKub,aACHnM,KAAK8M,MAAMF,EAAaG,wBAAwB3X,OAAS4K,KAAK8M,MAAMH,EAASK,YAAY5X,M","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- const e=new DOMParser;function n(n){if(!n){return undefined}const r=e.parseFromString(n,"application/xml");if(r.querySelector("parsererror")){console.error({message:"Unable to parse XML",input:n,document:r},null,2);return undefined}return r}function r(e){const n=e instanceof Element?e.getAttribute("wijzigactie"):undefined;return n==="voegtoe"||n==="verwijder"?n:undefined}export{r as a,n as p};
2
- //# sourceMappingURL=p-DD1v6_X_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-DD1v6_X_.js","sources":["src/utils/parse-xml.ts","src/components/ozon-content/functions/parse-wijzigactie-from-node.function.ts"],"sourcesContent":["const parser = new DOMParser();\r\n\r\nexport function parseXml(input: string): XMLDocument | undefined {\r\n if (!input) {\r\n return undefined;\r\n }\r\n\r\n const doc = parser.parseFromString(input, \"application/xml\");\r\n\r\n if (doc.querySelector(\"parsererror\")) {\r\n console.error(\r\n {\r\n message: \"Unable to parse XML\",\r\n input,\r\n document: doc,\r\n },\r\n null,\r\n 2,\r\n );\r\n\r\n return undefined;\r\n }\r\n\r\n return doc;\r\n}\r\n","import { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport function parseWijzigactieFromNode(node: Node): OzonContentWijzigActie | undefined {\r\n const wijzigactie = node instanceof Element ? node.getAttribute(\"wijzigactie\") : undefined;\r\n\r\n return wijzigactie === \"voegtoe\" || wijzigactie === \"verwijder\" ? wijzigactie : undefined;\r\n}\r\n"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE;AAExB,SAAU,QAAQ,CAAC,KAAa,EAAA;IACpC,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,SAAS;;IAGlB,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC;AAE5D,IAAA,IAAI,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;QACpC,OAAO,CAAC,KAAK,CACX;AACE,YAAA,OAAO,EAAE,qBAAqB;YAC9B,KAAK;AACL,YAAA,QAAQ,EAAE,GAAG;AACd,SAAA,EACD,IAAI,EACJ,CAAC,CACF;AAED,QAAA,OAAO,SAAS;;AAGlB,IAAA,OAAO,GAAG;AACZ;;ACtBM,SAAU,wBAAwB,CAAC,IAAU,EAAA;AACjD,IAAA,MAAM,WAAW,GAAG,IAAI,YAAY,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,SAAS;AAE1F,IAAA,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,WAAW,GAAG,WAAW,GAAG,SAAS;AAC3F;;;;"}
@@ -1,2 +0,0 @@
1
- import{a as e,f as t,r as s,h as n,H as r,g as o}from"./p-DxWmN7gh.js";const c=(e,t,s)=>{const n=e.get(t);if(!n){e.set(t,[s])}else if(!n.includes(s)){n.push(s)}};const i=(e,t)=>{let s;return(...n)=>{if(s){clearTimeout(s)}s=setTimeout((()=>{s=0;e(...n)}),t)}};const a=e=>!("isConnected"in e)||e.isConnected;const f=i((e=>{for(let t of e.keys()){e.set(t,e.get(t).filter(a))}}),2e3);const u=()=>{if(typeof e!=="function"){return{}}const s=new Map;return{dispose:()=>s.clear(),get:t=>{const n=e();if(n){c(s,t,n)}},set:e=>{const n=s.get(e);if(n){s.set(e,n.filter(t))}f(s)},reset:()=>{s.forEach((e=>e.forEach(t)));f(s)}}};const d=e=>typeof e==="function"?e():e;const l=(e,t=(e,t)=>e!==t)=>{const s=d(e);let n=new Map(Object.entries(s??{}));const r={dispose:[],get:[],set:[],reset:[]};const o=new Map;const c=()=>{n=new Map(Object.entries(d(e)??{}));r.reset.forEach((e=>e()))};const i=()=>{r.dispose.forEach((e=>e()));c()};const a=e=>{r.get.forEach((t=>t(e)));return n.get(e)};const f=(e,s)=>{const o=n.get(e);if(t(s,o,e)){n.set(e,s);r.set.forEach((t=>t(e,s,o)))}};const u=typeof Proxy==="undefined"?{}:new Proxy(s,{get(e,t){return a(t)},ownKeys(e){return Array.from(n.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(e,t){return n.has(t)},set(e,t,s){f(t,s);return true}});const l=(e,t)=>{r[e].push(t);return()=>{p(r[e],t)}};const g=(t,s)=>{const n=(e,n)=>{if(e===t){s(n)}};const r=()=>s(d(e)[t]);const c=l("set",n);const i=l("reset",r);o.set(s,{setHandler:n,resetHandler:r,propName:t});return()=>{c();i();o.delete(s)}};const h=(...e)=>{const t=e.reduce(((e,t)=>{if(t.set){e.push(l("set",t.set))}if(t.get){e.push(l("get",t.get))}if(t.reset){e.push(l("reset",t.reset))}if(t.dispose){e.push(l("dispose",t.dispose))}return e}),[]);return()=>t.forEach((e=>e()))};const b=e=>{const t=n.get(e);r.set.forEach((s=>s(e,t,t)))};const y=(e,t)=>{const s=o.get(t);if(s&&s.propName===e){p(r.set,s.setHandler);p(r.reset,s.resetHandler);o.delete(t)}};return{state:u,get:a,set:f,on:l,onChange:g,use:h,dispose:i,reset:c,forceUpdate:b,removeListener:y}};const p=(e,t)=>{const s=e.indexOf(t);if(s>=0){e[s]=e[e.length-1];e.length--}};const g=(e,t)=>{const s=l(e,t);s.use(u());return s};const h=":host{display:block}*,*::after,*::before{box-sizing:border-box}";const b=class{constructor(e){s(this,e);const{state:t}=g({variant:"default",reverseAlign:false});this.accordionState=t}get variant(){return this.accordionState.variant}set variant(e){this.accordionState.variant=e||"default"}get reverseAlign(){return this.accordionState.reverseAlign}set reverseAlign(e){this.accordionState.reverseAlign=e||false}async _getState(){return this.accordionState}render(){return n(r,{key:"cc5fbde9c08efd6458b8de0d2b8ad0e51a2ea82d",class:"dso-accordion"},n("slot",{key:"32d1d78fd710c75e9f232c626f278773ec534917"}))}get host(){return o(this)}};b.style=h;export{b as dso_accordion};
2
- //# sourceMappingURL=p-c123217b.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["appendToMap","map","propName","value","items","get","set","includes","push","debounce","fn","ms","timeoutId","args","clearTimeout","setTimeout","isConnected","maybeElement","cleanupElements","key","keys","filter","stencilSubscription","getRenderingRef","elmsToUpdate","Map","dispose","clear","elm","elements","forceUpdate","reset","forEach","elms","unwrap","val","createObservableMap","defaultState","shouldUpdate","a","b","unwrappedState","states","Object","entries","handlers","changeListeners","cb","oldValue","state","Proxy","_","ownKeys","Array","from","getOwnPropertyDescriptor","enumerable","configurable","has","on","eventName","callback","removeFromArray","onChange","setHandler","newValue","resetHandler","unSet","unReset","delete","use","subscriptions","unsubs","reduce","subscription","unsub","removeListener","listener","listenerInfo","array","item","index","indexOf","length","createStore","accordionCss","Accordion","constructor","hostRef","variant","reverseAlign","this","accordionState","_getState","render","h","Host","class"],"sources":["../../node_modules/@stencil/store/dist/index.js","src/components/accordion/accordion.scss?tag=dso-accordion&encapsulation=shadow","src/components/accordion/accordion.tsx"],"sourcesContent":["import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2_000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState ?? {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n // Track onChange listeners to enable removeListener functionality\n const changeListeners = new Map();\n const reset = () => {\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries(unwrap(defaultState) ?? {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const setHandler = (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n };\n const resetHandler = () => cb(unwrap(defaultState)[propName]);\n // Register the handlers\n const unSet = on('set', setHandler);\n const unReset = on('reset', resetHandler);\n // Track the relationship between the user callback and internal handlers\n changeListeners.set(cb, { setHandler, resetHandler, propName });\n return () => {\n unSet();\n unReset();\n changeListeners.delete(cb);\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n const removeListener = (propName, listener) => {\n const listenerInfo = changeListeners.get(listener);\n if (listenerInfo && listenerInfo.propName === propName) {\n // Remove the specific handlers that were created for this listener\n removeFromArray(handlers.set, listenerInfo.setHandler);\n removeFromArray(handlers.reset, listenerInfo.resetHandler);\n changeListeners.delete(listener);\n }\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n removeListener,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n","import { Component, ComponentInterface, Element, Host, Method, Prop, h } from \"@stencil/core\";\r\nimport { createStore } from \"@stencil/store\";\r\n\r\nimport { AccordionInternalState, AccordionVariant } from \"./accordion.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-accordion\",\r\n styleUrl: \"accordion.scss\",\r\n shadow: true,\r\n})\r\nexport class Accordion implements ComponentInterface {\r\n private readonly accordionState: AccordionInternalState;\r\n\r\n @Element()\r\n host!: HTMLDsoAccordionElement;\r\n\r\n constructor() {\r\n const { state } = createStore<AccordionInternalState>({\r\n variant: \"default\",\r\n reverseAlign: false,\r\n });\r\n\r\n this.accordionState = state;\r\n }\r\n\r\n /**\r\n * The variant of the Accordion.\r\n */\r\n @Prop()\r\n get variant(): AccordionVariant {\r\n return this.accordionState.variant;\r\n }\r\n set variant(value: AccordionVariant) {\r\n this.accordionState.variant = value || \"default\";\r\n }\r\n\r\n /**\r\n * Places the chevron at the opposite side.\r\n *\r\n * Note: this mode does not display `state`, `attachmentCount` or `status` props on Accordion Sections\r\n */\r\n @Prop()\r\n get reverseAlign() {\r\n return this.accordionState.reverseAlign;\r\n }\r\n set reverseAlign(value: boolean) {\r\n this.accordionState.reverseAlign = value || false;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _getState(): Promise<AccordionInternalState> {\r\n return this.accordionState;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host class=\"dso-accordion\">\r\n <slot></slot>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as o,c as n,f as t,h as s,F as c,H as d,g as e}from"./p-DxWmN7gh.js";const a={success:"succes:",info:"info:",warning:"waarschuwing:",danger:"fout:",error:"fout:"};const i='*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;inline-size:1px;block-size: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-visible{text-decoration:none}:host .dso-section-handle a:active{text-decoration:underline}:host .dso-section-handle .dso-status{color:#000;font-size:14px;font-weight:400}:host .dso-section-handle>button,:host .dso-section-handle>a{align-items:flex-start;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-block:12px;padding-inline:16px;text-align:start;inline-size:100%;overflow-wrap:anywhere}: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) 0ms;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-inline-end:8px}:host .dso-section-handle>button>dso-icon:last-child,:host .dso-section-handle>a>dso-icon:last-child{margin-inline-start:auto}:host .dso-section-handle>button>.dso-section-handle-addons:last-child,:host .dso-section-handle>a>.dso-section-handle-addons:last-child{margin-inline-start: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-inline-start:8px}:host .dso-section-handle>button>dso-label,:host .dso-section-handle>a>dso-label{margin-inline-start:auto;padding-inline-start:8px;word-break:normal}:host .dso-section-handle>button>dso-label+dso-icon:last-child,:host .dso-section-handle>button>dso-label+.dso-section-handle-addons:last-child,:host .dso-section-handle>a>dso-label+dso-icon:last-child,:host .dso-section-handle>a>dso-label+.dso-section-handle-addons:last-child{margin-inline-start:8px}: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-block-start:0}.dso-section-body .dso-section-body-content{padding-block:20px 16px;padding-inline:16px}:host(.dso-accordion-default){border:1px solid #8b4a6a;border-radius:4px}:host(.dso-accordion-default) .dso-section-handle{background-color:#fff;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-handle .dso-status{text-decoration:underline}:host(.dso-accordion-default) .dso-section-body{border-radius:0 0 4px 4px}:host(.dso-accordion-default[open]:not([open=false]))>.dso-section-handle{background-color:#8b4a6a;border-radius:0}: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-block-end:1px solid transparent;border-block-start:1px solid #ccc}:host(.dso-accordion-compact) .dso-section-handle a,:host(.dso-accordion-compact) .dso-section-handle button{color:#39870c;padding-block-end:11px;padding-inline-start:0;padding-block-start: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-handle .dso-status{color:#000}:host(.dso-accordion-compact) .dso-section-body .dso-section-body-content{padding-inline-start:32px;padding-block-start:0;padding-inline-end: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-inline:16px 0}:host(.dso-accordion-compact.dso-accordion-reverse-align) .dso-section-body .dso-section-body-content{padding-inline-start:16px;padding-inline-end: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-block-start:0}:host(.dso-accordion-compact.dso-nested-accordion[open]:not([open=false]))>.dso-section-body{padding-block-end:0}:host(.dso-accordion-compact.dso-nested-accordion[open]:not([open=false]))>.dso-section-body dso-accordion-section:last-child{border-block-end:0}:host(.dso-accordion-compact-black) .dso-section-handle{border-block-end:1px solid transparent;border-block-start:1px solid #ccc}:host(.dso-accordion-compact-black) .dso-section-handle a,:host(.dso-accordion-compact-black) .dso-section-handle button:not(.dso-slider){color:#000;padding-block-end:11px;padding-inline-start:0;padding-block-start: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:not(.dso-slider):hover,:host(.dso-accordion-compact-black) .dso-section-handle button:not(.dso-slider):active,:host(.dso-accordion-compact-black) .dso-section-handle button:not(.dso-slider).active{color:#000}:host(.dso-accordion-compact-black) .dso-section-body .dso-section-body-content{padding-inline-start:32px;padding-block-start:0;padding-inline-end:0}:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle{border-block-end:1px solid transparent;border-block-start:1px solid #ccc}:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle a,:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle button:not(.dso-slider){color:#000;padding-block-end:11px;padding-inline-start:0;padding-block-start:11px}:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle a:hover,:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle a:active,:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle a.active,:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle button:not(.dso-slider):hover,:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle button:not(.dso-slider):active,:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle button:not(.dso-slider).active{color:#000}:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-body .dso-section-body-content{padding-inline-start:32px;padding-block-start:0;padding-inline-end:0}:host(.dso-accordion-compact-black.dso-accordion-section-activate) .dso-section-handle{display:flex}:host(.dso-accordion-compact-black.dso-accordion-section-activate) dso-slide-toggle{margin-block-start:11px;margin-inline:8px}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-voegtoe){background-color:#e4f1d4}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-voegtoe) .dso-section-body{background-color:#e4f1d4}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder){--_dso-alert-success-border-color:#39870c;--_dso-alert-error-border-color:#ce3f51;--_dso-alert-info-border-color:#6ca4d9;--_dso-alert-warning-border-color:#dcd400;--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;--_dso-icon-button-tertiary-color:#191919;--_dso-icon-button-tertiary-hover-color:#4c4c4c;--_dso-icon-button-tertiary-active-color:#173521;--_dso-icon-button-tertiary-disabled-color:#999;background-color:#f5d8dc;color:#191919}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder) a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.download,.download:hover,.download:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#download-zwart"))}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder) a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.extern,.extern:hover,.extern:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#external-link-zwart"))}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder) a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#call-zwart"))}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder) a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#email-zwart"))}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder){--_dso-ozon-content-toggletip-color:colors.$zwart;text-decoration:line-through;--_dso-ozon-content-toggletip-text-decoration:underline line-through}@media screen and (min--moz-device-pixel-ratio: 0){:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder){font-family:sans-serif}}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder){background-color:#f5d8dc}:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder) .dso-section-body{background-color:#f5d8dc}: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-inline:16px 0}:host(.dso-accordion-compact-black.dso-accordion-reverse-align) .dso-section-body .dso-section-body-content{padding-inline-start:16px;padding-inline-end: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-block-start:0}:host(.dso-accordion-compact-black.dso-nested-accordion[open]:not([open=false]))>.dso-section-body{padding-block-end:0}:host(.dso-accordion-compact-black.dso-nested-accordion[open]:not([open=false]))>.dso-section-body dso-accordion-section:last-child{border-block-end: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-block:5px;padding-inline: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{vertical-align:top}:host(.dso-accordion-neutral) .dso-section-body[open],:host(.dso-accordion-neutral) .dso-section-body:not(.dso-hide){background-color:transparent;border:1px solid #275937;box-shadow:1px 3px 4px rgba(0, 0, 0, 0.5);margin-block:-2px 0}:host(.dso-accordion-neutral) .dso-section-body[open].dso-animate-ready,:host(.dso-accordion-neutral) .dso-section-body:not(.dso-hide).dso-animate-ready{transition-property:grid-template-rows, margin-block, border, opacity}:host(.dso-accordion-neutral) .dso-section-body[open] .dso-section-body-content,:host(.dso-accordion-neutral) .dso-section-body:not(.dso-hide) .dso-section-body-content{padding-block:16px 24px;padding-inline:16px}@media screen and (min-width: 480px){:host(.dso-accordion-neutral) .dso-section-body[open] .dso-section-body-content,:host(.dso-accordion-neutral) .dso-section-body:not(.dso-hide) .dso-section-body-content{padding-block:16px 24px;padding-inline:32px}}:host(.dso-accordion-neutral[open]:not([open=false]))>.dso-section-handle{background-color:transparant;border-radius:0;border-start-start-radius:4px;border-start-end-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 r=window["_dsoLog"]===true?console.log.bind(console.log):function(){};const l=({handleUrl:o,onClick:n,open:t,showSlideToggle:d,active:e,onActiveChange:a,handleElementRef:i},r)=>{if(o){return s(c,null,s("a",{href:o,onClick:n,"aria-expanded":t?"true":"false",ref:i},r),d&&s("dso-slide-toggle",{accessibleLabel:"Toon op kaart",checked:e,onDsoActiveChange:a}))}return s(c,null,s("button",{type:"button",onClick:n,"aria-expanded":t?"true":"false",ref:i},r),d&&s("dso-slide-toggle",{accessibleLabel:"Toon op kaart",checked:e,onDsoActiveChange:a}))};const h=({heading:o,ref:n},t)=>{switch(o){default:case"h2":return s("h2",{ref:n,class:"dso-section-handle"},t);case"h3":return s("h3",{ref:n,class:"dso-section-handle"},t);case"h4":return s("h4",{ref:n,class:"dso-section-handle"},t);case"h5":return s("h5",{ref:n,class:"dso-section-handle"},t)}};const p=({state:o,icon:n,attachmentCount:t})=>{if(o){return s(b,{state:o})}if(t){return s("dso-attachments-counter",{count:t})}if(n){return s("dso-icon",{icon:n})}};const b=({state:o})=>{if(o==="error"){return s("dso-icon",{icon:"status-error"})}if(o==="danger"){return s("dso-icon",{icon:"status-danger"})}if(o==="success"){return s("dso-icon",{icon:"status-success"})}if(o==="info"){return s("dso-icon",{icon:"status-info"})}if(o==="warning"){return s("dso-icon",{icon:"status-warning"})}};const u=class{constructor(t){o(this,t);this.dsoActiveChange=n(this,"dsoActiveChange",7);this.dsoToggleClick=n(this,"dsoToggleClick",3);this.dsoAnimationStart=n(this,"dsoAnimationStart",3);this.dsoAnimationEnd=n(this,"dsoAnimationEnd",3);this.heading="h2";this.open=false;this.hasNestedAccordion=false;this.activatable=false;this.active=false;this.hover=false;this.handleClick=o=>{this.dsoToggleClick.emit({originalEvent:o,open:!this.open})};this.handleActiveChange=o=>{this.dsoActiveChange.emit({current:Boolean(this.active),next:!this.active,originalEvent:o})};this.handleExpandableAnimationStart=o=>{this.dsoAnimationStart.emit({animation:this.open?"opening":"closing",scrollIntoView:(n="auto")=>this.scrollIntoView(o.detail.bodyHeight,n)})};this.handleExpandableAnimationEnd=o=>{this.dsoAnimationEnd.emit({open:this.open,scrollIntoView:(n="auto")=>this.scrollIntoView(o.detail.bodyHeight,n)})}}async focusHandle(){var o;(o=this.handleElementRef)===null||o===void 0?void 0:o.focus()}get containsNestedAccordion(){return this.host.querySelector("dso-accordion")!==null}componentWillLoad(){var o;(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,n="auto"){var t,s;r(`DSO Toolkit [Accordion Section] scrollIntoView(bodyHeight: ${JSON.stringify(o)}, behavior: ${JSON.stringify(n)})`);const c=(t=this.sectionBody)===null||t===void 0?void 0:t.getBoundingClientRect();const d=(s=this.sectionHeading)===null||s===void 0?void 0:s.getBoundingClientRect();r(`DSO Toolkit [Accordion Section] const bodyClientRect = ${JSON.stringify(c)};`);r(`DSO Toolkit [Accordion Section] const headingClientRect = ${JSON.stringify(d)};`);r(`DSO Toolkit [Accordion Section] this.accordionState = ${JSON.stringify(this.accordionState)};`);r(`DSO Toolkit [Accordion Section] this.open = ${JSON.stringify(this.open)};`);if(!c||!d||!this.accordionState){r(`DSO Toolkit [Accordion Section] returning`);return}const e=d.top+d.height+(this.open?o!==null&&o!==void 0?o:0:0);r(`DSO Toolkit [Accordion Section] const sectionBottomY = ${JSON.stringify(e)};`);r(`DSO Toolkit [Accordion Section] window.innerHeight = ${JSON.stringify(window.innerHeight)};`);const a=this.host.getBoundingClientRect();const i=window.scrollY||document.documentElement.scrollTop||document.body.scrollTop;const l=document.documentElement.clientTop||document.body.clientTop||0;const h=a.top+i-l;r("DSO Toolkit [Accordion Section] scroll",{box:a,scrollTop:i,clientTop:l,top:h});if(e>window.innerHeight){r(`DSO Toolkit [Accordion Section] sectionBottomY > window.innerHeight === ${JSON.stringify(e>window.innerHeight)};`);const o=e-d.top;const t=o>window.innerHeight;r(`DSO Toolkit [Accordion Section] const expandedAccordionHeight = ${JSON.stringify(o)};`);r(`DSO Toolkit [Accordion Section] const shouldScrollToTopOfSection = ${JSON.stringify(t)};`);window.scrollTo({top:t?h:h-(window.innerHeight-o),behavior:n})}else if(d.top<0){r(`DSO Toolkit [Accordion Section] headingClientRect.top < 0 === ${JSON.stringify(d.top<0)};`);window.scrollTo({top:h,behavior:n})}}get accordion(){return this.host.closest("dso-accordion")}render(){var o;const{variant:n,reverseAlign:t}=(o=this.accordionState)!==null&&o!==void 0?o:{};const e=!!this.statusDescription||!!this.status||!!this.icon||!!this.attachmentCount;const i=this.activatable&&n==="compact-black"&&!t;return s(d,{key:"4bfe610a139e59177d9ee71d505a307720567c06",class:{"dso-accordion-section":true,["dso-accordion-"+n]:!!n,"dso-nested-accordion":this.hasNestedAccordion||this.containsNestedAccordion,"dso-accordion-reverse-align":t!==null&&t!==void 0?t:false,["dso-accordion-wijzigactie-"+this.wijzigactie]:!!this.wijzigactie,"dso-accordion-section-activate":i},hidden:!n,onMouseenter:()=>this.hover=true,onMouseleave:()=>this.hover=false},s(h,{key:"57e382d9c83d749be71f1d0e46c1328911bdcb8e",heading:this.heading,ref:o=>this.sectionHeading=o},s(l,{key:"c972389e556636af610002ae04eef1a3b46b1f8b",handleUrl:this.handleUrl,onClick:this.handleClick,open:this.open,showSlideToggle:i,active:this.active,onActiveChange:this.handleActiveChange,handleElementRef:o=>this.handleElementRef=o},t?s(c,null,this.icon&&s("div",{class:"dso-section-handle-addons"},s(p,{icon:this.icon})),s("dso-renvooi",{value:this.handleTitle}),this.label&&s("dso-label",{status:this.labelStatus,compact:true},this.label),s("div",{class:"dso-section-handle-addons"},this.statusDescription&&s("span",{class:"dso-status"},this.statusDescription),s("dso-icon",{class:"dso-section-handle-chevron",icon:"chevron-down"}))):s(c,null,s("dso-icon",{class:"dso-section-handle-chevron",icon:"chevron-right"}),this.status&&s("span",{class:"sr-only"},a[this.status]),s("span",null,s("dso-renvooi",{value:this.handleTitle}),this.isNeutral&&s("dso-icon",{class:"info-icon",icon:this.open||this.hover?"info-active":"info"})),this.label&&s("dso-label",{status:this.labelStatus,compact:true},this.label),e&&s("div",{class:"dso-section-handle-addons"},this.statusDescription&&s("span",{class:"dso-status"},this.statusDescription),s(p,{state:this.status,icon:this.icon,attachmentCount:this.attachmentCount}))))),s("dso-expandable",{key:"8727658b9f7f7769ac952cf910db0f6bff502e44",class:"dso-section-body",open:this.open,enableAnimation:true,minimumHeight:this.isNeutral?0:4,onDsoExpandableAnimationStart:this.handleExpandableAnimationStart,onDsoExpandableAnimationEnd:this.handleExpandableAnimationEnd},s("div",{key:"63391f36b144d4bf95f8b84c838a38ce41380e9a",class:"dso-section-body-content",ref:o=>this.sectionBody=o},s("slot",{key:"e554f63c72af17784e057564e1e046b4915f0184"}))))}get host(){return e(this)}};u.style=i;export{u as dso_accordion_section};
2
- //# sourceMappingURL=p-d14bcff7.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stateMap","success","info","warning","danger","error","accordionSectionCss","log","window","console","bind","HandleElement","handleUrl","onClick","open","showSlideToggle","active","onActiveChange","handleElementRef","children","h","Fragment","href","ref","accessibleLabel","checked","onDsoActiveChange","type","Handle","heading","class","HandleIcon","state","icon","attachmentCount","HandleStateIcon","count","AccordionSection","constructor","hostRef","this","hasNestedAccordion","activatable","hover","handleClick","event","dsoToggleClick","emit","originalEvent","handleActiveChange","dsoActiveChange","current","Boolean","next","handleExpandableAnimationStart","e","dsoAnimationStart","animation","scrollIntoView","behavior","detail","bodyHeight","handleExpandableAnimationEnd","dsoAnimationEnd","focusHandle","_a","focus","containsNestedAccordion","host","querySelector","componentWillLoad","accordion","_getState","then","accordionState","forceUpdate","isNeutral","variant","JSON","stringify","bodyClientRect","sectionBody","getBoundingClientRect","headingClientRect","_b","sectionHeading","sectionBottomY","top","height","innerHeight","box","scrollTop","scrollY","document","documentElement","body","clientTop","expandedAccordionHeight","shouldScrollToTopOfSection","scrollTo","closest","render","reverseAlign","hasAddons","statusDescription","status","Host","key","wijzigactie","hidden","onMouseenter","onMouseleave","element","value","handleTitle","label","labelStatus","compact","enableAnimation","minimumHeight","onDsoExpandableAnimationStart","onDsoExpandableAnimationEnd"],"sources":["src/components/accordion/components/accordion-section.interfaces.ts","src/components/accordion/components/accordion-section.scss?tag=dso-accordion-section&encapsulation=shadow","src/components/accordion/components/accordion-section.tsx"],"sourcesContent":["export type AccordionSectionState = \"success\" | \"info\" | \"warning\" | \"danger\" | \"error\";\r\n\r\nexport type AccordionHeading = \"h2\" | \"h3\" | \"h4\" | \"h5\";\r\n\r\nexport type AccordionSectionWijzigactie = \"voegtoe\" | \"verwijder\";\r\n\r\nexport const stateMap: Record<AccordionSectionState, string> = {\r\n success: \"succes:\",\r\n info: \"info:\",\r\n warning: \"waarschuwing:\",\r\n danger: \"fout:\",\r\n error: \"fout:\",\r\n};\r\n\r\nexport interface AccordionSectionToggleClickEvent {\r\n /**\r\n * The original MouseEvent that triggered the click.\r\n *\r\n * In case the Section Handle is an <a> this event can be used to preventDefault() so the framework router is reponsible for navigating the user.\r\n */\r\n originalEvent?: MouseEvent;\r\n\r\n /**\r\n * The requested state. If the Accordion Section is closed, `open = true`.\r\n */\r\n open: boolean;\r\n}\r\n\r\nexport interface AccordionSectionAnimationStartEvent {\r\n /**\r\n * Helper function to scroll the Accordion Section into view.\r\n */\r\n scrollIntoView(behavior?: ScrollBehavior): void;\r\n\r\n /**\r\n * Whether or not the Accordion opening or closing.\r\n */\r\n animation: \"opening\" | \"closing\";\r\n}\r\n\r\nexport interface AccordionSectionAnimationEndEvent {\r\n /**\r\n * Helper function to scroll the Accordion Section into view.\r\n */\r\n scrollIntoView(behavior?: ScrollBehavior): void;\r\n\r\n /**\r\n * The state of the Accordion Section after animation.\r\n */\r\n open: boolean;\r\n}\r\n\r\nexport interface AccordionSectionActiveChangeEvent {\r\n /**\r\n * De current status van de Accordion Section.\r\n */\r\n current: boolean;\r\n\r\n /**\r\n * De desired status van de Accordion Section.\r\n */\r\n next: boolean;\r\n\r\n originalEvent: Event;\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/accordion\";\r\n@use \"~dso-toolkit/src/components/link\";\r\n\r\n@use \"accordion-section-theme-compact\";\r\n@use \"accordion-section-theme-compact-black\";\r\n@use \"accordion-section-theme-conclusion\";\r\n@use \"accordion-section-theme-default\";\r\n@use \"accordion-section-theme-neutral\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n:host {\r\n display: block;\r\n\r\n .dso-section-handle {\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n position: relative;\r\n\r\n > a:active {\r\n text-decoration: none;\r\n }\r\n\r\n a {\r\n @include link.clean();\r\n }\r\n\r\n .dso-status {\r\n color: colors.$zwart;\r\n font-size: typography.$font-size-small;\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n .dso-section-handle > button,\r\n .dso-section-handle > a {\r\n align-items: flex-start;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n padding-block: accordion.$block-padding;\r\n padding-inline: accordion.$inline-padding;\r\n text-align: start;\r\n inline-size: 100%;\r\n overflow-wrap: anywhere;\r\n\r\n dso-icon {\r\n flex-shrink: 0;\r\n\r\n &.dso-section-handle-chevron {\r\n @include utilities.transition(transform);\r\n\r\n transform: rotate(0);\r\n }\r\n }\r\n\r\n > .dso-section-handle-addons:first-child,\r\n > dso-icon:first-child {\r\n margin-inline-end: units.$u1;\r\n }\r\n\r\n > dso-icon:last-child {\r\n margin-inline-start: auto;\r\n }\r\n\r\n > .dso-section-handle-addons:last-child {\r\n margin-inline-start: auto;\r\n\r\n dso-attachments-counter,\r\n dso-icon {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n\r\n > dso-label {\r\n margin-inline-start: auto;\r\n padding-inline-start: units.$u1;\r\n word-break: normal;\r\n\r\n & + dso-icon:last-child,\r\n & + .dso-section-handle-addons:last-child {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n:host([open]:not([open=\"false\"])) {\r\n .dso-section-handle {\r\n > button,\r\n > a {\r\n .dso-section-handle-chevron {\r\n &:first-child {\r\n transform: rotate(90deg);\r\n }\r\n\r\n &:last-child {\r\n transform: rotate(-180deg);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-section-body {\r\n background-color: colors.$wit;\r\n border-block-start: 0;\r\n\r\n .dso-section-body-content {\r\n padding-block: units.$u2 + accordion.$border-radius units.$u2;\r\n padding-inline: units.$u2;\r\n }\r\n}\r\n\r\n// Default\r\n:host(.dso-accordion-default) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default();\r\n}\r\n\r\n:host(.dso-accordion-default[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open();\r\n}\r\n\r\n:host(.dso-accordion-default.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open-nested();\r\n}\r\n\r\n// Compact\r\n:host(.dso-accordion-compact) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-accordion-reverse-align) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-reverse();\r\n}\r\n\r\n:host(.dso-accordion-compact[open]:not([open=\"false\"]):not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open-nested();\r\n}\r\n\r\n// Compact black\r\n:host(.dso-accordion-compact-black) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-accordion-section-activate) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black();\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-activate();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-voegtoe) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-voegtoe();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-accordion-wijzigactie-verwijder) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-verwijder();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-accordion-reverse-align) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-reverse();\r\n}\r\n\r\n:host(.dso-accordion-compact-black[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-open();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-open-nested();\r\n}\r\n\r\n// Conclusion\r\n:host(.dso-accordion-conclusion) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion();\r\n}\r\n\r\n:host(.dso-accordion-conclusion[open]:not([open=\"false\"]):not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open();\r\n}\r\n\r\n:host(.dso-accordion-conclusion.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open-nested();\r\n}\r\n\r\n// Neutral\r\n:host(.dso-accordion-neutral) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral();\r\n}\r\n\r\n:host(.dso-accordion-neutral[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open();\r\n}\r\n\r\n:host(.dso-accordion-neutral.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open-nested();\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n FunctionalComponent,\r\n Host,\r\n Method,\r\n Prop,\r\n State,\r\n forceUpdate,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { DsoSlideToggleCustomEvent } from \"../../../components\";\r\nimport { ExpandableAnimationEndEvent } from \"../../expandable/expandable\";\r\nimport { LabelStatus } from \"../../label/label.interfaces\";\r\nimport { RenvooiValue } from \"../../renvooi/renvooi.interfaces\";\r\nimport { SlideToggleActiveEvent } from \"../../slide-toggle/slide-toggle.interfaces\";\r\nimport { AccordionInternalState } from \"../accordion.interfaces\";\r\n\r\nimport {\r\n AccordionHeading,\r\n AccordionSectionActiveChangeEvent,\r\n AccordionSectionAnimationEndEvent,\r\n AccordionSectionAnimationStartEvent,\r\n AccordionSectionState,\r\n AccordionSectionToggleClickEvent,\r\n AccordionSectionWijzigactie,\r\n stateMap,\r\n} from \"./accordion-section.interfaces\";\r\n\r\n// eslint-disable-next-line no-console\r\nconst log = (window as any)[\"_dsoLog\"] === true ? console.log.bind(console.log) : function () {};\r\n\r\nconst HandleElement: FunctionalComponent<{\r\n handleUrl: string | undefined;\r\n open: boolean;\r\n showSlideToggle: boolean;\r\n active: boolean;\r\n onActiveChange: (e: DsoSlideToggleCustomEvent<SlideToggleActiveEvent>) => void;\r\n handleElementRef: (element: HTMLAnchorElement | HTMLButtonElement | undefined) => void;\r\n onClick: (e: MouseEvent) => void;\r\n}> = ({ handleUrl, onClick, open, showSlideToggle, active, onActiveChange, handleElementRef }, children) => {\r\n if (handleUrl) {\r\n return (\r\n <>\r\n <a href={handleUrl} onClick={onClick} aria-expanded={open ? \"true\" : \"false\"} ref={handleElementRef}>\r\n {children}\r\n </a>\r\n {showSlideToggle && (\r\n <dso-slide-toggle accessibleLabel=\"Toon op kaart\" checked={active} onDsoActiveChange={onActiveChange} />\r\n )}\r\n </>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <button type=\"button\" onClick={onClick} aria-expanded={open ? \"true\" : \"false\"} ref={handleElementRef}>\r\n {children}\r\n </button>\r\n {showSlideToggle && (\r\n <dso-slide-toggle accessibleLabel=\"Toon op kaart\" checked={active} onDsoActiveChange={onActiveChange} />\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nconst Handle: FunctionalComponent<{\r\n heading: AccordionHeading;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n}> = ({ heading, ref }, children) => {\r\n switch (heading) {\r\n default:\r\n case \"h2\":\r\n return (\r\n <h2 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h2>\r\n );\r\n case \"h3\":\r\n return (\r\n <h3 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h3>\r\n );\r\n case \"h4\":\r\n return (\r\n <h4 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h4>\r\n );\r\n case \"h5\":\r\n return (\r\n <h5 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h5>\r\n );\r\n }\r\n};\r\n\r\nconst HandleIcon: FunctionalComponent<{\r\n state?: AccordionSectionState;\r\n icon?: string;\r\n attachmentCount?: number;\r\n}> = ({ state, icon, attachmentCount }) => {\r\n if (state) {\r\n return <HandleStateIcon state={state} />;\r\n }\r\n\r\n if (attachmentCount) {\r\n return <dso-attachments-counter count={attachmentCount}></dso-attachments-counter>;\r\n }\r\n\r\n if (icon) {\r\n return <dso-icon icon={icon}></dso-icon>;\r\n }\r\n};\r\n\r\nconst HandleStateIcon: FunctionalComponent<{ state: AccordionSectionState }> = ({ state }) => {\r\n if (state === \"error\") {\r\n return <dso-icon icon=\"status-error\"></dso-icon>;\r\n }\r\n\r\n if (state === \"danger\") {\r\n return <dso-icon icon=\"status-danger\"></dso-icon>;\r\n }\r\n\r\n if (state === \"success\") {\r\n return <dso-icon icon=\"status-success\"></dso-icon>;\r\n }\r\n\r\n if (state === \"info\") {\r\n return <dso-icon icon=\"status-info\"></dso-icon>;\r\n }\r\n\r\n if (state === \"warning\") {\r\n return <dso-icon icon=\"status-warning\"></dso-icon>;\r\n }\r\n};\r\n\r\n@Component({\r\n tag: \"dso-accordion-section\",\r\n styleUrl: \"accordion-section.scss\",\r\n shadow: true,\r\n})\r\nexport class AccordionSection implements ComponentInterface {\r\n private accordionState?: AccordionInternalState;\r\n\r\n private sectionBody?: HTMLDivElement;\r\n\r\n private sectionHeading?: HTMLHeadingElement;\r\n\r\n @Element()\r\n host!: HTMLDsoAccordionSectionElement;\r\n\r\n /**\r\n * The title of the handle\r\n */\r\n @Prop()\r\n handleTitle!: RenvooiValue | RenvooiValue[] | undefined;\r\n\r\n /**\r\n * An optional 'wijzigactie' that signals if the section is added or removed.\r\n */\r\n @Prop()\r\n wijzigactie?: AccordionSectionWijzigactie;\r\n\r\n /**\r\n * Which heading element to use.\r\n */\r\n @Prop()\r\n heading: AccordionHeading = \"h2\";\r\n\r\n /**\r\n * When set the handle will render as a `<a>`. When undefined it renders as a `<button>`\r\n */\r\n @Prop()\r\n handleUrl?: string;\r\n\r\n /**\r\n * `state` takes precedence over `attachmentCount` and `icon`\r\n */\r\n @Prop()\r\n status?: AccordionSectionState;\r\n\r\n /**\r\n * `attachmentCount` takes precedence over `icon`\r\n */\r\n @Prop()\r\n attachmentCount?: number;\r\n\r\n /**\r\n * To set an icon in the heading handle.\r\n */\r\n @Prop()\r\n icon?: string;\r\n\r\n /**\r\n * The status of the section.\r\n */\r\n @Prop()\r\n statusDescription?: string;\r\n\r\n /**\r\n * Set the Accordion Section open.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n /**\r\n * Set when this Accordion Section contains or will contain an Accordion.\r\n */\r\n @Prop({ reflect: true })\r\n hasNestedAccordion = false;\r\n\r\n /**\r\n * The label to be displayed in the heading handle inside a Label (optional)\r\n */\r\n @Prop()\r\n label?: string;\r\n\r\n /**\r\n * The status of the Label in the heading handle (optional)\r\n */\r\n @Prop()\r\n labelStatus?: LabelStatus;\r\n\r\n /**\r\n * A boolean to indicate if the Accordion Section is capable of being activated. When `true` a Slide Toggle displays\r\n * on the right in the heading handle (optional). Works only for `variant` `compact-black` and `reverseAlign` false.\r\n */\r\n @Prop({ reflect: true })\r\n activatable = false;\r\n\r\n /**\r\n * A boolean to indicate if the Accordion Section is `active`. Only applicable when the Accordion Section is\r\n * `activatable`.\r\n */\r\n @Prop({ reflect: true })\r\n active = false;\r\n\r\n /**\r\n * An optional event listener for changes on the value of property `active`.\r\n */\r\n @Event()\r\n dsoActiveChange!: EventEmitter<AccordionSectionActiveChangeEvent>;\r\n\r\n /**\r\n * Calling this method will set focus to the handle.\r\n */\r\n @Method()\r\n async focusHandle() {\r\n this.handleElementRef?.focus();\r\n }\r\n\r\n @State()\r\n hover = false;\r\n\r\n get containsNestedAccordion() {\r\n return this.host.querySelector(\"dso-accordion\") !== null;\r\n }\r\n\r\n componentWillLoad() {\r\n this.accordion?._getState().then((state) => {\r\n this.accordionState = state;\r\n\r\n forceUpdate(this.host);\r\n });\r\n }\r\n\r\n get isNeutral() {\r\n return this.accordionState?.variant === \"neutral\";\r\n }\r\n\r\n private async scrollIntoView(bodyHeight: number | undefined, behavior: ScrollBehavior = \"auto\"): Promise<void> {\r\n log(\r\n `DSO Toolkit [Accordion Section] scrollIntoView(bodyHeight: ${JSON.stringify(\r\n bodyHeight,\r\n )}, behavior: ${JSON.stringify(behavior)})`,\r\n );\r\n\r\n const bodyClientRect = this.sectionBody?.getBoundingClientRect();\r\n const headingClientRect = this.sectionHeading?.getBoundingClientRect();\r\n\r\n log(`DSO Toolkit [Accordion Section] const bodyClientRect = ${JSON.stringify(bodyClientRect)};`);\r\n log(`DSO Toolkit [Accordion Section] const headingClientRect = ${JSON.stringify(headingClientRect)};`);\r\n log(`DSO Toolkit [Accordion Section] this.accordionState = ${JSON.stringify(this.accordionState)};`);\r\n log(`DSO Toolkit [Accordion Section] this.open = ${JSON.stringify(this.open)};`);\r\n\r\n if (!bodyClientRect || !headingClientRect || !this.accordionState) {\r\n log(`DSO Toolkit [Accordion Section] returning`);\r\n\r\n return;\r\n }\r\n\r\n // this y is relative to the top of the viewport.\r\n const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? (bodyHeight ?? 0) : 0);\r\n\r\n log(`DSO Toolkit [Accordion Section] const sectionBottomY = ${JSON.stringify(sectionBottomY)};`);\r\n log(`DSO Toolkit [Accordion Section] window.innerHeight = ${JSON.stringify(window.innerHeight)};`);\r\n\r\n const box = this.host.getBoundingClientRect();\r\n\r\n const scrollTop = window.scrollY || document.documentElement.scrollTop || document.body.scrollTop;\r\n const clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\r\n const top = box.top + scrollTop - clientTop;\r\n\r\n log(\"DSO Toolkit [Accordion Section] scroll\", { box, scrollTop, clientTop, top });\r\n\r\n if (sectionBottomY > window.innerHeight) {\r\n log(\r\n `DSO Toolkit [Accordion Section] sectionBottomY > window.innerHeight === ${JSON.stringify(\r\n sectionBottomY > window.innerHeight,\r\n )};`,\r\n );\r\n\r\n const expandedAccordionHeight = sectionBottomY - headingClientRect.top;\r\n const shouldScrollToTopOfSection = expandedAccordionHeight > window.innerHeight;\r\n\r\n log(\r\n `DSO Toolkit [Accordion Section] const expandedAccordionHeight = ${JSON.stringify(expandedAccordionHeight)};`,\r\n );\r\n log(\r\n `DSO Toolkit [Accordion Section] const shouldScrollToTopOfSection = ${JSON.stringify(\r\n shouldScrollToTopOfSection,\r\n )};`,\r\n );\r\n\r\n window.scrollTo({\r\n top: shouldScrollToTopOfSection ? top : top - (window.innerHeight - expandedAccordionHeight),\r\n behavior,\r\n });\r\n } else if (headingClientRect.top < 0) {\r\n log(\r\n `DSO Toolkit [Accordion Section] headingClientRect.top < 0 === ${JSON.stringify(headingClientRect.top < 0)};`,\r\n );\r\n\r\n window.scrollTo({\r\n top,\r\n behavior,\r\n });\r\n }\r\n }\r\n\r\n private get accordion() {\r\n return this.host.closest(\"dso-accordion\");\r\n }\r\n\r\n private handleClick = (event: MouseEvent) => {\r\n this.dsoToggleClick.emit({\r\n originalEvent: event,\r\n open: !this.open,\r\n });\r\n };\r\n\r\n private handleActiveChange = (event: DsoSlideToggleCustomEvent<SlideToggleActiveEvent>) => {\r\n this.dsoActiveChange.emit({\r\n current: Boolean(this.active),\r\n next: !this.active,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleExpandableAnimationStart = (e: CustomEvent<any>) => {\r\n this.dsoAnimationStart.emit({\r\n animation: this.open ? \"opening\" : \"closing\",\r\n scrollIntoView: (behavior: ScrollBehavior = \"auto\") => this.scrollIntoView(e.detail.bodyHeight, behavior),\r\n });\r\n };\r\n\r\n private handleExpandableAnimationEnd = (e: CustomEvent<ExpandableAnimationEndEvent>) => {\r\n this.dsoAnimationEnd.emit({\r\n open: this.open,\r\n scrollIntoView: (behavior: ScrollBehavior = \"auto\") => this.scrollIntoView(e.detail.bodyHeight, behavior),\r\n });\r\n };\r\n\r\n /**\r\n * Emitted when the user activates the toggle button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoToggleClick!: EventEmitter<AccordionSectionToggleClickEvent>;\r\n\r\n /**\r\n * Event emitted when the Accordion Section starts its toggle animation.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnimationStart!: EventEmitter<AccordionSectionAnimationStartEvent>;\r\n\r\n /**\r\n * Event emitted when the Accordion Section completes its toggle animation.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnimationEnd!: EventEmitter<AccordionSectionAnimationEndEvent>;\r\n\r\n private handleElementRef?: HTMLAnchorElement | HTMLButtonElement;\r\n\r\n render() {\r\n const { variant, reverseAlign } = this.accordionState ?? {};\r\n const hasAddons = !!this.statusDescription || !!this.status || !!this.icon || !!this.attachmentCount;\r\n const showSlideToggle = this.activatable && variant === \"compact-black\" && !reverseAlign;\r\n\r\n return (\r\n <Host\r\n class={{\r\n \"dso-accordion-section\": true,\r\n [\"dso-accordion-\" + variant]: !!variant,\r\n \"dso-nested-accordion\": this.hasNestedAccordion || this.containsNestedAccordion,\r\n \"dso-accordion-reverse-align\": reverseAlign ?? false,\r\n [\"dso-accordion-wijzigactie-\" + this.wijzigactie]: !!this.wijzigactie,\r\n \"dso-accordion-section-activate\": showSlideToggle,\r\n }}\r\n hidden={!variant}\r\n onMouseenter={() => (this.hover = true)}\r\n onMouseleave={() => (this.hover = false)}\r\n >\r\n <Handle heading={this.heading} ref={(element) => (this.sectionHeading = element)}>\r\n <HandleElement\r\n handleUrl={this.handleUrl}\r\n onClick={this.handleClick}\r\n open={this.open}\r\n showSlideToggle={showSlideToggle}\r\n active={this.active}\r\n onActiveChange={this.handleActiveChange}\r\n handleElementRef={(e) => (this.handleElementRef = e)}\r\n >\r\n {reverseAlign ? (\r\n <Fragment>\r\n {this.icon && (\r\n <div class=\"dso-section-handle-addons\">\r\n <HandleIcon icon={this.icon} />\r\n </div>\r\n )}\r\n <dso-renvooi value={this.handleTitle} />\r\n {this.label && (\r\n <dso-label status={this.labelStatus} compact>\r\n {this.label}\r\n </dso-label>\r\n )}\r\n <div class=\"dso-section-handle-addons\">\r\n {this.statusDescription && <span class=\"dso-status\">{this.statusDescription}</span>}\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </Fragment>\r\n ) : (\r\n <Fragment>\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-right\"></dso-icon>\r\n {this.status && <span class=\"sr-only\">{stateMap[this.status]}</span>}\r\n <span>\r\n <dso-renvooi value={this.handleTitle} />\r\n {this.isNeutral && (\r\n <dso-icon class=\"info-icon\" icon={this.open || this.hover ? \"info-active\" : \"info\"} />\r\n )}\r\n </span>\r\n {this.label && (\r\n <dso-label status={this.labelStatus} compact>\r\n {this.label}\r\n </dso-label>\r\n )}\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n {this.statusDescription && <span class=\"dso-status\">{this.statusDescription}</span>}\r\n <HandleIcon state={this.status} icon={this.icon} attachmentCount={this.attachmentCount} />\r\n </div>\r\n )}\r\n </Fragment>\r\n )}\r\n </HandleElement>\r\n </Handle>\r\n <dso-expandable\r\n class=\"dso-section-body\"\r\n open={this.open}\r\n enableAnimation\r\n minimumHeight={this.isNeutral ? 0 : 4}\r\n onDsoExpandableAnimationStart={this.handleExpandableAnimationStart}\r\n onDsoExpandableAnimationEnd={this.handleExpandableAnimationEnd}\r\n >\r\n <div class=\"dso-section-body-content\" ref={(element) => (this.sectionBody = element)}>\r\n <slot />\r\n </div>\r\n </dso-expandable>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}