@dso-toolkit/core 73.3.0 → 74.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/dso-accordion-section.js +1 -1
- package/dist/bundle/dso-advanced-select.js +4 -4
- package/dist/bundle/dso-advanced-select.js.map +1 -1
- package/dist/bundle/dso-alert.js +1 -1
- package/dist/bundle/dso-annotation-activiteit.js +1 -1
- package/dist/bundle/dso-annotation-gebiedsaanwijzing.js +1 -1
- package/dist/bundle/dso-annotation-locatie.js +1 -1
- package/dist/bundle/dso-annotation-omgevingsnormwaarde.js +1 -1
- package/dist/bundle/dso-badge.js +1 -1
- package/dist/bundle/dso-banner.js +2 -2
- package/dist/bundle/dso-banner.js.map +1 -1
- package/dist/bundle/dso-document-component.js +1 -1
- package/dist/bundle/dso-label.js +1 -1
- package/dist/bundle/dso-modal.js +20 -7
- package/dist/bundle/dso-modal.js.map +1 -1
- package/dist/bundle/dso-project-item.js +2 -2
- package/dist/bundle/dso-project-item.js.map +1 -1
- package/dist/bundle/dso-viewer-grid.js +41 -105
- package/dist/bundle/dso-viewer-grid.js.map +1 -1
- package/dist/bundle/dsot-document-component-demo.js +5 -5
- package/dist/bundle/{p-DWTXTDbr.js → p-BJv2m9ZZ.js} +5 -5
- package/dist/bundle/{p-DWTXTDbr.js.map → p-BJv2m9ZZ.js.map} +1 -1
- package/dist/bundle/{p-BPLPqKUj.js → p-C_CoF0aB.js} +3 -3
- package/dist/bundle/{p-BPLPqKUj.js.map → p-C_CoF0aB.js.map} +1 -1
- package/dist/bundle/{p-ChrHXjXh.js → p-CkBk3gL8.js} +3 -3
- package/dist/bundle/{p-ChrHXjXh.js.map → p-CkBk3gL8.js.map} +1 -1
- package/dist/bundle/{p-Cbba2ZRN.js → p-CwXjPr2h.js} +3 -3
- package/dist/bundle/{p-Cbba2ZRN.js.map → p-CwXjPr2h.js.map} +1 -1
- package/dist/bundle/p-PMqbDJmA.js +78 -0
- package/dist/bundle/p-PMqbDJmA.js.map +1 -0
- package/dist/cjs/dso-advanced-select.cjs.entry.js +2 -2
- package/dist/cjs/dso-advanced-select.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-advanced-select.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-alert_6.cjs.entry.js +2 -2
- package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-banner.cjs.entry.js +2 -2
- package/dist/cjs/dso-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-banner.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-label.dso-renvooi.dso-slide-toggle.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-label_3.cjs.entry.js +1 -1
- package/dist/cjs/dso-label_3.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-modal.cjs.entry.js +19 -6
- package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-project-item.cjs.entry.js +1 -1
- package/dist/cjs/dso-project-item.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-project-item.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +1 -1
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +37 -100
- package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-viewer-grid.entry.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/accordion/components/accordion-section.js +1 -1
- package/dist/collection/components/advanced-select/advanced-select.css +0 -6
- package/dist/collection/components/advanced-select/advanced-select.interfaces.js.map +1 -1
- package/dist/collection/components/advanced-select/advanced-select.js +1 -1
- package/dist/collection/components/advanced-select/advanced-select.js.map +1 -1
- package/dist/collection/components/alert/alert.css +0 -117
- package/dist/collection/components/badge/badge.css +3 -8
- package/dist/collection/components/badge/badge.interfaces.js.map +1 -1
- package/dist/collection/components/badge/badge.js +1 -1
- package/dist/collection/components/banner/banner.js +4 -4
- package/dist/collection/components/banner/banner.js.map +1 -1
- package/dist/collection/components/label/label.css +8 -5
- package/dist/collection/components/label/label.interfaces.js.map +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/modal/modal.js +24 -11
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/project-item/project-item.js +1 -1
- package/dist/collection/components/project-item/project-item.js.map +1 -1
- package/dist/collection/components/viewer-grid/components/filter-panel.js +3 -0
- package/dist/collection/components/viewer-grid/components/filter-panel.js.map +1 -0
- package/dist/collection/components/viewer-grid/components/index.js +1 -1
- package/dist/collection/components/viewer-grid/components/index.js.map +1 -1
- package/dist/collection/components/viewer-grid/components/main-panel.js +3 -6
- package/dist/collection/components/viewer-grid/components/main-panel.js.map +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.css +28 -343
- package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js +1 -3
- package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js.map +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.js +54 -185
- package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/dso-advanced-select.js +2 -2
- package/dist/components/dso-advanced-select.js.map +1 -1
- package/dist/components/dso-banner.js +2 -2
- package/dist/components/dso-banner.js.map +1 -1
- package/dist/components/dso-modal.js +20 -7
- package/dist/components/dso-modal.js.map +1 -1
- package/dist/components/dso-project-item.js +1 -1
- package/dist/components/dso-project-item.js.map +1 -1
- package/dist/components/dso-viewer-grid.js +41 -105
- package/dist/components/dso-viewer-grid.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/dso-toolkit/dso-advanced-select.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-banner.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-label.dso-renvooi.dso-slide-toggle.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-modal.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-project-item.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/dso-viewer-grid.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/p-159be9e6.entry.js +2 -0
- package/dist/dso-toolkit/{p-e9053e12.entry.js.map → p-159be9e6.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-8897189c.entry.js +2 -0
- package/dist/dso-toolkit/p-8897189c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-8f4a2401.entry.js +2 -0
- package/dist/dso-toolkit/p-8f4a2401.entry.js.map +1 -0
- package/dist/dso-toolkit/p-9abdf5aa.entry.js +2 -0
- package/dist/dso-toolkit/p-9abdf5aa.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-7020a1ec.entry.js → p-b6f5ca5e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-7020a1ec.entry.js.map → p-b6f5ca5e.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-d926863a.entry.js +2 -0
- package/dist/dso-toolkit/p-d926863a.entry.js.map +1 -0
- package/dist/dso-toolkit/p-e85e3e06.entry.js +2 -0
- package/dist/dso-toolkit/p-e85e3e06.entry.js.map +1 -0
- package/dist/esm/dso-advanced-select.entry.js +2 -2
- package/dist/esm/dso-advanced-select.entry.js.map +1 -1
- package/dist/esm/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.js.map +1 -1
- package/dist/esm/dso-alert_6.entry.js +2 -2
- package/dist/esm/dso-alert_6.entry.js.map +1 -1
- package/dist/esm/dso-banner.entry.js +2 -2
- package/dist/esm/dso-banner.entry.js.map +1 -1
- package/dist/esm/dso-label.dso-renvooi.dso-slide-toggle.entry.js.map +1 -1
- package/dist/esm/dso-label_3.entry.js +1 -1
- package/dist/esm/dso-label_3.entry.js.map +1 -1
- package/dist/esm/dso-modal.entry.js +19 -6
- package/dist/esm/dso-modal.entry.js.map +1 -1
- package/dist/esm/dso-project-item.entry.js +1 -1
- package/dist/esm/dso-project-item.entry.js.map +1 -1
- package/dist/esm/dso-toolkit.js +1 -1
- package/dist/esm/dso-viewer-grid.entry.js +38 -101
- package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/advanced-select/advanced-select.interfaces.d.ts +1 -1
- package/dist/types/components/badge/badge.interfaces.d.ts +1 -1
- package/dist/types/components/banner/banner.d.ts +1 -1
- package/dist/types/components/label/label.interfaces.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +8 -3
- package/dist/types/components/viewer-grid/components/filter-panel.d.ts +7 -0
- package/dist/types/components/viewer-grid/components/index.d.ts +1 -1
- package/dist/types/components/viewer-grid/components/main-panel.d.ts +1 -4
- package/dist/types/components/viewer-grid/viewer-grid.d.ts +22 -43
- package/dist/types/components/viewer-grid/viewer-grid.interfaces.d.ts +3 -13
- package/dist/types/components.d.ts +39 -62
- package/package.json +3 -3
- package/dist/bundle/p-DacnxEpv.js +0 -78
- package/dist/bundle/p-DacnxEpv.js.map +0 -1
- package/dist/collection/components/viewer-grid/components/filterpanel.js +0 -13
- package/dist/collection/components/viewer-grid/components/filterpanel.js.map +0 -1
- package/dist/collection/components/viewer-grid/components/viewer-grid-filterpanel-buttons.js +0 -3
- package/dist/collection/components/viewer-grid/components/viewer-grid-filterpanel-buttons.js.map +0 -1
- package/dist/dso-toolkit/p-0c742a6a.entry.js +0 -2
- package/dist/dso-toolkit/p-0c742a6a.entry.js.map +0 -1
- package/dist/dso-toolkit/p-1107be6c.entry.js +0 -2
- package/dist/dso-toolkit/p-1107be6c.entry.js.map +0 -1
- package/dist/dso-toolkit/p-2b5f70a0.entry.js +0 -2
- package/dist/dso-toolkit/p-2b5f70a0.entry.js.map +0 -1
- package/dist/dso-toolkit/p-5fa008c6.entry.js +0 -2
- package/dist/dso-toolkit/p-5fa008c6.entry.js.map +0 -1
- package/dist/dso-toolkit/p-7d142b40.entry.js +0 -2
- package/dist/dso-toolkit/p-7d142b40.entry.js.map +0 -1
- package/dist/dso-toolkit/p-e9053e12.entry.js +0 -2
- package/dist/types/components/viewer-grid/components/filterpanel.d.ts +0 -11
- package/dist/types/components/viewer-grid/components/viewer-grid-filterpanel-buttons.d.ts +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["labelCss","resizeObserver","ResizeObserver","debounce","entries","forEach","target","isDsoLabelComponent","_truncateLabel","element","tagName","hasEllipses","el","scrollWidth","clientWidth","Label","constructor","hostRef","this","isTruncated","labelText","watchRemovable","removable","startMutationObserver","stopMutationObserver","watchTruncate","truncate","startTruncate","stopTruncate","keyDownListener","event","key","textHover","textFocus","setTimeout","labelContent","syncLabelText","_b","_a","host","textContent","trim","componentDidLoad","disconnectedCallback","mutationObserver","MutationObserver","observe","characterData","childList","subtree","attributes","force","disconnect","unobserve","render","h","Fragment","class","clsx","status","compact","removeHover","removeFocus","name","ref","tabindex","undefined","onMouseEnter","onMouseLeave","onFocus","onBlur","type","onClick","e","dsoRemoveClick","emit","icon","stateless","id","active","position","strategy","RenvooiRenderText","text","mark","onMarkItemHighlight","result","map","renvooiText","highlight","RenvooiRender","value","toegevoegd","verwijderd","was","wordt","renvooiCss","Renvooi","handleMarkItemHighlight","elementRef","dsoRenvooiMarkItemHighlight","values","Array","isArray","v","call","slideToggleCss","SlideToggle","checked","disabled","identifier","v4","handleSwitch","dsoActiveChange","originalEvent","componentWillLoad","hasVisibleLabel","querySelector","Object","assign","role","accessibleLabel","labelledbyId","xmlns","width","height","viewBox","fill","rx","cy","r","htmlFor"],"sources":["src/components/label/label.scss?tag=dso-label&encapsulation=shadow","src/components/label/label.tsx","src/components/renvooi/renvooi-render-text.tsx","src/components/renvooi/renvooi-render.tsx","src/components/renvooi/renvooi.scss?tag=dso-renvooi&encapsulation=shadow","src/components/renvooi/renvooi.tsx","src/components/slide-toggle/slide-toggle.scss?tag=dso-slide-toggle&encapsulation=scoped","src/components/slide-toggle/slide-toggle.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/label\";\r\n\r\n:host {\r\n display: inline-block;\r\n max-inline-size: 100%;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n// Todo: Replace .sr-only selector with web component specific selector, no need for .sr-only if we can generate the SCSS\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-label {\r\n @include label.root();\r\n\r\n &.dso-hover {\r\n .dso-label-content {\r\n text-decoration: line-through;\r\n }\r\n }\r\n}\r\n\r\n.dso-truncate.dso-label-content {\r\n display: inline-block;\r\n max-inline-size: 100%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n vertical-align: bottom;\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n}\r\n\r\n:host([removable]) {\r\n .dso-truncate.dso-label-content {\r\n max-inline-size: calc(100% - (units.$u3 + 4px));\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n h,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { LabelStatus } from \"./label.interfaces\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce((entries: ResizeObserverEntry[]) => {\r\n entries.forEach(({ target }) => {\r\n if (isDsoLabelComponent(target)) {\r\n target._truncateLabel();\r\n }\r\n });\r\n }, 150),\r\n);\r\n\r\nfunction isDsoLabelComponent(element: Element): element is HTMLDsoLabelElement {\r\n return element.tagName === \"DSO-LABEL\";\r\n}\r\n\r\nfunction hasEllipses(el: HTMLElement): boolean {\r\n return el.scrollWidth > el.clientWidth;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-label\",\r\n styleUrl: \"label.scss\",\r\n shadow: true,\r\n})\r\nexport class Label implements ComponentInterface {\r\n private labelContent: HTMLSpanElement | undefined;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n @Element()\r\n private host!: HTMLDsoLabelElement;\r\n\r\n /**\r\n * For compact Label\r\n */\r\n @Prop()\r\n compact?: boolean;\r\n\r\n /**\r\n * Shows a button that can be used to remove the Label.\r\n */\r\n @Prop({ reflect: true })\r\n removable?: boolean;\r\n\r\n /**\r\n * The status of this Label.\r\n */\r\n @Prop()\r\n status?: LabelStatus;\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<MouseEvent>;\r\n\r\n @State()\r\n removeHover?: boolean;\r\n\r\n @State()\r\n removeFocus?: boolean;\r\n\r\n /**\r\n * Whether the Label is allowed to truncate the contents if it does not fit the container element.\r\n */\r\n @Prop()\r\n truncate?: boolean;\r\n\r\n @State()\r\n textHover?: boolean;\r\n\r\n @State()\r\n textFocus?: boolean;\r\n\r\n @State()\r\n isTruncated = false;\r\n\r\n @State()\r\n labelText = \"\";\r\n\r\n @Watch(\"removable\")\r\n watchRemovable(removable: boolean) {\r\n if (removable) {\r\n this.startMutationObserver();\r\n } else {\r\n this.stopMutationObserver();\r\n }\r\n }\r\n\r\n @Watch(\"truncate\")\r\n watchTruncate(truncate: boolean) {\r\n if (truncate) {\r\n this.startTruncate();\r\n } else {\r\n this.stopTruncate();\r\n }\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.key === \"Escape\") {\r\n this.textHover = false;\r\n this.textFocus = false;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _truncateLabel() {\r\n setTimeout(() => {\r\n this.isTruncated = !!this.labelContent && hasEllipses(this.labelContent);\r\n });\r\n }\r\n\r\n private syncLabelText() {\r\n this.labelText = this.host.textContent?.trim() ?? \"\";\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.truncate) {\r\n this.startTruncate();\r\n }\r\n\r\n if (this.removable) {\r\n this.startMutationObserver();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTruncate();\r\n\r\n this.stopMutationObserver(true);\r\n }\r\n\r\n /** The mutationObserver fetches the text placed inside the label, this is then used for the remove button and tooltip. */\r\n private startMutationObserver(): void {\r\n this.mutationObserver = new MutationObserver(() => this.syncLabelText());\r\n\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n });\r\n\r\n this.syncLabelText();\r\n }\r\n\r\n private stopMutationObserver(force = false): void {\r\n if (force || !(this.truncate && this.removable)) {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n }\r\n\r\n private startTruncate(): void {\r\n resizeObserver.observe(this.host);\r\n this.startMutationObserver();\r\n this._truncateLabel();\r\n }\r\n\r\n private stopTruncate(): void {\r\n resizeObserver.unobserve(this.host);\r\n this.stopMutationObserver();\r\n this.isTruncated = false;\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <span\r\n aria-describedby=\"toggle-anchor\"\r\n class={clsx(\"dso-label\", {\r\n [`dso-label-${this.status}`]: this.status,\r\n \"dso-compact\": this.compact && !this.removable,\r\n \"dso-hover\": this.removeHover || this.removeFocus,\r\n })}\r\n >\r\n <slot name=\"symbol\"></slot>\r\n <span\r\n class={clsx(\"dso-label-content\", {\r\n \"dso-truncate\": !!this.truncate,\r\n })}\r\n ref={(element) => (this.labelContent = element)}\r\n tabindex={this.truncate && this.isTruncated ? 0 : undefined}\r\n onMouseEnter={() => (this.textHover = true)}\r\n onMouseLeave={() => (this.textHover = false)}\r\n onFocus={() => (this.textFocus = true)}\r\n onBlur={() => (this.textFocus = false)}\r\n >\r\n <slot></slot>\r\n </span>\r\n {this.removable && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoRemoveClick.emit(e)}\r\n onMouseEnter={() => (this.removeHover = true)}\r\n onMouseLeave={() => (this.removeHover = false)}\r\n onFocus={() => (this.removeFocus = true)}\r\n onBlur={() => (this.removeFocus = false)}\r\n >\r\n <span class=\"sr-only\">Verwijder: {this.labelText}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n )}\r\n </span>\r\n {this.isTruncated && (\r\n <dso-tooltip\r\n stateless\r\n id=\"toggle-anchor\"\r\n active={this.textHover || this.textFocus}\r\n position=\"top\"\r\n strategy=\"absolute\"\r\n >\r\n {this.labelText}\r\n </dso-tooltip>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiRenderMarkFunction } from \"./renvooi.interfaces\";\r\n\r\ninterface RenvooiRenderTextProps {\r\n text: string;\r\n mark: RenvooiRenderMarkFunction | undefined;\r\n onMarkItemHighlight: (text: string, ref: HTMLElement) => void | undefined;\r\n}\r\n\r\nexport const RenvooiRenderText: FunctionalComponent<RenvooiRenderTextProps> = ({ text, mark, onMarkItemHighlight }) => {\r\n if (!mark) {\r\n return <>{text}</>;\r\n }\r\n\r\n const result = mark(text);\r\n\r\n if (!result) {\r\n return <>{text}</>;\r\n }\r\n\r\n return (\r\n <>\r\n {result.map((renvooiText) => {\r\n if (typeof renvooiText === \"string\") {\r\n return <>{renvooiText}</>;\r\n }\r\n\r\n return (\r\n <mark\r\n class={renvooiText.highlight ? \"dso-highlight\" : undefined}\r\n ref={(ref) => renvooiText.highlight && ref && onMarkItemHighlight(renvooiText.text, ref)}\r\n >\r\n {renvooiText.text}\r\n </mark>\r\n );\r\n })}\r\n </>\r\n );\r\n};\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiRenderText } from \"./renvooi-render-text\";\r\nimport { RenvooiRenderMarkFunction, RenvooiValue } from \"./renvooi.interfaces\";\r\n\r\ninterface RenvooiRenderProps {\r\n value: RenvooiValue;\r\n mark: RenvooiRenderMarkFunction | undefined;\r\n onMarkItemHighlight: (text: string, elementRef: HTMLElement) => void | undefined;\r\n}\r\n\r\nexport const RenvooiRender: FunctionalComponent<RenvooiRenderProps> = ({ value, mark, onMarkItemHighlight }) => {\r\n if (typeof value === \"string\" || !value) {\r\n // This element is used for --_dso-renvooi-text-decoration\r\n return (\r\n <span class=\"text\">\r\n <RenvooiRenderText text={value} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </span>\r\n );\r\n }\r\n\r\n if (\"toegevoegd\" in value) {\r\n return (\r\n <ins>\r\n <RenvooiRenderText text={value.toegevoegd} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </ins>\r\n );\r\n }\r\n\r\n if (\"verwijderd\" in value) {\r\n return (\r\n <del>\r\n <RenvooiRenderText text={value.verwijderd} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </del>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <del>\r\n <RenvooiRenderText text={value.was} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </del>\r\n <ins>\r\n <RenvooiRenderText text={value.wordt} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </ins>\r\n </>\r\n );\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/components/insert/insert\";\r\n@use \"~dso-toolkit/src/components/delete/delete\";\r\n@use \"~dso-toolkit/src/components/mark/mark\";\r\n\r\n:host {\r\n display: inline;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.text {\r\n text-decoration: var(--_dso-renvooi-text-decoration);\r\n}\r\n","import { Component, ComponentInterface, Event, EventEmitter, Fragment, Prop, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiRender } from \"./renvooi-render\";\r\nimport { RenvooiMarkFunction, RenvooiMarkItemHighlightEvent, RenvooiValue } from \"./renvooi.interfaces\";\r\n\r\n/**\r\n * Met dit component kan een `RenvooiValue` worden gepresenteerd.\r\n */\r\n@Component({\r\n tag: \"dso-renvooi\",\r\n styleUrl: \"renvooi.scss\",\r\n shadow: true,\r\n})\r\nexport class Renvooi implements ComponentInterface {\r\n /**\r\n * The renvooi value to render.\r\n */\r\n @Prop()\r\n value?: RenvooiValue | RenvooiValue[];\r\n\r\n /**\r\n * To mark text.\r\n */\r\n @Prop()\r\n mark?: RenvooiMarkFunction;\r\n\r\n /**\r\n * Emitted when a marked item is highlighted.\r\n */\r\n @Event({ bubbles: false })\r\n dsoRenvooiMarkItemHighlight!: EventEmitter<RenvooiMarkItemHighlightEvent>;\r\n\r\n get values(): RenvooiValue[] {\r\n if (!this.value) {\r\n return [];\r\n }\r\n\r\n return Array.isArray(this.value) ? this.value : [this.value];\r\n }\r\n\r\n private handleMarkItemHighlight = (text: string, elementRef: HTMLElement) => {\r\n this.dsoRenvooiMarkItemHighlight.emit({ text, elementRef });\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.values.map((v) => (\r\n <RenvooiRender\r\n value={v}\r\n mark={this.mark && ((text) => this.mark?.(text, v, this.values))}\r\n onMarkItemHighlight={this.handleMarkItemHighlight}\r\n />\r\n ))}\r\n </>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n$slide-toggle-height: 20px;\r\n\r\n:host {\r\n display: inline-block;\r\n padding-block-start: (typography.$line-height-base * typography.$font-size-base - $slide-toggle-height) * 0.5;\r\n}\r\n\r\nbutton.dso-slider {\r\n border: 0;\r\n padding: 0;\r\n\r\n &:focus-visible {\r\n outline: 2px solid colors.$grijs-80;\r\n outline-offset: 1px;\r\n }\r\n\r\n svg {\r\n rect {\r\n fill: colors.$grijs-40;\r\n transition: fill 0.25s;\r\n }\r\n\r\n circle {\r\n @include utilities.transition(transform);\r\n\r\n transform: translateX(10px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen;\r\n }\r\n\r\n circle {\r\n transform: translateX(30px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[disabled] svg {\r\n rect {\r\n fill: colors.$grijs-20;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n\r\n &[disabled][aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen-40;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n}\r\n\r\n.dso-slider {\r\n border-radius: units.$u3;\r\n display: inline-flex;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Fragment, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { SlideToggleActiveEvent } from \"./slide-toggle.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-slide-toggle\",\r\n styleUrl: \"slide-toggle.scss\",\r\n scoped: true,\r\n shadow: false,\r\n})\r\nexport class SlideToggle implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoSlideToggleElement;\r\n\r\n /**\r\n * Set to true if Slide Toggle is checked.\r\n */\r\n @Prop()\r\n checked = false;\r\n\r\n /**\r\n * Disables the Slide Toggle, preventing it from checking/unchecking and therefor not emitting any events.\r\n */\r\n @Prop()\r\n disabled = false;\r\n\r\n /**\r\n * When provided the `<button>` will be labelled with `aria-label`. For a visible label provide a `<span>` inside the component.\r\n */\r\n @Prop()\r\n accessibleLabel?: string;\r\n\r\n /**\r\n * Provide the `id` of the element that labels this element. this property sets the `aria-labelledby` on the switch button.\r\n */\r\n @Prop()\r\n labelledbyId?: string;\r\n\r\n @State()\r\n hasVisibleLabel?: boolean;\r\n\r\n /**\r\n * Provide an `id` for the `<button>`. Useful for placing your to place your own `<label for=\"id\">`.\r\n */\r\n @Prop()\r\n identifier = v4();\r\n\r\n /**\r\n * Emitted when user checks or unchecks the Slide Toggle.\r\n */\r\n @Event({ composed: false })\r\n dsoActiveChange!: EventEmitter<SlideToggleActiveEvent>;\r\n\r\n private handleSwitch(e: Event): void {\r\n this.dsoActiveChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.hasVisibleLabel = this.host.querySelector(\"*\") !== null;\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <button\r\n id={this.identifier}\r\n role=\"switch\"\r\n class=\"dso-slider\"\r\n aria-checked={\"\" + this.checked}\r\n disabled={this.disabled}\r\n onClick={(e) => this.handleSwitch(e)}\r\n {...(this.accessibleLabel ? { \"aria-label\": this.accessibleLabel } : {})}\r\n {...(this.labelledbyId ? { \"aria-labelledby\": this.labelledbyId } : {})}\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"20\" viewBox=\"0 0 40 20\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <rect width=\"40\" height=\"20\" fill=\"currentColor\" rx=\"10\" />\r\n <circle cy=\"10\" r=\"8\" fill=\"currentColor\" />\r\n </g>\r\n </svg>\r\n </button>\r\n {this.hasVisibleLabel && (\r\n <label htmlFor={this.identifier}>\r\n <slot />\r\n </label>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["labelCss","resizeObserver","ResizeObserver","debounce","entries","forEach","target","isDsoLabelComponent","_truncateLabel","element","tagName","hasEllipses","el","scrollWidth","clientWidth","Label","constructor","hostRef","this","isTruncated","labelText","watchRemovable","removable","startMutationObserver","stopMutationObserver","watchTruncate","truncate","startTruncate","stopTruncate","keyDownListener","event","key","textHover","textFocus","setTimeout","labelContent","syncLabelText","_b","_a","host","textContent","trim","componentDidLoad","disconnectedCallback","mutationObserver","MutationObserver","observe","characterData","childList","subtree","attributes","force","disconnect","unobserve","render","h","Fragment","class","clsx","status","compact","removeHover","removeFocus","name","ref","tabindex","undefined","onMouseEnter","onMouseLeave","onFocus","onBlur","type","onClick","e","dsoRemoveClick","emit","icon","stateless","id","active","position","strategy","RenvooiRenderText","text","mark","onMarkItemHighlight","result","map","renvooiText","highlight","RenvooiRender","value","toegevoegd","verwijderd","was","wordt","renvooiCss","Renvooi","handleMarkItemHighlight","elementRef","dsoRenvooiMarkItemHighlight","values","Array","isArray","v","call","slideToggleCss","SlideToggle","checked","disabled","identifier","v4","handleSwitch","dsoActiveChange","originalEvent","componentWillLoad","hasVisibleLabel","querySelector","Object","assign","role","accessibleLabel","labelledbyId","xmlns","width","height","viewBox","fill","rx","cy","r","htmlFor"],"sources":["src/components/label/label.scss?tag=dso-label&encapsulation=shadow","src/components/label/label.tsx","src/components/renvooi/renvooi-render-text.tsx","src/components/renvooi/renvooi-render.tsx","src/components/renvooi/renvooi.scss?tag=dso-renvooi&encapsulation=shadow","src/components/renvooi/renvooi.tsx","src/components/slide-toggle/slide-toggle.scss?tag=dso-slide-toggle&encapsulation=scoped","src/components/slide-toggle/slide-toggle.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/label\";\r\n\r\n:host {\r\n display: inline-block;\r\n max-inline-size: 100%;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n// Todo: Replace .sr-only selector with web component specific selector, no need for .sr-only if we can generate the SCSS\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-label {\r\n @include label.root();\r\n\r\n &.dso-hover {\r\n .dso-label-content {\r\n text-decoration: line-through;\r\n }\r\n }\r\n}\r\n\r\n.dso-truncate.dso-label-content {\r\n display: inline-block;\r\n max-inline-size: 100%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n vertical-align: bottom;\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n}\r\n\r\n:host([removable]) {\r\n .dso-truncate.dso-label-content {\r\n max-inline-size: calc(100% - (units.$u3 + 4px));\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n h,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { LabelStatus } from \"./label.interfaces\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce((entries: ResizeObserverEntry[]) => {\r\n entries.forEach(({ target }) => {\r\n if (isDsoLabelComponent(target)) {\r\n target._truncateLabel();\r\n }\r\n });\r\n }, 150),\r\n);\r\n\r\nfunction isDsoLabelComponent(element: Element): element is HTMLDsoLabelElement {\r\n return element.tagName === \"DSO-LABEL\";\r\n}\r\n\r\nfunction hasEllipses(el: HTMLElement): boolean {\r\n return el.scrollWidth > el.clientWidth;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-label\",\r\n styleUrl: \"label.scss\",\r\n shadow: true,\r\n})\r\nexport class Label implements ComponentInterface {\r\n private labelContent: HTMLSpanElement | undefined;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n @Element()\r\n private host!: HTMLDsoLabelElement;\r\n\r\n /**\r\n * For compact Label\r\n */\r\n @Prop()\r\n compact?: boolean;\r\n\r\n /**\r\n * Shows a button that can be used to remove the Label.\r\n */\r\n @Prop({ reflect: true })\r\n removable?: boolean;\r\n\r\n /**\r\n * The status of this Label.\r\n */\r\n @Prop()\r\n status?: LabelStatus;\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<MouseEvent>;\r\n\r\n @State()\r\n removeHover?: boolean;\r\n\r\n @State()\r\n removeFocus?: boolean;\r\n\r\n /**\r\n * Whether the Label is allowed to truncate the contents if it does not fit the container element.\r\n */\r\n @Prop()\r\n truncate?: boolean;\r\n\r\n @State()\r\n textHover?: boolean;\r\n\r\n @State()\r\n textFocus?: boolean;\r\n\r\n @State()\r\n isTruncated = false;\r\n\r\n @State()\r\n labelText = \"\";\r\n\r\n @Watch(\"removable\")\r\n watchRemovable(removable: boolean) {\r\n if (removable) {\r\n this.startMutationObserver();\r\n } else {\r\n this.stopMutationObserver();\r\n }\r\n }\r\n\r\n @Watch(\"truncate\")\r\n watchTruncate(truncate: boolean) {\r\n if (truncate) {\r\n this.startTruncate();\r\n } else {\r\n this.stopTruncate();\r\n }\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.key === \"Escape\") {\r\n this.textHover = false;\r\n this.textFocus = false;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _truncateLabel() {\r\n setTimeout(() => {\r\n this.isTruncated = !!this.labelContent && hasEllipses(this.labelContent);\r\n });\r\n }\r\n\r\n private syncLabelText() {\r\n this.labelText = this.host.textContent?.trim() ?? \"\";\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.truncate) {\r\n this.startTruncate();\r\n }\r\n\r\n if (this.removable) {\r\n this.startMutationObserver();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTruncate();\r\n\r\n this.stopMutationObserver(true);\r\n }\r\n\r\n /** The mutationObserver fetches the text placed inside the label, this is then used for the remove button and tooltip. */\r\n private startMutationObserver(): void {\r\n this.mutationObserver = new MutationObserver(() => this.syncLabelText());\r\n\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n });\r\n\r\n this.syncLabelText();\r\n }\r\n\r\n private stopMutationObserver(force = false): void {\r\n if (force || !(this.truncate && this.removable)) {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n }\r\n\r\n private startTruncate(): void {\r\n resizeObserver.observe(this.host);\r\n this.startMutationObserver();\r\n this._truncateLabel();\r\n }\r\n\r\n private stopTruncate(): void {\r\n resizeObserver.unobserve(this.host);\r\n this.stopMutationObserver();\r\n this.isTruncated = false;\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <span\r\n aria-describedby=\"toggle-anchor\"\r\n class={clsx(\"dso-label\", {\r\n [`dso-label-${this.status}`]: this.status,\r\n \"dso-compact\": this.compact && !this.removable,\r\n \"dso-hover\": this.removeHover || this.removeFocus,\r\n })}\r\n >\r\n <slot name=\"symbol\"></slot>\r\n <span\r\n class={clsx(\"dso-label-content\", {\r\n \"dso-truncate\": !!this.truncate,\r\n })}\r\n ref={(element) => (this.labelContent = element)}\r\n tabindex={this.truncate && this.isTruncated ? 0 : undefined}\r\n onMouseEnter={() => (this.textHover = true)}\r\n onMouseLeave={() => (this.textHover = false)}\r\n onFocus={() => (this.textFocus = true)}\r\n onBlur={() => (this.textFocus = false)}\r\n >\r\n <slot></slot>\r\n </span>\r\n {this.removable && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoRemoveClick.emit(e)}\r\n onMouseEnter={() => (this.removeHover = true)}\r\n onMouseLeave={() => (this.removeHover = false)}\r\n onFocus={() => (this.removeFocus = true)}\r\n onBlur={() => (this.removeFocus = false)}\r\n >\r\n <span class=\"sr-only\">Verwijder: {this.labelText}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n )}\r\n </span>\r\n {this.isTruncated && (\r\n <dso-tooltip\r\n stateless\r\n id=\"toggle-anchor\"\r\n active={this.textHover || this.textFocus}\r\n position=\"top\"\r\n strategy=\"absolute\"\r\n >\r\n {this.labelText}\r\n </dso-tooltip>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiRenderMarkFunction } from \"./renvooi.interfaces\";\r\n\r\ninterface RenvooiRenderTextProps {\r\n text: string;\r\n mark: RenvooiRenderMarkFunction | undefined;\r\n onMarkItemHighlight: (text: string, ref: HTMLElement) => void | undefined;\r\n}\r\n\r\nexport const RenvooiRenderText: FunctionalComponent<RenvooiRenderTextProps> = ({ text, mark, onMarkItemHighlight }) => {\r\n if (!mark) {\r\n return <>{text}</>;\r\n }\r\n\r\n const result = mark(text);\r\n\r\n if (!result) {\r\n return <>{text}</>;\r\n }\r\n\r\n return (\r\n <>\r\n {result.map((renvooiText) => {\r\n if (typeof renvooiText === \"string\") {\r\n return <>{renvooiText}</>;\r\n }\r\n\r\n return (\r\n <mark\r\n class={renvooiText.highlight ? \"dso-highlight\" : undefined}\r\n ref={(ref) => renvooiText.highlight && ref && onMarkItemHighlight(renvooiText.text, ref)}\r\n >\r\n {renvooiText.text}\r\n </mark>\r\n );\r\n })}\r\n </>\r\n );\r\n};\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiRenderText } from \"./renvooi-render-text\";\r\nimport { RenvooiRenderMarkFunction, RenvooiValue } from \"./renvooi.interfaces\";\r\n\r\ninterface RenvooiRenderProps {\r\n value: RenvooiValue;\r\n mark: RenvooiRenderMarkFunction | undefined;\r\n onMarkItemHighlight: (text: string, elementRef: HTMLElement) => void | undefined;\r\n}\r\n\r\nexport const RenvooiRender: FunctionalComponent<RenvooiRenderProps> = ({ value, mark, onMarkItemHighlight }) => {\r\n if (typeof value === \"string\" || !value) {\r\n // This element is used for --_dso-renvooi-text-decoration\r\n return (\r\n <span class=\"text\">\r\n <RenvooiRenderText text={value} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </span>\r\n );\r\n }\r\n\r\n if (\"toegevoegd\" in value) {\r\n return (\r\n <ins>\r\n <RenvooiRenderText text={value.toegevoegd} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </ins>\r\n );\r\n }\r\n\r\n if (\"verwijderd\" in value) {\r\n return (\r\n <del>\r\n <RenvooiRenderText text={value.verwijderd} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </del>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n <del>\r\n <RenvooiRenderText text={value.was} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </del>\r\n <ins>\r\n <RenvooiRenderText text={value.wordt} mark={mark} onMarkItemHighlight={onMarkItemHighlight} />\r\n </ins>\r\n </>\r\n );\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/components/insert/insert\";\r\n@use \"~dso-toolkit/src/components/delete/delete\";\r\n@use \"~dso-toolkit/src/components/mark/mark\";\r\n\r\n:host {\r\n display: inline;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.text {\r\n text-decoration: var(--_dso-renvooi-text-decoration);\r\n}\r\n","import { Component, ComponentInterface, Event, EventEmitter, Fragment, Prop, h } from \"@stencil/core\";\r\n\r\nimport { RenvooiRender } from \"./renvooi-render\";\r\nimport { RenvooiMarkFunction, RenvooiMarkItemHighlightEvent, RenvooiValue } from \"./renvooi.interfaces\";\r\n\r\n/**\r\n * Met dit component kan een `RenvooiValue` worden gepresenteerd.\r\n */\r\n@Component({\r\n tag: \"dso-renvooi\",\r\n styleUrl: \"renvooi.scss\",\r\n shadow: true,\r\n})\r\nexport class Renvooi implements ComponentInterface {\r\n /**\r\n * The renvooi value to render.\r\n */\r\n @Prop()\r\n value?: RenvooiValue | RenvooiValue[];\r\n\r\n /**\r\n * To mark text.\r\n */\r\n @Prop()\r\n mark?: RenvooiMarkFunction;\r\n\r\n /**\r\n * Emitted when a marked item is highlighted.\r\n */\r\n @Event({ bubbles: false })\r\n dsoRenvooiMarkItemHighlight!: EventEmitter<RenvooiMarkItemHighlightEvent>;\r\n\r\n get values(): RenvooiValue[] {\r\n if (!this.value) {\r\n return [];\r\n }\r\n\r\n return Array.isArray(this.value) ? this.value : [this.value];\r\n }\r\n\r\n private handleMarkItemHighlight = (text: string, elementRef: HTMLElement) => {\r\n this.dsoRenvooiMarkItemHighlight.emit({ text, elementRef });\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.values.map((v) => (\r\n <RenvooiRender\r\n value={v}\r\n mark={this.mark && ((text) => this.mark?.(text, v, this.values))}\r\n onMarkItemHighlight={this.handleMarkItemHighlight}\r\n />\r\n ))}\r\n </>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n$slide-toggle-height: 20px;\r\n\r\n:host {\r\n display: inline-block;\r\n padding-block-start: (typography.$line-height-base * typography.$font-size-base - $slide-toggle-height) * 0.5;\r\n}\r\n\r\nbutton.dso-slider {\r\n border: 0;\r\n padding: 0;\r\n\r\n &:focus-visible {\r\n outline: 2px solid colors.$grijs-80;\r\n outline-offset: 1px;\r\n }\r\n\r\n svg {\r\n rect {\r\n fill: colors.$grijs-40;\r\n transition: fill 0.25s;\r\n }\r\n\r\n circle {\r\n @include utilities.transition(transform);\r\n\r\n transform: translateX(10px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen;\r\n }\r\n\r\n circle {\r\n transform: translateX(30px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[disabled] svg {\r\n rect {\r\n fill: colors.$grijs-20;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n\r\n &[disabled][aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen-40;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n}\r\n\r\n.dso-slider {\r\n border-radius: units.$u3;\r\n display: inline-flex;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Fragment, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { SlideToggleActiveEvent } from \"./slide-toggle.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-slide-toggle\",\r\n styleUrl: \"slide-toggle.scss\",\r\n scoped: true,\r\n shadow: false,\r\n})\r\nexport class SlideToggle implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoSlideToggleElement;\r\n\r\n /**\r\n * Set to true if Slide Toggle is checked.\r\n */\r\n @Prop()\r\n checked = false;\r\n\r\n /**\r\n * Disables the Slide Toggle, preventing it from checking/unchecking and therefor not emitting any events.\r\n */\r\n @Prop()\r\n disabled = false;\r\n\r\n /**\r\n * When provided the `<button>` will be labelled with `aria-label`. For a visible label provide a `<span>` inside the component.\r\n */\r\n @Prop()\r\n accessibleLabel?: string;\r\n\r\n /**\r\n * Provide the `id` of the element that labels this element. this property sets the `aria-labelledby` on the switch button.\r\n */\r\n @Prop()\r\n labelledbyId?: string;\r\n\r\n @State()\r\n hasVisibleLabel?: boolean;\r\n\r\n /**\r\n * Provide an `id` for the `<button>`. Useful for placing your to place your own `<label for=\"id\">`.\r\n */\r\n @Prop()\r\n identifier = v4();\r\n\r\n /**\r\n * Emitted when user checks or unchecks the Slide Toggle.\r\n */\r\n @Event({ composed: false })\r\n dsoActiveChange!: EventEmitter<SlideToggleActiveEvent>;\r\n\r\n private handleSwitch(e: Event): void {\r\n this.dsoActiveChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.hasVisibleLabel = this.host.querySelector(\"*\") !== null;\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <button\r\n id={this.identifier}\r\n role=\"switch\"\r\n class=\"dso-slider\"\r\n aria-checked={\"\" + this.checked}\r\n disabled={this.disabled}\r\n onClick={(e) => this.handleSwitch(e)}\r\n {...(this.accessibleLabel ? { \"aria-label\": this.accessibleLabel } : {})}\r\n {...(this.labelledbyId ? { \"aria-labelledby\": this.labelledbyId } : {})}\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"20\" viewBox=\"0 0 40 20\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <rect width=\"40\" height=\"20\" fill=\"currentColor\" rx=\"10\" />\r\n <circle cy=\"10\" r=\"8\" fill=\"currentColor\" />\r\n </g>\r\n </svg>\r\n </button>\r\n {this.hasVisibleLabel && (\r\n <label htmlFor={this.identifier}>\r\n <slot />\r\n </label>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as s,h as o}from"./p-C-b4jsbt.js";import{c as e}from"./p-ChV9xqsO.js";const c=":host{display:block}*,*::after,*::before{box-sizing:border-box}.dso-banner{padding-block:16px;padding-inline:0;position:relative}.dso-banner.dso-compact{padding-block:12px;padding-inline:0}";const a=class{constructor(o){s(this,o);this.compact=false;this.icon=false}render(){return o("section",{key:"6ec542fbb7b329d79fb6065c74be3c30edaa5bcc",class:e("dso-banner",`alert-${this.status}`,{"dso-compact":this.compact}),role:"alert"},o("slot",{key:"c940029d0ad0ec681811cd6bb68446ccd41878c9"}))}};a.style=c;export{a as dso_banner};
|
|
2
|
+
//# sourceMappingURL=p-8897189c.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bannerCss","Banner","constructor","hostRef","this","compact","icon","render","h","key","class","clsx","status","role"],"sources":["src/components/banner/banner.scss?tag=dso-banner&encapsulation=shadow","src/components/banner/banner.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/banner\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-banner {\r\n @include banner.root();\r\n}\r\n","import { Component, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-banner\",\r\n styleUrl: \"banner.scss\",\r\n shadow: true,\r\n})\r\nexport class Banner {\r\n /**\r\n * The status of the banner.\r\n */\r\n @Prop({ reflect: true })\r\n status!: \"success\" | \"error\" | \"info\" | \"warning\";\r\n\r\n /**\r\n * Compact mode.\r\n */\r\n @Prop()\r\n compact = false;\r\n\r\n /**\r\n * *Icon can only be hidden when the 'compact' property is set to true.\r\n *\r\n * Option to show banner icon.\r\n */\r\n @Prop({ reflect: true })\r\n icon = false;\r\n\r\n render() {\r\n return (\r\n <section\r\n class={clsx(\"dso-banner\", `alert-${this.status}`, {\r\n \"dso-compact\": this.compact,\r\n })}\r\n role=\"alert\"\r\n >\r\n <slot></slot>\r\n </section>\r\n );\r\n }\r\n}\r\n"],"mappings":"+EAAA,MAAMA,EAAY,gM,MCQLC,EAAM,MALnB,WAAAC,CAAAC,G,UAgBEC,KAAOC,QAAG,MAQVD,KAAIE,KAAG,KAcR,CAZC,MAAAC,GACE,OACEC,EAAA,WAAAC,IAAA,2CACEC,MAAOC,EAAK,aAAc,SAASP,KAAKQ,SAAU,CAChD,cAAeR,KAAKC,UAEtBQ,KAAK,SAELL,EAAa,QAAAC,IAAA,6C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as n,r as e,c as o,F as t,g as i}from"./p-C-b4jsbt.js";import{c as s}from"./p-ChV9xqsO.js";import{d as a}from"./p-DDU8nTJS.js";import"./p-BFTU3MAI.js";const r=["search","map","document"];const l={map:"Kaart",document:"Document",search:"Zoeken"};const d={small:"smal",medium:"middel",large:"breed"};const c=({className:e,onClick:o,label:t,icon:i})=>n("button",{type:"button",class:e,onClick:o},n("span",{class:"sr-only"},t),n("dso-icon",{icon:i}));const p=({shrink:e,expand:o,size:t,panelLabel:i,placement:s})=>{const a=[];if(t!=="small"){a.push(n(c,{onClick:e,label:`${i} smaller maken`,icon:s==="right"?"chevron-right":"chevron-left",className:"shrink"}))}if(t!=="large"){a.push(n(c,{onClick:o,label:`${i} breder maken`,icon:s==="right"?"chevron-left":"chevron-right",className:"expand"}))}return n("div",{class:"sizing-buttons"},n("span",{class:"sr-only","aria-live":"polite","aria-atomic":"true"},"Breedte ",i.toLocaleLowerCase(),": ",d[t]),a)};const b=({tabView:e,panelSize:o,shrinkDocumentPanel:t,expandDocumentPanel:i,dsoDocumentPanelSizeChangeAnimationEnd:s})=>n("div",{class:"dso-document-panel",onTransitionEnd:n=>{if(n.propertyName==="flex-basis"){s.emit({currentSize:o})}}},!e&&n(p,{panelLabel:"Documentpaneel",size:o,expand:i,shrink:t,placement:"right"}),n("div",{class:"content"},n("slot",{name:"document-panel"})));const g=({title:e,ref:o,dsoCloseFilterPanel:t})=>n("dialog",{class:"filter-panel",ref:o},e&&n("h3",null,e),n("button",{type:"button",class:"dso-close",onClick:t},n("dso-icon",{icon:"times"}),n("span",{class:"sr-only"},"Sluiten")),n("slot",{name:"filter-panel"}));const h=({tabView:e,mainSize:o,documentPanelOpen:t,mainPanelExpanded:i,mainPanelHidden:a,toggleMainPanel:r,dsoMainSizeChangeAnimationEnd:l})=>n("div",{class:s("dso-main-panel",{compact:!e&&t&&!i,contracted:!e&&!t&&!i,expanded:!e&&t&&i,collapsed:a}),onTransitionEnd:n=>{if(n.propertyName==="flex-basis"){l.emit({currentSize:o})}}},!e&&t&&n("div",{class:"toggle-button"},n("button",{type:"button",onClick:r},n("span",{class:"sr-only"},"Zoeken paneel ",a?"tonen":"verbergen"),n("dso-icon",{icon:a?"chevron-right":"chevron-left"}))),n("div",{class:s("content",{invisible:a})},n("slot",{name:"main"})));const u=({ref:e,dsoCloseOverlay:o})=>n("dialog",{class:"overlay",ref:e,onCancel:n=>{n.preventDefault();o(n)}},n("button",{type:"button",class:"overlay-close-button",onClick:o},n("dso-icon",{icon:"times"}),n("span",{class:"sr-only"},"sluiten")),n("slot",{name:"overlay"}));const m="*,\n*::after,\n*::before {\n box-sizing: border-box;\n}\n\n:host .overlay {\n block-size: calc(100% - 32px);\n margin-block: 16px;\n margin-inline: auto 16px;\n}\n:host .dso-main-panel {\n transition: min-inline-size 200ms ease-in, margin-inline-start 200ms ease-in;\n}\n\nbutton {\n -webkit-appearance: button;\n color: inherit;\n cursor: pointer;\n font: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n text-transform: none;\n}\nbutton[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n.sr-only {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.shrink,\n.expand,\n.overlay-close-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-block-end: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: start;\n user-select: none;\n vertical-align: middle;\n}\n.shrink:focus, .shrink:focus-visible,\n.expand:focus,\n.expand:focus-visible,\n.overlay-close-button:focus,\n.overlay-close-button:focus-visible {\n outline-offset: 2px;\n}\n.shrink:active,\n.expand:active,\n.overlay-close-button:active {\n outline: 0;\n}\n.shrink,\n.expand,\n.overlay-close-button {\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n}\n.shrink[disabled],\n.expand[disabled],\n.overlay-close-button[disabled] {\n color: #afcf9d;\n}\n.shrink[disabled].dso-spinner-left, .shrink[disabled].dso-spinner-right,\n.expand[disabled].dso-spinner-left,\n.expand[disabled].dso-spinner-right,\n.overlay-close-button[disabled].dso-spinner-left,\n.overlay-close-button[disabled].dso-spinner-right {\n color: #39870c;\n}\n.shrink:not([disabled]):hover,\n.expand:not([disabled]):hover,\n.overlay-close-button:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n}\n.shrink:not([disabled]):active,\n.expand:not([disabled]):active,\n.overlay-close-button:not([disabled]):active {\n color: #173521;\n}\n.shrink.dso-align,\n.expand.dso-align,\n.overlay-close-button.dso-align {\n line-height: calc(1.5em - 1px);\n padding-block: 11px;\n padding-inline: 0;\n position: relative;\n}\n.shrink.dso-truncate,\n.expand.dso-truncate,\n.overlay-close-button.dso-truncate {\n max-inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.shrink.dso-spinner-left::before,\n.expand.dso-spinner-left::before,\n.overlay-close-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: middle;\n inline-size: 24px;\n margin-inline-end: 8px;\n}\n.shrink.dso-spinner-right::after,\n.expand.dso-spinner-right::after,\n.overlay-close-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: middle;\n inline-size: 24px;\n margin-inline-start: 8px;\n}\n.shrink dso-icon + span:not(.sr-only),\n.shrink svg.di + span:not(.sr-only),\n.shrink span:not(.sr-only) + dso-icon,\n.shrink span:not(.sr-only) + svg.di,\n.expand dso-icon + span:not(.sr-only),\n.expand svg.di + span:not(.sr-only),\n.expand span:not(.sr-only) + dso-icon,\n.expand span:not(.sr-only) + svg.di,\n.overlay-close-button dso-icon + span:not(.sr-only),\n.overlay-close-button svg.di + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + dso-icon,\n.overlay-close-button span:not(.sr-only) + svg.di {\n margin-inline-start: 8px;\n}\n.shrink svg.di.di-chevron-down + span:not(.sr-only),\n.shrink svg.di.di-chevron-up + span:not(.sr-only),\n.shrink span:not(.sr-only) + svg.di.di-chevron-down,\n.shrink span:not(.sr-only) + svg.di.di-chevron-up,\n.expand svg.di.di-chevron-down + span:not(.sr-only),\n.expand svg.di.di-chevron-up + span:not(.sr-only),\n.expand span:not(.sr-only) + svg.di.di-chevron-down,\n.expand span:not(.sr-only) + svg.di.di-chevron-up,\n.overlay-close-button svg.di.di-chevron-down + span:not(.sr-only),\n.overlay-close-button svg.di.di-chevron-up + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + svg.di.di-chevron-down,\n.overlay-close-button span:not(.sr-only) + svg.di.di-chevron-up {\n margin-inline-start: 4px;\n}\n.shrink dso-icon[icon=chevron-left] + span:not(.sr-only),\n.shrink dso-icon[icon=chevron-right] + span:not(.sr-only),\n.shrink svg.di.di-angle-down + span:not(.sr-only),\n.shrink svg.di.di-angle-up + span:not(.sr-only),\n.shrink span:not(.sr-only) + svg.di.di-angle-down,\n.shrink span:not(.sr-only) + svg.di.di-angle-up,\n.shrink span:not(.sr-only) + dso-icon[icon=chevron-left],\n.shrink span:not(.sr-only) + dso-icon[icon=chevron-right],\n.expand dso-icon[icon=chevron-left] + span:not(.sr-only),\n.expand dso-icon[icon=chevron-right] + span:not(.sr-only),\n.expand svg.di.di-angle-down + span:not(.sr-only),\n.expand svg.di.di-angle-up + span:not(.sr-only),\n.expand span:not(.sr-only) + svg.di.di-angle-down,\n.expand span:not(.sr-only) + svg.di.di-angle-up,\n.expand span:not(.sr-only) + dso-icon[icon=chevron-left],\n.expand span:not(.sr-only) + dso-icon[icon=chevron-right],\n.overlay-close-button dso-icon[icon=chevron-left] + span:not(.sr-only),\n.overlay-close-button dso-icon[icon=chevron-right] + span:not(.sr-only),\n.overlay-close-button svg.di.di-angle-down + span:not(.sr-only),\n.overlay-close-button svg.di.di-angle-up + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + svg.di.di-angle-down,\n.overlay-close-button span:not(.sr-only) + svg.di.di-angle-up,\n.overlay-close-button span:not(.sr-only) + dso-icon[icon=chevron-left],\n.overlay-close-button span:not(.sr-only) + dso-icon[icon=chevron-right] {\n margin-inline-start: 0;\n}\n.shrink dso-icon,\n.shrink svg.di,\n.shrink span,\n.expand dso-icon,\n.expand svg.di,\n.expand span,\n.overlay-close-button dso-icon,\n.overlay-close-button svg.di,\n.overlay-close-button span {\n vertical-align: middle;\n}\n.shrink:hover,\n.expand:hover,\n.overlay-close-button:hover {\n cursor: pointer;\n}\n\n.overlay-close-button {\n position: absolute;\n inset-block-start: 8px;\n inset-inline-end: 16px;\n}\n\n.content.invisible {\n visibility: hidden;\n}\n\n.viewer-grid-columns {\n position: relative;\n}\n\n.dso-main-panel .content,\n.dso-document-panel .content {\n block-size: 100%;\n padding-block: 0;\n padding-inline: 16px;\n}\n\n.dso-main-panel {\n background-color: #fff;\n flex-shrink: 0;\n flex-grow: 0;\n position: relative;\n transition: flex-basis 200ms ease-in, max-inline-size 200ms ease-in, min-inline-size 200ms ease-in;\n z-index: 100;\n}\n.dso-main-panel.compact.collapsed, .dso-main-panel.expanded.collapsed {\n inset-inline-start: -432px;\n}\n.dso-main-panel.compact, .dso-main-panel.contracted {\n flex-shrink: unset;\n flex-grow: unset;\n position: absolute;\n transition: none;\n}\n.dso-main-panel.expanded.collapsed {\n position: absolute;\n block-size: 100%;\n}\n.dso-main-panel .sizing-buttons,\n.dso-main-panel .toggle-button {\n inset-inline-start: calc(100% + 1px);\n transition: inset-inline-start 200ms ease-in;\n padding-block: 0 8px;\n padding-inline: 0 4px;\n}\n.dso-main-panel .sizing-buttons button,\n.dso-main-panel .toggle-button button {\n border-end-end-radius: 4px;\n border-start-end-radius: 4px;\n}\n\n.dso-document-panel {\n background-color: #fff;\n flex-shrink: 0;\n flex-grow: 0;\n position: relative;\n transition: flex-basis 200ms ease-in, max-inline-size 200ms ease-in, min-inline-size 200ms ease-in;\n z-index: 100;\n}\n.dso-document-panel .sizing-buttons {\n inset-block-start: auto;\n inset-block-end: 16px;\n inset-inline-end: calc(100% + 1px);\n transition: inset-inline-end 200ms ease-in;\n padding-block: 0 8px;\n padding-inline: 4px 0;\n}\n.dso-document-panel .sizing-buttons button {\n border-end-start-radius: 4px;\n border-start-start-radius: 4px;\n}\n\n.sizing-buttons,\n.toggle-button {\n overflow-x: hidden;\n position: absolute;\n inset-block-start: 16px;\n inline-size: 44px;\n z-index: -1;\n}\n.sizing-buttons button,\n.toggle-button button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-block-end: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: start;\n user-select: none;\n vertical-align: middle;\n}\n.sizing-buttons button:focus, .sizing-buttons button:focus-visible,\n.toggle-button button:focus,\n.toggle-button button:focus-visible {\n outline-offset: 2px;\n}\n.sizing-buttons button:active,\n.toggle-button button:active {\n outline: 0;\n}\n.sizing-buttons button,\n.toggle-button button {\n background-color: var(--_dso-button-secondary-background-color, #fff);\n border-color: var(--_dso-button-secondary-border-color, #39870c);\n color: var(--_dso-button-secondary-color, #39870c);\n}\n.sizing-buttons button,\n.toggle-button button {\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-inline-size: 56px;\n padding-block: 11px;\n padding-inline: 15px;\n}\n.sizing-buttons button:hover,\n.toggle-button button:hover {\n background-color: var(--_dso-button-secondary-hover-background-color, #d7e7ce);\n border-color: var(--_dso-button-secondary-hover-border-color, #39870c);\n color: var(--_dso-button-secondary-hover-color, #39870c);\n}\n.sizing-buttons button:active,\n.toggle-button button:active {\n background-color: var(--_dso-button-secondary-active-background-color, #39870c);\n border-color: var(--_dso-button-secondary-active-border-color, #39870c);\n color: var(--_dso-button-secondary-active-color, #fff);\n}\n.sizing-buttons button[disabled], .sizing-buttons button[disabled]:hover,\n.toggle-button button[disabled],\n.toggle-button button[disabled]:hover {\n background-color: var(--_dso-button-secondary-disabled-background-color, #fff);\n border-color: var(--_dso-button-secondary-disabled-border-color, #afcf9d);\n color: var(--_dso-button-secondary-disabled-color, #afcf9d);\n}\n.sizing-buttons button.dso-small,\n.toggle-button button.dso-small {\n line-height: 1rem;\n}\n.sizing-buttons button.dso-small dso-icon,\n.sizing-buttons button.dso-small svg.di, .sizing-buttons button.dso-small.extern::after, .sizing-buttons button.dso-small.download::after, .sizing-buttons button.dso-small.dso-spinner::before,\n.toggle-button button.dso-small dso-icon,\n.toggle-button button.dso-small svg.di,\n.toggle-button button.dso-small.extern::after,\n.toggle-button button.dso-small.download::after,\n.toggle-button button.dso-small.dso-spinner::before {\n margin-block-end: -4px;\n margin-block-start: -4px;\n}\n.sizing-buttons button.dso-small.dso-spinner-left::before,\n.toggle-button button.dso-small.dso-spinner-left::before {\n block-size: 16px;\n inline-size: 16px;\n}\n.sizing-buttons button.dso-small.dso-spinner-right::after,\n.toggle-button button.dso-small.dso-spinner-right::after {\n block-size: 16px;\n inline-size: 16px;\n}\n.sizing-buttons button > span,\n.toggle-button button > span {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sizing-buttons button.dso-spinner-left[disabled], .sizing-buttons button.dso-spinner-right[disabled],\n.toggle-button button.dso-spinner-left[disabled],\n.toggle-button button.dso-spinner-right[disabled] {\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n}\n.sizing-buttons button.dso-spinner-left::before,\n.toggle-button button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: top;\n inline-size: 24px;\n margin-inline-end: 8px;\n}\n.sizing-buttons button.dso-spinner-left:not([disabled]):hover::before,\n.toggle-button button.dso-spinner-left:not([disabled]):hover::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: top;\n inline-size: 24px;\n margin-inline-end: 8px;\n}\n.sizing-buttons button.dso-spinner-left:not([disabled]).dso-small:hover::before,\n.toggle-button button.dso-spinner-left:not([disabled]).dso-small:hover::before {\n block-size: 16px;\n inline-size: 16px;\n}\n.sizing-buttons button.dso-spinner-right::after,\n.toggle-button button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: top;\n inline-size: 24px;\n margin-inline-start: 8px;\n}\n.sizing-buttons button.dso-spinner-right:not([disabled]):hover::after,\n.toggle-button button.dso-spinner-right:not([disabled]):hover::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: top;\n inline-size: 24px;\n margin-inline-start: 8px;\n}\n.sizing-buttons button.dso-spinner-right:not([disabled]).dso-small:hover::after,\n.toggle-button button.dso-spinner-right:not([disabled]).dso-small:hover::after {\n block-size: 16px;\n inline-size: 16px;\n}\n.sizing-buttons button,\n.toggle-button button {\n border: 0;\n padding: 8px;\n border-radius: 0;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.4);\n flex: 0 0 100%;\n block-size: 40px;\n min-inline-size: auto;\n inline-size: 40px;\n}\n.sizing-buttons button:hover dso-icon,\n.toggle-button button:hover dso-icon {\n color: #fff;\n}\n.sizing-buttons button:focus-visible,\n.toggle-button button:focus-visible {\n outline-offset: -1px;\n}\n\n.map {\n block-size: 100%;\n inline-size: 100%;\n overflow: hidden;\n position: relative;\n}\n\n.filter-panel,\n.overlay {\n background-color: #fff;\n border: 0;\n block-size: 100%;\n margin-block: 0;\n max-block-size: 100vh;\n overflow-y: auto;\n z-index: 101;\n}\n\n.filter-panel {\n display: block;\n position: absolute;\n padding-block: 8px;\n padding-inline: 16px;\n inset-block-start: 0;\n block-size: 100%;\n inset-inline-start: -380px;\n inline-size: 100%;\n transition: inset-inline-start 200ms ease-in;\n}\n@media screen and (max-width: 768px) {\n .filter-panel {\n inline-size: 100vw;\n }\n .filter-panel::before {\n display: none !important;\n }\n}\n@media screen and (min-width: 992px) {\n .filter-panel {\n max-inline-size: 380px;\n }\n}\n.filter-panel[open] {\n inset-inline-start: 0;\n box-shadow: none;\n border-inline-end: 1px solid #e5e5e5;\n}\n.filter-panel h3 {\n color: #275937;\n}\n.filter-panel .dso-close {\n -webkit-appearance: button;\n color: inherit;\n cursor: pointer;\n font: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n text-transform: none;\n position: absolute;\n inset-block-start: 16px;\n inset-inline-end: 16px;\n block-size: 32px;\n inline-size: 32px;\n padding: 0;\n background-color: transparent;\n border: 0;\n text-align: center;\n}\n.filter-panel .dso-close[disabled] {\n cursor: default;\n}\n.filter-panel .dso-close::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n.overlay {\n padding-block: 40px 8px;\n padding-inline: 16px;\n inset-inline-end: 0;\n inline-size: 624px;\n}\n.overlay::backdrop {\n background-color: rgba(0, 0, 0, 0.5);\n}\n@media screen and (max-width: 624px) {\n .overlay {\n inline-size: 100vw;\n }\n}\n\n@media screen and (min-width: 808px) {\n :host([main-size=small]) .dso-main-panel,\n :host([document-panel-size=small]) .dso-document-panel {\n flex-basis: 375px;\n min-inline-size: 0;\n max-inline-size: 375px;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 375px) {\n :host([main-size=small]) .dso-main-panel,\n :host([document-panel-size=small]) .dso-document-panel {\n flex-basis: 100vw;\n max-inline-size: 100vw;\n min-inline-size: 0;\n transition: none;\n }\n}\n@media screen and (min-width: 808px) {\n :host([main-size=medium]) .dso-main-panel,\n :host([document-panel-size=medium]) .dso-document-panel {\n flex-basis: 624px;\n min-inline-size: 375px;\n max-inline-size: 624px;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 624px) {\n :host([main-size=medium]) .dso-main-panel,\n :host([document-panel-size=medium]) .dso-document-panel {\n flex-basis: 100vw;\n max-inline-size: 100vw;\n min-inline-size: 375px;\n transition: none;\n }\n}\n@media screen and (min-width: 808px) {\n :host([main-size=large]) .dso-main-panel,\n :host([document-panel-size=large]) .dso-document-panel {\n flex-basis: 60%;\n min-inline-size: 768px;\n max-inline-size: 1024px;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 768px) {\n :host([main-size=large]) .dso-main-panel,\n :host([document-panel-size=large]) .dso-document-panel {\n flex-basis: 100vw;\n max-inline-size: 100vw;\n min-inline-size: 768px;\n transition: none;\n }\n}\n@media screen and (min-width: 808px) {\n :host {\n display: flex;\n flex-direction: column;\n block-size: 100vh;\n overflow: clip;\n position: relative;\n }\n :host .dso-main-panel.compact,\n :host .dso-main-panel.expanded {\n flex-basis: unset;\n min-inline-size: unset;\n max-inline-size: unset;\n inline-size: 440px;\n }\n :host .viewer-grid-columns {\n display: flex;\n overflow: hidden;\n flex-grow: 1;\n }\n .dso-main-panel,\n .dso-document-panel {\n box-shadow: 2px 0 8px 0 rgba(0, 0, 0, 0.4);\n }\n .dso-main-panel .content,\n .dso-document-panel .content {\n overflow-y: auto;\n }\n .filter-panel {\n margin-inline: 0 auto;\n inline-size: calc(100vw - 40px);\n }\n .filter-panel[open] {\n border-inline-end: 1px solid #e5e5e5;\n }\n .overlay {\n box-shadow: -2px 0 5px #666;\n margin-inline: auto 0;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 1031.99px) {\n :host([filter-panel-open]) .dso-main-panel {\n margin-inline-start: 380px;\n max-inline-size: calc(100vw - 380px);\n }\n .filter-panel {\n inline-size: 380px;\n inset-inline-start: -380px;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-navbar {\n min-block-size: 32px;\n }\n .dso-navbar .dso-navbar-header {\n float: inline-start;\n }\n .dso-navbar .dso-navbar-toggle {\n border-radius: 4px;\n min-inline-size: auto;\n padding-block: 5px;\n padding-inline: 0;\n }\n .dso-navbar .dso-navbar-toggle dso-icon,\n .dso-navbar .dso-navbar-toggle svg.di {\n margin-inline-start: 8px;\n margin-inline-end: 8px;\n }\n}\n@media screen and (max-width: 807.99px) and (min-width: 992px) {\n .dso-navbar .dso-navbar-toggle {\n display: none;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-navbar.dso-has-navbar-extension .dso-nav > li:last-child {\n margin-inline-end: 8rem;\n }\n .dso-nav {\n list-style: none;\n margin-block-end: 0;\n padding-inline-start: 0;\n }\n .dso-nav > li > button {\n border: 0;\n background-color: transparent;\n }\n .dso-nav > li > a,\n .dso-nav > li > button {\n display: block;\n }\n .dso-nav > li > a, .dso-nav > li > a:hover, .dso-nav > li > a:focus, .dso-nav > li > a:visited,\n .dso-nav > li > button,\n .dso-nav > li > button:hover,\n .dso-nav > li > button:focus,\n .dso-nav > li > button:visited {\n color: #275937;\n }\n .dso-nav > li.dso-active > a,\n .dso-nav > li.dso-active > button, .dso-nav > li.is-active > a,\n .dso-nav > li.is-active > button {\n border-block-end: 4px solid #8b4a6a;\n font-weight: bold;\n }\n .dso-nav.dso-nav-main > li {\n display: inline-block;\n }\n .dso-nav.dso-nav-main > li > a,\n .dso-nav.dso-nav-main > li > button {\n text-decoration: none;\n }\n .dso-nav.dso-nav-main > li > a:hover, .dso-nav.dso-nav-main > li > a:focus-visible, .dso-nav.dso-nav-main > li > a:active,\n .dso-nav.dso-nav-main > li > button:hover,\n .dso-nav.dso-nav-main > li > button:focus-visible,\n .dso-nav.dso-nav-main > li > button:active {\n text-decoration: underline;\n }\n .dso-nav.dso-nav-main > li > a,\n .dso-nav.dso-nav-main > li > button {\n font-size: 1.25em;\n line-height: 1;\n margin-block-start: 8px;\n padding-block: 8px 7px;\n padding-inline: 16px;\n }\n .dso-nav.dso-nav-sub > li {\n display: inline-block;\n }\n .dso-nav.dso-nav-sub > li > a,\n .dso-nav.dso-nav-sub > li > button {\n text-decoration: none;\n }\n .dso-nav.dso-nav-sub > li > a:hover, .dso-nav.dso-nav-sub > li > a:focus-visible, .dso-nav.dso-nav-sub > li > a:active,\n .dso-nav.dso-nav-sub > li > button:hover,\n .dso-nav.dso-nav-sub > li > button:focus-visible,\n .dso-nav.dso-nav-sub > li > button:active {\n text-decoration: underline;\n }\n .dso-nav.dso-nav-sub > li > a,\n .dso-nav.dso-nav-sub > li > button {\n font-size: 1rem;\n margin-block-start: 4px;\n padding-block: 4px 3px;\n padding-inline: 8px;\n }\n .dso-navbar {\n padding-inline: 16px;\n }\n .dso-nav {\n border-block-end: 1px solid #ccc;\n display: flex;\n gap: 16px;\n margin-block-start: 0;\n inline-size: calc(100vw - 32px);\n }\n .dso-tertiary {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-block-end: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: start;\n user-select: none;\n vertical-align: middle;\n }\n .dso-tertiary:focus, .dso-tertiary:focus-visible {\n outline-offset: 2px;\n }\n .dso-tertiary:active {\n outline: 0;\n }\n .dso-tertiary {\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n }\n .dso-tertiary[disabled] {\n color: #afcf9d;\n }\n .dso-tertiary[disabled].dso-spinner-left, .dso-tertiary[disabled].dso-spinner-right {\n color: #39870c;\n }\n .dso-tertiary:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n }\n .dso-tertiary:not([disabled]):active {\n color: #173521;\n }\n .dso-tertiary.dso-align {\n line-height: calc(1.5em - 1px);\n padding-block: 11px;\n padding-inline: 0;\n position: relative;\n }\n .dso-tertiary.dso-truncate {\n max-inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dso-tertiary.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: middle;\n inline-size: 24px;\n margin-inline-end: 8px;\n }\n .dso-tertiary.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: middle;\n inline-size: 24px;\n margin-inline-start: 8px;\n }\n .dso-tertiary dso-icon + span:not(.sr-only),\n .dso-tertiary svg.di + span:not(.sr-only),\n .dso-tertiary span:not(.sr-only) + dso-icon,\n .dso-tertiary span:not(.sr-only) + svg.di {\n margin-inline-start: 8px;\n }\n .dso-tertiary svg.di.di-chevron-down + span:not(.sr-only),\n .dso-tertiary svg.di.di-chevron-up + span:not(.sr-only),\n .dso-tertiary span:not(.sr-only) + svg.di.di-chevron-down,\n .dso-tertiary span:not(.sr-only) + svg.di.di-chevron-up {\n margin-inline-start: 4px;\n }\n .dso-tertiary dso-icon[icon=chevron-left] + span:not(.sr-only),\n .dso-tertiary dso-icon[icon=chevron-right] + span:not(.sr-only),\n .dso-tertiary svg.di.di-angle-down + span:not(.sr-only),\n .dso-tertiary svg.di.di-angle-up + span:not(.sr-only),\n .dso-tertiary span:not(.sr-only) + svg.di.di-angle-down,\n .dso-tertiary span:not(.sr-only) + svg.di.di-angle-up,\n .dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-left],\n .dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-right] {\n margin-inline-start: 0;\n }\n .dso-tertiary dso-icon,\n .dso-tertiary svg.di,\n .dso-tertiary span {\n vertical-align: middle;\n }\n .dso-tertiary {\n font-weight: 300;\n }\n .filter-panel,\n .overlay {\n margin-inline: 0;\n max-inline-size: 100vw;\n inset-block-start: 0;\n inline-size: 100vw;\n }\n .filter-panel {\n inset-inline-start: -100vw;\n }\n}\n@media screen and (min-width: 992px) {\n :host([filter-panel-open]) .dso-main-panel {\n margin-inline-start: 380px;\n }\n}";const v=new ResizeObserver(a((([n])=>{const e=n===null||n===void 0?void 0:n.target.getRootNode();if(e instanceof ShadowRoot&&f(e.host)){e.host._checkMainPanelVisibility()}}),50));function f(n){return n.tagName==="DSO-VIEWER-GRID"}const x=40;const y=768+x;const k=440;const z=class{constructor(n){e(this,n);this.dsoCloseOverlay=o(this,"dsoCloseOverlay",7);this.dsoCloseFilterPanel=o(this,"dsoCloseFilterPanel",7);this.dsoActiveTabSwitch=o(this,"dsoActiveTabSwitch",7);this.dsoMainSizeChangeAnimationEnd=o(this,"dsoMainSizeChangeAnimationEnd",7);this.dsoDocumentPanelSizeChange=o(this,"dsoDocumentPanelSizeChange",7);this.dsoDocumentPanelSizeChangeAnimationEnd=o(this,"dsoDocumentPanelSizeChangeAnimationEnd",7);this.dsoMainPanelExpand=o(this,"dsoMainPanelExpand",7);this.dsoMainPanelToggle=o(this,"dsoMainPanelToggle",7);this.mediaCondition=`(min-width: ${y}px)`;this.filterPanelOpen=false;this.overlayOpen=false;this.documentPanelOpen=false;this.mainSize="large";this.documentPanelSize="large";this.mainPanelExpanded=false;this.mainPanelHidden=false;this.tabView=window.innerWidth<y;this.switchActiveTab=n=>{this.dsoActiveTabSwitch.emit({tab:n})};this.shrinkDocumentPanel=()=>{this.dsoDocumentPanelSizeChange.emit({currentSize:this.documentPanelSize,nextSize:this.documentPanelSize==="large"?"medium":"small"})};this.expandDocumentPanel=()=>{this.dsoDocumentPanelSizeChange.emit({currentSize:this.documentPanelSize,nextSize:this.documentPanelSize==="small"?"medium":"large"})};this.toggleMainPanel=()=>{if(this.mapElement instanceof HTMLDivElement&&this.mapElement.clientWidth<=k+x+x){this.mainSize="small"}this.dsoMainPanelToggle.emit({hide:!this.mainPanelHidden})};this.changeListener=n=>this.tabView=!n.matches}get filterPanelSlot(){return this.host.querySelector("[slot='filter-panel']")}get overlaySlot(){return this.host.querySelector("[slot='overlay']")}documentPanelOpenWatcher(n){if(n){this._checkMainPanelVisibility()}}filterPanelOpenWatcher(n){var e,o;if(!this.filterPanelSlot){console.warn("slot 'filter-panel' has not been set")}if(n){(e=this.filterPanel)===null||e===void 0?void 0:e.show()}else{(o=this.filterPanel)===null||o===void 0?void 0:o.close()}}overlayOpenWatcher(n){var e,o;if(!this.overlaySlot){console.warn("slot 'overlay' has not been set")}if(n){(e=this.overlay)===null||e===void 0?void 0:e.showModal()}else{(o=this.overlay)===null||o===void 0?void 0:o.close()}}async _checkMainPanelVisibility(){if(this.documentPanelOpen&&!this.mainPanelHidden&&this.mapElement instanceof HTMLDivElement&&(this.mapElement.clientWidth<=k+x+x&&!this.mainPanelExpanded||this.mapElement.clientWidth<=x+x&&this.mainPanelExpanded)){this.dsoMainPanelToggle.emit({hide:true})}}connectedCallback(){window.matchMedia(this.mediaCondition).addEventListener("change",this.changeListener)}componentDidLoad(){var n,e;if(this.filterPanelOpen&&this.filterPanelSlot){(n=this.filterPanel)===null||n===void 0?void 0:n.show()}if(this.overlayOpen&&this.overlaySlot){(e=this.overlay)===null||e===void 0?void 0:e.showModal()}if(this.mapElement instanceof HTMLDivElement){v.observe(this.mapElement)}}disconnectedCallback(){window.matchMedia(this.mediaCondition).removeEventListener("change",this.changeListener);if(this.mapElement){v.unobserve(this.mapElement)}}render(){return n(t,null,n("slot",{key:"30a27a066b6c66a817bce9082fef6a4447f459d6",name:"top-bar"}),n("div",{key:"faeae17f2aea5520eb1903c01eef387a494b42a9",class:"viewer-grid-columns"},this.tabView&&n("nav",{key:"3559fb25907ec6d589db8d0592096da6e4747f90",class:"dso-navbar"},n("ul",{key:"9304fc7c899d39ac08fb750a6b61f14e4352cb08",class:"dso-nav dso-nav-sub"},r.map((e=>n("li",{key:e,class:s({"dso-active":this.activeTab===e})},n("button",{type:"button",class:"dso-tertiary",onClick:()=>this.switchActiveTab(e)},l[e])))))),(!this.tabView||this.tabView&&this.activeTab==="search")&&n(h,{key:"0c6bd15b16e07efc768efffbbbd6379bf8079d26",tabView:this.tabView,mainSize:this.mainSize,documentPanelOpen:this.documentPanelOpen,mainPanelExpanded:this.mainPanelExpanded,mainPanelHidden:this.mainPanelHidden,toggleMainPanel:this.toggleMainPanel,dsoMainSizeChangeAnimationEnd:this.dsoMainSizeChangeAnimationEnd}),(!this.tabView||this.tabView&&this.activeTab==="search")&&n(g,{key:"07b2df2f64137d5d9608fb53676672b8430a8f4a",title:this.filterPanelTitle,ref:n=>this.filterPanel=n,dsoCloseFilterPanel:n=>this.dsoCloseFilterPanel.emit({originalEvent:n})}),(!this.tabView||this.tabView&&this.activeTab==="map")&&n("div",{key:"68f605647afdc868991702c238902d286b400d50",class:"map",ref:n=>this.mapElement=n},n("slot",{key:"e87559e3d6c9063a21d2ad410aa9ba000a60a643",name:"map"})),(!this.tabView&&this.documentPanelOpen||this.tabView&&this.activeTab==="document")&&n(b,{key:"30d4dcd5f16d7fd65644bcbefa13d36fa6cfbb2e",tabView:this.tabView,panelSize:this.documentPanelSize,shrinkDocumentPanel:this.shrinkDocumentPanel,expandDocumentPanel:this.expandDocumentPanel,dsoDocumentPanelSizeChangeAnimationEnd:this.dsoDocumentPanelSizeChangeAnimationEnd}),n(u,{key:"b0ef14b03c22dcacde5a246b5e9b9ebca637d83e",ref:n=>this.overlay=n,dsoCloseOverlay:n=>this.dsoCloseOverlay.emit({originalEvent:n})})))}get host(){return i(this)}static get watchers(){return{documentPanelOpen:["documentPanelOpenWatcher"],filterPanelOpen:["filterPanelOpenWatcher"],overlayOpen:["overlayOpenWatcher"]}}};z.style=m;export{z as dso_viewer_grid};
|
|
2
|
+
//# sourceMappingURL=p-8f4a2401.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["viewerGridTabs","viewerGridTabLabelMap","map","document","search","viewerGridSizeLabelMap","small","medium","large","SizingButton","className","onClick","label","icon","h","type","class","SizingButtons","shrink","expand","size","panelLabel","placement","buttons","push","toLocaleLowerCase","DocumentPanel","tabView","panelSize","shrinkDocumentPanel","expandDocumentPanel","dsoDocumentPanelSizeChangeAnimationEnd","onTransitionEnd","e","propertyName","emit","currentSize","name","FilterPanel","title","ref","dsoCloseFilterPanel","MainPanel","mainSize","documentPanelOpen","mainPanelExpanded","mainPanelHidden","toggleMainPanel","dsoMainSizeChangeAnimationEnd","clsx","compact","contracted","expanded","collapsed","invisible","Overlay","dsoCloseOverlay","onCancel","preventDefault","viewerGridCss","resizeObserver","ResizeObserver","debounce","entry","shadowRoot","target","getRootNode","ShadowRoot","isDsoViewerGridComponent","host","_checkMainPanelVisibility","element","tagName","buttonWidth","tabViewBreakpoint","minMapElementWidth","ViewerGrid","constructor","hostRef","this","mediaCondition","filterPanelOpen","overlayOpen","documentPanelSize","window","innerWidth","switchActiveTab","tab","dsoActiveTabSwitch","dsoDocumentPanelSizeChange","nextSize","mapElement","HTMLDivElement","clientWidth","dsoMainPanelToggle","hide","changeListener","largeScreen","matches","filterPanelSlot","querySelector","overlaySlot","documentPanelOpenWatcher","open","filterPanelOpenWatcher","console","warn","_a","filterPanel","show","_b","close","overlayOpenWatcher","overlay","showModal","connectedCallback","matchMedia","addEventListener","componentDidLoad","observe","disconnectedCallback","removeEventListener","unobserve","render","Fragment","key","activeTab","filterPanelTitle","originalEvent"],"sources":["src/components/viewer-grid/viewer-grid.interfaces.ts","src/components/viewer-grid/components/sizing-buttons.tsx","src/components/viewer-grid/components/document-panel.tsx","src/components/viewer-grid/components/filter-panel.tsx","src/components/viewer-grid/components/main-panel.tsx","src/components/viewer-grid/components/overlay.tsx","src/components/viewer-grid/viewer-grid.scss?tag=dso-viewer-grid&encapsulation=shadow","src/components/viewer-grid/viewer-grid.tsx"],"sourcesContent":["export interface ViewerGridChangeSizeEvent {\r\n currentSize: ViewerGridPanelSize;\r\n nextSize: ViewerGridPanelSize;\r\n}\r\n\r\nexport interface ViewerGridChangeSizeAnimationEndEvent {\r\n currentSize: ViewerGridPanelSize;\r\n}\r\n\r\nexport interface ViewerGridCloseOverlayEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridCloseFilterPanelEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridActiveTabSwitchEvent {\r\n tab: ViewerGridTab;\r\n}\r\n\r\nexport interface ViewerGridMainExpandEvent {\r\n expand: boolean;\r\n}\r\n\r\nexport interface ViewerGridMainToggleEvent {\r\n hide: boolean;\r\n}\r\n\r\nexport type ViewerGridPanelSize = \"small\" | \"medium\" | \"large\";\r\n\r\nexport type ViewerGridLabelSizeMap = { [key in ViewerGridPanelSize]: string };\r\n\r\nexport const viewerGridTabs = [\"search\", \"map\", \"document\"] as const;\r\nexport type ViewerGridTab = (typeof viewerGridTabs)[number];\r\n\r\nexport type ViewerGridTabLabelMap = { [key in ViewerGridTab]: string };\r\n\r\nexport const viewerGridTabLabelMap: ViewerGridTabLabelMap = {\r\n map: \"Kaart\",\r\n document: \"Document\",\r\n search: \"Zoeken\",\r\n};\r\n\r\nexport const viewerGridSizeLabelMap: ViewerGridLabelSizeMap = {\r\n small: \"smal\",\r\n medium: \"middel\",\r\n large: \"breed\",\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { ViewerGridPanelSize, viewerGridSizeLabelMap } from \"../viewer-grid.interfaces\";\r\n\r\ninterface SizingButtonProp {\r\n className: string;\r\n onClick: any;\r\n label: string;\r\n icon: \"chevron-left\" | \"chevron-right\";\r\n}\r\n\r\nconst SizingButton: FunctionalComponent<SizingButtonProp> = ({ className, onClick, label, icon }) => (\r\n <button type=\"button\" class={className} onClick={onClick}>\r\n <span class=\"sr-only\">{label}</span>\r\n <dso-icon icon={icon}></dso-icon>\r\n </button>\r\n);\r\n\r\ninterface SizingButtonProps {\r\n panelLabel: string;\r\n size: ViewerGridPanelSize;\r\n expand: () => void;\r\n shrink: () => void;\r\n placement: \"left\" | \"right\";\r\n}\r\n\r\nexport const SizingButtons: FunctionalComponent<SizingButtonProps> = ({\r\n shrink,\r\n expand,\r\n size,\r\n panelLabel,\r\n placement,\r\n}) => {\r\n const buttons = [];\r\n\r\n if (size !== \"small\") {\r\n buttons.push(\r\n <SizingButton\r\n onClick={shrink}\r\n label={`${panelLabel} smaller maken`}\r\n icon={placement === \"right\" ? \"chevron-right\" : \"chevron-left\"}\r\n className=\"shrink\"\r\n />,\r\n );\r\n }\r\n\r\n if (size !== \"large\") {\r\n buttons.push(\r\n <SizingButton\r\n onClick={expand}\r\n label={`${panelLabel} breder maken`}\r\n icon={placement === \"right\" ? \"chevron-left\" : \"chevron-right\"}\r\n className=\"expand\"\r\n />,\r\n );\r\n }\r\n\r\n return (\r\n <div class=\"sizing-buttons\">\r\n <span class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\r\n Breedte {panelLabel.toLocaleLowerCase()}: {viewerGridSizeLabelMap[size]}\r\n </span>\r\n {buttons}\r\n </div>\r\n );\r\n};\r\n","import { EventEmitter, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { ViewerGridChangeSizeAnimationEndEvent, ViewerGridPanelSize } from \"../viewer-grid.interfaces\";\r\n\r\nimport { SizingButtons } from \"./sizing-buttons\";\r\n\r\nexport interface ViewerGridDocumentPanelProps {\r\n tabView: boolean;\r\n panelSize: ViewerGridPanelSize;\r\n shrinkDocumentPanel: () => void;\r\n expandDocumentPanel: () => void;\r\n dsoDocumentPanelSizeChangeAnimationEnd: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n}\r\n\r\nexport const DocumentPanel: FunctionalComponent<ViewerGridDocumentPanelProps> = ({\r\n tabView,\r\n panelSize,\r\n shrinkDocumentPanel,\r\n expandDocumentPanel,\r\n dsoDocumentPanelSizeChangeAnimationEnd,\r\n}) => (\r\n <div\r\n class=\"dso-document-panel\"\r\n onTransitionEnd={(e) => {\r\n if (e.propertyName === \"flex-basis\") {\r\n dsoDocumentPanelSizeChangeAnimationEnd.emit({ currentSize: panelSize });\r\n }\r\n }}\r\n >\r\n {!tabView && (\r\n <SizingButtons\r\n panelLabel=\"Documentpaneel\"\r\n size={panelSize}\r\n expand={expandDocumentPanel}\r\n shrink={shrinkDocumentPanel}\r\n placement=\"right\"\r\n />\r\n )}\r\n <div class=\"content\">\r\n <slot name=\"document-panel\" />\r\n </div>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridFilterPanelProps {\r\n title?: string;\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n dsoCloseFilterPanel: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const FilterPanel: FunctionalComponent<ViewerGridFilterPanelProps> = ({ title, ref, dsoCloseFilterPanel }) => (\r\n <dialog class=\"filter-panel\" ref={ref}>\r\n {title && <h3>{title}</h3>}\r\n <button type=\"button\" class=\"dso-close\" onClick={dsoCloseFilterPanel}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n <slot name=\"filter-panel\" />\r\n </dialog>\r\n);\r\n","import { EventEmitter, FunctionalComponent, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { ViewerGridChangeSizeAnimationEndEvent, ViewerGridPanelSize } from \"../viewer-grid.interfaces\";\r\n\r\nexport interface ViewerGridMainPanelProps {\r\n tabView: boolean;\r\n mainSize: ViewerGridPanelSize;\r\n documentPanelOpen: boolean;\r\n mainPanelExpanded: boolean;\r\n mainPanelHidden: boolean;\r\n toggleMainPanel: () => void;\r\n dsoMainSizeChangeAnimationEnd: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n}\r\n\r\nexport const MainPanel: FunctionalComponent<ViewerGridMainPanelProps> = ({\r\n tabView,\r\n mainSize,\r\n documentPanelOpen,\r\n mainPanelExpanded,\r\n mainPanelHidden,\r\n toggleMainPanel,\r\n dsoMainSizeChangeAnimationEnd,\r\n}) => (\r\n <div\r\n class={clsx(\"dso-main-panel\", {\r\n compact: !tabView && documentPanelOpen && !mainPanelExpanded,\r\n contracted: !tabView && !documentPanelOpen && !mainPanelExpanded,\r\n expanded: !tabView && documentPanelOpen && mainPanelExpanded,\r\n collapsed: mainPanelHidden,\r\n })}\r\n onTransitionEnd={(e) => {\r\n if (e.propertyName === \"flex-basis\") {\r\n dsoMainSizeChangeAnimationEnd.emit({ currentSize: mainSize });\r\n }\r\n }}\r\n >\r\n {!tabView && documentPanelOpen && (\r\n <div class=\"toggle-button\">\r\n <button type=\"button\" onClick={toggleMainPanel}>\r\n <span class=\"sr-only\">Zoeken paneel {mainPanelHidden ? \"tonen\" : \"verbergen\"}</span>\r\n <dso-icon icon={mainPanelHidden ? \"chevron-right\" : \"chevron-left\"}></dso-icon>\r\n </button>\r\n </div>\r\n )}\r\n <div class={clsx(\"content\", { invisible: mainPanelHidden })}>\r\n <slot name=\"main\" />\r\n </div>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridOverlayProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n dsoCloseOverlay: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Overlay: FunctionalComponent<ViewerGridOverlayProps> = ({ ref, dsoCloseOverlay }) => (\r\n <dialog\r\n class=\"overlay\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n dsoCloseOverlay(e);\r\n }}\r\n >\r\n <button type=\"button\" class=\"overlay-close-button\" onClick={dsoCloseOverlay}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">sluiten</span>\r\n </button>\r\n <slot name=\"overlay\" />\r\n </dialog>\r\n);\r\n","@use \"~dso-toolkit/src/components/grid\" as css-grid;\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/heading\";\r\n@use \"~dso-toolkit/src/components/navbar\";\r\n\r\n@use \"viewer-grid.variables\" as core-viewer-grid-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n .overlay {\r\n block-size: calc(100% - units.$u4);\r\n margin-block: units.$u2;\r\n margin-inline: auto units.$u2;\r\n }\r\n\r\n .dso-main-panel {\r\n transition:\r\n min-inline-size core-viewer-grid-variables.$transition-time ease-in,\r\n margin-inline-start core-viewer-grid-variables.$transition-time ease-in;\r\n }\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.shrink,\r\n.expand,\r\n.overlay-close-button {\r\n @include button.tertiary($modifiers: false);\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.overlay-close-button {\r\n position: absolute;\r\n inset-block-start: units.$u1;\r\n inset-inline-end: css-grid.$grid-gutter-width * 0.5;\r\n}\r\n\r\n.content.invisible {\r\n visibility: hidden;\r\n}\r\n\r\n.viewer-grid-columns {\r\n position: relative;\r\n}\r\n\r\n.dso-main-panel,\r\n.dso-document-panel {\r\n .content {\r\n block-size: 100%;\r\n padding-block: 0;\r\n padding-inline: css-grid.$grid-gutter-width * 0.5;\r\n }\r\n}\r\n\r\n.dso-main-panel {\r\n background-color: colors.$wit;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n position: relative;\r\n transition:\r\n flex-basis core-viewer-grid-variables.$transition-time ease-in,\r\n max-inline-size core-viewer-grid-variables.$transition-time ease-in,\r\n min-inline-size core-viewer-grid-variables.$transition-time ease-in;\r\n z-index: zindex.$viewer-grid-main-panel;\r\n\r\n &.compact,\r\n &.expanded {\r\n &.collapsed {\r\n inset-inline-start: -432px;\r\n }\r\n }\r\n\r\n &.compact,\r\n &.contracted {\r\n flex-shrink: unset;\r\n flex-grow: unset;\r\n position: absolute;\r\n transition: none;\r\n }\r\n\r\n &.expanded.collapsed {\r\n position: absolute;\r\n block-size: 100%;\r\n }\r\n\r\n .sizing-buttons,\r\n .toggle-button {\r\n inset-inline-start: calc(100% + 1px);\r\n transition: inset-inline-start core-viewer-grid-variables.$transition-time ease-in;\r\n padding-block: 0 units.$u1;\r\n padding-inline: 0 units.$u1 * 0.5;\r\n\r\n button {\r\n border-end-end-radius: 4px;\r\n border-start-end-radius: 4px;\r\n }\r\n }\r\n}\r\n\r\n.dso-document-panel {\r\n background-color: colors.$wit;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n position: relative;\r\n transition:\r\n flex-basis core-viewer-grid-variables.$transition-time ease-in,\r\n max-inline-size core-viewer-grid-variables.$transition-time ease-in,\r\n min-inline-size core-viewer-grid-variables.$transition-time ease-in;\r\n z-index: zindex.$viewer-grid-main-panel;\r\n\r\n .sizing-buttons {\r\n inset-block-start: auto;\r\n inset-block-end: core-viewer-grid-variables.$sizing-buttons-block-start;\r\n inset-inline-end: calc(100% + 1px);\r\n transition: inset-inline-end core-viewer-grid-variables.$transition-time ease-in;\r\n padding-block: 0 units.$u1;\r\n padding-inline: units.$u1 * 0.5 0;\r\n\r\n button {\r\n border-end-start-radius: 4px;\r\n border-start-start-radius: 4px;\r\n }\r\n }\r\n}\r\n\r\n.sizing-buttons,\r\n.toggle-button {\r\n overflow-x: hidden;\r\n position: absolute;\r\n inset-block-start: core-viewer-grid-variables.$sizing-buttons-block-start;\r\n inline-size: core-viewer-grid-variables.$resize-button-size + units.$u1 * 0.5;\r\n z-index: zindex.$viewer-grid-sizing-buttons;\r\n\r\n button {\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 padding: 8px;\r\n border-radius: 0;\r\n box-shadow: 0 1px units.$u1 * 0.5 0 rgba(0, 0, 0, 0.4);\r\n flex: 0 0 100%;\r\n block-size: core-viewer-grid-variables.$resize-button-size;\r\n min-inline-size: auto;\r\n inline-size: core-viewer-grid-variables.$resize-button-size;\r\n }\r\n\r\n &:hover {\r\n dso-icon {\r\n color: colors.$wit;\r\n }\r\n }\r\n\r\n &:focus-visible {\r\n outline-offset: -1px;\r\n }\r\n }\r\n}\r\n\r\n.map {\r\n block-size: 100%;\r\n inline-size: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.filter-panel,\r\n.overlay {\r\n background-color: colors.$wit;\r\n border: 0;\r\n block-size: 100%;\r\n margin-block: 0;\r\n max-block-size: 100vh;\r\n overflow-y: auto;\r\n z-index: zindex.$viewer-grid-main-panel + 1;\r\n}\r\n\r\n.filter-panel {\r\n display: block;\r\n position: absolute;\r\n padding-block: units.$u1;\r\n padding-inline: css-grid.$grid-gutter-width * 0.5;\r\n inset-block-start: 0;\r\n block-size: 100%;\r\n inset-inline-start: calc(core-viewer-grid-variables.$filter-panel-max-inline-size * -1);\r\n inline-size: 100%;\r\n transition: inset-inline-start core-viewer-grid-variables.$transition-time ease-in;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$filter-panel-inline-size) {\r\n inline-size: 100vw;\r\n\r\n &::before {\r\n display: none !important;\r\n }\r\n }\r\n\r\n @media screen and (min-width: #{media-query-breakpoints.$screen-md-min}) {\r\n max-inline-size: core-viewer-grid-variables.$filter-panel-max-inline-size;\r\n }\r\n\r\n &[open] {\r\n inset-inline-start: 0;\r\n box-shadow: none;\r\n border-inline-end: 1px solid core-viewer-grid-variables.$filter-panel-border-color;\r\n }\r\n\r\n h3 {\r\n color: colors.$bosgroen;\r\n }\r\n\r\n .dso-close {\r\n @include button.element();\r\n\r\n position: absolute;\r\n inset-block-start: units.$u2;\r\n inset-inline-end: units.$u2;\r\n\r\n block-size: units.$u4;\r\n inline-size: units.$u4;\r\n\r\n padding: 0;\r\n\r\n background-color: transparent;\r\n\r\n border: 0;\r\n text-align: center;\r\n }\r\n}\r\n\r\n.overlay {\r\n padding-block: units.$u5 units.$u1;\r\n padding-inline: css-grid.$grid-gutter-width * 0.5;\r\n inset-inline-end: 0;\r\n inline-size: core-viewer-grid-variables.$overlay-inline-size;\r\n\r\n &::backdrop {\r\n background-color: rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$overlay-inline-size) {\r\n inline-size: 100vw;\r\n }\r\n}\r\n\r\n@media screen and (min-width: #{media-query-breakpoints.$screen-sm-min + units.$u5}) {\r\n :host([main-size=\"small\"]) .dso-main-panel,\r\n :host([document-panel-size=\"small\"]) .dso-document-panel {\r\n flex-basis: core-viewer-grid-variables.$small;\r\n min-inline-size: 0;\r\n max-inline-size: core-viewer-grid-variables.$small;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$small) {\r\n flex-basis: 100vw;\r\n max-inline-size: 100vw;\r\n min-inline-size: 0;\r\n transition: none;\r\n }\r\n }\r\n\r\n :host([main-size=\"medium\"]) .dso-main-panel,\r\n :host([document-panel-size=\"medium\"]) .dso-document-panel {\r\n flex-basis: core-viewer-grid-variables.$medium;\r\n min-inline-size: core-viewer-grid-variables.$small;\r\n max-inline-size: core-viewer-grid-variables.$medium;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$medium) {\r\n flex-basis: 100vw;\r\n max-inline-size: 100vw;\r\n min-inline-size: core-viewer-grid-variables.$small;\r\n transition: none;\r\n }\r\n }\r\n\r\n :host([main-size=\"large\"]) .dso-main-panel,\r\n :host([document-panel-size=\"large\"]) .dso-document-panel {\r\n flex-basis: core-viewer-grid-variables.$large;\r\n min-inline-size: core-viewer-grid-variables.$large-min;\r\n max-inline-size: core-viewer-grid-variables.$large-max;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$large-min) {\r\n flex-basis: 100vw;\r\n max-inline-size: 100vw;\r\n min-inline-size: core-viewer-grid-variables.$large-min;\r\n transition: none;\r\n }\r\n }\r\n\r\n :host {\r\n display: flex;\r\n flex-direction: column;\r\n block-size: 100vh;\r\n overflow: clip;\r\n position: relative;\r\n\r\n .dso-main-panel.compact,\r\n .dso-main-panel.expanded {\r\n flex-basis: unset;\r\n min-inline-size: unset;\r\n max-inline-size: unset;\r\n inline-size: 440px;\r\n }\r\n\r\n .viewer-grid-columns {\r\n display: flex;\r\n overflow: hidden;\r\n flex-grow: 1;\r\n }\r\n }\r\n\r\n .dso-main-panel,\r\n .dso-document-panel {\r\n box-shadow: units.$u1 * 0.25 0 units.$u1 0 rgba(0, 0, 0, 0.4);\r\n\r\n .content {\r\n overflow-y: auto;\r\n }\r\n }\r\n\r\n .filter-panel {\r\n margin-inline: 0 auto;\r\n inline-size: calc(100vw - 40px);\r\n\r\n &[open] {\r\n border-inline-end: 1px solid core-viewer-grid-variables.$filter-panel-border-color;\r\n }\r\n }\r\n\r\n .overlay {\r\n box-shadow: -2px 0 5px colors.$grijs-60;\r\n margin-inline: auto 0;\r\n }\r\n\r\n @media screen and (max-width: #{media-query-breakpoints.$screen-sm-max + units.$u5 + 0.99}) {\r\n :host([filter-panel-open]) {\r\n .dso-main-panel {\r\n margin-inline-start: core-viewer-grid-variables.$filter-panel-max-inline-size;\r\n max-inline-size: calc(100vw - #{core-viewer-grid-variables.$filter-panel-max-inline-size});\r\n }\r\n }\r\n\r\n .filter-panel {\r\n inline-size: core-viewer-grid-variables.$filter-panel-max-inline-size;\r\n inset-inline-start: -(core-viewer-grid-variables.$filter-panel-max-inline-size);\r\n }\r\n }\r\n}\r\n\r\n@media screen and (max-width: #{media-query-breakpoints.$screen-xs-max + units.$u5 + 0.99}) {\r\n @include navbar.root();\r\n\r\n .dso-navbar {\r\n padding-inline: units.$u2;\r\n }\r\n\r\n .dso-nav {\r\n @include navbar.nav-border();\r\n\r\n display: flex;\r\n gap: units.$u2;\r\n margin-block-start: 0;\r\n inline-size: calc(100vw - units.$u4);\r\n }\r\n\r\n .dso-tertiary {\r\n @include button.tertiary($modifiers: false);\r\n\r\n // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\r\n & {\r\n font-weight: 300;\r\n }\r\n }\r\n\r\n .filter-panel,\r\n .overlay {\r\n margin-inline: 0;\r\n max-inline-size: 100vw;\r\n inset-block-start: 0;\r\n inline-size: 100vw;\r\n }\r\n\r\n .filter-panel {\r\n inset-inline-start: -100vw;\r\n }\r\n}\r\n\r\n@media screen and (min-width: #{media-query-breakpoints.$screen-md-min}) {\r\n :host([filter-panel-open]) {\r\n .dso-main-panel {\r\n margin-inline-start: core-viewer-grid-variables.$filter-panel-max-inline-size;\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, Method, Prop, State, Watch, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { DocumentPanel, FilterPanel, MainPanel, Overlay } from \"./components\";\r\nimport {\r\n ViewerGridActiveTabSwitchEvent,\r\n ViewerGridChangeSizeAnimationEndEvent,\r\n ViewerGridChangeSizeEvent,\r\n ViewerGridCloseFilterPanelEvent,\r\n ViewerGridCloseOverlayEvent,\r\n ViewerGridMainExpandEvent,\r\n ViewerGridMainToggleEvent,\r\n ViewerGridPanelSize,\r\n ViewerGridTab,\r\n viewerGridTabLabelMap,\r\n viewerGridTabs,\r\n} from \"./viewer-grid.interfaces\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce(([entry]) => {\r\n const shadowRoot = entry?.target.getRootNode();\r\n if (shadowRoot instanceof ShadowRoot && isDsoViewerGridComponent(shadowRoot.host)) {\r\n shadowRoot.host._checkMainPanelVisibility();\r\n }\r\n }, 50),\r\n);\r\n\r\nfunction isDsoViewerGridComponent(element: Element): element is HTMLDsoViewerGridElement {\r\n return element.tagName === \"DSO-VIEWER-GRID\";\r\n}\r\n\r\nconst buttonWidth = 40;\r\n\r\nconst tabViewBreakpoint = 768 + buttonWidth;\r\n\r\nconst minMapElementWidth = 440;\r\n\r\n/**\r\n * @slot top-bar - Een slot die bovenaan de viewer over de hele breedte kan worden gevuld met bijv een banner.\r\n * @slot main\r\n * @slot map\r\n * @slot filter-panel\r\n * @slot overlay\r\n * @slot document-panel\r\n */\r\n@Component({\r\n tag: \"dso-viewer-grid\",\r\n styleUrl: \"viewer-grid.scss\",\r\n shadow: true,\r\n})\r\nexport class ViewerGrid {\r\n private mediaCondition = `(min-width: ${tabViewBreakpoint}px)`;\r\n\r\n private mapElement?: HTMLDivElement;\r\n\r\n /**\r\n * The title of the filter panel\r\n */\r\n @Prop({ reflect: true })\r\n filterPanelTitle?: string;\r\n\r\n /**\r\n * Set to true when filter panel should show.\r\n */\r\n @Prop({ reflect: true })\r\n filterPanelOpen = false;\r\n\r\n /**\r\n * Set to true when overlay should show.\r\n */\r\n @Prop({ reflect: true })\r\n overlayOpen = false;\r\n\r\n /**\r\n * Set to true when document panel should show.\r\n */\r\n @Prop({ reflect: true })\r\n documentPanelOpen = false;\r\n\r\n /**\r\n * Size of the panel when component loads.\r\n *\r\n * Default size is `large`.\r\n */\r\n @Prop({ reflect: true })\r\n mainSize: ViewerGridPanelSize = \"large\";\r\n\r\n /**\r\n * Set active tab in tab view.\r\n */\r\n @Prop()\r\n activeTab?: ViewerGridTab;\r\n\r\n /**\r\n * Size of the panel when component loads.\r\n *\r\n * Default size is `large`.\r\n */\r\n @Prop({ reflect: true })\r\n documentPanelSize: ViewerGridPanelSize = \"large\";\r\n\r\n /**\r\n * Set to show main panel expanded.\r\n */\r\n @Prop()\r\n mainPanelExpanded = false;\r\n\r\n /**\r\n * Set to hide the main panel.\r\n */\r\n @Prop()\r\n mainPanelHidden = false;\r\n\r\n /**\r\n * Emitted when user wants to close the overlay.\r\n */\r\n @Event()\r\n dsoCloseOverlay!: EventEmitter<ViewerGridCloseOverlayEvent>;\r\n\r\n /**\r\n * Emitted when user wants to close the filter panel.\r\n */\r\n @Event()\r\n dsoCloseFilterPanel!: EventEmitter<ViewerGridCloseFilterPanelEvent>;\r\n\r\n /**\r\n * Emitted when user applies filter panel options.\r\n */\r\n @Event()\r\n dsoActiveTabSwitch!: EventEmitter<ViewerGridActiveTabSwitchEvent>;\r\n\r\n /**\r\n * Emitted after main size animation.\r\n */\r\n @Event()\r\n dsoMainSizeChangeAnimationEnd!: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n\r\n /**\r\n * Emitted on interaction with sizing buttons.\r\n */\r\n @Event()\r\n dsoDocumentPanelSizeChange!: EventEmitter<ViewerGridChangeSizeEvent>;\r\n\r\n /**\r\n * Emitted after main size animation.\r\n */\r\n @Event()\r\n dsoDocumentPanelSizeChangeAnimationEnd!: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n\r\n /**\r\n * Emitted when the user wants to expand the main panel.\r\n */\r\n @Event()\r\n dsoMainPanelExpand!: EventEmitter<ViewerGridMainExpandEvent>;\r\n\r\n /**\r\n * Emitted when the user toggles the visibility of the main panel.\r\n *\r\n * Also emitted by scripting when the panels do not fit anymore.\r\n */\r\n @Event()\r\n dsoMainPanelToggle!: EventEmitter<ViewerGridMainToggleEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoViewerGridElement;\r\n\r\n @State()\r\n tabView = window.innerWidth < tabViewBreakpoint;\r\n\r\n private filterPanel: HTMLDialogElement | undefined;\r\n\r\n private get filterPanelSlot() {\r\n return this.host.querySelector(\"[slot='filter-panel']\");\r\n }\r\n\r\n private get overlaySlot() {\r\n return this.host.querySelector(\"[slot='overlay']\");\r\n }\r\n\r\n private overlay: HTMLDialogElement | undefined;\r\n\r\n @Watch(\"documentPanelOpen\")\r\n documentPanelOpenWatcher(open: boolean) {\r\n if (open) {\r\n this._checkMainPanelVisibility();\r\n }\r\n }\r\n\r\n @Watch(\"filterPanelOpen\")\r\n filterPanelOpenWatcher(open: boolean) {\r\n if (!this.filterPanelSlot) {\r\n console.warn(\"slot 'filter-panel' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.filterPanel?.show();\r\n } else {\r\n this.filterPanel?.close();\r\n }\r\n }\r\n\r\n @Watch(\"overlayOpen\")\r\n overlayOpenWatcher(open: boolean) {\r\n if (!this.overlaySlot) {\r\n console.warn(\"slot 'overlay' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.overlay?.showModal();\r\n } else {\r\n this.overlay?.close();\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _checkMainPanelVisibility() {\r\n if (\r\n this.documentPanelOpen &&\r\n !this.mainPanelHidden &&\r\n this.mapElement instanceof HTMLDivElement &&\r\n ((this.mapElement.clientWidth <= minMapElementWidth + buttonWidth + buttonWidth && !this.mainPanelExpanded) ||\r\n (this.mapElement.clientWidth <= buttonWidth + buttonWidth && this.mainPanelExpanded))\r\n ) {\r\n this.dsoMainPanelToggle.emit({\r\n hide: true,\r\n });\r\n }\r\n }\r\n\r\n private switchActiveTab = (tab: ViewerGridTab) => {\r\n this.dsoActiveTabSwitch.emit({\r\n tab,\r\n });\r\n };\r\n\r\n private shrinkDocumentPanel = () => {\r\n this.dsoDocumentPanelSizeChange.emit({\r\n currentSize: this.documentPanelSize,\r\n nextSize: this.documentPanelSize === \"large\" ? \"medium\" : \"small\",\r\n });\r\n };\r\n\r\n private expandDocumentPanel = () => {\r\n this.dsoDocumentPanelSizeChange.emit({\r\n currentSize: this.documentPanelSize,\r\n nextSize: this.documentPanelSize === \"small\" ? \"medium\" : \"large\",\r\n });\r\n };\r\n\r\n private toggleMainPanel = () => {\r\n if (\r\n this.mapElement instanceof HTMLDivElement &&\r\n this.mapElement.clientWidth <= minMapElementWidth + buttonWidth + buttonWidth\r\n ) {\r\n this.mainSize = \"small\";\r\n }\r\n\r\n this.dsoMainPanelToggle.emit({\r\n hide: !this.mainPanelHidden,\r\n });\r\n };\r\n\r\n private changeListener = (largeScreen: MediaQueryListEvent) => (this.tabView = !largeScreen.matches);\r\n\r\n connectedCallback() {\r\n window.matchMedia(this.mediaCondition).addEventListener(\"change\", this.changeListener);\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.filterPanelOpen && this.filterPanelSlot) {\r\n this.filterPanel?.show();\r\n }\r\n\r\n if (this.overlayOpen && this.overlaySlot) {\r\n this.overlay?.showModal();\r\n }\r\n\r\n if (this.mapElement instanceof HTMLDivElement) {\r\n resizeObserver.observe(this.mapElement);\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n window.matchMedia(this.mediaCondition).removeEventListener(\"change\", this.changeListener);\r\n\r\n if (this.mapElement) {\r\n resizeObserver.unobserve(this.mapElement);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <slot name=\"top-bar\" />\r\n <div class=\"viewer-grid-columns\">\r\n {this.tabView && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-sub\">\r\n {viewerGridTabs.map((tab) => (\r\n <li key={tab} class={clsx({ \"dso-active\": this.activeTab === tab })}>\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={() => this.switchActiveTab(tab)}>\r\n {viewerGridTabLabelMap[tab]}\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n {(!this.tabView || (this.tabView && this.activeTab === \"search\")) && (\r\n <MainPanel\r\n tabView={this.tabView}\r\n mainSize={this.mainSize}\r\n documentPanelOpen={this.documentPanelOpen}\r\n mainPanelExpanded={this.mainPanelExpanded}\r\n mainPanelHidden={this.mainPanelHidden}\r\n toggleMainPanel={this.toggleMainPanel}\r\n dsoMainSizeChangeAnimationEnd={this.dsoMainSizeChangeAnimationEnd}\r\n ></MainPanel>\r\n )}\r\n {(!this.tabView || (this.tabView && this.activeTab === \"search\")) && (\r\n <FilterPanel\r\n title={this.filterPanelTitle}\r\n ref={(element) => (this.filterPanel = element)}\r\n dsoCloseFilterPanel={(e) => this.dsoCloseFilterPanel.emit({ originalEvent: e })}\r\n ></FilterPanel>\r\n )}\r\n {(!this.tabView || (this.tabView && this.activeTab === \"map\")) && (\r\n <div class=\"map\" ref={(element) => (this.mapElement = element)}>\r\n <slot name=\"map\" />\r\n </div>\r\n )}\r\n {((!this.tabView && this.documentPanelOpen) || (this.tabView && this.activeTab === \"document\")) && (\r\n <DocumentPanel\r\n tabView={this.tabView}\r\n panelSize={this.documentPanelSize}\r\n shrinkDocumentPanel={this.shrinkDocumentPanel}\r\n expandDocumentPanel={this.expandDocumentPanel}\r\n dsoDocumentPanelSizeChangeAnimationEnd={this.dsoDocumentPanelSizeChangeAnimationEnd}\r\n ></DocumentPanel>\r\n )}\r\n <Overlay\r\n ref={(element) => (this.overlay = element)}\r\n dsoCloseOverlay={(e) => this.dsoCloseOverlay.emit({ originalEvent: e })}\r\n ></Overlay>\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|