@dso-toolkit/core 51.3.0 → 51.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
- package/dist/cjs/dso-alert.cjs.entry.js +1 -1
- package/dist/cjs/dso-badge.cjs.entry.js +1 -1
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +78 -1
- package/dist/cjs/dso-header.cjs.entry.js +1 -1
- package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +4 -3
- package/dist/cjs/dso-label.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-controls.cjs.entry.js +12 -4
- package/dist/cjs/dso-toolkit.cjs.js +1 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js +5 -1809
- package/dist/cjs/has-overflow-b1b4f3f3.js +1812 -0
- package/dist/cjs/index.cjs.js +7 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-controls.interfaces-5ceec716.js +5 -0
- package/dist/collection/components/accordion/components/accordion-section.css +6 -11
- package/dist/collection/components/alert/alert.css +4 -4
- package/dist/collection/components/badge/badge.css +2 -2
- package/dist/collection/components/dropdown-menu/dropdown-menu.css +0 -1
- package/dist/collection/components/dropdown-menu/dropdown-menu.js +118 -0
- package/dist/collection/components/header/header.css +2 -2
- package/dist/collection/components/highlight-box/highlight-box.css +1 -0
- package/dist/collection/components/info/info.css +1 -0
- package/dist/collection/components/label/label.css +2 -2
- package/dist/collection/components/map-controls/map-controls.interfaces.js +1 -0
- package/dist/collection/components/map-controls/map-controls.js +58 -2
- package/dist/collection/components/selectable/selectable.css +1 -0
- package/dist/collection/components/selectable/selectable.js +19 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -7
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/has-overflow.js +7 -0
- package/dist/components/dropdown-menu.js +81 -2
- package/dist/components/dso-accordion-section.js +1 -1
- package/dist/components/dso-alert.js +1 -1
- package/dist/components/dso-badge.js +1 -1
- package/dist/components/dso-header.js +1 -1
- package/dist/components/dso-highlight-box.js +1 -1
- package/dist/components/dso-label.js +1 -1
- package/dist/components/dso-map-controls.js +14 -4
- package/dist/components/has-overflow.js +1807 -0
- package/dist/components/index.js +1 -1
- package/dist/components/info.js +1 -1
- package/dist/components/selectable.js +4 -2
- package/dist/components/tooltip.js +4 -1808
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/index.esm.js +1 -0
- package/dist/dso-toolkit/p-07952ece.entry.js +1 -0
- package/dist/dso-toolkit/{p-1f0672f2.entry.js → p-147ec7bd.entry.js} +1 -1
- package/dist/dso-toolkit/p-30df5586.entry.js +1 -0
- package/dist/dso-toolkit/p-4b18389c.entry.js +1 -0
- package/dist/dso-toolkit/{p-2af58b20.entry.js → p-4c8426b7.entry.js} +1 -1
- package/dist/dso-toolkit/{p-8de85ae7.entry.js → p-5082d823.entry.js} +1 -1
- package/dist/dso-toolkit/p-85b18dbd.js +1 -0
- package/dist/dso-toolkit/p-bdc3b14b.entry.js +1 -0
- package/dist/dso-toolkit/{p-5b7c0fa5.entry.js → p-c1226b66.entry.js} +1 -1
- package/dist/dso-toolkit/p-d3ed00f6.js +1 -0
- package/dist/dso-toolkit/p-e3bd7689.entry.js +1 -0
- package/dist/dso-toolkit/{p-c4c309b5.entry.js → p-f53860da.entry.js} +1 -1
- package/dist/esm/dso-accordion-section.entry.js +1 -1
- package/dist/esm/dso-alert.entry.js +1 -1
- package/dist/esm/dso-badge.entry.js +1 -1
- package/dist/esm/dso-dropdown-menu.entry.js +78 -1
- package/dist/esm/dso-header.entry.js +1 -1
- package/dist/esm/dso-highlight-box.entry.js +1 -1
- package/dist/esm/dso-info_2.entry.js +4 -3
- package/dist/esm/dso-label.entry.js +1 -1
- package/dist/esm/dso-map-controls.entry.js +10 -2
- package/dist/esm/dso-toolkit.js +1 -1
- package/dist/esm/dso-tooltip.entry.js +1 -1805
- package/dist/esm/has-overflow-c44a8a0a.js +1807 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-controls.interfaces-2323e8ac.js +3 -0
- package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +11 -0
- package/dist/types/components/map-controls/map-controls.d.ts +9 -0
- package/dist/types/components/map-controls/map-controls.interfaces.d.ts +5 -0
- package/dist/types/components/selectable/selectable.d.ts +1 -0
- package/dist/types/components.d.ts +24 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/has-overflow.d.ts +1 -0
- package/package.json +2 -2
- package/dist/dso-toolkit/p-0bc8885e.entry.js +0 -1
- package/dist/dso-toolkit/p-0ca60778.entry.js +0 -1
- package/dist/dso-toolkit/p-1854d6ed.entry.js +0 -1
- package/dist/dso-toolkit/p-b337f001.entry.js +0 -1
- package/dist/dso-toolkit/p-fbb20550.entry.js +0 -1
package/dist/cjs/index.cjs.js
CHANGED
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -14,7 +14,7 @@ const patchEsm = () => {
|
|
|
14
14
|
const defineCustomElements = (win, options) => {
|
|
15
15
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
16
16
|
return patchEsm().then(() => {
|
|
17
|
-
return index.bootstrapLazy([["dso-icon.cjs",[[1,"dso-icon",{"icon":[1]}]]],["dso-map-base-layers.cjs",[[1,"dso-map-base-layers",{"group":[1],"baseLayers":[16]}]]],["dso-map-overlays.cjs",[[1,"dso-map-overlays",{"group":[1],"overlays":[16]}]]],["dso-annotation-output.cjs",[[4,"dso-annotation-output",{"identifier":[1],"annotationPrefix":[1,"annotation-prefix"],"toggleAnnotation":[64]}]]],["dso-toggletip.cjs",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-expandable-heading.cjs",[[1,"dso-expandable-heading",{"open":[4],"heading":[1],"color":[1]}]]],["dso-header.cjs",[[6,"dso-header",{"mainMenu":[16],"useDropDownMenu":[1,"use-drop-down-menu"],"authStatus":[1,"auth-status"],"loginUrl":[1,"login-url"],"logoutUrl":[1,"logout-url"],"userProfileName":[1,"user-profile-name"],"userProfileUrl":[1,"user-profile-url"],"userHomeUrl":[1,"user-home-url"],"showDropDown":[32],"hasSubLogo":[32],"overflowMenuItems":[32]}]]],["dso-label.cjs",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"truncate":[4],"removeHover":[32],"removeFocus":[32],"textHover":[32],"textFocus":[32],"truncatedContent":[32],"labelText":[32]}]]],["dso-pagination.cjs",[[1,"dso-pagination",{"totalPages":[2,"total-pages"],"currentPage":[2,"current-page"],"formatHref":[16],"availablePositions":[32]},[[0,"dsoSizeChange","sizeChangeHandler"]]]]],["dso-tree-view.cjs",[[1,"dso-tree-view",{"collection":[16],"focusItem":[64]}]]],["dso-accordion-section.cjs",[[1,"dso-accordion-section",{"handleTitle":[1,"handle-title"],"heading":[1],"handleUrl":[1,"handle-url"],"state":[1],"attachmentCount":[2,"attachment-count"],"icon":[1],"status":[1],"open":[1540],"hasNestedSection":[32],"toggleSection":[64],"scrollSectionIntoView":[64]}]]],["dso-alert.cjs",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-annotation-button.cjs",[[0,"dso-annotation-button",{"identifier":[1]}]]],["dso-attachments-counter.cjs",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest.cjs",[[6,"dso-autosuggest",{"suggestions":[16],"loading":[4],"loadingLabel":[1,"loading-label"],"loadingDelayed":[2,"loading-delayed"],"notFoundLabel":[1,"not-found-label"],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32],"notFound":[32],"showLoading":[32]},[[4,"click","onDocumentClick"]]]]],["dso-date-picker.cjs",[[2,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"dsoAutofocus":[4,"dso-autofocus"],"value":[1537],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"visible":[32],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-helpcenter-panel.cjs",[[1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]},[[8,"keydown","keyDownListener"]]]]],["dso-image-overlay.cjs",[[1,"dso-image-overlay",{"active":[32],"zoomable":[32]},[[2,"load","loadListener"]]]]],["dso-list-button.cjs",[[1,"dso-list-button",{"label":[1],"sublabel":[1],"subcontent":[1],"count":[2],"min":[8],"max":[8],"checked":[516],"disabled":[516],"manualInputWrapperElement":[32],"manualCount":[32]}]]],["dso-map-controls.cjs",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-modal.cjs",[[1,"dso-modal",{"modalTitle":[1,"modal-title"],"role":[1],"showCloseButton":[4,"show-close-button"],"initialFocus":[1,"initial-focus"],"ariaId":[32],"hasFooter":[32]}]]],["dso-table.cjs",[[1,"dso-table",{"noModal":[516,"no-modal"],"isResponsive":[516,"is-responsive"],"modalActive":[32],"placeholderHeight":[32]}]]],["dso-viewer-grid.cjs",[[1,"dso-viewer-grid",{"filterpanelOpen":[516,"filterpanel-open"],"overlayOpen":[516,"overlay-open"],"initialMainSize":[1,"initial-main-size"],"mainSize":[32]}]]],["dso-accordion.cjs",[[1,"dso-accordion",{"variant":[513],"reverseAlign":[516,"reverse-align"],"allowMultipleOpen":[516,"allow-multiple-open"],"getState":[64],"toggleSection":[64],"animationEnd":[64],"closeOpenSections":[64]}]]],["dso-badge.cjs",[[1,"dso-badge",{"status":[1]}]]],["dso-banner.cjs",[[1,"dso-banner",{"status":[513]}]]],["dso-card.cjs",[[1,"dso-card",{"isSelectable":[516,"is-selectable"],"hasImage":[516,"has-image"],"clickable":[4]}]]],["dso-card-container.cjs",[[1,"dso-card-container",{"mode":[513]}]]],["dso-highlight-box.cjs",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content.cjs",[[6,"dso-ozon-content",{"content":[1],"inline":[516],"deleted":[516],"interactive":[520],"state":[32]}]]],["dso-progress-bar.cjs",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-slide-toggle.cjs",[[4,"dso-slide-toggle",{"checked":[4],"disabled":[4],"accessibleLabel":[1,"accessible-label"],"labelledbyId":[1,"labelledby-id"],"identifier":[1],"hasVisibleLabel":[32]}]]],["dso-dropdown-menu.cjs",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-expandable.cjs",[[1,"dso-expandable",{"open":[516]}]]],["dso-progress-indicator.cjs",[[1,"dso-progress-indicator",{"label":[1],"size":[513],"block":[4]}]]],["dso-responsive-element.cjs",[[1,"dso-responsive-element",{"sizeAlias":[32],"sizeWidth":[32],"getSize":[64]}]]],["dso-tooltip.cjs",[[1,"dso-tooltip",{"descriptive":[516],"position":[1],"strategy":[1],"noArrow":[4,"no-arrow"],"stateless":[4],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-info-button.cjs",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1],"hover":[32],"setFocus":[64]}]]],["dso-info_2.cjs",[[6,"dso-selectable",{"type":[1],"identifier":[1],"name":[1],"value":[1],"invalid":[4],"describedById":[1,"described-by-id"],"disabled":[4],"required":[4],"checked":[4],"indeterminate":[4],"infoFixed":[4,"info-fixed"],"infoActive":[32],"toggleInfo":[64]}],[1,"dso-info",{"fixed":[516],"active":[516]}]]]], options);
|
|
17
|
+
return index.bootstrapLazy([["dso-icon.cjs",[[1,"dso-icon",{"icon":[1]}]]],["dso-map-base-layers.cjs",[[1,"dso-map-base-layers",{"group":[1],"baseLayers":[16]}]]],["dso-map-overlays.cjs",[[1,"dso-map-overlays",{"group":[1],"overlays":[16]}]]],["dso-annotation-output.cjs",[[4,"dso-annotation-output",{"identifier":[1],"annotationPrefix":[1,"annotation-prefix"],"toggleAnnotation":[64]}]]],["dso-toggletip.cjs",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-expandable-heading.cjs",[[1,"dso-expandable-heading",{"open":[4],"heading":[1],"color":[1]}]]],["dso-header.cjs",[[6,"dso-header",{"mainMenu":[16],"useDropDownMenu":[1,"use-drop-down-menu"],"authStatus":[1,"auth-status"],"loginUrl":[1,"login-url"],"logoutUrl":[1,"logout-url"],"userProfileName":[1,"user-profile-name"],"userProfileUrl":[1,"user-profile-url"],"userHomeUrl":[1,"user-home-url"],"showDropDown":[32],"hasSubLogo":[32],"overflowMenuItems":[32]}]]],["dso-label.cjs",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"truncate":[4],"removeHover":[32],"removeFocus":[32],"textHover":[32],"textFocus":[32],"truncatedContent":[32],"labelText":[32]}]]],["dso-pagination.cjs",[[1,"dso-pagination",{"totalPages":[2,"total-pages"],"currentPage":[2,"current-page"],"formatHref":[16],"availablePositions":[32]},[[0,"dsoSizeChange","sizeChangeHandler"]]]]],["dso-tree-view.cjs",[[1,"dso-tree-view",{"collection":[16],"focusItem":[64]}]]],["dso-accordion-section.cjs",[[1,"dso-accordion-section",{"handleTitle":[1,"handle-title"],"heading":[1],"handleUrl":[1,"handle-url"],"state":[1],"attachmentCount":[2,"attachment-count"],"icon":[1],"status":[1],"open":[1540],"hasNestedSection":[32],"toggleSection":[64],"scrollSectionIntoView":[64]}]]],["dso-alert.cjs",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-annotation-button.cjs",[[0,"dso-annotation-button",{"identifier":[1]}]]],["dso-attachments-counter.cjs",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest.cjs",[[6,"dso-autosuggest",{"suggestions":[16],"loading":[4],"loadingLabel":[1,"loading-label"],"loadingDelayed":[2,"loading-delayed"],"notFoundLabel":[1,"not-found-label"],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32],"notFound":[32],"showLoading":[32]},[[4,"click","onDocumentClick"]]]]],["dso-date-picker.cjs",[[2,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"dsoAutofocus":[4,"dso-autofocus"],"value":[1537],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"visible":[32],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-helpcenter-panel.cjs",[[1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]},[[8,"keydown","keyDownListener"]]]]],["dso-image-overlay.cjs",[[1,"dso-image-overlay",{"active":[32],"zoomable":[32]},[[2,"load","loadListener"]]]]],["dso-list-button.cjs",[[1,"dso-list-button",{"label":[1],"sublabel":[1],"subcontent":[1],"count":[2],"min":[8],"max":[8],"checked":[516],"disabled":[516],"manualInputWrapperElement":[32],"manualCount":[32]}]]],["dso-map-controls.cjs",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32],"toggleVisibility":[64]}]]],["dso-modal.cjs",[[1,"dso-modal",{"modalTitle":[1,"modal-title"],"role":[1],"showCloseButton":[4,"show-close-button"],"initialFocus":[1,"initial-focus"],"ariaId":[32],"hasFooter":[32]}]]],["dso-table.cjs",[[1,"dso-table",{"noModal":[516,"no-modal"],"isResponsive":[516,"is-responsive"],"modalActive":[32],"placeholderHeight":[32]}]]],["dso-viewer-grid.cjs",[[1,"dso-viewer-grid",{"filterpanelOpen":[516,"filterpanel-open"],"overlayOpen":[516,"overlay-open"],"initialMainSize":[1,"initial-main-size"],"mainSize":[32]}]]],["dso-accordion.cjs",[[1,"dso-accordion",{"variant":[513],"reverseAlign":[516,"reverse-align"],"allowMultipleOpen":[516,"allow-multiple-open"],"getState":[64],"toggleSection":[64],"animationEnd":[64],"closeOpenSections":[64]}]]],["dso-badge.cjs",[[1,"dso-badge",{"status":[1]}]]],["dso-banner.cjs",[[1,"dso-banner",{"status":[513]}]]],["dso-card.cjs",[[1,"dso-card",{"isSelectable":[516,"is-selectable"],"hasImage":[516,"has-image"],"clickable":[4]}]]],["dso-card-container.cjs",[[1,"dso-card-container",{"mode":[513]}]]],["dso-highlight-box.cjs",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content.cjs",[[6,"dso-ozon-content",{"content":[1],"inline":[516],"deleted":[516],"interactive":[520],"state":[32]}]]],["dso-progress-bar.cjs",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-slide-toggle.cjs",[[4,"dso-slide-toggle",{"checked":[4],"disabled":[4],"accessibleLabel":[1,"accessible-label"],"labelledbyId":[1,"labelledby-id"],"identifier":[1],"hasVisibleLabel":[32]}]]],["dso-dropdown-menu.cjs",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4],"boundary":[1],"strategy":[1]}]]],["dso-expandable.cjs",[[1,"dso-expandable",{"open":[516]}]]],["dso-progress-indicator.cjs",[[1,"dso-progress-indicator",{"label":[1],"size":[513],"block":[4]}]]],["dso-responsive-element.cjs",[[1,"dso-responsive-element",{"sizeAlias":[32],"sizeWidth":[32],"getSize":[64]}]]],["dso-tooltip.cjs",[[1,"dso-tooltip",{"descriptive":[516],"position":[1],"strategy":[1],"noArrow":[4,"no-arrow"],"stateless":[4],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-info-button.cjs",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1],"hover":[32],"setFocus":[64]}]]],["dso-info_2.cjs",[[6,"dso-selectable",{"type":[1],"identifier":[1],"name":[1],"value":[1],"invalid":[4],"describedById":[1,"described-by-id"],"labelledById":[1,"labelled-by-id"],"disabled":[4],"required":[4],"checked":[4],"indeterminate":[4],"infoFixed":[4,"info-fixed"],"infoActive":[32],"toggleInfo":[64]}],[1,"dso-info",{"fixed":[516],"active":[516]}]]]], options);
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -222,14 +222,18 @@
|
|
|
222
222
|
}
|
|
223
223
|
:host(.dso-accordion-conclusion) .dso-section-handle a,
|
|
224
224
|
:host(.dso-accordion-conclusion) .dso-section-handle button {
|
|
225
|
-
color: #
|
|
225
|
+
color: #000;
|
|
226
226
|
}
|
|
227
227
|
:host(.dso-accordion-conclusion) .dso-section-handle a:hover, :host(.dso-accordion-conclusion) .dso-section-handle a:active, :host(.dso-accordion-conclusion) .dso-section-handle a.active,
|
|
228
228
|
:host(.dso-accordion-conclusion) .dso-section-handle button:hover,
|
|
229
229
|
:host(.dso-accordion-conclusion) .dso-section-handle button:active,
|
|
230
230
|
:host(.dso-accordion-conclusion) .dso-section-handle button.active {
|
|
231
231
|
background-color: #e5e5e5;
|
|
232
|
-
|
|
232
|
+
}
|
|
233
|
+
:host(.dso-accordion-conclusion) .dso-section-handle a dso-attachments-counter,
|
|
234
|
+
:host(.dso-accordion-conclusion) .dso-section-handle button dso-attachments-counter {
|
|
235
|
+
--dso-attachments-counter-color: #000;
|
|
236
|
+
--dso-icon: var(--di-paperclip-zwart);
|
|
233
237
|
}
|
|
234
238
|
:host(.dso-accordion-conclusion) .dso-section-body {
|
|
235
239
|
border: 2px solid #f2f2f2;
|
|
@@ -238,15 +242,6 @@
|
|
|
238
242
|
:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) > .dso-section-handle {
|
|
239
243
|
background-color: #f2f2f2;
|
|
240
244
|
}
|
|
241
|
-
:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) > .dso-section-handle a,
|
|
242
|
-
:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) > .dso-section-handle button {
|
|
243
|
-
color: #191919;
|
|
244
|
-
}
|
|
245
|
-
:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) > .dso-section-handle a dso-attachments-counter,
|
|
246
|
-
:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) > .dso-section-handle button dso-attachments-counter {
|
|
247
|
-
--dso-attachments-counter-color: #666;
|
|
248
|
-
--dso-icon: var(--di-paperclip-grijs);
|
|
249
|
-
}
|
|
250
245
|
|
|
251
246
|
:host(.dso-accordion-conclusion.dso-nested-accordion[open]) {
|
|
252
247
|
background-color: #fff;
|
|
@@ -44,22 +44,22 @@
|
|
|
44
44
|
margin-top: 24px;
|
|
45
45
|
}
|
|
46
46
|
.alert.alert-success {
|
|
47
|
-
color: #
|
|
47
|
+
color: #000;
|
|
48
48
|
background-color: #e4f1d4;
|
|
49
49
|
border-color: #e4f1d4;
|
|
50
50
|
}
|
|
51
51
|
.alert.alert-error {
|
|
52
|
-
color: #
|
|
52
|
+
color: #000;
|
|
53
53
|
background-color: #f5d8dc;
|
|
54
54
|
border-color: #f5d8dc;
|
|
55
55
|
}
|
|
56
56
|
.alert.alert-warning {
|
|
57
|
-
color: #
|
|
57
|
+
color: #000;
|
|
58
58
|
background-color: #f8f6cc;
|
|
59
59
|
border-color: #f8f6cc;
|
|
60
60
|
}
|
|
61
61
|
.alert.alert-info {
|
|
62
|
-
color: #
|
|
62
|
+
color: #000;
|
|
63
63
|
background-color: #e1ecf7;
|
|
64
64
|
border-color: #e1ecf7;
|
|
65
65
|
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
.dso-badge.badge-info {
|
|
35
35
|
background-color: #6ca4d9;
|
|
36
36
|
border-color: #6ca4d9;
|
|
37
|
-
color: #
|
|
37
|
+
color: #000;
|
|
38
38
|
}
|
|
39
39
|
.dso-badge.badge-primary {
|
|
40
40
|
background-color: #275937;
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
.dso-badge.badge-warning {
|
|
50
50
|
background-color: #dcd400;
|
|
51
51
|
border-color: #dcd400;
|
|
52
|
-
color: #
|
|
52
|
+
color: #000;
|
|
53
53
|
}
|
|
54
54
|
.dso-badge.badge-danger {
|
|
55
55
|
background-color: #ce3f51;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { createPopper } from "@popperjs/core";
|
|
1
2
|
import { h, Host } from "@stencil/core";
|
|
2
3
|
import { tabbable } from "tabbable";
|
|
3
4
|
import { v4 as uuidv4 } from "uuid";
|
|
5
|
+
import { hasOverflow } from "../../utils/has-overflow";
|
|
4
6
|
export class DropdownMenu {
|
|
5
7
|
constructor() {
|
|
6
8
|
this.focusOutListener = (event) => {
|
|
@@ -39,6 +41,44 @@ export class DropdownMenu {
|
|
|
39
41
|
this.open = false;
|
|
40
42
|
this.dropdownAlign = "left";
|
|
41
43
|
this.checkable = false;
|
|
44
|
+
this.boundary = undefined;
|
|
45
|
+
this.strategy = "auto";
|
|
46
|
+
}
|
|
47
|
+
watchPosition() {
|
|
48
|
+
if (!this.popper) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.popper.setOptions({
|
|
52
|
+
placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
watchStrategy() {
|
|
56
|
+
this.setStrategy();
|
|
57
|
+
}
|
|
58
|
+
setStrategy() {
|
|
59
|
+
if (!this.popper) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (this.strategy === "absolute" || this.strategy === "fixed") {
|
|
63
|
+
this.popper.setOptions({
|
|
64
|
+
strategy: this.strategy,
|
|
65
|
+
});
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let element = this.host;
|
|
69
|
+
const boundary = this.boundary || document;
|
|
70
|
+
while (element && element.parentNode !== boundary) {
|
|
71
|
+
element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;
|
|
72
|
+
if (element !== null && hasOverflow(element)) {
|
|
73
|
+
this.popper.setOptions({
|
|
74
|
+
strategy: "fixed",
|
|
75
|
+
});
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
this.popper.setOptions({
|
|
80
|
+
strategy: "absolute",
|
|
81
|
+
});
|
|
42
82
|
}
|
|
43
83
|
get button() {
|
|
44
84
|
const button = this.host.querySelector('button[slot="toggle"]');
|
|
@@ -71,8 +111,38 @@ export class DropdownMenu {
|
|
|
71
111
|
li.setAttribute("role", "none");
|
|
72
112
|
}
|
|
73
113
|
}
|
|
114
|
+
if (this.popper) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const dropdownOptionsElement = this.host.querySelector(".dso-dropdown-options");
|
|
118
|
+
if (!(dropdownOptionsElement instanceof HTMLElement)) {
|
|
119
|
+
throw new Error("dropdown options element is not instanceof HTMLElement");
|
|
120
|
+
}
|
|
121
|
+
this.popper = createPopper(this.button, dropdownOptionsElement, {
|
|
122
|
+
placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
|
|
123
|
+
modifiers: [
|
|
124
|
+
{
|
|
125
|
+
name: "offset",
|
|
126
|
+
options: {
|
|
127
|
+
offset: [0, 2], // 2px margin between button and options
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "preventOverflow",
|
|
132
|
+
options: {
|
|
133
|
+
boundary: this.boundary ? document.querySelector(this.boundary) : null,
|
|
134
|
+
},
|
|
135
|
+
enabled: this.boundary !== undefined,
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
});
|
|
74
139
|
}
|
|
75
140
|
componentDidRender() {
|
|
141
|
+
var _a;
|
|
142
|
+
this.setStrategy();
|
|
143
|
+
if (this.open) {
|
|
144
|
+
(_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
|
|
145
|
+
}
|
|
76
146
|
for (const li of Array.from(this.host.getElementsByTagName("li"))) {
|
|
77
147
|
for (const tab of tabbable(li)) {
|
|
78
148
|
tab.setAttribute("role", this.checkable ? "menuitemradio" : "menuitem");
|
|
@@ -93,6 +163,10 @@ export class DropdownMenu {
|
|
|
93
163
|
}
|
|
94
164
|
});
|
|
95
165
|
}
|
|
166
|
+
disconnectedCallback() {
|
|
167
|
+
var _a;
|
|
168
|
+
(_a = this.popper) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
169
|
+
}
|
|
96
170
|
getActiveElement(root = document) {
|
|
97
171
|
const activeEl = root.activeElement;
|
|
98
172
|
if (!activeEl) {
|
|
@@ -185,8 +259,52 @@ export class DropdownMenu {
|
|
|
185
259
|
"attribute": "checkable",
|
|
186
260
|
"reflect": false,
|
|
187
261
|
"defaultValue": "false"
|
|
262
|
+
},
|
|
263
|
+
"boundary": {
|
|
264
|
+
"type": "string",
|
|
265
|
+
"mutable": false,
|
|
266
|
+
"complexType": {
|
|
267
|
+
"original": "string",
|
|
268
|
+
"resolved": "string | undefined",
|
|
269
|
+
"references": {}
|
|
270
|
+
},
|
|
271
|
+
"required": false,
|
|
272
|
+
"optional": true,
|
|
273
|
+
"docs": {
|
|
274
|
+
"tags": [],
|
|
275
|
+
"text": "Selector for the element the dropdown options should not be overflowing."
|
|
276
|
+
},
|
|
277
|
+
"attribute": "boundary",
|
|
278
|
+
"reflect": false
|
|
279
|
+
},
|
|
280
|
+
"strategy": {
|
|
281
|
+
"type": "string",
|
|
282
|
+
"mutable": false,
|
|
283
|
+
"complexType": {
|
|
284
|
+
"original": "\"auto\" | \"absolute\" | \"fixed\"",
|
|
285
|
+
"resolved": "\"absolute\" | \"auto\" | \"fixed\"",
|
|
286
|
+
"references": {}
|
|
287
|
+
},
|
|
288
|
+
"required": false,
|
|
289
|
+
"optional": false,
|
|
290
|
+
"docs": {
|
|
291
|
+
"tags": [],
|
|
292
|
+
"text": "Set position strategy of dropdown options"
|
|
293
|
+
},
|
|
294
|
+
"attribute": "strategy",
|
|
295
|
+
"reflect": false,
|
|
296
|
+
"defaultValue": "\"auto\""
|
|
188
297
|
}
|
|
189
298
|
};
|
|
190
299
|
}
|
|
191
300
|
static get elementRef() { return "host"; }
|
|
301
|
+
static get watchers() {
|
|
302
|
+
return [{
|
|
303
|
+
"propName": "dropdownAlign",
|
|
304
|
+
"methodName": "watchPosition"
|
|
305
|
+
}, {
|
|
306
|
+
"propName": "strategy",
|
|
307
|
+
"methodName": "watchStrategy"
|
|
308
|
+
}];
|
|
309
|
+
}
|
|
192
310
|
}
|
|
@@ -195,8 +195,8 @@ dso-dropdown-menu .dso-dropdown-options ul li + li {
|
|
|
195
195
|
text-decoration: underline;
|
|
196
196
|
}
|
|
197
197
|
.dso-nav.dso-nav-main dso-dropdown-menu .dso-dropdown-options {
|
|
198
|
-
left: -1rem;
|
|
199
|
-
top:
|
|
198
|
+
left: -1rem !important;
|
|
199
|
+
top: 3px !important;
|
|
200
200
|
}
|
|
201
201
|
.dso-nav.dso-nav-main dso-dropdown-menu button {
|
|
202
202
|
font-size: 1.25em;
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
}
|
|
55
55
|
.dso-label.dso-label-info {
|
|
56
56
|
background-color: #6ca4d9;
|
|
57
|
-
color: #
|
|
57
|
+
color: #000;
|
|
58
58
|
}
|
|
59
59
|
.dso-label.dso-label-primary {
|
|
60
60
|
background-color: #275937;
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
}
|
|
67
67
|
.dso-label.dso-label-warning {
|
|
68
68
|
background-color: #dcd400;
|
|
69
|
-
color: #
|
|
69
|
+
color: #000;
|
|
70
70
|
}
|
|
71
71
|
.dso-label.dso-label-danger {
|
|
72
72
|
background-color: #ce3f51;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const transitionDuration = 300; // Sync with $transition-duration in ./map-controls.scss
|
|
@@ -16,7 +16,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
16
16
|
};
|
|
17
17
|
var _MapControls_closeButtonElement, _MapControls_toggleButtonElement;
|
|
18
18
|
import { h, Host } from "@stencil/core";
|
|
19
|
-
|
|
19
|
+
import { transitionDuration } from "./map-controls.interfaces";
|
|
20
20
|
export class MapControls {
|
|
21
21
|
constructor() {
|
|
22
22
|
this.panelTitle = "Kaartlagen";
|
|
@@ -39,8 +39,15 @@ export class MapControls {
|
|
|
39
39
|
}, transitionDuration);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
async toggleVisibility(e) {
|
|
43
|
+
this.open = !this.open;
|
|
44
|
+
this.dsoToggle.emit({
|
|
45
|
+
originalEvent: e,
|
|
46
|
+
open: this.open,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
42
49
|
render() {
|
|
43
|
-
return (h(Host, null, h("button", { type: "button", id: "toggle-visibility-button", class: "toggle-visibility-button", onClick: () =>
|
|
50
|
+
return (h(Host, null, h("button", { type: "button", id: "toggle-visibility-button", class: "toggle-visibility-button", onClick: (e) => this.toggleVisibility(e), ref: (element) => (__classPrivateFieldSet(this, _MapControls_toggleButtonElement, element, "f")) }, h("dso-icon", { icon: "layers" }), h("span", null, "Kaartlagen")), h("div", { class: "zoom-buttons" }, h("button", { type: "button", onClick: (e) => this.dsoZoomIn.emit(e), disabled: this.disableZoom === "in" || this.disableZoom === "both" }, h("span", null, "Zoom in"), h("dso-icon", { icon: "plus" })), h("button", { type: "button", onClick: (e) => this.dsoZoomOut.emit(e), disabled: this.disableZoom === "out" || this.disableZoom === "both" }, h("span", null, "Zoom uit"), h("dso-icon", { icon: "minus" }))), h("section", { hidden: this.hideContent }, h("header", null, h("h2", null, this.panelTitle), h("button", { type: "button", class: "close-button", onClick: (e) => this.toggleVisibility(e), ref: (element) => (__classPrivateFieldSet(this, _MapControls_closeButtonElement, element, "f")) }, h("span", null, "Verberg paneel ", this.panelTitle), h("dso-icon", { icon: "times" }))), h("div", { class: "content" }, h("slot", null)))));
|
|
44
51
|
}
|
|
45
52
|
static get is() { return "dso-map-controls"; }
|
|
46
53
|
static get encapsulation() { return "shadow"; }
|
|
@@ -137,8 +144,57 @@ export class MapControls {
|
|
|
137
144
|
}
|
|
138
145
|
}
|
|
139
146
|
}
|
|
147
|
+
}, {
|
|
148
|
+
"method": "dsoToggle",
|
|
149
|
+
"name": "dsoToggle",
|
|
150
|
+
"bubbles": true,
|
|
151
|
+
"cancelable": true,
|
|
152
|
+
"composed": true,
|
|
153
|
+
"docs": {
|
|
154
|
+
"tags": [],
|
|
155
|
+
"text": "emits when the panel opens or closes.\r\n\r\n- `event.detail.originalEvent` contains the original `MouseEvent / KeyboardEvent` when the panel is toggled by clicking the visibility button or the close button.\r\n- `event.detail.open` is true when the panel opens and false when the panel closes."
|
|
156
|
+
},
|
|
157
|
+
"complexType": {
|
|
158
|
+
"original": "MapControlsToggleEvent",
|
|
159
|
+
"resolved": "MapControlsToggleEvent",
|
|
160
|
+
"references": {
|
|
161
|
+
"MapControlsToggleEvent": {
|
|
162
|
+
"location": "import",
|
|
163
|
+
"path": "./map-controls.interfaces"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
140
167
|
}];
|
|
141
168
|
}
|
|
169
|
+
static get methods() {
|
|
170
|
+
return {
|
|
171
|
+
"toggleVisibility": {
|
|
172
|
+
"complexType": {
|
|
173
|
+
"signature": "(e: MouseEvent | KeyboardEvent) => Promise<void>",
|
|
174
|
+
"parameters": [{
|
|
175
|
+
"tags": [],
|
|
176
|
+
"text": ""
|
|
177
|
+
}],
|
|
178
|
+
"references": {
|
|
179
|
+
"Promise": {
|
|
180
|
+
"location": "global"
|
|
181
|
+
},
|
|
182
|
+
"MouseEvent": {
|
|
183
|
+
"location": "global"
|
|
184
|
+
},
|
|
185
|
+
"KeyboardEvent": {
|
|
186
|
+
"location": "global"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"return": "Promise<void>"
|
|
190
|
+
},
|
|
191
|
+
"docs": {
|
|
192
|
+
"text": "",
|
|
193
|
+
"tags": []
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
}
|
|
142
198
|
static get watchers() {
|
|
143
199
|
return [{
|
|
144
200
|
"propName": "open",
|
|
@@ -9,6 +9,7 @@ export class Selectable {
|
|
|
9
9
|
this.value = undefined;
|
|
10
10
|
this.invalid = undefined;
|
|
11
11
|
this.describedById = undefined;
|
|
12
|
+
this.labelledById = undefined;
|
|
12
13
|
this.disabled = undefined;
|
|
13
14
|
this.required = undefined;
|
|
14
15
|
this.checked = undefined;
|
|
@@ -41,7 +42,7 @@ export class Selectable {
|
|
|
41
42
|
render() {
|
|
42
43
|
var _a;
|
|
43
44
|
const hasInfo = !!this.host.querySelector('[slot="info"]');
|
|
44
|
-
return (h(Fragment, null, h("div", { class: "dso-selectable-input-wrapper" }, h("input", { type: this.type, id: this.getIdentifier(), value: this.value, name: this.name, "aria-invalid": (_a = this.invalid) === null || _a === void 0 ? void 0 : _a.toString(), "aria-describedby": hasInfo && this.infoFixed ? this.describedById : undefined, disabled: this.disabled, required: this.required, checked: this.checked, onChange: (e) => this.dsoChange.emit(e), ref: (el) => (this.input = el) }), h("label", { htmlFor: this.getIdentifier() }, h("slot", null))), hasInfo && (h(Fragment, null, !this.infoFixed && (h("dso-info-button", { active: this.infoActive, onDsoToggle: (e) => (this.infoActive = e.detail.active) })), h("dso-info", { id: hasInfo && this.infoFixed ? this.describedById : undefined, fixed: this.infoFixed, active: this.infoActive, onDsoClose: () => (this.infoActive = false) }, h("div", null, h("slot", { name: "info" })))))));
|
|
45
|
+
return (h(Fragment, null, h("div", { class: "dso-selectable-input-wrapper" }, h("input", { type: this.type, id: this.getIdentifier(), value: this.value, name: this.name, "aria-invalid": (_a = this.invalid) === null || _a === void 0 ? void 0 : _a.toString(), "aria-describedby": hasInfo && this.infoFixed ? this.describedById : undefined, "aria-labelledBy": this.labelledById, disabled: this.disabled, required: this.required, checked: this.checked, onChange: (e) => this.dsoChange.emit(e), ref: (el) => (this.input = el) }), !this.labelledById ? (h("label", { htmlFor: this.getIdentifier() }, h("slot", null))) : (h("label", null))), hasInfo && (h(Fragment, null, !this.infoFixed && (h("dso-info-button", { active: this.infoActive, onDsoToggle: (e) => (this.infoActive = e.detail.active) })), h("dso-info", { id: hasInfo && this.infoFixed ? this.describedById : undefined, fixed: this.infoFixed, active: this.infoActive, onDsoClose: () => (this.infoActive = false) }, h("div", null, h("slot", { name: "info" })))))));
|
|
45
46
|
}
|
|
46
47
|
getIdentifier() {
|
|
47
48
|
var _a;
|
|
@@ -163,6 +164,23 @@ export class Selectable {
|
|
|
163
164
|
"attribute": "described-by-id",
|
|
164
165
|
"reflect": false
|
|
165
166
|
},
|
|
167
|
+
"labelledById": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"mutable": false,
|
|
170
|
+
"complexType": {
|
|
171
|
+
"original": "string",
|
|
172
|
+
"resolved": "string | undefined",
|
|
173
|
+
"references": {}
|
|
174
|
+
},
|
|
175
|
+
"required": false,
|
|
176
|
+
"optional": true,
|
|
177
|
+
"docs": {
|
|
178
|
+
"tags": [],
|
|
179
|
+
"text": ""
|
|
180
|
+
},
|
|
181
|
+
"attribute": "labelled-by-id",
|
|
182
|
+
"reflect": false
|
|
183
|
+
},
|
|
166
184
|
"disabled": {
|
|
167
185
|
"type": "boolean",
|
|
168
186
|
"mutable": false,
|
|
@@ -2,15 +2,9 @@ import { beforeWrite, createPopper } from "@popperjs/core";
|
|
|
2
2
|
import maxSize from "popper-max-size-modifier";
|
|
3
3
|
import { h, Host } from "@stencil/core";
|
|
4
4
|
import clsx from "clsx";
|
|
5
|
+
import { hasOverflow } from "../../utils/has-overflow";
|
|
5
6
|
// Keep const in sync with $tooltip-transition-duration in dso-toolkit/src/components/tooltip/tooltip.scss tooltip_root() mixin
|
|
6
7
|
const transitionDuration = 150;
|
|
7
|
-
function hasOverflow(el) {
|
|
8
|
-
const style = window.getComputedStyle(el);
|
|
9
|
-
const overflowX = style.getPropertyValue("overflow-x");
|
|
10
|
-
const overflowY = style.getPropertyValue("overflow-y");
|
|
11
|
-
const overflowValues = ["hidden", "clip"];
|
|
12
|
-
return overflowValues.indexOf(overflowX) !== -1 || overflowValues.indexOf(overflowY) !== -1;
|
|
13
|
-
}
|
|
14
8
|
export class Tooltip {
|
|
15
9
|
constructor() {
|
|
16
10
|
this.applyMaxSize = {
|
package/dist/collection/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export * from "./components/header/header.interfaces";
|
|
|
8
8
|
export * from "./components/info-button/info-button.interfaces";
|
|
9
9
|
export * from "./components/list-button/list-button.interfaces";
|
|
10
10
|
export * from "./components/map-base-layers/map-base-layers.interfaces";
|
|
11
|
+
export * from "./components/map-controls/map-controls.interfaces";
|
|
11
12
|
export * from "./components/map-overlays/map-overlays.interfaces";
|
|
12
13
|
export * from "./components/modal/modal.interfaces";
|
|
13
14
|
export * from "./components/ozon-content/ozon-content.interfaces";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function hasOverflow(el) {
|
|
2
|
+
const style = window.getComputedStyle(el);
|
|
3
|
+
const overflowX = style.getPropertyValue("overflow-x");
|
|
4
|
+
const overflowY = style.getPropertyValue("overflow-y");
|
|
5
|
+
const overflowValues = ["hidden", "clip"];
|
|
6
|
+
return overflowValues.indexOf(overflowX) !== -1 || overflowValues.indexOf(overflowY) !== -1;
|
|
7
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { t as tabbable } from './index.esm.js';
|
|
3
|
+
import { h as hasOverflow, c as createPopper } from './has-overflow.js';
|
|
3
4
|
import { v as v4 } from './v4.js';
|
|
4
5
|
|
|
5
|
-
const dropdownMenuCss = ":host(:focus){outline:none}:host{display:inline-block
|
|
6
|
+
const dropdownMenuCss = ":host(:focus){outline:none}:host{display:inline-block}";
|
|
6
7
|
|
|
7
8
|
const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
8
9
|
constructor() {
|
|
@@ -45,6 +46,44 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
45
46
|
this.open = false;
|
|
46
47
|
this.dropdownAlign = "left";
|
|
47
48
|
this.checkable = false;
|
|
49
|
+
this.boundary = undefined;
|
|
50
|
+
this.strategy = "auto";
|
|
51
|
+
}
|
|
52
|
+
watchPosition() {
|
|
53
|
+
if (!this.popper) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.popper.setOptions({
|
|
57
|
+
placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
watchStrategy() {
|
|
61
|
+
this.setStrategy();
|
|
62
|
+
}
|
|
63
|
+
setStrategy() {
|
|
64
|
+
if (!this.popper) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (this.strategy === "absolute" || this.strategy === "fixed") {
|
|
68
|
+
this.popper.setOptions({
|
|
69
|
+
strategy: this.strategy,
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
let element = this.host;
|
|
74
|
+
const boundary = this.boundary || document;
|
|
75
|
+
while (element && element.parentNode !== boundary) {
|
|
76
|
+
element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;
|
|
77
|
+
if (element !== null && hasOverflow(element)) {
|
|
78
|
+
this.popper.setOptions({
|
|
79
|
+
strategy: "fixed",
|
|
80
|
+
});
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.popper.setOptions({
|
|
85
|
+
strategy: "absolute",
|
|
86
|
+
});
|
|
48
87
|
}
|
|
49
88
|
get button() {
|
|
50
89
|
const button = this.host.querySelector('button[slot="toggle"]');
|
|
@@ -77,8 +116,38 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
77
116
|
li.setAttribute("role", "none");
|
|
78
117
|
}
|
|
79
118
|
}
|
|
119
|
+
if (this.popper) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const dropdownOptionsElement = this.host.querySelector(".dso-dropdown-options");
|
|
123
|
+
if (!(dropdownOptionsElement instanceof HTMLElement)) {
|
|
124
|
+
throw new Error("dropdown options element is not instanceof HTMLElement");
|
|
125
|
+
}
|
|
126
|
+
this.popper = createPopper(this.button, dropdownOptionsElement, {
|
|
127
|
+
placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
|
|
128
|
+
modifiers: [
|
|
129
|
+
{
|
|
130
|
+
name: "offset",
|
|
131
|
+
options: {
|
|
132
|
+
offset: [0, 2], // 2px margin between button and options
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: "preventOverflow",
|
|
137
|
+
options: {
|
|
138
|
+
boundary: this.boundary ? document.querySelector(this.boundary) : null,
|
|
139
|
+
},
|
|
140
|
+
enabled: this.boundary !== undefined,
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
});
|
|
80
144
|
}
|
|
81
145
|
componentDidRender() {
|
|
146
|
+
var _a;
|
|
147
|
+
this.setStrategy();
|
|
148
|
+
if (this.open) {
|
|
149
|
+
(_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
|
|
150
|
+
}
|
|
82
151
|
for (const li of Array.from(this.host.getElementsByTagName("li"))) {
|
|
83
152
|
for (const tab of tabbable(li)) {
|
|
84
153
|
tab.setAttribute("role", this.checkable ? "menuitemradio" : "menuitem");
|
|
@@ -99,6 +168,10 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
99
168
|
}
|
|
100
169
|
});
|
|
101
170
|
}
|
|
171
|
+
disconnectedCallback() {
|
|
172
|
+
var _a;
|
|
173
|
+
(_a = this.popper) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
174
|
+
}
|
|
102
175
|
getActiveElement(root = document) {
|
|
103
176
|
const activeEl = root.activeElement;
|
|
104
177
|
if (!activeEl) {
|
|
@@ -125,11 +198,17 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
125
198
|
return (h(Host, { onFocusout: this.focusOutListener, tabindex: this.open ? "-1" : undefined }, h("slot", { name: "toggle" }), h("div", { hidden: !this.open }, h("slot", null))));
|
|
126
199
|
}
|
|
127
200
|
get host() { return this; }
|
|
201
|
+
static get watchers() { return {
|
|
202
|
+
"dropdownAlign": ["watchPosition"],
|
|
203
|
+
"strategy": ["watchStrategy"]
|
|
204
|
+
}; }
|
|
128
205
|
static get style() { return dropdownMenuCss; }
|
|
129
206
|
}, [1, "dso-dropdown-menu", {
|
|
130
207
|
"open": [1540],
|
|
131
208
|
"dropdownAlign": [1, "dropdown-align"],
|
|
132
|
-
"checkable": [4]
|
|
209
|
+
"checkable": [4],
|
|
210
|
+
"boundary": [1],
|
|
211
|
+
"strategy": [1]
|
|
133
212
|
}]);
|
|
134
213
|
function defineCustomElement() {
|
|
135
214
|
if (typeof customElements === "undefined") {
|