@mattilsynet/design 3.3.10 → 3.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/mtds/_virtual/_rolldown/runtime.js +17 -0
- package/mtds/ai/card.stories.tsx +54 -77
- package/mtds/ai/layout.mdx +37 -1
- package/mtds/ai/layout.stories.tsx +126 -1
- package/mtds/ai/print.mdx +1 -1
- package/mtds/ai/print.stories.tsx +1 -2
- package/mtds/alert/alert.js +16 -11
- package/mtds/alert/alert.js.map +1 -1
- package/mtds/analytics/analytics.js +118 -118
- package/mtds/analytics/analytics.js.map +1 -1
- package/mtds/app/app-observer.js +31 -36
- package/mtds/app/app-observer.js.map +1 -1
- package/mtds/app/app-toggle.js +12 -26
- package/mtds/app/app-toggle.js.map +1 -1
- package/mtds/app/app-toggle2.js +6 -11
- package/mtds/app/app-toggle2.js.map +1 -1
- package/mtds/app/app.js +66 -60
- package/mtds/app/app.js.map +1 -1
- package/mtds/atlas/atlas-element.js +83 -93
- package/mtds/atlas/atlas-element.js.map +1 -1
- package/mtds/atlas/atlas-marker.js +63 -52
- package/mtds/atlas/atlas-marker.js.map +1 -1
- package/mtds/atlas/atlas-matgeo.js +67 -61
- package/mtds/atlas/atlas-matgeo.js.map +1 -1
- package/mtds/atlas/atlas-wms.js +33 -28
- package/mtds/atlas/atlas-wms.js.map +1 -1
- package/mtds/atlas/atlas.js +6 -38
- package/mtds/atlas/atlas.js.map +1 -1
- package/mtds/atlas/atlas2.js +39 -0
- package/mtds/atlas/atlas2.js.map +1 -0
- package/mtds/atlas/cluster.js +759 -1149
- package/mtds/atlas/cluster.js.map +1 -1
- package/mtds/atlas.iife.js +3 -4
- package/mtds/atlas.js +6 -14
- package/mtds/avatar/avatar.js +14 -10
- package/mtds/avatar/avatar.js.map +1 -1
- package/mtds/badge/badge.js +15 -10
- package/mtds/badge/badge.js.map +1 -1
- package/mtds/breadcrumbs/breadcrumbs.js +15 -19
- package/mtds/breadcrumbs/breadcrumbs.js.map +1 -1
- package/mtds/button/button.js +18 -20
- package/mtds/button/button.js.map +1 -1
- package/mtds/card/card.js +22 -15
- package/mtds/card/card.js.map +1 -1
- package/mtds/chart/chart-axis.js +33 -21
- package/mtds/chart/chart-axis.js.map +1 -1
- package/mtds/chart/chart-bars.js +23 -21
- package/mtds/chart/chart-bars.js.map +1 -1
- package/mtds/chart/chart-element.js +94 -88
- package/mtds/chart/chart-element.js.map +1 -1
- package/mtds/chart/chart-lines.js +35 -37
- package/mtds/chart/chart-lines.js.map +1 -1
- package/mtds/chart/chart-pies.js +17 -17
- package/mtds/chart/chart-pies.js.map +1 -1
- package/mtds/chart/chart.js +6 -52
- package/mtds/chart/chart.js.map +1 -1
- package/mtds/chart/chart2.js +21 -0
- package/mtds/chart/chart2.js.map +1 -0
- package/mtds/chip/chip.js +15 -11
- package/mtds/chip/chip.js.map +1 -1
- package/mtds/deprecations.js +76 -158
- package/mtds/deprecations.js.map +1 -1
- package/mtds/details/details.js +21 -24
- package/mtds/details/details.js.map +1 -1
- package/mtds/dialog/dialog.js +17 -21
- package/mtds/dialog/dialog.js.map +1 -1
- package/mtds/divider/divider.js +15 -20
- package/mtds/divider/divider.js.map +1 -1
- package/mtds/errorsummary/errorsummary.js +14 -16
- package/mtds/errorsummary/errorsummary.js.map +1 -1
- package/mtds/external/@turf/boolean-point-in-polygon/dist/esm/index.js +22 -25
- package/mtds/external/@turf/boolean-point-in-polygon/dist/esm/index.js.map +1 -1
- package/mtds/external/@turf/helpers/dist/esm/index.js +21 -24
- package/mtds/external/@turf/helpers/dist/esm/index.js.map +1 -1
- package/mtds/external/@turf/invariant/dist/esm/index.js +15 -19
- package/mtds/external/@turf/invariant/dist/esm/index.js.map +1 -1
- package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js +270 -297
- package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js.map +1 -1
- package/mtds/external/@u-elements/u-details/dist/u-details.js +75 -101
- package/mtds/external/@u-elements/u-details/dist/u-details.js.map +1 -1
- package/mtds/external/leaflet/dist/leaflet-src.js +4257 -6151
- package/mtds/external/leaflet/dist/leaflet-src.js.map +1 -1
- package/mtds/external/leaflet/dist/leaflet.css.js +5 -606
- package/mtds/external/leaflet/dist/leaflet.css.js.map +1 -1
- package/mtds/external/point-in-polygon-hao/dist/esm/index.js +24 -25
- package/mtds/external/point-in-polygon-hao/dist/esm/index.js.map +1 -1
- package/mtds/external/robust-predicates/esm/incircle.js +5 -0
- package/mtds/external/robust-predicates/esm/incircle.js.map +1 -0
- package/mtds/external/robust-predicates/esm/insphere.js +5 -0
- package/mtds/external/robust-predicates/esm/insphere.js.map +1 -0
- package/mtds/external/robust-predicates/esm/orient2d.js +20 -22
- package/mtds/external/robust-predicates/esm/orient2d.js.map +1 -1
- package/mtds/external/robust-predicates/esm/orient3d.js +5 -0
- package/mtds/external/robust-predicates/esm/orient3d.js.map +1 -0
- package/mtds/external/robust-predicates/esm/util.js +20 -28
- package/mtds/external/robust-predicates/esm/util.js.map +1 -1
- package/mtds/external/robust-predicates/index.js +5 -0
- package/mtds/field/field.js +167 -214
- package/mtds/field/field.js.map +1 -1
- package/mtds/fieldset/fieldset.js +32 -30
- package/mtds/fieldset/fieldset.js.map +1 -1
- package/mtds/fileupload/fileupload.js +16 -13
- package/mtds/fileupload/fileupload.js.map +1 -1
- package/mtds/helptext/helptext.js +25 -27
- package/mtds/helptext/helptext.js.map +1 -1
- package/mtds/identitet/illustrasjons-generator/illustrasjons-generator.d.ts +1 -0
- package/mtds/identitet/illustrasjons-generator/index-old-1.d.ts +1 -0
- package/mtds/identitet/infografikk-generator/infografikk-generator.d.ts +1 -0
- package/mtds/index.iife.js +21 -21
- package/mtds/index.js +38 -31
- package/mtds/index.js.map +1 -1
- package/mtds/input/input.js +33 -47
- package/mtds/input/input.js.map +1 -1
- package/mtds/law/law-helper.js +106 -95
- package/mtds/law/law-helper.js.map +1 -1
- package/mtds/law/law.js +15 -10
- package/mtds/law/law.js.map +1 -1
- package/mtds/layout/layout.js +21 -13
- package/mtds/layout/layout.js.map +1 -1
- package/mtds/layout/layout.stories.d.ts +1 -0
- package/mtds/link/link.js +15 -10
- package/mtds/link/link.js.map +1 -1
- package/mtds/logo/logo-observer.js +18 -18
- package/mtds/logo/logo-observer.js.map +1 -1
- package/mtds/logo/logo.js +18 -18
- package/mtds/logo/logo.js.map +1 -1
- package/mtds/package.js +6 -0
- package/mtds/package.js.map +1 -0
- package/mtds/package.json.d.ts +112 -0
- package/mtds/pagination/pagination.js +46 -60
- package/mtds/pagination/pagination.js.map +1 -1
- package/mtds/popover/popover-observer.js +15 -15
- package/mtds/popover/popover-observer.js.map +1 -1
- package/mtds/popover/popover.js +18 -20
- package/mtds/popover/popover.js.map +1 -1
- package/mtds/print/print.js +15 -10
- package/mtds/print/print.js.map +1 -1
- package/mtds/print/print.stories.d.ts +0 -1
- package/mtds/profilering/epost.d.ts +1 -0
- package/mtds/progress/progress.js +15 -13
- package/mtds/progress/progress.js.map +1 -1
- package/mtds/react-atlas.js +7 -16
- package/mtds/react.js +36 -84
- package/mtds/skeleton/skeleton.js +15 -11
- package/mtds/skeleton/skeleton.js.map +1 -1
- package/mtds/spinner/spinner.js +16 -13
- package/mtds/spinner/spinner.js.map +1 -1
- package/mtds/steps/steps.js +15 -10
- package/mtds/steps/steps.js.map +1 -1
- package/mtds/styles.css +2 -1
- package/mtds/styles.module.js +122 -0
- package/mtds/styles.module.js.map +1 -0
- package/mtds/table/table-observer.js +23 -28
- package/mtds/table/table-observer.js.map +1 -1
- package/mtds/table/table.js +88 -60
- package/mtds/table/table.js.map +1 -1
- package/mtds/tabs/tabs.js +32 -27
- package/mtds/tabs/tabs.js.map +1 -1
- package/mtds/tag/tag.js +16 -19
- package/mtds/tag/tag.js.map +1 -1
- package/mtds/tailwind.css +0 -4
- package/mtds/toast/toast-helper.js +45 -25
- package/mtds/toast/toast-helper.js.map +1 -1
- package/mtds/toast/toast-observer.js +18 -18
- package/mtds/toast/toast-observer.js.map +1 -1
- package/mtds/toast/toast.js +67 -54
- package/mtds/toast/toast.js.map +1 -1
- package/mtds/togglegroup/togglegroup.js +31 -40
- package/mtds/togglegroup/togglegroup.js.map +1 -1
- package/mtds/tooltip/tooltip-element.js +12 -25
- package/mtds/tooltip/tooltip-element.js.map +1 -1
- package/mtds/typography/typography.js +38 -21
- package/mtds/typography/typography.js.map +1 -1
- package/mtds/utils.js +53 -70
- package/mtds/utils.js.map +1 -1
- package/mtds/validation/validation-observer.js +40 -47
- package/mtds/validation/validation-observer.js.map +1 -1
- package/mtds/validation/validation.js +17 -21
- package/mtds/validation/validation.js.map +1 -1
- package/package.json +9 -9
- package/mtds/atlas/atlas.css.js +0 -138
- package/mtds/atlas/atlas.css.js.map +0 -1
- package/mtds/atlas.js.map +0 -1
- package/mtds/chart/chart.css.js +0 -187
- package/mtds/chart/chart.css.js.map +0 -1
- package/mtds/package.json.js +0 -5
- package/mtds/package.json.js.map +0 -1
- package/mtds/react-atlas.js.map +0 -1
- package/mtds/react.js.map +0 -1
- package/mtds/styles.module.css.js +0 -118
- package/mtds/styles.module.css.js.map +0 -1
|
@@ -1,61 +1,67 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
class
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
1
|
+
import { MTDSElement as e, attr as t, debounce as n, defineElement as r } from "../utils.js";
|
|
2
|
+
import i from "../external/leaflet/dist/leaflet-src.js";
|
|
3
|
+
import { point as a } from "../external/@turf/helpers/dist/esm/index.js";
|
|
4
|
+
import { booleanPointInPolygon as o } from "../external/@turf/boolean-point-in-polygon/dist/esm/index.js";
|
|
5
|
+
//#region designsystem/atlas/atlas-matgeo.ts
|
|
6
|
+
var s = "moveend zoomend refresh", c = class extends e {
|
|
7
|
+
atlas;
|
|
8
|
+
geojson;
|
|
9
|
+
static get observedAttributes() {
|
|
10
|
+
return [
|
|
11
|
+
"hidden",
|
|
12
|
+
"data-collection",
|
|
13
|
+
"data-color",
|
|
14
|
+
"popovertarget"
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
constructor() {
|
|
18
|
+
super(), this.refresh = n(this.refresh, 300);
|
|
19
|
+
}
|
|
20
|
+
connectedCallback() {
|
|
21
|
+
queueMicrotask(() => {
|
|
22
|
+
this.atlas = this.closest("mtds-atlas") || void 0, this.atlas?.map?.on(s, this.refresh, this), this.geojson = new i.GeoJSON(null, {
|
|
23
|
+
style: l(this),
|
|
24
|
+
onEachFeature: (e, t) => t.on("click", this.handleEvent, this)
|
|
25
|
+
}).bindPopup(() => `#${t(this, "popovertarget")}`), this.refresh(), this.attributeChangedCallback("hidden");
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
attributeChangedCallback(e) {
|
|
29
|
+
let t = this.geojson, n = this.atlas?.map;
|
|
30
|
+
e === "popovertarget" && t?.getPopup()?.update(), e === "data-color" && t?.setStyle(l(this)), e === "data-collection" && this.refresh(), e === "hidden" && t && n && n[this.hidden ? "removeLayer" : "addLayer"](t);
|
|
31
|
+
}
|
|
32
|
+
disconnectedCallback() {
|
|
33
|
+
this.atlas?.map?.off(s, this.refresh, this), this.geojson?.unbindPopup().remove(), this.geojson = this.atlas = void 0;
|
|
34
|
+
}
|
|
35
|
+
refresh(e) {
|
|
36
|
+
!this.geojson || !this.atlas?.map?.hasLayer(this.geojson) || this.getCollection().then((t) => {
|
|
37
|
+
let n = t?.links.find(({ rel: e }) => e === "items"), r = e === !0 ? `&nocache=${Date.now()}` : "", i = this.atlas?.map?.getBounds().toBBoxString();
|
|
38
|
+
t ? fetch(`${n?.href}?bbox=${i}${r}`).then((e) => e.json()).then((e) => this.geojson?.clearLayers().addData(e)) : this.atlas?.getCollections().then((e) => {
|
|
39
|
+
let t = `mtds-atlas-matgeo: Please set a vaild data-collection="${Object.keys(e).join(" | ")}"`;
|
|
40
|
+
console.warn(t);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
handleEvent(e) {
|
|
45
|
+
e.originalEvent.stopPropagation(), this.atlas?.getCollections().then((t) => {
|
|
46
|
+
let n = [e.target], r = {
|
|
47
|
+
...e,
|
|
48
|
+
targets: n,
|
|
49
|
+
collections: t
|
|
50
|
+
}, s = a([e.latlng.lng, e.latlng.lat]);
|
|
51
|
+
this.atlas?.map?.eachLayer((t) => {
|
|
52
|
+
t !== e.target && (t.feature?.geometry && o(s, t.feature.geometry) || t instanceof i.Marker && t.getLatLng().equals(e.latlng)) && n.push(t);
|
|
53
|
+
}), this.dispatchEvent(new MouseEvent("click", e.originalEvent)), this.dispatchEvent(new CustomEvent("atlasfeatureclick", {
|
|
54
|
+
detail: r,
|
|
55
|
+
bubbles: !0
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async getCollection() {
|
|
60
|
+
return this.atlas?.getCollections().then((e) => e?.[t(this, "data-collection") || ""]);
|
|
61
|
+
}
|
|
62
|
+
}, l = (e) => ({ color: `var(--mtds-color-${t(e, "data-color") || "main"}-base-default)` });
|
|
63
|
+
r("mtds-atlas-matgeo", c);
|
|
64
|
+
//#endregion
|
|
65
|
+
export { c as MTDSAtlasMatgeoElement };
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=atlas-matgeo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas-matgeo.js","sources":["../../designsystem/atlas/atlas-matgeo.ts"],"sourcesContent":["import { booleanPointInPolygon as inGeo } from \"@turf/boolean-point-in-polygon\";\nimport { point as turfPoint } from \"@turf/helpers\";\n\nimport L from \"leaflet\";\nimport { attr, debounce, defineElement, MTDSElement } from \"../utils\";\nimport type { MTDSAtlasCollection, MTDSAtlasElement } from \"./atlas-element\";\n\ntype Feature = L.Polygon[\"feature\"];\ntype LayerWithFeature = L.Layer & { feature?: Feature };\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t\"mtds-atlas-matgeo\": MTDSAtlasMatgeoElement;\n\t}\n\tinterface GlobalEventHandlersEventMap {\n\t\tatlasfeatureclick: CustomEvent<\n\t\t\tOmit<L.LeafletMouseEvent, \"target\"> & {\n\t\t\t\ttargets: LayerWithFeature[];\n\t\t\t\tcollections: MTDSAtlasCollection[];\n\t\t\t}\n\t\t>;\n\t}\n}\n\nconst EVENTS = \"moveend zoomend refresh\";\n\nexport class MTDSAtlasMatgeoElement extends MTDSElement {\n\tatlas?: MTDSAtlasElement;\n\tgeojson?: L.GeoJSON;\n\n\tstatic get observedAttributes() {\n\t\treturn [\"hidden\", \"data-collection\", \"data-color\", \"popovertarget\"]; // Using ES2015 syntax for backwards compatibility\n\t}\n\tconstructor() {\n\t\tsuper();\n\t\tthis.refresh = debounce(this.refresh, 300); // Debounce to avoid too many requests\n\t}\n\tconnectedCallback() {\n\t\tqueueMicrotask(() => {\n\t\t\tthis.atlas = this.closest<MTDSAtlasElement>(\"mtds-atlas\") || undefined;\n\t\t\tthis.atlas?.map?.on(EVENTS, this.refresh, this);\n\t\t\tthis.geojson = new L.GeoJSON(null, {\n\t\t\t\tstyle: getStyle(this),\n\t\t\t\tonEachFeature: (_, layer) => layer.on(\"click\", this.handleEvent, this),\n\t\t\t}).bindPopup(() => `#${attr(this, \"popovertarget\")}`);\n\t\t\tthis.refresh();\n\t\t\tthis.attributeChangedCallback(\"hidden\"); // Maybe add to map\n\t\t}); // Let the atlas parent initialize first\n\t}\n\tattributeChangedCallback(name?: string) {\n\t\tconst geojson = this.geojson;\n\t\tconst map = this.atlas?.map;\n\t\tif (name === \"popovertarget\") geojson?.getPopup()?.update();\n\t\tif (name === \"data-color\") geojson?.setStyle(getStyle(this));\n\t\tif (name === \"data-collection\") this.refresh();\n\t\tif (name === \"hidden\" && geojson && map)\n\t\t\tmap[this.hidden ? \"removeLayer\" : \"addLayer\"](geojson);\n\t}\n\tdisconnectedCallback() {\n\t\tthis.atlas?.map?.off(EVENTS, this.refresh, this);\n\t\tthis.geojson?.unbindPopup().remove();\n\t\tthis.geojson = this.atlas = undefined;\n\t}\n\trefresh(nocache?: boolean | L.LeafletEvent) {\n\t\tif (!this.geojson || !this.atlas?.map?.hasLayer(this.geojson)) return;\n\t\tthis.getCollection().then((collection) => {\n\t\t\tconst items = collection?.links.find(({ rel }) => rel === \"items\");\n\t\t\tconst cache = nocache === true ? `&nocache=${Date.now()}` : \"\";\n\t\t\tconst bbox = this.atlas?.map?.getBounds().toBBoxString();\n\n\t\t\tif (!collection)\n\t\t\t\tthis.atlas?.getCollections().then((collections) => {\n\t\t\t\t\tconst message = `mtds-atlas-matgeo: Please set a vaild data-collection=\"${Object.keys(collections).join(\" | \")}\"`;\n\t\t\t\t\tconsole.warn(message);\n\t\t\t\t});\n\t\t\telse\n\t\t\t\tfetch(`${items?.href}?bbox=${bbox}${cache}`)\n\t\t\t\t\t.then((res) => res.json())\n\t\t\t\t\t.then((data) => this.geojson?.clearLayers().addData(data));\n\t\t});\n\t}\n\thandleEvent(event: L.LeafletMouseEvent) {\n\t\tevent.originalEvent.stopPropagation(); // Prevent clicks from bubbling from ShadowDOM\n\t\tthis.atlas?.getCollections().then((collections) => {\n\t\t\tconst targets: LayerWithFeature[] = [event.target]; // Leaflet does not list all clicked layers, so we find them manually\n\t\t\tconst detail = { ...event, targets, collections };\n\t\t\tconst point = turfPoint([event.latlng.lng, event.latlng.lat]);\n\n\t\t\tthis.atlas?.map?.eachLayer((layer: LayerWithFeature) => {\n\t\t\t\tif (layer === event.target) return; // Already added\n\t\t\t\tconst inside =\n\t\t\t\t\t(layer.feature?.geometry && inGeo(point, layer.feature.geometry)) ||\n\t\t\t\t\t(layer instanceof L.Marker && layer.getLatLng().equals(event.latlng));\n\t\t\t\tif (inside) targets.push(layer);\n\t\t\t});\n\n\t\t\tthis.dispatchEvent(new MouseEvent(\"click\", event.originalEvent)); // Forward click, but from <mtds-atlas-matgeo> element\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent(\"atlasfeatureclick\", { detail, bubbles: true }),\n\t\t\t);\n\t\t});\n\t}\n\tasync getCollection() {\n\t\treturn this.atlas\n\t\t\t?.getCollections()\n\t\t\t.then((cols) => cols?.[attr(this, \"data-collection\") || \"\"]);\n\t}\n}\nconst getStyle = (self: MTDSAtlasMatgeoElement) => ({\n\tcolor: `var(--mtds-color-${attr(self, \"data-color\") || \"main\"}-base-default)`,\n});\n\ndefineElement(\"mtds-atlas-matgeo\", MTDSAtlasMatgeoElement);\n"],"
|
|
1
|
+
{"version":3,"file":"atlas-matgeo.js","names":[],"sources":["../../designsystem/atlas/atlas-matgeo.ts"],"sourcesContent":["import { booleanPointInPolygon as inGeo } from \"@turf/boolean-point-in-polygon\";\nimport { point as turfPoint } from \"@turf/helpers\";\n\nimport L from \"leaflet\";\nimport { attr, debounce, defineElement, MTDSElement } from \"../utils\";\nimport type { MTDSAtlasCollection, MTDSAtlasElement } from \"./atlas-element\";\n\ntype Feature = L.Polygon[\"feature\"];\ntype LayerWithFeature = L.Layer & { feature?: Feature };\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t\"mtds-atlas-matgeo\": MTDSAtlasMatgeoElement;\n\t}\n\tinterface GlobalEventHandlersEventMap {\n\t\tatlasfeatureclick: CustomEvent<\n\t\t\tOmit<L.LeafletMouseEvent, \"target\"> & {\n\t\t\t\ttargets: LayerWithFeature[];\n\t\t\t\tcollections: MTDSAtlasCollection[];\n\t\t\t}\n\t\t>;\n\t}\n}\n\nconst EVENTS = \"moveend zoomend refresh\";\n\nexport class MTDSAtlasMatgeoElement extends MTDSElement {\n\tatlas?: MTDSAtlasElement;\n\tgeojson?: L.GeoJSON;\n\n\tstatic get observedAttributes() {\n\t\treturn [\"hidden\", \"data-collection\", \"data-color\", \"popovertarget\"]; // Using ES2015 syntax for backwards compatibility\n\t}\n\tconstructor() {\n\t\tsuper();\n\t\tthis.refresh = debounce(this.refresh, 300); // Debounce to avoid too many requests\n\t}\n\tconnectedCallback() {\n\t\tqueueMicrotask(() => {\n\t\t\tthis.atlas = this.closest<MTDSAtlasElement>(\"mtds-atlas\") || undefined;\n\t\t\tthis.atlas?.map?.on(EVENTS, this.refresh, this);\n\t\t\tthis.geojson = new L.GeoJSON(null, {\n\t\t\t\tstyle: getStyle(this),\n\t\t\t\tonEachFeature: (_, layer) => layer.on(\"click\", this.handleEvent, this),\n\t\t\t}).bindPopup(() => `#${attr(this, \"popovertarget\")}`);\n\t\t\tthis.refresh();\n\t\t\tthis.attributeChangedCallback(\"hidden\"); // Maybe add to map\n\t\t}); // Let the atlas parent initialize first\n\t}\n\tattributeChangedCallback(name?: string) {\n\t\tconst geojson = this.geojson;\n\t\tconst map = this.atlas?.map;\n\t\tif (name === \"popovertarget\") geojson?.getPopup()?.update();\n\t\tif (name === \"data-color\") geojson?.setStyle(getStyle(this));\n\t\tif (name === \"data-collection\") this.refresh();\n\t\tif (name === \"hidden\" && geojson && map)\n\t\t\tmap[this.hidden ? \"removeLayer\" : \"addLayer\"](geojson);\n\t}\n\tdisconnectedCallback() {\n\t\tthis.atlas?.map?.off(EVENTS, this.refresh, this);\n\t\tthis.geojson?.unbindPopup().remove();\n\t\tthis.geojson = this.atlas = undefined;\n\t}\n\trefresh(nocache?: boolean | L.LeafletEvent) {\n\t\tif (!this.geojson || !this.atlas?.map?.hasLayer(this.geojson)) return;\n\t\tthis.getCollection().then((collection) => {\n\t\t\tconst items = collection?.links.find(({ rel }) => rel === \"items\");\n\t\t\tconst cache = nocache === true ? `&nocache=${Date.now()}` : \"\";\n\t\t\tconst bbox = this.atlas?.map?.getBounds().toBBoxString();\n\n\t\t\tif (!collection)\n\t\t\t\tthis.atlas?.getCollections().then((collections) => {\n\t\t\t\t\tconst message = `mtds-atlas-matgeo: Please set a vaild data-collection=\"${Object.keys(collections).join(\" | \")}\"`;\n\t\t\t\t\tconsole.warn(message);\n\t\t\t\t});\n\t\t\telse\n\t\t\t\tfetch(`${items?.href}?bbox=${bbox}${cache}`)\n\t\t\t\t\t.then((res) => res.json())\n\t\t\t\t\t.then((data) => this.geojson?.clearLayers().addData(data));\n\t\t});\n\t}\n\thandleEvent(event: L.LeafletMouseEvent) {\n\t\tevent.originalEvent.stopPropagation(); // Prevent clicks from bubbling from ShadowDOM\n\t\tthis.atlas?.getCollections().then((collections) => {\n\t\t\tconst targets: LayerWithFeature[] = [event.target]; // Leaflet does not list all clicked layers, so we find them manually\n\t\t\tconst detail = { ...event, targets, collections };\n\t\t\tconst point = turfPoint([event.latlng.lng, event.latlng.lat]);\n\n\t\t\tthis.atlas?.map?.eachLayer((layer: LayerWithFeature) => {\n\t\t\t\tif (layer === event.target) return; // Already added\n\t\t\t\tconst inside =\n\t\t\t\t\t(layer.feature?.geometry && inGeo(point, layer.feature.geometry)) ||\n\t\t\t\t\t(layer instanceof L.Marker && layer.getLatLng().equals(event.latlng));\n\t\t\t\tif (inside) targets.push(layer);\n\t\t\t});\n\n\t\t\tthis.dispatchEvent(new MouseEvent(\"click\", event.originalEvent)); // Forward click, but from <mtds-atlas-matgeo> element\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent(\"atlasfeatureclick\", { detail, bubbles: true }),\n\t\t\t);\n\t\t});\n\t}\n\tasync getCollection() {\n\t\treturn this.atlas\n\t\t\t?.getCollections()\n\t\t\t.then((cols) => cols?.[attr(this, \"data-collection\") || \"\"]);\n\t}\n}\nconst getStyle = (self: MTDSAtlasMatgeoElement) => ({\n\tcolor: `var(--mtds-color-${attr(self, \"data-color\") || \"main\"}-base-default)`,\n});\n\ndefineElement(\"mtds-atlas-matgeo\", MTDSAtlasMatgeoElement);\n"],"mappings":"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"}
|
package/mtds/atlas/atlas-wms.js
CHANGED
|
@@ -1,29 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
import { MTDSElement as e, attr as t, defineElement as n } from "../utils.js";
|
|
2
|
+
import r from "../external/leaflet/dist/leaflet-src.js";
|
|
3
|
+
//#region designsystem/atlas/atlas-wms.ts
|
|
4
|
+
var i = class extends e {
|
|
5
|
+
atlas;
|
|
6
|
+
wms;
|
|
7
|
+
static get observedAttributes() {
|
|
8
|
+
return [
|
|
9
|
+
"hidden",
|
|
10
|
+
"data-url",
|
|
11
|
+
"popovertarget"
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
connectedCallback() {
|
|
15
|
+
queueMicrotask(() => {
|
|
16
|
+
this.atlas = this.closest("mtds-atlas") || void 0, this.refresh();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
attributeChangedCallback(e) {
|
|
20
|
+
e === "data-url" && this.refresh(), e === "popovertarget" && this.wms?.getPopup()?.update(), e === "hidden" && this.wms && (this.atlas?.map?.[this.hidden ? "removeLayer" : "addLayer"](this.wms), this.wms.bringToFront());
|
|
21
|
+
}
|
|
22
|
+
refresh() {
|
|
23
|
+
let e = new URL(t(this, "data-url") || ""), n = Object.fromEntries(e.searchParams.entries());
|
|
24
|
+
this.wms?.unbindPopup().remove(), this.wms = new r.TileLayer.WMS(`${e.origin}${e.pathname}`, n), this.attributeChangedCallback("hidden");
|
|
25
|
+
}
|
|
26
|
+
disconnectedCallback() {
|
|
27
|
+
this.wms?.unbindPopup().remove(), this.wms = this.atlas = void 0;
|
|
28
|
+
}
|
|
28
29
|
};
|
|
29
|
-
|
|
30
|
+
n("mtds-atlas-wms", i);
|
|
31
|
+
//#endregion
|
|
32
|
+
export { i as MTDSAtlasWMSElement };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=atlas-wms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas-wms.js","sources":["../../designsystem/atlas/atlas-wms.ts"],"sourcesContent":["import L from \"leaflet\";\nimport { attr, defineElement, MTDSElement } from \"../utils\";\nimport type { MTDSAtlasElement } from \"./atlas-element\";\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t\"mtds-atlas-wms\": MTDSAtlasWMSElement;\n\t}\n}\n\nexport class MTDSAtlasWMSElement extends MTDSElement {\n\tatlas?: MTDSAtlasElement;\n\twms?: L.TileLayer.WMS;\n\n\tstatic get observedAttributes() {\n\t\treturn [\"hidden\", \"data-url\", \"popovertarget\"]; // Using ES2015 syntax for backwards compatibility\n\t}\n\tconnectedCallback() {\n\t\tqueueMicrotask(() => {\n\t\t\tthis.atlas = this.closest<MTDSAtlasElement>(\"mtds-atlas\") || undefined;\n\t\t\tthis.refresh();\n\t\t}); // Let the atlas parent initialize first\n\t}\n\tattributeChangedCallback(name?: string) {\n\t\tif (name === \"data-url\") this.refresh();\n\t\tif (name === \"popovertarget\") this.wms?.getPopup()?.update();\n\t\tif (name === \"hidden\" && this.wms) {\n\t\t\tthis.atlas?.map?.[this.hidden ? \"removeLayer\" : \"addLayer\"](this.wms);\n\t\t\tthis.wms.bringToFront();\n\t\t}\n\t}\n\trefresh() {\n\t\tconst url = new URL(attr(this, \"data-url\") || \"\");\n\t\tconst params = Object.fromEntries(url.searchParams.entries());\n\t\tthis.wms?.unbindPopup().remove();\n\t\tthis.wms = new L.TileLayer.WMS(`${url.origin}${url.pathname}`, params);\n\t\tthis.attributeChangedCallback(\"hidden\"); // Maybe add to map\n\t}\n\tdisconnectedCallback() {\n\t\tthis.wms?.unbindPopup().remove();\n\t\tthis.wms = this.atlas = undefined;\n\t}\n}\n\ndefineElement(\"mtds-atlas-wms\", MTDSAtlasWMSElement);\n"],"
|
|
1
|
+
{"version":3,"file":"atlas-wms.js","names":[],"sources":["../../designsystem/atlas/atlas-wms.ts"],"sourcesContent":["import L from \"leaflet\";\nimport { attr, defineElement, MTDSElement } from \"../utils\";\nimport type { MTDSAtlasElement } from \"./atlas-element\";\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t\"mtds-atlas-wms\": MTDSAtlasWMSElement;\n\t}\n}\n\nexport class MTDSAtlasWMSElement extends MTDSElement {\n\tatlas?: MTDSAtlasElement;\n\twms?: L.TileLayer.WMS;\n\n\tstatic get observedAttributes() {\n\t\treturn [\"hidden\", \"data-url\", \"popovertarget\"]; // Using ES2015 syntax for backwards compatibility\n\t}\n\tconnectedCallback() {\n\t\tqueueMicrotask(() => {\n\t\t\tthis.atlas = this.closest<MTDSAtlasElement>(\"mtds-atlas\") || undefined;\n\t\t\tthis.refresh();\n\t\t}); // Let the atlas parent initialize first\n\t}\n\tattributeChangedCallback(name?: string) {\n\t\tif (name === \"data-url\") this.refresh();\n\t\tif (name === \"popovertarget\") this.wms?.getPopup()?.update();\n\t\tif (name === \"hidden\" && this.wms) {\n\t\t\tthis.atlas?.map?.[this.hidden ? \"removeLayer\" : \"addLayer\"](this.wms);\n\t\t\tthis.wms.bringToFront();\n\t\t}\n\t}\n\trefresh() {\n\t\tconst url = new URL(attr(this, \"data-url\") || \"\");\n\t\tconst params = Object.fromEntries(url.searchParams.entries());\n\t\tthis.wms?.unbindPopup().remove();\n\t\tthis.wms = new L.TileLayer.WMS(`${url.origin}${url.pathname}`, params);\n\t\tthis.attributeChangedCallback(\"hidden\"); // Maybe add to map\n\t}\n\tdisconnectedCallback() {\n\t\tthis.wms?.unbindPopup().remove();\n\t\tthis.wms = this.atlas = undefined;\n\t}\n}\n\ndefineElement(\"mtds-atlas-wms\", MTDSAtlasWMSElement);\n"],"mappings":";;;AAUA,IAAa,IAAb,cAAyC,EAAY;CACpD;CACA;CAEA,WAAW,qBAAqB;EAC/B,OAAO;GAAC;GAAU;GAAY;EAAe;CAC9C;CACA,oBAAoB;EACnB,qBAAqB;GAEpB,AADA,KAAK,QAAQ,KAAK,QAA0B,YAAY,KAAK,KAAA,GAC7D,KAAK,QAAQ;EACd,CAAC;CACF;CACA,yBAAyB,GAAe;EAGvC,AAFI,MAAS,cAAY,KAAK,QAAQ,GAClC,MAAS,mBAAiB,KAAK,KAAK,SAAS,CAAC,EAAE,OAAO,GACvD,MAAS,YAAY,KAAK,QAC7B,KAAK,OAAO,MAAM,KAAK,SAAS,gBAAgB,WAAW,CAAC,KAAK,GAAG,GACpE,KAAK,IAAI,aAAa;CAExB;CACA,UAAU;EACT,IAAM,IAAM,IAAI,IAAI,EAAK,MAAM,UAAU,KAAK,EAAE,GAC1C,IAAS,OAAO,YAAY,EAAI,aAAa,QAAQ,CAAC;EAG5D,AAFA,KAAK,KAAK,YAAY,CAAC,CAAC,OAAO,GAC/B,KAAK,MAAM,IAAI,EAAE,UAAU,IAAI,GAAG,EAAI,SAAS,EAAI,YAAY,CAAM,GACrE,KAAK,yBAAyB,QAAQ;CACvC;CACA,uBAAuB;EAEtB,AADA,KAAK,KAAK,YAAY,CAAC,CAAC,OAAO,GAC/B,KAAK,MAAM,KAAK,QAAQ,KAAA;CACzB;AACD;AAEA,EAAc,kBAAkB,CAAmB"}
|
package/mtds/atlas/atlas.js
CHANGED
|
@@ -1,38 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return /* @__PURE__ */ a("mtds-atlas", { ref: r, ...s(t) });
|
|
8
|
-
}
|
|
9
|
-
), c = Object.assign(n, {
|
|
10
|
-
Marker: o(
|
|
11
|
-
function(t, r) {
|
|
12
|
-
return /* @__PURE__ */ a("mtds-atlas-marker", { ref: r, ...s(t) });
|
|
13
|
-
}
|
|
14
|
-
),
|
|
15
|
-
Matgeo: o(
|
|
16
|
-
function({ onFeatureClick: t, ...r }, m) {
|
|
17
|
-
return /* @__PURE__ */ a(
|
|
18
|
-
"mtds-atlas-matgeo",
|
|
19
|
-
{
|
|
20
|
-
ref: m,
|
|
21
|
-
onatlasfeatureclick: t,
|
|
22
|
-
...s(r)
|
|
23
|
-
}
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
),
|
|
27
|
-
WMS: o(
|
|
28
|
-
function(t, r) {
|
|
29
|
-
return /* @__PURE__ */ a("mtds-atlas-wms", { ref: r, ...s(t) });
|
|
30
|
-
}
|
|
31
|
-
)
|
|
32
|
-
});
|
|
33
|
-
export {
|
|
34
|
-
c as Atlas,
|
|
35
|
-
M as MATGEO_URL,
|
|
36
|
-
p as MTDSAtlasElement
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=atlas.js.map
|
|
1
|
+
//#region designsystem/atlas/atlas.css?raw
|
|
2
|
+
var e = "/**\n * NOTE:\n * - Dark mode styles are in styles.module.css to leverage data-color-scheme attribute\n * - This file is using --mtds- not --mtds- since we're inside shadow dom\n */ \n \n::slotted([data-color]), /* Ensure data-color is respected */\n:host {\n --mtdsc-atlas-border: 1px solid var(--mtds-color-border-subtle);\n --mtdsc-atlas-cluster-border: 1px solid;\n --mtdsc-atlas-marker-background: var(--mtds-color-base-default);\n --mtdsc-atlas-marker-background-outer: #fff;\n --mtdsc-atlas-cluster-background: var(--mtdsc-atlas-marker-background);\n --mtdsc-atlas-cluster-color: var(--mtdsc-atlas-marker-color);\n --mtdsc-atlas-marker-border: none;\n --mtdsc-atlas-marker-color: var(--mtds-color-base-contrast-default);\n --mtdsc-atlas-marker-inset: 3px;\n --mtdsc-atlas-marker-shadow-blur: 4px;\n --mtdsc-atlas-marker-shadow-color: rgba(0 0 0 / 0.5);\n --mtdsc-atlas-marker-shadow-offset: 2px;\n --mtdsc-atlas-marker-size: var(--mtds-6);\n --mtdsc-atlas-tile-background: #f7fcfc;\n --mtdsc-atlas-tile-filter: grayscale(.8) contrast(0.75) brightness(1.15); /* Also in styles.module.css */\n}\n:host {\n border-radius: var(--mtds-border-radius-md);\n aspect-ratio: 2;\n overflow: clip;\n position: relative;\n}\n:host(:not([hidden])) { display: block }\n:host([data-cursor=\"pointer\"]) .leaflet-grab { cursor: pointer }\n\n/* Focus */\n.leaflet-control-zoom a:focus-visible,\n:host:has(.leaflet-container:focus-visible),\n::slotted(mtds-atlas-marker:focus-visible) {\n box-shadow: var(--mtdsc-focus-boxShadow);\n outline: var(--mtdsc-focus-outline);\n outline-offset: var(--mtds-border-width-focus);\n}\n\n/* Tiles */\n.leaflet-kartverket-tiles { filter: var(--mtdsc-atlas-tile-filter); transition: filter 0.5s }\n.leaflet-container {\n background: var(--mtdsc-atlas-tile-background);\n border-radius: inherit;\n border: var(--mtdsc-atlas-border);\n box-sizing: border-box;\n font: inherit;\n height: 100%;\n margin: 0;\n outline: 0;\n position: relative;\n z-index: 1; /* Ensure <slot> is always on top */\n}\n:host([data-tiles=\"color\"]) {\n --mtdsc-atlas-tile-background: #e5fcfd;\n --mtdsc-atlas-tile-filter: grayscale(0.2);\n}\n\n/* Controls */\n.leaflet-control-attribution { font-size: 12px; border-top-left-radius: var(--mtds-border-radius-md) }\n.leaflet-control-zoom { border-radius: var(--mtds-border-radius-md); border: 1px solid var(--mtds-color-border-default) }\n.leaflet-control-zoom a { background: var(--mtds-color-surface-default); border-color: inherit; color: var(--mtds-color-text-default); height: var(--mtds-10); line-height: var(--mtds-10); transition: 0.2s; width: var(--mtds-10) }\n.leaflet-control-zoom a:first-child { border-top-left-radius: inherit; border-top-right-radius: inherit }\n.leaflet-control-zoom a:last-child { border-bottom-left-radius: inherit; border-bottom-right-radius: inherit }\n.leaflet-control-zoom a:hover { background: var(--mtds-color-surface-hover) }\n.leaflet-control-zoom a:active { background: var(--mtds-color-surface-active) }\n\n/* Markers */\n.leaflet-marker-generated-icon,\n::slotted(mtds-atlas-marker) {\n all: unset;\n color: var(--mtdsc-atlas-marker-color);\n background: var(--mtdsc-atlas-marker-background);\n border-radius: 100%;\n box-sizing: border-box;\n cursor: pointer;\n display: grid;\n place-items: center;\n place-content: center;\n font-size: var(--mtds-body-sm-font-size);\n font-weight: var(--mtds-font-weight-bold);\n height: var(--mtdsc-atlas-marker-size);\n /* biome-ignore lint/complexity/noImportantStyles: Overwrite Tailwind */\n margin-bottom: calc(var(--mtdsc-atlas-marker-size) * .25 + var(--mtdsc-atlas-marker-inset))!important;\n width: var(--mtdsc-atlas-marker-size);\n}\n.leaflet-marker-generated-icon::after,\n::slotted(mtds-atlas-marker)::after {\n box-shadow: var(--mtdsc-atlas-marker-shadow-offset) var(--mtdsc-atlas-marker-shadow-offset) var(--mtdsc-atlas-marker-shadow-blur) var(--mtdsc-atlas-marker-shadow-color);\n aspect-ratio: 1;\n background: var(--mtdsc-atlas-marker-background-outer);\n color: var(--mtdsc-atlas-marker-background);\n border-radius: 50% 50% 0 50%;\n /* biome-ignore lint/complexity/noImportantStyles: Overwrite Tailwind */\n border: var(--mtdsc-atlas-marker-border)!important;\n content: \"\";\n rotate: 45deg;\n position: absolute;\n inset: calc(var(--mtdsc-atlas-marker-inset) * -1);\n z-index: -1;\n}\n\n::slotted(mtds-atlas-marker.leaflet-drag-target) {\n cursor: grabbing;\n}\n\n.leaflet-marker-generated-slot,\n.leaflet-marker-icon slot { display: block; position: absolute; left: 0; top: 0; translate: -50% -100% }\n.leaflet-marker-icon { background: none; border: 0 }\n.leaflet-cluster-icon {\n box-shadow: 0 var(--mtdsc-atlas-marker-shadow-offset) var(--mtdsc-atlas-marker-shadow-blur) var(--mtdsc-atlas-marker-shadow-color);\n background-color: var(--mtdsc-atlas-cluster-background);\n border-radius: 100%;\n border: var(--mtdsc-atlas-cluster-border);\n box-sizing: border-box;\n outline: 2px solid var(--mtdsc-atlas-cluster-background);\n color: var(--mtdsc-atlas-cluster-color);\n display: flex;\n font-size: var(--mtds-body-xs-font-size);\n font-weight: var(--mtds-font-weight-bold);\n place-content: center;\n place-items: center;\n}\n\n/* Popover */\n.leaflet-popup:has(slot) .leaflet-popup-tip { background: var(--mtds-color-surface-default) }\n.leaflet-popup:has(slot) .leaflet-popup-close-button { display: none } /* Popup closes on clicking marker anyway */\n.leaflet-popup:has(slot) .leaflet-popup-content-wrapper { display: contents } /* No need for styling this element */\n.leaflet-popup:has(slot) .leaflet-popup-content { margin: 0; font: inherit }\n\n";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as default };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=atlas.js.map
|
package/mtds/atlas/atlas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas.js","
|
|
1
|
+
{"version":3,"file":"atlas.js","names":[],"sources":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { toCustomElementProps as e } from "../utils.js";
|
|
2
|
+
import t from "../external/leaflet/dist/leaflet-src.js";
|
|
3
|
+
import { MTDSAtlasMarkerElement as n } from "./atlas-marker.js";
|
|
4
|
+
import { MTDSAtlasMatgeoElement as r } from "./atlas-matgeo.js";
|
|
5
|
+
import { MTDSAtlasWMSElement as i } from "./atlas-wms.js";
|
|
6
|
+
import { MATGEO_URL as a, MTDSAtlasElement as o } from "./atlas-element.js";
|
|
7
|
+
import { forwardRef as s } from "react";
|
|
8
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
9
|
+
//#region designsystem/atlas/atlas.tsx
|
|
10
|
+
var l = s(function(t, n) {
|
|
11
|
+
return /* @__PURE__ */ c("mtds-atlas", {
|
|
12
|
+
ref: n,
|
|
13
|
+
...e(t)
|
|
14
|
+
});
|
|
15
|
+
}), u = Object.assign(l, {
|
|
16
|
+
Marker: s(function(t, n) {
|
|
17
|
+
return /* @__PURE__ */ c("mtds-atlas-marker", {
|
|
18
|
+
ref: n,
|
|
19
|
+
...e(t)
|
|
20
|
+
});
|
|
21
|
+
}),
|
|
22
|
+
Matgeo: s(function({ onFeatureClick: t, ...n }, r) {
|
|
23
|
+
return /* @__PURE__ */ c("mtds-atlas-matgeo", {
|
|
24
|
+
ref: r,
|
|
25
|
+
onatlasfeatureclick: t,
|
|
26
|
+
...e(n)
|
|
27
|
+
});
|
|
28
|
+
}),
|
|
29
|
+
WMS: s(function(t, n) {
|
|
30
|
+
return /* @__PURE__ */ c("mtds-atlas-wms", {
|
|
31
|
+
ref: n,
|
|
32
|
+
...e(t)
|
|
33
|
+
});
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
//#endregion
|
|
37
|
+
export { u as Atlas, t as L, a as MATGEO_URL, o as MTDSAtlasElement, n as MTDSAtlasMarkerElement, r as MTDSAtlasMatgeoElement, i as MTDSAtlasWMSElement };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=atlas2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atlas2.js","names":[],"sources":["../../designsystem/atlas/atlas.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { CustomReactElementProps } from \"../react-types\";\nimport { toCustomElementProps } from \"../utils\";\nimport type {\n\tMTDSAtlasElement,\n\tMTDSAtlasMarkerElement,\n\tMTDSAtlasMatgeoElement,\n\tMTDSAtlasWMSElement,\n} from \"./atlas-element\";\n\nexport * from \"./atlas-element\"; // Expose { L } for Leaflet import\n\ndeclare global {\n\tnamespace React.JSX {\n\t\tinterface IntrinsicElements {\n\t\t\t\"mtds-atlas\": CustomReactElementProps<MTDSAtlasElement> & {\n\t\t\t\t\"data-cluster\"?: number | `${number}` | boolean | \"true\" | \"false\";\n\t\t\t\t\"data-scrollzoom\"?: boolean | \"true\" | \"false\";\n\t\t\t\t\"data-tiles\"?: \"color\" | \"gray\";\n\t\t\t\t\"data-view\"?: string | number[];\n\t\t\t};\n\t\t\t\"mtds-atlas-marker\": CustomReactElementProps<MTDSAtlasMarkerElement> & {\n\t\t\t\t\"data-latlng\": string;\n\t\t\t};\n\t\t\t\"mtds-atlas-wms\": CustomReactElementProps<MTDSAtlasWMSElement> & {\n\t\t\t\t\"data-url\": string;\n\t\t\t};\n\t\t\t\"mtds-atlas-matgeo\": CustomReactElementProps<MTDSAtlasMatgeoElement> & {\n\t\t\t\t\"data-collection\": string;\n\t\t\t\tonatlasfeatureclick?: (\n\t\t\t\t\tevent: GlobalEventHandlersEventMap[\"atlasfeatureclick\"],\n\t\t\t\t) => void;\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport type AtlasProps = React.JSX.IntrinsicElements[\"mtds-atlas\"];\nexport type AtlasMarkerProps = React.JSX.IntrinsicElements[\"mtds-atlas-marker\"];\nexport type AtlasWMSProps = React.JSX.IntrinsicElements[\"mtds-atlas-wms\"];\nexport type AtlasMatgeoProps =\n\tReact.JSX.IntrinsicElements[\"mtds-atlas-matgeo\"] & {\n\t\tonFeatureClick?: React.JSX.IntrinsicElements[\"mtds-atlas-matgeo\"][\"onatlasfeatureclick\"];\n\t};\n\nconst AtlasComp = forwardRef<MTDSAtlasElement, AtlasProps>(\n\tfunction Atlas(props, ref) {\n\t\treturn <mtds-atlas ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport const Atlas = Object.assign(AtlasComp, {\n\tMarker: forwardRef<MTDSAtlasMarkerElement, AtlasMarkerProps>(\n\t\tfunction AtlasMarker(props, ref) {\n\t\t\treturn <mtds-atlas-marker ref={ref} {...toCustomElementProps(props)} />;\n\t\t},\n\t),\n\tMatgeo: forwardRef<MTDSAtlasMatgeoElement, AtlasMatgeoProps>(\n\t\tfunction AtlasMatgeo({ onFeatureClick, ...rest }, ref) {\n\t\t\treturn (\n\t\t\t\t<mtds-atlas-matgeo\n\t\t\t\t\tref={ref}\n\t\t\t\t\tonatlasfeatureclick={onFeatureClick}\n\t\t\t\t\t{...toCustomElementProps(rest)}\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t),\n\tWMS: forwardRef<MTDSAtlasWMSElement, AtlasWMSProps>(\n\t\tfunction AtlasWMS(props, ref) {\n\t\t\treturn <mtds-atlas-wms ref={ref} {...toCustomElementProps(props)} />;\n\t\t},\n\t),\n});\n"],"mappings":";;;;;;;;;AA6CA,IAAM,IAAY,EACjB,SAAe,GAAO,GAAK;CAC1B,OAAO,kBAAC,cAAD;EAAiB;EAAK,GAAI,EAAqB,CAAK;CAAI,CAAA;AAChE,CACD,GAEa,IAAQ,OAAO,OAAO,GAAW;CAC7C,QAAQ,EACP,SAAqB,GAAO,GAAK;EAChC,OAAO,kBAAC,qBAAD;GAAwB;GAAK,GAAI,EAAqB,CAAK;EAAI,CAAA;CACvE,CACD;CACA,QAAQ,EACP,SAAqB,EAAE,mBAAgB,GAAG,KAAQ,GAAK;EACtD,OACC,kBAAC,qBAAD;GACM;GACL,qBAAqB;GACrB,GAAI,EAAqB,CAAI;EAC7B,CAAA;CAEH,CACD;CACA,KAAK,EACJ,SAAkB,GAAO,GAAK;EAC7B,OAAO,kBAAC,kBAAD;GAAqB;GAAK,GAAI,EAAqB,CAAK;EAAI,CAAA;CACpE,CACD;AACD,CAAC"}
|