xv-webcomponents 1.17.19-dev.0 → 1.17.21-qa.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/cjs/loader.cjs.js +1 -1
- package/dist/cjs/maplibre-gl-MCSOKSuo.js +870 -0
- package/dist/cjs/{xv-accordion-v2_48.cjs.entry.js → xv-accordion-v2_49.cjs.entry.js} +457 -56
- package/dist/cjs/xv-header-next.cjs.entry.js +1 -1
- package/dist/cjs/xv-mega-menu-next.cjs.entry.js +2 -2
- package/dist/cjs/xv-webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/xv-accordion/xv-accordion.js +1 -1
- package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +1 -1
- package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +1 -1
- package/dist/collection/components/xv-button/xv-button.js +2 -2
- package/dist/collection/components/xv-button-group/xv-button-group.js +1 -1
- package/dist/collection/components/xv-card/xv-card.js +1 -1
- package/dist/collection/components/xv-checkbox/xv-checkbox.js +2 -2
- package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.js +1 -1
- package/dist/collection/components/xv-content-switcher/xv-content-switcher.js +2 -2
- package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +1 -1
- package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +2 -2
- package/dist/collection/components/xv-data-table/xv-data-table.js +1 -1
- package/dist/collection/components/xv-datepicker/xv-datepicker.js +2 -2
- package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
- package/dist/collection/components/xv-dropdown/xv-dropdown.js +1 -1
- package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +1 -1
- package/dist/collection/components/xv-footer/xv-footer.js +1 -1
- package/dist/collection/components/xv-geo-map/xv-geo-map.css +866 -0
- package/dist/collection/components/xv-geo-map/xv-geo-map.js +790 -0
- package/dist/collection/components/xv-header/xv-header.js +1 -1
- package/dist/collection/components/xv-header-next/xv-header-next.js +1 -1
- package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
- package/dist/collection/components/xv-link/xv-link.js +1 -1
- package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
- package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +2 -2
- package/dist/collection/components/xv-modal/xv-modal.js +1 -1
- package/dist/collection/components/xv-notification/xv-notification.js +1 -1
- package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
- package/dist/collection/components/xv-pagination/xv-pagination.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
- package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
- package/dist/collection/components/xv-radio/xv-radio.js +2 -2
- package/dist/collection/components/xv-slider/xv-slider.js +1 -1
- package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
- package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
- package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
- package/dist/collection/components/xv-table/xv-table.js +1 -1
- package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
- package/dist/collection/components/xv-tag/xv-tag.js +1 -1
- package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +2 -2
- package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
- package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
- package/dist/collection/components/xv-tile/xv-tile.js +2 -2
- package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
- package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
- package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/maplibre-gl-CT7CGYe6.js +813 -0
- package/dist/esm/maplibre-gl-shared.mjs +6 -0
- package/dist/esm/maplibre-gl-worker.mjs +6 -0
- package/dist/esm/{xv-accordion-v2_48.entry.js → xv-accordion-v2_49.entry.js} +457 -57
- package/dist/esm/xv-header-next.entry.js +1 -1
- package/dist/esm/xv-mega-menu-next.entry.js +2 -2
- package/dist/esm/xv-webcomponents.js +1 -1
- package/dist/types/components/xv-geo-map/xv-geo-map.d.ts +90 -0
- package/dist/types/components.d.ts +193 -0
- package/dist/xv-webcomponents/{p-6d4d397f.entry.js → p-3c3179fb.entry.js} +2 -2
- package/dist/xv-webcomponents/{p-38e5f1e1.entry.js → p-597b353d.entry.js} +1 -1
- package/dist/xv-webcomponents/p-CT7CGYe6.js +9 -0
- package/dist/xv-webcomponents/{p-7e05cb50.entry.js → p-ef3c818d.entry.js} +1 -1
- package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
- package/package.json +2 -1
|
@@ -197,7 +197,7 @@ const XvHeaderNext = class {
|
|
|
197
197
|
render() {
|
|
198
198
|
var _a, _b, _c, _d, _e;
|
|
199
199
|
const isXvBrand = (((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a['WhitelabelName']) || 'Xv') === 'Xv';
|
|
200
|
-
return (h("header", { key: '
|
|
200
|
+
return (h("header", { key: 'b48d214490edf361f6b220fc090f8e6c2b99c884', class: "header" }, h("div", { key: 'e6d9650216645d75192afe10b51ba5e69d2c1f9d', class: "header-wrapper" }, h("div", { key: '7ab68479cdbd55d094ea69a1bbe9b51ae6127d00', class: "xv-container" }, h("div", { key: '556084e4d6872c1509a6ba18ca681e7a6e6a9c2d', class: "header-top" }, h("div", { key: '1384409e66e06ece431f3007368aa9aef540e379', class: "header-top--left" }, h("xv-button-v2", { key: 'f61b2d4889ebd8b4018280b061d22114127ffb4b', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: '549dae7f03a491d3943bd6dc1a72951fd59ac05c', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (h("a", { key: 'c0c7242adb9062f294d430be652da3a7b37bd720', href: `${window.location.origin}/` }, h("picture", { key: '3ac09f13010be81b9f129611f58fa350aae2f2af' }, h("source", { key: 'cf8ad754d3252932ffd1d440c67aa2d66db3f549', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: 'a06b1a3166a14611bc57644f15fd05a0f2ea0f0d', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: '0d6aad9664a46cc81e4cd42bc106bd6e888384d1', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: '6f26891bc4b4129c6e6d9e382f536bed2f2dd3c5', class: "header-top--right" }, this._renderLocaleSwitcher(), this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: '277dff306742d2f6ea5b7b7cee18e11d62d709e7' }, h("xv-link-v2", { key: '3c89ce7a5b8cf42198095fddf93ea460ca988133', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: 'a0db3b7ced4bbddb3adb088b7de4500fc0921ac6', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '0f53ebb374def8c4c5c165e05ed813c38f2f699d', class: "header-icon far fa-envelope" }), h("span", { key: '67a185f4b3c8857e0622854f334850e243848ac4', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: '29df440d481a46a48a4cc3e4b70f69a8c19343e0' }, h("xv-link-v2", { key: 'fa87f67701f3a0993ef500faf47e2a9cc461da2b', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: '77ec0195733c7b667b3d9bd7d0d626a0398dc1da', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '47bed8e829f09b4c42be180a1af6cfa90c69e101', class: "header-icon far fa-question-circle" }), h("span", { key: '159caad49c07fc597869aa7a9fc6dd6f2412e75f', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), h("div", { key: 'd3ca6bb6db99be78d201c9661e144050673aeae8', class: "header-wrapper--bg" }, h("div", { key: '91f9ed0d8d7b4ffd00f0930b4b475a2c205b385a', class: "xv-container" }, h("xv-mega-menu-next", { key: '3d0de4a89e30fbc2f0179cab5cad1e9168ad4c09', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu, menuData: this.menuData })))), h("xv-login-modal", { key: 'b643719acdc9d2b0c6ca854af2b329eb134fd4b9', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
|
|
201
201
|
}
|
|
202
202
|
get el() { return getElement(this); }
|
|
203
203
|
};
|
|
@@ -88,7 +88,7 @@ const XvMegaMenuNext = class {
|
|
|
88
88
|
void this.fetchMenuData();
|
|
89
89
|
}
|
|
90
90
|
render() {
|
|
91
|
-
return (h(Host, { key: '
|
|
91
|
+
return (h(Host, { key: '7512e8b076400cb8163521fc52d1a49d59f8e89a' }, h("nav", { key: '1d815a36703d31151cb8f5a3e0842d18292b4d07', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (h("div", { key: '0124dc0c4a86e598e0c0e0bb37eccbbaa85cfc23', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: 'cff56f8f8afc4c1cfad991bbb2f7ca607f8a1980' }))), h("ul", { key: 'aa95a547fd396875b8c5019aaa31f7bc3c309bec', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
|
|
92
92
|
var _a, _b;
|
|
93
93
|
return (h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, menuItem.route ? (h("xv-link-v2", { variant: "ghost", href: menuItem.route.route }, h("p", { class: "menu-item-label" }, (_b = menuItem.route) === null || _b === void 0 ? void 0 : _b.label))) : (h(Fragment, null, h("p", { class: "menu-item-label", onClick: () => this.setActiveItem(menuItem) }, menuItem === null || menuItem === void 0 ? void 0 : menuItem.label), h("ul", { class: "menu-item-groups" }, menuItem.groups.map((group) => {
|
|
94
94
|
var _a;
|
|
@@ -98,7 +98,7 @@ const XvMegaMenuNext = class {
|
|
|
98
98
|
} }, h("div", { class: "group-menus" }, h("ul", { class: { 'group-menus-categories': true, inline: group.layout === 'inline' } }, group.categories.map((category) => (h("li", { class: "category" }, h("p", { class: "category-label" }, category.label), h("ul", { class: "category-routes" }, category.routes.map((route) => (h("li", { class: "route" }, h("xv-link-v2", { size: "lg", variant: "ghost", href: route.route || '#' }, route.label), route.tag && (h("xv-tag-v2", { class: "route-tag", size: "sm", color: "#161616", bg: "#E0E0E0" }, route.tag)))))))))), h("ul", { class: "group-menus-actions" }, group.actions.map((action) => (h("li", { class: "action" }, action.type === 'link' && (h("xv-link-v2", { variant: "standalone", href: action === null || action === void 0 ? void 0 : action.url }, action.label, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))), action.type === 'button' &&
|
|
99
99
|
h("xv-button-v2", { onClick: () => this.navActionClick(action), block: true, variant: "tertiary" }, action.label)))))), (group === null || group === void 0 ? void 0 : group.card) && (h("div", { class: "group-card" }, h("xv-card-v2", { media: this.applicationContext !== 'Komsa' ? group.card.image : undefined, variant: this.isMobile ? 'horizontal' : 'vertical' }, h("h5", { slot: "header", class: "group-card-title" }, group.card.title), h("p", { slot: "body", class: "group-card-desc" }, group.card.description), group.card.linkLabel && (h("xv-link-v2", { slot: "footer", variant: "standalone", href: group.card.linkUrl || '#' }, group.card.linkLabel, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))))))))));
|
|
100
100
|
}))))));
|
|
101
|
-
}), h("li", { key: '
|
|
101
|
+
}), h("li", { key: 'af4f90f476c9802a95ec3c3bd46f3bdbe07ea03b', class: "menu--right" }, h("slot", { key: '0647716dc6c564cd3b1d3a7558f91cf88216d587', name: "menu-right" })), this.open && (h("li", { key: '4c2e4d8e40dec525c15e51a5c85ed080499329e2', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
|
|
102
102
|
}
|
|
103
103
|
get el() { return getElement(this); }
|
|
104
104
|
static get watchers() { return {
|
|
@@ -16,5 +16,5 @@ var patchBrowser = () => {
|
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(async (options) => {
|
|
18
18
|
await globalScripts();
|
|
19
|
-
return bootstrapLazy([["xv-accordion-v2_48",[[0,"xv-header",{"metaNav":[32],"orgUnit":[32],"baseUrl":[32],"loading":[32],"mobMenuOpen":[32],"suggestions":[32],"suggestionsLoading":[32],"notifications":[32],"showLoginModal":[32]},[[8,"xv:orgUnitChange","handleOrgUnitChange"],[8,"xv:metaNav-update","metaNavUpdate"]]],[257,"xv-dropdown-v2",{"search":[516],"disabled":[516],"multiple":[516],"required":[516],"loading":[516],"readonly":[516],"open":[1540],"error":[520],"label":[513],"helper":[513],"warning":[513],"placeholder":[513],"info":[1],"searchPlaceholder":[1,"search-placeholder"],"size":[1],"defaultValue":[8,"default-value"],"value":[1032],"variant":[1],"position":[1],"selected":[32],"selectedMap":[32],"resolvedPosition":[32]},[[0,"itemSelected","handleItemSelected"],[0,"keydown","handleKeyDown"]],{"open":[{"openChangeHandle":0}],"multiple":[{"multipleChangeHandle":0}],"value":[{"valueChange":1}]}],[257,"xv-data-table-row",{"variant":[1],"name":[1025],"collapse":[1],"collapsable":[516],"checked":[1028],"partial":[1028],"hover":[1028],"group":[4],"header":[4],"footer":[4],"disabled":[4],"readonly":[4],"required":[4],"value":[8],"collapsed":[32],"reorderable":[32],"reorderHandleMode":[32],"close":[64]}],[65,"xv-datepicker",{"value":[1040],"variant":[1],"label":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[4],"size":[513],"min":[1],"max":[1],"disabledDates":[16],"month":[32],"days":[32],"open":[32],"localError":[32]},[[4,"click","handleClickOutside"]],{"open":[{"openChange":0}],"month":[{"getCalendarGrid":0}],"min":[{"getCalendarGrid":0}],"max":[{"getCalendarGrid":0}],"disabledDates":[{"getCalendarGrid":0}],"value":[{"handleValueChange":0}]}],[1,"xv-file-uploader",{"label":[1],"description":[1],"addText":[1,"add-text"],"variant":[1],"size":[1],"accept":[16],"buttonVariant":[1,"button-variant"],"maxFileSizeMB":[2,"max-file-size-mb"],"maxFiles":[2,"max-files"],"multiple":[4],"disabled":[516],"files":[1040],"loadingStates":[1040],"error":[1537],"errors":[1040],"dragActive":[32],"errorMessages":[32],"clearFiles":[64]}],[65,"xv-number-input-v2",{"label":[1],"placeholder":[513],"name":[513],"value":[1538],"helper":[1],"error":[8],"warning":[8],"step":[2],"max":[2],"min":[2],"readonly":[4],"disabled":[4],"loading":[4],"block":[516],"size":[513]}],[1,"xv-pagination",{"itemsPerPage":[1026,"items-per-page"],"itemsPerPageOptions":[1,"items-per-page-options"],"total":[2],"page":[1026],"size":[1],"block":[4],"variant":[1],"responsiveVariant":[16],"totalItems":[2,"total-items"],"currentVariant":[32]}],[257,"xv-table-v2-row",{"checked":[1540],"partial":[1540],"name":[1537],"value":[520],"hover":[1540],"readonly":[516],"required":[516],"disabled":[516],"header":[516],"variant":[1537]},null,{"checked":[{"checkedChangeHandle":0}]}],[1,"xv-tag-combobox",{"options":[16],"label":[1],"size":[1],"placeholder":[1],"allowCreate":[4,"allow-create"],"maxSuggestions":[2,"max-suggestions"],"disabled":[4],"loading":[4],"readonly":[4],"error":[8],"warning":[8],"helper":[1],"value":[16],"normalizedOptions":[32],"selected":[32],"inputValue":[32],"open":[32],"filtered":[32],"highlighted":[32],"focusInput":[64],"clear":[64]},null,{"options":[{"watchOptions":0}],"value":[{"watchValue":0}]}],[65,"xv-textarea",{"value":[1025],"name":[1],"label":[1],"placeholder":[1],"helper":[1],"info":[1],"error":[8],"warning":[8],"disabled":[4],"readonly":[4],"block":[4],"counterHide":[4,"counter-hide"],"noResize":[4,"no-resize"],"loading":[4],"max":[2],"rows":[2],"size":[513]}],[257,"xv-data-table",{"size":[1],"block":[520],"loading":[4],"columnWidths":[16],"multiple":[516],"hover":[4],"reorderable":[516],"reorderHandle":[513,"reorder-handle"]},null,{"reorderable":[{"reorderableChanged":0}],"reorderHandle":[{"reorderHandleChanged":0}]}],[257,"xv-dropdown-v2-item",{"disabled":[4],"value":[1544],"selected":[1540],"multiple":[516],"size":[513]},[[0,"click","handleClick"]]],[257,"xv-image-viewer",{"src":[1],"fullscreenSrc":[1,"fullscreen-src"],"alt":[1],"placeholder":[1],"lazy":[4],"isFullscreen":[32],"loaded":[32],"fullscreenLoaded":[32],"errored":[32]}],[257,"xv-tab-v2",{"label":[513],"disabled":[516],"loading":[516],"name":[8]}],[257,"xv-table-v2",{"size":[513],"hover":[516],"loading":[516],"colsSize":[16],"selected":[32],"selectedCount":[32]},[[0,"checkedChange","handleCheckedChange"]],{"colsSize":[{"setColsSizeTemplate":0}]}],[257,"xv-tabs-v2",{"active":[1544],"loading":[516],"variant":[1],"emptyMessage":[1,"empty-message"],"hideSingleTab":[4,"hide-single-tab"],"tabElements":[32],"showArrows":[32]},[[9,"resize","updateArrowVisibility"]]],[257,"xv-accordion-v2",{"multiple":[4],"xvId":[1,"xv-id"],"value":[1025],"opened":[32],"toggleItem":[64]},null,{"value":[{"onValueChange":0}]}],[257,"xv-accordion-v2-item",{"disabled":[4],"label":[1],"value":[1],"isOpen":[32]},[[16,"accordionChange","handleAccordionChange"]]],[260,"xv-breadcrumbs-v2"],[257,"xv-button-group-v2",{"variant":[513],"multiple":[516],"value":[1025]},[[0,"click","handleClick"]],{"value":[{"onSelectionInputChange":0}],"multiple":[{"onSelectionInputChange":0}]}],[257,"xv-content-switcher-item-v2",{"value":[520],"label":[513],"icon":[513],"disabled":[516]}],[257,"xv-content-switcher-v2",{"selected":[1544],"size":[513],"iconOnly":[516,"icon-only"],"disabled":[516],"block":[516],"controlled":[516],"items":[32]}],[257,"xv-data-table-collapse",{"collapsed":[1540],"setCollapsed":[64]}],[0,"xv-footer",{"data":[32]},[[8,"xv:metaNav-update","handleLoadData"]]],[257,"xv-progress-indicator-v2",{"progress":[514],"variant":[1],"size":[1]},null,{"progress":[{"updateChildItems":0}]}],[257,"xv-progress-indicator-v2-item",{"status":[1]}],[324,"xv-radio-v2",{"name":[1],"value":[1],"label":[1],"checked":[1028],"indeterminate":[4],"block":[4],"disabled":[4],"required":[4],"reverse":[4],"readonly":[4],"error":[8],"warning":[520],"helper":[1],"size":[1]},null,{"checked":[{"onCheckedChange":0}]}],[65,"xv-slider-v2",{"label":[1],"name":[1],"min":[2],"max":[2],"value":[1026],"step":[2],"disabled":[4],"readonly":[4],"notEditable":[4,"not-editable"]}],[257,"xv-table-v2-expand",{"open":[1540],"disabled":[516]}],[260,"xv-tile",{"variant":[513],"label":[1],"error":[4],"multiple":[4],"disabled":[4],"block":[4],"name":[1],"message":[513],"value":[1025],"checked":[1028],"readonly":[1028]},[[4,"tileChange","tileChangeHandle"],[0,"click","handleClick"]]],[321,"xv-toggle",{"label":[1],"value":[1],"name":[1],"checked":[1540],"disabled":[4],"readonly":[4],"size":[513],"block":[4]}],[257,"xv-mega-menu",{"open":[1540],"activeItem":[32],"activeGroup":[32],"menuItems":[32],"applicationContext":[32],"menuLoading":[32]},[[4,"click","handleClickOutside"]]],[257,"xv-data-table-cell",{"name":[1025],"sort":[1537],"multiline":[520],"width":[1],"align":[1],"tooltip":[1]},[[0,"click","handleSort"]]],[257,"xv-table-v2-cell",{"multiline":[516],"name":[1537],"align":[513],"sort":[1537]},[[0,"click","handleSort"]]],[2,"xv-login-modal",{"visible":[4],"urls":[32],"loading":[32],"errorMessage":[32]}],[257,"xv-overflow-menu-v2",{"open":[1540],"disabled":[516],"position":[1],"alignment":[1],"size":[1],"tooltip":[1],"anchor":[1],"activeId":[32],"openMenu":[64],"closeMenu":[64],"toggleMenu":[64]},[[0,"keydown","handleKeyDown"]],{"open":[{"openChangeHandle":0}],"anchor":[{"anchorChangeHandle":0}]}],[257,"xv-overflow-menu-v2-item",{"disabled":[516],"value":[520],"variant":[513],"clickable":[4],"href":[1],"target":[1],"divider":[516],"hasIcon":[32],"hasIconEnd":[32]},[[0,"click","handleClick"]]],[257,"xv-toggle-tip",{"open":[1540],"autoSize":[516,"auto-size"],"block":[4],"position":[1],"setPopover":[64]},[[4,"click","handleClickOutside"],[0,"keydown","handleKeyDown"]],{"open":[{"openChangeHandle":0}]}],[257,"xv-modal-v2",{"open":[1540],"permanent":[516],"size":[513],"overflow":[516],"loading":[4],"openModal":[64],"closeModal":[64]}],[257,"xv-notification-v2",{"variant":[513],"dismissible":[516]}],[65,"xv-text-input-v2",{"type":[1],"label":[1],"placeholder":[513],"name":[513],"value":[1025],"autocomplete":[1],"helper":[1],"error":[8],"warning":[8],"readonly":[4],"disabled":[4],"loading":[4],"block":[516],"clearable":[516],"size":[513],"isPasswordVisible":[32]}],[257,"xv-card-v2",{"variant":[1],"media":[1],"header":[1],"body":[1],"footer":[1]}],[257,"xv-link-v2",{"href":[1],"target":[1],"disabled":[4],"size":[1],"variant":[1]}],[321,"xv-checkbox-v2",{"checked":[1540],"indeterminate":[516],"disabled":[516],"name":[513],"value":[513],"readonly":[516],"required":[516],"partial":[516],"label":[1],"size":[513],"error":[520],"align":[513],"hasFocus":[32]},null,{"checked":[{"onCheckedChange":0}]}],[257,"xv-tag-v2",{"size":[1],"color":[1],"bg":[1],"disabled":[4],"closeable":[4]}],[260,"xv-tooltip-v2",{"message":[1],"position":[1],"block":[4],"dashed":[4]},[[1,"mouseenter","onMouseEnter"],[1,"mouseleave","onMouseLeave"]]],[321,"xv-button-v2",{"value":[513],"name":[1],"label":[513],"variant":[513],"size":[513],"disabled":[516],"loading":[516],"block":[516],"type":[513],"active":[516],"hasLeftIcon":[32],"hasRightIcon":[32],"hasContent":[32]}],[257,"xv-loader-v2",{"show":[4],"variant":[1],"size":[1]}]]],["xv-mega-menu-next",[[257,"xv-mega-menu-next",{"open":[1540],"menuData":[1,"menu-data"],"activeItem":[32],"activeGroup":[32],"menuItems":[32],"applicationContext":[32],"menuLoading":[32]},[[4,"click","handleClickOutside"]],{"menuData":[{"onMenuDataChange":0}]}]]],["xv-header-next",[[0,"xv-header-next",{"menuData":[1,"menu-data"],"currentLocale":[1,"current-locale"],"locales":[1],"metaNav":[32],"orgUnit":[32],"baseUrl":[32],"loading":[32],"mobMenuOpen":[32],"suggestions":[32],"suggestionsLoading":[32],"notifications":[32],"showLoginModal":[32]},[[8,"xv:orgUnitChange","handleOrgUnitChange"],[8,"xv:metaNav-update","metaNavUpdate"]]]]]], options);
|
|
19
|
+
return bootstrapLazy(JSON.parse("[[\"xv-accordion-v2_49\",[[0,\"xv-header\",{\"metaNav\":[32],\"orgUnit\":[32],\"baseUrl\":[32],\"loading\":[32],\"mobMenuOpen\":[32],\"suggestions\":[32],\"suggestionsLoading\":[32],\"notifications\":[32],\"showLoginModal\":[32]},[[8,\"xv:orgUnitChange\",\"handleOrgUnitChange\"],[8,\"xv:metaNav-update\",\"metaNavUpdate\"]]],[257,\"xv-dropdown-v2\",{\"search\":[516],\"disabled\":[516],\"multiple\":[516],\"required\":[516],\"loading\":[516],\"readonly\":[516],\"open\":[1540],\"error\":[520],\"label\":[513],\"helper\":[513],\"warning\":[513],\"placeholder\":[513],\"info\":[1],\"searchPlaceholder\":[1,\"search-placeholder\"],\"size\":[1],\"defaultValue\":[8,\"default-value\"],\"value\":[1032],\"variant\":[1],\"position\":[1],\"selected\":[32],\"selectedMap\":[32],\"resolvedPosition\":[32]},[[0,\"itemSelected\",\"handleItemSelected\"],[0,\"keydown\",\"handleKeyDown\"]],{\"open\":[{\"openChangeHandle\":0}],\"multiple\":[{\"multipleChangeHandle\":0}],\"value\":[{\"valueChange\":1}]}],[257,\"xv-data-table-row\",{\"variant\":[1],\"name\":[1025],\"collapse\":[1],\"collapsable\":[516],\"checked\":[1028],\"partial\":[1028],\"hover\":[1028],\"group\":[4],\"header\":[4],\"footer\":[4],\"disabled\":[4],\"readonly\":[4],\"required\":[4],\"value\":[8],\"collapsed\":[32],\"reorderable\":[32],\"reorderHandleMode\":[32],\"close\":[64]}],[65,\"xv-datepicker\",{\"value\":[1040],\"variant\":[1],\"label\":[1],\"helper\":[1],\"error\":[8],\"warning\":[8],\"readonly\":[4],\"disabled\":[4],\"loading\":[4],\"block\":[4],\"size\":[513],\"min\":[1],\"max\":[1],\"disabledDates\":[16],\"month\":[32],\"days\":[32],\"open\":[32],\"localError\":[32]},[[4,\"click\",\"handleClickOutside\"]],{\"open\":[{\"openChange\":0}],\"month\":[{\"getCalendarGrid\":0}],\"min\":[{\"getCalendarGrid\":0}],\"max\":[{\"getCalendarGrid\":0}],\"disabledDates\":[{\"getCalendarGrid\":0}],\"value\":[{\"handleValueChange\":0}]}],[1,\"xv-file-uploader\",{\"label\":[1],\"description\":[1],\"addText\":[1,\"add-text\"],\"variant\":[1],\"size\":[1],\"accept\":[16],\"buttonVariant\":[1,\"button-variant\"],\"maxFileSizeMB\":[2,\"max-file-size-mb\"],\"maxFiles\":[2,\"max-files\"],\"multiple\":[4],\"disabled\":[516],\"files\":[1040],\"loadingStates\":[1040],\"error\":[1537],\"errors\":[1040],\"dragActive\":[32],\"errorMessages\":[32],\"clearFiles\":[64]}],[65,\"xv-number-input-v2\",{\"label\":[1],\"placeholder\":[513],\"name\":[513],\"value\":[1538],\"helper\":[1],\"error\":[8],\"warning\":[8],\"step\":[2],\"max\":[2],\"min\":[2],\"readonly\":[4],\"disabled\":[4],\"loading\":[4],\"block\":[516],\"size\":[513]}],[1,\"xv-pagination\",{\"itemsPerPage\":[1026,\"items-per-page\"],\"itemsPerPageOptions\":[1,\"items-per-page-options\"],\"total\":[2],\"page\":[1026],\"size\":[1],\"block\":[4],\"variant\":[1],\"responsiveVariant\":[16],\"totalItems\":[2,\"total-items\"],\"currentVariant\":[32]}],[257,\"xv-table-v2-row\",{\"checked\":[1540],\"partial\":[1540],\"name\":[1537],\"value\":[520],\"hover\":[1540],\"readonly\":[516],\"required\":[516],\"disabled\":[516],\"header\":[516],\"variant\":[1537]},null,{\"checked\":[{\"checkedChangeHandle\":0}]}],[1,\"xv-tag-combobox\",{\"options\":[16],\"label\":[1],\"size\":[1],\"placeholder\":[1],\"allowCreate\":[4,\"allow-create\"],\"maxSuggestions\":[2,\"max-suggestions\"],\"disabled\":[4],\"loading\":[4],\"readonly\":[4],\"error\":[8],\"warning\":[8],\"helper\":[1],\"value\":[16],\"normalizedOptions\":[32],\"selected\":[32],\"inputValue\":[32],\"open\":[32],\"filtered\":[32],\"highlighted\":[32],\"focusInput\":[64],\"clear\":[64]},null,{\"options\":[{\"watchOptions\":0}],\"value\":[{\"watchValue\":0}]}],[65,\"xv-textarea\",{\"value\":[1025],\"name\":[1],\"label\":[1],\"placeholder\":[1],\"helper\":[1],\"info\":[1],\"error\":[8],\"warning\":[8],\"disabled\":[4],\"readonly\":[4],\"block\":[4],\"counterHide\":[4,\"counter-hide\"],\"noResize\":[4,\"no-resize\"],\"loading\":[4],\"max\":[2],\"rows\":[2],\"size\":[513]}],[257,\"xv-data-table\",{\"size\":[1],\"block\":[520],\"loading\":[4],\"columnWidths\":[16],\"multiple\":[516],\"hover\":[4],\"reorderable\":[516],\"reorderHandle\":[513,\"reorder-handle\"]},null,{\"reorderable\":[{\"reorderableChanged\":0}],\"reorderHandle\":[{\"reorderHandleChanged\":0}]}],[257,\"xv-dropdown-v2-item\",{\"disabled\":[4],\"value\":[1544],\"selected\":[1540],\"multiple\":[516],\"size\":[513]},[[0,\"click\",\"handleClick\"]]],[1,\"xv-geo-map-v2\",{\"apiBase\":[1,\"api-base\"],\"indicator\":[1],\"indicatorLabel\":[1,\"indicator-label\"],\"level\":[1],\"resolution\":[1],\"tiles\":[1],\"attribution\":[1],\"centerLng\":[2,\"center-lng\"],\"centerLat\":[2,\"center-lat\"],\"zoom\":[2],\"selectZoom\":[2,\"select-zoom\"],\"lazy\":[4],\"ready\":[32],\"loadError\":[32],\"zoomGated\":[32],\"selectByRadius\":[64],\"selectPostalCodes\":[64],\"clearSelection\":[64]},null,{\"level\":[{\"levelChanged\":0}],\"selectZoom\":[{\"selectZoomChanged\":0}]}],[257,\"xv-image-viewer\",{\"src\":[1],\"fullscreenSrc\":[1,\"fullscreen-src\"],\"alt\":[1],\"placeholder\":[1],\"lazy\":[4],\"isFullscreen\":[32],\"loaded\":[32],\"fullscreenLoaded\":[32],\"errored\":[32]}],[257,\"xv-tab-v2\",{\"label\":[513],\"disabled\":[516],\"loading\":[516],\"name\":[8]}],[257,\"xv-table-v2\",{\"size\":[513],\"hover\":[516],\"loading\":[516],\"colsSize\":[16],\"selected\":[32],\"selectedCount\":[32]},[[0,\"checkedChange\",\"handleCheckedChange\"]],{\"colsSize\":[{\"setColsSizeTemplate\":0}]}],[257,\"xv-tabs-v2\",{\"active\":[1544],\"loading\":[516],\"variant\":[1],\"emptyMessage\":[1,\"empty-message\"],\"hideSingleTab\":[4,\"hide-single-tab\"],\"tabElements\":[32],\"showArrows\":[32]},[[9,\"resize\",\"updateArrowVisibility\"]]],[257,\"xv-accordion-v2\",{\"multiple\":[4],\"xvId\":[1,\"xv-id\"],\"value\":[1025],\"opened\":[32],\"toggleItem\":[64]},null,{\"value\":[{\"onValueChange\":0}]}],[257,\"xv-accordion-v2-item\",{\"disabled\":[4],\"label\":[1],\"value\":[1],\"isOpen\":[32]},[[16,\"accordionChange\",\"handleAccordionChange\"]]],[260,\"xv-breadcrumbs-v2\"],[257,\"xv-button-group-v2\",{\"variant\":[513],\"multiple\":[516],\"value\":[1025]},[[0,\"click\",\"handleClick\"]],{\"value\":[{\"onSelectionInputChange\":0}],\"multiple\":[{\"onSelectionInputChange\":0}]}],[257,\"xv-content-switcher-item-v2\",{\"value\":[520],\"label\":[513],\"icon\":[513],\"disabled\":[516]}],[257,\"xv-content-switcher-v2\",{\"selected\":[1544],\"size\":[513],\"iconOnly\":[516,\"icon-only\"],\"disabled\":[516],\"block\":[516],\"controlled\":[516],\"items\":[32]}],[257,\"xv-data-table-collapse\",{\"collapsed\":[1540],\"setCollapsed\":[64]}],[0,\"xv-footer\",{\"data\":[32]},[[8,\"xv:metaNav-update\",\"handleLoadData\"]]],[257,\"xv-progress-indicator-v2\",{\"progress\":[514],\"variant\":[1],\"size\":[1]},null,{\"progress\":[{\"updateChildItems\":0}]}],[257,\"xv-progress-indicator-v2-item\",{\"status\":[1]}],[324,\"xv-radio-v2\",{\"name\":[1],\"value\":[1],\"label\":[1],\"checked\":[1028],\"indeterminate\":[4],\"block\":[4],\"disabled\":[4],\"required\":[4],\"reverse\":[4],\"readonly\":[4],\"error\":[8],\"warning\":[520],\"helper\":[1],\"size\":[1]},null,{\"checked\":[{\"onCheckedChange\":0}]}],[65,\"xv-slider-v2\",{\"label\":[1],\"name\":[1],\"min\":[2],\"max\":[2],\"value\":[1026],\"step\":[2],\"disabled\":[4],\"readonly\":[4],\"notEditable\":[4,\"not-editable\"]}],[257,\"xv-table-v2-expand\",{\"open\":[1540],\"disabled\":[516]}],[260,\"xv-tile\",{\"variant\":[513],\"label\":[1],\"error\":[4],\"multiple\":[4],\"disabled\":[4],\"block\":[4],\"name\":[1],\"message\":[513],\"value\":[1025],\"checked\":[1028],\"readonly\":[1028]},[[4,\"tileChange\",\"tileChangeHandle\"],[0,\"click\",\"handleClick\"]]],[321,\"xv-toggle\",{\"label\":[1],\"value\":[1],\"name\":[1],\"checked\":[1540],\"disabled\":[4],\"readonly\":[4],\"size\":[513],\"block\":[4]}],[257,\"xv-mega-menu\",{\"open\":[1540],\"activeItem\":[32],\"activeGroup\":[32],\"menuItems\":[32],\"applicationContext\":[32],\"menuLoading\":[32]},[[4,\"click\",\"handleClickOutside\"]]],[257,\"xv-data-table-cell\",{\"name\":[1025],\"sort\":[1537],\"multiline\":[520],\"width\":[1],\"align\":[1],\"tooltip\":[1]},[[0,\"click\",\"handleSort\"]]],[257,\"xv-table-v2-cell\",{\"multiline\":[516],\"name\":[1537],\"align\":[513],\"sort\":[1537]},[[0,\"click\",\"handleSort\"]]],[2,\"xv-login-modal\",{\"visible\":[4],\"urls\":[32],\"loading\":[32],\"errorMessage\":[32]}],[257,\"xv-overflow-menu-v2\",{\"open\":[1540],\"disabled\":[516],\"position\":[1],\"alignment\":[1],\"size\":[1],\"tooltip\":[1],\"anchor\":[1],\"activeId\":[32],\"openMenu\":[64],\"closeMenu\":[64],\"toggleMenu\":[64]},[[0,\"keydown\",\"handleKeyDown\"]],{\"open\":[{\"openChangeHandle\":0}],\"anchor\":[{\"anchorChangeHandle\":0}]}],[257,\"xv-overflow-menu-v2-item\",{\"disabled\":[516],\"value\":[520],\"variant\":[513],\"clickable\":[4],\"href\":[1],\"target\":[1],\"divider\":[516],\"hasIcon\":[32],\"hasIconEnd\":[32]},[[0,\"click\",\"handleClick\"]]],[257,\"xv-toggle-tip\",{\"open\":[1540],\"autoSize\":[516,\"auto-size\"],\"block\":[4],\"position\":[1],\"setPopover\":[64]},[[4,\"click\",\"handleClickOutside\"],[0,\"keydown\",\"handleKeyDown\"]],{\"open\":[{\"openChangeHandle\":0}]}],[257,\"xv-modal-v2\",{\"open\":[1540],\"permanent\":[516],\"size\":[513],\"overflow\":[516],\"loading\":[4],\"openModal\":[64],\"closeModal\":[64]}],[257,\"xv-notification-v2\",{\"variant\":[513],\"dismissible\":[516]}],[65,\"xv-text-input-v2\",{\"type\":[1],\"label\":[1],\"placeholder\":[513],\"name\":[513],\"value\":[1025],\"autocomplete\":[1],\"helper\":[1],\"error\":[8],\"warning\":[8],\"readonly\":[4],\"disabled\":[4],\"loading\":[4],\"block\":[516],\"clearable\":[516],\"size\":[513],\"isPasswordVisible\":[32]}],[257,\"xv-card-v2\",{\"variant\":[1],\"media\":[1],\"header\":[1],\"body\":[1],\"footer\":[1]}],[257,\"xv-link-v2\",{\"href\":[1],\"target\":[1],\"disabled\":[4],\"size\":[1],\"variant\":[1]}],[321,\"xv-checkbox-v2\",{\"checked\":[1540],\"indeterminate\":[516],\"disabled\":[516],\"name\":[513],\"value\":[513],\"readonly\":[516],\"required\":[516],\"partial\":[516],\"label\":[1],\"size\":[513],\"error\":[520],\"align\":[513],\"hasFocus\":[32]},null,{\"checked\":[{\"onCheckedChange\":0}]}],[257,\"xv-tag-v2\",{\"size\":[1],\"color\":[1],\"bg\":[1],\"disabled\":[4],\"closeable\":[4]}],[260,\"xv-tooltip-v2\",{\"message\":[1],\"position\":[1],\"block\":[4],\"dashed\":[4]},[[1,\"mouseenter\",\"onMouseEnter\"],[1,\"mouseleave\",\"onMouseLeave\"]]],[321,\"xv-button-v2\",{\"value\":[513],\"name\":[1],\"label\":[513],\"variant\":[513],\"size\":[513],\"disabled\":[516],\"loading\":[516],\"block\":[516],\"type\":[513],\"active\":[516],\"hasLeftIcon\":[32],\"hasRightIcon\":[32],\"hasContent\":[32]}],[257,\"xv-loader-v2\",{\"show\":[4],\"variant\":[1],\"size\":[1]}]]],[\"xv-mega-menu-next\",[[257,\"xv-mega-menu-next\",{\"open\":[1540],\"menuData\":[1,\"menu-data\"],\"activeItem\":[32],\"activeGroup\":[32],\"menuItems\":[32],\"applicationContext\":[32],\"menuLoading\":[32]},[[4,\"click\",\"handleClickOutside\"]],{\"menuData\":[{\"onMenuDataChange\":0}]}]]],[\"xv-header-next\",[[0,\"xv-header-next\",{\"menuData\":[1,\"menu-data\"],\"currentLocale\":[1,\"current-locale\"],\"locales\":[1],\"metaNav\":[32],\"orgUnit\":[32],\"baseUrl\":[32],\"loading\":[32],\"mobMenuOpen\":[32],\"suggestions\":[32],\"suggestionsLoading\":[32],\"notifications\":[32],\"showLoginModal\":[32]},[[8,\"xv:orgUnitChange\",\"handleOrgUnitChange\"],[8,\"xv:metaNav-update\",\"metaNavUpdate\"]]]]]]"), options);
|
|
20
20
|
});
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export interface GeoMapSelection {
|
|
3
|
+
postalCodes: string[];
|
|
4
|
+
population: number | null;
|
|
5
|
+
unitIds: string[];
|
|
6
|
+
}
|
|
7
|
+
export type AtvMapSelection = GeoMapSelection;
|
|
8
|
+
/**
|
|
9
|
+
* Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
|
|
10
|
+
* Click a PLZ to (de)select it. No further UI — selection state and reach
|
|
11
|
+
* data are emitted via `changeSelection` for the host page to display.
|
|
12
|
+
*
|
|
13
|
+
* MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
|
|
14
|
+
* the viewport, so the host page's initial load stays untouched.
|
|
15
|
+
*/
|
|
16
|
+
export declare class XvGeoMap {
|
|
17
|
+
el: HTMLElement;
|
|
18
|
+
/**
|
|
19
|
+
* Base URL of the geo API (Xv.Api v1/geo — contract-compatible with the XvGeoTool API).
|
|
20
|
+
* Default is the same-origin Front Door route, so no CORS is involved on crossvertise pages.
|
|
21
|
+
*/
|
|
22
|
+
apiBase: string;
|
|
23
|
+
/** Indicator whose per-unit values feed the tooltips and the emitted population sum (e.g. ATV_DEVICES) */
|
|
24
|
+
indicator: string;
|
|
25
|
+
/** Unit label shown behind the indicator value in the tooltip */
|
|
26
|
+
indicatorLabel: string;
|
|
27
|
+
/** Geo level to display and select: plz5, gemeinde, kreis, regbez, bundesland */
|
|
28
|
+
level: string;
|
|
29
|
+
/** switching the level (e.g. PLZ mode -> Bundesländer mode) resets all loaded data and the selection */
|
|
30
|
+
levelChanged(): void;
|
|
31
|
+
/** Shape resolution: medium = simplified geometry (snappy), high = originals */
|
|
32
|
+
resolution: 'medium' | 'high';
|
|
33
|
+
/**
|
|
34
|
+
* Raster tile URL template. Default: CARTO Positron — light, minimal, made for
|
|
35
|
+
* data overlays; fits the crossvertise design. For production traffic, license
|
|
36
|
+
* a tile plan (CARTO/MapTiler/Geofabrik) and set the keyed URL here.
|
|
37
|
+
*/
|
|
38
|
+
tiles: string;
|
|
39
|
+
attribution: string;
|
|
40
|
+
/** Initial map center */
|
|
41
|
+
centerLng: number;
|
|
42
|
+
centerLat: number;
|
|
43
|
+
zoom: number;
|
|
44
|
+
/** Minimum zoom before boundaries are loaded and selectable (use ~5 for bundesland, 9 for plz5) */
|
|
45
|
+
selectZoom: number;
|
|
46
|
+
selectZoomChanged(): void;
|
|
47
|
+
/** Load the map bundle only when scrolled near the viewport (default: true) */
|
|
48
|
+
lazy: boolean;
|
|
49
|
+
/** Selection changed: selected PLZs + population sum of the selection */
|
|
50
|
+
changeSelection: EventEmitter<GeoMapSelection>;
|
|
51
|
+
/** Map finished initializing */
|
|
52
|
+
mapReady: EventEmitter<void>;
|
|
53
|
+
private ready;
|
|
54
|
+
private loadError;
|
|
55
|
+
private zoomGated;
|
|
56
|
+
private observer?;
|
|
57
|
+
private mapContainer?;
|
|
58
|
+
private map?;
|
|
59
|
+
private initStarted;
|
|
60
|
+
private resolveReady;
|
|
61
|
+
private readyPromise;
|
|
62
|
+
private units;
|
|
63
|
+
private selected;
|
|
64
|
+
private populations;
|
|
65
|
+
private fetchedBoxes;
|
|
66
|
+
private fetchSeq;
|
|
67
|
+
private popSeq;
|
|
68
|
+
private popup?;
|
|
69
|
+
componentDidLoad(): void;
|
|
70
|
+
disconnectedCallback(): void;
|
|
71
|
+
private initMap;
|
|
72
|
+
private refreshUnits;
|
|
73
|
+
/** fetch the configured indicator per unit for hover tooltips (fire-and-forget) */
|
|
74
|
+
private loadPopulations;
|
|
75
|
+
private renderUnits;
|
|
76
|
+
private toggleUnit;
|
|
77
|
+
private updateSelectedFilter;
|
|
78
|
+
private emitSelection;
|
|
79
|
+
/** Select all PLZs within `km` around a start PLZ ("Umkreis"). Replaces the selection unless `add` is true. */
|
|
80
|
+
selectByRadius(startPlz: string, km: number, add?: boolean): Promise<GeoMapSelection | null>;
|
|
81
|
+
/** Select an explicit list of PLZs ("PLZ-Liste" paste, query-param restore). Replaces the selection unless `add` is true. */
|
|
82
|
+
selectPostalCodes(codes: string[], add?: boolean): Promise<GeoMapSelection | null>;
|
|
83
|
+
/** Clear the whole selection. */
|
|
84
|
+
clearSelection(): Promise<void>;
|
|
85
|
+
/** A method call means the map is needed now — start loading even if it hasn't scrolled into view. */
|
|
86
|
+
private ensureReady;
|
|
87
|
+
private applySelection;
|
|
88
|
+
private fitToSelection;
|
|
89
|
+
render(): any;
|
|
90
|
+
}
|
|
@@ -9,6 +9,7 @@ import { SIZE_VAR_STR, XV_SORT_DIR } from "./types/enum";
|
|
|
9
9
|
import { XvDataTableCheck, XvDataTableReorder } from "./components/xv-data-table/_vars";
|
|
10
10
|
import { DropdownItemData } from "./components/xv-dropdown/_vars";
|
|
11
11
|
import { XvFileUploaderVariants } from "./components/xv-file-uploader/_vars";
|
|
12
|
+
import { GeoMapSelection } from "./components/xv-geo-map/xv-geo-map";
|
|
12
13
|
import { MenuItem } from "./components/xv-mega-menu-next/xv-mega-menu-next.model";
|
|
13
14
|
import { NOTIFICATION_VARIANTS_STR } from "./components/xv-notification/_vars";
|
|
14
15
|
import { OverflowMenuEvent, OverflowMenuVariant } from "./components/xv-overflow-menu/_vars";
|
|
@@ -22,6 +23,7 @@ export { SIZE_VAR_STR, XV_SORT_DIR } from "./types/enum";
|
|
|
22
23
|
export { XvDataTableCheck, XvDataTableReorder } from "./components/xv-data-table/_vars";
|
|
23
24
|
export { DropdownItemData } from "./components/xv-dropdown/_vars";
|
|
24
25
|
export { XvFileUploaderVariants } from "./components/xv-file-uploader/_vars";
|
|
26
|
+
export { GeoMapSelection } from "./components/xv-geo-map/xv-geo-map";
|
|
25
27
|
export { MenuItem } from "./components/xv-mega-menu-next/xv-mega-menu-next.model";
|
|
26
28
|
export { NOTIFICATION_VARIANTS_STR } from "./components/xv-notification/_vars";
|
|
27
29
|
export { OverflowMenuEvent, OverflowMenuVariant } from "./components/xv-overflow-menu/_vars";
|
|
@@ -513,6 +515,84 @@ export namespace Components {
|
|
|
513
515
|
}
|
|
514
516
|
interface XvFooter {
|
|
515
517
|
}
|
|
518
|
+
/**
|
|
519
|
+
* Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
|
|
520
|
+
* Click a PLZ to (de)select it. No further UI — selection state and reach
|
|
521
|
+
* data are emitted via `changeSelection` for the host page to display.
|
|
522
|
+
* MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
|
|
523
|
+
* the viewport, so the host page's initial load stays untouched.
|
|
524
|
+
*/
|
|
525
|
+
interface XvGeoMapV2 {
|
|
526
|
+
/**
|
|
527
|
+
* Base URL of the geo API (Xv.Api v1/geo — contract-compatible with the XvGeoTool API). Default is the same-origin Front Door route, so no CORS is involved on crossvertise pages.
|
|
528
|
+
* @default '/api-fd/v1/geo'
|
|
529
|
+
*/
|
|
530
|
+
"apiBase": string;
|
|
531
|
+
/**
|
|
532
|
+
* @default '© CARTO, © OpenStreetMap contributors'
|
|
533
|
+
*/
|
|
534
|
+
"attribution": string;
|
|
535
|
+
/**
|
|
536
|
+
* @default 51.16
|
|
537
|
+
*/
|
|
538
|
+
"centerLat": number;
|
|
539
|
+
/**
|
|
540
|
+
* Initial map center
|
|
541
|
+
* @default 10.45
|
|
542
|
+
*/
|
|
543
|
+
"centerLng": number;
|
|
544
|
+
/**
|
|
545
|
+
* Clear the whole selection.
|
|
546
|
+
*/
|
|
547
|
+
"clearSelection": () => Promise<void>;
|
|
548
|
+
/**
|
|
549
|
+
* Indicator whose per-unit values feed the tooltips and the emitted population sum (e.g. ATV_DEVICES)
|
|
550
|
+
* @default 'MBI_P_T_2025'
|
|
551
|
+
*/
|
|
552
|
+
"indicator": string;
|
|
553
|
+
/**
|
|
554
|
+
* Unit label shown behind the indicator value in the tooltip
|
|
555
|
+
* @default 'Einwohner'
|
|
556
|
+
*/
|
|
557
|
+
"indicatorLabel": string;
|
|
558
|
+
/**
|
|
559
|
+
* Load the map bundle only when scrolled near the viewport (default: true)
|
|
560
|
+
* @default true
|
|
561
|
+
*/
|
|
562
|
+
"lazy": boolean;
|
|
563
|
+
/**
|
|
564
|
+
* Geo level to display and select: plz5, gemeinde, kreis, regbez, bundesland
|
|
565
|
+
* @default 'plz5'
|
|
566
|
+
*/
|
|
567
|
+
"level": string;
|
|
568
|
+
/**
|
|
569
|
+
* Shape resolution: medium = simplified geometry (snappy), high = originals
|
|
570
|
+
* @default 'medium'
|
|
571
|
+
*/
|
|
572
|
+
"resolution": 'medium' | 'high';
|
|
573
|
+
/**
|
|
574
|
+
* Select all PLZs within `km` around a start PLZ ("Umkreis"). Replaces the selection unless `add` is true.
|
|
575
|
+
*/
|
|
576
|
+
"selectByRadius": (startPlz: string, km: number, add?: boolean) => Promise<GeoMapSelection | null>;
|
|
577
|
+
/**
|
|
578
|
+
* Select an explicit list of PLZs ("PLZ-Liste" paste, query-param restore). Replaces the selection unless `add` is true.
|
|
579
|
+
*/
|
|
580
|
+
"selectPostalCodes": (codes: string[], add?: boolean) => Promise<GeoMapSelection | null>;
|
|
581
|
+
/**
|
|
582
|
+
* Minimum zoom before boundaries are loaded and selectable (use ~5 for bundesland, 9 for plz5)
|
|
583
|
+
* @default 9
|
|
584
|
+
*/
|
|
585
|
+
"selectZoom": number;
|
|
586
|
+
/**
|
|
587
|
+
* Raster tile URL template. Default: CARTO Positron — light, minimal, made for data overlays; fits the crossvertise design. For production traffic, license a tile plan (CARTO/MapTiler/Geofabrik) and set the keyed URL here.
|
|
588
|
+
* @default 'https://basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}@2x.png'
|
|
589
|
+
*/
|
|
590
|
+
"tiles": string;
|
|
591
|
+
/**
|
|
592
|
+
* @default 5.5
|
|
593
|
+
*/
|
|
594
|
+
"zoom": number;
|
|
595
|
+
}
|
|
516
596
|
interface XvHeader {
|
|
517
597
|
}
|
|
518
598
|
/**
|
|
@@ -1217,6 +1297,10 @@ export interface XvFileUploaderCustomEvent<T> extends CustomEvent<T> {
|
|
|
1217
1297
|
detail: T;
|
|
1218
1298
|
target: HTMLXvFileUploaderElement;
|
|
1219
1299
|
}
|
|
1300
|
+
export interface XvGeoMapV2CustomEvent<T> extends CustomEvent<T> {
|
|
1301
|
+
detail: T;
|
|
1302
|
+
target: HTMLXvGeoMapV2Element;
|
|
1303
|
+
}
|
|
1220
1304
|
export interface XvHeaderCustomEvent<T> extends CustomEvent<T> {
|
|
1221
1305
|
detail: T;
|
|
1222
1306
|
target: HTMLXvHeaderElement;
|
|
@@ -1612,6 +1696,31 @@ declare global {
|
|
|
1612
1696
|
prototype: HTMLXvFooterElement;
|
|
1613
1697
|
new (): HTMLXvFooterElement;
|
|
1614
1698
|
};
|
|
1699
|
+
interface HTMLXvGeoMapV2ElementEventMap {
|
|
1700
|
+
"changeSelection": GeoMapSelection;
|
|
1701
|
+
"mapReady": void;
|
|
1702
|
+
}
|
|
1703
|
+
/**
|
|
1704
|
+
* Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
|
|
1705
|
+
* Click a PLZ to (de)select it. No further UI — selection state and reach
|
|
1706
|
+
* data are emitted via `changeSelection` for the host page to display.
|
|
1707
|
+
* MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
|
|
1708
|
+
* the viewport, so the host page's initial load stays untouched.
|
|
1709
|
+
*/
|
|
1710
|
+
interface HTMLXvGeoMapV2Element extends Components.XvGeoMapV2, HTMLStencilElement {
|
|
1711
|
+
addEventListener<K extends keyof HTMLXvGeoMapV2ElementEventMap>(type: K, listener: (this: HTMLXvGeoMapV2Element, ev: XvGeoMapV2CustomEvent<HTMLXvGeoMapV2ElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1712
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1713
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1714
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1715
|
+
removeEventListener<K extends keyof HTMLXvGeoMapV2ElementEventMap>(type: K, listener: (this: HTMLXvGeoMapV2Element, ev: XvGeoMapV2CustomEvent<HTMLXvGeoMapV2ElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1716
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1717
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1718
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1719
|
+
}
|
|
1720
|
+
var HTMLXvGeoMapV2Element: {
|
|
1721
|
+
prototype: HTMLXvGeoMapV2Element;
|
|
1722
|
+
new (): HTMLXvGeoMapV2Element;
|
|
1723
|
+
};
|
|
1615
1724
|
interface HTMLXvHeaderElementEventMap {
|
|
1616
1725
|
"xvMetaNavUpdate": any;
|
|
1617
1726
|
}
|
|
@@ -2104,6 +2213,7 @@ declare global {
|
|
|
2104
2213
|
"xv-dropdown-v2-item": HTMLXvDropdownV2ItemElement;
|
|
2105
2214
|
"xv-file-uploader": HTMLXvFileUploaderElement;
|
|
2106
2215
|
"xv-footer": HTMLXvFooterElement;
|
|
2216
|
+
"xv-geo-map-v2": HTMLXvGeoMapV2Element;
|
|
2107
2217
|
"xv-header": HTMLXvHeaderElement;
|
|
2108
2218
|
"xv-header-next": HTMLXvHeaderNextElement;
|
|
2109
2219
|
"xv-image-viewer": HTMLXvImageViewerElement;
|
|
@@ -2653,6 +2763,80 @@ declare namespace LocalJSX {
|
|
|
2653
2763
|
}
|
|
2654
2764
|
interface XvFooter {
|
|
2655
2765
|
}
|
|
2766
|
+
/**
|
|
2767
|
+
* Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
|
|
2768
|
+
* Click a PLZ to (de)select it. No further UI — selection state and reach
|
|
2769
|
+
* data are emitted via `changeSelection` for the host page to display.
|
|
2770
|
+
* MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
|
|
2771
|
+
* the viewport, so the host page's initial load stays untouched.
|
|
2772
|
+
*/
|
|
2773
|
+
interface XvGeoMapV2 {
|
|
2774
|
+
/**
|
|
2775
|
+
* Base URL of the geo API (Xv.Api v1/geo — contract-compatible with the XvGeoTool API). Default is the same-origin Front Door route, so no CORS is involved on crossvertise pages.
|
|
2776
|
+
* @default '/api-fd/v1/geo'
|
|
2777
|
+
*/
|
|
2778
|
+
"apiBase"?: string;
|
|
2779
|
+
/**
|
|
2780
|
+
* @default '© CARTO, © OpenStreetMap contributors'
|
|
2781
|
+
*/
|
|
2782
|
+
"attribution"?: string;
|
|
2783
|
+
/**
|
|
2784
|
+
* @default 51.16
|
|
2785
|
+
*/
|
|
2786
|
+
"centerLat"?: number;
|
|
2787
|
+
/**
|
|
2788
|
+
* Initial map center
|
|
2789
|
+
* @default 10.45
|
|
2790
|
+
*/
|
|
2791
|
+
"centerLng"?: number;
|
|
2792
|
+
/**
|
|
2793
|
+
* Indicator whose per-unit values feed the tooltips and the emitted population sum (e.g. ATV_DEVICES)
|
|
2794
|
+
* @default 'MBI_P_T_2025'
|
|
2795
|
+
*/
|
|
2796
|
+
"indicator"?: string;
|
|
2797
|
+
/**
|
|
2798
|
+
* Unit label shown behind the indicator value in the tooltip
|
|
2799
|
+
* @default 'Einwohner'
|
|
2800
|
+
*/
|
|
2801
|
+
"indicatorLabel"?: string;
|
|
2802
|
+
/**
|
|
2803
|
+
* Load the map bundle only when scrolled near the viewport (default: true)
|
|
2804
|
+
* @default true
|
|
2805
|
+
*/
|
|
2806
|
+
"lazy"?: boolean;
|
|
2807
|
+
/**
|
|
2808
|
+
* Geo level to display and select: plz5, gemeinde, kreis, regbez, bundesland
|
|
2809
|
+
* @default 'plz5'
|
|
2810
|
+
*/
|
|
2811
|
+
"level"?: string;
|
|
2812
|
+
/**
|
|
2813
|
+
* Selection changed: selected PLZs + population sum of the selection
|
|
2814
|
+
*/
|
|
2815
|
+
"onChangeSelection"?: (event: XvGeoMapV2CustomEvent<GeoMapSelection>) => void;
|
|
2816
|
+
/**
|
|
2817
|
+
* Map finished initializing
|
|
2818
|
+
*/
|
|
2819
|
+
"onMapReady"?: (event: XvGeoMapV2CustomEvent<void>) => void;
|
|
2820
|
+
/**
|
|
2821
|
+
* Shape resolution: medium = simplified geometry (snappy), high = originals
|
|
2822
|
+
* @default 'medium'
|
|
2823
|
+
*/
|
|
2824
|
+
"resolution"?: 'medium' | 'high';
|
|
2825
|
+
/**
|
|
2826
|
+
* Minimum zoom before boundaries are loaded and selectable (use ~5 for bundesland, 9 for plz5)
|
|
2827
|
+
* @default 9
|
|
2828
|
+
*/
|
|
2829
|
+
"selectZoom"?: number;
|
|
2830
|
+
/**
|
|
2831
|
+
* Raster tile URL template. Default: CARTO Positron — light, minimal, made for data overlays; fits the crossvertise design. For production traffic, license a tile plan (CARTO/MapTiler/Geofabrik) and set the keyed URL here.
|
|
2832
|
+
* @default 'https://basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}@2x.png'
|
|
2833
|
+
*/
|
|
2834
|
+
"tiles"?: string;
|
|
2835
|
+
/**
|
|
2836
|
+
* @default 5.5
|
|
2837
|
+
*/
|
|
2838
|
+
"zoom"?: number;
|
|
2839
|
+
}
|
|
2656
2840
|
interface XvHeader {
|
|
2657
2841
|
"onXvMetaNavUpdate"?: (event: XvHeaderCustomEvent<any>) => void;
|
|
2658
2842
|
}
|
|
@@ -3347,6 +3531,7 @@ declare namespace LocalJSX {
|
|
|
3347
3531
|
"xv-dropdown-v2-item": XvDropdownV2Item;
|
|
3348
3532
|
"xv-file-uploader": XvFileUploader;
|
|
3349
3533
|
"xv-footer": XvFooter;
|
|
3534
|
+
"xv-geo-map-v2": XvGeoMapV2;
|
|
3350
3535
|
"xv-header": XvHeader;
|
|
3351
3536
|
"xv-header-next": XvHeaderNext;
|
|
3352
3537
|
"xv-image-viewer": XvImageViewer;
|
|
@@ -3448,6 +3633,14 @@ declare module "@stencil/core" {
|
|
|
3448
3633
|
"xv-dropdown-v2-item": LocalJSX.XvDropdownV2Item & JSXBase.HTMLAttributes<HTMLXvDropdownV2ItemElement>;
|
|
3449
3634
|
"xv-file-uploader": LocalJSX.XvFileUploader & JSXBase.HTMLAttributes<HTMLXvFileUploaderElement>;
|
|
3450
3635
|
"xv-footer": LocalJSX.XvFooter & JSXBase.HTMLAttributes<HTMLXvFooterElement>;
|
|
3636
|
+
/**
|
|
3637
|
+
* Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
|
|
3638
|
+
* Click a PLZ to (de)select it. No further UI — selection state and reach
|
|
3639
|
+
* data are emitted via `changeSelection` for the host page to display.
|
|
3640
|
+
* MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
|
|
3641
|
+
* the viewport, so the host page's initial load stays untouched.
|
|
3642
|
+
*/
|
|
3643
|
+
"xv-geo-map-v2": LocalJSX.XvGeoMapV2 & JSXBase.HTMLAttributes<HTMLXvGeoMapV2Element>;
|
|
3451
3644
|
"xv-header": LocalJSX.XvHeader & JSXBase.HTMLAttributes<HTMLXvHeaderElement>;
|
|
3452
3645
|
/**
|
|
3453
3646
|
* Drop-in successor of `xv-header` for the new headless CMS.
|