@dso-toolkit/core 62.5.0 → 62.7.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 (156) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
  4. package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dso-alert_7.cjs.entry.js +2 -1
  8. package/dist/cjs/dso-alert_7.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dso-annotation-output_3.cjs.entry.js +21 -2
  10. package/dist/cjs/dso-annotation-output_3.cjs.entry.js.map +1 -1
  11. package/dist/cjs/dso-card.cjs.entry.js +27 -10
  12. package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
  13. package/dist/cjs/dso-header.cjs.entry.js +1 -1
  14. package/dist/cjs/dso-info_2.cjs.entry.js +6 -0
  15. package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/dso-mark-bar.cjs.entry.js +17 -2
  17. package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -1
  18. package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
  19. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  20. package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  22. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +72 -25
  23. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
  24. package/dist/cjs/is-modified-event-97f83d0f.js +14 -0
  25. package/dist/cjs/is-modified-event-97f83d0f.js.map +1 -0
  26. package/dist/cjs/loader.cjs.js +1 -1
  27. package/dist/collection/components/accordion/components/accordion-section.css +6 -1
  28. package/dist/collection/components/action-list/action-list.css +12 -3
  29. package/dist/collection/components/action-list/components/action-list-item.css +14 -7
  30. package/dist/collection/components/card/card.css +73 -0
  31. package/dist/collection/components/card/card.js +49 -48
  32. package/dist/collection/components/card/card.js.map +1 -1
  33. package/dist/collection/components/document-component/document-component.css +12 -17
  34. package/dist/collection/components/document-component/document-component.js +71 -3
  35. package/dist/collection/components/document-component/document-component.js.map +1 -1
  36. package/dist/collection/components/document-component/document-component.models.js.map +1 -1
  37. package/dist/collection/components/document-component-demo/document-component.demo.js +74 -26
  38. package/dist/collection/components/document-component-demo/document-component.demo.js.map +1 -1
  39. package/dist/collection/components/mark-bar/mark-bar.css +50 -694
  40. package/dist/collection/components/mark-bar/mark-bar.interfaces.js.map +1 -1
  41. package/dist/collection/components/mark-bar/mark-bar.js +45 -1
  42. package/dist/collection/components/mark-bar/mark-bar.js.map +1 -1
  43. package/dist/collection/components/ozon-content/nodes/ext-ref.node.js +1 -1
  44. package/dist/collection/components/ozon-content/nodes/ext-ref.node.js.map +1 -1
  45. package/dist/collection/components/selectable/selectable.js +7 -1
  46. package/dist/collection/components/selectable/selectable.js.map +1 -1
  47. package/dist/collection/components/viewer-grid/viewer-grid.css +4 -0
  48. package/dist/collection/utils/is-modified-event.js +8 -2
  49. package/dist/collection/utils/is-modified-event.js.map +1 -1
  50. package/dist/components/document-component.js +24 -4
  51. package/dist/components/document-component.js.map +1 -1
  52. package/dist/components/dso-accordion-section.js +1 -1
  53. package/dist/components/dso-accordion-section.js.map +1 -1
  54. package/dist/components/dso-action-list-item.js +1 -1
  55. package/dist/components/dso-action-list-item.js.map +1 -1
  56. package/dist/components/dso-action-list.js +1 -1
  57. package/dist/components/dso-action-list.js.map +1 -1
  58. package/dist/components/dso-card.js +37 -15
  59. package/dist/components/dso-card.js.map +1 -1
  60. package/dist/components/dso-mark-bar.js +19 -3
  61. package/dist/components/dso-mark-bar.js.map +1 -1
  62. package/dist/components/dso-viewer-grid.js +1 -1
  63. package/dist/components/dso-viewer-grid.js.map +1 -1
  64. package/dist/components/dsot-document-component-demo.js +74 -26
  65. package/dist/components/dsot-document-component-demo.js.map +1 -1
  66. package/dist/components/is-modified-event.js +8 -2
  67. package/dist/components/is-modified-event.js.map +1 -1
  68. package/dist/components/ozon-content.js +2 -1
  69. package/dist/components/ozon-content.js.map +1 -1
  70. package/dist/components/selectable.js +7 -1
  71. package/dist/components/selectable.js.map +1 -1
  72. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  73. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  74. package/dist/dso-toolkit/p-159c0a88.entry.js +2 -0
  75. package/dist/dso-toolkit/p-159c0a88.entry.js.map +1 -0
  76. package/dist/dso-toolkit/p-17e4b846.js +2 -0
  77. package/dist/dso-toolkit/p-17e4b846.js.map +1 -0
  78. package/dist/dso-toolkit/{p-54444f78.entry.js → p-193b7e46.entry.js} +2 -2
  79. package/dist/dso-toolkit/p-33416b1d.entry.js +2 -0
  80. package/dist/dso-toolkit/p-33416b1d.entry.js.map +1 -0
  81. package/dist/dso-toolkit/{p-7371aee1.entry.js → p-336aefb5.entry.js} +2 -2
  82. package/dist/dso-toolkit/p-336aefb5.entry.js.map +1 -0
  83. package/dist/dso-toolkit/p-35dae23f.entry.js +2 -0
  84. package/dist/dso-toolkit/p-35dae23f.entry.js.map +1 -0
  85. package/dist/dso-toolkit/p-39962ce8.entry.js +2 -0
  86. package/dist/dso-toolkit/p-39962ce8.entry.js.map +1 -0
  87. package/dist/dso-toolkit/{p-d165ad74.entry.js → p-6d602847.entry.js} +2 -2
  88. package/dist/dso-toolkit/p-977dde7f.entry.js +2 -0
  89. package/dist/dso-toolkit/p-977dde7f.entry.js.map +1 -0
  90. package/dist/dso-toolkit/p-9c34ee39.entry.js +2 -0
  91. package/dist/dso-toolkit/p-9c34ee39.entry.js.map +1 -0
  92. package/dist/dso-toolkit/{p-b8ff5318.entry.js → p-a3f28ef2.entry.js} +2 -2
  93. package/dist/dso-toolkit/{p-b8ff5318.entry.js.map → p-a3f28ef2.entry.js.map} +1 -1
  94. package/dist/dso-toolkit/{p-f3bd801e.entry.js → p-bf04808f.entry.js} +2 -2
  95. package/dist/dso-toolkit/{p-f3bd801e.entry.js.map → p-bf04808f.entry.js.map} +1 -1
  96. package/dist/dso-toolkit/p-d24073fe.entry.js +2 -0
  97. package/dist/dso-toolkit/p-d24073fe.entry.js.map +1 -0
  98. package/dist/esm/dso-accordion-section.entry.js +1 -1
  99. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  100. package/dist/esm/dso-action-list-item.entry.js +1 -1
  101. package/dist/esm/dso-action-list-item.entry.js.map +1 -1
  102. package/dist/esm/dso-action-list.entry.js +1 -1
  103. package/dist/esm/dso-action-list.entry.js.map +1 -1
  104. package/dist/esm/dso-alert_7.entry.js +2 -1
  105. package/dist/esm/dso-alert_7.entry.js.map +1 -1
  106. package/dist/esm/dso-annotation-output_3.entry.js +22 -3
  107. package/dist/esm/dso-annotation-output_3.entry.js.map +1 -1
  108. package/dist/esm/dso-card.entry.js +28 -11
  109. package/dist/esm/dso-card.entry.js.map +1 -1
  110. package/dist/esm/dso-header.entry.js +1 -1
  111. package/dist/esm/dso-info_2.entry.js +6 -0
  112. package/dist/esm/dso-info_2.entry.js.map +1 -1
  113. package/dist/esm/dso-mark-bar.entry.js +17 -2
  114. package/dist/esm/dso-mark-bar.entry.js.map +1 -1
  115. package/dist/esm/dso-pagination.entry.js +1 -1
  116. package/dist/esm/dso-toolkit.js +1 -1
  117. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  118. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  119. package/dist/esm/dsot-document-component-demo.entry.js +73 -26
  120. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
  121. package/dist/esm/is-modified-event-4fc531e3.js +12 -0
  122. package/dist/esm/is-modified-event-4fc531e3.js.map +1 -0
  123. package/dist/esm/loader.js +1 -1
  124. package/dist/types/components/card/card.d.ts +14 -10
  125. package/dist/types/components/document-component/document-component.d.ts +17 -2
  126. package/dist/types/components/document-component/document-component.models.d.ts +6 -0
  127. package/dist/types/components/document-component-demo/document-component.demo.d.ts +13 -6
  128. package/dist/types/components/mark-bar/mark-bar.d.ts +7 -1
  129. package/dist/types/components/mark-bar/mark-bar.interfaces.d.ts +10 -1
  130. package/dist/types/components/selectable/selectable.d.ts +3 -2
  131. package/dist/types/components.d.ts +31 -20
  132. package/dist/types/utils/is-modified-event.d.ts +6 -2
  133. package/package.json +2 -2
  134. package/dist/cjs/is-modified-event-ccd748ea.js +0 -8
  135. package/dist/cjs/is-modified-event-ccd748ea.js.map +0 -1
  136. package/dist/dso-toolkit/p-02c35f4e.entry.js +0 -2
  137. package/dist/dso-toolkit/p-02c35f4e.entry.js.map +0 -1
  138. package/dist/dso-toolkit/p-0afd6a86.entry.js +0 -2
  139. package/dist/dso-toolkit/p-0afd6a86.entry.js.map +0 -1
  140. package/dist/dso-toolkit/p-2cd3e805.entry.js +0 -2
  141. package/dist/dso-toolkit/p-2cd3e805.entry.js.map +0 -1
  142. package/dist/dso-toolkit/p-4f601b8c.entry.js +0 -2
  143. package/dist/dso-toolkit/p-4f601b8c.entry.js.map +0 -1
  144. package/dist/dso-toolkit/p-5eb2019a.entry.js +0 -2
  145. package/dist/dso-toolkit/p-5eb2019a.entry.js.map +0 -1
  146. package/dist/dso-toolkit/p-7371aee1.entry.js.map +0 -1
  147. package/dist/dso-toolkit/p-9747c291.js +0 -2
  148. package/dist/dso-toolkit/p-9747c291.js.map +0 -1
  149. package/dist/dso-toolkit/p-b9059ec2.entry.js +0 -2
  150. package/dist/dso-toolkit/p-b9059ec2.entry.js.map +0 -1
  151. package/dist/dso-toolkit/p-f493248a.entry.js +0 -2
  152. package/dist/dso-toolkit/p-f493248a.entry.js.map +0 -1
  153. package/dist/esm/is-modified-event-587a0b0a.js +0 -6
  154. package/dist/esm/is-modified-event-587a0b0a.js.map +0 -1
  155. /package/dist/dso-toolkit/{p-54444f78.entry.js.map → p-193b7e46.entry.js.map} +0 -0
  156. /package/dist/dso-toolkit/{p-d165ad74.entry.js.map → p-6d602847.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["alertCss","Alert","render","status","statusMap","get","this","Error","h","class","clsx","role","roleAlert","undefined","icon","Map","annotationButtonCss","AnnotationButton","handleClick","e","dsoClick","emit","originalEvent","open","type","identifier","toString","onClick","badgeCss","Badge","imageOverlayCss","ImageOverlay","titelSlot","bijschriftSlot","loadListener","event","target","HTMLImageElement","setZoomable","connectedCallback","host","querySelector","componentDidLoad","resizeObserver","ResizeObserver","debounce","imgElement","mutationObserver","MutationObserver","forceUpdate","_a","_b","disconnect","initZoomableImage","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","trap","deactivate","_c","complete","imageElement","width","naturalWidth","height","naturalHeight","zoomable","src","alt","Host","buttonElement","focus","active","ref","element","wrapperElement","hidden","name","componentDidRender","createFocusTrap","escapeDeactivates","clickOutsideDeactivates","MouseEvent","composedPath","setReturnFocus","onDeactivate","activate","labelCss","entries","forEach","isDsoLabelComponent","_truncateLabel","tagName","hasEllipses","el","scrollWidth","clientWidth","Label","watchRemovable","removable","startMutationObserver","stopMutationObserver","watchTruncate","truncate","startTruncate","stopTruncate","keyDownListener","key","textHover","textFocus","setTimeout","isTruncated","labelContent","syncLabelText","labelText","textContent","trim","characterData","force","unobserve","Fragment","compact","removeHover","removeFocus","tabindex","onMouseEnter","onMouseLeave","onFocus","onBlur","dsoRemoveClick","stateless","id","position","strategy","getNodeName","node","Element","localName","nodeName","includes","substring","indexOf","isNestedAl","path","some","n","OzonContentAlNode","constructor","mapNodeToJsx","inline","content","childNodes","wijzigactie","getAttribute","className","OzonContentBronNode","OzonContentDocumentNode","INFINITY","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","Symbol","symbolProto","symbolToString","baseToString","value","isSymbol","call","result","createCompounder","callback","words","deburr","replace","isObjectLike","kebabCase","word","toLowerCase","pattern","guard","lodash_kebabcase","OzonContentExtRefNode","href","rel","OzonContentFallbackNode","Bijschrift","bijschrift","bron","inhoud","OzonContentFiguurNode","setImageDimensions","schaal","onImageLoad","Array","from","titel","find","illustratieNode","bijschriftNode","illustratie","naam","breedte","hoogte","uitlijning","locatie","slot","_f","_e","_d","onLoad","Number","OzonContentInhoudNode","OzonContentInlineTekstAfbeeldingNode","OzonContentInlineNodes","Tag","OzonContentIntIoRefNode","emitAnchorClick","intRefOnClick","preventDefault","currentTarget","HTMLAnchorElement","documentComponent","OzonContentIntRefNode","OzonContentLijstNode","aanhef","sluiting","listItems","filter","map","item","itemNodes","liNummer","OzonContentNieuweTekstNode","OzonContentNootNode","handles","identify","state","openNoteId","setState","noteId","console","error","noteControlsId","nootNummer","descriptive","querySelectorAll","OzonContentOpschriftNode","mapColspecs","count","nodeList","elements","totalWidth","getTotalWidth","columns","colNumber","number","parseInt","getWidth","reduce","colWidth","isNaN","Math","round","Colgroup","colspecs","colspec","style","getData","cell","moreRows","nameStart","nameEnd","getColspan","colspecStart","c","colspecEnd","colspan","Cell","context","td","rowSpan","colSpan","assign","Rows","rows","row","children","mapData","tgroup","colAttribute","columnCount","caption","headRows","bodyRows","editAction","OzonContentTableNode","uuidv4","OzonContentTextNode","mark","emitMarkItemHighlight","highlight","text","OzonContentVerwijderdeTekstNode","Mapper","mappers","skip","t","m","push","fallbackNode","findMapper","isArray","NodeList","mapper","identity","s","transform","input","document","inputToXmlDocument","message","getRootNode","XMLDocument","domParser","DOMParser","parseFromString","implementation","createDocument","ozonContentCss","OzonContent","handleMarkItemHighlight","elementRef","dsoOzonContentMarkItemHighlight","contentWatcher","dsoAnchorClick","transformed","tableCss","Table","labelledbyId","v4","startResponsiveBehavior","componentWillLoad","setResponsiveTable","setFocusTrap","modalActive","placeholderHeight","focusTrapElement","isResponsive","noModal","display","openModal","closeModal","clientHeight","tabbableOptions","getShadowRoot","dsoTable","tableElement","HTMLTableElement","floor","getBoundingClientRect","contentRect"],"sources":["src/components/alert/alert.scss?tag=dso-alert&encapsulation=shadow","src/components/alert/alert.tsx","src/components/annotation-button/annotation-button.scss?tag=dso-annotation-button","src/components/annotation-button/annotation-button.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/label/label.scss?tag=dso-label&encapsulation=shadow","src/components/label/label.tsx","src/components/ozon-content/get-node-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/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/opschrift.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/table/table.scss?tag=dso-table&encapsulation=shadow","src/components/table/table.tsx"],"sourcesContent":["@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-top: 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 {\r\n @include alert.icon-position();\r\n\r\n height: units.$u4;\r\n width: units.$u4;\r\n }\r\n}\r\n","import { Component, h, Prop } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\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 /**\r\n * Set status of alert\r\n */\r\n @Prop()\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 private static statusMap = new Map<string, string>([\r\n [\"success\", \"Gelukt\"],\r\n [\"info\", \"Opmerking\"],\r\n [\"warning\", \"Waarschuwing\"],\r\n [\"error\", \"Fout\"],\r\n ]);\r\n\r\n render() {\r\n const status = Alert.statusMap.get(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 class={clsx(\"alert\", `alert-${this.status}`)} role={this.roleAlert ? \"alert\" : undefined}>\r\n <dso-icon icon={\"status-\" + this.status}></dso-icon>\r\n <span class=\"sr-only\">{status}:</span>\r\n <slot></slot>\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n\r\ndso-annotation-button {\r\n display: block;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n","import { h, Component, ComponentInterface, Event, Prop, EventEmitter } from \"@stencil/core\";\r\n\r\nexport interface AnnotationButtonClickEvent {\r\n originalEvent: Event;\r\n open: boolean;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-annotation-button\",\r\n styleUrl: \"annotation-button.scss\",\r\n // No shadowdom for a11y reasons (aria-controls pointing to element inside another component)\r\n})\r\nexport class AnnotationButton implements ComponentInterface {\r\n /**\r\n * To link the Annotation Button with `aria-controls` to a different element, most likely an Annotation Output.\r\n */\r\n @Prop()\r\n identifier!: string | undefined;\r\n\r\n /**\r\n * Set to true when the annotation is open.\r\n */\r\n @Prop()\r\n open = false;\r\n\r\n /**\r\n * Emitted when user activates the button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoClick!: EventEmitter<AnnotationButtonClickEvent>;\r\n\r\n private handleClick = (e: MouseEvent) => {\r\n this.dsoClick.emit({ originalEvent: e, open: !this.open });\r\n };\r\n\r\n render() {\r\n return (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n aria-controls={this.identifier}\r\n aria-expanded={this.open.toString()}\r\n onClick={this.handleClick}\r\n >\r\n <dso-icon icon=\"label\"></dso-icon>\r\n <span class=\"sr-only\">Toelichting bekijken</span>\r\n </button>\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, h, Prop } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\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?: \"primary\" | \"success\" | \"info\" | \"warning\" | \"danger\" | \"error\" | \"outline\" | \"attention\";\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 \"~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/utilities\";\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\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.open {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-width: auto;\r\n padding: units.$u1;\r\n opacity: 0;\r\n position: absolute;\r\n right: units.$u2;\r\n top: units.$u2;\r\n}\r\n\r\n.dimmer {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: zindex.$image-overlay - 1;\r\n display: flex;\r\n padding: units.$u4;\r\n background-color: fade-out(colors.$wit, 0.2);\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 .titel:not([hidden]) {\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 width: auto;\r\n height: auto;\r\n max-width: 100%;\r\n max-height: 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-bottom: units.$u1 * 1.5;\r\n padding-top: units.$u2;\r\n }\r\n}\r\n\r\n.close {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-width: auto;\r\n padding: units.$u1;\r\n position: absolute;\r\n top: units.$u2;\r\n right: units.$u2;\r\n}\r\n","import { Component, ComponentInterface, Element, forceUpdate, h, Host, Listen, State } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\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 @State()\r\n active = false;\r\n\r\n @State()\r\n zoomable = false;\r\n\r\n private buttonElement: HTMLButtonElement | 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 render() {\r\n const { src, alt } = this.host.querySelector(\"img\") ?? {};\r\n\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n {this.active && src && alt && (\r\n <div class=\"dimmer\">\r\n <div class=\"wrapper\" ref={(element) => (this.wrapperElement = element)}>\r\n <div class=\"titel\" hidden={!this.titelSlot}>\r\n <slot name=\"titel\" />\r\n </div>\r\n <img src={src} alt={alt} />\r\n <button type=\"button\" class=\"close\" onClick={() => (this.active = false)}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span>Sluiten</span>\r\n </button>\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n <slot />\r\n {this.zoomable && (\r\n <button\r\n type=\"button\"\r\n class=\"open\"\r\n ref={(element) => (this.buttonElement = element)}\r\n onClick={() => (this.active = true)}\r\n >\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n <span>Afbeelding vergroot weergeven</span>\r\n </button>\r\n )}\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.buttonElement ?? false,\r\n onDeactivate: () => (this.active = false),\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","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/label\";\r\n\r\n:host {\r\n display: inline-block;\r\n max-width: 100%;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n// Todo: Replace .sr-only selector with web component specific selector, no need for .sr-only if we can generate the SCSS\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-label {\r\n @include label.root();\r\n\r\n &.dso-hover {\r\n .dso-label-content {\r\n text-decoration: line-through;\r\n }\r\n }\r\n}\r\n\r\n.dso-truncate.dso-label-content {\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n vertical-align: bottom;\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n}\r\n\r\n:host([removable]) {\r\n .dso-truncate.dso-label-content {\r\n max-width: calc(100% - (units.$u3 + 4px));\r\n }\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n Listen,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce((entries: ResizeObserverEntry[]) => {\r\n entries.forEach(({ target }) => {\r\n if (isDsoLabelComponent(target)) {\r\n target._truncateLabel();\r\n }\r\n });\r\n }, 150),\r\n);\r\n\r\nfunction isDsoLabelComponent(element: Element): element is HTMLDsoLabelElement {\r\n return element.tagName === \"DSO-LABEL\";\r\n}\r\n\r\nfunction hasEllipses(el: HTMLElement): boolean {\r\n return el.scrollWidth > el.clientWidth;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-label\",\r\n styleUrl: \"label.scss\",\r\n shadow: true,\r\n})\r\nexport class Label implements ComponentInterface {\r\n private labelContent: HTMLSpanElement | undefined;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n @Element()\r\n private host!: HTMLDsoLabelElement;\r\n\r\n /**\r\n * For compact Label\r\n */\r\n @Prop()\r\n compact?: boolean;\r\n\r\n /**\r\n * Shows a button that can be used to remove the Label.\r\n */\r\n @Prop()\r\n removable?: boolean;\r\n\r\n /**\r\n * The status of this Label.\r\n */\r\n @Prop()\r\n status?: \"primary\" | \"info\" | \"success\" | \"warning\" | \"danger\" | \"error\" | \"bright\" | \"attention\";\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<MouseEvent>;\r\n\r\n @State()\r\n removeHover?: boolean;\r\n\r\n @State()\r\n removeFocus?: boolean;\r\n\r\n /**\r\n * Whether the Label is allowed to truncate the contents if it does not fit the container element.\r\n */\r\n @Prop()\r\n truncate?: boolean;\r\n\r\n @State()\r\n textHover?: boolean;\r\n\r\n @State()\r\n textFocus?: boolean;\r\n\r\n @State()\r\n isTruncated = false;\r\n\r\n @State()\r\n labelText = \"\";\r\n\r\n @Watch(\"removable\")\r\n watchRemovable(removable: boolean) {\r\n if (removable) {\r\n this.startMutationObserver();\r\n } else {\r\n this.stopMutationObserver();\r\n }\r\n }\r\n\r\n @Watch(\"truncate\")\r\n watchTruncate(truncate: boolean) {\r\n if (truncate) {\r\n this.startTruncate();\r\n } else {\r\n this.stopTruncate();\r\n }\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.key === \"Escape\") {\r\n this.textHover = false;\r\n this.textFocus = false;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _truncateLabel() {\r\n setTimeout(() => {\r\n this.isTruncated = !!this.labelContent && hasEllipses(this.labelContent);\r\n });\r\n }\r\n\r\n private syncLabelText() {\r\n this.labelText = this.host.textContent?.trim() ?? \"\";\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.truncate) {\r\n this.startTruncate();\r\n }\r\n\r\n if (this.removable) {\r\n this.startMutationObserver();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTruncate();\r\n\r\n this.stopMutationObserver(true);\r\n }\r\n\r\n /** The mutationObserver fetches the text placed inside the label, this is then used for the remove button and tooltip. */\r\n private startMutationObserver(): void {\r\n this.mutationObserver = new MutationObserver(() => this.syncLabelText());\r\n\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n });\r\n\r\n this.syncLabelText();\r\n }\r\n\r\n private stopMutationObserver(force = false): void {\r\n if (force || !(this.truncate && this.removable)) {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n }\r\n\r\n private startTruncate(): void {\r\n resizeObserver.observe(this.host);\r\n this.startMutationObserver();\r\n this._truncateLabel();\r\n }\r\n\r\n private stopTruncate(): void {\r\n resizeObserver.unobserve(this.host);\r\n this.stopMutationObserver();\r\n this.isTruncated = false;\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <span\r\n aria-describedby=\"toggle-anchor\"\r\n class={clsx(\"dso-label\", {\r\n [`dso-label-${this.status}`]: this.status,\r\n \"dso-compact\": this.compact && !this.removable,\r\n \"dso-hover\": this.removeHover || this.removeFocus,\r\n })}\r\n >\r\n <slot name=\"symbol\"></slot>\r\n <span\r\n class={clsx(\"dso-label-content\", {\r\n \"dso-truncate\": !!this.truncate,\r\n })}\r\n ref={(element) => (this.labelContent = element)}\r\n tabindex={this.truncate && this.isTruncated ? 0 : undefined}\r\n onMouseEnter={() => (this.textHover = true)}\r\n onMouseLeave={() => (this.textHover = false)}\r\n onFocus={() => (this.textFocus = true)}\r\n onBlur={() => (this.textFocus = false)}\r\n >\r\n <slot></slot>\r\n </span>\r\n {this.removable && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoRemoveClick.emit(e)}\r\n onMouseEnter={() => (this.removeHover = true)}\r\n onMouseLeave={() => (this.removeHover = false)}\r\n onFocus={() => (this.removeFocus = true)}\r\n onBlur={() => (this.removeFocus = false)}\r\n >\r\n <span class=\"sr-only\">Verwijder: {this.labelText}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n )}\r\n </span>\r\n {this.isTruncated && (\r\n <dso-tooltip\r\n stateless\r\n id=\"toggle-anchor\"\r\n active={this.textHover || this.textFocus}\r\n position=\"top\"\r\n strategy=\"absolute\"\r\n >\r\n {this.labelText}\r\n </dso-tooltip>\r\n )}\r\n </Fragment>\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 { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\nimport clsx from \"clsx\";\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 = node.getAttribute(\"wijzigactie\");\r\n\r\n const className = clsx({ [`wijzigactie-${wijzigactie}`]: !!wijzigactie }) || undefined;\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 if (wijzigactie === \"voegtoe\") {\r\n content = <ins>{content}</ins>;\r\n } else if (wijzigactie === \"verwijder\") {\r\n content = <del>{content}</del>;\r\n }\r\n\r\n return content;\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 }: OzonContentNodeContext) {\r\n const href = node.tagName === \"ExtIoRef\" ? node.getAttribute(\"href\") : node.getAttribute(\"ref\");\r\n const className = kebabCase(node.tagName);\r\n\r\n return (\r\n <a target=\"_blank\" rel=\"noopener noreferrer\" href={href ?? undefined} class={className}>\r\n {mapNodeToJsx(node.childNodes)} <span class=\"sr-only\">(Opent andere website in nieuw tabblad)</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, h, JSX } 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\nconst Bijschrift = ({ bijschrift, bron, mapNodeToJsx }: BijschriftProps): HTMLSpanElement => {\r\n return (\r\n <span class=\"figuur-bijschrift\">\r\n {bijschrift && bijschrift.inhoud && mapNodeToJsx(bijschrift.inhoud)}\r\n {bron && (\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 setImageDimensions(imageElement: HTMLImageElement, schaal: number) {\r\n const { naturalHeight, naturalWidth } = imageElement;\r\n\r\n imageElement.height = naturalHeight * (schaal / 100);\r\n imageElement.width = naturalWidth * (schaal / 100);\r\n }\r\n\r\n onImageLoad(event: Event, schaal?: number) {\r\n if (event.target instanceof HTMLImageElement && schaal) {\r\n this.setImageDimensions(event.target, schaal);\r\n }\r\n }\r\n\r\n render(node: Element, { mapNodeToJsx }: 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 if (illustratieNode instanceof Element) {\r\n const illustratie = {\r\n naam: illustratieNode.getAttribute(\"naam\"),\r\n breedte: illustratieNode.getAttribute(\"breedte\"),\r\n hoogte: illustratieNode.getAttribute(\"hoogte\"),\r\n uitlijning: illustratieNode.getAttribute(\"uitlijning\"),\r\n alt: illustratieNode.getAttribute(\"alt\"),\r\n schaal: illustratieNode.getAttribute(\"schaal\"),\r\n };\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 return (\r\n <div class={`dso-ozon-figuur ${bijschrift ? `bijschrift-${bijschrift.locatie}` : \"onder\"}`}>\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>\r\n {titel && (\r\n <div slot=\"titel\">\r\n <span>{titel}</span>\r\n </div>\r\n )}\r\n <img\r\n src={illustratie.naam ?? undefined}\r\n alt={illustratie.alt ?? titel ?? illustratie.naam ?? undefined}\r\n onLoad={(event: Event) => this.onImageLoad(event, Number(illustratie.schaal))}\r\n />\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 return <div class=\"dso-rich-content\">{mapNodeToJsx(node.childNodes)}</div>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\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) {\r\n return (\r\n <img\r\n src={node.getAttribute(\"naam\") ?? 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 { 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, emitAnchorClick }: OzonContentNodeContext) {\r\n const ref = node.getAttribute(\"ref\");\r\n if (!ref) {\r\n return mapNodeToJsx(node.childNodes);\r\n }\r\n\r\n const intRefOnClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n\r\n const target = event.currentTarget;\r\n if (!(target instanceof HTMLAnchorElement)) {\r\n return;\r\n }\r\n\r\n const { href } = target;\r\n\r\n emitAnchorClick({\r\n node: this.name,\r\n href,\r\n documentComponent: ref,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n return (\r\n <a href={`#${ref}`} onClick={intRefOnClick}>\r\n {mapNodeToJsx(node.childNodes)}\r\n </a>\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 OzonContentIntRefNode implements OzonContentNode {\r\n name = \"IntRef\";\r\n\r\n render(node: Element, { mapNodeToJsx, emitAnchorClick }: OzonContentNodeContext) {\r\n const ref = node.getAttribute(\"ref\");\r\n if (!ref) {\r\n return mapNodeToJsx(node.childNodes);\r\n }\r\n\r\n const intRefOnClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n\r\n const target = event.currentTarget;\r\n if (!(target instanceof HTMLAnchorElement)) {\r\n return;\r\n }\r\n\r\n const { href } = target;\r\n\r\n emitAnchorClick({\r\n node: this.name,\r\n href,\r\n documentComponent: ref,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n return (\r\n <a href={`#${ref}`} onClick={intRefOnClick}>\r\n {mapNodeToJsx(node.childNodes)}\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 OzonContentLijstNode implements OzonContentNode {\r\n name = \"Lijst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const childNodes = Array.from(node.childNodes);\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 <div class=\"dso-ozon-lijst od-Lijst\">\r\n {aanhef && mapNodeToJsx(aanhef)}\r\n <ul class={node.getAttribute(\"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\r\n return (\r\n <li class=\"od-Li\">\r\n {liNummer && <span class=\"od-LiNummer\">{mapNodeToJsx(liNummer)}</span>}\r\n {mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== \"LiNummer\"))}\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n {sluiting && mapNodeToJsx(sluiting)}\r\n </div>\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 OzonContentNieuweTekstNode implements OzonContentNode {\r\n name = \"NieuweTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <ins class=\"nieuwe-tekst\">{mapNodeToJsx(node.childNodes)}</ins>;\r\n }\r\n}\r\n","import { h, Fragment } 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 <>\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 </>\r\n );\r\n }\r\n}\r\n","import { h, Fragment } 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 OzonContentOpschriftNode implements OzonContentNode {\r\n name = \"Opschrift\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n let content = mapNodeToJsx(node.childNodes);\r\n const wijzigactie = node.getAttribute(\"wijzigactie\");\r\n\r\n if (wijzigactie === \"voegtoe\") {\r\n content = <ins class=\"nieuwe-tekst\">{content}</ins>;\r\n } else if (wijzigactie === \"verwijder\") {\r\n content = <del class=\"verwijderde-tekst\">{content}</del>;\r\n }\r\n\r\n return <>{content}</>;\r\n }\r\n}\r\n","import { 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) => {\r\n const colNumber = element.getAttribute(\"colnum\");\r\n\r\n return {\r\n name: element.getAttribute(\"colname\") ?? \"\",\r\n number: colNumber ? parseInt(colNumber, 10) : index + 1,\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, JSXBase } from \"@stencil/core/internal\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nfunction getData(cell: Element) {\r\n return {\r\n moreRows: cell.getAttribute(\"morerows\"),\r\n nameStart: cell.getAttribute(\"namest\"),\r\n nameEnd: cell.getAttribute(\"nameend\"),\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 } = getData(cell);\r\n\r\n const td: JSXBase.TdHTMLAttributes<HTMLTableCellElement> = {\r\n rowSpan: moreRows ? parseInt(moreRows, 10) + 1 : undefined,\r\n colSpan: colspecs && nameStart && nameEnd ? getColspan(colspecs, nameStart, nameEnd) : undefined,\r\n };\r\n\r\n return <td {...td}>{mapNodeToJsx(cell.childNodes)}</td>;\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 editAction: node.getAttribute(\"wijzigactie\"),\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, editAction } = 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 dso-table-vertical-lines\", {\r\n [`wijzigactie-${editAction}`]: editAction,\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 { OzonContentNode } from \"../ozon-content-node.interface\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.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=\"verwijderde-tekst\">{mapNodeToJsx(node.childNodes)}</del>;\r\n }\r\n}\r\n","import { Fragment, h, JSX } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"./get-node-name.function\";\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 { OzonContentLijstNode } from \"./nodes/lijst.node\";\r\nimport { OzonContentNieuweTekstNode } from \"./nodes/nieuwe-tekst.node\";\r\nimport { OzonContentNootNode } from \"./nodes/noot.node\";\r\nimport { OzonContentOpschriftNode } from \"./nodes/opschrift.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 OzonContentTextNode(),\r\n new OzonContentDocumentNode(),\r\n new OzonContentInhoudNode(),\r\n new OzonContentOpschriftNode(),\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 domParser?: DOMParser;\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 emitAnchorClick: context.emitAnchorClick,\r\n setState,\r\n emitMarkItemHighlight: context.emitMarkItemHighlight,\r\n state,\r\n path,\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 document = this.inputToXmlDocument(input);\r\n if (document.querySelector(\"parsererror\")) {\r\n console.error({\r\n message: \"[DSO Toolkit: Ozon Content Mapper] Unable to parse XML\",\r\n context,\r\n input,\r\n document,\r\n });\r\n\r\n return <Fragment />;\r\n }\r\n\r\n return this.mapNodeToJsx(document.getRootNode(), context, []);\r\n }\r\n\r\n private inputToXmlDocument(input: OzonContentInputType): XMLDocument {\r\n if (input instanceof XMLDocument) {\r\n return input;\r\n }\r\n\r\n if (typeof input === \"string\") {\r\n this.domParser ??= new DOMParser();\r\n\r\n return this.domParser.parseFromString(input, \"text/xml\");\r\n }\r\n\r\n return document.implementation.createDocument(null, null);\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\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/anchor\";\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:host(:not([inline])) {\r\n display: block;\r\n}\r\n\r\n:host([inline]) {\r\n display: inline;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\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 anchor.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-IntIoRef,\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-bottom: 0.75em;\r\n}\r\n\r\n.od-IntIoRef {\r\n border-bottom: 1px dotted;\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 margin-bottom: 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-bottom: 0.25rem;\r\n }\r\n }\r\n\r\n &.bijschrift-onder {\r\n .figuur-bijschrift {\r\n padding-top: 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-bottom: 0.5rem;\r\n }\r\n}\r\n\r\n.dso-ozon-lijst {\r\n span.od-Lijstaanhef,\r\n span.od-Lijstsluiting {\r\n margin-bottom: units.$u1;\r\n }\r\n\r\n ul {\r\n margin-bottom: units.$u1 !important;\r\n margin-top: units.$u1;\r\n\r\n p {\r\n margin-bottom: 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 left: units.$u6 * -1 + 4;\r\n text-align: right;\r\n width: 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-bottom: units.$u1;\r\n padding: units.$u1;\r\n}\r\n\r\np,\r\nspan[role=\"paragraph\"],\r\ntable {\r\n &.wijzigactie-voegtoe {\r\n @include insert.root();\r\n }\r\n\r\n &.wijzigactie-verwijder {\r\n @include delete.root();\r\n }\r\n}\r\n\r\nins.nieuwe-tekst {\r\n @include insert.element();\r\n @include insert.root();\r\n}\r\n\r\ndel.verwijderde-tekst {\r\n @include delete.root();\r\n}\r\n\r\n.dso-rich-content {\r\n @include rich-content.children();\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Event,\r\n EventEmitter,\r\n Prop,\r\n State,\r\n Fragment,\r\n JSX,\r\n Watch,\r\n} from \"@stencil/core\";\r\n\r\nimport { Mapper } from \"./ozon-content-mapper\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport {\r\n OzonContentAnchorClickEvent,\r\n OzonContentInputType,\r\n OzonContentMarkFunction,\r\n OzonContentMarkItemHighlightEvent,\r\n} from \"./ozon-content.interfaces\";\r\nimport { OzonContentNodeState } from \"./ozon-content-node-state.interface\";\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 * Emitted when `<a>` is clicked.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnchorClick!: EventEmitter<OzonContentAnchorClickEvent>;\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 emitAnchorClick: this.dsoAnchorClick.emit,\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 <>\r\n <dso-icon />\r\n <dso-image-overlay />\r\n <dso-tooltip />\r\n <dso-table />\r\n </>\r\n );\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-bottom: units.$u3;\r\n}\r\n\r\n.dso-header {\r\n min-height: 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 @include modal.root();\r\n\r\n inset: 0px;\r\n height: 100%;\r\n position: fixed;\r\n z-index: zindex.$modal;\r\n}\r\n\r\n.dso-modal .dso-dialog.dso-table-dialog {\r\n margin-top: 1rem;\r\n max-width: calc(100% - 2rem);\r\n margin-left: auto;\r\n margin-right: auto;\r\n inline-size: auto;\r\n\r\n .dso-body {\r\n $dso-body-unavailable-height: (2 * modal.$header-padding) + (modal.$footer-button-height + modal.$footer-padding);\r\n max-height: 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-width: 100%;\r\n }\r\n}\r\n\r\n:host([is-responsive]) {\r\n .dso-table-body {\r\n border: 1px solid table.$border-color;\r\n margin-bottom: 0;\r\n overflow-y: hidden;\r\n width: 100%;\r\n\r\n &.dso-body {\r\n width: 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-bottom: units.$u1;\r\n\r\n .dso-responsive-message {\r\n margin-bottom: 0;\r\n\r\n &:only-child {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .open-modal-button {\r\n &:only-child {\r\n margin-left: auto;\r\n }\r\n }\r\n}\r\n\r\n.dso-responsive-message {\r\n font-size: 0.8em;\r\n margin-bottom: 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: fade-out(modal-variables.$backdrop-bg, modal-variables.$backdrop-opacity);\r\n bottom: 0;\r\n display: block;\r\n left: 0;\r\n position: fixed;\r\n right: 0;\r\n top: 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 { h, Component, ComponentInterface, Element, Host, Prop, State } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } 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 /**\r\n * Indicates whether the table is currently horizontally scrollable.\r\n */\r\n @Prop({ reflect: true })\r\n isResponsive = false;\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>\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":"qRAAA,MAAMA,EAAW,+3B,MCQJC,EAAK,M,wEAoBhB,MAAAC,GACE,MAAMC,EAASF,EAAMG,UAAUC,IAAIC,KAAKH,QACxC,IAAKA,EAAQ,CACX,MAAM,IAAII,MAAM,kBAAkBD,KAAKH,S,CAGzC,OACEK,EAAA,OAAKC,MAAOC,EAAK,QAAS,SAASJ,KAAKH,UAAWQ,KAAML,KAAKM,UAAY,QAAUC,WAClFL,EAAA,YAAUM,KAAM,UAAYR,KAAKH,SACjCK,EAAA,QAAMC,MAAM,WAAWN,EAAM,KAC7BK,EAAA,a,GAjBSP,EAAAG,UAAY,IAAIW,IAAoB,CACjD,CAAC,UAAW,UACZ,CAAC,OAAQ,aACT,CAAC,UAAW,gBACZ,CAAC,QAAS,U,UCzBd,MAAMC,EAAsB,u71B,MCYfC,EAAgB,M,4DAmBnBX,KAAAY,YAAeC,IACrBb,KAAKc,SAASC,KAAK,CAAEC,cAAeH,EAAGI,MAAOjB,KAAKiB,MAAO,E,oCATrD,K,CAYP,MAAArB,GACE,OACEM,EAAA,UACEgB,KAAK,SACLf,MAAM,eAAc,gBACLH,KAAKmB,WAAU,gBACfnB,KAAKiB,KAAKG,WACzBC,QAASrB,KAAKY,aAEdV,EAAA,YAAUM,KAAK,UACfN,EAAA,QAAMC,MAAM,WAAS,wB,aC7C7B,MAAMmB,EAAW,sgC,MCQJC,EAAK,M,+CAOhB,MAAA3B,GACE,OACEM,EAAA,QAAMC,MAAOC,EAAK,YAAa,CAAE,CAAC,SAASJ,KAAKH,UAAWG,KAAKH,UAC9DK,EAAA,a,aClBR,MAAMsB,EAAkB,6zZ,MCSXC,EAAY,M,yBAgBfzB,KAAA0B,UAAgC,KAEhC1B,KAAA2B,eAAqC,K,YAbpC,M,cAGE,K,CAiBX,YAAAC,CAAaC,GACX,GAAIA,EAAMC,kBAAkBC,iBAAkB,CAC5C/B,KAAKgC,YAAYH,EAAMC,O,EAI3B,iBAAAG,GACEjC,KAAK0B,UAAY1B,KAAKkC,KAAKC,cAA8B,qBAEzDnC,KAAK2B,eAAiB3B,KAAKkC,KAAKC,cAA8B,yB,CAGhE,gBAAAC,GACEpC,KAAKqC,eAAiB,IAAIC,eACxBC,GAAS,KACP,MAAMC,EAAaxC,KAAKkC,KAAKC,cAAc,OAE3C,GAAIK,aAAsBT,iBAAkB,CAC1C/B,KAAKgC,YAAYQ,E,IAElB,MAGLxC,KAAKyC,iBAAmB,IAAIC,kBAAkB7B,I,QAC5C8B,EAAY3C,KAAKkC,MAEjB,KAAIU,EAAA/B,EAAE,MAAE,MAAA+B,SAAA,SAAAA,EAAE1B,QAAS,YAAa,EAC9B2B,EAAA7C,KAAKqC,kBAAc,MAAAQ,SAAA,SAAAA,EAAEC,aAErB9C,KAAK+C,mB,KAIT/C,KAAKyC,iBAAiBO,QAAQhD,KAAKkC,KAAM,CACvCe,WAAY,KACZC,QAAS,KACTC,gBAAiB,CAAC,MAAO,OACzBC,UAAW,OAGbpD,KAAK+C,mB,CAGP,oBAAAM,G,WACET,EAAA5C,KAAKsD,QAAI,MAAAV,SAAA,SAAAA,EAAEW,cACXV,EAAA7C,KAAKyC,oBAAgB,MAAAI,SAAA,SAAAA,EAAEC,cACvBU,EAAAxD,KAAKqC,kBAAc,MAAAmB,SAAA,SAAAA,EAAEV,Y,CAGf,iBAAAC,G,MACN,MAAMP,EAAaxC,KAAKkC,KAAKC,cAAc,OAE3C,KAAMK,aAAsBT,kBAAmB,CAC7C,M,CAIF,GAAIS,EAAWiB,SAAU,CACvBzD,KAAKgC,YAAYQ,E,EAGnBI,EAAA5C,KAAKqC,kBAAc,MAAAO,SAAA,SAAAA,EAAEI,QAAQR,E,CAGvB,WAAAR,CAAY0B,GAClB,MAAMC,MAAEA,EAAKC,aAAEA,EAAYC,OAAEA,EAAMC,cAAEA,GAAkBJ,EAEvD1D,KAAK+D,SAAWJ,EAAQC,GAAgBC,EAASC,C,CAGnD,MAAAlE,G,MACE,MAAMoE,IAAEA,EAAGC,IAAEA,IAAQrB,EAAA5C,KAAKkC,KAAKC,cAAc,UAAM,MAAAS,SAAA,EAAAA,EAAI,GAEvD,OACE1C,EAACgE,EAAI,CAAC7C,QAAS,SAAAuB,EAAM,OAAAA,EAAA5C,KAAKmE,iBAAa,MAAAvB,SAAA,SAAAA,EAAEwB,OAAO,GAC7CpE,KAAKqE,QAAUL,GAAOC,GACrB/D,EAAA,OAAKC,MAAM,UACTD,EAAA,OAAKC,MAAM,UAAUmE,IAAMC,GAAavE,KAAKwE,eAAiBD,GAC5DrE,EAAA,OAAKC,MAAM,QAAQsE,QAASzE,KAAK0B,WAC/BxB,EAAA,QAAMwE,KAAK,WAEbxE,EAAA,OAAK8D,IAAKA,EAAKC,IAAKA,IACpB/D,EAAA,UAAQgB,KAAK,SAASf,MAAM,QAAQkB,QAAS,IAAOrB,KAAKqE,OAAS,OAChEnE,EAAA,YAAUM,KAAK,UACfN,EAAA,wBAEFA,EAAA,OAAKC,MAAM,oBAAoBsE,QAASzE,KAAK2B,gBAC3CzB,EAAA,QAAMwE,KAAK,kBAKnBxE,EAAA,aACCF,KAAK+D,UACJ7D,EAAA,UACEgB,KAAK,SACLf,MAAM,OACNmE,IAAMC,GAAavE,KAAKmE,cAAgBI,EACxClD,QAAS,IAAOrB,KAAKqE,OAAS,MAE9BnE,EAAA,YAAUM,KAAK,kBACfN,EAAA,8C,CAOV,kBAAAyE,G,QACE,GAAI3E,KAAKqE,QAAUrE,KAAKwE,iBAAmBxE,KAAKsD,KAAM,CACpDtD,KAAKsD,KAAOsB,EAAgB5E,KAAKwE,eAAgB,CAC/CK,kBAAmB,KACnBC,wBAA0BjE,IACxB,GAAIA,aAAakE,YAAclE,EAAEmE,eAAe,KAAOhF,KAAKwE,eAAgB,CAC1ExE,KAAKqE,OAAS,MAEd,OAAO,K,CAGT,OAAO,IAAI,EAEbY,gBAAgBrC,EAAA5C,KAAKmE,iBAAa,MAAAvB,SAAA,EAAAA,EAAI,MACtCsC,aAAc,IAAOlF,KAAKqE,OAAS,QAClCc,U,MACE,IAAKnF,KAAKqE,QAAUrE,KAAKsD,KAAM,EACpCT,EAAA7C,KAAKsD,QAAI,MAAAT,SAAA,SAAAA,EAAEU,oBAEJvD,KAAKsD,I,wCCjKlB,MAAM8B,EAAW,6jDCiBjB,MAAM/C,EAAiB,IAAIC,eACzBC,GAAU8C,IACRA,EAAQC,SAAQ,EAAGxD,aACjB,GAAIyD,EAAoBzD,GAAS,CAC/BA,EAAO0D,gB,IAET,GACD,MAGL,SAASD,EAAoBhB,GAC3B,OAAOA,EAAQkB,UAAY,WAC7B,CAEA,SAASC,EAAYC,GACnB,OAAOA,EAAGC,YAAcD,EAAGE,WAC7B,C,MAOaC,EAAK,M,+RAmDF,M,eAGF,E,CAGZ,cAAAC,CAAeC,GACb,GAAIA,EAAW,CACbhG,KAAKiG,uB,KACA,CACLjG,KAAKkG,sB,EAKT,aAAAC,CAAcC,GACZ,GAAIA,EAAU,CACZpG,KAAKqG,e,KACA,CACLrG,KAAKsG,c,EAKT,eAAAC,CAAgB1E,GACd,GAAIA,EAAM2E,MAAQ,SAAU,CAC1BxG,KAAKyG,UAAY,MACjBzG,KAAK0G,UAAY,K,EAQrB,oBAAMlB,GACJmB,YAAW,KACT3G,KAAK4G,cAAgB5G,KAAK6G,cAAgBnB,EAAY1F,KAAK6G,aAAa,G,CAIpE,aAAAC,G,QACN9G,KAAK+G,WAAYlE,GAAAD,EAAA5C,KAAKkC,KAAK8E,eAAW,MAAApE,SAAA,SAAAA,EAAEqE,UAAM,MAAApE,SAAA,EAAAA,EAAI,E,CAGpD,gBAAAT,GACE,GAAIpC,KAAKoG,SAAU,CACjBpG,KAAKqG,e,CAGP,GAAIrG,KAAKgG,UAAW,CAClBhG,KAAKiG,uB,EAIT,oBAAA5C,GACErD,KAAKsG,eAELtG,KAAKkG,qBAAqB,K,CAIpB,qBAAAD,GACNjG,KAAKyC,iBAAmB,IAAIC,kBAAiB,IAAM1C,KAAK8G,kBAExD9G,KAAKyC,iBAAiBO,QAAQhD,KAAKkC,KAAM,CACvCgF,cAAe,KACf9D,UAAW,KACXF,QAAS,KACTD,WAAY,OAGdjD,KAAK8G,e,CAGC,oBAAAZ,CAAqBiB,EAAQ,O,MACnC,GAAIA,KAAWnH,KAAKoG,UAAYpG,KAAKgG,WAAY,EAC/CpD,EAAA5C,KAAKyC,oBAAgB,MAAAG,SAAA,SAAAA,EAAEE,oBAEhB9C,KAAKyC,gB,EAIR,aAAA4D,GACNhE,EAAeW,QAAQhD,KAAKkC,MAC5BlC,KAAKiG,wBACLjG,KAAKwF,gB,CAGC,YAAAc,GACNjE,EAAe+E,UAAUpH,KAAKkC,MAC9BlC,KAAKkG,uBACLlG,KAAK4G,YAAc,K,CAGrB,MAAAhH,GACE,OACEM,EAACmH,EAAQ,KACPnH,EAAA,2BACmB,gBACjBC,MAAOC,EAAK,YAAa,CACvB,CAAC,aAAaJ,KAAKH,UAAWG,KAAKH,OACnC,cAAeG,KAAKsH,UAAYtH,KAAKgG,UACrC,YAAahG,KAAKuH,aAAevH,KAAKwH,eAGxCtH,EAAA,QAAMwE,KAAK,WACXxE,EAAA,QACEC,MAAOC,EAAK,oBAAqB,CAC/B,iBAAkBJ,KAAKoG,WAEzB9B,IAAMC,GAAavE,KAAK6G,aAAetC,EACvCkD,SAAUzH,KAAKoG,UAAYpG,KAAK4G,YAAc,EAAIrG,UAClDmH,aAAc,IAAO1H,KAAKyG,UAAY,KACtCkB,aAAc,IAAO3H,KAAKyG,UAAY,MACtCmB,QAAS,IAAO5H,KAAK0G,UAAY,KACjCmB,OAAQ,IAAO7H,KAAK0G,UAAY,OAEhCxG,EAAA,cAEDF,KAAKgG,WACJ9F,EAAA,UACEgB,KAAK,SACLG,QAAUR,GAAMb,KAAK8H,eAAe/G,KAAKF,GACzC6G,aAAc,IAAO1H,KAAKuH,YAAc,KACxCI,aAAc,IAAO3H,KAAKuH,YAAc,MACxCK,QAAS,IAAO5H,KAAKwH,YAAc,KACnCK,OAAQ,IAAO7H,KAAKwH,YAAc,OAElCtH,EAAA,QAAMC,MAAM,WAAS,cAAaH,KAAK+G,WACvC7G,EAAA,YAAUM,KAAK,YAIpBR,KAAK4G,aACJ1G,EAAA,eACE6H,UAAS,KACTC,GAAG,gBACH3D,OAAQrE,KAAKyG,WAAazG,KAAK0G,UAC/BuB,SAAS,MACTC,SAAS,YAERlI,KAAK+G,W,sICzOFoB,EAAYC,GAC1B,GAAIA,aAAgBC,QAAS,CAC3B,OAAOD,EAAKE,S,CAGd,GAAIF,EAAKG,SAASC,SAAS,KAAM,CAC/B,OAAOJ,EAAKG,SAASE,UAAUL,EAAKG,SAASG,QAAQ,KAAO,E,CAG9D,OAAON,EAAKG,QACd,CCHA,SAASI,EAAWC,GAClB,OAAOA,EAAKC,MAAMC,IAChB,MAAMP,EAAWJ,EAAYW,GAE7B,OAAOP,IAAa,MAAQA,IAAa,WAAW,GAExD,C,MAEaQ,EAAb,WAAAC,GACEhJ,KAAA0E,KAAO,I,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,EAAYL,KAAEA,EAAIM,OAAEA,IAC1C,IAAIC,EAAUF,EAAab,EAAKgB,YAChC,MAAMC,EAAcjB,EAAKkB,aAAa,eAEtC,MAAMC,EAAYnJ,EAAK,CAAE,CAAC,eAAeiJ,OAAkBA,KAAkB9I,UAE7E,GAAI2I,GAAUP,EAAWC,GAAO,CAC9BO,EACEjJ,EAAA,QAAMG,KAAK,YAAYF,MAAOoJ,GAC3BJ,E,KAGA,CACLA,EAAUjJ,EAAA,KAAGC,MAAOoJ,GAAYJ,E,CAGlC,GAAIE,IAAgB,UAAW,CAC7BF,EAAUjJ,EAAA,WAAMiJ,E,MACX,GAAIE,IAAgB,YAAa,CACtCF,EAAUjJ,EAAA,WAAMiJ,E,CAGlB,OAAOA,C,QCnCEK,EAAb,WAAAR,GACEhJ,KAAA0E,KAAO,M,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,OAAO/I,EAAA,QAAMC,MAAM,iBAAiB8I,EAAab,EAAKgB,Y,QCJ7CK,EAAb,WAAAT,GACEhJ,KAAA0E,KAAO,W,CAEP,MAAA9E,CAAOwI,GAAYa,aAAEA,IACnB,OAAO/I,EAACmH,EAAQ,KAAE4B,EAAab,EAAKgB,Y,ECCxC,IAAIM,EAAW,EAAI,EAGnB,IAAIC,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,GAAa,MAAQN,EAAU,IAAMK,EAAS,IAC9CE,GAAc,KAAOrB,EAAgB,IACrCsB,GAAa,kCACbC,GAAa,qCACbC,GAAU,IAAMf,EAAe,IAC/BgB,GAAQ,UAGZ,IAAIC,GAAc,MAAQT,EAAU,IAAMC,EAAS,IAC/CS,GAAc,MAAQH,GAAU,IAAMN,EAAS,IAC/CU,GAAkB,MAAQhB,EAAS,yBACnCiB,GAAkB,MAAQjB,EAAS,yBACnCkB,GAAWV,GAAa,IACxBW,GAAW,IAAMrB,EAAa,KAC9BsB,GAAY,MAAQP,GAAQ,MAAQ,CAACJ,GAAaC,GAAYC,IAAYU,KAAK,KAAO,IAAMF,GAAWD,GAAW,KAClHI,GAAQH,GAAWD,GAAWE,GAC9BG,GAAU,MAAQ,CAACnB,EAAWM,GAAYC,IAAYU,KAAK,KAAO,IAAMC,GAG5E,IAAIE,GAASC,OAAOzB,EAAQ,KAM5B,IAAI0B,GAAcD,OAAOvB,EAAS,KAGlC,IAAIyB,GAAgBF,OAAO,CACzBb,GAAU,IAAMP,EAAU,IAAMW,GAAkB,MAAQ,CAACf,EAASW,GAAS,KAAKS,KAAK,KAAO,IAC9FN,GAAc,IAAME,GAAkB,MAAQ,CAAChB,EAASW,GAAUE,GAAa,KAAKO,KAAK,KAAO,IAChGT,GAAU,IAAME,GAAc,IAAME,GACpCJ,GAAU,IAAMK,GAChBd,EACAoB,IACAF,KAAK,KAAM,KAGb,IAAIO,GAAmB,sEAGvB,IAAIC,GAAkB,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,UAAoBC,GAAU,UAAYA,GAAUA,EAAOC,SAAWA,QAAUD,EAGpF,IAAIE,UAAkBC,MAAQ,UAAYA,MAAQA,KAAKF,SAAWA,QAAUE,KAG5E,IAAIC,GAAOL,IAAcG,IAAYG,SAAS,cAATA,GAcrC,SAASC,GAAYC,EAAOC,EAAUC,EAAaC,GACjD,IAAIC,GAAS,EACTC,EAASL,EAAQA,EAAMK,OAAS,EAEpC,GAAIF,GAAaE,EAAQ,CACvBH,EAAcF,IAAQI,EAC1B,CACE,QAASA,EAAQC,EAAQ,CACvBH,EAAcD,EAASC,EAAaF,EAAMI,GAAQA,EAAOJ,EAC7D,CACE,OAAOE,CACT,CASA,SAASI,GAAWC,GAClB,OAAOA,EAAOC,MAAM5D,IAAgB,EACtC,CASA,SAAS6D,GAAeC,GACtB,OAAO,SAASlH,GACd,OAAOkH,GAAU,KAAOnN,UAAYmN,EAAOlH,EAC/C,CACA,CAUA,IAAImH,GAAeF,GAAelB,IASlC,SAASqB,GAAeL,GACtB,OAAOjB,GAAiBuB,KAAKN,EAC/B,CASA,SAASO,GAAaP,GACpB,OAAOA,EAAOC,MAAMnB,KAAkB,EACxC,CAGA,IAAI0B,GAAcrB,OAAOsB,UAOzB,IAAIC,GAAiBF,GAAY3M,SAGjC,IAAI8M,GAASrB,GAAKqB,OAGlB,IAAIC,GAAcD,GAASA,GAAOF,UAAYzN,UAC1C6N,GAAiBD,GAAcA,GAAY/M,SAAWb,UAU1D,SAAS8N,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,IAAW5E,EAAY,KAAO+E,CAC9D,CASA,SAASC,GAAiBC,GACxB,OAAO,SAASpB,GACd,OAAOR,GAAY6B,GAAMC,GAAOtB,GAAQuB,QAAQ5C,GAAQ,KAAMyC,EAAU,GAC5E,CACA,CA0BA,SAASI,GAAaT,GACpB,QAASA,UAAgBA,GAAS,QACpC,CAmBA,SAASC,GAASD,GAChB,cAAcA,GAAS,UACpBS,GAAaT,IAAUL,GAAeO,KAAKF,IAAU3E,CAC1D,CAuBA,SAASvI,GAASkN,GAChB,OAAOA,GAAS,KAAO,GAAKD,GAAaC,EAC3C,CAoBA,SAASO,GAAOtB,GACdA,EAASnM,GAASmM,GAClB,OAAOA,GAAUA,EAAOuB,QAAQjF,EAAS8D,IAAcmB,QAAQ1C,GAAa,GAC9E,CAuBA,IAAI4C,GAAYN,IAAiB,SAASD,EAAQQ,EAAM7B,GACtD,OAAOqB,GAAUrB,EAAQ,IAAM,IAAM6B,EAAKC,aAC5C,IAqBA,SAASN,GAAMrB,EAAQ4B,EAASC,GAC9B7B,EAASnM,GAASmM,GAClB4B,EAAUC,EAAQ7O,UAAY4O,EAE9B,GAAIA,IAAY5O,UAAW,CACzB,OAAOqN,GAAeL,GAAUO,GAAaP,GAAUD,GAAWC,EACtE,CACE,OAAOA,EAAOC,MAAM2B,IAAY,EAClC,CAEA,IAAAE,GAAiBL,G,MC5aJM,GAAb,WAAAtG,GACEhJ,KAAA0E,KAAO,CAAC,SAAU,W,CAElB,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,MAAMsG,EAAOnH,EAAK3C,UAAY,WAAa2C,EAAKkB,aAAa,QAAUlB,EAAKkB,aAAa,OACzF,MAAMC,EAAYyF,GAAU5G,EAAK3C,SAEjC,OACEvF,EAAA,KAAG4B,OAAO,SAAS0N,IAAI,sBAAsBD,KAAMA,IAAI,MAAJA,SAAI,EAAJA,EAAQhP,UAAWJ,MAAOoJ,GAC1EN,EAAab,EAAKgB,Y,IAAalJ,EAAA,QAAMC,MAAM,WAAS,2CACrDD,EAAA,YAAUM,KAAK,kB,QCVViP,GAAb,WAAAzG,GAEEhJ,KAAA0E,KAAO,CAAC,a,CAER,MAAA9E,CAAOwI,GAAYa,aAAEA,IACnB,OAAO/I,EAAA,QAAMC,MAAO,eAAegI,EAAYC,MAAUa,EAAab,EAAKgB,Y,ECM/E,MAAMsG,GAAa,EAAGC,aAAYC,OAAM3G,kBAEpC/I,EAAA,QAAMC,MAAM,qBACTwP,GAAcA,EAAWE,QAAU5G,EAAa0G,EAAWE,QAC3DD,GACC1P,EAACmH,EAAQ,KACN,GAAGsI,EAAa,IAAM,YACtB1G,EAAa2G,G,YAOXE,GAAb,WAAA9G,GACEhJ,KAAA0E,KAAO,CAAC,S,CAER,kBAAAqL,CAAmBrM,EAAgCsM,GACjD,MAAMlM,cAAEA,EAAaF,aAAEA,GAAiBF,EAExCA,EAAaG,OAASC,GAAiBkM,EAAS,KAChDtM,EAAaC,MAAQC,GAAgBoM,EAAS,I,CAGhD,WAAAC,CAAYpO,EAAcmO,GACxB,GAAInO,EAAMC,kBAAkBC,kBAAoBiO,EAAQ,CACtDhQ,KAAK+P,mBAAmBlO,EAAMC,OAAQkO,E,EAI1C,MAAApQ,CAAOwI,GAAea,aAAEA,I,gBACtB,MAAMG,EAAa8G,MAAMC,KAAK/H,EAAKgB,YACnC,MAAMgH,GAAQxN,EAAAwG,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,aAAQ,MAAAlG,SAAA,SAAAA,EAAEoE,YAClE,MAAM4I,EAAOxG,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,SAEvD,MAAMwH,EAAkBlH,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,gBAClE,MAAMyH,EAAiBnH,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,eAEjE,GAAIwH,aAA2BjI,QAAS,CACtC,MAAMmI,EAAc,CAClBC,KAAMH,EAAgBhH,aAAa,QACnCoH,QAASJ,EAAgBhH,aAAa,WACtCqH,OAAQL,EAAgBhH,aAAa,UACrCsH,WAAYN,EAAgBhH,aAAa,cACzCrF,IAAKqM,EAAgBhH,aAAa,OAClC0G,OAAQM,EAAgBhH,aAAa,WAGvC,MAAMqG,EACJY,aAA0BlI,QACtB,CACEwH,OAAQU,EAAenH,WACvByH,SAAShO,EAAA0N,EAAejH,aAAa,cAAU,MAAAzG,SAAA,EAAAA,EAAI,SAErDtC,UAEN,OACEL,EAAA,OAAKC,MAAO,mBAAmBwP,EAAa,cAAcA,EAAWkB,UAAY,WAC9ET,GAASlQ,EAAA,QAAMC,MAAM,gBAAgBiQ,IACrCT,IAAU,MAAVA,SAAU,SAAVA,EAAYkB,WAAY,SACvB3Q,EAACwP,GAAU,CAACC,WAAYA,EAAYC,KAAMA,EAAM3G,aAAcA,IAEhE/I,EAAA,yBACGkQ,GACClQ,EAAA,OAAK4Q,KAAK,SACR5Q,EAAA,YAAOkQ,IAGXlQ,EAAA,OACE8D,KAAKR,EAAAgN,EAAYC,QAAI,MAAAjN,SAAA,EAAAA,EAAIjD,UACzB0D,KAAK8M,GAAAC,GAAAC,EAAAT,EAAYvM,OAAG,MAAAgN,SAAA,EAAAA,EAAIb,KAAK,MAAAY,SAAA,EAAAA,EAAIR,EAAYC,QAAI,MAAAM,SAAA,EAAAA,EAAIxQ,UACrD2Q,OAASrP,GAAiB7B,KAAKiQ,YAAYpO,EAAOsP,OAAOX,EAAYR,YAErEL,GAAcC,IACd1P,EAAA,OAAK4Q,KAAK,cACR5Q,EAACwP,GAAU,CAACC,WAAYA,EAAYC,KAAMA,EAAM3G,aAAcA,QAIlE0G,IAAU,MAAVA,SAAU,SAAVA,EAAYkB,WAAY,UAAalB,GAAcC,IACnD1P,EAACwP,GAAU,CAACC,WAAYA,EAAYC,KAAMA,EAAM3G,aAAcA,I,SC5F7DmI,GAAb,WAAApI,GACEhJ,KAAA0E,KAAO,CAAC,SAAU,sBAAuB,uD,CAEzC,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,OAAO/I,EAAA,OAAKC,MAAM,oBAAoB8I,EAAab,EAAKgB,Y,QCL/CiI,GAAb,WAAArI,GACEhJ,KAAA0E,KAAO,CAAC,wBAAyB,c,CAEjC,MAAA9E,CAAOwI,G,YACL,OACElI,EAAA,OACE8D,KAAKpB,EAAAwF,EAAKkB,aAAa,WAAO,MAAA1G,SAAA,EAAAA,EAAIrC,UAClC0D,KAAKpB,EAAAuF,EAAKkB,aAAa,WAAO,MAAAzG,SAAA,EAAAA,EAAItC,UAClCsD,QAAQL,EAAA4E,EAAKkB,aAAa,aAAS,MAAA9F,SAAA,EAAAA,EAAIjD,UACvCoD,OAAOsN,EAAA7I,EAAKkB,aAAa,cAAU,MAAA2H,SAAA,EAAAA,EAAI1Q,W,QCRlC+Q,GAAb,WAAAtI,GACEhJ,KAAA0E,KAAO,CAAC,MAAO,MAAO,SAAU,IAAK,IAAK,IAAK,K,CAE/C,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,GAAIb,EAAKE,YAAc,KAAM,CAC3B,OAAOpI,EAAA,U,CAGT,MAAMqR,EAAMnJ,EAAKE,UAEjB,OAAOpI,EAACqR,EAAG,KAAEtI,EAAab,EAAKgB,Y,QCVtBoI,GAAb,WAAAxI,GACEhJ,KAAA0E,KAAO,U,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,EAAYwI,gBAAEA,IACpC,MAAMnN,EAAM8D,EAAKkB,aAAa,OAC9B,IAAKhF,EAAK,CACR,OAAO2E,EAAab,EAAKgB,W,CAG3B,MAAMsI,EAAiB7P,IACrBA,EAAM8P,iBAEN,MAAM7P,EAASD,EAAM+P,cACrB,KAAM9P,aAAkB+P,mBAAoB,CAC1C,M,CAGF,MAAMtC,KAAEA,GAASzN,EAEjB2P,EAAgB,CACdrJ,KAAMpI,KAAK0E,KACX6K,OACAuC,kBAAmBxN,EACnBtD,cAAea,GACf,EAGJ,OACE3B,EAAA,KAAGqP,KAAM,IAAIjL,IAAOjD,QAASqQ,GAC1BzI,EAAab,EAAKgB,Y,QC7Bd2I,GAAb,WAAA/I,GACEhJ,KAAA0E,KAAO,Q,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,EAAYwI,gBAAEA,IACpC,MAAMnN,EAAM8D,EAAKkB,aAAa,OAC9B,IAAKhF,EAAK,CACR,OAAO2E,EAAab,EAAKgB,W,CAG3B,MAAMsI,EAAiB7P,IACrBA,EAAM8P,iBAEN,MAAM7P,EAASD,EAAM+P,cACrB,KAAM9P,aAAkB+P,mBAAoB,CAC1C,M,CAGF,MAAMtC,KAAEA,GAASzN,EAEjB2P,EAAgB,CACdrJ,KAAMpI,KAAK0E,KACX6K,OACAuC,kBAAmBxN,EACnBtD,cAAea,GACf,EAGJ,OACE3B,EAAA,KAAGqP,KAAM,IAAIjL,IAAOjD,QAASqQ,GAC1BzI,EAAab,EAAKgB,Y,QC5Bd4I,GAAb,WAAAhJ,GACEhJ,KAAA0E,KAAO,O,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,I,MACtB,MAAMG,EAAa8G,MAAMC,KAAK/H,EAAKgB,YACnC,MAAM6I,EAAS7I,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,gBACzD,MAAMoJ,EAAW9I,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,kBAC3D,MAAMqJ,EAAY/I,EAAWgJ,QAAQtJ,GAAMX,EAAYW,KAAO,OAE9D,OACE5I,EAAA,OAAKC,MAAM,2BACR8R,GAAUhJ,EAAagJ,GACxB/R,EAAA,MAAIC,OAAOyC,EAAAwF,EAAKkB,aAAa,WAAO,MAAA1G,SAAA,EAAAA,EAAI,IACrCuP,EAAUE,KAAKC,I,MACd,MAAMC,EAAYrC,MAAMC,KAAKmC,EAAKlJ,YAClC,MAAMoJ,GAAW5P,EAAA2P,EAAUlC,MAAMvH,GAAMX,EAAYW,KAAO,gBAAW,MAAAlG,SAAA,SAAAA,EAAEwG,WAEvE,OACElJ,EAAA,MAAIC,MAAM,SACPqS,GAAYtS,EAAA,QAAMC,MAAM,eAAe8I,EAAauJ,IACpDvJ,EAAasJ,EAAUH,QAAQtJ,GAAMX,EAAYW,KAAO,cACtD,KAIVoJ,GAAYjJ,EAAaiJ,G,QC1BrBO,GAAb,WAAAzJ,GACEhJ,KAAA0E,KAAO,a,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,OAAO/I,EAAA,OAAKC,MAAM,gBAAgB8I,EAAab,EAAKgB,Y,QCH3CsJ,GAAb,WAAA1J,GACEhJ,KAAA0E,KAAO,OAEP1E,KAAA2S,QAAU,CAAC,a,CAEX,QAAAC,GACE,MAAO,M,CAGT,MAAAhT,CAAOwI,GAAea,aAAEA,EAAc4J,MAAOC,EAAUC,SAAEA,I,QACvD,MAAMC,EAAS5K,EAAKkB,aAAa,MACjC,IAAK0J,EAAQ,CACXC,QAAQC,MAAM,uBAAwB9K,GAEtC,OAAOlI,EAACmH,EAAQ,K,CAGlB,MAAM8L,EAAiB,iBAAiBH,IAExC,MAAM5J,EAAa8G,MAAMC,KAAK/H,EAAKgB,YACnC,MAAMgK,GAAavQ,GAAAD,EAAAwG,EAAWiH,MAAMvH,GAAMX,EAAYW,KAAO,kBAAa,MAAAlG,SAAA,SAAAA,EAAEoE,eAAW,MAAAnE,SAAA,EAAAA,EAAImQ,EAE3F,OACE9S,EAAAmH,EAAA,KACEnH,EAAA,WACEA,EAAA,UACEgB,KAAK,SACLf,MAAM,cAAa,mBACDgT,EAClB9R,QAAS,IAAM0R,IAAQ,MAARA,SAAQ,SAARA,EAAWD,IAAeE,EAASzS,UAAYyS,GAC9DnL,OAAQ,IAAMkL,IAAQ,MAARA,SAAQ,SAARA,EAAWxS,WAAU,gBACpBuS,IAAeE,EAAS,OAAS,SAE/CI,IAGLlT,EAAA,eAAamE,OAAQyO,IAAeE,EAAQhL,GAAImL,EAAgBpL,UAAS,KAACsL,YAAW,MACnFnT,EAAA,QAAMG,KAAK,WAAW4I,EAAaiH,MAAMC,KAAK/H,EAAKkL,iBAAiB,mB,QCtCjEC,GAAb,WAAAvK,GACEhJ,KAAA0E,KAAO,W,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,IAAIE,EAAUF,EAAab,EAAKgB,YAChC,MAAMC,EAAcjB,EAAKkB,aAAa,eAEtC,GAAID,IAAgB,UAAW,CAC7BF,EAAUjJ,EAAA,OAAKC,MAAM,gBAAgBgJ,E,MAChC,GAAIE,IAAgB,YAAa,CACtCF,EAAUjJ,EAAA,OAAKC,MAAM,qBAAqBgJ,E,CAG5C,OAAOjJ,EAAAmH,EAAA,KAAG8B,E,WChBEqK,GAAYC,EAAeC,GACzC,MAAMC,EAAWzD,MAAMC,KAAKuD,GAC5B,MAAME,EAAaC,GAAcF,GAEjC,MAAO,CACLC,aACAH,QACAK,QAASH,EAAStB,KAAI,CAAC9N,EAAS6I,K,MAC9B,MAAM2G,EAAYxP,EAAQ+E,aAAa,UAEvC,MAAO,CACL5E,MAAM9B,EAAA2B,EAAQ+E,aAAa,cAAU,MAAA1G,SAAA,EAAAA,EAAI,GACzCoR,OAAQD,EAAYE,SAASF,EAAW,IAAM3G,EAAQ,EACtDzJ,MAAOuQ,GAASN,EAAYrP,GAC7B,IAGP,CAEA,SAASsP,GAAcF,GACrB,OAAOA,EAASQ,QAAO,CAACP,EAAYrP,K,QAClC,MAAMZ,GAAQd,GAAAD,EAAA2B,EAAQ+E,aAAa,eAAW,MAAA1G,SAAA,SAAAA,EAAEkM,QAAQ,SAAU,OAAG,MAAAjM,SAAA,EAAAA,EAAI,GACzE,MAAMuR,EAAWH,SAAStQ,EAAO,IAEjC,OAAOiQ,GAAcS,MAAMD,GAAY,EAAIA,EAAS,GACnD,EACL,CAEA,SAASF,GAASN,EAAoBrP,GACpC,MAAMZ,EAAQY,EAAQ+E,aAAa,YAEnC,IAAK3F,EAAO,CACV,OAAOpD,S,CAGT,GAAIoD,IAAU,IAAK,CACjB,MAAO,M,CAGT,GAAIA,EAAM6E,SAAS,MAAQ7E,EAAM6J,MAAM,WAAY,CACjD,MAAM4G,EAAWH,SAAStQ,EAAMmL,QAAQ,SAAU,IAAK,IAEvD,MAAO,GAAGwF,KAAKC,MAAOH,EAAWR,EAAc,O,CAGjD,OAAOjQ,CACT,CC5CO,MAAM6Q,GAAwD,EAAGC,cACtEA,EAASX,QAAQzG,OAAS,EACxBnN,EAAA,gBACGuU,EAASX,QAAQzB,KAAKqC,GACrBxU,EAAA,OAAKyU,MAAO,CAAEhR,MAAO+Q,EAAQ/Q,YAIjCzD,EAACmH,EAAQ,MCNb,SAASuN,GAAQC,GACf,MAAO,CACLC,SAAUD,EAAKvL,aAAa,YAC5ByL,UAAWF,EAAKvL,aAAa,UAC7B0L,QAASH,EAAKvL,aAAa,WAE/B,CAEA,SAAS2L,IAAWnB,QAAEA,GAAqBiB,EAAmBC,GAC5D,MAAME,EAAepB,EAAQzD,MAAM8E,GAAMA,EAAEzQ,OAASqQ,IACpD,MAAMK,EAAatB,EAAQzD,MAAM8E,GAAMA,EAAEzQ,OAASsQ,IAClD,IAAKE,IAAiBE,EAAY,CAChC,OAAO7U,S,CAGT,MAAM8U,EAAUD,EAAWpB,OAASkB,EAAalB,OAAS,EAE1D,OAAOqB,IAAY,EAAI9U,UAAY8U,CACrC,CAEO,MAAMC,GAIR,EAAGC,SAAWtM,gBAAgBwL,WAAUI,WAC3C,MAAMC,SAAEA,EAAQC,UAAEA,EAASC,QAAEA,GAAYJ,GAAQC,GAEjD,MAAMW,EAAqD,CACzDC,QAASX,EAAWb,SAASa,EAAU,IAAM,EAAIvU,UACjDmV,QAASjB,GAAYM,GAAaC,EAAUC,GAAWR,EAAUM,EAAWC,GAAWzU,WAGzF,OAAOL,EAAA,KAAAwM,OAAAiJ,OAAA,GAAQH,GAAKvM,EAAa4L,EAAKzL,YAAiB,EC/BlD,MAAMwM,GAIR,EAAGL,UAASd,WAAUoB,UAEvB3V,EAAAmH,EAAA,KACGwO,EAAKxD,KAAKyD,GACT5V,EAAA,UACGgQ,MAAMC,KAAK2F,EAAIC,UAAU1D,KAAKwC,GAC7B3U,EAACoV,GAAI,CAACT,KAAMA,EAAMJ,SAAUA,EAAUc,QAASA,UCL3D,SAASS,GAAQ5N,G,UACf,MAAM6N,EAAS7N,EAAKjG,cAAc,mBAClC,MAAM+T,GAAetT,EAAAqT,IAAM,MAANA,SAAM,SAANA,EAAQ3M,aAAa,WAAO,MAAA1G,SAAA,EAAAA,EAAIrC,UACrD,MAAM4V,EAAcD,EAAejC,SAASiC,EAAc,IAAM3V,UAEhE,MAAO,CACL6V,SAAS5S,GAAAX,EAAAuF,EAAKjG,cAAc,qBAAiB,MAAAU,SAAA,SAAAA,EAAEmE,eAAW,MAAAxD,SAAA,EAAAA,EAAIjD,UAC9DkU,SAAUwB,GAAUE,EAAc3C,GAAY2C,EAAaF,EAAO3C,iBAAiB,qBAAuB/S,UAC1G8V,SAAUnG,MAAMC,KAAK/H,EAAKkL,iBAAiB,kCAC3CgD,SAAUpG,MAAMC,KAAK/H,EAAKkL,iBAAiB,kCAC3CiD,WAAYnO,EAAKkB,aAAa,eAElC,C,MAEakN,GAAb,WAAAxN,GACEhJ,KAAA0E,KAAO,QAEP1E,KAAA2S,QAAU,CAAC,QAAS,SAAU,UAAW,QAAS,QAAS,MAAO,QAElE3S,KAAAgI,GAAKyO,G,CAEL,MAAA7W,CAAOwI,EAAemN,GACpB,MAAMa,QAAEA,EAAO3B,SAAEA,EAAQ4B,SAAEA,EAAQC,SAAEA,EAAQC,WAAEA,GAAeP,GAAQ5N,GAEtE,MAAMwH,EAAOM,MAAMC,KAAK/H,EAAKgB,YAAYiH,MAAMvH,GAAMX,EAAYW,KAAO,SAExE,OACE5I,EAAA,iBACEA,EAAA,QAAAwM,OAAAiJ,OAAA,CACExV,MAAOC,EAAK,iCAAkC,CAC5C,CAAC,eAAemW,KAAeA,KAE5B3G,EAAO,CAAE,mBAAoB5P,KAAKgI,IAAO,IAE7CoO,GAAWlW,EAAA,eAAUkW,GACrB3B,GAAYvU,EAACsU,GAAQ,CAACC,SAAUA,IAChC4B,EAAShJ,OAAS,GACjBnN,EAAA,aACEA,EAAC0V,GAAI,CAACC,KAAMQ,EAAU5B,SAAUA,EAAUc,QAASA,KAGtDe,EAASjJ,OAAS,GACjBnN,EAAA,aACEA,EAAC0V,GAAI,CAACC,KAAMS,EAAU7B,SAAUA,EAAUc,QAASA,MAIxD3F,GAAQ1P,EAAA,OAAK8H,GAAIhI,KAAKgI,IAAKuN,EAAQtM,aAAa2G,I,QCtD5C8G,GAAb,WAAA1N,GACEhJ,KAAA0E,KAAO,O,CAEP,MAAA9E,EAAOoH,YAAEA,IAAqB2P,KAAEA,EAAIC,sBAAEA,IACpC,IAAKD,IAAS3P,EAAa,CACzB,OAAO9G,EAAAmH,EAAA,KAAGL,E,CAGZ,MAAMyH,EAASkI,EAAK3P,GAEpB,OAAQyH,GAAUA,EAAOpB,SAAW,EAClCnN,EAAAmH,EAAA,KAAGL,GAEH9G,EAAAmH,EAAA,KACGoH,EAAO4D,KAAK/D,IACX,UAAWA,IAAU,SAAU,CAC7B,OAAOpO,EAAAmH,EAAA,KAAGiH,E,CAGZ,OACEpO,EAAA,QACEC,MAAOmO,EAAMuI,UAAY,gBAAkBtW,UAC3C+D,IAAMA,GAAQgK,EAAMuI,WAAavS,GAAOsS,EAAsBtI,EAAMwI,KAAMxS,IAEzEgK,EAAMwI,KACF,I,QCzBNC,GAAb,WAAA/N,GACEhJ,KAAA0E,KAAO,kB,CAEP,MAAA9E,CAAOwI,GAAea,aAAEA,IACtB,OAAO/I,EAAA,OAAKC,MAAM,qBAAqB8I,EAAab,EAAKgB,Y,QCgBhD4N,GAAb,WAAAhO,GACUhJ,KAAAiX,QAA6B,CACnC,IAAIP,GACJ,IAAIjN,EACJ,IAAI2H,GACJ,IAAImC,GACJ,IAAIxB,GACJ,IAAIzC,GACJ,IAAIvG,EACJ,IAAIuI,GACJ,IAAID,GACJ,IAAIqB,GACJ,IAAI8D,GACJ,IAAIhF,GACJ,IAAI1B,GACJ,IAAIkC,GACJ,IAAIxI,EACJ,IAAIiJ,GACJ,IAAIsE,IAGE/W,KAAAkX,KAAOlX,KAAKiX,QAAQ9C,QAAiB,CAACgD,EAAGC,KAC/C,GAAIA,EAAEzE,QAAS,CACbwE,EAAEE,QAAQD,EAAEzE,Q,CAGd,OAAOwE,CAAC,GACP,IAEKnX,KAAAsX,aAAe,IAAI7H,E,CAInB,UAAA8H,CAAW7S,G,MACjB,GAAI1E,KAAKkX,KAAK1O,SAAS9D,GAAO,CAC5B,OAAOnE,S,CAGT,OACEqC,EAAA5C,KAAKiX,QAAQ5G,MAAM+G,IACjB,GAAIlH,MAAMsH,QAAQJ,EAAE1S,MAAO,CACzB,OAAO0S,EAAE1S,KAAK8D,SAAS9D,E,CAGzB,OAAO0S,EAAE1S,OAASA,CAAI,OACtB,MAAA9B,SAAA,EAAAA,EAAI5C,KAAKsX,Y,CAIf,YAAArO,CAAab,EAAgCmN,EAA6B3M,G,MACxE,GAAIR,aAAgBqP,SAAU,CAC5B,OAAOvX,EAACmH,EAAQ,KAAE6I,MAAMC,KAAK/H,GAAMiK,KAAKvJ,GAAM9I,KAAKiJ,aAAaH,EAAGyM,EAAS3M,K,CAG9E,GAAIsH,MAAMsH,QAAQpP,GAAO,CACvB,OAAOlI,EAACmH,EAAQ,KAAEe,EAAKiK,KAAKvJ,GAAM9I,KAAKiJ,aAAaH,EAAGyM,EAAS3M,K,CAGlE,MAAML,EAAWJ,EAAYC,GAC7B,MAAMsP,EAAS1X,KAAKuX,WAAWhP,GAC/B,IAAKmP,EAAQ,CACX,OAAOxX,EAACmH,EAAQ,K,CAGlB,MAAMsQ,GAAW/U,EAAA8U,EAAO9E,YAAQ,MAAAhQ,SAAA,SAAAA,EAAA4L,KAAAkJ,EAAGtP,GAEnC,MAAMyK,EAAQ8E,EAAWpC,EAAQ1C,MAAM8E,GAAYpX,UACnD,MAAMwS,EAAW4E,EAAYC,GAAerC,EAAQxC,SAAQrG,OAAAiJ,OAAAjJ,OAAAiJ,OAAA,GAAMJ,EAAQ1C,OAAK,CAAE8E,CAACA,GAAWC,KAAOrX,UAEpG,OAAOmX,EAAO9X,OAAOwI,EAAM,CACzBc,OAAQqM,EAAQrM,OAChByN,KAAMpB,EAAQoB,KACd1N,aAAeH,GAAM9I,KAAKiJ,aAAaH,EAAGyM,EAAS,IAAI3M,EAAMR,IAC7DqJ,gBAAiB8D,EAAQ9D,gBACzBsB,WACA6D,sBAAuBrB,EAAQqB,sBAC/B/D,QACAjK,Q,CAIJ,SAAAiP,CAAUC,EAAyCvC,GACjD,IAAKuC,EAAO,CACV,OAAO5X,EAACmH,EAAQ,K,CAGlB,MAAM0Q,EAAW/X,KAAKgY,mBAAmBF,GACzC,GAAIC,EAAS5V,cAAc,eAAgB,CACzC8Q,QAAQC,MAAM,CACZ+E,QAAS,yDACT1C,UACAuC,QACAC,aAGF,OAAO7X,EAACmH,EAAQ,K,CAGlB,OAAOrH,KAAKiJ,aAAa8O,EAASG,cAAe3C,EAAS,G,CAGpD,kBAAAyC,CAAmBF,G,MACzB,GAAIA,aAAiBK,YAAa,CAChC,OAAOL,C,CAGT,UAAWA,IAAU,SAAU,EAC7BlV,EAAA5C,KAAKoY,aAAS,MAAAxV,SAAA,EAAAA,EAAd5C,KAAKoY,UAAc,IAAIC,UAEvB,OAAOrY,KAAKoY,UAAUE,gBAAgBR,EAAO,W,CAG/C,OAAOC,SAASQ,eAAeC,eAAe,KAAM,K,ECzIxD,MAAMC,GAAiB,yq/CCuBvB,MAAMf,GAAS,IAAIV,G,MAON0B,GAAW,M,yJAuCd1Y,KAAA2Y,wBAA0B,CAAC7B,EAAc8B,KAC/C5Y,KAAK6Y,gCAAgC9X,KAAK,CAAE+V,OAAM8B,cAAa,E,mCA7BxD,M,+BA0BqB,E,CAL9B,cAAAE,GACE9Y,KAAK6S,MAAQ,E,CAUf,MAAAjT,GACE,MAAM2V,EAA8B,CAClC1C,MAAO7S,KAAK6S,MACZ3J,OAAQlJ,KAAKkJ,OACbyN,KAAM3W,KAAK2W,KACX5D,SAAWF,GAAW7S,KAAK6S,MAAQA,EACnC+D,sBAAuB5W,KAAK2Y,wBAC5BlH,gBAAiBzR,KAAK+Y,eAAehY,MAGvC,MAAMiY,EAActB,GAAOG,UAAU7X,KAAKmJ,QAASoM,GAEnD,OAAOrV,EAACmH,EAAQ,KAAE2R,E,wECrFtB,MAAMC,GAAW,ktlC,MCUJC,GAAK,M,yBASRlZ,KAAAmZ,aAAeC,I,aASb,M,kBAMK,M,iBAGD,M,iCAKN,uBAAAC,G,OACNzW,EAAA5C,KAAKqC,kBAAc,MAAAO,SAAA,SAAAA,EAAEI,QAAQhD,KAAKkC,K,CAGpC,iBAAAoX,GACEtZ,KAAKqC,eAAiB,IAAIC,eAAeC,GAAU8C,GAAYrF,KAAKuZ,mBAAmBlU,IAAU,K,CAGnG,gBAAAjD,GACEpC,KAAKqZ,yB,CAGP,kBAAA1U,GACE3E,KAAKwZ,c,CAGP,oBAAAnW,G,OACET,EAAA5C,KAAKqC,kBAAc,MAAAO,SAAA,SAAAA,EAAEE,Y,CAGvB,MAAAlD,G,QACE,MAAMwW,GAAUvT,GAAAD,EAAA5C,KAAKkC,KAAKC,cAAc,+BAA2B,MAAAS,SAAA,SAAAA,EAAEoE,eAAW,MAAAnE,SAAA,SAAAA,EAAEoE,OAElF,OACE/G,EAACgE,EAAI,KACFlE,KAAKyZ,aAAezZ,KAAK0Z,mBACxBxZ,EAAA,OAAKC,MAAM,wBAAwBwU,MAAO,CAAE9Q,OAAQ,GAAG7D,KAAK0Z,yBAG7D1Z,KAAKyZ,aAAevZ,EAAA,OAAKC,MAAM,sBAEhCD,EAAA,OAAKC,MAAO,CAAE,YAAaH,KAAKyZ,cAC9BvZ,EAAA,MAAAwM,OAAAiJ,OAAA,CACExV,MAAO,CAAE,aAAcH,KAAKyZ,YAAa,mBAAoB,MAC7DnV,IAAMC,GAAavE,KAAK2Z,iBAAmBpV,GACtCvE,KAAKyZ,YAAc,CAAE,CAAC,mBAAoBzZ,KAAKmZ,aAAc9Y,KAAM,UAAa,KAEnFL,KAAK4Z,eAAiB5Z,KAAK6Z,UAC3B3Z,EAAA,OAAKC,MAAM,sBAAsBwU,MAAO3U,KAAKyZ,YAAc,CAAEK,QAAS,QAAWvZ,WAC9EP,KAAK4Z,cACJ1Z,EAAA,OAAKC,MAAM,0BACTD,EAAA,uDAIFF,KAAK6Z,SACL3Z,EAAA,UACEgB,KAAK,SACLf,MAAM,iCACNmE,IAAMC,GAAavE,KAAKmE,cAAgBI,EACxClD,QAAS,IAAMrB,KAAK+Z,aAEpB7Z,EAAA,QAAMC,MAAM,WAAS,SAAQiW,IAAO,MAAPA,SAAO,EAAPA,EAAW,GAAE,KAC1ClW,EAAA,yBACAA,EAAA,YAAUM,KAAK,oBAMtBR,KAAKyZ,aACJvZ,EAAA,OAAKC,MAAM,cACTD,EAAA,MAAI8H,GAAIhI,KAAKmZ,aAAchZ,MAAO,CAAE,WAAYiW,IAC7CA,GAAW,6BAEdlW,EAAA,UAAQgB,KAAK,SAASf,MAAM,YAAYkB,QAAS,IAAMrB,KAAKga,cAC1D9Z,EAAA,YAAUM,KAAK,UACfN,EAAA,QAAMC,MAAM,WAAS,aAK3BD,EAAA,OAAKC,MAAO,CAAE,WAAYH,KAAKyZ,YAAa,iBAAkB,OAC5DvZ,EAAA,gB,CAQJ,SAAA6Z,GACN/Z,KAAK0Z,kBAAoB1Z,KAAKkC,KAAK+X,aACnCja,KAAKyZ,YAAc,I,CAGb,UAAAO,GACNha,KAAK0Z,kBAAoBnZ,UACzBP,KAAKyZ,YAAc,K,CAGb,YAAAD,G,QACN,GAAIxZ,KAAKyZ,aAAezZ,KAAK2Z,mBAAqB3Z,KAAKsD,KAAM,CAC3DtD,KAAKsD,KAAOsB,EAAgB,CAAC5E,KAAKkC,KAAMlC,KAAK2Z,kBAAmB,CAC9D9U,kBAAmB,KACnBC,wBAA0BjE,IACxB,GAAIA,aAAakE,YAAclE,EAAEmE,eAAe,KAAOhF,KAAK2Z,iBAAkB,CAC5E3Z,KAAKga,aAEL,OAAO,K,CAGT,OAAO,IAAI,EAEb/U,gBAAgBrC,EAAA5C,KAAKmE,iBAAa,MAAAvB,SAAA,EAAAA,EAAI,MACtCsC,aAAc,IAAMlF,KAAKga,aACzBE,gBAAiB,CACfC,cAAe,QAEhBhV,U,MACE,IAAKnF,KAAKyZ,aAAezZ,KAAKsD,KAAM,EACzCT,EAAA7C,KAAKsD,QAAI,MAAAT,SAAA,SAAAA,EAAEU,oBAEJvD,KAAKsD,I,EAIR,kBAAAiW,EAAoBa,IAC1B,IAAKA,EAAU,CACb,MAAM,IAAIna,MAAM,oB,CAGlB,MAAMoa,EAAeD,EAAStY,OAAOK,cAAc,SAEnD,GAAIiY,GAAYC,aAAwBC,iBAAkB,CACxDta,KAAK4Z,aACHtF,KAAKiG,MAAMF,EAAaG,wBAAwB7W,OAAS2Q,KAAKiG,MAAMH,EAASK,YAAY9W,M"}
@@ -0,0 +1,2 @@
1
+ import{r as n,c as o,h as e,F as t,H as r,a as s}from"./p-4592810d.js";import{v as a}from"./p-14616bce.js";const i="*,*::after,*::before{box-sizing:border-box}dso-annotation-output{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dso-annotation-header{align-items:center;background-color:#f2f2f2;clear:both;display:flex;margin-bottom:2px;margin-top:8px;padding-left:16px;padding-right:8px;padding-top:8px;padding-bottom:8px}.dso-annotation-header>[slot=title]{color:#000;font-size:1.25rem;margin-bottom:0;margin-top:0}.dso-annotation-header>:nth-child(2){margin-left:auto}dso-responsive-element[small] .dso-annotation-header,dso-responsive-element[medium] .dso-annotation-header{display:grid;row-gap:8px}dso-responsive-element[small] .dso-annotation-header *[slot=title],dso-responsive-element[medium] .dso-annotation-header *[slot=title]{grid-row:1;grid-column:1}dso-responsive-element[small] .dso-annotation-header *[slot=addons],dso-responsive-element[medium] .dso-annotation-header *[slot=addons]{grid-row:2;grid-column:1;margin-left:initial}dso-responsive-element[small] .dso-annotation-header .dso-annotation-close-button,dso-responsive-element[medium] .dso-annotation-header .dso-annotation-close-button{grid-row:1;grid-column:2;margin-left:8px;text-align:end}.dso-annotation-content{background-color:#f2f2f2;padding-left:16px;padding-right:8px;padding-top:8px;padding-bottom:8px}.dso-annotation-close-button{margin-left:32px}.dso-annotation-prefix{font-style:italic}";const d=class{constructor(e){n(this,e);this.dsoClose=o(this,"dsoClose",3);this.toggleHandler=n=>{this.dsoClose.emit({originalEvent:n})};this.identifier=undefined;this.annotationPrefix=undefined;this.open=false}render(){return e("dso-responsive-element",null,e("dso-expandable",{id:this.identifier,open:this.open},this.annotationPrefix&&e("span",{class:"dso-annotation-prefix"},this.annotationPrefix),e("div",{class:"dso-annotation-header"},e("slot",{name:"title"}),e("slot",{name:"addons"}),e("button",{type:"button",class:"dso-tertiary dso-annotation-close-button",onClick:this.toggleHandler},e("dso-icon",{icon:"times"}),e("span",{class:"sr-only"},"Toelichting sluiten"))),e("div",{class:"dso-annotation-content"},e("slot",null))))}};d.style=i;var l=undefined&&undefined.__rest||function(n,o){var e={};for(var t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&o.indexOf(t)<0)e[t]=n[t];if(n!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++){if(o.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r]))e[t[r]]=n[t[r]]}return e};const c=(n,o)=>{var{heading:t}=n,r=l(n,["heading"]);switch(t){default:case"h2":return e("h2",Object.assign({},r),o);case"h3":return e("h3",Object.assign({},r),o);case"h4":return e("h4",Object.assign({},r),o);case"h5":return e("h5",Object.assign({},r),o);case"h6":return e("h6",Object.assign({},r),o)}};const h="button {\n -webkit-appearance: button;\n color: inherit;\n cursor: pointer;\n font: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n text-transform: none;\n}\nbutton[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\na.dso-primary,\nbutton.dso-primary,\nlabel.dso-primary {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n}\na.dso-primary:focus, a.dso-primary:focus-visible,\nbutton.dso-primary:focus,\nbutton.dso-primary:focus-visible,\nlabel.dso-primary:focus,\nlabel.dso-primary:focus-visible {\n outline-offset: 2px;\n}\na.dso-primary:active,\nbutton.dso-primary:active,\nlabel.dso-primary:active {\n outline: 0;\n}\na.dso-primary.extern::after, a.dso-primary.download::after,\nbutton.dso-primary.extern::after,\nbutton.dso-primary.download::after,\nlabel.dso-primary.extern::after,\nlabel.dso-primary.download::after {\n content: \"\";\n display: inline-block;\n margin-left: 8px;\n}\na.dso-primary:hover,\nbutton.dso-primary:hover,\nlabel.dso-primary:hover {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\na.dso-primary:active,\nbutton.dso-primary:active,\nlabel.dso-primary:active {\n background-color: #173521;\n border-color: #173521;\n color: #fff;\n}\na.dso-primary[disabled], a.dso-primary[disabled]:hover,\nbutton.dso-primary[disabled],\nbutton.dso-primary[disabled]:hover,\nlabel.dso-primary[disabled],\nlabel.dso-primary[disabled]:hover {\n background-color: #afcf9d;\n border-color: #afcf9d;\n color: #fff;\n}\na.dso-primary.dso-small,\nbutton.dso-primary.dso-small,\nlabel.dso-primary.dso-small {\n line-height: 1rem;\n}\na.dso-primary.dso-small dso-icon,\na.dso-primary.dso-small svg.di, a.dso-primary.dso-small.extern::after, a.dso-primary.dso-small.download::after, a.dso-primary.dso-small.dso-spinner::before,\nbutton.dso-primary.dso-small dso-icon,\nbutton.dso-primary.dso-small svg.di,\nbutton.dso-primary.dso-small.extern::after,\nbutton.dso-primary.dso-small.download::after,\nbutton.dso-primary.dso-small.dso-spinner::before,\nlabel.dso-primary.dso-small dso-icon,\nlabel.dso-primary.dso-small svg.di,\nlabel.dso-primary.dso-small.extern::after,\nlabel.dso-primary.dso-small.download::after,\nlabel.dso-primary.dso-small.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\na.dso-primary.dso-small.dso-spinner-left::before,\nbutton.dso-primary.dso-small.dso-spinner-left::before,\nlabel.dso-primary.dso-small.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\na.dso-primary.dso-small.dso-spinner-right::after,\nbutton.dso-primary.dso-small.dso-spinner-right::after,\nlabel.dso-primary.dso-small.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\na.dso-primary dso-icon,\na.dso-primary svg.di,\nbutton.dso-primary dso-icon,\nbutton.dso-primary svg.di,\nlabel.dso-primary dso-icon,\nlabel.dso-primary svg.di {\n margin-left: -8px;\n margin-right: 8px;\n}\na.dso-primary span + dso-icon,\na.dso-primary span + svg.di,\nbutton.dso-primary span + dso-icon,\nbutton.dso-primary span + svg.di,\nlabel.dso-primary span + dso-icon,\nlabel.dso-primary span + svg.di {\n margin-left: 8px;\n margin-right: -8px;\n}\na.dso-primary.dso-spinner-left[disabled], a.dso-primary.dso-spinner-right[disabled],\nbutton.dso-primary.dso-spinner-left[disabled],\nbutton.dso-primary.dso-spinner-right[disabled],\nlabel.dso-primary.dso-spinner-left[disabled],\nlabel.dso-primary.dso-spinner-right[disabled] {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\na.dso-primary.dso-spinner-left::before,\nbutton.dso-primary.dso-spinner-left::before,\nlabel.dso-primary.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\na.dso-primary.dso-spinner-right::after,\nbutton.dso-primary.dso-spinner-right::after,\nlabel.dso-primary.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\na.dso-primary.download::after,\nbutton.dso-primary.download::after,\nlabel.dso-primary.download::after {\n background: url(\"./dso-icons.svg#img-download-wit\") no-repeat;\n background-position: center;\n background-size: cover;\n height: 24px;\n vertical-align: top;\n width: 24px;\n}\na.dso-primary.extern::after,\nbutton.dso-primary.extern::after,\nlabel.dso-primary.extern::after {\n background: url(\"./dso-icons.svg#img-external-link-wit\") no-repeat;\n background-position: center;\n background-size: cover;\n height: 24px;\n vertical-align: top;\n width: 24px;\n}\na.dso-secondary,\nbutton.dso-secondary,\nlabel.dso-secondary {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n}\na.dso-secondary:focus, a.dso-secondary:focus-visible,\nbutton.dso-secondary:focus,\nbutton.dso-secondary:focus-visible,\nlabel.dso-secondary:focus,\nlabel.dso-secondary:focus-visible {\n outline-offset: 2px;\n}\na.dso-secondary:active,\nbutton.dso-secondary:active,\nlabel.dso-secondary:active {\n outline: 0;\n}\na.dso-secondary.extern::after, a.dso-secondary.download::after,\nbutton.dso-secondary.extern::after,\nbutton.dso-secondary.download::after,\nlabel.dso-secondary.extern::after,\nlabel.dso-secondary.download::after {\n content: \"\";\n display: inline-block;\n margin-left: 8px;\n}\na.dso-secondary:hover,\nbutton.dso-secondary:hover,\nlabel.dso-secondary:hover {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\na.dso-secondary:active,\nbutton.dso-secondary:active,\nlabel.dso-secondary:active {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\na.dso-secondary[disabled], a.dso-secondary[disabled]:hover,\nbutton.dso-secondary[disabled],\nbutton.dso-secondary[disabled]:hover,\nlabel.dso-secondary[disabled],\nlabel.dso-secondary[disabled]:hover {\n background-color: #fff;\n border-color: #afcf9d;\n color: #afcf9d;\n}\na.dso-secondary.dso-small,\nbutton.dso-secondary.dso-small,\nlabel.dso-secondary.dso-small {\n line-height: 1rem;\n}\na.dso-secondary.dso-small dso-icon,\na.dso-secondary.dso-small svg.di, a.dso-secondary.dso-small.extern::after, a.dso-secondary.dso-small.download::after, a.dso-secondary.dso-small.dso-spinner::before,\nbutton.dso-secondary.dso-small dso-icon,\nbutton.dso-secondary.dso-small svg.di,\nbutton.dso-secondary.dso-small.extern::after,\nbutton.dso-secondary.dso-small.download::after,\nbutton.dso-secondary.dso-small.dso-spinner::before,\nlabel.dso-secondary.dso-small dso-icon,\nlabel.dso-secondary.dso-small svg.di,\nlabel.dso-secondary.dso-small.extern::after,\nlabel.dso-secondary.dso-small.download::after,\nlabel.dso-secondary.dso-small.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\na.dso-secondary.dso-small.dso-spinner-left::before,\nbutton.dso-secondary.dso-small.dso-spinner-left::before,\nlabel.dso-secondary.dso-small.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\na.dso-secondary.dso-small.dso-spinner-right::after,\nbutton.dso-secondary.dso-small.dso-spinner-right::after,\nlabel.dso-secondary.dso-small.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\na.dso-secondary dso-icon,\na.dso-secondary svg.di,\nbutton.dso-secondary dso-icon,\nbutton.dso-secondary svg.di,\nlabel.dso-secondary dso-icon,\nlabel.dso-secondary svg.di {\n margin-left: -8px;\n margin-right: 8px;\n}\na.dso-secondary span + dso-icon,\na.dso-secondary span + svg.di,\nbutton.dso-secondary span + dso-icon,\nbutton.dso-secondary span + svg.di,\nlabel.dso-secondary span + dso-icon,\nlabel.dso-secondary span + svg.di {\n margin-left: 8px;\n margin-right: -8px;\n}\na.dso-secondary.dso-spinner-left[disabled], a.dso-secondary.dso-spinner-right[disabled],\nbutton.dso-secondary.dso-spinner-left[disabled],\nbutton.dso-secondary.dso-spinner-right[disabled],\nlabel.dso-secondary.dso-spinner-left[disabled],\nlabel.dso-secondary.dso-spinner-right[disabled] {\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n}\na.dso-secondary.dso-spinner-left::before,\nbutton.dso-secondary.dso-spinner-left::before,\nlabel.dso-secondary.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\na.dso-secondary.dso-spinner-left:not([disabled]):hover::before,\nbutton.dso-secondary.dso-spinner-left:not([disabled]):hover::before,\nlabel.dso-secondary.dso-spinner-left:not([disabled]):hover::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\na.dso-secondary.dso-spinner-left:not([disabled]).dso-small:hover::before,\nbutton.dso-secondary.dso-spinner-left:not([disabled]).dso-small:hover::before,\nlabel.dso-secondary.dso-spinner-left:not([disabled]).dso-small:hover::before {\n height: 16px;\n width: 16px;\n}\na.dso-secondary.dso-spinner-right::after,\nbutton.dso-secondary.dso-spinner-right::after,\nlabel.dso-secondary.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\na.dso-secondary.dso-spinner-right:not([disabled]):hover::after,\nbutton.dso-secondary.dso-spinner-right:not([disabled]):hover::after,\nlabel.dso-secondary.dso-spinner-right:not([disabled]):hover::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\na.dso-secondary.dso-spinner-right:not([disabled]).dso-small:hover::after,\nbutton.dso-secondary.dso-spinner-right:not([disabled]).dso-small:hover::after,\nlabel.dso-secondary.dso-spinner-right:not([disabled]).dso-small:hover::after {\n height: 16px;\n width: 16px;\n}\na.dso-secondary.download::after,\nbutton.dso-secondary.download::after,\nlabel.dso-secondary.download::after {\n background: url(\"./dso-icons.svg#img-download\") no-repeat;\n background-position: center;\n background-size: cover;\n height: 24px;\n vertical-align: top;\n width: 24px;\n}\na.dso-secondary.download:hover::after,\nbutton.dso-secondary.download:hover::after,\nlabel.dso-secondary.download:hover::after {\n background-image: url(\"./dso-icons.svg#img-download-wit\");\n}\na.dso-secondary.download[disabled]::after,\nbutton.dso-secondary.download[disabled]::after,\nlabel.dso-secondary.download[disabled]::after {\n background-image: url(\"./dso-icons.svg#img-download-grasgroen-40\");\n}\na.dso-secondary.extern::after,\nbutton.dso-secondary.extern::after,\nlabel.dso-secondary.extern::after {\n background: url(\"./dso-icons.svg#img-external-link\") no-repeat;\n background-position: center;\n background-size: cover;\n height: 24px;\n vertical-align: top;\n width: 24px;\n}\na.dso-secondary.extern:hover::after,\nbutton.dso-secondary.extern:hover::after,\nlabel.dso-secondary.extern:hover::after {\n background-image: url(\"./dso-icons.svg#img-external-link-wit\");\n}\na.dso-secondary.extern[disabled]::after,\nbutton.dso-secondary.extern[disabled]::after,\nlabel.dso-secondary.extern[disabled]::after {\n background-image: url(\"./dso-icons.svg#img-external-link-grasgroen-40\");\n}\na.dso-tertiary,\nbutton.dso-tertiary,\nlabel.dso-tertiary {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n}\na.dso-tertiary:focus, a.dso-tertiary:focus-visible,\nbutton.dso-tertiary:focus,\nbutton.dso-tertiary:focus-visible,\nlabel.dso-tertiary:focus,\nlabel.dso-tertiary:focus-visible {\n outline-offset: 2px;\n}\na.dso-tertiary:active,\nbutton.dso-tertiary:active,\nlabel.dso-tertiary:active {\n outline: 0;\n}\na.dso-tertiary.extern::after, a.dso-tertiary.download::after,\nbutton.dso-tertiary.extern::after,\nbutton.dso-tertiary.download::after,\nlabel.dso-tertiary.extern::after,\nlabel.dso-tertiary.download::after {\n content: \"\";\n display: inline-block;\n margin-left: 8px;\n}\na.dso-tertiary[disabled],\nbutton.dso-tertiary[disabled],\nlabel.dso-tertiary[disabled] {\n color: #afcf9d;\n}\na.dso-tertiary[disabled].dso-spinner-left, a.dso-tertiary[disabled].dso-spinner-right,\nbutton.dso-tertiary[disabled].dso-spinner-left,\nbutton.dso-tertiary[disabled].dso-spinner-right,\nlabel.dso-tertiary[disabled].dso-spinner-left,\nlabel.dso-tertiary[disabled].dso-spinner-right {\n color: #39870c;\n}\na.dso-tertiary:not([disabled]):hover,\nbutton.dso-tertiary:not([disabled]):hover,\nlabel.dso-tertiary:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n}\na.dso-tertiary:not([disabled]):active,\nbutton.dso-tertiary:not([disabled]):active,\nlabel.dso-tertiary:not([disabled]):active {\n color: #173521;\n}\na.dso-tertiary.dso-align,\nbutton.dso-tertiary.dso-align,\nlabel.dso-tertiary.dso-align {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n}\na.dso-tertiary.dso-truncate,\nbutton.dso-tertiary.dso-truncate,\nlabel.dso-tertiary.dso-truncate {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\na.dso-tertiary.dso-spinner-left::before,\nbutton.dso-tertiary.dso-spinner-left::before,\nlabel.dso-tertiary.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-right: 8px;\n}\na.dso-tertiary.dso-spinner-right::after,\nbutton.dso-tertiary.dso-spinner-right::after,\nlabel.dso-tertiary.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-left: 8px;\n}\na.dso-tertiary dso-icon + span:not(.sr-only),\na.dso-tertiary svg.di + span:not(.sr-only),\na.dso-tertiary span:not(.sr-only) + dso-icon,\na.dso-tertiary span:not(.sr-only) + svg.di,\nbutton.dso-tertiary dso-icon + span:not(.sr-only),\nbutton.dso-tertiary svg.di + span:not(.sr-only),\nbutton.dso-tertiary span:not(.sr-only) + dso-icon,\nbutton.dso-tertiary span:not(.sr-only) + svg.di,\nlabel.dso-tertiary dso-icon + span:not(.sr-only),\nlabel.dso-tertiary svg.di + span:not(.sr-only),\nlabel.dso-tertiary span:not(.sr-only) + dso-icon,\nlabel.dso-tertiary span:not(.sr-only) + svg.di {\n margin-left: 8px;\n}\na.dso-tertiary svg.di.di-chevron-down + span:not(.sr-only),\na.dso-tertiary svg.di.di-chevron-up + span:not(.sr-only),\na.dso-tertiary span:not(.sr-only) + svg.di.di-chevron-down,\na.dso-tertiary span:not(.sr-only) + svg.di.di-chevron-up,\nbutton.dso-tertiary svg.di.di-chevron-down + span:not(.sr-only),\nbutton.dso-tertiary svg.di.di-chevron-up + span:not(.sr-only),\nbutton.dso-tertiary span:not(.sr-only) + svg.di.di-chevron-down,\nbutton.dso-tertiary span:not(.sr-only) + svg.di.di-chevron-up,\nlabel.dso-tertiary svg.di.di-chevron-down + span:not(.sr-only),\nlabel.dso-tertiary svg.di.di-chevron-up + span:not(.sr-only),\nlabel.dso-tertiary span:not(.sr-only) + svg.di.di-chevron-down,\nlabel.dso-tertiary span:not(.sr-only) + svg.di.di-chevron-up {\n margin-left: 4px;\n}\na.dso-tertiary dso-icon[icon=chevron-left] + span:not(.sr-only),\na.dso-tertiary dso-icon[icon=chevron-right] + span:not(.sr-only),\na.dso-tertiary svg.di.di-angle-down + span:not(.sr-only),\na.dso-tertiary svg.di.di-angle-up + span:not(.sr-only),\na.dso-tertiary span:not(.sr-only) + svg.di.di-angle-down,\na.dso-tertiary span:not(.sr-only) + svg.di.di-angle-up,\na.dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-left],\na.dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-right],\nbutton.dso-tertiary dso-icon[icon=chevron-left] + span:not(.sr-only),\nbutton.dso-tertiary dso-icon[icon=chevron-right] + span:not(.sr-only),\nbutton.dso-tertiary svg.di.di-angle-down + span:not(.sr-only),\nbutton.dso-tertiary svg.di.di-angle-up + span:not(.sr-only),\nbutton.dso-tertiary span:not(.sr-only) + svg.di.di-angle-down,\nbutton.dso-tertiary span:not(.sr-only) + svg.di.di-angle-up,\nbutton.dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-left],\nbutton.dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-right],\nlabel.dso-tertiary dso-icon[icon=chevron-left] + span:not(.sr-only),\nlabel.dso-tertiary dso-icon[icon=chevron-right] + span:not(.sr-only),\nlabel.dso-tertiary svg.di.di-angle-down + span:not(.sr-only),\nlabel.dso-tertiary svg.di.di-angle-up + span:not(.sr-only),\nlabel.dso-tertiary span:not(.sr-only) + svg.di.di-angle-down,\nlabel.dso-tertiary span:not(.sr-only) + svg.di.di-angle-up,\nlabel.dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-left],\nlabel.dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-right] {\n margin-left: 0;\n}\na.dso-tertiary dso-icon,\na.dso-tertiary svg.di,\na.dso-tertiary span,\nbutton.dso-tertiary dso-icon,\nbutton.dso-tertiary svg.di,\nbutton.dso-tertiary span,\nlabel.dso-tertiary dso-icon,\nlabel.dso-tertiary svg.di,\nlabel.dso-tertiary span {\n vertical-align: middle;\n}\na.dso-tertiary.extern::after, a.dso-tertiary.download::after,\nbutton.dso-tertiary.extern::after,\nbutton.dso-tertiary.download::after,\nlabel.dso-tertiary.extern::after,\nlabel.dso-tertiary.download::after {\n position: relative;\n top: -2px;\n}\na.dso-tertiary.download::after,\nbutton.dso-tertiary.download::after,\nlabel.dso-tertiary.download::after {\n background: url(\"./dso-icons.svg#img-download\") no-repeat;\n background-position: center;\n background-size: cover;\n height: 24px;\n vertical-align: top;\n width: 24px;\n}\na.dso-tertiary.download[disabled]::after,\nbutton.dso-tertiary.download[disabled]::after,\nlabel.dso-tertiary.download[disabled]::after {\n background-image: url(\"./dso-icons.svg#img-download-grasgroen-40\");\n}\na.dso-tertiary.download:not([disabled]):hover::after, a.dso-tertiary.download:not([disabled]):active::after,\nbutton.dso-tertiary.download:not([disabled]):hover::after,\nbutton.dso-tertiary.download:not([disabled]):active::after,\nlabel.dso-tertiary.download:not([disabled]):hover::after,\nlabel.dso-tertiary.download:not([disabled]):active::after {\n background-image: url(\"./dso-icons.svg#img-download-scampi\");\n}\na.dso-tertiary.extern::after,\nbutton.dso-tertiary.extern::after,\nlabel.dso-tertiary.extern::after {\n background: url(\"./dso-icons.svg#img-external-link\") no-repeat;\n background-position: center;\n background-size: cover;\n height: 24px;\n vertical-align: top;\n width: 24px;\n}\na.dso-tertiary.extern[disabled]::after,\nbutton.dso-tertiary.extern[disabled]::after,\nlabel.dso-tertiary.extern[disabled]::after {\n background-image: url(\"./dso-icons.svg#img-external-link-grasgroen-40\");\n}\na.dso-tertiary.extern:not([disabled]):hover::after, a.dso-tertiary.extern:not([disabled]):active::after,\nbutton.dso-tertiary.extern:not([disabled]):hover::after,\nbutton.dso-tertiary.extern:not([disabled]):active::after,\nlabel.dso-tertiary.extern:not([disabled]):hover::after,\nlabel.dso-tertiary.extern:not([disabled]):active::after {\n background-image: url(\"./dso-icons.svg#img-external-link-scampi\");\n}\n\na.dso-primary {\n text-decoration: none;\n}\na.dso-primary, a.dso-primary:visited {\n color: #fff;\n}\na.dso-secondary {\n text-decoration: none;\n}\na.dso-secondary, a.dso-secondary:visited {\n color: #39870c;\n}\na.dso-secondary:hover, a.dso-secondary:visited:hover {\n color: #fff;\n}\na.dso-tertiary {\n text-decoration: none;\n}\na.dso-tertiary, a.dso-tertiary:visited {\n color: #39870c;\n}\n\n.dso-primary + .dso-primary,\n.dso-primary + .dso-secondary,\n.dso-primary + .dso-tertiary,\n.dso-secondary + .dso-primary,\n.dso-secondary + .dso-secondary,\n.dso-secondary + .dso-tertiary,\n.dso-tertiary + .dso-primary,\n.dso-tertiary + .dso-secondary,\n.dso-tertiary + .dso-tertiary {\n margin-left: 16px;\n}\n\n.not-applicable {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n:host {\n display: block;\n --depth: var(--a, 0);\n}\n\n:host([not-collapsible]:where([wijzigactie=verwijder], [wijzigactie=voegtoe])) {\n padding-left: 8px;\n margin-right: 8px;\n}\n\n:host(:where([wijzigactie=verwijder], [wijzigactie=voegtoe])),\n:host(:where([wijzigactie=nieuweContainer], [wijzigactie=verwijderContainer])) .heading-container {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n:host([wijzigactie=verwijderContainer]) .heading-container,\n:host(:where([wijzigactie=verwijder])) {\n background-color: #f5d8dc;\n color: #000;\n text-decoration: line-through;\n}\n:host([wijzigactie=verwijderContainer]) .heading-container a,\n:host(:where([wijzigactie=verwijder])) a {\n color: #000;\n}\n\n:host([wijzigactie=nieuweContainer]) .heading-container,\n:host([wijzigactie=voegtoe]) {\n background-color: #e4f1d4;\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.25);\n color: #000;\n}\n:host([wijzigactie=nieuweContainer]) .heading-container a,\n:host([wijzigactie=voegtoe]) a {\n color: #000;\n}\n\n:host([filtered]) {\n position: relative;\n}\n:host([filtered])::before {\n content: \"\";\n left: -3px;\n position: absolute;\n display: block;\n width: 3px;\n top: 0;\n bottom: 0;\n background-color: #6ca4d9;\n}\n\n:host([open]) .heading-container {\n margin-bottom: 8px;\n}\n\n.recursive-toggle,\n.toggle-button {\n border: 0;\n padding: 0;\n background: 0;\n color: #275937;\n}\n\n.heading-element {\n align-items: start;\n display: flex;\n font-size: 1rem;\n color: #275937;\n margin: 0;\n}\n.heading-element > * {\n vertical-align: middle;\n}\n\n:host([not-collapsible]) .heading-container {\n margin-bottom: 0;\n}\n:host([not-collapsible]) .wijzigactie-label {\n margin-left: 0;\n}\n:host([not-collapsible]) .heading-element {\n color: #000;\n}\n\n:host(:not([not-collapsible])) .heading-element {\n cursor: pointer;\n}\n:host(:not([not-collapsible])) .heading-element:hover, :host(:not([not-collapsible])) .heading-element:focus {\n color: var(--link-hover-color);\n text-decoration: underline;\n}\n:host(:not([not-collapsible])) .heading-element:active {\n text-decoration: none;\n}\n:host(:not([not-collapsible])) .wijzigactie-label {\n margin-left: 24px;\n}\n\n.addons {\n margin-inline-start: auto;\n display: flex;\n gap: 8px;\n}\n\n.heading {\n display: flex;\n align-items: start;\n gap: 8px;\n}\n\n:host([type=ARTIKEL]) .heading-element,\n:host([type=ARTIKEL]) .toggle-button {\n color: #000;\n}\n\n.wijzigactie-label {\n font-style: italic;\n margin-left: 8px;\n}\n\n.content,\n.heading-container {\n padding-right: 8px;\n}";const p={nieuweContainer:"Toegevoegd",verwijder:"Verwijderd",verwijderContainer:"Verwijderd",voegtoe:"Toegevoegd"};const g=class{constructor(e){n(this,e);this.dsoRecursiveToggle=o(this,"dsoRecursiveToggle",3);this.dsoOpenToggle=o(this,"dsoOpenToggle",3);this.dsoOzonContentAnchorClick=o(this,"dsoOzonContentAnchorClick",3);this.dsoAnnotationToggle=o(this,"dsoAnnotationToggle",3);this.dsoMarkItemHighlight=o(this,"dsoMarkItemHighlight",3);this.handleHeadingClick=n=>{if(this.type!=="LID"){this.dsoOpenToggle.emit({originalEvent:n,open:!this.open})}};this.handleOzonContentAnchorClick=n=>{this.dsoOzonContentAnchorClick.emit({originalEvent:n,ozonContentAnchorClick:n.detail})};this.handleRecursiveToggleClick=n=>{this.dsoRecursiveToggle.emit({originalEvent:n,current:this.recursiveToggle,next:this.recursiveToggle===true?false:true})};this.heading="h2";this.label=undefined;this.nummer=undefined;this.opschrift=undefined;this.inhoud=undefined;this.open=false;this.filtered=false;this.notApplicable=false;this.genesteOntwerpInformatie=false;this.bevatOntwerpInformatie=false;this.annotated=false;this.gereserveerd=false;this.vervallen=false;this.openAnnotation=false;this.alternativeTitle=undefined;this.type=undefined;this.wijzigactie=undefined;this.mark=undefined;this.recursiveToggle=undefined}get wijzigactieLabel(){return this.wijzigactie&&p[this.wijzigactie]}suffix(){if(this.vervallen){return"vervallen"}if(this.gereserveerd){return"gereserveerd"}return undefined}render(){const n=this.suffix();const o=!!((this.label||this.nummer||this.opschrift||this.alternativeTitle)&&this.type!=="LID");const s=!!(this.wijzigactie||o||this.label||this.nummer||this.opschrift||this.alternativeTitle||this.bevatOntwerpInformatie||this.annotated);return e(r,{"not-collapsible":!o},s&&e("div",{class:"heading-container",part:"_heading-container"},this.wijzigactie&&e("span",{class:"wijzigactie-label"},this.wijzigactieLabel,":"),e("div",{class:"heading"},e(c,{heading:this.heading,class:"heading-element",onClick:this.handleHeadingClick},o&&e("button",{type:"button",class:"toggle-button"},e("dso-icon",{icon:this.open?"chevron-down":"chevron-right"})),e("div",{class:"title"},this.notApplicable&&e("span",{class:"not-applicable"},"Niet van toepassing:"),this.label||this.nummer||this.opschrift?e(t,null,this.label&&e(t,null," ",e("dso-ozon-content",{content:this.label,onDsoAnchorClick:this.handleOzonContentAnchorClick,mark:this.mark&&(n=>{var o;return(o=this.mark)===null||o===void 0?void 0:o.call(this,n,"label")}),onDsoOzonContentMarkItemHighlight:n=>this.dsoMarkItemHighlight.emit(Object.assign(Object.assign({},n.detail),{source:"label"})),inline:true})),this.nummer&&e(t,null," ",e("dso-ozon-content",{content:this.nummer,onDsoAnchorClick:this.handleOzonContentAnchorClick,mark:this.mark&&(n=>{var o;return(o=this.mark)===null||o===void 0?void 0:o.call(this,n,"nummer")}),onDsoOzonContentMarkItemHighlight:n=>this.dsoMarkItemHighlight.emit(Object.assign(Object.assign({},n.detail),{source:"nummer"})),inline:true})),this.opschrift&&e(t,null," ",e("dso-ozon-content",{content:this.opschrift,onDsoAnchorClick:this.handleOzonContentAnchorClick,mark:this.mark&&(n=>{var o;return(o=this.mark)===null||o===void 0?void 0:o.call(this,n,"opschrift")}),onDsoOzonContentMarkItemHighlight:n=>this.dsoMarkItemHighlight.emit(Object.assign(Object.assign({},n.detail),{source:"opschrift"})),inline:true}))):this.alternativeTitle,n&&e("span",null," - [",n,"]"))),this.recursiveToggle!==undefined&&this.open&&e("button",{type:"button",class:"recursive-toggle",title:this.recursiveToggle===true?"Verberg alles":"Toon alles",onClick:this.handleRecursiveToggleClick},e("dso-icon",{icon:this.recursiveToggle===true?"eye":"eye-slash"})),this.genesteOntwerpInformatie&&!this.open&&!this.bevatOntwerpInformatie&&e(t,null,e("dso-badge",{status:"warning","aria-describedby":"nested-draft-description"},"!"),e("dso-tooltip",{id:"nested-draft-description"},"Er is een ontwerp beschikbaar.")),(this.bevatOntwerpInformatie||this.annotated)&&e("div",{class:"addons"},this.bevatOntwerpInformatie&&e("dso-label",{status:"warning",compact:true},"Ontwerp"),this.annotated&&e("dso-annotation-button",{identifier:"expandable",open:this.openAnnotation,onDsoClick:n=>this.dsoAnnotationToggle.emit({originalEvent:n})})))),e("div",{class:"annotation-container",part:"_annotation-container"},e("slot",{name:"annotation"})),this.open&&(this.inhoud||this.gereserveerd||this.vervallen)&&e("div",{class:"content",part:"_content"},this.gereserveerd&&e("dso-alert",{status:"info"},"Dit onderdeel is gereserveerd voor toekomstige toevoeging."),this.vervallen&&e("dso-alert",{status:"info"},"Dit onderdeel is vervallen."),this.inhoud&&e("dso-ozon-content",{content:this.inhoud,onDsoAnchorClick:this.handleOzonContentAnchorClick,mark:this.mark&&(n=>{var o;return(o=this.mark)===null||o===void 0?void 0:o.call(this,n,"inhoud")}),onDsoOzonContentMarkItemHighlight:n=>this.dsoMarkItemHighlight.emit(Object.assign(Object.assign({},n.detail),{source:"inhoud"}))})),e("div",{class:"children-container",part:"_children-container"},e("slot",null)))}};g.style=h;const f="button.dso-slider{border:0;padding:0}button.dso-slider:focus-visible{outline:2px solid #323232;outline-offset:1px}button.dso-slider svg rect{fill:#999;transition:fill 0.25s}button.dso-slider svg circle{transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transform:translateX(10px);fill:#fff}button.dso-slider[aria-checked=true] svg rect{fill:#275937}button.dso-slider[aria-checked=true] svg circle{transform:translateX(30px);fill:#fff}button.dso-slider[disabled] svg rect{fill:#ccc}button.dso-slider[disabled] svg circle{fill:#e5e5e5}button.dso-slider[disabled][aria-checked=true] svg rect{fill:#a8bcaf}button.dso-slider[disabled][aria-checked=true] svg circle{fill:#e5e5e5}.dso-slider{border-radius:24px;display:inline-flex}.dso-slider:hover{cursor:pointer}";const b=class{constructor(e){n(this,e);this.dsoActiveChange=o(this,"dsoActiveChange",7);this.checked=false;this.disabled=false;this.accessibleLabel=undefined;this.labelledbyId=undefined;this.hasVisibleLabel=undefined;this.identifier=a()}handleSwitch(n){this.dsoActiveChange.emit({originalEvent:n,checked:!this.checked})}componentWillLoad(){this.hasVisibleLabel=this.host.querySelector("*")!==null}render(){return e(t,null,e("button",Object.assign({id:this.identifier,role:"switch",class:"dso-slider","aria-checked":""+this.checked,disabled:this.disabled,onClick:n=>this.handleSwitch(n)},this.accessibleLabel?{"aria-label":this.accessibleLabel}:{},this.labelledbyId?{"aria-labelledby":this.labelledbyId}:{}),e("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"20",viewBox:"0 0 40 20"},e("g",{fill:"none","fill-rule":"evenodd"},e("rect",{width:"40",height:"20",fill:"currentColor",rx:"10"}),e("circle",{cy:"10",r:"8",fill:"currentColor"})))),this.hasVisibleLabel&&e("label",{htmlFor:this.identifier},e("slot",null)))}get host(){return s(this)}};b.style=f;export{d as dso_annotation_output,g as dso_document_component,b as dso_slide_toggle};
2
+ //# sourceMappingURL=p-39962ce8.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["annotationOutputCss","AnnotationOutput","this","toggleHandler","e","dsoClose","emit","originalEvent","render","h","id","identifier","open","annotationPrefix","class","name","type","onClick","icon","Heading","_a","children","heading","props","__rest","Object","assign","documentComponentCss","wijzigActieLabels","nieuweContainer","verwijder","verwijderContainer","voegtoe","DocumentComponent","handleHeadingClick","dsoOpenToggle","handleOzonContentAnchorClick","dsoOzonContentAnchorClick","ozonContentAnchorClick","detail","handleRecursiveToggleClick","dsoRecursiveToggle","current","recursiveToggle","next","wijzigactieLabel","wijzigactie","suffix","vervallen","gereserveerd","undefined","collapsible","label","nummer","opschrift","alternativeTitle","showHeading","bevatOntwerpInformatie","annotated","Host","part","notApplicable","Fragment","content","onDsoAnchorClick","mark","text","call","onDsoOzonContentMarkItemHighlight","dsoMarkItemHighlight","source","inline","title","genesteOntwerpInformatie","status","compact","openAnnotation","onDsoClick","dsoAnnotationToggle","inhoud","slideToggleCss","SlideToggle","v4","handleSwitch","dsoActiveChange","checked","componentWillLoad","hasVisibleLabel","host","querySelector","role","disabled","accessibleLabel","labelledbyId","xmlns","width","height","viewBox","fill","rx","cy","r","htmlFor"],"sources":["src/components/annotation-output/annotation-output.scss?tag=dso-annotation-output","src/components/annotation-output/annotation-output.tsx","src/components/document-component/document-component-heading.tsx","src/components/document-component/document-component.scss?tag=dso-document-component&encapsulation=shadow","src/components/document-component/document-component.tsx","src/components/slide-toggle/slide-toggle.scss?tag=dso-slide-toggle","src/components/slide-toggle/slide-toggle.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n\r\n@include utilities.box-sizing();\r\n\r\ndso-annotation-output {\r\n display: block;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-annotation-header {\r\n align-items: center;\r\n background-color: colors.$grijs-5;\r\n clear: both;\r\n display: flex;\r\n margin-bottom: 2px;\r\n margin-top: units.$u1;\r\n padding-left: units.$u2;\r\n padding-right: units.$u1;\r\n padding-top: units.$u1;\r\n padding-bottom: units.$u1;\r\n\r\n > [slot=\"title\"] {\r\n color: colors.$zwart;\r\n font-size: 1.25rem;\r\n margin-bottom: 0;\r\n margin-top: 0;\r\n }\r\n\r\n > :nth-child(2) {\r\n margin-left: auto;\r\n }\r\n}\r\n\r\ndso-responsive-element[small],\r\ndso-responsive-element[medium] {\r\n .dso-annotation-header {\r\n display: grid;\r\n row-gap: units.$u1;\r\n\r\n *[slot=\"title\"] {\r\n grid-row: 1;\r\n grid-column: 1;\r\n }\r\n\r\n *[slot=\"addons\"] {\r\n grid-row: 2;\r\n grid-column: 1;\r\n margin-left: initial;\r\n }\r\n\r\n .dso-annotation-close-button {\r\n grid-row: 1;\r\n grid-column: 2;\r\n margin-left: units.$u1;\r\n text-align: end;\r\n }\r\n }\r\n}\r\n\r\n.dso-annotation-content {\r\n background-color: colors.$grijs-5;\r\n padding-left: units.$u2;\r\n padding-right: units.$u1;\r\n padding-top: units.$u1;\r\n padding-bottom: units.$u1;\r\n}\r\n\r\n.dso-annotation-close-button {\r\n margin-left: units.$u4;\r\n}\r\n\r\n.dso-annotation-prefix {\r\n font-style: italic;\r\n}\r\n","import { h, Component, ComponentInterface, Event, EventEmitter, Prop } from \"@stencil/core\";\r\n\r\nexport interface AnnotationOutputCloseEvent {\r\n originalEvent: Event;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-annotation-output\",\r\n styleUrl: \"annotation-output.scss\",\r\n // No shadowdom for a11y reasons (aria-controls being set inside another component)\r\n})\r\nexport class AnnotationOutput implements ComponentInterface {\r\n /**\r\n * The annotation-button that toggles this component should have the same identifier.\r\n */\r\n @Prop({ reflect: true })\r\n identifier!: string;\r\n\r\n /**\r\n * This text will be displayed above the annotation-output when opened\r\n */\r\n @Prop({ reflect: true })\r\n annotationPrefix?: string;\r\n\r\n /**\r\n * Set to `true` to show content.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n /**\r\n * This event is emitted when the user activates the Annotation Button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoClose!: EventEmitter<AnnotationOutputCloseEvent>;\r\n\r\n private toggleHandler = (e: MouseEvent) => {\r\n this.dsoClose.emit({ originalEvent: e });\r\n };\r\n\r\n render() {\r\n return (\r\n <dso-responsive-element>\r\n <dso-expandable id={this.identifier} open={this.open}>\r\n {this.annotationPrefix && <span class=\"dso-annotation-prefix\">{this.annotationPrefix}</span>}\r\n <div class=\"dso-annotation-header\">\r\n <slot name=\"title\" />\r\n <slot name=\"addons\" />\r\n <button type=\"button\" class=\"dso-tertiary dso-annotation-close-button\" onClick={this.toggleHandler}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Toelichting sluiten</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-annotation-content\">\r\n <slot />\r\n </div>\r\n </dso-expandable>\r\n </dso-responsive-element>\r\n );\r\n }\r\n}\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { JSXBase } from \"@stencil/core/internal\";\r\n\r\ninterface DocumentComponentHeadingProps {\r\n heading: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\r\n}\r\n\r\nexport const Heading: FunctionalComponent<\r\n DocumentComponentHeadingProps & JSXBase.HTMLAttributes<HTMLHeadingElement>\r\n> = ({ heading, ...props }, children) => {\r\n switch (heading) {\r\n default:\r\n case \"h2\":\r\n return <h2 {...props}>{children}</h2>;\r\n case \"h3\":\r\n return <h3 {...props}>{children}</h3>;\r\n case \"h4\":\r\n return <h4 {...props}>{children}</h4>;\r\n case \"h5\":\r\n return <h5 {...props}>{children}</h5>;\r\n case \"h6\":\r\n return <h6 {...props}>{children}</h6>;\r\n }\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\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n@use \"~dso-toolkit/src/components/document-component\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n@use \"~dso-toolkit/src/components/insert\";\r\n\r\n.not-applicable {\r\n @include utilities.sr-only();\r\n}\r\n\r\n:host {\r\n display: block;\r\n\r\n --depth: var(--a, 0);\r\n}\r\n\r\n:host([not-collapsible]:where([wijzigactie=\"verwijder\"], [wijzigactie=\"voegtoe\"])) {\r\n padding-left: units.$u1;\r\n margin-right: units.$u1;\r\n}\r\n\r\n:host(:where([wijzigactie=\"verwijder\"], [wijzigactie=\"voegtoe\"])),\r\n:host(:where([wijzigactie=\"nieuweContainer\"], [wijzigactie=\"verwijderContainer\"])) .heading-container {\r\n padding-top: units.$u1 * 0.5;\r\n padding-bottom: units.$u1 * 0.5;\r\n}\r\n\r\n:host([wijzigactie=\"verwijderContainer\"]) .heading-container,\r\n:host(:where([wijzigactie=\"verwijder\"])) {\r\n @include delete.root();\r\n}\r\n\r\n:host([wijzigactie=\"nieuweContainer\"]) .heading-container,\r\n:host([wijzigactie=\"voegtoe\"]) {\r\n @include insert.root();\r\n}\r\n\r\n:host([filtered]) {\r\n position: relative;\r\n\r\n &::before {\r\n content: \"\";\r\n left: -3px;\r\n position: absolute;\r\n display: block;\r\n width: 3px;\r\n top: 0;\r\n bottom: 0;\r\n background-color: colors.$lichtblauw;\r\n }\r\n}\r\n\r\n:host([open]) {\r\n .heading-container {\r\n margin-bottom: units.$u1;\r\n }\r\n}\r\n\r\n.recursive-toggle,\r\n.toggle-button {\r\n border: 0;\r\n padding: 0;\r\n background: 0;\r\n color: colors.$bosgroen;\r\n}\r\n\r\n.heading-element {\r\n align-items: start;\r\n display: flex;\r\n font-size: 1rem;\r\n color: colors.$bosgroen;\r\n margin: 0;\r\n\r\n > * {\r\n vertical-align: middle;\r\n }\r\n}\r\n\r\n:host([not-collapsible]) {\r\n .heading-container {\r\n margin-bottom: 0;\r\n }\r\n\r\n .wijzigactie-label {\r\n margin-left: 0;\r\n }\r\n\r\n .heading-element {\r\n color: colors.$zwart;\r\n }\r\n}\r\n\r\n:host(:not([not-collapsible])) {\r\n .heading-element {\r\n cursor: pointer;\r\n\r\n @include anchor.pseudo();\r\n }\r\n\r\n .wijzigactie-label {\r\n margin-left: document-component.$indent;\r\n }\r\n}\r\n\r\n.addons {\r\n margin-inline-start: auto;\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n.heading {\r\n display: flex;\r\n align-items: start;\r\n gap: units.$u1;\r\n}\r\n\r\n:host([type=\"ARTIKEL\"]) {\r\n .heading-element,\r\n .toggle-button {\r\n color: colors.$zwart;\r\n }\r\n}\r\n\r\n.wijzigactie-label {\r\n font-style: italic;\r\n margin-left: units.$u1;\r\n}\r\n\r\n.content,\r\n.heading-container {\r\n padding-right: units.$u1;\r\n}\r\n","import { h, Component, ComponentInterface, Event, EventEmitter, Fragment, Prop, Host } from \"@stencil/core\";\r\nimport {\r\n DocumentComponentOpenToggleEvent,\r\n DocumentComponentToggleAnnotationEvent,\r\n DocumentComponentOzonContentAnchorClickEvent,\r\n DocumentComponentWijzigactie,\r\n DocumentComponentInputType,\r\n DocumentComponentMarkFunction,\r\n DocumentComponentMarkItemHighlightEvent,\r\n DocumentComponentRecursiveToggleEvent,\r\n DocumentComponentRecursiveToggleState,\r\n} from \"./document-component.models\";\r\nimport { OzonContentAnchorClickEvent } from \"../ozon-content/ozon-content.interfaces\";\r\nimport { Heading } from \"./document-component-heading\";\r\n\r\nimport { DsoOzonContentCustomEvent } from \"../../components\";\r\n\r\nconst wijzigActieLabels: { [wijzigActie in DocumentComponentWijzigactie]: string } = {\r\n nieuweContainer: \"Toegevoegd\",\r\n verwijder: \"Verwijderd\",\r\n verwijderContainer: \"Verwijderd\",\r\n voegtoe: \"Toegevoegd\",\r\n};\r\n\r\n/**\r\n * @part _annotation-container - private part, do not touch.\r\n * @part _children-container - private part, do not touch.\r\n * @part _content - private part, do not touch.\r\n * @part _heading-container - private part, do not touch.\r\n */\r\n@Component({\r\n tag: \"dso-document-component\",\r\n styleUrl: \"document-component.scss\",\r\n shadow: true,\r\n})\r\nexport class DocumentComponent implements ComponentInterface {\r\n /**\r\n * The heading element to use.\r\n */\r\n @Prop()\r\n heading: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" = \"h2\";\r\n\r\n /**\r\n * The Label XML.\r\n */\r\n @Prop()\r\n label?: DocumentComponentInputType;\r\n\r\n /**\r\n * The Nummer XML.\r\n */\r\n @Prop()\r\n nummer?: DocumentComponentInputType;\r\n\r\n /**\r\n * The Opschrift XML.\r\n */\r\n @Prop()\r\n opschrift?: DocumentComponentInputType;\r\n\r\n /**\r\n * The Inhoud XML.\r\n */\r\n @Prop()\r\n inhoud?: DocumentComponentInputType;\r\n\r\n /**\r\n * This boolean attribute indicates whether the children are visible.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n /**\r\n * Marks this Document Component as belonging to an active filter.\r\n */\r\n @Prop({ reflect: true })\r\n filtered = false;\r\n\r\n /**\r\n * Marks this Document Component as not-applicable.\r\n */\r\n @Prop({ reflect: true })\r\n notApplicable = false;\r\n\r\n /**\r\n * When a child Document Component has a status \"Draft\".\r\n */\r\n @Prop({ reflect: true })\r\n genesteOntwerpInformatie = false;\r\n\r\n /**\r\n * Marks as draft.\r\n */\r\n @Prop({ reflect: true })\r\n bevatOntwerpInformatie = false;\r\n\r\n /**\r\n * Enables annotations.\r\n */\r\n @Prop({ reflect: true })\r\n annotated = false;\r\n\r\n /**\r\n * Marks Document Component as reserved.\r\n */\r\n @Prop()\r\n gereserveerd = false;\r\n\r\n /**\r\n * Marks the Document Component as expired.\r\n */\r\n @Prop()\r\n vervallen = false;\r\n\r\n /**\r\n * When the Annotation Output is opened, set this to true.\r\n */\r\n @Prop()\r\n openAnnotation = false;\r\n\r\n /**\r\n * An alternative title to show when there is nothing to create a title.\r\n */\r\n @Prop()\r\n alternativeTitle?: string;\r\n\r\n /**\r\n * Type of Document Component.\r\n */\r\n @Prop({ reflect: true })\r\n type?: string;\r\n\r\n /**\r\n * The wijzigactie as in STOP.\r\n */\r\n @Prop({ reflect: true })\r\n wijzigactie?: DocumentComponentWijzigactie;\r\n\r\n /**\r\n * To mark text.\r\n */\r\n @Prop()\r\n mark?: DocumentComponentMarkFunction;\r\n\r\n /**\r\n * Shows the recursive toggle button. When the user activates this button the event `dsoRecursiveToggle` is emitted.\r\n */\r\n @Prop()\r\n recursiveToggle: DocumentComponentRecursiveToggleState;\r\n\r\n /**\r\n * Emitted when the user activates the recursive toggle.\r\n */\r\n @Event({ bubbles: false })\r\n dsoRecursiveToggle!: EventEmitter<DocumentComponentRecursiveToggleEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the toggle.\r\n */\r\n @Event({ bubbles: false })\r\n dsoOpenToggle!: EventEmitter<DocumentComponentOpenToggleEvent>;\r\n\r\n /**\r\n * Emitted when the user actives intRef or intIoRef anchors in Ozon Content\r\n */\r\n @Event({ bubbles: false })\r\n dsoOzonContentAnchorClick!: EventEmitter<DocumentComponentOzonContentAnchorClickEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the annotation button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnnotationToggle!: EventEmitter<DocumentComponentToggleAnnotationEvent>;\r\n\r\n /**\r\n * Emitted each time a marked item gets highlighted.\r\n */\r\n @Event({ bubbles: false })\r\n dsoMarkItemHighlight!: EventEmitter<DocumentComponentMarkItemHighlightEvent>;\r\n\r\n private get wijzigactieLabel(): string | undefined {\r\n return this.wijzigactie && wijzigActieLabels[this.wijzigactie];\r\n }\r\n\r\n private handleHeadingClick = (e: MouseEvent) => {\r\n if (this.type !== \"LID\") {\r\n this.dsoOpenToggle.emit({ originalEvent: e, open: !this.open });\r\n }\r\n };\r\n\r\n private suffix(): string | undefined {\r\n if (this.vervallen) {\r\n return \"vervallen\";\r\n }\r\n\r\n if (this.gereserveerd) {\r\n return \"gereserveerd\";\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private handleOzonContentAnchorClick = (e: DsoOzonContentCustomEvent<OzonContentAnchorClickEvent>) => {\r\n this.dsoOzonContentAnchorClick.emit({ originalEvent: e, ozonContentAnchorClick: e.detail });\r\n };\r\n\r\n private handleRecursiveToggleClick = (e: MouseEvent) => {\r\n this.dsoRecursiveToggle.emit({\r\n originalEvent: e,\r\n current: this.recursiveToggle,\r\n next: this.recursiveToggle === true ? false : true,\r\n });\r\n };\r\n\r\n render() {\r\n const suffix = this.suffix();\r\n const collapsible = !!(\r\n (this.label || this.nummer || this.opschrift || this.alternativeTitle) &&\r\n this.type !== \"LID\"\r\n );\r\n const showHeading = !!(\r\n this.wijzigactie ||\r\n collapsible ||\r\n this.label ||\r\n this.nummer ||\r\n this.opschrift ||\r\n this.alternativeTitle ||\r\n this.bevatOntwerpInformatie ||\r\n this.annotated\r\n );\r\n\r\n return (\r\n <Host not-collapsible={!collapsible}>\r\n {showHeading && (\r\n <div class=\"heading-container\" part=\"_heading-container\">\r\n {this.wijzigactie && <span class=\"wijzigactie-label\">{this.wijzigactieLabel}:</span>}\r\n <div class=\"heading\">\r\n <Heading heading={this.heading} class=\"heading-element\" onClick={this.handleHeadingClick}>\r\n {collapsible && (\r\n <button type=\"button\" class=\"toggle-button\">\r\n <dso-icon icon={this.open ? \"chevron-down\" : \"chevron-right\"}></dso-icon>\r\n </button>\r\n )}\r\n <div class=\"title\">\r\n {this.notApplicable && <span class=\"not-applicable\">Niet van toepassing:</span>}\r\n {this.label || this.nummer || this.opschrift ? (\r\n <>\r\n {this.label && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content\r\n content={this.label}\r\n onDsoAnchorClick={this.handleOzonContentAnchorClick}\r\n mark={this.mark && ((text) => this.mark?.(text, \"label\"))}\r\n onDsoOzonContentMarkItemHighlight={(e) =>\r\n this.dsoMarkItemHighlight.emit({ ...e.detail, source: \"label\" })\r\n }\r\n inline\r\n ></dso-ozon-content>\r\n </>\r\n )}\r\n {this.nummer && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content\r\n content={this.nummer}\r\n onDsoAnchorClick={this.handleOzonContentAnchorClick}\r\n mark={this.mark && ((text) => this.mark?.(text, \"nummer\"))}\r\n onDsoOzonContentMarkItemHighlight={(e) =>\r\n this.dsoMarkItemHighlight.emit({ ...e.detail, source: \"nummer\" })\r\n }\r\n inline\r\n ></dso-ozon-content>\r\n </>\r\n )}\r\n {this.opschrift && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content\r\n content={this.opschrift}\r\n onDsoAnchorClick={this.handleOzonContentAnchorClick}\r\n mark={this.mark && ((text) => this.mark?.(text, \"opschrift\"))}\r\n onDsoOzonContentMarkItemHighlight={(e) =>\r\n this.dsoMarkItemHighlight.emit({ ...e.detail, source: \"opschrift\" })\r\n }\r\n inline\r\n ></dso-ozon-content>\r\n </>\r\n )}\r\n </>\r\n ) : (\r\n this.alternativeTitle\r\n )}\r\n {suffix && <span> - [{suffix}]</span>}\r\n </div>\r\n </Heading>\r\n {this.recursiveToggle !== undefined && this.open && (\r\n <button\r\n type=\"button\"\r\n class=\"recursive-toggle\"\r\n title={this.recursiveToggle === true ? \"Verberg alles\" : \"Toon alles\"}\r\n onClick={this.handleRecursiveToggleClick}\r\n >\r\n <dso-icon icon={this.recursiveToggle === true ? \"eye\" : \"eye-slash\"} />\r\n </button>\r\n )}\r\n {this.genesteOntwerpInformatie && !this.open && !this.bevatOntwerpInformatie && (\r\n <>\r\n <dso-badge status=\"warning\" aria-describedby=\"nested-draft-description\">\r\n !\r\n </dso-badge>\r\n <dso-tooltip id=\"nested-draft-description\">Er is een ontwerp beschikbaar.</dso-tooltip>\r\n </>\r\n )}\r\n {(this.bevatOntwerpInformatie || this.annotated) && (\r\n <div class=\"addons\">\r\n {this.bevatOntwerpInformatie && (\r\n <dso-label status=\"warning\" compact>\r\n Ontwerp\r\n </dso-label>\r\n )}\r\n {this.annotated && (\r\n <dso-annotation-button\r\n identifier=\"expandable\"\r\n open={this.openAnnotation}\r\n onDsoClick={(e) => this.dsoAnnotationToggle.emit({ originalEvent: e })}\r\n ></dso-annotation-button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n <div class=\"annotation-container\" part=\"_annotation-container\">\r\n <slot name=\"annotation\" />\r\n </div>\r\n {this.open && (this.inhoud || this.gereserveerd || this.vervallen) && (\r\n <div class=\"content\" part=\"_content\">\r\n {this.gereserveerd && (\r\n <dso-alert status=\"info\">Dit onderdeel is gereserveerd voor toekomstige toevoeging.</dso-alert>\r\n )}\r\n {this.vervallen && <dso-alert status=\"info\">Dit onderdeel is vervallen.</dso-alert>}\r\n {this.inhoud && (\r\n <dso-ozon-content\r\n content={this.inhoud}\r\n onDsoAnchorClick={this.handleOzonContentAnchorClick}\r\n mark={this.mark && ((text) => this.mark?.(text, \"inhoud\"))}\r\n onDsoOzonContentMarkItemHighlight={(e) =>\r\n this.dsoMarkItemHighlight.emit({ ...e.detail, source: \"inhoud\" })\r\n }\r\n />\r\n )}\r\n </div>\r\n )}\r\n <div class=\"children-container\" part=\"_children-container\">\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\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\nbutton.dso-slider {\r\n border: 0;\r\n padding: 0;\r\n\r\n &:focus-visible {\r\n outline: 2px solid colors.$grijs-80;\r\n outline-offset: 1px;\r\n }\r\n\r\n svg {\r\n rect {\r\n fill: colors.$grijs-40;\r\n transition: fill 0.25s;\r\n }\r\n\r\n circle {\r\n @include utilities.transition(transform);\r\n\r\n transform: translateX(10px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen;\r\n }\r\n\r\n circle {\r\n transform: translateX(30px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[disabled] svg {\r\n rect {\r\n fill: colors.$grijs-20;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n\r\n &[disabled][aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen-40;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n}\r\n\r\n.dso-slider {\r\n border-radius: units.$u3;\r\n display: inline-flex;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n","import { h, Component, ComponentInterface, Event, Fragment, Prop, EventEmitter, Element, State } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\nimport { SlideToggleActiveEvent } from \"./slide-toggle.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-slide-toggle\",\r\n styleUrl: \"slide-toggle.scss\",\r\n shadow: false,\r\n})\r\nexport class SlideToggle implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoSlideToggleElement;\r\n\r\n /**\r\n * Set to true if Slide Toggle is checked.\r\n */\r\n @Prop()\r\n checked = false;\r\n\r\n /**\r\n * Disables the Slide Toggle, preventing it from checking/unchecking and therefor not emitting any events.\r\n */\r\n @Prop()\r\n disabled = false;\r\n\r\n /**\r\n * When provided the `<button>` will be labelled with `aria-label`. For a visible label provide a `<span>` inside the component.\r\n */\r\n @Prop()\r\n accessibleLabel?: string;\r\n\r\n /**\r\n * Provide the `id` of the element that labels this element. this property sets the `aria-labelledby` on the switch button.\r\n */\r\n @Prop()\r\n labelledbyId?: string;\r\n\r\n @State()\r\n hasVisibleLabel?: boolean;\r\n\r\n /**\r\n * Provide an `id` for the `<button>`. Useful for placing your to place your own `<label for=\"id\">`.\r\n */\r\n @Prop()\r\n identifier = v4();\r\n\r\n /**\r\n * Emitted when user checks or unchecks the Slide Toggle.\r\n */\r\n @Event()\r\n dsoActiveChange!: EventEmitter<SlideToggleActiveEvent>;\r\n\r\n private handleSwitch(e: Event): void {\r\n this.dsoActiveChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.hasVisibleLabel = this.host.querySelector(\"*\") !== null;\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <button\r\n id={this.identifier}\r\n role=\"switch\"\r\n class=\"dso-slider\"\r\n aria-checked={\"\" + this.checked}\r\n disabled={this.disabled}\r\n onClick={(e) => this.handleSwitch(e)}\r\n {...(this.accessibleLabel ? { \"aria-label\": this.accessibleLabel } : {})}\r\n {...(this.labelledbyId ? { \"aria-labelledby\": this.labelledbyId } : {})}\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"20\" viewBox=\"0 0 40 20\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <rect width=\"40\" height=\"20\" fill=\"currentColor\" rx=\"10\" />\r\n <circle cy=\"10\" r=\"8\" fill=\"currentColor\" />\r\n </g>\r\n </svg>\r\n </button>\r\n {this.hasVisibleLabel && (\r\n <label htmlFor={this.identifier}>\r\n <slot />\r\n </label>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as i,c as t,h as n,F as e,a}from"./p-4592810d.js";import{i as o}from"./p-9747c291.js";const s=':host{display:block}*,*::after,*::before{box-sizing:border-box}.pagination{padding-inline-start:initial;text-align:center}.pagination>li{display:inline-block;font-weight:bold;line-height:calc(2rem - 4px);text-align:center;vertical-align:middle}.pagination>li>a,.pagination>li>span{align-items:center;color:#39870c;display:flex;height:2rem;justify-content:center;position:relative;width:2rem}.pagination>li>a:active,.pagination>li>span:active{background-color:#ebf3e6}.pagination>li>span{border:2px solid transparent;border-radius:50%}.pagination>li a{line-height:2rem;text-decoration:none}.pagination>li a:hover,.pagination>li a:focus{text-decoration:none}.pagination>li a:hover::after,.pagination>li a:focus::after{border-bottom-color:#39870c}.pagination>li a::after{border-bottom:3px solid transparent;bottom:0;content:"";display:inline-block;left:0;position:absolute;width:100%}.pagination>li.active span{background-color:#39870c;color:#fff}.pagination>li+li{margin-left:8px}.dso-page-hidden{visibility:hidden}';const r=class{constructor(n){i(this,n);this.dsoSelectPage=t(this,"dsoSelectPage",7);this.sizePositionsMap={small:7,medium:9,large:11};this.availablePositions=undefined;this.totalPages=undefined;this.currentPage=undefined;this.formatHref=i=>"#"+i}sizeChangeHandler(i){this.availablePositions=this.getAvailablePositions(this.sizePositionsMap[i.detail])}clickHandler(i,t){this.dsoSelectPage.emit({originalEvent:i,page:t,isModifiedEvent:o(i)})}componentDidLoad(){var i;(i=this.responsiveElement)===null||i===void 0?void 0:i.getSize().then((i=>this.availablePositions=this.getAvailablePositions(this.sizePositionsMap[i])))}render(){var i,t,a;if(!this.totalPages){return null}if(this.availablePositions===undefined){return n("dso-responsive-element",{ref:i=>this.responsiveElement=i})}const o=this.availablePositions;const s=(i=this.currentPage)!==null&&i!==void 0?i:0;const r=this.getPages(s,this.availablePositions,this.totalPages);return n("dso-responsive-element",{ref:i=>this.responsiveElement=i},n("ul",{class:"pagination"},n("li",{class:s<=1||s>this.totalPages?"dso-page-hidden":undefined},n("a",{href:this.formatHref((t=r[r.indexOf(s)-1])!==null&&t!==void 0?t:1),"aria-label":"Vorige",onClick:i=>{var t;return s&&this.clickHandler(i,(t=r[r.indexOf(s)-1])!==null&&t!==void 0?t:1)}},n("dso-icon",{icon:"chevron-left"}))),r.map((i=>n(e,null,this.showEllipsisBeforeLast(r,i,o)&&n("li",null,n("span",null,"...")),n("li",{key:i,class:s===i?"active":undefined},s===i?n("span",{"aria-current":"page"},i):n("a",{href:this.formatHref(i),onClick:t=>this.clickHandler(t,i)},i)),this.showEllipsisAfterFirst(r,i,o)&&n("li",null,n("span",null,"..."))))),n("li",{class:s<1||s>=this.totalPages?"dso-page-hidden":undefined},n("a",{href:this.formatHref((a=r[r.indexOf(s)+1])!==null&&a!==void 0?a:this.totalPages),"aria-label":"Volgende",onClick:i=>{var t;return s&&this.totalPages&&this.clickHandler(i,(t=r[r.indexOf(s)+1])!==null&&t!==void 0?t:this.totalPages)}},n("dso-icon",{icon:"chevron-right"})))))}getAvailablePositions(i){if(i%2===0){return i-1}if(i<=3){return 3}return i}getPages(i,t,n){if(n+2<=t){return Array.from({length:n},((i,t)=>t+1))}if(t===3){return[i]}if(t===5){return[1,i,n]}return[1,...this.getPageRange(i,t,n),n]}getPageRange(i,t,n){const e=[];const a=Math.floor(t/2);if(i<=a){for(let i=2;i<=t-4;i++){e.push(i)}}if(i>=a&&i<=n-a){if(a===1){if(i>n-2){e.push(n-2)}e.push(i);if(i<3){e.push(3)}}if(a>1){const t=a-3;for(let o=Math.min(i-t,n-a);o<=Math.max(i+t,a);o++){if(o>2&&o<n-1){e.push(o)}}}}if(i>n-a){for(let i=n-(t-5);i<=n-1;i++){e.push(i)}}return e.filter(((i,t,n)=>n.indexOf(i)===t))}showEllipsisAfterFirst(i,t,n){const e=i[i.length-1];if(!e){throw new Error("No totalPages")}return i.indexOf(t)===0&&e>n-2&&!i.some((i=>i===2))&&n>=7}showEllipsisBeforeLast(i,t,n){const e=i[i.length-1];if(!e){throw new Error("No totalPages")}return i.indexOf(t)===i.length-1&&e>n-2&&!i.some((i=>i===e-1))&&n>=7}get host(){return a(this)}};r.style=s;export{r as dso_pagination};
2
- //# sourceMappingURL=p-d165ad74.entry.js.map
1
+ import{r as i,c as t,h as n,F as e,a}from"./p-4592810d.js";import{i as o}from"./p-17e4b846.js";const s=':host{display:block}*,*::after,*::before{box-sizing:border-box}.pagination{padding-inline-start:initial;text-align:center}.pagination>li{display:inline-block;font-weight:bold;line-height:calc(2rem - 4px);text-align:center;vertical-align:middle}.pagination>li>a,.pagination>li>span{align-items:center;color:#39870c;display:flex;height:2rem;justify-content:center;position:relative;width:2rem}.pagination>li>a:active,.pagination>li>span:active{background-color:#ebf3e6}.pagination>li>span{border:2px solid transparent;border-radius:50%}.pagination>li a{line-height:2rem;text-decoration:none}.pagination>li a:hover,.pagination>li a:focus{text-decoration:none}.pagination>li a:hover::after,.pagination>li a:focus::after{border-bottom-color:#39870c}.pagination>li a::after{border-bottom:3px solid transparent;bottom:0;content:"";display:inline-block;left:0;position:absolute;width:100%}.pagination>li.active span{background-color:#39870c;color:#fff}.pagination>li+li{margin-left:8px}.dso-page-hidden{visibility:hidden}';const r=class{constructor(n){i(this,n);this.dsoSelectPage=t(this,"dsoSelectPage",7);this.sizePositionsMap={small:7,medium:9,large:11};this.availablePositions=undefined;this.totalPages=undefined;this.currentPage=undefined;this.formatHref=i=>"#"+i}sizeChangeHandler(i){this.availablePositions=this.getAvailablePositions(this.sizePositionsMap[i.detail])}clickHandler(i,t){this.dsoSelectPage.emit({originalEvent:i,page:t,isModifiedEvent:o(i)})}componentDidLoad(){var i;(i=this.responsiveElement)===null||i===void 0?void 0:i.getSize().then((i=>this.availablePositions=this.getAvailablePositions(this.sizePositionsMap[i])))}render(){var i,t,a;if(!this.totalPages){return null}if(this.availablePositions===undefined){return n("dso-responsive-element",{ref:i=>this.responsiveElement=i})}const o=this.availablePositions;const s=(i=this.currentPage)!==null&&i!==void 0?i:0;const r=this.getPages(s,this.availablePositions,this.totalPages);return n("dso-responsive-element",{ref:i=>this.responsiveElement=i},n("ul",{class:"pagination"},n("li",{class:s<=1||s>this.totalPages?"dso-page-hidden":undefined},n("a",{href:this.formatHref((t=r[r.indexOf(s)-1])!==null&&t!==void 0?t:1),"aria-label":"Vorige",onClick:i=>{var t;return s&&this.clickHandler(i,(t=r[r.indexOf(s)-1])!==null&&t!==void 0?t:1)}},n("dso-icon",{icon:"chevron-left"}))),r.map((i=>n(e,null,this.showEllipsisBeforeLast(r,i,o)&&n("li",null,n("span",null,"...")),n("li",{key:i,class:s===i?"active":undefined},s===i?n("span",{"aria-current":"page"},i):n("a",{href:this.formatHref(i),onClick:t=>this.clickHandler(t,i)},i)),this.showEllipsisAfterFirst(r,i,o)&&n("li",null,n("span",null,"..."))))),n("li",{class:s<1||s>=this.totalPages?"dso-page-hidden":undefined},n("a",{href:this.formatHref((a=r[r.indexOf(s)+1])!==null&&a!==void 0?a:this.totalPages),"aria-label":"Volgende",onClick:i=>{var t;return s&&this.totalPages&&this.clickHandler(i,(t=r[r.indexOf(s)+1])!==null&&t!==void 0?t:this.totalPages)}},n("dso-icon",{icon:"chevron-right"})))))}getAvailablePositions(i){if(i%2===0){return i-1}if(i<=3){return 3}return i}getPages(i,t,n){if(n+2<=t){return Array.from({length:n},((i,t)=>t+1))}if(t===3){return[i]}if(t===5){return[1,i,n]}return[1,...this.getPageRange(i,t,n),n]}getPageRange(i,t,n){const e=[];const a=Math.floor(t/2);if(i<=a){for(let i=2;i<=t-4;i++){e.push(i)}}if(i>=a&&i<=n-a){if(a===1){if(i>n-2){e.push(n-2)}e.push(i);if(i<3){e.push(3)}}if(a>1){const t=a-3;for(let o=Math.min(i-t,n-a);o<=Math.max(i+t,a);o++){if(o>2&&o<n-1){e.push(o)}}}}if(i>n-a){for(let i=n-(t-5);i<=n-1;i++){e.push(i)}}return e.filter(((i,t,n)=>n.indexOf(i)===t))}showEllipsisAfterFirst(i,t,n){const e=i[i.length-1];if(!e){throw new Error("No totalPages")}return i.indexOf(t)===0&&e>n-2&&!i.some((i=>i===2))&&n>=7}showEllipsisBeforeLast(i,t,n){const e=i[i.length-1];if(!e){throw new Error("No totalPages")}return i.indexOf(t)===i.length-1&&e>n-2&&!i.some((i=>i===e-1))&&n>=7}get host(){return a(this)}};r.style=s;export{r as dso_pagination};
2
+ //# sourceMappingURL=p-6d602847.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,h as i,H as o}from"./p-4592810d.js";const e='*,*::after,*::before{box-sizing:border-box}:host{display:block;padding-block:16px;position:relative}:host.dso-has-counter{padding-top:2.5rem;position:relative}:host .dso-step-counter{background-color:#275937;border:8px solid #79b929;border-radius:50%;box-sizing:content-box;color:#fff;font-size:1.25rem;font-weight:500;height:2rem;left:16px;line-height:2rem;position:absolute;text-align:center;top:-1.5rem;width:2rem}:host .dso-step-counter svg.di{height:1.5rem;margin-top:0.25rem;width:1.5rem}:host>dso-icon{vertical-align:text-top}:host(.divider) .dso-action-list-item::after{border-bottom:0.25rem dashed #6ca4d9;bottom:0;content:"";display:block;height:24px;position:absolute;left:calc(2rem + 16px + 16px + 8px - 8px);width:calc(100% - (2rem + 16px + 16px + 8px - 8px))}@media screen and (min-width: 480px){:host(.divider) .dso-action-list-item::after{left:calc(2rem + 16px + 16px + 8px);width:calc(100% - (2rem + 16px + 16px + 8px))}}h3{color:#275937;color:#275937;font-size:1.125rem;font-weight:600;margin-block-end:16px;margin-block-start:0;min-height:48px;padding-block-start:9px}@media screen and (min-width: 480px){h3{font-size:1.25rem}}.dso-action-list-item{display:grid;grid-template-columns:calc(2rem + 16px + 16px + 8px - 8px) 1fr}@media screen and (min-width: 480px){.dso-action-list-item{grid-template-columns:calc(2rem + 16px + 16px + 8px) 1fr}}.dso-action-list-item .dso-step-counter{position:unset}.dso-action-list-item .action-list-item-content{grid-column:2/2}dso-icon{height:48px;width:48px}';const s=class{constructor(i){t(this,i);this.step=undefined;this.itemTitle=undefined;this.flowLine=false;this.warning=false;this.divider=false}render(){return i(o,{class:{divider:this.divider,"flow-line":this.flowLine}},i("div",{class:"dso-action-list-item"},this.warning?i("dso-icon",{icon:"status-warning"}):i("div",{class:"dso-step-counter"},this.step),i("div",{class:"action-list-item-content"},this.itemTitle&&i("h3",null,this.itemTitle),i("slot",null))))}};s.style=e;export{s as dso_action_list_item};
2
+ //# sourceMappingURL=p-977dde7f.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["actionListItemCss","ActionListItem","render","h","Host","class","divider","this","flowLine","warning","icon","step","itemTitle"],"sources":["src/components/action-list/components/action-list-item.scss?tag=dso-action-list-item&encapsulation=shadow","src/components/action-list/components/action-list-item.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/components/headings\";\r\n@use \"~dso-toolkit/src/components/step-counter\";\r\n@use \"~dso-toolkit/src/components/action-list/action-list.variables\" as action-list-variables;\r\n@use \"~dso-toolkit/src/components/action-list/components/action-list-item.variables\" as action-list-item-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n @include step-counter.step-counter();\r\n\r\n display: block;\r\n padding-block: action-list-item-variables.$padding-vertical;\r\n position: relative;\r\n}\r\n\r\n:host(.divider) {\r\n .dso-action-list-item {\r\n &::after {\r\n border-bottom: 0.25rem dashed colors.$lichtblauw;\r\n bottom: 0;\r\n content: \"\";\r\n display: block;\r\n height: units.$u3;\r\n position: absolute;\r\n left: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin);\r\n width: calc(100% - (action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin));\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n left: action-list-variables.$content-indent;\r\n width: calc(100% - action-list-variables.$content-indent);\r\n }\r\n }\r\n }\r\n}\r\n\r\nh3 {\r\n @include headings.base();\r\n @include headings.h3();\r\n\r\n margin-block-end: units.$u2;\r\n margin-block-start: 0;\r\n min-height: units.$u6;\r\n padding-block-start: 9px;\r\n}\r\n\r\n.dso-action-list-item {\r\n display: grid;\r\n grid-template-columns: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin) 1fr;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n grid-template-columns: action-list-variables.$content-indent 1fr;\r\n }\r\n\r\n .dso-step-counter {\r\n position: unset;\r\n }\r\n\r\n .action-list-item-content {\r\n grid-column: 2 / 2;\r\n }\r\n}\r\n\r\ndso-icon {\r\n height: units.$u6;\r\n width: units.$u6;\r\n}\r\n","import { h, Component, ComponentInterface, Host, Prop } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-action-list-item\",\r\n styleUrl: \"action-list-item.scss\",\r\n shadow: true,\r\n})\r\nexport class ActionListItem implements ComponentInterface {\r\n /**\r\n * The step of the Action List Item.\r\n */\r\n @Prop()\r\n step!: number;\r\n\r\n /**\r\n * The title of the item.\r\n */\r\n @Prop()\r\n itemTitle?: string;\r\n\r\n /**\r\n * Show flow line to next step\r\n */\r\n @Prop()\r\n flowLine = false;\r\n\r\n /**\r\n * When there is a warning.\r\n */\r\n @Prop()\r\n warning = false;\r\n\r\n /**\r\n * Places a dashed line at the bottom of the item.\r\n */\r\n @Prop()\r\n divider = false;\r\n\r\n render() {\r\n return (\r\n <Host\r\n class={{\r\n divider: this.divider,\r\n \"flow-line\": this.flowLine,\r\n }}\r\n >\r\n <div class=\"dso-action-list-item\">\r\n {this.warning ? <dso-icon icon=\"status-warning\"></dso-icon> : <div class=\"dso-step-counter\">{this.step}</div>}\r\n <div class=\"action-list-item-content\">\r\n {this.itemTitle && <h3>{this.itemTitle}</h3>}\r\n <slot />\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"kDAAA,MAAMA,EAAoB,2+C,MCObC,EAAc,M,oFAiBd,M,aAMD,M,aAMA,K,CAEV,MAAAC,GACE,OACEC,EAACC,EAAI,CACHC,MAAO,CACLC,QAASC,KAAKD,QACd,YAAaC,KAAKC,WAGpBL,EAAA,OAAKE,MAAM,wBACRE,KAAKE,QAAUN,EAAA,YAAUO,KAAK,mBAA+BP,EAAA,OAAKE,MAAM,oBAAoBE,KAAKI,MAClGR,EAAA,OAAKE,MAAM,4BACRE,KAAKK,WAAaT,EAAA,UAAKI,KAAKK,WAC7BT,EAAA,e"}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as o,f as t,h as a,H as r,a as n}from"./p-4592810d.js";import{i as s}from"./p-17e4b846.js";const i=e=>e instanceof HTMLButtonElement||e instanceof HTMLAnchorElement||e instanceof HTMLInputElement||e.tagName.startsWith("DSO-TOGGLETIP");const d=':host .dso-card-selectable,:host .dso-card-image{grid-row:span 2}a{background-color:transparent;color:var(--link-color);text-decoration:underline}a:hover,a:focus{color:var(--link-hover-color);text-decoration:underline}a:active{text-decoration:none}a:visited{color:var(--link-visited-color)}a:not(.dso-primary,.dso-secondary,.dso-tertiary).download{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:1.5em;background-position:bottom 0 right 0;background-image:url("./dso-icons.svg#img-download")}a:not(.dso-primary,.dso-secondary,.dso-tertiary).download:hover,a:not(.dso-primary,.dso-secondary,.dso-tertiary).download:focus{background-image:url("./dso-icons.svg#img-download-scampi")}a:not(.dso-primary,.dso-secondary,.dso-tertiary).extern{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:1.5em;background-position:bottom 0 right 0;background-image:url("./dso-icons.svg#img-external-link")}a:not(.dso-primary,.dso-secondary,.dso-tertiary).extern:hover,a:not(.dso-primary,.dso-secondary,.dso-tertiary).extern:focus{background-image:url("./dso-icons.svg#img-external-link-scampi")}a:not(.dso-primary,.dso-secondary,.dso-tertiary)[href^="tel:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:1.5em;background-position:bottom 0 left 0;background-image:url("./dso-icons.svg#img-call-grasgroen")}a:not(.dso-primary,.dso-secondary,.dso-tertiary)[href^="tel:"]:hover,a:not(.dso-primary,.dso-secondary,.dso-tertiary)[href^="tel:"]:focus{background-image:url("./dso-icons.svg#img-call-scampi")}a:not(.dso-primary,.dso-secondary,.dso-tertiary)[href^="mailto:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:1.5em;background-position:bottom 0 left 0;background-image:url("./dso-icons.svg#img-email-grasgroen")}a:not(.dso-primary,.dso-secondary,.dso-tertiary)[href^="mailto:"]:hover,a:not(.dso-primary,.dso-secondary,.dso-tertiary)[href^="mailto:"]:focus{background-image:url("./dso-icons.svg#img-email-scampi")}*,*::after,*::before{box-sizing:border-box}:host{display:block}:host .dso-card-heading{align-items:center;display:flex;margin-bottom:8px}@media screen and (max-width: 480px){:host .dso-card-heading{flex-wrap:wrap}}:host .dso-card-image{margin-right:8px}:host(:hover) .dso-card-heading a{color:#275937;text-decoration:underline}.dso-card-heading a{text-decoration:none}.heading-anchor{color:#275937;display:flex}.heading-anchor dso-icon{flex-shrink:0}';const c=class{constructor(t){e(this,t);this.dsoCardClicked=o(this,"dsoCardClicked",7);this.clickable=true;this.imageShape="normal";this.href=undefined}connectedCallback(){this.mutationObserver=new MutationObserver((()=>t(this.host)));this.mutationObserver.observe(this.host,{attributes:true,childList:true})}disconnectedCallback(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect();delete this.mutationObserver}clickEventHandler(e){if(!(e.target instanceof HTMLElement)||!this.clickable&&!this.href){return}let o=e.target;while(o!==this.host&&o!==null){if(i(o)||o===null){return}if(o.parentNode instanceof ShadowRoot&&o.parentNode.host instanceof HTMLElement){o=o.parentNode.host}else{o=o.parentElement}}return this.dsoCardClicked.emit({originalEvent:e,isModifiedEvent:s(e)})}get selectableSlottedElement(){return this.host.querySelector("[slot='selectable']")}get imageSlottedElement(){return this.host.querySelector("[slot='image']")}get headingSlottedElement(){return this.host.querySelector("[slot='heading']")}get interactionsSlottedElement(){return this.host.querySelector("[slot='interactions']")}render(){const e=this.selectableSlottedElement!==null;const o=this.imageSlottedElement!==null;return a(r,{onClick:e=>this.clickEventHandler(e),"is-selectable":e,"has-image":o},a("div",{class:"dso-card-selectable",hidden:!e},a("slot",{name:"selectable"})),a("div",{class:"dso-card-image",hidden:!o},a("slot",{name:"image"})),a("div",{class:"dso-card-heading"},this.headingSlottedElement instanceof HTMLAnchorElement||!this.href?a("slot",{name:"heading"}):a("a",{href:this.href,class:"heading-anchor"},a("slot",{name:"heading"}),a("dso-icon",{icon:"chevron-right"})),this.interactionsSlottedElement!==null&&a("slot",{name:"interactions"})),a("div",{class:"dso-card-content"},a("slot",{name:"content"})))}get host(){return n(this)}};c.style=d;export{c as dso_card};
2
+ //# sourceMappingURL=p-9c34ee39.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isInteractiveElement","element","HTMLButtonElement","HTMLAnchorElement","HTMLInputElement","tagName","startsWith","cardCss","Card","connectedCallback","this","mutationObserver","MutationObserver","forceUpdate","host","observe","attributes","childList","disconnectedCallback","_a","disconnect","clickEventHandler","e","target","HTMLElement","clickable","href","parentNode","ShadowRoot","parentElement","dsoCardClicked","emit","originalEvent","isModifiedEvent","selectableSlottedElement","querySelector","imageSlottedElement","headingSlottedElement","interactionsSlottedElement","render","isSelectable","hasImage","h","Host","onClick","class","hidden","name","icon"],"sources":["src/utils/is-interactive-element.ts","src/components/card/card.scss?tag=dso-card&encapsulation=shadow","src/components/card/card.tsx"],"sourcesContent":["export const isInteractiveElement = (element: HTMLElement): boolean => {\r\n return (\r\n element instanceof HTMLButtonElement ||\r\n element instanceof HTMLAnchorElement ||\r\n element instanceof HTMLInputElement ||\r\n element.tagName.startsWith(\"DSO-TOGGLETIP\")\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/card\";\r\n@use \"~dso-toolkit/src/components/anchor/anchor\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n @include card.root();\r\n\r\n display: block;\r\n}\r\n\r\n:host(:hover) {\r\n .dso-card-heading a {\r\n color: card.$heading-anchor-hover-color;\r\n text-decoration: underline;\r\n }\r\n}\r\n\r\n.dso-card-heading a {\r\n text-decoration: none;\r\n}\r\n\r\n.heading-anchor {\r\n color: card.$heading-anchor-color;\r\n display: flex;\r\n\r\n dso-icon {\r\n flex-shrink: 0;\r\n }\r\n}\r\n","import { h, Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, forceUpdate } from \"@stencil/core\";\r\n\r\nimport { isInteractiveElement } from \"../../utils/is-interactive-element\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { DsoCardClickedEvent, ImageShape } from \"./card.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-card\",\r\n styleUrl: \"card.scss\",\r\n shadow: true,\r\n})\r\nexport class Card implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoCardElement;\r\n\r\n /**\r\n * Whether or not the Card is clickable. This is NOT a boolean attribute. Set to \"false\" to make the Card non-clickable.\r\n *\r\n * @deprecated Use `href` instead and `<ELEMENT_TYPE slot=\"heading\">` should NOT be of element type `a` (anchor).\r\n */\r\n @Prop({ reflect: true })\r\n clickable = true;\r\n\r\n /**\r\n * Presentation of image in header.\r\n * - \"normal\" (\"24 x 24\").\r\n * - \"wide\" (\"30 x 26\")\r\n */\r\n @Prop({ reflect: true })\r\n imageShape: ImageShape = \"normal\";\r\n\r\n /**\r\n * The URL to which the Card heading links.\r\n */\r\n @Prop({ reflect: true })\r\n href?: string;\r\n\r\n /**\r\n * Emitted when the Card is clickable and the user clicked the Card.\r\n */\r\n @Event()\r\n dsoCardClicked!: EventEmitter<DsoCardClickedEvent>;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n connectedCallback(): void {\r\n this.mutationObserver = new MutationObserver(() => forceUpdate(this.host));\r\n\r\n this.mutationObserver.observe(this.host, { attributes: true, childList: true });\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n\r\n private clickEventHandler(e: MouseEvent) {\r\n if (!(e.target instanceof HTMLElement) || (!this.clickable && !this.href)) {\r\n return;\r\n }\r\n\r\n let element: HTMLElement | null = e.target;\r\n\r\n while (element !== this.host && element !== null) {\r\n if (isInteractiveElement(element) || element === null) {\r\n return;\r\n }\r\n\r\n if (element.parentNode instanceof ShadowRoot && element.parentNode.host instanceof HTMLElement) {\r\n element = element.parentNode.host;\r\n } else {\r\n element = element.parentElement;\r\n }\r\n }\r\n\r\n return this.dsoCardClicked.emit({ originalEvent: e, isModifiedEvent: isModifiedEvent(e) });\r\n }\r\n\r\n get selectableSlottedElement() {\r\n return this.host.querySelector(\"[slot='selectable']\");\r\n }\r\n\r\n get imageSlottedElement() {\r\n return this.host.querySelector(\"[slot='image']\");\r\n }\r\n\r\n get headingSlottedElement() {\r\n return this.host.querySelector(\"[slot='heading']\");\r\n }\r\n\r\n get interactionsSlottedElement() {\r\n return this.host.querySelector(\"[slot='interactions']\");\r\n }\r\n\r\n render() {\r\n const isSelectable = this.selectableSlottedElement !== null;\r\n const hasImage = this.imageSlottedElement !== null;\r\n\r\n return (\r\n <Host onClick={(e: MouseEvent) => this.clickEventHandler(e)} is-selectable={isSelectable} has-image={hasImage}>\r\n <div class=\"dso-card-selectable\" hidden={!isSelectable}>\r\n <slot name=\"selectable\" />\r\n </div>\r\n <div class=\"dso-card-image\" hidden={!hasImage}>\r\n <slot name=\"image\" />\r\n </div>\r\n <div class=\"dso-card-heading\">\r\n {this.headingSlottedElement instanceof HTMLAnchorElement || !this.href ? (\r\n <slot name=\"heading\" />\r\n ) : (\r\n <a href={this.href} class=\"heading-anchor\">\r\n <slot name=\"heading\" />\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n )}\r\n {this.interactionsSlottedElement !== null && <slot name=\"interactions\" />}\r\n </div>\r\n <div class=\"dso-card-content\">\r\n <slot name=\"content\" />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"2GAAO,MAAMA,EAAwBC,GAEjCA,aAAmBC,mBACnBD,aAAmBE,mBACnBF,aAAmBG,kBACnBH,EAAQI,QAAQC,WAAW,iBCL/B,MAAMC,EAAU,s6E,MCYHC,EAAI,M,uFAUH,K,gBAQa,S,oBAgBzB,iBAAAC,GACEC,KAAKC,iBAAmB,IAAIC,kBAAiB,IAAMC,EAAYH,KAAKI,QAEpEJ,KAAKC,iBAAiBI,QAAQL,KAAKI,KAAM,CAAEE,WAAY,KAAMC,UAAW,M,CAG1E,oBAAAC,G,OACEC,EAAAT,KAAKC,oBAAgB,MAAAQ,SAAA,SAAAA,EAAEC,oBAEhBV,KAAKC,gB,CAGN,iBAAAU,CAAkBC,GACxB,KAAMA,EAAEC,kBAAkBC,eAAkBd,KAAKe,YAAcf,KAAKgB,KAAO,CACzE,M,CAGF,IAAIzB,EAA8BqB,EAAEC,OAEpC,MAAOtB,IAAYS,KAAKI,MAAQb,IAAY,KAAM,CAChD,GAAID,EAAqBC,IAAYA,IAAY,KAAM,CACrD,M,CAGF,GAAIA,EAAQ0B,sBAAsBC,YAAc3B,EAAQ0B,WAAWb,gBAAgBU,YAAa,CAC9FvB,EAAUA,EAAQ0B,WAAWb,I,KACxB,CACLb,EAAUA,EAAQ4B,a,EAItB,OAAOnB,KAAKoB,eAAeC,KAAK,CAAEC,cAAeV,EAAGW,gBAAiBA,EAAgBX,I,CAGvF,4BAAIY,GACF,OAAOxB,KAAKI,KAAKqB,cAAc,sB,CAGjC,uBAAIC,GACF,OAAO1B,KAAKI,KAAKqB,cAAc,iB,CAGjC,yBAAIE,GACF,OAAO3B,KAAKI,KAAKqB,cAAc,mB,CAGjC,8BAAIG,GACF,OAAO5B,KAAKI,KAAKqB,cAAc,wB,CAGjC,MAAAI,GACE,MAAMC,EAAe9B,KAAKwB,2BAA6B,KACvD,MAAMO,EAAW/B,KAAK0B,sBAAwB,KAE9C,OACEM,EAACC,EAAI,CAACC,QAAUtB,GAAkBZ,KAAKW,kBAAkBC,GAAE,gBAAiBkB,EAAY,YAAaC,GACnGC,EAAA,OAAKG,MAAM,sBAAsBC,QAASN,GACxCE,EAAA,QAAMK,KAAK,gBAEbL,EAAA,OAAKG,MAAM,iBAAiBC,QAASL,GACnCC,EAAA,QAAMK,KAAK,WAEbL,EAAA,OAAKG,MAAM,oBACRnC,KAAK2B,iCAAiClC,oBAAsBO,KAAKgB,KAChEgB,EAAA,QAAMK,KAAK,YAEXL,EAAA,KAAGhB,KAAMhB,KAAKgB,KAAMmB,MAAM,kBACxBH,EAAA,QAAMK,KAAK,YACXL,EAAA,YAAUM,KAAK,mBAGlBtC,KAAK4B,6BAA+B,MAAQI,EAAA,QAAMK,KAAK,kBAE1DL,EAAA,OAAKG,MAAM,oBACTH,EAAA,QAAMK,KAAK,a"}