@dso-toolkit/core 65.0.2 → 65.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/cjs/dso-alert_6.cjs.entry.js +4 -13
  2. package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +2 -2
  4. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-label_2.cjs.entry.js +1 -1
  7. package/dist/cjs/dso-renvooi_2.cjs.entry.js +19 -16
  8. package/dist/cjs/dso-renvooi_2.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  10. package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
  11. package/dist/cjs/dso-tabs.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  13. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  14. package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
  15. package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
  16. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +8 -2
  17. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/collection/components/document-component/document-component.css +29 -4
  20. package/dist/collection/components/document-component/document-component.js +2 -2
  21. package/dist/collection/components/document-component/document-component.js.map +1 -1
  22. package/dist/collection/components/document-component-demo/document-component.demo.js +8 -2
  23. package/dist/collection/components/document-component-demo/document-component.demo.js.map +1 -1
  24. package/dist/collection/components/ozon-content/nodes/figuur.node.js +1 -10
  25. package/dist/collection/components/ozon-content/nodes/figuur.node.js.map +1 -1
  26. package/dist/collection/components/ozon-content/ozon-content.css +0 -5
  27. package/dist/collection/components/panel/panel.css +7 -5
  28. package/dist/collection/components/renvooi/renvooi.css +4 -0
  29. package/dist/collection/components/renvooi/renvooi.js +17 -14
  30. package/dist/collection/components/renvooi/renvooi.js.map +1 -1
  31. package/dist/collection/components/responsive-element/responsive-element.js +1 -1
  32. package/dist/collection/components/scrollable/scrollable.js +2 -2
  33. package/dist/collection/components/selectable/selectable.js +1 -1
  34. package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
  35. package/dist/collection/components/table/table.js +1 -1
  36. package/dist/collection/components/tabs/tabs.js +1 -1
  37. package/dist/collection/components/toggletip/toggletip.js +1 -1
  38. package/dist/collection/components/tooltip/tooltip.js +1 -1
  39. package/dist/collection/components/tree-view/tree-view.js +1 -1
  40. package/dist/collection/components/viewer-grid/viewer-grid.js +1 -1
  41. package/dist/components/document-component.js +3 -3
  42. package/dist/components/document-component.js.map +1 -1
  43. package/dist/components/dso-tabs.js +1 -1
  44. package/dist/components/dso-tree-view.js +1 -1
  45. package/dist/components/dso-viewer-grid.js +1 -1
  46. package/dist/components/dsot-document-component-demo.js +8 -2
  47. package/dist/components/dsot-document-component-demo.js.map +1 -1
  48. package/dist/components/ozon-content.js +2 -11
  49. package/dist/components/ozon-content.js.map +1 -1
  50. package/dist/components/panel.js +1 -1
  51. package/dist/components/panel.js.map +1 -1
  52. package/dist/components/renvooi.js +19 -21
  53. package/dist/components/renvooi.js.map +1 -1
  54. package/dist/components/responsive-element.js +1 -1
  55. package/dist/components/scrollable.js +2 -2
  56. package/dist/components/selectable.js +1 -1
  57. package/dist/components/slide-toggle.js +1 -1
  58. package/dist/components/table.js +1 -1
  59. package/dist/components/toggletip.js +1 -1
  60. package/dist/components/tooltip.js +1 -1
  61. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  62. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  63. package/dist/dso-toolkit/p-0923d70e.entry.js +2 -0
  64. package/dist/dso-toolkit/{p-0c228908.entry.js → p-2548d79d.entry.js} +2 -2
  65. package/dist/dso-toolkit/p-2f044f6f.entry.js +2 -0
  66. package/dist/dso-toolkit/{p-9772e3b6.entry.js → p-2fd338be.entry.js} +2 -2
  67. package/dist/dso-toolkit/p-2fd338be.entry.js.map +1 -0
  68. package/dist/dso-toolkit/{p-2a83ec2c.entry.js → p-373f5f5a.entry.js} +2 -2
  69. package/dist/dso-toolkit/p-3aa57e10.entry.js +2 -0
  70. package/dist/dso-toolkit/p-3aa57e10.entry.js.map +1 -0
  71. package/dist/dso-toolkit/p-68ae3f33.entry.js +2 -0
  72. package/dist/dso-toolkit/p-68ae3f33.entry.js.map +1 -0
  73. package/dist/dso-toolkit/{p-c0460667.entry.js → p-95b8d413.entry.js} +2 -2
  74. package/dist/dso-toolkit/{p-5db11fa4.entry.js → p-ad60872b.entry.js} +2 -2
  75. package/dist/dso-toolkit/{p-e4eed4a2.entry.js → p-c7beb24a.entry.js} +2 -2
  76. package/dist/dso-toolkit/p-d01d8bb1.entry.js +2 -0
  77. package/dist/dso-toolkit/p-d01d8bb1.entry.js.map +1 -0
  78. package/dist/dso-toolkit/{p-85d58afe.entry.js → p-e220ee04.entry.js} +2 -2
  79. package/dist/esm/dso-alert_6.entry.js +4 -13
  80. package/dist/esm/dso-alert_6.entry.js.map +1 -1
  81. package/dist/esm/dso-annotation-locatie_2.entry.js +2 -2
  82. package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
  83. package/dist/esm/dso-info_2.entry.js +1 -1
  84. package/dist/esm/dso-label_2.entry.js +1 -1
  85. package/dist/esm/dso-renvooi_2.entry.js +19 -16
  86. package/dist/esm/dso-renvooi_2.entry.js.map +1 -1
  87. package/dist/esm/dso-responsive-element.entry.js +1 -1
  88. package/dist/esm/dso-scrollable.entry.js +2 -2
  89. package/dist/esm/dso-tabs.entry.js +1 -1
  90. package/dist/esm/dso-toggletip.entry.js +1 -1
  91. package/dist/esm/dso-toolkit.js +1 -1
  92. package/dist/esm/dso-tree-view.entry.js +1 -1
  93. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  94. package/dist/esm/dsot-document-component-demo.entry.js +8 -2
  95. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
  96. package/dist/esm/loader.js +1 -1
  97. package/dist/types/components/document-component-demo/document-component.demo.d.ts +1 -0
  98. package/dist/types/components/ozon-content/nodes/figuur.node.d.ts +0 -3
  99. package/package.json +2 -2
  100. package/dist/dso-toolkit/p-18318bd5.entry.js +0 -2
  101. package/dist/dso-toolkit/p-18318bd5.entry.js.map +0 -1
  102. package/dist/dso-toolkit/p-2e413e3d.entry.js +0 -2
  103. package/dist/dso-toolkit/p-34c19fc1.entry.js +0 -2
  104. package/dist/dso-toolkit/p-391deb2a.entry.js +0 -2
  105. package/dist/dso-toolkit/p-391deb2a.entry.js.map +0 -1
  106. package/dist/dso-toolkit/p-54dd8d20.entry.js +0 -2
  107. package/dist/dso-toolkit/p-54dd8d20.entry.js.map +0 -1
  108. package/dist/dso-toolkit/p-9772e3b6.entry.js.map +0 -1
  109. /package/dist/dso-toolkit/{p-2e413e3d.entry.js.map → p-0923d70e.entry.js.map} +0 -0
  110. /package/dist/dso-toolkit/{p-0c228908.entry.js.map → p-2548d79d.entry.js.map} +0 -0
  111. /package/dist/dso-toolkit/{p-34c19fc1.entry.js.map → p-2f044f6f.entry.js.map} +0 -0
  112. /package/dist/dso-toolkit/{p-2a83ec2c.entry.js.map → p-373f5f5a.entry.js.map} +0 -0
  113. /package/dist/dso-toolkit/{p-c0460667.entry.js.map → p-95b8d413.entry.js.map} +0 -0
  114. /package/dist/dso-toolkit/{p-5db11fa4.entry.js.map → p-ad60872b.entry.js.map} +0 -0
  115. /package/dist/dso-toolkit/{p-e4eed4a2.entry.js.map → p-c7beb24a.entry.js.map} +0 -0
  116. /package/dist/dso-toolkit/{p-85d58afe.entry.js.map → p-e220ee04.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["alertCss","DsoAlertStyle0","Alert","render","status","statusMap","get","this","Error","h","key","class","clsx","compact","role","roleAlert","undefined","icon","Map","badgeCss","DsoBadgeStyle0","Badge","imageOverlayCss","DsoImageOverlayStyle0","wijzigactieLabels","verwijder","voegtoe","Dimmer","active","src","alt","ref","click","children","type","onClick","ImageOverlay","titelSlot","bijschriftSlot","loadListener","event","target","HTMLImageElement","setZoomable","connectedCallback","host","querySelector","componentDidLoad","resizeObserver","ResizeObserver","debounce","imgElement","mutationObserver","MutationObserver","e","forceUpdate","_a","_b","disconnect","initZoomableImage","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","trap","deactivate","_c","complete","imageElement","width","naturalWidth","height","naturalHeight","zoomable","isWijzigactie","wijzigactie","editActionLabel","button","element","buttonElement","Host","focus","wrapperElement","name","hidden","componentDidRender","createFocusTrap","escapeDeactivates","clickOutsideDeactivates","MouseEvent","composedPath","setReturnFocus","onDeactivate","activate","getNodeName","node","Element","localName","nodeName","includes","substring","indexOf","wijzigactieToClassName","parseWijzigactieFromNode","getAttribute","WrapWijzigactie","isNestedAl","path","some","n","OzonContentAlNode","constructor","mapNodeToJsx","inline","content","childNodes","className","OzonContentBronNode","OzonContentDocumentNode","Fragment","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","toString","Symbol","symbolProto","symbolToString","baseToString","value","isSymbol","call","result","createCompounder","callback","words","deburr","replace","isObjectLike","kebabCase","word","toLowerCase","pattern","guard","lodash_kebabcase","OzonContentExtRefNode","href","tagName","rel","OzonContentFallbackNode","Bijschrift","bijschrift","bron","inhoud","OzonContentFiguurNode","getStyle","breedte","hoogte","Array","from","titel","find","textContent","illustratieNode","bijschriftNode","illustratie","naam","uitlijning","locatie","preventLayoutShift","Number","slot","_f","_e","_d","style","OzonContentInhoudNode","richContent","OzonContentInlineTekstAfbeeldingNode","OzonContentInlineNodes","Tag","OzonContentIntIoRefNode","emitAnchorClick","intRefOnClick","preventDefault","currentTarget","HTMLAnchorElement","documentComponent","originalEvent","OzonContentIntRefNode","OzonContentLijstNode","parseTypeFromLijstNode","aanhef","sluiting","listItems","filter","map","item","itemNodes","liNummer","liWijzigactie","OzonContentNieuweTekstNode","OzonContentNootNode","handles","identify","state","openNoteId","setState","noteId","console","error","noteControlsId","nootNummer","onBlur","id","stateless","descriptive","querySelectorAll","OzonContentOpschriftNode","mapColspecs","count","nodeList","elements","totalWidth","getTotalWidth","columns","colNumber","colsep","number","parseInt","rowsep","getWidth","reduce","colWidth","isNaN","Math","round","Colgroup","colspecs","colspec","getColspecStartColsep","nameStart","colspecStart","c","getColspecStartRowsep","getData","cell","row","parentElement","tgroup","table","moreRows","nameEnd","getColspan","colspecEnd","colspan","Cell","context","rowSpan","colSpan","Rows","rows","mapData","colAttribute","columnCount","caption","headRows","bodyRows","frame","OzonContentTableNode","uuidv4","assign","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","DsoOzonContentStyle0","OzonContent","handleMarkItemHighlight","elementRef","dsoOzonContentMarkItemHighlight","emit","contentWatcher","dsoAnchorClick","transformed","panelCss","DsoPanelStyle0","Panel","dsoCloseClick","tableCss","DsoTableStyle0","Table","labelledbyId","v4","startResponsiveBehavior","componentWillLoad","entries","setResponsiveTable","setFocusTrap","trim","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/badge/badge.scss?tag=dso-badge&encapsulation=shadow","src/components/badge/badge.tsx","src/components/image-overlay/image-overlay.scss?tag=dso-image-overlay&encapsulation=shadow","src/components/image-overlay/image-overlay.tsx","src/components/ozon-content/get-node-name.function.ts","src/components/ozon-content/functions/wijzigactie-to-class-name.function.ts","src/components/ozon-content/functions/parse-wijzigactie-from-node.function.ts","src/components/ozon-content/functional-components/wrap-wijzigactie.functional-component.tsx","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/panel/panel.scss?tag=dso-panel&encapsulation=shadow","src/components/panel/panel.tsx","src/components/table/table.scss?tag=dso-table&encapsulation=shadow","src/components/table/table.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/alert\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host(:not(:first-child)) {\r\n margin-block-start: units.$u3;\r\n}\r\n\r\n:host([compact]:not([compact=\"false\"])) {\r\n position: relative;\r\n @include alert.compact();\r\n}\r\n\r\n:host([status=\"success\"]) {\r\n @include alert.status-success();\r\n}\r\n\r\n:host([status=\"success\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$success-compact-accent-bg;\r\n }\r\n}\r\n\r\n:host([status=\"error\"]) {\r\n @include alert.status-error();\r\n}\r\n\r\n:host([status=\"error\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$danger-compact-accent-bg;\r\n }\r\n}\r\n\r\n:host([status=\"warning\"]) {\r\n @include alert.status-warning();\r\n}\r\n\r\n:host([status=\"warning\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$warning-compact-accent-bg;\r\n }\r\n}\r\n\r\n:host([status=\"info\"]) {\r\n @include alert.status-info();\r\n}\r\n\r\n:host([status=\"info\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$info-compact-accent-bg;\r\n }\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 block-size: units.$u4;\r\n inline-size: units.$u4;\r\n }\r\n\r\n &.dso-compact {\r\n min-block-size: alert.$inline-padding;\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({ reflect: true })\r\n status!: \"success\" | \"info\" | \"warning\" | \"error\";\r\n\r\n /**\r\n * Whether or not to show the role attribute with value \"alert\". To control the tooltip add the `role-alert` attribute.\r\n */\r\n @Prop()\r\n roleAlert?: boolean;\r\n\r\n /**\r\n * Show alert as compact variant (without icon)\r\n */\r\n @Prop({ reflect: true })\r\n compact?: boolean;\r\n\r\n 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\r\n class={clsx(\"alert\", `alert-${this.status}`, { \"dso-compact\": this.compact })}\r\n role={this.roleAlert ? \"alert\" : undefined}\r\n >\r\n {!this.compact && <dso-icon 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/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\nimport { BadgeStatus } from \"./badge.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-badge\",\r\n styleUrl: \"badge.scss\",\r\n shadow: true,\r\n})\r\nexport class Badge {\r\n /**\r\n * The status of the Badge.\r\n */\r\n @Prop()\r\n status?: BadgeStatus;\r\n\r\n render() {\r\n return (\r\n <span class={clsx(\"dso-badge\", { [`badge-${this.status}`]: this.status })}>\r\n <slot></slot>\r\n </span>\r\n );\r\n }\r\n}\r\n","@use \"sass:color\";\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n:host {\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n:host(:hover) .open,\r\n.open:focus {\r\n opacity: 1;\r\n}\r\n\r\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 // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\r\n & {\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-inline-size: auto;\r\n padding: units.$u1;\r\n opacity: 0;\r\n position: absolute;\r\n inset-inline-end: units.$u2;\r\n inset-block-start: units.$u2;\r\n }\r\n}\r\n\r\n.dimmer {\r\n position: fixed;\r\n inset: 0;\r\n z-index: zindex.$image-overlay - 1;\r\n display: flex;\r\n padding: units.$u4;\r\n background-color: color.scale(colors.$wit, $alpha: -20%);\r\n justify-content: center;\r\n}\r\n\r\n.wrapper {\r\n align-self: center;\r\n box-shadow: 0 units.$u1 units.$u3 0 rgba(25, 25, 25, 0.4);\r\n line-height: 0;\r\n outline: 4px solid colors.$wit;\r\n position: relative;\r\n z-index: zindex.$image-overlay;\r\n\r\n .title {\r\n background-color: colors.$wit;\r\n font-weight: 700;\r\n line-height: initial;\r\n padding: units.$u1;\r\n position: absolute;\r\n }\r\n\r\n img {\r\n inline-size: auto;\r\n block-size: auto;\r\n max-inline-size: 100%;\r\n max-block-size: calc(100vh - units.$u8);\r\n }\r\n\r\n .figuur-bijschrift:not([hidden]) {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n padding-block-end: units.$u1 * 1.5;\r\n padding-block-start: units.$u2;\r\n }\r\n}\r\n\r\n.close {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\r\n & {\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-inline-size: auto;\r\n padding: units.$u1;\r\n position: absolute;\r\n inset-block-start: units.$u2;\r\n inset-inline-end: units.$u2;\r\n }\r\n}\r\n\r\nins.editaction-add {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include insert.element();\r\n @include insert.root();\r\n\r\n .wrapper {\r\n outline: none;\r\n padding: units.$u1;\r\n @include insert.root();\r\n\r\n .editaction-label {\r\n line-height: 1.5;\r\n }\r\n\r\n .close {\r\n inset-block-start: units.$u6;\r\n }\r\n }\r\n\r\n .open {\r\n inset-block-start: units.$u6;\r\n }\r\n}\r\n\r\ndel.editaction-remove {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n .wrapper {\r\n outline: none;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n .title {\r\n text-decoration: line-through;\r\n }\r\n\r\n .editaction-label {\r\n line-height: 1.5;\r\n }\r\n\r\n .close {\r\n inset-block-start: units.$u6;\r\n }\r\n }\r\n\r\n .open {\r\n inset-block-start: units.$u6;\r\n }\r\n}\r\n\r\n.editaction-label {\r\n font-style: italic;\r\n margin-block-end: units.$u1;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n forceUpdate,\r\n FunctionalComponent,\r\n h,\r\n Host,\r\n Listen,\r\n Prop,\r\n State,\r\n} from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\n\r\ntype ImageOverlayWijzigactie = \"voegtoe\" | \"verwijder\";\r\n\r\nconst wijzigactieLabels: { [wijzigactie in ImageOverlayWijzigactie]: string } = {\r\n verwijder: \"Verwijderd\",\r\n voegtoe: \"Toegevoegd\",\r\n};\r\n\r\nconst Dimmer: FunctionalComponent<{\r\n active: boolean;\r\n src: string | undefined;\r\n alt: string | undefined;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n click: () => void;\r\n}> = ({ active, src, alt, ref, click }, children) =>\r\n active &&\r\n src &&\r\n alt && (\r\n <div class=\"dimmer\">\r\n <div class=\"wrapper\" ref={ref}>\r\n {children[2]}\r\n {children[0]}\r\n <img src={src} alt={alt} />\r\n <button type=\"button\" class=\"close\" onClick={click}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span>Sluiten</span>\r\n </button>\r\n {children[1]}\r\n </div>\r\n </div>\r\n );\r\n\r\n@Component({\r\n tag: \"dso-image-overlay\",\r\n styleUrl: \"./image-overlay.scss\",\r\n shadow: true,\r\n})\r\nexport class ImageOverlay implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoImageOverlayElement;\r\n\r\n /**\r\n * The wijzigactie.\r\n */\r\n @Prop()\r\n wijzigactie?: string;\r\n\r\n @State()\r\n active = false;\r\n\r\n @State()\r\n zoomable = false;\r\n\r\n private 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 private isWijzigactie(wijzigactie: string): wijzigactie is ImageOverlayWijzigactie {\r\n return wijzigactie === \"voegtoe\" || wijzigactie === \"verwijder\";\r\n }\r\n\r\n render() {\r\n const { src, alt } = this.host.querySelector(\"img\") ?? {};\r\n\r\n const editActionLabel: string | undefined =\r\n (this.wijzigactie && this.isWijzigactie(this.wijzigactie) && wijzigactieLabels[this.wijzigactie]) || undefined;\r\n\r\n const button = this.zoomable && (\r\n <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\r\n if (this.wijzigactie === \"verwijder\") {\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n <del class=\"editaction-remove\">\r\n <div class=\"editaction-label\">{editActionLabel}:</div>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n {<div class=\"editaction-label\">{editActionLabel}:</div>}\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </del>\r\n </Host>\r\n );\r\n }\r\n\r\n if (this.wijzigactie === \"voegtoe\") {\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n <ins class=\"editaction-add\">\r\n <div class=\"editaction-label\">{editActionLabel}:</div>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n {<div class=\"editaction-label\">{editActionLabel}:</div>}\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </ins>\r\n </Host>\r\n );\r\n }\r\n\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </Host>\r\n );\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active && this.wrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.wrapperElement, {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.wrapperElement) {\r\n this.active = false;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.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","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 { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport function wijzigactieToClassName(wijzigactie: OzonContentWijzigActie | undefined): string | undefined {\r\n if (wijzigactie === \"voegtoe\") {\r\n return \"editaction-add\";\r\n }\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return \"editaction-remove\";\r\n }\r\n\r\n return undefined;\r\n}\r\n","import { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport function parseWijzigactieFromNode(node: Node): OzonContentWijzigActie | undefined {\r\n const wijzigactie = node instanceof Element ? node.getAttribute(\"wijzigactie\") : undefined;\r\n\r\n return wijzigactie === \"voegtoe\" || wijzigactie === \"verwijder\" ? wijzigactie : undefined;\r\n}\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\nimport { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport interface WrapWijzigactieProps {\r\n wijzigactie: OzonContentWijzigActie | undefined;\r\n}\r\n\r\nexport const WrapWijzigactie: FunctionalComponent<WrapWijzigactieProps> = ({ wijzigactie }, children) => {\r\n if (wijzigactie === \"voegtoe\") {\r\n return <ins>{children}</ins>;\r\n }\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return <del>{children}</del>;\r\n }\r\n\r\n return children;\r\n};\r\n","import { 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\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\n\r\nfunction isNestedAl(path: Node[]) {\r\n return path.some((n) => {\r\n const nodeName = getNodeName(n);\r\n\r\n return nodeName === \"Al\" || nodeName === \"Opschrift\";\r\n });\r\n}\r\n\r\nexport class OzonContentAlNode implements OzonContentNode {\r\n name = \"Al\";\r\n\r\n render(node: Element, { mapNodeToJsx, path, inline }: OzonContentNodeContext) {\r\n let content = mapNodeToJsx(node.childNodes);\r\n const wijzigactie = parseWijzigactieFromNode(node);\r\n const className = wijzigactieToClassName(wijzigactie);\r\n\r\n if (inline || isNestedAl(path)) {\r\n content = (\r\n <span role=\"paragraph\" class={className}>\r\n {content}\r\n </span>\r\n );\r\n } else {\r\n content = <p class={className}>{content}</p>;\r\n }\r\n\r\n return <WrapWijzigactie wijzigactie={wijzigactie}>{content}</WrapWijzigactie>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentBronNode implements OzonContentNode {\r\n name = \"Bron\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <span class=\"dso-ozon-bron\">{mapNodeToJsx(node.childNodes)}</span>;\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentDocumentNode implements OzonContentNode {\r\n name = \"#document\";\r\n\r\n render(node: Node, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <Fragment>{mapNodeToJsx(node.childNodes)}</Fragment>;\r\n }\r\n}\r\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = kebabCase;\n","import { h } from \"@stencil/core\";\r\nimport kebabCase from \"lodash.kebabcase\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentExtRefNode implements OzonContentNode {\r\n name = [\"ExtRef\", \"ExtIoRef\"];\r\n\r\n render(node: Element, { mapNodeToJsx }: 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 getStyle(breedte: number, hoogte: number) {\r\n if (breedte && hoogte) {\r\n return {\r\n \"--img-aspect-ratio\": (breedte / hoogte).toString(),\r\n };\r\n }\r\n return;\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 const wijzigactie = node.getAttribute(\"wijzigactie\") || undefined;\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 };\r\n\r\n const bijschrift =\r\n bijschriftNode instanceof Element\r\n ? {\r\n inhoud: bijschriftNode.childNodes,\r\n locatie: bijschriftNode.getAttribute(\"locatie\") ?? \"onder\",\r\n }\r\n : undefined;\r\n\r\n const preventLayoutShift = !!Number(illustratie.breedte) && !!Number(illustratie.hoogte);\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 wijzigactie={wijzigactie}>\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 class={{ \"dso-ozon-figuur-reserve-space\": preventLayoutShift }}\r\n style={this.getStyle(Number(illustratie.breedte), Number(illustratie.hoogte))}\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 const wijzigactie = node.getAttribute(\"wijzigactie\");\r\n\r\n const richContent = <div class=\"dso-rich-content\">{mapNodeToJsx(node.childNodes)}</div>;\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return <del class=\"editaction-remove\">{richContent}</del>;\r\n }\r\n\r\n if (wijzigactie === \"voegtoe\") {\r\n return <ins class=\"editaction-add\">{richContent}</ins>;\r\n }\r\n\r\n return richContent;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { 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\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport clsx from \"clsx\";\r\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\n\r\nexport class OzonContentLijstNode implements OzonContentNode {\r\n name = \"Lijst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const wijzigactie = parseWijzigactieFromNode(node);\r\n const childNodes = Array.from(node.childNodes);\r\n const type = parseTypeFromLijstNode(node);\r\n const aanhef = childNodes.find((n) => getNodeName(n) === \"Lijstaanhef\");\r\n const sluiting = childNodes.find((n) => getNodeName(n) === \"Lijstsluiting\");\r\n const listItems = childNodes.filter((n) => getNodeName(n) === \"Li\");\r\n\r\n return (\r\n <WrapWijzigactie wijzigactie={wijzigactie}>\r\n <div class={clsx(\"dso-ozon-lijst od-Lijst\", wijzigactieToClassName(wijzigactie))}>\r\n {aanhef && mapNodeToJsx(aanhef)}\r\n <ul class={type}>\r\n {listItems.map((item) => {\r\n const itemNodes = Array.from(item.childNodes);\r\n const liNummer = itemNodes.find((n) => getNodeName(n) === \"LiNummer\")?.childNodes;\r\n const liWijzigactie = parseWijzigactieFromNode(item);\r\n\r\n return (\r\n <li class={clsx(\"od-Li\", wijzigactieToClassName(liWijzigactie))}>\r\n {liNummer && <span class=\"od-LiNummer\">{mapNodeToJsx(liNummer)}</span>}\r\n <WrapWijzigactie wijzigactie={liWijzigactie}>\r\n {mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== \"LiNummer\"))}\r\n </WrapWijzigactie>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n {sluiting && mapNodeToJsx(sluiting)}\r\n </div>\r\n </WrapWijzigactie>\r\n );\r\n }\r\n}\r\n\r\nfunction parseTypeFromLijstNode(node: Node): LijstType | undefined {\r\n const type = node instanceof Element ? node.getAttribute(\"type\") : undefined;\r\n\r\n return type === \"expliciet\" || type === \"ongemarkeerd\" ? type : undefined;\r\n}\r\n\r\ntype LijstType = \"expliciet\" | \"ongemarkeerd\";\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentNieuweTekstNode implements OzonContentNode {\r\n name = \"NieuweTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <ins class=\"new-text\">{mapNodeToJsx(node.childNodes)}</ins>;\r\n }\r\n}\r\n","import { 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=\"new-text\">{content}</ins>;\r\n } else if (wijzigactie === \"verwijder\") {\r\n content = <del class=\"removed-text\">{content}</del>;\r\n }\r\n\r\n return <>{content}</>;\r\n }\r\n}\r\n","import { Colspec, Colspecs } from \"./colspec.interface\";\r\n\r\nexport function mapColspecs(count: number, nodeList: NodeListOf<Element>): Colspecs {\r\n const elements = Array.from(nodeList);\r\n const totalWidth = getTotalWidth(elements);\r\n\r\n return {\r\n totalWidth,\r\n count,\r\n columns: elements.map((element, index): Colspec => {\r\n const colNumber = element.getAttribute(\"colnum\");\r\n\r\n return {\r\n colsep: element.getAttribute(\"colsep\"),\r\n name: element.getAttribute(\"colname\") ?? \"\",\r\n number: colNumber ? parseInt(colNumber, 10) : index + 1,\r\n rowsep: element.getAttribute(\"rowsep\"),\r\n width: getWidth(totalWidth, element),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nfunction getTotalWidth(elements: Element[]): number {\r\n return elements.reduce((totalWidth, element) => {\r\n const width = element.getAttribute(\"colwidth\")?.replace(/[^0-9]/, \"\") ?? \"\";\r\n const colWidth = parseInt(width, 10);\r\n\r\n return totalWidth + (isNaN(colWidth) ? 0 : colWidth);\r\n }, 0);\r\n}\r\n\r\nfunction getWidth(totalWidth: number, element: Element): string | undefined {\r\n const width = element.getAttribute(\"colwidth\");\r\n\r\n if (!width) {\r\n return undefined;\r\n }\r\n\r\n if (width === \"*\") {\r\n return \"100%\";\r\n }\r\n\r\n if (width.includes(\"*\") || width.match(/^[\\d+]$/)) {\r\n const colWidth = parseInt(width.replace(/[^0-9]/, \"\"), 10);\r\n\r\n return `${Math.round((colWidth / totalWidth) * 100)}%`;\r\n }\r\n\r\n return width;\r\n}\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nexport const Colgroup: FunctionalComponent<{ colspecs: Colspecs }> = ({ colspecs }) =>\r\n colspecs.columns.length > 0 ? (\r\n <colgroup>\r\n {colspecs.columns.map((colspec) => (\r\n <col style={{ width: colspec.width }} />\r\n ))}\r\n </colgroup>\r\n ) : (\r\n <Fragment />\r\n );\r\n","import { FunctionalComponent } from \"@stencil/core\";\r\nimport { h } from \"@stencil/core/internal\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nfunction getColspecStartColsep({ columns }: Colspecs, nameStart: string): string | null {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n\r\n return colspecStart ? colspecStart.colsep : null;\r\n}\r\n\r\nfunction getColspecStartRowsep({ columns }: Colspecs, nameStart: string): string | null {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n\r\n return colspecStart ? colspecStart.rowsep : null;\r\n}\r\n\r\nfunction getData(cell: Element, colspecs?: Colspecs) {\r\n const nameStart = cell.getAttribute(\"namest\");\r\n const row = cell.parentElement;\r\n const tgroup = row?.parentElement?.parentElement;\r\n const table = tgroup?.parentElement;\r\n const colsep =\r\n cell.getAttribute(\"colsep\") ||\r\n (colspecs && nameStart ? getColspecStartColsep(colspecs, nameStart) : null) ||\r\n (tgroup && tgroup.getAttribute(\"colsep\")) ||\r\n (table && table.getAttribute(\"colsep\"));\r\n const rowsep =\r\n cell.getAttribute(\"rowsep\") ||\r\n (row && row.getAttribute(\"rowsep\")) ||\r\n (colspecs && nameStart ? getColspecStartRowsep(colspecs, nameStart) : null) ||\r\n (tgroup && tgroup.getAttribute(\"rowsep\")) ||\r\n (table && table.getAttribute(\"rowsep\"));\r\n\r\n return {\r\n moreRows: cell.getAttribute(\"morerows\"),\r\n nameStart,\r\n nameEnd: cell.getAttribute(\"nameend\"),\r\n colsep,\r\n rowsep,\r\n };\r\n}\r\n\r\nfunction getColspan({ columns }: Colspecs, nameStart: string, nameEnd: string): number | undefined {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n const colspecEnd = columns.find((c) => c.name === nameEnd);\r\n if (!colspecStart || !colspecEnd) {\r\n return undefined;\r\n }\r\n\r\n const colspan = colspecEnd.number - colspecStart.number + 1;\r\n\r\n return colspan === 1 ? undefined : colspan;\r\n}\r\n\r\nexport const Cell: FunctionalComponent<{\r\n context: OzonContentNodeContext;\r\n colspecs: Colspecs | undefined;\r\n cell: Element;\r\n}> = ({ context: { mapNodeToJsx }, colspecs, cell }) => {\r\n const { moreRows, nameStart, nameEnd, colsep, rowsep } = getData(cell, colspecs);\r\n\r\n return (\r\n <td\r\n class={clsx({ \"dso-horizontal-line\": rowsep !== \"0\" }, { \"dso-vertical-line\": colsep !== \"0\" })}\r\n rowSpan={moreRows ? parseInt(moreRows, 10) + 1 : undefined}\r\n colSpan={colspecs && nameStart && nameEnd ? getColspan(colspecs, nameStart, nameEnd) : undefined}\r\n >\r\n {mapNodeToJsx(cell.childNodes)}\r\n </td>\r\n );\r\n};\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\nimport { Cell } from \"./table-cell\";\r\n\r\nexport const Rows: FunctionalComponent<{\r\n context: OzonContentNodeContext;\r\n colspecs: Colspecs | undefined;\r\n rows: Element[];\r\n}> = ({ context, colspecs, rows }) => {\r\n return (\r\n <>\r\n {rows.map((row) => (\r\n <tr>\r\n {Array.from(row.children).map((cell) => (\r\n <Cell cell={cell} colspecs={colspecs} context={context} />\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n );\r\n};\r\n","import { h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getNodeName } from \"../../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../../ozon-content-node.interface\";\r\n\r\nimport { mapColspecs } from \"./colspec/colspec-mapper\";\r\nimport { Colgroup } from \"./table-colgroup\";\r\nimport { Rows } from \"./table-rows\";\r\n\r\nfunction mapData(node: Element) {\r\n const tgroup = node.querySelector(\":scope > tgroup\");\r\n const colAttribute = tgroup?.getAttribute(\"cols\") ?? undefined;\r\n const columnCount = colAttribute ? parseInt(colAttribute, 10) : undefined;\r\n\r\n return {\r\n caption: node.querySelector(\":scope > title\")?.textContent ?? undefined,\r\n colspecs: tgroup && columnCount ? mapColspecs(columnCount, tgroup.querySelectorAll(\":scope > colspec\")) : undefined,\r\n headRows: Array.from(node.querySelectorAll(\":scope > tgroup > thead > row\")),\r\n bodyRows: Array.from(node.querySelectorAll(\":scope > tgroup > tbody > row\")),\r\n wijzigactie: node.getAttribute(\"wijzigactie\"),\r\n frame: node.getAttribute(\"frame\") ? node.getAttribute(\"frame\") : \"all\",\r\n };\r\n}\r\n\r\nexport class OzonContentTableNode implements OzonContentNode {\r\n name = \"table\";\r\n\r\n handles = [\"title\", \"tgroup\", \"colspec\", \"thead\", \"tbody\", \"row\", \"cell\"];\r\n\r\n id = uuidv4();\r\n\r\n render(node: Element, context: OzonContentNodeContext) {\r\n const { caption, colspecs, headRows, bodyRows, wijzigactie, frame } = mapData(node);\r\n\r\n const bron = Array.from(node.childNodes).find((n) => getNodeName(n) === \"Bron\");\r\n\r\n return (\r\n <dso-table>\r\n <table\r\n class={clsx(\"table\", {\r\n \"editaction-add\": wijzigactie === \"voegtoe\",\r\n \"editaction-remove\": wijzigactie === \"verwijder\",\r\n [`dso-table-outside-lines-${frame}`]: frame,\r\n })}\r\n {...(bron ? { \"aria-describedby\": this.id } : {})}\r\n >\r\n {caption && <caption>{caption}</caption>}\r\n {colspecs && <Colgroup colspecs={colspecs} />}\r\n {headRows.length > 0 && (\r\n <thead>\r\n <Rows rows={headRows} colspecs={colspecs} context={context}></Rows>\r\n </thead>\r\n )}\r\n {bodyRows.length > 0 && (\r\n <tbody>\r\n <Rows rows={bodyRows} colspecs={colspecs} context={context}></Rows>\r\n </tbody>\r\n )}\r\n </table>\r\n {bron && <div id={this.id}>{context.mapNodeToJsx(bron)}</div>}\r\n </dso-table>\r\n );\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { 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=\"removed-text\">{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-block-end: 0.75em;\r\n}\r\n\r\n.od-IntIoRef {\r\n border-block-end: 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-block-end: units.$u1;\r\n\r\n .figuur-bijschrift {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n }\r\n\r\n &.bijschrift-boven {\r\n .figuur-bijschrift {\r\n padding-block-end: 0.25rem;\r\n }\r\n }\r\n\r\n &.bijschrift-onder {\r\n .figuur-bijschrift {\r\n padding-block-start: 0.25rem;\r\n }\r\n }\r\n\r\n .figuur-titel {\r\n color: colors.$mauve;\r\n display: block;\r\n font-weight: 500;\r\n padding-block-end: 0.5rem;\r\n }\r\n\r\n .dso-ozon-figuur-reserve-space {\r\n inline-size: 100%;\r\n block-size: auto;\r\n aspect-ratio: var(--img-aspect-ratio);\r\n }\r\n}\r\n\r\n.dso-ozon-lijst {\r\n span.od-Lijstaanhef,\r\n span.od-Lijstsluiting {\r\n margin-block-end: units.$u1;\r\n }\r\n\r\n ul {\r\n margin-block-end: units.$u1 !important;\r\n margin-block-start: units.$u1;\r\n\r\n p {\r\n margin-block-end: units.$u1;\r\n }\r\n\r\n &.expliciet {\r\n list-style: none;\r\n\r\n > .od-Li {\r\n position: relative;\r\n\r\n > span.od-LiNummer {\r\n position: absolute;\r\n inset-inline-start: units.$u6 * -1 + 4;\r\n text-align: end;\r\n inline-size: units.$u5;\r\n }\r\n }\r\n }\r\n }\r\n\r\n p {\r\n margin: 0;\r\n }\r\n}\r\n\r\n.od-Tabel thead {\r\n font-weight: 600;\r\n}\r\n\r\n.od-Kadertekst {\r\n border: 1px solid #e5e5e5;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n}\r\n\r\np,\r\nspan[role=\"paragraph\"],\r\n.dso-ozon-lijst,\r\n.dso-ozon-lijst > ul > li,\r\ntable {\r\n &.editaction-add {\r\n @include insert.root();\r\n }\r\n\r\n &.editaction-remove {\r\n @include delete.root();\r\n }\r\n}\r\n\r\nins {\r\n @include insert.element();\r\n\r\n &.new-text {\r\n @include insert.root();\r\n }\r\n\r\n &.editaction-add {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n\r\n @include insert.root();\r\n\r\n p:last-child {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\ndel {\r\n &.removed-text {\r\n @include delete.root();\r\n }\r\n\r\n &.editaction-remove {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n p:last-child {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n.editaction-label {\r\n font-style: italic;\r\n}\r\n\r\n.dso-rich-content {\r\n @include rich-content.children();\r\n}\r\n","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/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/di\";\r\n\r\n:host {\r\n display: block;\r\n\r\n border: 1px solid colors.$bosgroen-40;\r\n border-radius: units.$u1 * 0.5;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.panel-heading {\r\n display: flex;\r\n gap: units.$u2;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n\r\n padding-block: units.$u1;\r\n padding-inline: units.$u2 units.$u1;\r\n\r\n border-block-end: 1px solid colors.$bosgroen-40;\r\n\r\n border-start-start-radius: units.$u1 * 0.5;\r\n border-start-end-radius: units.$u1 * 0.5;\r\n\r\n background-color: colors.$bosgroen-10;\r\n\r\n color: colors.$bosgroen;\r\n\r\n .sr-only {\r\n @include utilities.sr-only();\r\n }\r\n}\r\n\r\n::slotted([slot=\"heading\"]) {\r\n margin: 0 !important;\r\n font-size: 1rem !important;\r\n font-weight: 600 !important;\r\n line-height: 1.5 !important;\r\n}\r\n\r\n.panel-close {\r\n display: inline-block;\r\n\r\n inline-size: units.$u3;\r\n aspect-ratio: 1 / 1;\r\n\r\n padding: 0;\r\n\r\n border: 0;\r\n\r\n background-color: transparent;\r\n\r\n color: colors.$bosgroen;\r\n\r\n cursor: pointer;\r\n}\r\n\r\n.panel-body {\r\n padding-block: units.$u2;\r\n padding-inline: units.$u2;\r\n}\r\n","import { Component, ComponentInterface, Event, EventEmitter, h } from \"@stencil/core\";\r\n\r\nexport interface PanelCloseEvent {\r\n originalEvent: Event;\r\n}\r\n\r\n/**\r\n * @slot - The contents to be highlighted within the panel\r\n * @slot heading - The heading (h2 - h6) with the title of the panel\r\n */\r\n@Component({\r\n tag: \"dso-panel\",\r\n styleUrl: \"panel.scss\",\r\n shadow: true,\r\n})\r\nexport class Panel implements ComponentInterface {\r\n /**\r\n * Emitted when the user click the close button.\r\n */\r\n @Event()\r\n dsoCloseClick!: EventEmitter<PanelCloseEvent>;\r\n\r\n render() {\r\n return (\r\n <div class=\"dso-panel\">\r\n <div class=\"panel-heading\">\r\n <slot name=\"heading\" />\r\n <button type=\"button\" class=\"panel-close\" onClick={(e) => this.dsoCloseClick.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n </div>\r\n <div class=\"panel-body\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"sass:color\";\r\n\r\n@use \"~dso-toolkit/src/components/grid/grid.variables\" as grid-variables;\r\n@use \"~dso-toolkit/src/components/modal/modal.variables\" as modal-variables;\r\n\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/components/rich-content\";\r\n@use \"~dso-toolkit/src/components/table\";\r\n\r\n:host {\r\n display: block;\r\n margin-block-end: units.$u3;\r\n}\r\n\r\n.dso-header {\r\n min-block-size: units.$u4;\r\n\r\n h2 {\r\n color: colors.$bosgroen;\r\n font-size: units.$font-size-h2;\r\n font-weight: 700;\r\n }\r\n\r\n .dso-close {\r\n color: colors.$bosgroen;\r\n }\r\n}\r\n\r\n:host .dso-modal {\r\n @include modal.root();\r\n\r\n inset: 0px;\r\n block-size: 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-block-start: 1rem;\r\n max-inline-size: calc(100% - 2rem);\r\n margin-inline-start: auto;\r\n margin-inline-end: auto;\r\n inline-size: auto;\r\n\r\n .dso-body {\r\n $dso-body-unavailable-height: (\r\n (2 * modal.$header-padding) + (modal.$footer-button-block-size + modal.$footer-padding)\r\n );\r\n max-block-size: calc(100vh - #{$dso-body-unavailable-height} - 1.5em - 2rem); // margin\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n max-inline-size: 100%;\r\n }\r\n}\r\n\r\n:host([is-responsive]) {\r\n .dso-table-body {\r\n border: 1px solid table.$border-color;\r\n margin-block-end: 0;\r\n overflow-y: auto;\r\n inline-size: 100%;\r\n\r\n &.dso-body {\r\n inline-size: calc(100% - modal.$body-padding * 2);\r\n }\r\n }\r\n}\r\n\r\n.dso-table-utilities {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-block-end: units.$u1;\r\n\r\n .dso-responsive-message {\r\n margin-block-end: 0;\r\n\r\n &:only-child {\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n .open-modal-button {\r\n &:only-child {\r\n margin-inline-start: auto;\r\n }\r\n }\r\n}\r\n\r\n.dso-responsive-message {\r\n font-size: 0.8em;\r\n margin-block-end: units.$u1;\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-modal-overlay {\r\n background-color: color.scale(modal-variables.$backdrop-bg, $alpha: modal-variables.$backdrop-opacity);\r\n display: block;\r\n position: fixed;\r\n inset: 0;\r\n z-index: zindex.$modal-background-overlay;\r\n}\r\n\r\n.dso-table-placeholder {\r\n box-shadow: inset 0 0 0 1px table.$border-color;\r\n display: grid;\r\n place-content: center;\r\n}\r\n","import { 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":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as n,c as t,h as e,F as r}from"./p-b623c74b.js";import{c as i}from"./p-4573c419.js";var o=1/0,u=9007199254740991,s=17976931348623157e292,a=0/0;var c="[object Arguments]",f="[object Function]",d="[object GeneratorFunction]",l="[object Map]",h="[object Object]",v="[object Promise]",p="[object Set]",b="[object String]",m="[object Symbol]",y="[object WeakMap]";var g="[object DataView]";var j=/[\\^$.*+?()[\]{}|]/g;var w=/^\s+|\s+$/g;var C=/^[-+]0x[0-9a-f]+$/i;var A=/^0b[01]+$/i;var D=/^\[object .+?Constructor\]$/;var O=/^0o[0-7]+$/i;var k=/^(?:0|[1-9]\d*)$/;var $="\\ud800-\\udfff",F="\\u0300-\\u036f\\ufe20-\\ufe23",M="\\u20d0-\\u20f0",x="\\ufe0e\\ufe0f";var S="["+$+"]",T="["+F+M+"]",z="\\ud83c[\\udffb-\\udfff]",I="(?:"+T+"|"+z+")",W="[^"+$+"]",E="(?:\\ud83c[\\udde6-\\uddff]){2}",R="[\\ud800-\\udbff][\\udc00-\\udfff]",L="\\u200d";var _=I+"?",N="["+x+"]?",P="(?:"+L+"(?:"+[W,E,R].join("|")+")"+N+_+")*",B=N+_+P,G="(?:"+[W+T+"?",T,E,R,S].join("|")+")";var V=RegExp(z+"(?="+z+")|"+G+B,"g");var X=RegExp("["+L+$+F+M+x+"]");var H=parseInt;var K=typeof i=="object"&&i&&i.Object===Object&&i;var q=typeof self=="object"&&self&&self.Object===Object&&self;var J=K||q||Function("return this")();function Q(n,t){var e=-1,r=n?n.length:0,i=Array(r);while(++e<r){i[e]=t(n[e],e,n)}return i}function U(n){return n.split("")}function Y(n,t){var e=-1,r=Array(n);while(++e<n){r[e]=t(e)}return r}function Z(n,t){return Q(t,(function(t){return n[t]}))}function nn(n,t){return n==null?undefined:n[t]}function tn(n){return X.test(n)}function en(n){var t=false;if(n!=null&&typeof n.toString!="function"){try{t=!!(n+"")}catch(n){}}return t}function rn(n){var t,e=[];while(!(t=n.next()).done){e.push(t.value)}return e}function on(n){var t=-1,e=Array(n.size);n.forEach((function(n,r){e[++t]=[r,n]}));return e}function un(n,t){return function(e){return n(t(e))}}function sn(n){var t=-1,e=Array(n.size);n.forEach((function(n){e[++t]=n}));return e}function an(n){return tn(n)?cn(n):U(n)}function cn(n){return n.match(V)||[]}var fn=Function.prototype,dn=Object.prototype;var ln=J["__core-js_shared__"];var hn=function(){var n=/[^.]+$/.exec(ln&&ln.keys&&ln.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();var vn=fn.toString;var pn=dn.hasOwnProperty;var bn=dn.toString;var mn=RegExp("^"+vn.call(pn).replace(j,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var yn=J.Symbol,gn=yn?yn.iterator:undefined,jn=dn.propertyIsEnumerable;var wn=Math.floor,Cn=un(Object.keys,Object),An=Math.random;var Dn=Pn(J,"DataView"),On=Pn(J,"Map"),kn=Pn(J,"Promise"),$n=Pn(J,"Set"),Fn=Pn(J,"WeakMap");var Mn=Kn(Dn),xn=Kn(On),Sn=Kn(kn),Tn=Kn($n),zn=Kn(Fn);function In(n,t){var e=Un(n)||Qn(n)?Y(n.length,String):[];var r=e.length,i=!!r;for(var o in n){if((t||pn.call(n,o))&&!(i&&(o=="length"||Gn(o,r)))){e.push(o)}}return e}function Wn(n,t,e){if(n===n){if(e!==undefined){n=n<=e?n:e}if(t!==undefined){n=n>=t?n:t}}return n}function En(n){return bn.call(n)}function Rn(n){if(!et(n)||Xn(n)){return false}var t=nt(n)||en(n)?mn:D;return t.test(Kn(n))}function Ln(n){if(!Hn(n)){return Cn(n)}var t=[];for(var e in Object(n)){if(pn.call(n,e)&&e!="constructor"){t.push(e)}}return t}function _n(n,t){return n+wn(An()*(t-n+1))}function Nn(n,t){var e=-1,r=n.length;t||(t=Array(r));while(++e<r){t[e]=n[e]}return t}function Pn(n,t){var e=nn(n,t);return Rn(e)?e:undefined}var Bn=En;if(Dn&&Bn(new Dn(new ArrayBuffer(1)))!=g||On&&Bn(new On)!=l||kn&&Bn(kn.resolve())!=v||$n&&Bn(new $n)!=p||Fn&&Bn(new Fn)!=y){Bn=function(n){var t=bn.call(n),e=t==h?n.constructor:undefined,r=e?Kn(e):undefined;if(r){switch(r){case Mn:return g;case xn:return l;case Sn:return v;case Tn:return p;case zn:return y}}return t}}function Gn(n,t){t=t==null?u:t;return!!t&&(typeof n=="number"||k.test(n))&&(n>-1&&n%1==0&&n<t)}function Vn(n,t,e){if(!et(e)){return false}var r=typeof t;if(r=="number"?Yn(e)&&Gn(t,e.length):r=="string"&&t in e){return Jn(e[t],n)}return false}function Xn(n){return!!hn&&hn in n}function Hn(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||dn;return n===e}function Kn(n){if(n!=null){try{return vn.call(n)}catch(n){}try{return n+""}catch(n){}}return""}function qn(n,t,e){var r=-1,i=ut(n),o=i.length,u=o-1;if(e?Vn(n,t,e):t===undefined){t=1}else{t=Wn(at(t),0,o)}while(++r<t){var s=_n(r,u),a=i[s];i[s]=i[r];i[r]=a}i.length=t;return i}function Jn(n,t){return n===t||n!==n&&t!==t}function Qn(n){return Zn(n)&&pn.call(n,"callee")&&(!jn.call(n,"callee")||bn.call(n)==c)}var Un=Array.isArray;function Yn(n){return n!=null&&tt(n.length)&&!nt(n)}function Zn(n){return rt(n)&&Yn(n)}function nt(n){var t=et(n)?bn.call(n):"";return t==f||t==d}function tt(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=u}function et(n){var t=typeof n;return!!n&&(t=="object"||t=="function")}function rt(n){return!!n&&typeof n=="object"}function it(n){return typeof n=="string"||!Un(n)&&rt(n)&&bn.call(n)==b}function ot(n){return typeof n=="symbol"||rt(n)&&bn.call(n)==m}function ut(n){if(!n){return[]}if(Yn(n)){return it(n)?an(n):Nn(n)}if(gn&&n[gn]){return rn(n[gn]())}var t=Bn(n),e=t==l?on:t==p?sn:dt;return e(n)}function st(n){if(!n){return n===0?n:0}n=ct(n);if(n===o||n===-o){var t=n<0?-1:1;return t*s}return n===n?n:0}function at(n){var t=st(n),e=t%1;return t===t?e?t-e:t:0}function ct(n){if(typeof n=="number"){return n}if(ot(n)){return a}if(et(n)){var t=typeof n.valueOf=="function"?n.valueOf():n;n=et(t)?t+"":t}if(typeof n!="string"){return n===0?n:+n}n=n.replace(w,"");var e=A.test(n);return e||O.test(n)?H(n.slice(2),e?2:8):C.test(n)?a:+n}function ft(n){return Yn(n)?In(n):Ln(n)}function dt(n){return n?Z(n,ft(n)):[]}var lt=qn;var ht=1/0,vt=9007199254740991,pt=17976931348623157e292,bt=0/0;var mt="[object Function]",yt="[object GeneratorFunction]",gt="[object Symbol]";var jt=/^\s+|\s+$/g;var wt=/^[-+]0x[0-9a-f]+$/i;var Ct=/^0b[01]+$/i;var At=/^0o[0-7]+$/i;var Dt=/^(?:0|[1-9]\d*)$/;var Ot=parseFloat,kt=parseInt;var $t=Object.prototype;var Ft=$t.toString;var Mt=Math.floor,xt=Math.min,St=Math.random;function Tt(n,t){return n+Mt(St()*(t-n+1))}function zt(n,t){t=t==null?vt:t;return!!t&&(typeof n=="number"||Dt.test(n))&&(n>-1&&n%1==0&&n<t)}function It(n,t,e){if(!_t(e)){return false}var r=typeof t;if(r=="number"?Et(e)&&zt(t,e.length):r=="string"&&t in e){return Wt(e[t],n)}return false}function Wt(n,t){return n===t||n!==n&&t!==t}function Et(n){return n!=null&&Lt(n.length)&&!Rt(n)}function Rt(n){var t=_t(n)?Ft.call(n):"";return t==mt||t==yt}function Lt(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=vt}function _t(n){var t=typeof n;return!!n&&(t=="object"||t=="function")}function Nt(n){return!!n&&typeof n=="object"}function Pt(n){return typeof n=="symbol"||Nt(n)&&Ft.call(n)==gt}function Bt(n){if(!n){return n===0?n:0}n=Gt(n);if(n===ht||n===-ht){var t=n<0?-1:1;return t*pt}return n===n?n:0}function Gt(n){if(typeof n=="number"){return n}if(Pt(n)){return bt}if(_t(n)){var t=typeof n.valueOf=="function"?n.valueOf():n;n=_t(t)?t+"":t}if(typeof n!="string"){return n===0?n:+n}n=n.replace(jt,"");var e=Ct.test(n);return e||At.test(n)?kt(n.slice(2),e?2:8):wt.test(n)?bt:+n}function Vt(n,t,e){if(e&&typeof e!="boolean"&&It(n,t,e)){t=e=undefined}if(e===undefined){if(typeof t=="boolean"){e=t;t=undefined}else if(typeof n=="boolean"){e=n;n=undefined}}if(n===undefined&&t===undefined){n=0;t=1}else{n=Bt(n);if(t===undefined){t=n;n=0}else{t=Bt(t)}}if(n>t){var r=n;n=t;t=r}if(e||n%1||t%1){var i=St();return xt(n+i*(t-n+Ot("1e-"+((i+"").length-1))),t)}return Tt(n,t)}var Xt=Vt;const Ht=".sc-dsot-document-component-demo-h{display:block;margin-block:0;margin-inline:8px;border-inline-start:1px dashed transparent;border-inline-end:1px dashed transparent}[show-canvas].sc-dsot-document-component-demo-h{border-inline-start:1px dashed pink;border-inline-end:1px dashed pink}";const Kt=Ht;const qt=class{constructor(i){n(this,i);this.dsotOzonContentAnchorClick=t(this,"dsotOzonContentAnchorClick",7);this.handleRecursiveToggle=(n,t)=>{const e=this.getEmbeddedDocumentComponents(n);if(!e){return}for(const n of e.documentComponents){this.handleOpenToggle(n,t.next)}};this.DocumentComponent=({path:n})=>{const t=n.at(-1);if(!t){return e(r,null)}const{DocumentComponent:i}=this;const o=this.getEmbeddedDocumentComponents(t);return e("dso-document-component",{annotated:t.volgordeNummer%4===2,bevatOntwerpInformatie:!!t.bevatOntwerpInformatie,filtered:this.isOpen(t)?this.isFiltered(t):this.hasFilteredChildren(t),genesteOntwerpInformatie:this.hasNestedDraft(t),gereserveerd:t.gereserveerd,heading:"h2",inhoud:t.inhoud,label:t.labelXml,openAnnotation:this.isOpenedAnnotation(t),notApplicable:this.isNotApplicable(t)||n.some((n=>this.isNotApplicable(n))),nummer:t.nummerXml,onDsoAnnotationToggle:()=>this.handleAnnotationToggle(t),onDsoOpenToggle:()=>this.handleOpenToggle(t),onDsoOzonContentAnchorClick:n=>this.handleOzonContentAnchorClick(n),open:this.isOpen(t),opschrift:t.opschrift,type:t.type,vervallen:t.vervallen,wijzigactie:t.wijzigactie,recursiveToggle:this.recursiveToggleState(t),onDsoRecursiveToggle:n=>this.handleRecursiveToggle(t,n.detail)},this.isOpenedAnnotation(t)&&e("div",{slot:"annotations"},e("dso-annotation-locatie",{active:this.isCheckedSlideToggle(t),"gewijzigde-locatie":true,locatieNoemer:"Winkelgebied",onDsoActiveChange:()=>this.handleSelectableChange(t)},e("span",{class:"symboolcode",slot:"symbool","data-symboolcode":"vszt030"}))),this.showContent(t)&&(o===null||o===void 0?void 0:o.documentComponents.length)&&e("ul",{class:"dso-document-component-list"},o.documentComponents.map((t=>e("li",{key:t.documentTechnischId},e(i,{path:[...n,t]}))))))};this.MenuButton=({documentComponent:n})=>{const{labelXml:t,nummerXml:i,type:o}=n;return e("button",{type:"button",onClick:()=>this.document=n},!t&&!i?e("span",null,e("i",null,o)):e(r,null,t&&e(r,null,e("dso-ozon-content",{content:t,inline:true})),i&&e(r,null," ",e("dso-ozon-content",{content:i,inline:true}))))};this.showCanvas=false;this.jsonFile=undefined;this.openDefault=false;this.response=undefined;this.document=undefined;this.openOrClosed=[];this.openedAnnotation=[];this.filtered=[];this.notApplicable=[];this.activeAnnotationSelectables=[]}async jsonFileWatcher(){this.openOrClosed=[];await this.loadData()}async openDefaultWatcher(){this.openOrClosed=[];await this.loadData()}async componentDidLoad(){await this.loadData()}getEmbeddedDocumentComponents(n){var t,e;if((t=n===null||n===void 0?void 0:n._embedded)===null||t===void 0?void 0:t.ontwerpTekststructuurDocumentComponenten){return{documentComponents:n._embedded.ontwerpTekststructuurDocumentComponenten,ontwerp:true}}if((e=n===null||n===void 0?void 0:n._embedded)===null||e===void 0?void 0:e.tekststructuurDocumentComponenten){return{documentComponents:n._embedded.tekststructuurDocumentComponenten,ontwerp:false}}return undefined}concatEmbeddedDocumentComponents(n){var t,e;const r=[...(e=(t=this.getEmbeddedDocumentComponents(n))===null||t===void 0?void 0:t.documentComponents)!==null&&e!==void 0?e:[]];for(const n of r){r.push(...this.concatEmbeddedDocumentComponents(n))}return r}selectRandomDocumentComponents(n,t=[]){const e=this.concatEmbeddedDocumentComponents(n).filter((n=>!t.includes(n)));const r=Xt(0,Math.floor(e.length/10));return lt(e,r)}async loadData(){var n,t;if(!this.jsonFile){this.response=undefined;this.document=undefined;return}this.response=await fetch(this.jsonFile).then((n=>n.json()));this.document=(n=this.getEmbeddedDocumentComponents(this.response))===null||n===void 0?void 0:n.documentComponents[0];if(((t=this.document)===null||t===void 0?void 0:t.type)==="LICHAAM"){this.notApplicable=this.selectRandomDocumentComponents(this.document);this.filtered=this.selectRandomDocumentComponents(this.document,this.notApplicable)}else{this.notApplicable=[];this.filtered=[]}}handleOpenToggle(n,t){const e=typeof t==="boolean"?t:this.openOrClosed.includes(n);if(e&&this.openOrClosed.includes(n)){this.openOrClosed=this.openOrClosed.filter((t=>t!==n))}else if(!e&&!this.openOrClosed.includes(n)){this.openOrClosed=[...this.openOrClosed,n]}}handleAnnotationToggle(n){this.openedAnnotation=this.isOpenedAnnotation(n)?this.openedAnnotation.filter((t=>t!==n)):[...this.openedAnnotation,n];if(!this.isOpen(n)){this.openOrClosed=[...this.openOrClosed,n]}}handleSelectableChange(n){this.activeAnnotationSelectables=this.isCheckedSlideToggle(n)?this.activeAnnotationSelectables.filter((t=>t!==n)):[...this.activeAnnotationSelectables,n]}handleOzonContentAnchorClick(n){this.dsotOzonContentAnchorClick.emit(n.detail)}isCheckedSlideToggle(n){return this.activeAnnotationSelectables.includes(n)}hasFilteredChildren(n){var t,e;return this.filtered.includes(n)||((e=(t=this.getEmbeddedDocumentComponents(n))===null||t===void 0?void 0:t.documentComponents.some((n=>this.hasFilteredChildren(n))))!==null&&e!==void 0?e:false)}isOpen(n){return n.type==="LID"||this.openDefault?!this.openOrClosed.includes(n):this.openOrClosed.includes(n)}isOpenedAnnotation(n){return this.openedAnnotation.includes(n)}isFiltered(n){return this.filtered.includes(n)}isNotApplicable(n){return this.notApplicable.includes(n)}hasNestedDraft(n){var t,e;return(e=(t=this.getEmbeddedDocumentComponents(n))===null||t===void 0?void 0:t.documentComponents.some((n=>!!n.bevatOntwerpInformatie||this.hasNestedDraft(n))))!==null&&e!==void 0?e:false}showContent(n){var t;return this.isOpen(n)&&!!(((t=this.getEmbeddedDocumentComponents(n))===null||t===void 0?void 0:t.documentComponents.length)||n.inhoud)}recursiveToggleState(n){const t=this.getEmbeddedDocumentComponents(n);if(!t||t.documentComponents.length<=1||!t.documentComponents.some((n=>n.type==="ARTIKEL"))){return undefined}return t.documentComponents.every((n=>this.isOpen(n)))}render(){var n,t;const{DocumentComponent:r,MenuButton:i}=this;return e("dso-responsive-element",{key:"16b7d10e045d7786c6f19636bcf720d18abc47dd",class:"dso-document-components"},e("div",{key:"a2c8d69d1bc709801116ac60218f3fec75fe5acd",class:"dso-navbar"},e("ul",{key:"fe169b6c35ad011116758e50df84b4d7caf87596",class:"dso-nav dso-nav-sub"},(t=(n=this.getEmbeddedDocumentComponents(this.response))===null||n===void 0?void 0:n.documentComponents)===null||t===void 0?void 0:t.map((n=>e("li",{class:this.document===n?"dso-active":undefined},e(i,{documentComponent:n})))))),this.document&&e(r,{key:"3b8096824ba9b544674c09f1cec7e7ae1bc2f9eb",path:[this.document]}))}static get watchers(){return{jsonFile:["jsonFileWatcher"],openDefault:["openDefaultWatcher"]}}};qt.style=Kt;export{qt as dsot_document_component_demo};
2
- //# sourceMappingURL=p-54dd8d20.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","argsTag","funcTag","genTag","mapTag","objectTag","promiseTag","setTag","stringTag","symbolTag","weakMapTag","dataViewTag","reRegExpChar","reTrim","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","rsAstralRange","rsComboMarksRange","rsComboSymbolsRange","rsVarRange","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsZWJ","reOptMod","rsOptVar","rsOptJoin","join","rsSeq","rsSymbol","reUnicode","RegExp","reHasUnicode","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","arrayMap","array","iteratee","index","length","result","Array","asciiToArray","string","split","baseTimes","n","baseValues","object","props","key","getValue","undefined","hasUnicode","test","isHostObject","value","toString","e","iteratorToArray","iterator","data","next","done","push","mapToArray","map","size","forEach","overArg","func","transform","arg","setToArray","set","stringToArray","unicodeToArray","match","funcProto","prototype","objectProto","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","funcToString","hasOwnProperty","objectToString","reIsNative","call","replace","Symbol","iteratorSymbol","propertyIsEnumerable","nativeFloor","Math","floor","nativeKeys","nativeRandom","random","DataView","getNative","Map","Promise","Set","WeakMap","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","arrayLikeKeys","inherited","isArray","isArguments","String","skipIndexes","isIndex","baseClamp","number","lower","upper","baseGetTag","baseIsNative","isObject","isMasked","pattern","isFunction","baseKeys","isPrototype","baseRandom","copyArray","source","getTag","ArrayBuffer","resolve","Ctor","constructor","ctorString","isIterateeCall","type","isArrayLike","eq","proto","sampleSize","collection","guard","toArray","lastIndex","toInteger","rand","other","isArrayLikeObject","isLength","isObjectLike","tag","isString","isSymbol","values","toFinite","toNumber","sign","remainder","valueOf","isBinary","slice","lodash_samplesize","freeParseFloat","parseFloat","nativeMin","min","floating","temp","lodash_random","documentComponentDemoCss","DsotDocumentComponentDemoStyle0","DocumentComponentDemo","this","handleRecursiveToggle","documentComponent","detail","embeddedDocuments","getEmbeddedDocumentComponents","d","documentComponents","handleOpenToggle","DocumentComponent","path","at","h","Fragment","annotated","volgordeNummer","bevatOntwerpInformatie","filtered","isOpen","isFiltered","hasFilteredChildren","genesteOntwerpInformatie","hasNestedDraft","gereserveerd","heading","inhoud","label","labelXml","openAnnotation","isOpenedAnnotation","notApplicable","isNotApplicable","some","p","nummer","nummerXml","onDsoAnnotationToggle","handleAnnotationToggle","onDsoOpenToggle","onDsoOzonContentAnchorClick","handleOzonContentAnchorClick","open","opschrift","vervallen","wijzigactie","recursiveToggle","recursiveToggleState","onDsoRecursiveToggle","slot","active","isCheckedSlideToggle","locatieNoemer","onDsoActiveChange","handleSelectableChange","class","showContent","documentTechnischId","MenuButton","onClick","document","content","inline","jsonFileWatcher","openOrClosed","loadData","openDefaultWatcher","componentDidLoad","documentEmbedded","_a","_embedded","ontwerpTekststructuurDocumentComponenten","ontwerp","_b","tekststructuurDocumentComponenten","concatEmbeddedDocumentComponents","selectRandomDocumentComponents","exclude","filter","includes","jsonFile","response","fetch","then","r","json","force","isOpenOrClosed","openedAnnotation","activeAnnotationSelectables","dsotOzonContentAnchorClick","emit","openDefault","every","render"],"sources":["../../node_modules/lodash.samplesize/index.js","../../node_modules/lodash.random/index.js","src/components/document-component-demo/document-component.demo.scss?tag=dsot-document-component-demo&encapsulation=scoped","src/components/document-component-demo/document-component.demo.tsx"],"sourcesContent":["/**\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 MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\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 rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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 `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n iteratorSymbol = Symbol ? Symbol.iterator : undefined,\n propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeKeys = overArg(Object.keys, Object),\n nativeRandom = Math.random;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\nfunction sampleSize(collection, n, guard) {\n var index = -1,\n result = toArray(collection),\n length = result.length,\n lastIndex = length - 1;\n\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = baseClamp(toInteger(n), 0, length);\n }\n while (++index < n) {\n var rand = baseRandom(index, lastIndex),\n value = result[rand];\n\n result[rand] = result[index];\n result[index] = value;\n }\n result.length = n;\n return result;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\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 `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\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 an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (iteratorSymbol && value[iteratorSymbol]) {\n return iteratorToArray(value[iteratorSymbol]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object ? baseValues(object, keys(object)) : [];\n}\n\nmodule.exports = sampleSize;\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 MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat,\n freeParseInt = parseInt;\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 method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\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 finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n}\n\nmodule.exports = random;\n",":host {\r\n display: block;\r\n margin-block: 0;\r\n margin-inline: 8px;\r\n border-inline-start: 1px dashed transparent;\r\n border-inline-end: 1px dashed transparent;\r\n}\r\n\r\n:host([show-canvas]) {\r\n border-inline-start: 1px dashed pink;\r\n border-inline-end: 1px dashed pink;\r\n}\r\n","import { h, Component, ComponentInterface, State, Prop, Watch, Event, EventEmitter, Fragment } from \"@stencil/core\";\r\nimport sampleSize from \"lodash.samplesize\";\r\nimport random from \"lodash.random\";\r\n\r\nimport {\r\n DocumentComponentOzonContentAnchorClickEvent,\r\n DocumentComponentRecursiveToggleEvent,\r\n DocumentComponentWijzigactie,\r\n} from \"../document-component/document-component.models\";\r\nimport { DsoDocumentComponentCustomEvent } from \"../../components\";\r\n\r\ninterface DocumentEmbedded {\r\n _embedded?: {\r\n ontwerpTekststructuurDocumentComponenten?: DocumentComponent[];\r\n tekststructuurDocumentComponenten?: DocumentComponent[];\r\n };\r\n}\r\n\r\ninterface DocumentComponent extends DocumentEmbedded {\r\n documentTechnischId: string;\r\n type?: string;\r\n labelXml?: string;\r\n nummerXml?: string;\r\n volgordeNummer: number;\r\n opschrift?: string;\r\n inhoud?: string;\r\n gereserveerd?: boolean;\r\n vervallen?: boolean;\r\n bevatOntwerpInformatie?: boolean;\r\n wijzigactie?: DocumentComponentWijzigactie;\r\n}\r\n\r\n@Component({\r\n tag: \"dsot-document-component-demo\",\r\n scoped: true, // scoped because we are immitating the usage of <dso-document-component> in a page\r\n styleUrl: \"document-component.demo.scss\",\r\n})\r\nexport class DocumentComponentDemo implements ComponentInterface {\r\n /**\r\n * Show canvas to where Document Component extends.\r\n */\r\n @Prop({ reflect: true })\r\n showCanvas = false;\r\n\r\n /**\r\n * Name of the file to load.\r\n */\r\n @Prop()\r\n jsonFile?: string;\r\n\r\n /**\r\n * The default state for all Document Components.\r\n */\r\n @Prop()\r\n openDefault = false;\r\n\r\n /**\r\n * To demo user interacting with IntRef or IntIoRef elements.\r\n */\r\n @Event()\r\n dsotOzonContentAnchorClick!: EventEmitter<DocumentComponentOzonContentAnchorClickEvent>;\r\n\r\n @State()\r\n response?: DocumentEmbedded;\r\n\r\n @State()\r\n document?: DocumentComponent;\r\n\r\n @State()\r\n openOrClosed: DocumentComponent[] = [];\r\n\r\n @State()\r\n openedAnnotation: DocumentComponent[] = [];\r\n\r\n @State()\r\n filtered: DocumentComponent[] = [];\r\n\r\n @State()\r\n notApplicable: DocumentComponent[] = [];\r\n\r\n @State()\r\n activeAnnotationSelectables: DocumentComponent[] = [];\r\n\r\n @Watch(\"jsonFile\")\r\n async jsonFileWatcher() {\r\n this.openOrClosed = [];\r\n\r\n await this.loadData();\r\n }\r\n\r\n @Watch(\"openDefault\")\r\n async openDefaultWatcher() {\r\n this.openOrClosed = [];\r\n\r\n await this.loadData();\r\n }\r\n\r\n async componentDidLoad(): Promise<void> {\r\n await this.loadData();\r\n }\r\n\r\n private getEmbeddedDocumentComponents(documentEmbedded: DocumentEmbedded | undefined) {\r\n if (documentEmbedded?._embedded?.ontwerpTekststructuurDocumentComponenten) {\r\n return {\r\n documentComponents: documentEmbedded._embedded.ontwerpTekststructuurDocumentComponenten,\r\n ontwerp: true,\r\n };\r\n }\r\n\r\n if (documentEmbedded?._embedded?.tekststructuurDocumentComponenten) {\r\n return {\r\n documentComponents: documentEmbedded._embedded.tekststructuurDocumentComponenten,\r\n ontwerp: false,\r\n };\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private concatEmbeddedDocumentComponents(documentComponent: DocumentComponent): DocumentComponent[] {\r\n const embeddedDocuments = [...(this.getEmbeddedDocumentComponents(documentComponent)?.documentComponents ?? [])];\r\n\r\n for (const d of embeddedDocuments) {\r\n embeddedDocuments.push(...this.concatEmbeddedDocumentComponents(d));\r\n }\r\n\r\n return embeddedDocuments;\r\n }\r\n\r\n private selectRandomDocumentComponents(\r\n documentComponent: DocumentComponent,\r\n exclude: DocumentComponent[] = [],\r\n ): DocumentComponent[] {\r\n const documentComponents = this.concatEmbeddedDocumentComponents(documentComponent).filter(\r\n (d) => !exclude.includes(d),\r\n );\r\n const size = random(0, Math.floor(documentComponents.length / 10));\r\n\r\n return sampleSize(documentComponents, size);\r\n }\r\n\r\n private async loadData() {\r\n if (!this.jsonFile) {\r\n this.response = undefined;\r\n this.document = undefined;\r\n\r\n return;\r\n }\r\n\r\n this.response = await fetch(this.jsonFile).then((r) => r.json());\r\n this.document = this.getEmbeddedDocumentComponents(this.response)?.documentComponents[0];\r\n\r\n if (this.document?.type === \"LICHAAM\") {\r\n this.notApplicable = this.selectRandomDocumentComponents(this.document);\r\n this.filtered = this.selectRandomDocumentComponents(this.document, this.notApplicable);\r\n } else {\r\n this.notApplicable = [];\r\n this.filtered = [];\r\n }\r\n }\r\n\r\n private handleOpenToggle(documentComponent: DocumentComponent, force?: boolean) {\r\n const isOpenOrClosed = typeof force === \"boolean\" ? force : this.openOrClosed.includes(documentComponent);\r\n\r\n if (isOpenOrClosed && this.openOrClosed.includes(documentComponent)) {\r\n this.openOrClosed = this.openOrClosed.filter((d) => d !== documentComponent);\r\n } else if (!isOpenOrClosed && !this.openOrClosed.includes(documentComponent)) {\r\n this.openOrClosed = [...this.openOrClosed, documentComponent];\r\n }\r\n }\r\n\r\n private handleAnnotationToggle(documentComponent: DocumentComponent) {\r\n this.openedAnnotation = this.isOpenedAnnotation(documentComponent)\r\n ? this.openedAnnotation.filter((d) => d !== documentComponent)\r\n : [...this.openedAnnotation, documentComponent];\r\n\r\n if (!this.isOpen(documentComponent)) {\r\n this.openOrClosed = [...this.openOrClosed, documentComponent];\r\n }\r\n }\r\n\r\n private handleSelectableChange(documentComponent: DocumentComponent) {\r\n this.activeAnnotationSelectables = this.isCheckedSlideToggle(documentComponent)\r\n ? this.activeAnnotationSelectables.filter((d) => d !== documentComponent)\r\n : [...this.activeAnnotationSelectables, documentComponent];\r\n }\r\n\r\n private handleOzonContentAnchorClick(\r\n e: DsoDocumentComponentCustomEvent<DocumentComponentOzonContentAnchorClickEvent>,\r\n ) {\r\n this.dsotOzonContentAnchorClick.emit(e.detail);\r\n }\r\n\r\n private isCheckedSlideToggle(documentComponent: DocumentComponent) {\r\n return this.activeAnnotationSelectables.includes(documentComponent);\r\n }\r\n\r\n private hasFilteredChildren(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.filtered.includes(documentComponent) ||\r\n (this.getEmbeddedDocumentComponents(documentComponent)?.documentComponents.some((d) =>\r\n this.hasFilteredChildren(d),\r\n ) ??\r\n false)\r\n );\r\n }\r\n\r\n private isOpen(documentComponent: DocumentComponent): boolean {\r\n return documentComponent.type === \"LID\" || this.openDefault\r\n ? !this.openOrClosed.includes(documentComponent)\r\n : this.openOrClosed.includes(documentComponent);\r\n }\r\n\r\n private isOpenedAnnotation(documentComponent: DocumentComponent): boolean {\r\n return this.openedAnnotation.includes(documentComponent);\r\n }\r\n\r\n private isFiltered(documentComponent: DocumentComponent): boolean {\r\n return this.filtered.includes(documentComponent);\r\n }\r\n\r\n private isNotApplicable(documentComponent: DocumentComponent): boolean {\r\n return this.notApplicable.includes(documentComponent);\r\n }\r\n\r\n private hasNestedDraft(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.getEmbeddedDocumentComponents(documentComponent)?.documentComponents.some(\r\n (d) => !!d.bevatOntwerpInformatie || this.hasNestedDraft(d),\r\n ) ?? false\r\n );\r\n }\r\n\r\n private showContent(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.isOpen(documentComponent) &&\r\n !!(this.getEmbeddedDocumentComponents(documentComponent)?.documentComponents.length || documentComponent.inhoud)\r\n );\r\n }\r\n\r\n private recursiveToggleState(documentComponent: DocumentComponent): undefined | boolean | \"indeterminate\" {\r\n const embeddedDocuments = this.getEmbeddedDocumentComponents(documentComponent);\r\n\r\n if (\r\n !embeddedDocuments ||\r\n embeddedDocuments.documentComponents.length <= 1 ||\r\n !embeddedDocuments.documentComponents.some((d) => d.type === \"ARTIKEL\")\r\n ) {\r\n return undefined;\r\n }\r\n\r\n return embeddedDocuments.documentComponents.every((d) => this.isOpen(d));\r\n }\r\n\r\n private handleRecursiveToggle = (\r\n documentComponent: DocumentComponent,\r\n detail: DocumentComponentRecursiveToggleEvent,\r\n ) => {\r\n const embeddedDocuments = this.getEmbeddedDocumentComponents(documentComponent);\r\n if (!embeddedDocuments) {\r\n return;\r\n }\r\n\r\n for (const d of embeddedDocuments.documentComponents) {\r\n this.handleOpenToggle(d, detail.next);\r\n }\r\n };\r\n\r\n private DocumentComponent = ({ path }: DocumentComponentProps) => {\r\n const documentComponent = path.at(-1);\r\n if (!documentComponent) {\r\n return <Fragment />;\r\n }\r\n\r\n const { DocumentComponent } = this;\r\n\r\n const embeddedDocuments = this.getEmbeddedDocumentComponents(documentComponent);\r\n\r\n return (\r\n <dso-document-component\r\n annotated={documentComponent.volgordeNummer % 4 === 2}\r\n bevatOntwerpInformatie={!!documentComponent.bevatOntwerpInformatie}\r\n filtered={\r\n this.isOpen(documentComponent)\r\n ? this.isFiltered(documentComponent)\r\n : this.hasFilteredChildren(documentComponent)\r\n }\r\n genesteOntwerpInformatie={this.hasNestedDraft(documentComponent)}\r\n gereserveerd={documentComponent.gereserveerd}\r\n heading=\"h2\"\r\n inhoud={documentComponent.inhoud}\r\n label={documentComponent.labelXml}\r\n openAnnotation={this.isOpenedAnnotation(documentComponent)}\r\n notApplicable={this.isNotApplicable(documentComponent) || path.some((p) => this.isNotApplicable(p))}\r\n nummer={documentComponent.nummerXml}\r\n onDsoAnnotationToggle={() => this.handleAnnotationToggle(documentComponent)}\r\n onDsoOpenToggle={() => this.handleOpenToggle(documentComponent)}\r\n onDsoOzonContentAnchorClick={(e) => this.handleOzonContentAnchorClick(e)}\r\n open={this.isOpen(documentComponent)}\r\n opschrift={documentComponent.opschrift}\r\n type={documentComponent.type}\r\n vervallen={documentComponent.vervallen}\r\n wijzigactie={documentComponent.wijzigactie}\r\n recursiveToggle={this.recursiveToggleState(documentComponent)}\r\n onDsoRecursiveToggle={(e) => this.handleRecursiveToggle(documentComponent, e.detail)}\r\n >\r\n {this.isOpenedAnnotation(documentComponent) && (\r\n <div slot=\"annotations\">\r\n <dso-annotation-locatie\r\n active={this.isCheckedSlideToggle(documentComponent)}\r\n gewijzigde-locatie\r\n locatieNoemer={\"Winkelgebied\"}\r\n onDsoActiveChange={() => this.handleSelectableChange(documentComponent)}\r\n >\r\n <span class=\"symboolcode\" slot=\"symbool\" data-symboolcode=\"vszt030\"></span>\r\n </dso-annotation-locatie>\r\n </div>\r\n )}\r\n {this.showContent(documentComponent) && embeddedDocuments?.documentComponents.length && (\r\n <ul class=\"dso-document-component-list\">\r\n {embeddedDocuments.documentComponents.map((d) => (\r\n <li key={d.documentTechnischId}>\r\n <DocumentComponent path={[...path, d]} />\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </dso-document-component>\r\n );\r\n };\r\n\r\n render() {\r\n const { DocumentComponent, MenuButton } = this;\r\n\r\n return (\r\n <dso-responsive-element class=\"dso-document-components\">\r\n <div class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-sub\">\r\n {this.getEmbeddedDocumentComponents(this.response)?.documentComponents?.map((d) => (\r\n <li class={this.document === d ? \"dso-active\" : undefined}>\r\n <MenuButton documentComponent={d} />\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n {this.document && <DocumentComponent path={[this.document]} />}\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private MenuButton = ({ documentComponent }: MenuItemProps) => {\r\n const { labelXml, nummerXml, type } = documentComponent;\r\n\r\n return (\r\n <button type=\"button\" onClick={() => (this.document = documentComponent)}>\r\n {!labelXml && !nummerXml ? (\r\n <span>\r\n <i>{type}</i>\r\n </span>\r\n ) : (\r\n <>\r\n {labelXml && (\r\n <>\r\n <dso-ozon-content content={labelXml} inline></dso-ozon-content>\r\n </>\r\n )}\r\n {nummerXml && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content content={nummerXml} inline></dso-ozon-content>\r\n </>\r\n )}\r\n </>\r\n )}\r\n </button>\r\n );\r\n };\r\n}\r\n\r\ninterface MenuItemProps {\r\n documentComponent: DocumentComponent;\r\n}\r\n\r\ninterface DocumentComponentProps {\r\n path: DocumentComponent[];\r\n}\r\n"],"mappings":"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","ignoreList":[]}