From 37d6214c36d9a556e69b2594162c3dbeb9007cb0 Mon Sep 17 00:00:00 2001 From: "a.marks" Date: Tue, 17 Sep 2024 15:35:09 +0200 Subject: [PATCH 1/4] issues-361 -- alternative image BasemapSwitcher --- .../basemap-switcher/BasemapSwitcher.tsx | 137 ++++++++--- src/packages/basemap-switcher/README.md | 63 ++++++ .../basemap-switcher-app/AppUI.tsx | 212 +++++++++++++++--- .../assets/map_699730.png | Bin 0 -> 9176 bytes .../assets/map_717498.png | Bin 0 -> 38297 bytes 5 files changed, 358 insertions(+), 54 deletions(-) create mode 100644 src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_699730.png create mode 100644 src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_717498.png diff --git a/src/packages/basemap-switcher/BasemapSwitcher.tsx b/src/packages/basemap-switcher/BasemapSwitcher.tsx index 20603be38..197e8e44b 100644 --- a/src/packages/basemap-switcher/BasemapSwitcher.tsx +++ b/src/packages/basemap-switcher/BasemapSwitcher.tsx @@ -1,6 +1,16 @@ // SPDX-FileCopyrightText: 2023 Open Pioneer project (https://github.com/open-pioneer) // SPDX-License-Identifier: Apache-2.0 -import { Box, Flex, Tooltip, useToken } from "@open-pioneer/chakra-integration"; +import { + Box, + Button, + Flex, + Menu, + MenuButton, + MenuList, + Tooltip, + useToken +} from "@open-pioneer/chakra-integration"; +import { Image, MenuItem } from "@chakra-ui/react"; import { Layer, MapModel, useMapModel } from "@open-pioneer/map"; import { useIntl } from "open-pioneer:react-hooks"; import { FC, useCallback, useMemo, useRef, useSyncExternalStore } from "react"; @@ -36,6 +46,19 @@ export interface SelectOption { layer: Layer | undefined; } +export interface BasemapOnMapSwitcherImageProps { + selectedImageLabel: ImageLabelSwitchObject; + choosableImageLabel: ImageLabelSwitchObject[]; + selectedImageStyle?: { width: string; height: string }; + choosableImageStyle?: { width: string; height: string }; +} + +export interface ImageLabelSwitchObject { + image: string; + label: string; + callBack: () => void; +} + /** * These are special properties for the BasemapSwitcher. */ @@ -67,6 +90,11 @@ export interface BasemapSwitcherProps extends CommonComponentProps { * Do not use together with aria-label. */ "aria-label"?: string; + + /** + * Optional use the image basemap switcher instead of the select basemap switcher. + */ + imageBasemapSwitcher?: BasemapOnMapSwitcherImageProps; } /** @@ -78,10 +106,18 @@ export const BasemapSwitcher: FC = (props) => { mapId, allowSelectingEmptyBasemap = false, "aria-label": ariaLabel, - "aria-labelledby": ariaLabelledBy + "aria-labelledby": ariaLabelledBy, + imageBasemapSwitcher = { + selectedImageLabel: null, + choosableImageLabel: [], + selectedImageStyle: { width: "10px", height: "10px" }, + choosableImageStyle: { width: "60px", height: "40px" } + } } = props; const { containerProps } = useCommonComponentProps("basemap-switcher", props); const emptyBasemapLabel = intl.formatMessage({ id: "emptyBasemapLabel" }); + const { selectedImageLabel, choosableImageLabel, selectedImageStyle, choosableImageStyle } = + imageBasemapSwitcher; const { map } = useMapModel(mapId); const baseLayers = useBaseLayers(map); @@ -116,30 +152,60 @@ export const BasemapSwitcher: FC = (props) => { return ( {map ? ( - - aria-label={ariaLabel} - aria-labelledby={ariaLabelledBy} - className="basemap-switcher-select" - classNamePrefix="react-select" - options={options} - value={selectedLayer} - onChange={(option) => option && activateLayer(option.value)} - isClearable={false} - isSearchable={false} - menuPosition="fixed" - // optionLabel is used by screenreaders - getOptionLabel={(option) => - option.layer !== undefined - ? option.layer.title + - (option.layer.loadState === "error" - ? " " + intl.formatMessage({ id: "layerNotAvailable" }) - : "") - : emptyBasemapLabel - } - isOptionDisabled={(option) => option?.layer?.loadState === "error"} - components={components} - chakraStyles={chakraStyles} - /> + selectedImageLabel && choosableImageLabel ? ( + + + + + + + + + + {choosableImageLabel.map((imageLabel, index) => { + return ( + + ); + })} + + + ) : ( + + aria-label={ariaLabel} + aria-labelledby={ariaLabelledBy} + className="basemap-switcher-select" + classNamePrefix="react-select" + options={options} + value={selectedLayer} + onChange={(option) => option && activateLayer(option.value)} + isClearable={false} + isSearchable={false} + menuPosition="fixed" + // optionLabel is used by screenreaders + getOptionLabel={(option) => + option.layer !== undefined + ? option.layer.title + + (option.layer.loadState === "error" + ? " " + intl.formatMessage({ id: "layerNotAvailable" }) + : "") + : emptyBasemapLabel + } + isOptionDisabled={(option) => option?.layer?.loadState === "error"} + components={components} + chakraStyles={chakraStyles} + /> + ) ) : null} ); @@ -294,3 +360,22 @@ function useChakraStyles() { return chakraStyles; }, [dropDownBackground, borderColor]); } + +interface BasemapOnMapSwitcherElementProps { + src: string; + label: string; + callback: () => void; + width?: string; + height?: string; +} + +export function BasemapOnMapSwitcherElement(props: BasemapOnMapSwitcherElementProps) { + const { src, label, callback, width, height } = props; + return ( + callback()}> + + + + + ); +} diff --git a/src/packages/basemap-switcher/README.md b/src/packages/basemap-switcher/README.md index 7e7b79dff..72cf8bfbc 100644 --- a/src/packages/basemap-switcher/README.md +++ b/src/packages/basemap-switcher/README.md @@ -39,6 +39,69 @@ Example: ``` +## Alternative Usage as image basemap switcher + +```jsx + +``` + +Change to the alternative imageBasemapSwitcher. +This basemap switcher can be used if the basemap configurations are well known and should be represented +with an user-friendly image. Instead of the layer title, an image and tooltip can be used to represent +the available choices. The Available choices have to be managed by yourself with the usage of +`BasemapOnMapSwitcherImageProps`. + +```jsx +const [imageLabel, setImageLabel] = useState({ + image: firstImage, // The image that is shown on the front + label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => {} // The callback that should be called when the image is clicked. In most cases no needed for the front +} as ImageLabelSwitchObject); + +const [currentSelection, setCurrentSelection] = useState([]); + +useEffect(() => { + switch (imageLabel.label) { + case BASE_MAP_TOOLTIP: { + setCurrentSelection([ + { + image: firstImage, // The image that should be shown on the front + label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => {} // The callback that should be executed when the image is clicked + }, + { + image: secondImage, + label: EMPTY_MAP_TOOLTIP, + callBack: () => { + setImageLabel({ + image: secondImage, // The image that should be shown on the front + label: EMPTY_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => {} // The callback that should be executed when the image is clicked + }); + } + } + ]); + break; + } + case [...] + } +},[imageLabel, map]); + +const imageBasemapSwitcher = useMemo(() => { + return { + selectedImageLabel: imageLabel, + choosableImageLabel: currentSelection + }; +}, [imageLabel, currentSelection]); + +return ( + +); +``` + ## License Apache-2.0 (see `LICENSE` file) diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx b/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx index f668de5ef..3c551fb62 100644 --- a/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx @@ -23,11 +23,97 @@ import { } from "@open-pioneer/map"; import TileLayer from "ol/layer/Tile"; import { useIntl } from "open-pioneer:react-hooks"; -import { useRef } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { MAP_ID } from "./MapConfigProviderImpl"; +import { ImageLabelSwitchObject } from "@open-pioneer/basemap-switcher/BasemapSwitcher"; + +import firstImage from "./assets/map_717498.png"; // https://de.freepik.com/icon/karte_717498#fromView=search&page=1&position=3&uuid=affc743f-cf4c-4469-8919-f587e95295db +import secondImage from "./assets/map_699730.png"; // https://de.freepik.com/icon/karte_699730#fromView=search&page=1&position=9&uuid=affc743f-cf4c-4469-8919-f587e95295db + +const BASE_MAP_TOOLTIP = "Basic map"; +const EMPTY_MAP_TOOLTIP = "Empty map"; export function AppUI() { const intl = useIntl(); + const { map } = useMapModel(MAP_ID); + + const [imageBaseSwitcherBool, setImageBaseSwitcherBool] = useState(false); + + const [imageLabel, setImageLabel] = useState({ + image: firstImage, // The image that is shown on the front + label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => {} // The callback that should be called when the image is clicked. In most cases no needed for the front + } as ImageLabelSwitchObject); + + const [currentSelection, setCurrentSelection] = useState([]); + + useEffect(() => { + switch (imageLabel.label) { + case BASE_MAP_TOOLTIP: { + setCurrentSelection([ + { + image: firstImage, // The image that should be shown on the front + label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => {} // The callback that should be executed when the image is clicked + }, + { + image: secondImage, + label: EMPTY_MAP_TOOLTIP, + callBack: () => { + setImageLabel({ + image: secondImage, // The image that should be shown on the front + label: EMPTY_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => {} // The callback that should be executed when the image is clicked + }); + map?.layers.activateBaseLayer(undefined); + } + } + ]); + break; + } + case EMPTY_MAP_TOOLTIP: { + setCurrentSelection([ + { + image: firstImage, // The image that should be shown on the front + label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover + callBack: () => { + // The callback that should be executed when the image is clicked + setImageLabel({ + image: firstImage, + label: BASE_MAP_TOOLTIP, + callBack: () => {} + }); + const baseLayers = map?.layers.getAllLayers(); + if (!baseLayers || baseLayers?.length === 0) { + console.error("There is no base layer"); + return; + } + + const layer = baseLayers[0]; + if (!layer) { + console.error("Failed to find a layer"); + return; + } + map?.layers.activateBaseLayer(layer.id); + } + }, + { + image: secondImage, + label: EMPTY_MAP_TOOLTIP, + callBack: () => {} + } + ]); + break; + } + } + }, [imageLabel, map]); + + const imageBasemapSwitcher = useMemo(() => { + return { + selectedImageLabel: imageLabel, + choosableImageLabel: currentSelection + }; + }, [imageLabel, currentSelection]); return ( @@ -56,16 +142,35 @@ export function AppUI() { {intl.formatMessage({ id: "basemapLabel" })} - + {imageBaseSwitcherBool ? ( + + ) : ( + + )} Test Controls: - - - + {imageBaseSwitcherBool ? ( + <> + ) : ( + <> + + + + + )} + + setImageBaseSwitcherBool(!imageBaseSwitcherBool) + } + /> @@ -79,26 +184,46 @@ export function AppUI() { maxWidth="400px" > Description - - This application can be used to test the basemap switcher. The - basemap switcher synchronizes with the state of the shared map - model. If the map model is changed (for example, by changing the - current basemap), the basemap switcher must update itself - accordingly. - - - - Adding a new basemap updates the dropdown menu (new option) - - - Changing the current basemap to another basemap updates the - selected option - - - Setting the current basemap to {"'undefined'"} also updates - the selection - - + + {imageBaseSwitcherBool ? ( + <> + + This application can be used to test the image basemap + switcher. This basemap switcher can be used if the + basemap configurations are well known and should be + represented with an user-friendly image. + + + Instead of the layer title, an image and tooltip can be + used to represent the available choices. The Available + choices have to be managed by yourself. + + + ) : ( + <> + + This application can be used to test the basemap + switcher. The basemap switcher synchronizes with the + state of the shared map model. If the map model is + changed (for example, by changing the current basemap), + the basemap switcher must update itself accordingly. + + + + Adding a new basemap updates the dropdown menu (new + option) + + + Changing the current basemap to another basemap + updates the selected option + + + Setting the current basemap to {"'undefined'"} also + updates the selection + + + + )} @@ -174,3 +299,34 @@ function ClearBaseLayerButton(props: { mapId: string }) { return ; } + +function ChangeBaseSwitchButton(props: { callback: () => void }) { + const { callback } = props; + const { map } = useMapModel(MAP_ID); + + // To minimise the example, always load the first basemap for the example images example + const loadFirstBasemapForExample = useCallback(() => { + const baseLayers = map?.layers.getAllLayers(); + if (!baseLayers || baseLayers?.length === 0) { + return; + } + const layer = baseLayers[0]; + if (!layer) { + console.error("Failed to find a layer"); + return; + } + map?.layers.activateBaseLayer(layer.id); + }, [map]); + + return ( + + ); +} diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_699730.png b/src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_699730.png new file mode 100644 index 0000000000000000000000000000000000000000..3a151cae25585695435500a1277efac04f3c11f3 GIT binary patch literal 9176 zcmdUVc|4Tg+y9xlxrt$#gs~UWY8gXhiAp3XDUmEwGPbgWh~l35hRRaYVl8~4(jujW zgj+;q!ly(OCVfNMMzSySJGak&zt{8U_j#Vzs-sZu5+F1J?9*D+DJ(# zN&o<)Y`0lC0zige$v_;1AAcg7r{RZ4=w{o!;_&aJ_~8WjyeN3v{!mEYO8k>HugZ*s zg9>3=UBdPRvBM$`9`gnf5fM6mfdQdj2ZOzJf{yuQ4w)$eungE*ZQ2`|HP~_DNxt*` zoRMDp&6GEXKdLi1dU1?Z%OtlhR=BbpbGT!<_X_HLtL!Yx>)x9tEFouegk9OT)12)~ zPycJ#Iz``0a-8j$)*Z^GI6duJJ%!EXb9Eb5PBcG=?(Yn3oWE6`-Q^nb?XO=$L3?D2 zv!gqQO;_s6*m9e%-HhwRG;M!nla|>!o}mC+uHs>^joZ8ovE=5V3V^F=_y%0mEZBrX zDk*)SY3qOSKTT@F?vvW)D5>7<%V*<9IYDGK(#G_3F|m%c4B7Mze^fOKw$nmZ@HgQ% zu`;CY=(Kj1NT+y~XjW=^*U#`X{uxjn(XBPRdD1g`uz29y_T#xC^6M%wYE|sM4 zi0cK&<;yCw*5ME8=r|Iz9(|$&d1(LiE9}buK{wWAR+;A`uSW_}aTz&Bq0KT3 zK9t6!CX!TMfs4&o7QG)U`(w`!`dq?kqWePY6-3GM#>x&;4Bml@d-KotPP^-)iig0q zyVhqGR=vsun)WwB=Nc3cS!i*4Zs=SU9l82>Jy7p<;g93am@d1=X!>iK=FuLv*f2Rp zQKZ;rFV<#hNi4xwHFBLG0H^BCeTd+s03XE1yT@jx?XSFR8(Omy?Tr5nCM0n#m6-u` zb<7!5N-ICTFkFtc*;&?NdEHt4yD}JhqDx)NA_1HG96f3B&j*r57T0_OAu&-9OTs-jR)sg^dh7H1FKq z6NQ!UjHon_S?C!}84#Oqp}TkjuT#1#FUt(Cf?u z9Q#^jP~YJ5-H+^Lspt|AI_H$Q8eCIA+K;Ru74hg7Q3oi#67Kovm0PT=mlWn*i?K2m z-kAK`EjE0QIOct|4p)MkLePbFHumi>CuTb?Zy1{h^e59MHHcB_DKP$?$ZX+rFR(12H%v<8z_K&20G2$2AOeQc(F!& zzpaexOuSWHI{!og{GcNpie^B%ZAZ<~^tr7{i2wP}xhOj5NUOseACGL>T8n2`%Yynu z(x<}5rSomPnD&Rq3M(a$oM>9eR_VEB7)MlVr3Hdlr7?39EXHs#GQ)WuMnf(`!`d;5 zs3rT=S_j_Fv=QNaCoy#HI2}|o(0$BO!mPf$H5vV}5|M^djbqLSLE;%kQL!y_-U-UO z8(Mm(fq3t6wolDFhJ!s=$3&Y~_D;L9L1HGODEA$~?9SSTv8S>K z%fvN>^9y06GjhT=w6^Y~V19Rv(TawF2hX#!)8%!AoA;24)~N^9)!sb&^feyCKjM`` zfvnDw^iEx^#UnWK-aW-~!mY)mqWc`W@mi*?Via?aBa8|IzEs0lnGa~re?_0X$vde? z2k{KFy~oY7UmyH(+D$Rr!1VM7%2ke(0VL2waD01|8q5U-YDmMF6PMH!cdiak*NzY6U<0`9-1(=B?Z ze_bZ!oV`?sZ$&LP)#8!Ht*s6eaMb%>jNm5Fx6SJ7jilR)5;>}HoK6SrZ_Ut{Yi-oT zGp{jH)0uaW|E(=&YOv5#NlBy}CyD}sS~ezf^t1W{?o+^^Qy1L7lsgLwTkQAW-8-E@ zMl4tSp&=-~ZQW~pBVP*%x}Ep*5MEkws}?x;Wggj{Qj^)U0ZVo(8~KwPgC!m=4#c0v^(~U;3Z1CWOkUNwGE{e zd28rE_6={8Gs-|;{MpEkuLwP5>!b(Pcu|)AaPxG0O2N)6Akp3Ms|*FRJ|ct6U@~aO zXJg~m)MjNQXVZZiyxZ?|3!zmWTLB~;IM3OmbdIx&5iRzBnbmLSpH9lDcT$E9T;V5! zSRQC!ibSx!qpu2T@ZWAin4X95nM--Q8Q{rHo*7VPDKhwOp4{VAplQ3cB66X0{%88s zE@Ws6SF0K{-H`f+kraxZ?^}&R_KwSKq{>O3Rx+uFdkWG|$nb4At+FoT?szzJbUuB` zl^Sd7nnKFi`QB3@(vFkAvETj_cW?54x}x~+sZ;(-t~p*r0p(|+-W`XZ;h6F&lSQR@ zl@0HCRBB22RjV2&PJHo5BgiB&-U;oq_c^|(x zzsbr>EHaQC^RQRDP*Z(Ka+b=U&W!nq;s_>Gq}?X%ddqt_US7G;n0!%F1(q?QkxGKw z$}y9=Wn@7a9<9;+FV$zy9w!*DSNB+yRrf7k$i5Bat!v!Ny7miUQS)J^hxk{ovt6;K zd=*;A<>c|=m9&s`!E%B=*@{6|+_Rxh)QJHLyf5byqRGO8)UGIV{-D=6EWcXFiJlx+ z0=jF;ZhnL1O`gVy)r+HNJ9k^*8S%nbUh3V?&OS4cfQ6Bt9W5lBUt^f6U_h2onU{=M zT~zB!hcgDV_WEAmq@E-AMlH4xy>}3nn9qubb_wgFk}zrM*i|#V3}aYvKDmBD;$f?u zNLbk9mMM#rO~hh@SzT2b*R3t%<1NBQdl__sET1>492_EM7qNt-qBakP`+Yk$5zAd0t*QDO zRglM<-5cLeg(Vv_E;|M-S*dXWyCE&S&F;Bp;ufn%@UlstT5i3RWUev~eUTbgGM_`( zwJ>o7Im&ESSW-PE<^wf5ezZ?qAkeLYoE{v$Bi{E@5PM8A-hvR&yw8*%^=$t(eG^uE z-0{3RapOxds$&5?0x@Hv4(8rk%d}WZn-J+lXM@F3OH>7$_VV8;!()UT~p zZk)E;(;fG|+qs{~Pg&B^LQL%Ki5Iqo&0MOems4ADMC3>{v9SNomBI>Xp{NF5oS^Z! zCM~=y)_$5+Bn7?Re2%6(FKLa-5wAi@B0gI!EZou89|( zrs)yxIG?6A|Iqs-@r)6#SkNDWrs%f(9u1sukvFu-=8rT&v+*M_la+CSRG|gAqW$mo z_twOO_R9&zac$p(7o~Mao8cKLVA4rjiJf`%JyqEHVeXr73C1(SXbx8(v8!#0#Z=|t zsY*TaJHq~D&%!2!C*xB$3*dVB&}QAUmcrUCtea_(@!P5GWhS+iI7R(YO;q4%_ic>JPX?4!!z}6Hm(*HdCnZ# z!rTf^L3Z`~4p#jW45GoWlUqDy;H2f`7z_2lroY?I=s^h%oKN_Um4!b!`3NrYUEElD zvOu~;Wg#XSj&gL^U9YLav&kC#Jn0tYe?|vQU5bk#akY3~cca%rESTm~n;Hl@^_+V% zlITK6hvx8I%VFHBSXsWcNU2%~-;?CYC{B2k#jL!94Pnl^o@_0_W0)eKGOL!7)X>g- zY@6?d^^^bI#*?lrr_TyJU6|wws+kE>SG(-qL4wWE_tbJv(R~|cxirY%jwbjaTRC<% zeJVxeh@S)806!D-N6T@Qwhqedcig=8_@pjRgTEf%P&PT}={0^?SkN)#Plt3w2yfyy z;IX861>=&R&)q~`(o5Xg6~(=S4>Xw;sp(X5%(?x|M`FUiOX8m7=kIuxebKR}HvAKs z%bB{!4a97vdLeHhDI{66p^^92Tq8T(hwNirBa0nCTFDzPrpr^yiem^5T=niT;zUT5 zr!3JQjmD?84Bre&hUWjz-=P1?lj(o*3jcpufG}Q@Qrg`FW0J9I$baWk4d8Qrg0W)B+F*TwC11<*Wc~Z+Q^Qp2nl7Xl^d9c1dpGFF z&Ff%*d3EIpxuzxQC z1o8N(xK68sx|x+Bmo#nH`l-XV2Lrzx-)SRO2(naYMygR7+&sU6jc~jN&z3Gvk#zxl)~Lw?RZ(nenJW+jJK?L>qZPU+R zhG8ja;^NHRo4y8N&GUq#61vf=1^ww$AJb2;9$q-yQ^hk&YBQzX*nK2|X+fFoeHE~s zyJoL9(2KtPk{dKRx`KaWG@F0n4R82x&rNI(=S+T!XiTW8C0Fz4y%u0x%6Ii74{_6n z*Oc`9&>x+`Z%XQ%km9eDC|qfK*Wm$4fNkz~lQ4rh&cnA{+q>r;Cco6}_a@O+uBOwS z7tl#+-s6+*i&FZ3trTi!Nn|ppib*A>_>AAJevzD# zprdMd1=^|>M6zzIF60`TL`wwwsh4c~Vy-7}Y04vbb6#c38eJ{85oCGU@z^X)}j_Sf}G-Vb?@ zaA$BBnr_=sv6^s+`y&m!SyxVY%ZL{Lv0*Dbn@y4J+_1EEa!$=!Abf}`2BeF<@sU^; zK1dFLfp8dhF}leCR~!zht?-~-(sX(QjK8{&`JtjM0$F&3Uh|j4*2=rwtkH;E;pWJa zvQTt^6=pk`KPuW%vX5i9ebu9sC9$g9Jc&?yNSvl0ywO%)onDq3 ze)Y4>xfyXyTiCFZj%XwY++U#{NS!Ss+f7LjWig6>3pBRC;`er+IazTjy=zTTvSz_% z6mQvnDo=2+b>c@XJj$UQyBvBL6?N7%S0(NjKTarF>Ci2kKwavxg}b-lE_oSKSG3cO zRSDnRw~s1+pYh zR^lekq8>7|x}`1wHnfmXzW3Q{(KhUu@+McPo0B|9pOWPdOK4Ag#MR_o0}jwa4B5JE zo)4P14|ShFaUDO2;%)^DfCpLE3@>#XUQE>b;rM$=?Q~;ds^(x$3z!Uemq?O}(N*`@ zGyN7zC=nH;;N}uKGef*}W5#)qg%fJYo?k0?_o{xQa%6RLy_AUi0?GmkUk9_}yB-D#F>UU*+z=j!aUd&<$?@CZY3!9 z2L5XmZDBC~CT(OqA@Z1&a%D$QVtScX4ZL`JrkUpl_e+n5Esl&5>xVJbT(1#`M3Dq8 zITw1TQqZA|!YEs-lh@n640}*cA|+bIDSyh>3lJ5z*y4}O(Jkg~Hr&0Oy9l)Yxdb0X zcktUW=gioSzv2Uqj=N{g*>U$d42rYfuEi#(<>!*kO_>(vf3!4hKkhyS4);u?oq9Rc z8{cVX(}3PES{Qdc1>g&xw5@mq96u-zDzjjd+ZxXJU`4!%#_A~LDW@yMv$E3j)xxi6 z8s?+}@P^04da30pWF66%jZ6!}g$d1j0dH=-;BKzbqc}T`=UX1EHE2Y3g}ywY$BaGO zmf54M9BF!QnjD~H#+ zI-A!xZO7g2X99r!Xf=Kv3ytfnm#YvpGiRy|bs>c5ggZ zEYL*FX&ZO%6;hEVQ>ep?RgPRG_?z==B#OU2eX3+?rQ&w(-YinlS>Ehgz7^l-=SqPy*@0QN>>rm!F$CO$>ls^t{IoFrtOn1UbL+_=G8M$aK<)Z=*lj+4)V^ z_Lto!H8HpCY!7iaaWfD5~~uvvQLu3FPDtsn8-;6(v6*PJx!iw7RV|)f(MNxDO|LRnfp1&V)@(oqG3) zTI>a^+&`Q@)H6gI+0K{51F#uV-O`HYML1IrZRUIs7HxNYs@^RJu^St*QQy?>3-m~9 ztCPyclCTd+{qvIQ1TWlq8flGVv7ELlp%)V5Q$=rTS0-)ypml&ZCQKVqp3mH%)pP^a z(^d~5JaSYPSt(V%I_cw;`KoJq-Rj-fcTMkh(MBBTCGTZJp zoGcWs;?tT9A@F0L_8KpsjWE`$YKQG`SdCaZ$|`2{N4%x`Vj95q@(;I4`3v;m9S#bJ z<%c}uR<-7RjNqAEqx^Ds*R$Vj^;KW}hUCd5k){G){@pWy{y`05ou+@ZBwT9nsahO% zv$@u5)e9A9yUr&}kmU7EgKtId>GHvZ=vNcw@Wu29a-hhpTrGw!v6OS^y@Y%E^h8M9 z&wpoC^BqflSjr1vj>>Nzu=y@Wa~4s3Gr+Ex(d$SZ*Cov>8cRjmuvNbf8Clni;MF~z z5d&VK=KH@|mRK-#=~2w5M49L592GI0)YIM5t%>ZBcH|KeAawB+%?rh{yBThX^D4`WQ+az*o z?H5242sAc#yH(oNT7J2u2%GU7YdSc3tgtHuw$THZ8K8;|`kwO;;-Y|*IK&6 z&N8(9PJ~fp!L-o(!;agh4>nc}oM?WehpzDg&5Z;MfsCzD0KKFM_h_3AILrdgZ%gOH z=t%f#1<)vRqj)^|g%4%N6_NwBclx6zfHZn_Q=bh7a4lw z>mvBcZ~dT=H7QKRDWdRUcOoZdOc7-29HIEG zKrMx^hrX)Tasrja>@(p`-N=rR-Zkc_pLt5sIJGS_527d(Y#z4d)Ap(&7bX8P&#rGV^;YR2w`!)hZ7}A3v!n6$WJq zT)xl(mD?o);RqD}mDPVQT&jjJLz9PG+DQlxE%M6oNAV%p8Gj~6TUiu>92{jhI1xz8 zFE4N;$geO~LNK~xB0B;C5oZ|=Aq#IH<^|jEPb%ImKuZT1O;%tX?4h5+5j_;PywgGo zb;EDx(|vUou&@uu0AxSiYDsx1J899cv;HlC+a!7hko2$Yevztw_>=y z7c0wk5$K)%P@+xX4|$yD%#yogR+}06;rxmo01#W^w*W)+wNn3bRyc0+dWR0`FHO)J zKqPo!zROclh<6m|JgBvlA>g|{Pbm`Y&-+)Kq2mlwjl0R59x}vDBGla5+v#E^W#gn1@kPQ}-QrIHG^^m?3x@`;R0C0Aj{?SN!C^GNE zj`?+QmQtRTr&47k%?si{nu9oKdbeQr z;B^ad&OR1^*Sk8nm2BHJ5X;wp=nHs|J&Kw9y=j5TX$lArOd?jXRe{*nJ@*-7HvC7HXI literal 0 HcmV?d00001 diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_717498.png b/src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_717498.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ffd91cc84b282a03a0b5efd1a287f822d6c218 GIT binary patch literal 38297 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 Date: Tue, 17 Sep 2024 15:37:13 +0200 Subject: [PATCH 2/4] issues-361 -- add changeset --- .changeset/witty-lemons-look.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/witty-lemons-look.md diff --git a/.changeset/witty-lemons-look.md b/.changeset/witty-lemons-look.md new file mode 100644 index 000000000..eaf9f3f6b --- /dev/null +++ b/.changeset/witty-lemons-look.md @@ -0,0 +1,5 @@ +--- +"@open-pioneer/basemap-switcher": patch +--- + +Add optional image basemap switcher From 883bedf4f2b6605b889eafc112bcf67ac0f39867 Mon Sep 17 00:00:00 2001 From: "a.marks" Date: Wed, 23 Oct 2024 11:55:18 +0200 Subject: [PATCH 3/4] issues-361 -- improvements for image-basemap-switcher - own bundle, intern handling of baselayer, config of thumbnails --- pnpm-lock.yaml | 177 ++++++++------ .../basemap-switcher/BasemapSwitcher.tsx | 137 ++--------- src/packages/basemap-switcher/README.md | 63 ----- .../imageBasemap-switcher/CHANGELOG.md | 105 ++++++++ .../ImageBasemapSwitcher.tsx | 216 ++++++++++++++++ src/packages/imageBasemap-switcher/LICENSE | 202 +++++++++++++++ src/packages/imageBasemap-switcher/README.md | 65 +++++ .../assets/cancel_4968337.png | Bin 0 -> 11651 bytes .../assets/map_699730.png | Bin .../imageBasemap-switcher/build.config.mjs | 11 + .../imageBasemap-switcher/i18n/de.yaml | 3 + .../imageBasemap-switcher/i18n/en.yaml | 3 + src/packages/imageBasemap-switcher/index.ts | 3 + .../imageBasemap-switcher/package.json | 38 +++ .../imageBasemap-switcher/typedoc.json | 4 + .../basemap-switcher-app/AppUI.tsx | 231 ++++-------------- .../MapConfigProviderImpl.ts | 10 +- .../basemap-switcher-app/app.css | 4 + .../basemap-switcher-app/build.config.mjs | 1 + .../basemap-switcher-app/i18n/en.yaml | 1 + .../basemap-switcher-app/package.json | 1 + 21 files changed, 849 insertions(+), 426 deletions(-) create mode 100644 src/packages/imageBasemap-switcher/CHANGELOG.md create mode 100644 src/packages/imageBasemap-switcher/ImageBasemapSwitcher.tsx create mode 100644 src/packages/imageBasemap-switcher/LICENSE create mode 100644 src/packages/imageBasemap-switcher/README.md create mode 100644 src/packages/imageBasemap-switcher/assets/cancel_4968337.png rename src/{samples/test-basemap-switcher/basemap-switcher-app => packages/imageBasemap-switcher}/assets/map_699730.png (100%) create mode 100644 src/packages/imageBasemap-switcher/build.config.mjs create mode 100644 src/packages/imageBasemap-switcher/i18n/de.yaml create mode 100644 src/packages/imageBasemap-switcher/i18n/en.yaml create mode 100644 src/packages/imageBasemap-switcher/index.ts create mode 100644 src/packages/imageBasemap-switcher/package.json create mode 100644 src/packages/imageBasemap-switcher/typedoc.json create mode 100644 src/samples/test-basemap-switcher/basemap-switcher-app/app.css diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 719a28650..c7acb3963 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -65,16 +65,16 @@ importers: version: 1.2.3 '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/integration': specifier: ^2.0.8 - version: 2.0.8(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.0.8(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/notifier': specifier: ^0.3.4 - version: 0.3.4(stf2mfqtqmu37k6stpqwa5thze) + version: 0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/test-utils': specifier: ^1.1.3 version: 1.1.3(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(@testing-library/dom@9.3.4)(@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -117,7 +117,7 @@ importers: version: 2.0.2 '@open-pioneer/vite-plugin-pioneer': specifier: ^3.0.3 - version: 3.0.3(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje))(sass@1.77.1)(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1)) + version: 3.0.3(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.1)(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1)) '@testing-library/dom': specifier: ^9.3.3 version: 9.3.4 @@ -252,7 +252,7 @@ importers: version: 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -275,10 +275,10 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) chakra-react-select: specifier: ^4.7.6 - version: 4.7.6(nrfly3qnx4e4qhfmxzodnynsum) + version: 4.7.6(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/menu@2.2.1(patch_hash=x7y3u4pvzv3wpkejsnxo3rp5vq)(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ol: specifier: ^9.0.0 version: 9.1.0 @@ -313,7 +313,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ol: specifier: ^9.0.0 version: 9.1.0 @@ -342,13 +342,13 @@ importers: version: 1.2.3 '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/map': specifier: workspace:^ version: link:../map '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ol: specifier: ^9.0.0 version: 9.1.0 @@ -374,13 +374,51 @@ importers: version: link:../map '@open-pioneer/notifier': specifier: ^0.3.4 - version: 0.3.4(stf2mfqtqmu37k6stpqwa5thze) + version: 0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/react-utils': specifier: workspace:^ version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ol: + specifier: ^9.0.0 + version: 9.1.0 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-icons: + specifier: ^4.12.0 + version: 4.12.0(react@18.3.1) + devDependencies: + '@open-pioneer/map-test-utils': + specifier: workspace:^ + version: link:../map-test-utils + '@open-pioneer/test-utils': + specifier: ^1.1.3 + version: 1.1.3(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(@testing-library/dom@9.3.4)(@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + openlayers-base-packages: + specifier: workspace:* + version: link:../../.. + publishDirectory: dist + + src/packages/imageBasemap-switcher: + dependencies: + '@open-pioneer/chakra-integration': + specifier: ^1.1.3 + version: 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@open-pioneer/map': + specifier: workspace:^ + version: link:../map + '@open-pioneer/react-utils': + specifier: workspace:^ + version: link:../react-utils + '@open-pioneer/runtime': + specifier: ^2.1.5 + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + chakra-react-select: + specifier: ^4.7.6 + version: 4.7.6(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/menu@2.2.1(patch_hash=x7y3u4pvzv3wpkejsnxo3rp5vq)(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ol: specifier: ^9.0.0 version: 9.1.0 @@ -418,7 +456,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -450,13 +488,13 @@ importers: version: 1.2.3 '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/react-utils': specifier: workspace:^ version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/proj4': specifier: ^2.5.2 version: 2.5.5 @@ -506,7 +544,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -564,7 +602,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -593,7 +631,7 @@ importers: version: 1.2.3 '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/search': specifier: workspace:^ version: link:../search @@ -628,7 +666,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ol: specifier: ^9.0.0 version: 9.1.0 @@ -660,13 +698,13 @@ importers: version: link:../map '@open-pioneer/notifier': specifier: ^0.3.4 - version: 0.3.4(stf2mfqtqmu37k6stpqwa5thze) + version: 0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/react-utils': specifier: workspace:^ version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -742,7 +780,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-table': specifier: ^8.11.6 version: 8.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -783,7 +821,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ol: specifier: ^9.0.0 version: 9.1.0 @@ -815,7 +853,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -850,10 +888,10 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) chakra-react-select: specifier: ^4.7.6 - version: 4.7.6(nrfly3qnx4e4qhfmxzodnynsum) + version: 4.7.6(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/menu@2.2.1(patch_hash=x7y3u4pvzv3wpkejsnxo3rp5vq)(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -894,16 +932,16 @@ importers: version: link:../map '@open-pioneer/notifier': specifier: ^0.3.4 - version: 0.3.4(stf2mfqtqmu37k6stpqwa5thze) + version: 0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/react-utils': specifier: workspace:^ version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) chakra-react-select: specifier: ^4.7.6 - version: 4.7.6(nrfly3qnx4e4qhfmxzodnynsum) + version: 4.7.6(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/menu@2.2.1(patch_hash=x7y3u4pvzv3wpkejsnxo3rp5vq)(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -944,7 +982,7 @@ importers: version: 1.2.3 '@open-pioneer/local-storage': specifier: ^0.3.1 - version: 0.3.2(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 0.3.2(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/map': specifier: workspace:^ version: link:../map @@ -953,7 +991,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -997,7 +1035,7 @@ importers: version: 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: openlayers-base-packages: specifier: workspace:* @@ -1020,7 +1058,7 @@ importers: version: link:../react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.3.2 version: 2.5.1 @@ -1079,7 +1117,7 @@ importers: version: link:../../../packages/react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/theme': specifier: workspace:^ version: link:../../../packages/theme @@ -1130,7 +1168,7 @@ importers: version: link:../../../packages/geolocation '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/legend': specifier: workspace:^ version: link:../../../packages/legend @@ -1145,7 +1183,7 @@ importers: version: link:../../../packages/measurement '@open-pioneer/notifier': specifier: ^0.3.4 - version: 0.3.4(stf2mfqtqmu37k6stpqwa5thze) + version: 0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/ogc-features': specifier: workspace:^ version: link:../../../packages/ogc-features @@ -1163,7 +1201,7 @@ importers: version: link:../../../packages/result-list '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/scale-bar': specifier: workspace:^ version: link:../../../packages/scale-bar @@ -1214,7 +1252,7 @@ importers: version: 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/map': specifier: workspace:^ version: link:../../../packages/map @@ -1229,7 +1267,7 @@ importers: version: link:../../../packages/react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/theme': specifier: workspace:^ version: link:../../../packages/theme @@ -1268,7 +1306,7 @@ importers: version: link:../../../packages/geolocation '@open-pioneer/http': specifier: ^2.1.7 - version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)) + version: 2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/legend': specifier: workspace:^ version: link:../../../packages/legend @@ -1283,7 +1321,7 @@ importers: version: link:../../../packages/measurement '@open-pioneer/notifier': specifier: ^0.3.4 - version: 0.3.4(stf2mfqtqmu37k6stpqwa5thze) + version: 0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/ogc-features': specifier: workspace:^ version: link:../../../packages/ogc-features @@ -1301,7 +1339,7 @@ importers: version: link:../../../packages/result-list '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/scale-bar': specifier: workspace:^ version: link:../../../packages/scale-bar @@ -1338,6 +1376,9 @@ importers: '@open-pioneer/chakra-integration': specifier: ^1.1.3 version: 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@open-pioneer/image-basemap-switcher': + specifier: workspace:^ + version: link:../../../packages/imageBasemap-switcher '@open-pioneer/map': specifier: workspace:^ version: link:../../../packages/map @@ -1346,7 +1387,7 @@ importers: version: link:../../../packages/react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/theme': specifier: workspace:^ version: link:../../../packages/theme @@ -1367,7 +1408,7 @@ importers: version: link:../../../packages/react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1379,7 +1420,7 @@ importers: version: 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1400,7 +1441,7 @@ importers: version: link:../../../packages/react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/theme': specifier: workspace:^ version: link:../../../packages/theme @@ -1424,7 +1465,7 @@ importers: version: link:../../../packages/result-list '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/theme': specifier: workspace:^ version: link:../../../packages/theme @@ -1457,7 +1498,7 @@ importers: version: link:../../../packages/react-utils '@open-pioneer/runtime': specifier: ^2.1.5 - version: 2.1.5(6as4seyv4tlwi72ovx7oydseje) + version: 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/toc': specifier: workspace:^ version: link:../../../packages/toc @@ -7513,26 +7554,26 @@ snapshots: '@open-pioneer/core@1.2.3': {} - '@open-pioneer/http@2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje))': - dependencies: + ? '@open-pioneer/http@2.1.7(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))' + : dependencies: '@open-pioneer/core': 1.2.3 - '@open-pioneer/runtime': 2.1.5(6as4seyv4tlwi72ovx7oydseje) + '@open-pioneer/runtime': 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@open-pioneer/integration@2.0.8(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje))': - dependencies: - '@open-pioneer/runtime': 2.1.5(6as4seyv4tlwi72ovx7oydseje) + ? '@open-pioneer/integration@2.0.8(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))' + : dependencies: + '@open-pioneer/runtime': 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@open-pioneer/local-storage@0.3.2(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje))': - dependencies: + ? '@open-pioneer/local-storage@0.3.2(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))' + : dependencies: '@open-pioneer/core': 1.2.3 - '@open-pioneer/runtime': 2.1.5(6as4seyv4tlwi72ovx7oydseje) + '@open-pioneer/runtime': 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@open-pioneer/notifier@0.3.4(stf2mfqtqmu37k6stpqwa5thze)': - dependencies: + ? '@open-pioneer/notifier@0.3.4(@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)' + : dependencies: '@chakra-ui/icons': 2.1.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) '@open-pioneer/chakra-integration': 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@open-pioneer/core': 1.2.3 - '@open-pioneer/runtime': 2.1.5(6as4seyv4tlwi72ovx7oydseje) + '@open-pioneer/runtime': 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 '@open-pioneer/reactivity@0.1.0(@conterra/reactivity-core@0.4.0)(react@18.3.1)': @@ -7544,8 +7585,8 @@ snapshots: dependencies: react: 18.3.1 - '@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje)': - dependencies: + ? '@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)' + : dependencies: '@formatjs/intl': 2.10.2(typescript@5.3.3) '@open-pioneer/base-theme': 0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@open-pioneer/chakra-integration': 1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -7570,13 +7611,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@open-pioneer/vite-plugin-pioneer@3.0.3(@open-pioneer/runtime@2.1.5(6as4seyv4tlwi72ovx7oydseje))(sass@1.77.1)(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1))': - dependencies: + ? '@open-pioneer/vite-plugin-pioneer@3.0.3(@open-pioneer/runtime@2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.1)(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1))' + : dependencies: '@babel/generator': 7.24.7 '@babel/template': 7.24.7 '@babel/types': 7.24.7 '@open-pioneer/build-common': 2.0.4 - '@open-pioneer/runtime': 2.1.5(6as4seyv4tlwi72ovx7oydseje) + '@open-pioneer/runtime': 2.1.5(@formatjs/intl@2.10.2(typescript@5.3.3))(@open-pioneer/base-theme@0.3.2(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)))(@open-pioneer/chakra-integration@1.1.3(@chakra-ui/react@2.8.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@emotion/cache@11.11.0)(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@open-pioneer/core@1.2.3)(@open-pioneer/runtime-react-support@1.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) debug: 4.3.5 js-yaml: 4.1.0 sass: 1.77.1 @@ -8252,8 +8293,8 @@ snapshots: pathval: 1.1.1 type-detect: 4.0.8 - chakra-react-select@4.7.6(nrfly3qnx4e4qhfmxzodnynsum): - dependencies: + ? chakra-react-select@4.7.6(@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/menu@2.2.1(patch_hash=x7y3u4pvzv3wpkejsnxo3rp5vq)(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1))(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + : dependencies: '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1))(react@18.3.1) diff --git a/src/packages/basemap-switcher/BasemapSwitcher.tsx b/src/packages/basemap-switcher/BasemapSwitcher.tsx index 197e8e44b..20603be38 100644 --- a/src/packages/basemap-switcher/BasemapSwitcher.tsx +++ b/src/packages/basemap-switcher/BasemapSwitcher.tsx @@ -1,16 +1,6 @@ // SPDX-FileCopyrightText: 2023 Open Pioneer project (https://github.com/open-pioneer) // SPDX-License-Identifier: Apache-2.0 -import { - Box, - Button, - Flex, - Menu, - MenuButton, - MenuList, - Tooltip, - useToken -} from "@open-pioneer/chakra-integration"; -import { Image, MenuItem } from "@chakra-ui/react"; +import { Box, Flex, Tooltip, useToken } from "@open-pioneer/chakra-integration"; import { Layer, MapModel, useMapModel } from "@open-pioneer/map"; import { useIntl } from "open-pioneer:react-hooks"; import { FC, useCallback, useMemo, useRef, useSyncExternalStore } from "react"; @@ -46,19 +36,6 @@ export interface SelectOption { layer: Layer | undefined; } -export interface BasemapOnMapSwitcherImageProps { - selectedImageLabel: ImageLabelSwitchObject; - choosableImageLabel: ImageLabelSwitchObject[]; - selectedImageStyle?: { width: string; height: string }; - choosableImageStyle?: { width: string; height: string }; -} - -export interface ImageLabelSwitchObject { - image: string; - label: string; - callBack: () => void; -} - /** * These are special properties for the BasemapSwitcher. */ @@ -90,11 +67,6 @@ export interface BasemapSwitcherProps extends CommonComponentProps { * Do not use together with aria-label. */ "aria-label"?: string; - - /** - * Optional use the image basemap switcher instead of the select basemap switcher. - */ - imageBasemapSwitcher?: BasemapOnMapSwitcherImageProps; } /** @@ -106,18 +78,10 @@ export const BasemapSwitcher: FC = (props) => { mapId, allowSelectingEmptyBasemap = false, "aria-label": ariaLabel, - "aria-labelledby": ariaLabelledBy, - imageBasemapSwitcher = { - selectedImageLabel: null, - choosableImageLabel: [], - selectedImageStyle: { width: "10px", height: "10px" }, - choosableImageStyle: { width: "60px", height: "40px" } - } + "aria-labelledby": ariaLabelledBy } = props; const { containerProps } = useCommonComponentProps("basemap-switcher", props); const emptyBasemapLabel = intl.formatMessage({ id: "emptyBasemapLabel" }); - const { selectedImageLabel, choosableImageLabel, selectedImageStyle, choosableImageStyle } = - imageBasemapSwitcher; const { map } = useMapModel(mapId); const baseLayers = useBaseLayers(map); @@ -152,60 +116,30 @@ export const BasemapSwitcher: FC = (props) => { return ( {map ? ( - selectedImageLabel && choosableImageLabel ? ( - - - - - - - - - - {choosableImageLabel.map((imageLabel, index) => { - return ( - - ); - })} - - - ) : ( - - aria-label={ariaLabel} - aria-labelledby={ariaLabelledBy} - className="basemap-switcher-select" - classNamePrefix="react-select" - options={options} - value={selectedLayer} - onChange={(option) => option && activateLayer(option.value)} - isClearable={false} - isSearchable={false} - menuPosition="fixed" - // optionLabel is used by screenreaders - getOptionLabel={(option) => - option.layer !== undefined - ? option.layer.title + - (option.layer.loadState === "error" - ? " " + intl.formatMessage({ id: "layerNotAvailable" }) - : "") - : emptyBasemapLabel - } - isOptionDisabled={(option) => option?.layer?.loadState === "error"} - components={components} - chakraStyles={chakraStyles} - /> - ) + + aria-label={ariaLabel} + aria-labelledby={ariaLabelledBy} + className="basemap-switcher-select" + classNamePrefix="react-select" + options={options} + value={selectedLayer} + onChange={(option) => option && activateLayer(option.value)} + isClearable={false} + isSearchable={false} + menuPosition="fixed" + // optionLabel is used by screenreaders + getOptionLabel={(option) => + option.layer !== undefined + ? option.layer.title + + (option.layer.loadState === "error" + ? " " + intl.formatMessage({ id: "layerNotAvailable" }) + : "") + : emptyBasemapLabel + } + isOptionDisabled={(option) => option?.layer?.loadState === "error"} + components={components} + chakraStyles={chakraStyles} + /> ) : null} ); @@ -360,22 +294,3 @@ function useChakraStyles() { return chakraStyles; }, [dropDownBackground, borderColor]); } - -interface BasemapOnMapSwitcherElementProps { - src: string; - label: string; - callback: () => void; - width?: string; - height?: string; -} - -export function BasemapOnMapSwitcherElement(props: BasemapOnMapSwitcherElementProps) { - const { src, label, callback, width, height } = props; - return ( - callback()}> - - - - - ); -} diff --git a/src/packages/basemap-switcher/README.md b/src/packages/basemap-switcher/README.md index 72cf8bfbc..7e7b79dff 100644 --- a/src/packages/basemap-switcher/README.md +++ b/src/packages/basemap-switcher/README.md @@ -39,69 +39,6 @@ Example: ``` -## Alternative Usage as image basemap switcher - -```jsx - -``` - -Change to the alternative imageBasemapSwitcher. -This basemap switcher can be used if the basemap configurations are well known and should be represented -with an user-friendly image. Instead of the layer title, an image and tooltip can be used to represent -the available choices. The Available choices have to be managed by yourself with the usage of -`BasemapOnMapSwitcherImageProps`. - -```jsx -const [imageLabel, setImageLabel] = useState({ - image: firstImage, // The image that is shown on the front - label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => {} // The callback that should be called when the image is clicked. In most cases no needed for the front -} as ImageLabelSwitchObject); - -const [currentSelection, setCurrentSelection] = useState([]); - -useEffect(() => { - switch (imageLabel.label) { - case BASE_MAP_TOOLTIP: { - setCurrentSelection([ - { - image: firstImage, // The image that should be shown on the front - label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => {} // The callback that should be executed when the image is clicked - }, - { - image: secondImage, - label: EMPTY_MAP_TOOLTIP, - callBack: () => { - setImageLabel({ - image: secondImage, // The image that should be shown on the front - label: EMPTY_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => {} // The callback that should be executed when the image is clicked - }); - } - } - ]); - break; - } - case [...] - } -},[imageLabel, map]); - -const imageBasemapSwitcher = useMemo(() => { - return { - selectedImageLabel: imageLabel, - choosableImageLabel: currentSelection - }; -}, [imageLabel, currentSelection]); - -return ( - -); -``` - ## License Apache-2.0 (see `LICENSE` file) diff --git a/src/packages/imageBasemap-switcher/CHANGELOG.md b/src/packages/imageBasemap-switcher/CHANGELOG.md new file mode 100644 index 000000000..bb5d263c8 --- /dev/null +++ b/src/packages/imageBasemap-switcher/CHANGELOG.md @@ -0,0 +1,105 @@ +# @open-pioneer/basemap-switcher + +## 0.4.2 + +### Patch Changes + +- 4140646: Update trails dependencies +- 4140646: Update to react 18.3.1 +- 81bc7da: Update trails dependencies +- 2c092dc: Update dependencies +- Updated dependencies [4140646] +- Updated dependencies [4140646] +- Updated dependencies [b5bb7a1] +- Updated dependencies [81bc7da] +- Updated dependencies [2c092dc] +- Updated dependencies [4140646] + - @open-pioneer/react-utils@0.2.3 + - @open-pioneer/map@0.5.1 + +## 0.4.1 + +### Patch Changes + +- Updated dependencies [520a97b] + - @open-pioneer/map@0.5.0 + +## 0.4.0 + +### Minor Changes + +- 9334e81: Update to OpenLayers 9 + +### Patch Changes + +- 1a8ad89: Update package.json metadata +- 6162979: Update versions of core packages +- Updated dependencies [1a8ad89] +- Updated dependencies [a11bf72] +- Updated dependencies [fc6bf82] +- Updated dependencies [a0d8882] +- Updated dependencies [6162979] +- Updated dependencies [9334e81] +- Updated dependencies [ac7fdd1] +- Updated dependencies [13ea342] + - @open-pioneer/react-utils@0.2.2 + - @open-pioneer/map@0.4.0 + +## 0.3.1 + +### Patch Changes + +- Updated dependencies [611ddb9] + - @open-pioneer/map@0.3.1 + +## 0.3.0 + +### Minor Changes + +- ee7c2d4: Update runtime version. + +### Patch Changes + +- 6984d20: Adjusted basemap switcher style (changed background color of select indicator and cursor style). +- 0883bbd: Add property `menuPosition` to React Select. +- Updated dependencies [ee7c2d4] +- Updated dependencies [a582e5e] +- Updated dependencies [0456500] +- Updated dependencies [762e7b9] + - @open-pioneer/map@0.3.0 + - @open-pioneer/react-utils@0.2.1 + +## 0.2.0 + +### Minor Changes + +- 70349a8: Update to new core packages major versions + +### Patch Changes + +- Updated dependencies [70349a8] + - @open-pioneer/map@0.2.0 + - @open-pioneer/react-utils@0.2.0 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies [08bffbc] +- Updated dependencies [a58546b] +- Updated dependencies [a58546b] +- Updated dependencies [0c4ce04] + - @open-pioneer/map@0.1.1 + +## 0.1.0 + +### Minor Changes + +- 1e7545c: Initial release. + +### Patch Changes + +- Updated dependencies [bb2f27a] +- Updated dependencies [182da1c] + - @open-pioneer/map@0.1.0 + - @open-pioneer/react-utils@0.1.0 diff --git a/src/packages/imageBasemap-switcher/ImageBasemapSwitcher.tsx b/src/packages/imageBasemap-switcher/ImageBasemapSwitcher.tsx new file mode 100644 index 000000000..54c4ade17 --- /dev/null +++ b/src/packages/imageBasemap-switcher/ImageBasemapSwitcher.tsx @@ -0,0 +1,216 @@ +// SPDX-FileCopyrightText: 2023 Open Pioneer project (https://github.com/open-pioneer) +// SPDX-License-Identifier: Apache-2.0 +import { + Box, + Button, + Flex, + Menu, + MenuButton, + MenuList, + Tooltip +} from "@open-pioneer/chakra-integration"; +import { Image, MenuItem } from "@chakra-ui/react"; +import { Layer, MapModel, useMapModel } from "@open-pioneer/map"; +import { useIntl } from "open-pioneer:react-hooks"; +import { FC, useCallback, useMemo, useRef, useSyncExternalStore } from "react"; +import { CommonComponentProps, useCommonComponentProps } from "@open-pioneer/react-utils"; + +import defaultImage from "./assets/map_699730.png"; // https://de.freepik.com/icon/karte_699730#fromView=search&page=1&position=9&uuid=affc743f-cf4c-4469-8919-f587e95295db +import emptyImage from "./assets/cancel_4968337.png"; // https://de.freepik.com/icon/stornieren_4968337#fromView=search&page=1&position=13&uuid=8105ed6b-5f5a-41e2-b0df-392a9013a711 + +const NO_BASEMAP_ID = "___NO_BASEMAP___"; + +export interface ImageLabelSwitchObject { + image: string; + label: string; + callBack: () => void; +} + +export interface BaselayerImageBasemapSwitcherProps { + image: string; + label: string; +} + +/** + * These are special properties for the BasemapSwitcher. + */ +export interface ImageBasemapSwitcherProps extends CommonComponentProps { + /** + * The id of the map. + */ + mapId: string; + + /** + * Additional css class name(s) that will be added to the BasemapSwitcher component. + */ + className?: string; + + /** + * Specifies whether an option to deactivate all basemap layers is available in the BasemapSwitcher. + * Defaults to `false`. + */ + allowSelectingEmptyBasemap?: boolean | undefined; + + /** + * Optional map of images and labels to the specific basemaps layers. + * Alternatively, the image and label can be set in the layer attributes. + * If no images are set, the default image will be used. + */ + imageMap?: Map; + + /** + * Optional filter to exclude basemaps from the switcher. + */ + excludeBasemapWithIdFilter?: string[]; +} + +/** + * The `BasemapSwitcher` component can be used in an app to switch between the different basemaps. + */ +export const ImageBasemapSwitcher: FC = (props) => { + const intl = useIntl(); + const { + mapId, + allowSelectingEmptyBasemap = false, + imageMap, + excludeBasemapWithIdFilter + } = props; + const { containerProps } = useCommonComponentProps("image-basemap-switcher", props); + const emptyBasemapLabel = intl.formatMessage({ id: "emptyBasemapLabel" }); + + const { map } = useMapModel(mapId); + const baseLayers = useBaseLayers(map); + + const setImageLabelObject = useCallback( + (selectedLayer: Layer | undefined) => { + const activateLayer = (layerId: string) => { + map?.layers.activateBaseLayer(layerId === NO_BASEMAP_ID ? undefined : layerId); + }; + + const basemap = selectedLayer?.attributes + ?.imageBasemapSwitcher as BaselayerImageBasemapSwitcherProps; + const parameter = imageMap?.get(selectedLayer?.id || NO_BASEMAP_ID); + const image = + basemap?.image || parameter?.image || (!selectedLayer ? emptyImage : defaultImage); + const label = + basemap?.label || + parameter?.label || + selectedLayer?.title || + (!selectedLayer ? emptyBasemapLabel : "basemap"); + + return { + image: image, + label: label, + callBack: () => activateLayer(selectedLayer?.id || NO_BASEMAP_ID) + }; + }, + [emptyBasemapLabel, imageMap, map?.layers] + ); + + const { selectedImageLabel, choosableImageLabel } = useMemo(() => { + const activeBaseLayer = map?.layers.getActiveBaseLayer(); + const selectedLayer = baseLayers.find((l) => l === activeBaseLayer); + + const selectedImageLabel = setImageLabelObject(selectedLayer); + + const choosableImageLabel = [] as ImageLabelSwitchObject[]; + baseLayers.forEach((layer) => { + if ( + excludeBasemapWithIdFilter && + !excludeBasemapWithIdFilter.includes(layer.id || "") + ) { + return; + } + choosableImageLabel.push(setImageLabelObject(layer)); + }); + if (allowSelectingEmptyBasemap) { + choosableImageLabel.push(setImageLabelObject(undefined)); + } + + return { selectedImageLabel, choosableImageLabel }; + }, [ + map?.layers, + baseLayers, + setImageLabelObject, + allowSelectingEmptyBasemap, + excludeBasemapWithIdFilter + ]); + + return ( + + { + + + + + + + + + + {choosableImageLabel.map((imageLabel, index) => { + return ( + + ); + })} + + + } + + ); +}; + +function useBaseLayers(mapModel: MapModel | undefined): Layer[] { + // Caches potentially expensive layers arrays. + // Not sure if this is a good idea, but getSnapshot() should always be fast. + // If this is a no-go, make getAllLayers() fast instead. + const baseLayers = useRef(); + const subscribe = useCallback( + (cb: () => void) => { + // Reset cache when (re-) subscribing + baseLayers.current = undefined; + + if (!mapModel) { + return () => undefined; + } + const resource = mapModel.layers.on("changed", () => { + // Reset cache content so getSnapshot() fetches basemaps again. + baseLayers.current = undefined; + cb(); + }); + return () => resource.destroy(); + }, + [mapModel] + ); + const getSnapshot = useCallback(() => { + if (baseLayers.current) { + return baseLayers.current; + } + return (baseLayers.current = mapModel?.layers.getBaseLayers() ?? []); + }, [mapModel]); + return useSyncExternalStore(subscribe, getSnapshot); +} + +interface BasemapOnMapSwitcherElementProps { + src: string; + label: string; + callback: () => void; + width?: string; + height?: string; +} + +export function BasemapOnMapSwitcherElement(props: BasemapOnMapSwitcherElementProps) { + const { src, label, callback, width, height } = props; + return ( + callback()}> + + + + + ); +} diff --git a/src/packages/imageBasemap-switcher/LICENSE b/src/packages/imageBasemap-switcher/LICENSE new file mode 100644 index 000000000..7a4a3ea24 --- /dev/null +++ b/src/packages/imageBasemap-switcher/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/src/packages/imageBasemap-switcher/README.md b/src/packages/imageBasemap-switcher/README.md new file mode 100644 index 000000000..e1bad9321 --- /dev/null +++ b/src/packages/imageBasemap-switcher/README.md @@ -0,0 +1,65 @@ +# @open-pioneer/image-basemap-switcher + +This package provides a UI component that allows a user to switch between different base maps. + +This is an alternative to the default basemap switcher. The default basemap switcher is a dropdown that lists all available basemaps. +The image basemap switcher is a switcher that shows images of the available basemaps. The images are clickable and can be used to switch between the basemaps. +If a basemap was configured as initially selected, it remains selected and there will not be any automatic fallback to another basemap. + +## Usage + +To add the component to your app, insert the following snippet with a reference to a map ID: + +```jsx + +``` + +To provide an option to deactivate all basemap layers, add the optional property `allowSelectingEmptyBasemap` (default: `false`). + +```jsx + +``` + +To use the image basemap switcher, you have to provide a mapping of the layer id to the image that should be shown. +This can be down as a map of the layer id to the `BaselayerImageBasemapSwitcherProps` object or directly in the attributes of the layer. +If none of both is provided, the default image and label will be shown. + +```jsx +import myImage from "./assets/myImage.png"; + +layers: [ + new SimpleLayer({ + title: "OSM", + isBaseLayer: true, + olLayer: new TileLayer({ + source: new OSM() + }), + attributes: { + imageBasemapSwitcher: { + image: myImage, + label: "OSM" + } + } + }) +]; +``` + +alternatively you can provide a map of the layer id to the `BaselayerImageBasemapSwitcherProps` object. + +```jsx +import myImage from "./assets/myImage.png"; +const myMapping : Map = new Map ([["myLayerId", {image: myImage, label: "myLabel"}]]); + + +``` + +To exclude layers from the image basemap switcher, you can set the `excludeBasemapWithIdFilter` with the layer id of the layers that should be excluded. + +```jsx +const myExcludeArray : string[] = ["myLayerIdToExclude"]; + +``` + +## License + +Apache-2.0 (see `LICENSE` file) diff --git a/src/packages/imageBasemap-switcher/assets/cancel_4968337.png b/src/packages/imageBasemap-switcher/assets/cancel_4968337.png new file mode 100644 index 0000000000000000000000000000000000000000..34a99cb76d55d2fe76002537b635b0e0d09838dd GIT binary patch literal 11651 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 literal 0 HcmV?d00001 diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_699730.png b/src/packages/imageBasemap-switcher/assets/map_699730.png similarity index 100% rename from src/samples/test-basemap-switcher/basemap-switcher-app/assets/map_699730.png rename to src/packages/imageBasemap-switcher/assets/map_699730.png diff --git a/src/packages/imageBasemap-switcher/build.config.mjs b/src/packages/imageBasemap-switcher/build.config.mjs new file mode 100644 index 000000000..9c2118b11 --- /dev/null +++ b/src/packages/imageBasemap-switcher/build.config.mjs @@ -0,0 +1,11 @@ +// SPDX-FileCopyrightText: 2023 Open Pioneer project (https://github.com/open-pioneer) +// SPDX-License-Identifier: Apache-2.0 +import { defineBuildConfig } from "@open-pioneer/build-support"; + +export default defineBuildConfig({ + entryPoints: ["index"], + i18n: ["en", "de"], + publishConfig: { + strict: true + } +}); diff --git a/src/packages/imageBasemap-switcher/i18n/de.yaml b/src/packages/imageBasemap-switcher/i18n/de.yaml new file mode 100644 index 000000000..5297bb20a --- /dev/null +++ b/src/packages/imageBasemap-switcher/i18n/de.yaml @@ -0,0 +1,3 @@ +messages: + emptyBasemapLabel: Ohne Hintergrundkarte + layerNotAvailable: Layer nicht verfügbar diff --git a/src/packages/imageBasemap-switcher/i18n/en.yaml b/src/packages/imageBasemap-switcher/i18n/en.yaml new file mode 100644 index 000000000..6dad90f3d --- /dev/null +++ b/src/packages/imageBasemap-switcher/i18n/en.yaml @@ -0,0 +1,3 @@ +messages: + emptyBasemapLabel: Without basemap + layerNotAvailable: Layer not available diff --git a/src/packages/imageBasemap-switcher/index.ts b/src/packages/imageBasemap-switcher/index.ts new file mode 100644 index 000000000..6e01e097d --- /dev/null +++ b/src/packages/imageBasemap-switcher/index.ts @@ -0,0 +1,3 @@ +// SPDX-FileCopyrightText: 2023 Open Pioneer project (https://github.com/open-pioneer) +// SPDX-License-Identifier: Apache-2.0 +export { ImageBasemapSwitcher, type ImageBasemapSwitcherProps } from "./ImageBasemapSwitcher"; diff --git a/src/packages/imageBasemap-switcher/package.json b/src/packages/imageBasemap-switcher/package.json new file mode 100644 index 000000000..d5bbb079d --- /dev/null +++ b/src/packages/imageBasemap-switcher/package.json @@ -0,0 +1,38 @@ +{ + "name": "@open-pioneer/image-basemap-switcher", + "version": "0.4.2", + "description": "This package provides a UI component that allows a user to switch between different base maps.", + "license": "Apache-2.0", + "main": "index.ts", + "scripts": { + "build": "build-pioneer-package" + }, + "repository": { + "type": "git", + "url": "https://github.com/open-pioneer/trails-openlayers-base-packages", + "directory": "src/packages/basemap-switcher" + }, + "homepage": "https://github.com/open-pioneer", + "keywords": [ + "open-pioneer-trails" + ], + "peerDependencies": { + "@open-pioneer/chakra-integration": "^1.1.3", + "@open-pioneer/map": "workspace:^", + "@open-pioneer/runtime": "^2.1.5", + "@open-pioneer/react-utils": "workspace:^", + "chakra-react-select": "^4.7.6", + "ol": "^9.0.0", + "react": "^18.3.1", + "react-icons": "^4.12.0" + }, + "devDependencies": { + "@open-pioneer/test-utils": "^1.1.3", + "@open-pioneer/map-test-utils": "workspace:^", + "openlayers-base-packages": "workspace:*" + }, + "publishConfig": { + "directory": "dist", + "linkDirectory": false + } +} diff --git a/src/packages/imageBasemap-switcher/typedoc.json b/src/packages/imageBasemap-switcher/typedoc.json new file mode 100644 index 000000000..33ec49080 --- /dev/null +++ b/src/packages/imageBasemap-switcher/typedoc.json @@ -0,0 +1,4 @@ +{ + "extends": ["openlayers-base-packages/typedoc.base.json"], + "entryPoints": ["./index.ts"] +} diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx b/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx index 3c551fb62..0c2ac8254 100644 --- a/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/AppUI.tsx @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: 2023 Open Pioneer project (https://github.com/open-pioneer) // SPDX-License-Identifier: Apache-2.0 import { BasemapSwitcher } from "@open-pioneer/basemap-switcher"; +import { ImageBasemapSwitcher } from "@open-pioneer/image-basemap-switcher"; import { Box, Button, @@ -23,100 +24,19 @@ import { } from "@open-pioneer/map"; import TileLayer from "ol/layer/Tile"; import { useIntl } from "open-pioneer:react-hooks"; -import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useRef } from "react"; import { MAP_ID } from "./MapConfigProviderImpl"; -import { ImageLabelSwitchObject } from "@open-pioneer/basemap-switcher/BasemapSwitcher"; - -import firstImage from "./assets/map_717498.png"; // https://de.freepik.com/icon/karte_717498#fromView=search&page=1&position=3&uuid=affc743f-cf4c-4469-8919-f587e95295db -import secondImage from "./assets/map_699730.png"; // https://de.freepik.com/icon/karte_699730#fromView=search&page=1&position=9&uuid=affc743f-cf4c-4469-8919-f587e95295db - -const BASE_MAP_TOOLTIP = "Basic map"; -const EMPTY_MAP_TOOLTIP = "Empty map"; +import { BaselayerImageBasemapSwitcherProps } from "@open-pioneer/image-basemap-switcher/ImageBasemapSwitcher"; export function AppUI() { const intl = useIntl(); - const { map } = useMapModel(MAP_ID); - - const [imageBaseSwitcherBool, setImageBaseSwitcherBool] = useState(false); - - const [imageLabel, setImageLabel] = useState({ - image: firstImage, // The image that is shown on the front - label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => {} // The callback that should be called when the image is clicked. In most cases no needed for the front - } as ImageLabelSwitchObject); - - const [currentSelection, setCurrentSelection] = useState([]); - - useEffect(() => { - switch (imageLabel.label) { - case BASE_MAP_TOOLTIP: { - setCurrentSelection([ - { - image: firstImage, // The image that should be shown on the front - label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => {} // The callback that should be executed when the image is clicked - }, - { - image: secondImage, - label: EMPTY_MAP_TOOLTIP, - callBack: () => { - setImageLabel({ - image: secondImage, // The image that should be shown on the front - label: EMPTY_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => {} // The callback that should be executed when the image is clicked - }); - map?.layers.activateBaseLayer(undefined); - } - } - ]); - break; - } - case EMPTY_MAP_TOOLTIP: { - setCurrentSelection([ - { - image: firstImage, // The image that should be shown on the front - label: BASE_MAP_TOOLTIP, // The tooltip that should be shown on hover - callBack: () => { - // The callback that should be executed when the image is clicked - setImageLabel({ - image: firstImage, - label: BASE_MAP_TOOLTIP, - callBack: () => {} - }); - const baseLayers = map?.layers.getAllLayers(); - if (!baseLayers || baseLayers?.length === 0) { - console.error("There is no base layer"); - return; - } - - const layer = baseLayers[0]; - if (!layer) { - console.error("Failed to find a layer"); - return; - } - map?.layers.activateBaseLayer(layer.id); - } - }, - { - image: secondImage, - label: EMPTY_MAP_TOOLTIP, - callBack: () => {} - } - ]); - break; - } - } - }, [imageLabel, map]); - const imageBasemapSwitcher = useMemo(() => { - return { - selectedImageLabel: imageLabel, - choosableImageLabel: currentSelection - }; - }, [imageLabel, currentSelection]); + const myMapping: Map = new Map([ + ["myLayerId", { image: "myImage", label: "myLabel" }] + ]); return ( - + @@ -128,7 +48,12 @@ export function AppUI() { > - + - {imageBaseSwitcherBool ? ( - + + + {intl.formatMessage({ id: "alternativeBasemapLabel" })} + + - ) : ( - - )} + imageMap={myMapping} + /> + Test Controls: - {imageBaseSwitcherBool ? ( - <> - ) : ( - <> - - - - - )} - - setImageBaseSwitcherBool(!imageBaseSwitcherBool) - } - /> + + + @@ -184,46 +100,26 @@ export function AppUI() { maxWidth="400px" > Description - - {imageBaseSwitcherBool ? ( - <> - - This application can be used to test the image basemap - switcher. This basemap switcher can be used if the - basemap configurations are well known and should be - represented with an user-friendly image. - - - Instead of the layer title, an image and tooltip can be - used to represent the available choices. The Available - choices have to be managed by yourself. - - - ) : ( - <> - - This application can be used to test the basemap - switcher. The basemap switcher synchronizes with the - state of the shared map model. If the map model is - changed (for example, by changing the current basemap), - the basemap switcher must update itself accordingly. - - - - Adding a new basemap updates the dropdown menu (new - option) - - - Changing the current basemap to another basemap - updates the selected option - - - Setting the current basemap to {"'undefined'"} also - updates the selection - - - - )} + + This application can be used to test the basemap switcher. The + basemap switcher synchronizes with the state of the shared map + model. If the map model is changed (for example, by changing the + current basemap), the basemap switcher must update itself + accordingly. + + + + Adding a new basemap updates the dropdown menu (new option) + + + Changing the current basemap to another basemap updates the + selected option + + + Setting the current basemap to {"'undefined'"} also updates + the selection + + @@ -299,34 +195,3 @@ function ClearBaseLayerButton(props: { mapId: string }) { return ; } - -function ChangeBaseSwitchButton(props: { callback: () => void }) { - const { callback } = props; - const { map } = useMapModel(MAP_ID); - - // To minimise the example, always load the first basemap for the example images example - const loadFirstBasemapForExample = useCallback(() => { - const baseLayers = map?.layers.getAllLayers(); - if (!baseLayers || baseLayers?.length === 0) { - return; - } - const layer = baseLayers[0]; - if (!layer) { - console.error("Failed to find a layer"); - return; - } - map?.layers.activateBaseLayer(layer.id); - }, [map]); - - return ( - - ); -} diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/MapConfigProviderImpl.ts b/src/samples/test-basemap-switcher/basemap-switcher-app/MapConfigProviderImpl.ts index d348c549f..a106c6f55 100644 --- a/src/samples/test-basemap-switcher/basemap-switcher-app/MapConfigProviderImpl.ts +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/MapConfigProviderImpl.ts @@ -4,6 +4,8 @@ import { MapConfig, MapConfigProvider, SimpleLayer } from "@open-pioneer/map"; import TileLayer from "ol/layer/Tile"; import OSM from "ol/source/OSM"; +import myImage from "./assets/map_717498.png"; // https://de.freepik.com/icon/karte_717498#fromView=search&page=1&position=3&uuid=affc743f-cf4c-4469-8919-f587e95295db + export const MAP_ID = "main"; export class MapConfigProviderImpl implements MapConfigProvider { @@ -22,7 +24,13 @@ export class MapConfigProviderImpl implements MapConfigProvider { isBaseLayer: true, olLayer: new TileLayer({ source: new OSM() - }) + }), + attributes: { + imageBasemapSwitcher: { + image: myImage, + label: "OSM" + } + } }) ] }; diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/app.css b/src/samples/test-basemap-switcher/basemap-switcher-app/app.css new file mode 100644 index 000000000..6a8982f33 --- /dev/null +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/app.css @@ -0,0 +1,4 @@ +/* This is a workaround for the issue that the image Basemap switcher menulist is hidden if it's too long */ +.map-anchor-visibility { + overflow: visible !important; +} diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/build.config.mjs b/src/samples/test-basemap-switcher/basemap-switcher-app/build.config.mjs index 28f8b7ec2..0d4a45615 100644 --- a/src/samples/test-basemap-switcher/basemap-switcher-app/build.config.mjs +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/build.config.mjs @@ -4,6 +4,7 @@ import { defineBuildConfig } from "@open-pioneer/build-support"; export default defineBuildConfig({ i18n: ["en"], + styles: "./app.css", services: { MapConfigProviderImpl: { provides: ["map.MapConfigProvider"] diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/i18n/en.yaml b/src/samples/test-basemap-switcher/basemap-switcher-app/i18n/en.yaml index dfc4c2903..ef8ada310 100644 --- a/src/samples/test-basemap-switcher/basemap-switcher-app/i18n/en.yaml +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/i18n/en.yaml @@ -1,2 +1,3 @@ messages: basemapLabel: "Select basemap:" + alternativeBasemapLabel: "Alternative image basemap switcher:" diff --git a/src/samples/test-basemap-switcher/basemap-switcher-app/package.json b/src/samples/test-basemap-switcher/basemap-switcher-app/package.json index cf29429b2..f6559985a 100644 --- a/src/samples/test-basemap-switcher/basemap-switcher-app/package.json +++ b/src/samples/test-basemap-switcher/basemap-switcher-app/package.json @@ -3,6 +3,7 @@ "private": true, "dependencies": { "@open-pioneer/basemap-switcher": "workspace:^", + "@open-pioneer/image-basemap-switcher": "workspace:^", "@open-pioneer/chakra-integration": "^1.1.3", "@open-pioneer/map": "workspace:^", "@open-pioneer/react-utils": "workspace:^", From 298fc6f9e61ba45b94c6ab2c54c5900971441e24 Mon Sep 17 00:00:00 2001 From: "a.marks" Date: Wed, 23 Oct 2024 11:57:42 +0200 Subject: [PATCH 4/4] issues-361 -- improvements for image-basemap-switcher - own bundle, intern handling of baselayer, config of thumbnails --- .../imageBasemap-switcher/assets/map_717498.png | Bin 0 -> 38297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/packages/imageBasemap-switcher/assets/map_717498.png diff --git a/src/packages/imageBasemap-switcher/assets/map_717498.png b/src/packages/imageBasemap-switcher/assets/map_717498.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ffd91cc84b282a03a0b5efd1a287f822d6c218 GIT binary patch literal 38297 zcmXtg1yoht^Y)<|F5O*9cXz9VNJ}@;-Era4Ehyb6NS8FyB}j>sbR*pz-{Jj!e;2L; ztb6y}GkfBhXJ!-iR#g!ToeUiS0IXL^a_;~D9{d&_Kt%>0=iYyA!3Uz7%qvY)@Si`b zMI`t$nzNFg8vx+YJ^zQhE$(pue@W^tuj{ViWaaK<>S_sid3kYsaI|wXH+8n;aB{WI zJQO1X02<(xoV2EQ*8ZZGx4~4lELzHOpi)vpfDM1k#;qV5N9*S_4L$nk|YVC&`GA#8Pe4Pq;4sw>MYt4sK4r<)D zb3}P_XU_I}kiYmXq1ugZXZfM8XTcycsI=|!c$CoRZ*~jepPwhvn!xjq5|QWt_~=DZ zhm%634ZWse0l)`@S`G;SA8WAl0)*$6S>)rnmEd;12BH8aI81=#ua0}BN{IjoC88Yo z@JnS*CISDMmuQ&mLI4d}J(T;A-8pZIPil5Tn#MR0#t&n&q!wKm%SXXJdGl6@y zvMxRmG&haN-RWnt1N=RWCmgUU{kaJNqtadjTlhpA6Jn?t5LPQMu}k8y0ap!ggD{Sn z_b;TQ;q$><+3X!7xCSHR)^FXcqn$>$S@ce|O%fhxE}XXwxYD}Ltqcp$CKuKG2S*BS zOZ3jr`soQN=-490z^eghqF{z5r*R^4uwlL*y4=rpk+laGQ)1kDM+wE!on0+P!>WHP z30(wb5cO^5%!BWg{hapZf%^%iisXzkPy(3z+&&Nnzv3zcoz&GO;DfW_n6L9PLmQ(H zg(SQK)i-e8xoZ%Si$kMi^R0{=*?GOaU_PGh5~l<>hJag^`t_7AD)==QqtlyxOjiNU znem6NE(srk4GXx8(yAvatsEh^8DtuSZN*l>+$PL}fao-aZ9f)J$PDO@$ z(S3t0i2^kh9&^`#a~AGtvS|R$!lV;kAK=SGz8S@?K6P&I;RGPGe4lC+;0O*_TPilY zJ6<6{6~GgL!PyVoynLv5d!5Jh83Q_;-upEMClkm51<@fQjfJd{g9lrp+r%SD4pp^z zaaD#`eb(&|q6wfr%h%V99fYxPkMfotsdMueyiM2FD*V60m-`-(mWLAk z9z-^S^bVw%CZnO4IQYR?9rt-IDJ1ATxNCY~zZVpmJcQHubR5)w79isMZ!a{ZR@{%B z4u&i92ejQOgxSb2%E#CF`QMLH!4qsn$b*;S2A6&D%j>!??dV)k%A8f%K(*m)SK zIhNxF4c13#gC?Pgn=iRj70lY}BxhE);ZPxDLua!=jbLkK#Q5!89ViD^U!Hrd`W z=N2gV=X3LuI!xryBDzq6wSDb2HnxT6R8ZMh*S+9z8x_HK%7dRO^vmmfyXbrd9qT)y zCSWlAf=F^W?~M(MjQ`+V_S+lXCPGe4n-@nHGoV}jNJWPZ3$-S0bYm~Cv#PNGm2(86 zN6JmrQbO|jL}+?Bcy9k}pOr%uGV|&NA_~=I0Y<@nF|GPrcVI}hj7vF!iZa^*zOVhB zK|8SYyZkGUOfMHRN@W;$IC|$s8Tftt?S^MAJ21NR(;t-OwG9p7TeuZZPvD^G+(YKg zT+R%&gbqJ*n#P`cgY-bD_1x?KUMZgR0)S?xCYhz3rc>^-;ZvaFA*%|%+wD$?r z9-9v6Y|tCgBTi5a415GGVOJdRY}~1p-Q8Z-tf9!i0TzI-ggmv9`#&?+1XaMXzK{J4 zqj7B$I3^~GX6uuvdI^AL_fJ>os~X{s{5RnE1x)vz4JMIa5~&8B&FeJdEU#7Vwka7| z+^-Z@v+#Mn1{uL;*$*55nhb&u_yKL*LPWyDKxaB=5#nd5={5>c&3u^8AAx{ML>ApN zoHjrJfTvOqdimY1CH5NyB&bei|C&CLC>RJlqA?Y|@9j(Nc7MLn8@~>=k`vBg14eUz zdhBg5gaBrt;ivGLz%>IaRKVapN!E+`x)~-O67`um(IYn((Af|nFZl>?U*jWn&S3{3 zjCS-aqtU#!U~&Qja5EI4^VR>^I_bx*NS^1&S>w!VBmn#ve=DaEN&r|Br&z4te|l5} za7$56xWS-K>a0b^^dy4>=oL}18IfROsBFSUmsDI=Tkk3WWl(7e>(kFVBLh|*fJ>l>6guG$_pz)1 z9@_Mi>)9@KY*;v-UC1=B|Gc}xy99ho)k+Hd%6^I8GU72U5F9Nil@f{$6x5<+iJw3) zFhW)T)_VJZ3Pt_39O_lsGlmclk0vg?vSRK~ayIU!d*#d1r4FT8VaeV; z{7${DPnC(3-OVK;IF4-^2cj`u+v5IM?BnS+U^eIJ_2C zhwSh;Z+sEW9s>$RlO<`hy`bI3m7gCu_Wlx63N$A2PS&*L#v|NwY?R+>IsGkLo)-04 za^v4?TXUFTFlYY*TZ-Y=ii)pmt*p>&kfAnxOdU1rYVv|#%-Tts$e2f+^xCS0Y)+OR zON$!WQqtZ`Ry(sU`DSr?qvG1?A%UN8ZVm)u&jdz=C0US?C)Aq-Orlw22_Y4#WZTVK zKPcP$RO*>1=ND@C9 zx5sm={S!M@?pqx)huDe^~ z!d2R937>P_6%G_3uHS#VqrW05Mf%8j1tBPa*awB2_GeDb$ZScn3CC`^_hsC?O?sh!E2rZv7VMth>8=!p8D? zq}7;gdiX3!r)NI-pi}5JH2a}a(d-Bae3-y7VS*x)_O{-8^`1PW_y07T5GLY%Nsb*< zDk&L}JMT3HLEXKNN@&_mtOJh^XGJZ|c%|UgPw|KAZndBTm+Yr7?d;ud;=oJtUaaw& z-CjR`zAuyhvL-<_I}|ZBE+r4~?G7c_924E*Yi`@rU9oA)3*>g)9|UCd2n~$fu~ctgbVwZ?=S<4R35YrdZK@a;YqN@=)4oahkY#iC zeq(|kz$~aUh(*varWj18aK2`Y9F>Vgy*e(6mYNkbXm}12mB`1j(dh>LLdUrsPrQ|^ zSEH&)E-T_knk&;!e){eNGL?E+felx8H7K&A5C)N9y8Q$kCmW~wFdI*CeA>fLq5pUr zSCl!N)A_-`{tm5kczg#fsP#!bDsJGt{D5=o{jI`2-%L!rbmVXd!$9xYx~&zXGkXqn zz?j0=P)C@&aPC4mv;F;hMW0zAjazPu7VVtxXG2J8nzx#-o6uxV7>H=wrefcORwZ7e0dtptctEEmm* zeSTlC<&ArMpYrgnxz`1;)v$>>66c8?^*S?4x5(MBI|vk66yOC0ckR2O&jeChBqINP^7yL*M|i5u&-c?vPIyS>?Bl~7T9*o zuMz1?=L-muYe)y{JekQXyqIzNa#FWik-5?xRbabr(vwRynA&e?9=gL88hMUc_0Q}q zRnKs(d*U$_xGur}>2c&!-0eVohv+aQyC!ZdC)I!I#BAw{5aQNAD`ZX1rihb&b#r9i z^6I9$&!%p@->d9o>&{8@elE0$Wy<8AH`}c<58rh(MfO$_%=cn3QHirHaYv8ht@!!h_mrG5OR!T+=g)iZ5eDIm zsw{58MY;xku{&GpNPYSED=$uX@cN$}>d*Pg>pD)NhIIvt`*SVCa`nqPr6kL??QC@U z+*gsT_vvo8eb>9{le#ltl3!{aDGzXpEWV25^vRgXYJ2}NuoCdDLieeBr9J%W zOV*+KdAj=16PI?-_O_1ELNS-DCg$(l0MgZ&ABq#(jzUY}gjD`_v?pRB&I2(gQ|y7i z(qI1nh<^3tYWA6lm;tY#=&Gm^bp~n3*8pkUdD}(pqlt^S#CXvR*2FQR(vdd#)p3WL z>>P_8v|zD^57_M5@7Gr_O+m1n<&tF*k@qLt|e5XJUSPL{x z5NQeeY&!ICG?HTS>x0mq4gfQwvNU^sH210`SrX3?7*epE8ufJTr(A@zVztZhJ zELz-2kECY^g*xKNcGK$Z=X*We+O&CDQI>`~9HN-fnl#}`yB~EOTs>XsTa}bdat^H% zTA7g_QjbnPf_q!Tezm1L|2KcIPWj}OlHa*s<e!?%eb}}}djV+&9tM3W@#zJy=GIqTFa^_SV59)o@tC#VKR~$7hU28+{ zm9aOZW#z4W&Q}I=Wihr=N^sKVT-D~ zZ}UupOo@-$B^d7UFJ!O+pU5VVEuG|*+C7O86_?K8uD@1lZ|Lo1%oF-x({3~DTDRmx zeTeLqPmQn%y&#t*A9J6D{gy+amBWah(9aFAGcGLbf|p7kWm`SuWI3g1G{wUs98%f? zB9mko?{>!4Y_sv2PK$Nfsh|GMW`wsif3u&E22~CS6&GIcNA zWEzbVI@u0_Btkciq{jQREG3z18maS>HP9L8+DCgg=7`tJd@+?(akDMCgK8N*Kjkv& zCEMYl;;!nq9abZ@e+e{z&r4^KEZh7-Hx|{h35ym}#QKPCVQJ8uOL=05X%Hw;S;Vd6 zY7YSyh}iBP4&+J6|7jP2hHFZGi}Tgo?B`Jnqs<){zeVkgIJT_ppm=<{y7^4Ue@w`t^9?^m)OodUh}5WGj+9{~{H>OJzF zHo!<@(Z8ria0np=lQ*#433sJ@K>7_a_Ar)noAaG)ViKKwIXCXD7W7Dj%{8HiIuY%3 zih$ywyOd2q#tNh?M}-|UNe46RqO-R+&W)j_8w8%n`A=4KS(h&1&zAihT^{`!FM5lv zGuv!|mmLPF80>m$PSl_BV?;#*Nvay27kJH9s-f?EdCJSGE{40Tu_NhzU0IDUJifB? z9+|wUtfSNEwZJzoKVn)k>kzj~yEa+^^!riUB7kd_@;JASV~IUocj-Lc46ayzz4CdiG$oknk#R?r@TzcB; zp@%C<4`NLH*VCQ)!x02=ES@2BCxP58&5zdRIEXwna_%Yev$+&{%hUE4BM{0^2>V>* zM{{!Sf>|`LjDPGf!nAGyIa@2mb$(tsc1h76$TXFxpC~jsBCB%V?=G2o`T5XQH25=l z-msdZozNiE@gTQ#v(ag1Fhb`u2 zTY2G8hgpN)=YWfrPP`LGi=2kl_r4z7dIY@RYV%~i6drez`ORFm$jJRR16eQdXkfn> z{Pt&qo_k8)_rEeMIiz|z&q&~Xa#+ol0VazPiCxh^8m7@>HvQ#CQ>3IwQ*tVUOWvZ8 z9c@ilp9BTUm-?n@9C+F0+_I`22q4~axuJ5C@eiX~czhw52P1df{G$p7sl6W^mf-m! zg$LJ!Ik0mYlZu8E7~U(oNa$H0HWt*R3#Rm6&W4jq?I9jKv!}&yXeT_zTM;8nLNiV4 za~UrIw&38E;f1N4G!hL97DI>230&u5H@&fHQY`Qbosn*7W2B^Ms@mjL6G@ z;KFx*DRRpm$RIa#Gdbr)xH(OmBw>7Bq!7W&KXXO|uF1ioI2|N-Tar>bSU=RZzXq*2 z!}gorC2vd88iA5b+fVc!_ig-%2t43AX0$eP4ke=DJi7*^C=y#Hk|-dUy5bz>Rv|h+ zt_kOCyIFh44*<%Vj~dUbaCNlqTf0{(Y0{vb5Uq;LAG_7m;~~(=S?h(Kp%mIBP~~74 zGmD_ozW)^cGk$MeW9QJ5Pa9zCz|XY(7UtIP7T;HogJV`y@nLQ(A0C=zZZ?_@#uwy^ z*sAC7;G|r^_Y@#PtLBa^^F1-83LbPSulEwx!Rs01OSumcWX zkel~9$8+K;wa^t=hVhn;#D6FS0O<7jA4^H|+gV!qrLxxfLH(zQW{rd4z|knJm%})+ zVoN&o2}fgGsw|%BkxBiQ>-l5Y8`~~eMxx4*L|jnG5j&>*wF1KtLLj1UCZujNNa4Kw zn5~J8HE~efqKq)0 zBhJAfG3XSk)l03n=rTo?0o5Rav(XZ>YLSGFR)3)v#NG1{CD6)puAU4!O!EB!q(DbWb{SJ)e)m?955iRdzwE2Ku^ zh*DD@7bFuk%YMSI*i4hnVhwj(b$&?i{uv>Gv;Ez(0qL(|`1r~3k3@%QOUdDqWM}tm z{rE^GDjHSE`MV#pFjLI&HAYB-VuYY)!+eNN3}~k*0a=Y&p)!l)BG&m%kGT3BhRI0K zDGND`BA#6G=}J}iz`a0dj4=+)eEE*|wNW1jyRCk9G-;5ee2%=>n`#T{CwYUBEJP}> zAf~$>8<^a)vnmvbeqOlGq~S<(V7!0#$5o3c~fW-@b&BBneCGglGKL*}1 zldw3~8^X&zK;XA!n(=t`3YkgYIJ!#0!NfJ=ImXSq%iKJvR^*j|luER=H-L-&Y+u^&n44NTtyeG>}kg8-XRUHO@(+dSq%@*(^SUPnoK|ChIv zkNj6Sj&mH(k(D^AIrwSAp)~8#3vQr?O~-TP-qT=&2!Oh_!f{v}2*Vo29*L2culbu6 zi>}YcK32GqTpwTvxf~rhHW#E7Jq3(e_vjA`+{Arwb$9r9p?Gx2IosRC_mB=o7_kvM z5mHEzRc3u;g}wB3NWAQ1N4a&<8aD-L<+WQjFVVT!6(!%|BV6o{vsBC6z93qTVUnBS zr-FYSOEF8tPbjq>H)Ri;0@geQmT^qRPk4eiQg6LR?qDtaK0~?LZ;B6h=0Ua)uR@7& zgXIycxYUfRY`2+GK3t$O?hiL!%{}aZ)G1tdz`k?4+Bk8s zzmBS895Y_92l@UIr+-J6gs!j?6C=p6b_)G&2eJ=)NVEOcCpQ)NE63i$t{;PPNZT<2 zaiW0__I15xr-v1=ad8)aScd5<_)$KdOGHD6#ro{#N%D5da**Y;sN^>as<8QufmpfF ze0oN-57~={PO)ykzVn+FRiJg=xZQem<#Wj?z)^rDZTE+C*PxVPka(2w%V4VVVMdSn zt%njwpkw{+&M-fQLM@@(PQnpO!-J5QHfPr=tK?PZ_tNYR%6HrN_IsAbf;R17B#d?t z-X#E1SF zd&Zd?wfM9b#kYHp<}#7o*6<2GLA!3mJo1~3)Ok2-K%620kj1TOuW?tvaPVO^EsPWi zN0ILDd0|rvSl(zQ2d&IIbP=k>mU9wi!ysxd;=b7B(62kY#w8Rex-;f%+oe_8Vg;Z~ zwFV}Kl)Lz(S{QWXDQof+{9nxy9G_fQ z3BI{->v~F&AT-fueqyE?J-L)>X%lhp0eN_FZFj~`6V3z;y))l_GXZ6~rE3TEdr@(8 zy!3(v>_gj42YtLX+_-_qaPS0}l!O(snY4(xaMym`uckfnNEX~`ElQe@-&y71xL)ju zKc~7=x@B@S9U@00>jDjkm(uSscX9kl2$ob#;a+nUj>F-ia}&LdloC|U}Y@xIH9}s5$1-g zv!Eb{s`mm1rpUuxx%;OBQ{dPm#cQOaj7kRpqyINTGC#(ob z@x;^~t(zHQvqBvM-lf31%(M^b=e@wdtM^t)9)Cm`UGxwJ&z?O0-Zly zL8B}p(Q8YK`9Dd`YUSqdBe0LK?8btT6=!&KpOzlGJ3r`A)BSs&g7JT|03bNcu@YCv zY%o)rT5lERx&>Hue=KYpxRx^`$e3|w2C<4bvmQYae*eQq6@S1^o zSN=Ae0$Y6Ii-|Az*4|{pXUTEb!9Ee`zOH%KqaODG;1g`w>iiRcAglqy?r;aIp%Xse z!3L*OUwTc6-aQ?*I!nwV%UlZIDYqXNi8_^ivqSa%n7KXN5lG?vut=(aOh$QX+1~fq zOzyO%n++AS>H(0)IyXA=7rWVOG9uRlZ+dsOZ*$_rA%g&We5J!O)u^LWU6}V#E1%55 zPRGqE3w>6fZG$jkM~mRc(!rY58Q+=+3DnDd!<{~kB@FD?3;MjT6ln2Yy1z@|u9;up z?!Nz(9{YlGs7vKYvvl#hK4!1ns_rz|1a~AnJmbIy=UOQ{UK5ex%zfX<6w0r;SpGf=tMakz@xow(W z{C}O42`3`hQd1g#jm-ZkMywXk`Xb0zUGhn(>L*Nmzwjrx%AXKGTVM5+OL)p=9H^%e z>oJ^V!Jkek4Op>!rggotOht8c)1x^ z#)U_$jrZ3Vm?v7!u7TAf#wz>V_{swrh5fb0!%d5e&p*X*ytO^;&fj_=j`eCbneDlR zaxHcbS=#7OB!=U(&uP)k*^O(S-(6YVD+VAF9SMwK6jI75lu7?wm-Vw7(fU4npw@bi zf+yoeD3!uD;{+kD;8OOIpbB^a2L(-e(wK5VZ1wV8}nJM$rni6Kd53%W1L2gSL7)#0C{GRv|o` zY|n~ldE)!%!yR)fk3qC33g-em%uQ*9sx4tVBo=5?kzx%&aW3zYHTKL^*Sp59w%PaM zon=rVG3iS<1?DkBBY)fbPaiC}v=qXP^uf%$GtEU($kA#l^{r#Mni5+)?ooVXKt@%I z2nCbie}rxGGhvIiby9VSihDq6G>Jl^G$L?CpTD~nc5t{cg#;v%6uco2chSWSaGCgi zw2W|oP9k)DGLBt;1=re(HeJ_P#pSOsU3MERA1U}3b~)s%+gLicMd8jqR%@??gLk$I z)~X>h$UQ;w&>a$tdygwsk+bC_ zinYkT^arpDv4)kiHC0RsDYeSfisWsivwx+y!Wp4P06en7L)rx7+%cU6ByX8>=yhuo zp2RBqS%U3~qs7z$9og28gPRARiP;lmYPkquGB+RFh7YjHhgSQ-#Il}%XZX33M8egT zdcapXCg)|AHICWq@xLO|+@zLCaRy{#weBU~;8k2R%fYQyV=s^DPZ?!x-Xjm!h|-k! zwyp?EXaFRI%BYKE9OVHZsiZGxds-k=i;8@_y>3e$!q^Hf60t=$^nZ-(iJaP5hG%`k zd8MNJri&b^KJFne5&*~<5@Y>*v1ROI7GRc3V7g2ETd3Jet&i^$^NuyT{I;%g0?5hQ z$!7jD#G^&`;Z&XJHC33J;}iW7Upz~c-x}?2+fgl{ln_~`c7yb(M)M+)|1&m?EO-%1O#T=5@0oQ5 zxHX*WHm(IizfPjG>OK+u(RyeH+h$-sHxThrG+uoz+HvnO8=7c$#!%&8x>Cx~Z6{~Z zM=OU$ZE@)4>^x>ldwz+>L6?Eug48jF=N2$3E_9TQ%yxilVa~S zIF^Yzf;M1tfoe}L(AY?*w}0D$fF|aP#5U0g&LD&fIEGao2zB3G)@-bZ^p@Ab6ao*E ztg79`$O0^ofRTq-VUwHF&gqlDh@fzg!10cunPrw3PN>jq)_WwF7qbd;3>!M&7-GhN zx+x-FwM}nMd&YiL2;F4!*@oloYPP}%pRr%<0k}lbH3HbpikGc^Mls_ST#B+*fpG-; z{zc_z?{jQDP>U~jvTFz{4S0!0YjogZl+El(RPKeKG>q zJpX!wK!H=N*6BXn6RNJ8V?XJ_uQ4g)J;}J0OE0~Ua}GRSW)n@1yXZ#LM2ZwJ{0(@l zWKbAB*_vq?-YDCD+@T2dPBz@BQ0w~wY74)7JCjXu>JF*0-x>ojd5m0{0O!I=5Bqil#UoK_g zA$#aAoYDGb5`)ZP6gU%K#6ZPTh~S;To7WO?CN2IZxRTKoWmq$Fd_E!?G3;N~(m#6i z6}Umx9H`b&u>W;>eVf~Q6{@L8XEY^XxH^dha4oCr|7C;zBJ{Hw&!9p4g3NN+#)ul* zYjAis5p{K@D%9nxM!T`G_j@RcXS^RC@Mb7=2`cS+#|BPWgl7e!wDTp>Z`eD_wCT|z zV^?%FmCAQuPCt31G^&pX7;b7X!*TSJILOReA7ywxjByt%|#X0s~HLU_8-4Jc)RX*hd%w&MC2JsGX*-UE|1~JOK&=~KlKQ>tMt%3 z3be>y`@;c%`pke7&x^A{)I}0xjq>rH?8+B1){D2UA#+EPA!?cO*0`(vo$UzJSpWWP z?ELMTOBcPxSpOg0y|jgEWL$-y1{Up;r~*&;Q5mym9V9FOumih5UG|*o@ipi_$5a>W zeUUf_f?Q8)UB8JpCtCcbNe-IsRP`2_{Tc0e6Q7Wz+zRcmWBsjYauY=3hM! z;bb%Bno|c}JhS67x<)A(4o0ltC}8wL;A7L$SM;%jP})CvZ|SbyjE@nuCF%ZKpq$lb z7Kv$P{0Fw(;)Mwiq;}R~htqtVZQeYQ`sMwNNP?_gC_9e^#tDW>ftWS7rab;7NuQzg z9z3{glJc1%BIoB(wTQuNb#$h85r|X|Un95La(kz=kY8hOHp<#arCE?a=owTb2iu)U zCjQ5gQ~r-7U)r&2%O3@VA_`}&@rvwP`wJYsfL7cMKmA-9H zOxp|F={i_mLt*&l|NFpcE@Qp$c=A!=7~?IRGbwj#RbaC5VEEhXs`E!){rfcDvw<3q zpI7pHsoc(b?m4V4PpL)RLCfXf(@hcX^1Zqw3{@TWohf}IGsu5OCut_oRkBOhrhYy3 zL{%nsIIYS8aP*K^%Ir)Js~x;SMw@7@_t>b)Ob45et$P=}(dMsi(>W$giR$`=eAf2V z3-z658yhNb0D=IU}jh^hxn> zJkm$c;%=%(JicI5sE&ZRMCl6n^iFp9=ErE}P1tVdp|aAi7TNoX*#z;b>zq^^~T#41mNY+_YP z@2OyM5(d~0?#=vaQo4@pUiM?t>o!n(XX2_%gVU1`gd2Z6wuwEFzaY|h2Yl<4``Znz zZtYgJ_j}piBBEJa=34_nxK=aY+m&U!W8$Cpm{Pa%o_mV5Jj4SDASZCTi`i!c6VR$M zeF#z#o{fMq@Xu?K5ds{jixdJu>JS7o$CE)FamUoW+?W3RHQnlXvtCja0v&__O=5Fg z6+dMKZz=vG)-PvEq-DhVioG@DY5s^GxS@yBbJo^VJ>97wK{3*DXvG96O!d20iHmJN z{!<6*E>1oFplL_yJz)xQ@D927ZY+waHhHmUTh3bvqn)Cd zFh{iAl82{|R!#BEVJ%M%kA;aw_MiQXr37d$^vK7>J{Kf_7LK_O2J3DMWP?!0Yp)E_ z*c?5=nS&kSaV>KGo#@P{9Li`2UrcpW9zzVD#5&2Ha~}7tzn6acxHcj}V3T!<*71Z~ z{4(q~#oosG@-;GfTX9FH&`WZ@02CqGrIqBiuXH4yT59)M!H=_QdMN{H54m-DI^?jI zyFnj`E;`t-fNHQg+UlcYOoa^VF&PONieZZ!Feg_rZ+%SEojw^KFKSk>^PYC4YWU5y zc;kJZj|j|o>L-g7J^48g+f?;PYPdsW+6*bId><)`8%h_-FQikbS5&GlD}~A(WOp(I zh+2>VFv4${ADf^Z)t2{p7vQR@IJVOLH8*kn%gc=wKQx#2pcYro`F=?F8dqd*T+PhR z12fWDvER~FjK8*hvx#5%0Ea=w|2J=&6#y+QKKc>UyQ_ivQoByY%gx7V9z8oqc&#y| z?ndiaJ&n8xPMq2E)aWJJBq`=Xv06W^&e!EbN!@!eU=F9EG?J;$8=ql%2zbK^Y_F~WvDQ%sSnq}I~h+A4#zFaCyX7lRN=<^N7XEs zUiO3}oxI%BuJ}j0V_k1`QSJ4{SA6#6#3Z+V-M_NWz5u~pj)5I=G?w2QnhcC0@t z#cxQAW>%d3Z?ve&JAB5STWYFHig9g(8S=i|D$~~GjXW=k;YzF0uYlB%j)JH@`=hwF zyAAB~f9u@YKY{m*DiF50I#4+|kBb(s`#71k4S)ZXB=NBiYH_L6mHJ*r<_StAm?*1w zk5`a{v-(9C&#ly`*$za}clLz?hG%;$T19-wE4jz|DLKdbUtqz*d)&VMf=5(;qw^za zX6yb8N%Ortrl-vob;R5+>+qrx^qKt-jRZ{y%PL(UtNqErS<)E2*eK!}CCQp9aOe35C)O9DiEMSV~aJUwi7S1$h} zdl`*DG*}pV0%*lDFdhyTmlks@?iFBg%jq<(G_U>=Ol^6uzn2GTTUzKnl zpv8G73{4xd3MDR^EBYInU;+~Ke_iL@`}~{B}*e~tRgW$>^>Zq*7}IxLkS7 z7Uc`?_&cgMkAb^!mEzH+_jKcrK>|X1L=0k=8uq*s+Tc^%(ZsZ!<>(?YryCnPxSZcl zPu}2%e%t?V{Htt^_Dbv_3DLx7xjNDFOHD**Mvg)NwkgN!k=0T)ob$f)~5}1Mi;DMmc1wQ{Dv#!mp z8bCrjwrQGYDtMGL)U6wWtGY|kmV7YZGsiq{Pn#)^LfboY-NXGr7$~H0;2AVn>t~fW zrrv5;kq5uRVxM@=g4^*msSg35;}&#A@crv`V#Hu70t;3|i&siX0H;G*mc+<^sDK&5 ze?rjbL7K9ul=WB?*PxjiZ5{+VcHe*|1^VNd2XXDb$D9gy1aIX2_l|3e2*MYeeoj-mD!C%P`Mx>Fx&|@9di7Oh$sgQU=p%M z=N{MXZY|>F&asDPF^SMO*RD@jpB^Pxsc)-AKEHr^BceO+l%srmwq^7siT|UG6AM6K z5yoL6iRXG*cf%WD#x?IneRU1po83aeNI3_O9!@$$|q&D z>wzO_lc{;7qM3j^_|6LCRq7}7Hwi&V|4dd+MPm66whUqV+yqpZenbFlC$`=8{WNuJ zYX?^*Y{F$C6tx&U)e?~y~%<9F)aS59ygsMv!nyfxb6-njQ8fS!~{ zT`C~O0alKIh=1UXwSx!;4&hEJ$OSmD(% zG>Xf9LupL@*IwKfOP^H)V*=UA#7eeJddh7lK!vD3BX^D8F7KCh#v387OEk|P=9on` z^?%P1`4IA?dD0HK3Z|*8&J-~byPtJFB6vzQ&!YTgr!yHz@f;nQsW^anE3eRu$?8di zey>rqYv(E$BKR9NPrZ(E{uCW1j2{yb`?AQUrY?}iwN@(2Zc z-^9{YfLIpxLJet;N~_O|jetS{!isLpFlTwb4xl4&Mf}F>AYp*VbNmokma765tg)E> zwhx!R%U?TW##TPG?BkU^PS7Y*QIp{Xs7BF>subNl#WREI3Bjg3$9X;2h@mJ+Gx&<2 z2BDZpzWyQj&3a}O+C>k}_9$G6+y@+joZNym%Hg#@)#v=v>Fs6ni;uL|cN;1}m3gE9 zXKF}E{9;>K83Y03Cf_qUi(L03QB=1Hr2Fn{M)BPqAJg(7tWX(mC|(*zESZ57U_{BP zfae1d|NJ>0c#jP7L~1u8_!ZVrUxcQ`xp-{RqdFPvhvKReFQihstf}xv5ea(wj(hHe zO^_L$t7LZne9?Z!TM`~m%YJfw+)tI->?781ViY$|3E{TGJj`iMkp$+*-+FFA$!|-Z zu2w2-|LYWj)2T@_qcV%5)J}94G#-yS;Ho$*nQ`;Ct2x<^#RtJw6MABB2y_yJ)7sY{ zO40)7hKRExAZjP1fo*g^ya!mlfc-Gz8f9OPZIBP}|0F*hu{3G?_B^@f7a4YJ^yoTT z(mC&ZV5+X^4~e`EBk;b+cMj5&(aiC$mz9O-AYMn*x$%@%lLx`YT{2_Milm>{AWXFb zq+i5>5vlxwHcqm@flbY8-tF%@Vxcy;&v!Ab@Svqv4)=tt*zWYsVHpm-Jm6*K{;d9Q z^S&{sf#S`jNeCJRXWk*0>l^Vi_`?cr4+>=R*0geVm#16NAiM!>h%CHttd1??wgXuc zNDR6;kQ=&GyL8OVNQ{e+vpzxe?N0{l7w?D0LY!36G`nxB)Mu2na2CvSZM3EzXijagP=b9%+C zs~UwZ8<}CoJ@3b=>iDi%Z(f#d>;(+u#q%2T;GqV%D6=du`KixsIUG{1<#&1p4hzLS z^Ft(3%no?D$9z?XmQvLj4k`5QrIh()Q}&aY;03M9omOtF&o#Gm;0(K1;!_8b$AK?< z&6+cK2}cJMbKzg1O;s$EUvWgBV!Zw_(cz1EW@<1x;HqaFZNs5&O;+rOkV30j>+opl zuXX&~9*G7Mps1XgqX~{=jnSqRB~G2eA)s;LDeWW+-cZI_V`b2D6u{GbV}C|1)+Sgkj^dtGRAA=r z<^z&_N=F#GmAGIuX1o_w)#{U4)Cv9n<52T|>?ifXad;wK^DMCw=RXsCfWm}c8!l+` z#7pmw{SD%Tm0Xo0M`Z`!h4qNszgjA|e6euzVz@?xW@0-T9z2C7yu#eQJ5&1r2!ae~ zJD#jqlky#EY`Jr!T;tEPt#3{UzA+H?{@*M>m2ejnm4Dt|N^?_Pt`s~C!9sW___qlD zulMcUw!_vg1E28pexqh&IiZA8kb658H2tRM!K0`F<@^kXzqB3_T@AnE8IZt@=ULYt ze7)Yq#!sFEEkK%Wn6KsxCu&nx|6U;hw1B}W#2x`p9H;kRUF%NQ?T0^MCFKqs`0|6k zN`Y|gR^xGzpQLht-!_PJu55GzUKFZNkf)rhvaVHer;_2=eq}Vz5Uf}>x5X`|$w%W0 z%W$}TcJl>u^@w2|lA;gt6#_e_;02|pMBSxy(=2;@%J9UPMd%>{tBLx>G39^bM2b_g z;r>X3fW$rs#W$ND>7Tpp80l$lBXu<>??56`ju-=X1T{3^^z42X{d4B#SoH|K+xWAk zR)JYtaS`v2#$DG6uRAQolhg@wpEXdtrp+hJv_%87IjU`sI6Uw242K4~@&e?VbKl=8 z;N4*9XXyiI+Zf5umyORr-QMO7O!Y2MdKP4H5YZLvOD%WtDVK_vIEP#W!Zsb%>r{+o zDWM5^rfL8D#ctoi11+m#ZixO|*S|(}@K~_>z!3iCws^|zEQG%< z`o~@anfzL0xR5=FX@ZnS|ynm(ZU;Uh|1Fe z`yvMVpCy>Npv>M5ya)*d+3RM{IqMGDm54&d;^Rd=8082aEZ7Re5ef@xeUkWKmUl<^ z!^P1cpBn{ku!jhfauKSoRs1MCdkkX>ssL?G1iZGr;ISi|SbqA`urdvt7yA(qrpJ@! zSQGTf{N~;Nqw6oj>gbwiQFH;pZQtZ8fZpkYPq> zj-ALa!~b;MNro0B(ut&5GEbWdT*1jhy=xeC4X2HUH-N6_H9iNUR(?(NNb-V6c0Av7 z{;HEO1cG4SPVd+MA10S$nQxj!0A)f%*mRNi9*W9e+F-b8xI)`}7+;A69U^w z11{(nk~tqdAICHX#sTe5hzqaEw+MX=-h;j|=B8?!0lm-6}JeZzjRH%->G z6}rN6Y*r@0qlNJ;%rE+r63#ZdO842r?>PMc8qm+}0Ur+nh8`%me_0RNcMOc$MdsZa@yC_PRknpT=+x zuGa#pMr$Pj6oy*?18PeN}!(~tNI)Q@CnXM>9dqTHOx0l%gb`vP##hjM;WyxmT-uU zivre2K2Y$W4(#v0Iw6BM`gFZYZ(}w)s~`bwjAq}Be%MfyZ3Wa9Uhpm zrER#02m0opP5(vej}GvGm$INZxF;6X+((xMbR(5+kH#NnkbfOAKpzO$lP%_-;*~ZV z4@yA(3UKbidsmTIshioHPW-^8G&*v7_x6|oZCfGr|EF!Gb}3HkFx3j|r5Y$(oXfke zo=eFmmn+_VKLjSy(J5sgU|<>|#+-nrHtR<*SoMa=83)|-MBRW`VE=}Utedq5xJ#nd z1iz@hCu2P$6QLA9c0z|^5goK)20i_=y&c!qS&b9}{HD}eK)Z%80B2pnG;X9mFsygr zt5#HGMXyi`4D`N1vpa*fMUoyBEMR|&^?OY6{*Eyf#aaGfZhDciCnTi<2(44GeH3zY#a@5Oen#%jvo_|QAS$o_YT)j_Pr#DML4G$xqnA(z7 zKj8B|egk}`a8n*Ndu&n!-&0P$v8wDAFC8txl#&PMztn{xfzWZ#4k3OQ^88NsvmhkglT$~sZqM^5%oE*Xuwg9Ef^g+Fz>0mvRPMdple)jXT5enR} zW-8}nM*Pg9kZ+X6&F8`q9gFO?S=@(kd${I&3+*(mHW4N|VB_bg{;r{g zTZUw}qy~8|k7K}3JvlSwo#h7{ks{AdV&4kgacCWIPH_0;< zaJ~zxTkUoBre>RVrKKU;{mQyDoGD6-#d|>|udutmmUd(FSl>I}B(tYr+>}`fU;1L~ zzP@mgI)Dk{>J{eA9)9*hdL`6yW7D+Q*AyV&5LG=p5COeVnk13CIS@f>MMlZvh5|wE z5?mqt2TJP-goWR|X?ZW7QqQ!^0yGdm=8fMp3gtWWP?pA)@Wb*#^*~_{zyne<6@OZ&Cb~>zmntLL< zs~UN(EL)pdYZ{p-2-pNJthtP_l-k^33Gpt!p*t0qdWa5c*CJNFzFIk(T|aV8q$=!? zE7Z|=PieHlc9q?LfJcOf3-)E)(q6fonD&CU-jV#Cuz%6o$2-0-`y|ffn0#jXSypJg(SJU+NZMhR6uy zSwAtfPezQg>uB8`L9PXqfh9&KJS$x6N#n?lC}zAhW2u?EXOfL&gwXvV#lTTU(65e# zPo`u5sh_-_!+4>_VGHV6{530mJrUE)`gA^REHN4OWhy!O_UUe+jTpGZJmuJxPVRK| z_AQgf2gLJSbX3a4WHoBnL@3ZK7f4MAa)I@*&xIE2oiX0Hp#98gG8=bx0&YQGe ziES15*=T3s&~Eq7><=&&ggxubP|D;%5+geA8}0m$F^eMPK%c8`E3KN2+WX@5U;EHb zPY|n#KSKTbMCdpx**XIyRw3n$XQ4lPvmK(_sEJC4T09gtOm{Hcw#aFarS}odKfiG| zfAER`5aG&eZQ7i2rT0yfs%1TaI%B+M-97T|AtH<{77p5YcpMPJHS>!4IDv=9h{ z7PZ0^cTD`1fa*v1DYKhu>AaJV-^xJkAHhGaEGwOzf4D^>OAUOywAH@DE#ECt9+b)~ae~(>uL#%X?f&WU%ab^7Q%LUl;h~`_ zzOcA6_vyc*_Y9l=lB=~b^f}>b>R5rUMjaq9ov=h(B^)s(jTT z5i`*x!Qr7DfV)15KwlxfMH|oly|obZ0RX@zIJvP$LdU0Sh&T>P{Syi+(gODA+Lygq z-5OrZ7&IWu2rv8g?8{SzCq+F^liIP#5?79uVsP6vBWweLd%*S5I7dhptJoHB@FD<~ z_)I$E!=K#phR~lPf?0aMq>l3b4yL{YtVc_`qnOq5HHHF_az6I z(!O`Q|8DQPv?rXhP1E6+AQR9=tZ(B9jg<&W-5$gFvxKd#c!lyz^%}@T&&1WT-eAj+ zRRiyI+2!y5ifFy~5|%QQ1}^i_241^2sI~qhGD|IpFQD@R>91*cl)O+7&`|3RJ)<St}Nh438?n1N){lRy;~7T`FOW>)+dAa-=X_6mUg*2=j;~Z=UzA2RH#o1 zcT>?D3@P$MEPb_4QXYR!MgUF;IrwJ6#xrtnhosU)`H=UazRcPAVEI`7XHqz`!2vyj zrOVwE5M$WLk9OjIH;v0^X+79vU@7eWmJxAGb=Z9Dp=fk`g?b!MEFX6a(3@65;n#t^>eH0+$9{3CC;)+5NCQ*kbYK=5woJ@)GK*Iqcadh!N z>z^}v9HXN;2sw?AzJH2`;Wt|{LwNkQTEFy~sjWW<1w0**B4-RG!$phs`q>8Ufn*pJTF!q8pFaU*i&_`i?>j05bc}3%Mc~c)~&8 z$m|#tqQ}MAET7MHzY@>$Hz2~6SAx2bsoSL|nUL_e2 zu-aTO@13v*T`1YYY_F zjqU{cFi%pjb^N23;l)p3Soyl7GfW6@%#4~je$}jvS8YF1eVq}>ON@^ML}F0Il-QaL z9O&sg4R3Te-6vBeN>UsU^l~@42LAeII*uJRTN752h4st~J(EUv548z>N!_$ey_!D- zjoX;Hbrw$|`IA?9oiPe|F7Z9+cL54idJ=f+(VYb+W~I0b>A~-TQ!B1%So{oqwe>w} zKEQwI(_iz5DEY01al$lTGga}w7`h(_lGd;rmhi!@${%cAPK|Fg;cbq7E9};2+ps%% z3qDBkBBnQIZubGuV|436w z!`XW*KOvxaqUeM(ndjS92i&_KfGek`wGUB@mE(j_dzlZx-~imL^Z|;zle;x&ybxXi(DIqC$2I2yvx)I-MbuT zvc_QCGc2~FS1Lu^1q=W8kpLo&>{dG6g|N6{tdM)#e349m^rK2;SjppEjlL{B8AO+r z?D)^BI7QYfh_*d%H&z#UujV`}>~bViE7j@0zjLAhUD`3RN;oRzvH@uQ$mz>6ve+D@ z5RjpCIVVc>QVn_f2#DMcw+a3cPmY~cc48DqCiPOi>lzjPzNBSsnjpRJZQj$FC+m5Q z@=k>1oxh*4nIxIg)sbH+kkbdXhhzQBsYKKdzU3_yVMED&4{UDdKE2Sh%(nY^zYJ}S zE~tvs4NdT(Au*#jO?jHf-+fB#Uop_=Kvh+b{K6>JM|~g;>kqFNQJ$uq62h|K zN%Z}z@R=f*Ah8e~e$JsU0ombbd_OzhwK#o4lZtFd;oeN$uKQLZU6DIVQDMsw)qx(} z-z0G$g%d*Zf~u>^89I!Q1LC+0GuhB>rI$AyA=pdX!%NNB2jIXqo)^-mmF({tv}RSi6McWAPw?BlknA^0DwB$;d&x}s|L?WMEUzGHbZO`o zSwGk!EdN@*{`=S=t&6i`^!Z87Xo!vo75pi(C^*+7V z-%pCZ3tHVOb5MKLNemgH;;IH;l}?NvUgtSg(r=f52^-NIL8zuTOzsMP$Yl`jRvWfd;Xu>GI$Vg>lNKowM zfj!*2fy}*ob@KcRzQ7sa?EZ@^79+6zD>o$*g^<}N7+!f1gusYRkjR9JTYmkxA~qBA zhQu2}N#wz;=4SG2-9Iy;yS8ja5YTugpHgTecv18os0N0e=`@>EpXTI1Ohfu0iXDp@3mqv9wMkkaI$`Xgtmlj9GEtI|)hn&(C!BR%cE! zICxrGLm>>5bS6B%lPyOT!SxJR@3RK1F?#sMNXgxbAQmxreSgv=)zxeDvj?HO0gRta zG*<|Q@%W8bn0^)W?<~>^Q!wW`wdSQorXcXl2bcR8pwzGm*t(yu?uL)JaCeNEk`gLkSD}o>ev^8w1fFlT6}wkyFmjh_*;4phQ$xGjIM{? zPz;~}2{!*#;>k~LO@69qmA15TILx5NM3Yt{6g6e6l>J&zLSyo7Jj9SIuUy>h1UCwn z)jA>Gg8*Ie)?*1%ci3i2BpXqURj`aat9TQd8N& zbuQR-8J>g87e*<&nHQuCK`Tw~$xwACI|*?hO%n0^%@NX!|@VI7U%VE)Q zzy5vZP;M%drrzzNR%Mxa$7B&0Xy?d=j()jd4#(o0SbEHowAl~!ZB0hq?*Hce1-}mu zsVl|vE~;{+XV}F?eN!cgEjEgM$%_5qVJ~0r<1c6)tCIHUdwy+r zJv5SvZcSSUH!9wb_o6+?5ugew*iO%-@k658HNg2X+r|{x(zzE$yHWQgQ(>vThIf_c zfMW(YlnH&svg}`Y^IZu^@%XtSDqgO+zY(v66oUA|%J2nJBG>`=bb#?ueD`Z&p5eeY z*7f$vaVo27`Fr?ZFKzZ5oY`z9XUD#IQ(*Js?`Ti`>8FgDa5_N0ZgV4l)3(S{WdBZS z0Hdpj^l=2+a{?98|7Gm@1}l5De?$viS#sxOkN13it81HH44ZHm2k zU%b#uRNUw@;Zo_o%>a%Qe4D}UUqI+!MqsIsGz}O?2@VGuTc}3oPttUe?Tz!jjo zFt^F-6Yo9i@*YWUSQG0zBA~>xL&BuR@Cea-JgB+82@_NGI7Xp$u?xNHA0R(^Zj-o} zki%?$F3`$oo89Jl5@uk|B?+iam+u9pEeLn%9#jGI&R1X0u{6y@VN!pBJ`ug)|e zGZr{O5>&4qb+?2El}+*wn$=pro9fROBJHQM;tp&u2>x}9*Zrf__e-`3*-^jLHmQ>O zQP))$oMZB?`FrXT#pJ74AAVH>Q8YReeOZjj7h1)u5{Z9sbX;(;u(ZfBVNjXtUQdRD zA$#2zoMT%sbH&)E>4fo3Uw^6eom~ zEf)(*cPRne36II{bD`BLMCf0+d!~O@(fa)uJYx#+Wqhzh5NR1O|t!IxsA{FO8cQNB9nFfFyOQ?Z5pYA7~TudVY&`-&6HbT?vh+I#GXs)(`;)ClUBr&HHxA z$5SLxY?{VXz;dVu;-e+D^m^cHR9i{@B&kHKxpa>3#A_S>bxGAZ3MJ=o7u^`BH#jnp z)h7*#%V;v#psozy0Sq1KH26c{bo-DQ)f>|Ro!XM}`|f82x|~`Y55;=`gtW1pnA1nY zgR_`8Xd5m`2Pr22wEML=!)kQO5j0)6sULm-!}pb8jaQ1+Ba(U5Lz*h%joe1xkj&m+OZH9wuN?O0ax~V`pq#+KZ#xTHin#!5xd#HSKl7Ru?*l2(v(Erp+$Y|c^znB%6cX` zw*pYcs4z5tvY9Z9Bh3QCB^&t_?2blhd71Hq6{Sg*3@7NXu6EPRE!h;}xtk>;?_(4k zyHljgt}u)tS(V9|^8LbdsGcjqhC{n#{W`3nV5FuPZ0 zfENxV2D(uMe2m+dTBshH*EY?x;9SimQtO~BQmx|)_G3l3h)YPl2?>KfCY^6#y7$}~ z+Bx)^+J!8d=y)+ZstEi-{x=*qf8@G`xR0+axBDB!wv0a2eyfvlX-8d36!h`tz=U2q zDUzN=#@&v1gp&2e0}ruI|IC1bgO)-O7Jlw>(+1goZ=8ffvAIWKcQeDSdy<=KSet!z z3B@M`sX|pLDERaRL5Xf$TDLsVD(mStd!iS&X#4Z6x9XjNhtpIUkO<+JFjFReXfe|Q z-F2~hVu>wT$qG(^>J zYPFKAecn$P>+ys!_r>Wxe*VoC&is`?{35a}wY8j}A}zqo;R|*Ry9y)s`by?=#aa4_*cn zby(mCXN`@+22wP_i-khTb5Q*dbkJfJU=k~i=;ey5f|EgDx0iC$L_>Sd7U39!2i$kt zI74yq7W;vL821JSE?&eZ8z~~?b4;C0cfs9h_nx(QLj8)HU)E3SSB8lcIM`g}VA{9F zUBB=|f}(+>u8%0BZW$IN$VKPd&EtSYkQlf9caS^uF_ag_>@JGbm;A}UBSv06E5=HM zomp{l6%xssOhLph!TQ4V@NzqAA8R5a5Z&o|ZNDr!?PBPtOiT6-UZ!Pj^@&9hawNX= zkT>UII6nef8U@n3I4PdBcv53s=31N(@c5zys&Yql0eSTxt{$9@?q$ZP2t&^#Odq)R z82Yv!<1d&5c~#>?)pY2h4l5Wc=X=UnM-1=ob85%#E#<5G=IE276=wdzk1=JIVPiN$ z7=ZILlG>wel|*26kZOF`y+zQWe4~Qa*Jc8tr#jmOyVH!h*4VScH`AP(g+uB2l`|P% z$En`GLTfK9={m1xI1l`Yc5DWkGyDB>5u2KiTD#$$kMJjy`ervCKw|*f>m<27hob@+ zMV{#yE~8hEC;`_r1sQ$%_n|op)bu+mQ%SP~-_JLj^&}kFAn|+Y6FN$5NIm7%>$y%t zpQB34Yn>Vl$)CTd_{vL;GUEZlOk?+Gn4kI#QM3d)?mu6^cD|8jFnZFICL)78sGoD9 z@dy&Z7x4gF8YNQ?xhMI zu^TZ%Se;KMd->UU6Hx(IXJ;(tFSyCP2n{N@aBBgjxOUf~GllR3)Z0knJL?1+pBn*>n#^archvHmstx)Dh-FZsM53pMLf$(aG`d`6z@%km)qYZeCN_D zmlyqckT>4Ny)%>XRLD?0u{fVk_+u06&k+9;j?OwBr@PiDC#!$taZl|; zS#_B0V{;~^0t&PL`a^J1hB~r%H@|TS(ivHnO8onKXe(_D53Tu);Us|()ZQJN4By34 zyL_r>d%XVf4$>_u(K;X>_BsS0OQ5}x;3wyRB2lu=jQ$m?XV(I>E4Sa%aW2l#OZ#!h zKZN6nsU(4)x-@W3CTZG-Hd^(jZ+6@-%7P)01v_6TC*f;H7P``<*oyKg9tdK<9d;%| z7+n2E`Jx_Q0=Zq!>HZ@BA2RDpdW?f7lX3P~=h&-vwiQ7wEs35vZ+;bjn29TXs9fw7 z{l$BJBv4t$Eslu7r1nd}p+v_@R5`>&^MQa+d=l4Ty6Ttl6#^74l+cf>J>ClP=M+I@#{V4#iJ5+8AVZ68nX zvmhO38~J1xFf{b|qRlDiNh9tXNUrMA-3b82eW?9$6&|bZk;W8Jjz_89;vs6RN%{j` zDf~m3eQ)*cZKp$$2*c!x-mEYOCV?omqIpD7}1{$?n9P?LFBl(AU z9%G<39tn4h_qgE=v(r~OB!Vd`#G*}(=J%|_;Dks!&znS6YP-jeQ?RDZ)>!aTX1oM8 zqP5yjZ}8h0)u$00=r4t9cKuNoOyI#Yj{>?Fz96GRRfCq+cF=n<14+z$sV`3-Bjy0E z5%+tPJVJbSfc(rdyI0G#(gNG+`1$wi0GWz_Eg4Dj*?-g{VK-fVH4rzN$i7T8r5TN8 z;TZaOpkpomy24nWq4N#AFuVX5@^&?NT$7ZtX6&3^!c0(_Ec_C_;aYrOyG9;75F4Nf zh-^_FeQGROKrVe;AfhBTo&|6T=GLcwMr zS15tKp#3~G<<@%8Kqn;U8Xv0}!GWxsF%6u?03a4A--h7YANFi9%-`T+Uj-V*u%JP5 zoaX<<^#1eO!8B(j-kB!h7{BUA15QfT3MSB1oGqYdJvkQBC4&L^nAD75K6e8{LTD2i zN?#-S{uaBDGgLJS9R=eg+miQbVYu?z4fy|lM?~TAXT78xXx<3h35lH^Mr3~=nPm{B zj&HlYH?bYQ^S;r*l=#Ou>weeC8x(6M7Mc#Ul0PwkG){eA+0AzIB332ve9W$_Zvf^T zpxzQuVwJ;NTgyRmU3U|U0YZ*TR*21TvxHiS$Lnta&kDu5`+EH#Lj z)d#PqqV4EKjH9NOME16VG})}Q^NKv+vd*-`#Kn2daU`wFgax7X=&VZs-qh46GkHv(U&6jgHWrZ<=tNowsBxV|0xHU{;`EA z#Q1HIW))aCv0%y$1KH_+a5l#TS%e0MB_V#*9k!c*Ki%nS(V)+?>{0&~cSvL|)}-O+ zuSai(83|B=gafh$M(dpQRBRF@mWUmDAW^g;2xC_QsF-kXUt-^1rXedw=jEBs!f5Xly|;w_g(+fw^L?cL?9e8D6M2!Efwj5!a=pp- z(q^+poPJ6E7xwqQ-&Zvss5AVE6Daak;zeRUwy%Q2(Rgp~TA}#-&87lr5A5~@ev18F zKI}KsqoPpj+NC>#J&!AvIrv9YBCYCqwzC3#zKfs3Y*z=_otbF!eJ@~O)H=0mEC1K; zKoLRr405`;R%J`=H>g8lpyagiTb^gTrxtnMi|v?ZFlV zmR9_(dpt@uK{CQsSbOm;%zSiSj+=NkV)kMtK|f^LpuV~d6Z_zU2t*6|5~O*{~$!fuR=Pah@F$#VDo zu7RICdtbpn1d1PDFLSS4B3F4XMmQJf`usS+`H?#cYKUpcOzeXULg*?PHl|ATBHKre zi0{Rds#`fw04^hOqwvf?p0crgSVb;$M(r$s=o7)$0QAx+MSDK-i#(uBODtKKmZvUH zXgmw_Vf`GTq85CoG)zt70!qg203zU+Jmdk%2T2lF{41Mr2H6jmL z*uWpWA%fayqos6hl-QS=@4@2RTqH>}tMhYA5>?{D626Z2!~ZXR!Ns5S{4ae`FUQ<4 z^TpNZ;FYk^=w)B_>pAFaK&nr@CK1*J_@jg&^ zlJ*C9gTEn!`{y5gT8%18cj8bV*6J-1$@Lt|FAbmfU9qLzUsoi#Vf`^!hL2m>v7zzS z`F~k?1=@}McbsBh(S&q7bBa3T_Ju?Y+cUSNvtDF%UM_@1Oljvnf0(!q&B%=)@OOKVo0Io58A*S#t0yi@-O~#2w+hGqRYSrtR?a0xU`lo z*IKcT(Jd~fP0O0-p^2h=&xiO1oNS*%p9w2^iAlDj(Rq%F*lokKXN1+t><}1GF58qB z|EVprST;TOj4OiBjZc$WEl4|L5K9n3SGztg|4#h}MJON%ZO~jPRUgL`9k8)kB~CVF zn1`O6Im|y?o`@9=E`>*~t|F6_D64;tuu{;EtXk_O3FiW-9oZ*gwh+++CO$R)_65~T zl|^eMTAR+_rYb)(#H-$tgxE7eWKhtX7zBycuHQhFM4-6r0lh5lrTIV+hNZb3&YhSx z(W1GnaI3ookxuKRe^3WnzOeTG*d4r-nuaSY!atwyJ^B|=3Q)IAf$mop#_zk|?SA`E z;-*8d3Gz-Pqv!3Scb*o_vM8diEMEHAiwX?|TiBQ5t3sb8XKwsPV!n;5G3 zd4))+Coj7ka3+5hwXx1Ibzw-Ty;$IG^!o%0KC#s+z-N(Df2Wa&hhAfUYp^}X8wG;} zgdghvw$nZO>&e0E*{P;0{U&?_G=C~o2JN*I)L_5(_K{evcRg?J1cRy_2!gleIvK?m@?nduwFb!; z`%s049~qi4DMOnG44?OQucc*w0aDu^QsMQ0(jOX0*@(%S_a^EK7>x(XwmroL#xT%p z_#Ft#vMf8x;r*@*FcLq;RLg>KK}P=>J41L@Q~ixzv*$m*O%JT*LBS$vxTTW+P<`M$ z0RLR->HVs*4ZPRuX|zBo%I$?iE2XZ47O80HKbHPaws{oYB?a@9w^ zglfV=-6R!^4@udcV|}956aiL;7*$nS(x5xTXM$7P)c}zW@Z2O6)1l^BH}FBiiH{_( zkwCC^psXs#^DX`?C56DB&gznC5MD$$9a!)_bC_A{!F!zx?^nh7RO?hbrrIIbTD(haWi0|dP+N-+q;ANW-%egFg6JNGOdTu5xB69MUDCUn*JO5c6e{$;6s^m^r5RB zdZkiH23;twLCWbh&{e%ZJYoqYZz>K4UK>k7EnVA^!O^;H!NOy=it>t((n!7^^O%3_ z9NG~6fiQuM<|?^`nB7a2yb=(P0WxtJ%eT_>r*AV5(#>ng)^Xr5Xb-9WW~IozDW0EQ zN-}zoG~&~tO2#LBT}7a?3-NTE|3%7$k|x*@Jsh%bW^xYV8R?QB3ZpWO7uitnV5`~HWsEMlT_#t92XKfJL)Qo(ZmXUpr>x; z>+5`M=>!>y6e20)rNvY(vWfTIYAlc(%xCc89HBMHoBF_vmr{-!pKd*0v>bfS=Kf_& zaN%+S4~*g^@Gi?+(14U4WWO1$@l8%T3;$6s%P?Km4nhlfDG*XS$fHfJcqh17;L7`U z^v399Cev2k{|4^|)k;JpZXnlFl-)OKjX?8Vefwcw@K_SE7izFkW9zd~qm7Q0F(tjX z>`s5`Ol!m-&D;S~jR!hp^JRjEktleHr7CPC{8+o24gSf&F<32V?og2>zYo};(nVFv zOBXn?+Jg2!(leMFxCYOTK&xBW{jJTG-{)$bL2-R?pk%*QPC|fVvFo&)!f7?JL=H8H za{Ml;ybn{23j%yzL9H`1w~f100jNvE)jZ!LWD#`m;aG(6^uIz>H?im8yjK{Q;%WR+ zv^D-n**c`aIv%*bUp|RP#TdqfpCXphUJ%EH1BD0YopQF;)PdVX)+_U2z&9DvGsxEf z0~vz;W^#K@%X3f3DacllP(LV$e`LsY)r@Zm*f|cS`n8d>jw-Ftdm0(jxqdx32XR#@ z!roC&Y{E!{vev7v;zH@>-MO{ZA33c;lWAnS->Y~;Ijt@2`b)^{QA%ertO=qveAp_0 zFxPgU1{i3tZ)HR;Fx!!-c$--nlt#bKG zR`fr@7H2f-B-lb8PQ>+QNZpEOAp%ikEg9}t=0F*$hy8tWV7fh`Np6?X4e>@oEauHv|;R zOZ-b>09u;J{kDBA&u2w1H3yw>j=#@Dl93GjkXfg*&ovjUtTpvn17es;Zg;3Ic_IM&-Qy>RVWB-U|oSqPEt|3mHGcf zl-E^XT_RaPfks640uJ&{f{U;zp)YH%)!5c|lHo&pDW+xSnz7%uOZr&q{0zz~dqx@UvmHE&9B5LnT z_aj-(N!ROS$9e14pk@ShR6ttmxs(z~oN#9rxz>k4Txc3!o^Ev|6|)I+3mzgxL5;P9 ztv*%Nw|ov?J|n19R4Yz`l&V^E6uM^TVN-d8Qvrt?$w@rF-X!yVP`yjV6AesVU4QA8$wu78F)=PM3LQ8n@0FK*^W5L*}j zHHj}@7Zze>B+f#TK{cwxI377LOemm?rHW7$x3**@T*2EPjSrsn>Gbfj;26|6_MP?R z6+dZWqU$)m2}3sj{AIl;Q(YWahO2*thLQxw#p>;>s$FJ7Wfn7y9P7Dk5cw=75bK!$ z8>81!Q9E)z)NxQuC8GX$7dn&f`g5ug9^e7zuCuU;A>k|cK& z7===P1h9j3!!fv;xD1l6DneW(iVLmEoX(1-^lE5$DAh4Fd*~H{A{F}Es3v79@pi|y zOS_U#mlv#><__gZx2jbVRNI|6=nd@`Y^F4ybB=+Z2zDmT`Me0J_-$Pq=nfi9-kgZP zGGV^?WtxW-Kiq=1-IH^BG^GlpN?u6&A~yVKT2OJJ6FVp<$eCo;GIE|Ulr=za>2hWb0RN`UzcwRi?jWk(i~!AM>+nK(tzt_c#lP8B@Gl< z(QE#OdSw~99GE-R`+;5%!=uftwaX0BG_EcKw@DCryORH^epi+HmOPFfk5%^2*q|mB z+ja?WT@*cbiRCk-g9nQkys%^>x0e60feB(lnXRg0BG-!*fsFmFfH0c=koaf8kYH&e-E47`NM516FeqHyHFhS_@S0uQa{4g4e**%ypwp?b8Rh4MWkIat51%;%a0G0_3x{=J zJEtvyj!epX?QtDO*8xU%Qg4JazwWO-_8VK*I(-<@A|T*7K6`UrJO1W2)v3_)x=iSn z7Hvu9B5ch&bLx>27SRL+11`$dr$)%`3*g1}i>H}VrKUjQWE*T2%r90P|D*ASE41=8 z)!R*CMl}V{^R8t>ej8nGSpP~JiN;4mj_0S^Ca$tE2Q#s~jASyo>j?K#Nks$B zMO)XezdQPJhECD}FMWdkrp@2%_>xbj-q!1nKw*n;1grLiAnhQuw>C&GbnL)#1VR7& zkq7gzc|94h^iyov#>$?s#!l#{H*IwEtZR9$p3#1;a|`WtJ!4$X3bA@MtFa0k34;4C zH3%TX5IE+A(Vubv2uHsJaEK4xpFG#!PD(%V=9~sAU-JVpY+25*KRHwtki&Cc+F}Ti zV*4i?7u#;hVgG^h5A!%S>WcIwcCWGBbhca*4^Q(E`Bie@{7R~!QnuK5Ggs&1X_Jw$ z|8q<_x>Q7_m3JJs>n+%ZWwl3bZE`J6G&s=EhOB(oqHM0l5w`(+cER3yF{ft$Sq!kx zA?~v*l`Dsj&M>11EMoh5|4IRPDI+o7VO!!OEkwxs2Vp4O18Wrh9x7+i=Lk{@D4G)r z*b>;a3v6FEUd~|TK~W037xKg@cYt<2@@rT&tKMBPMX{tSJvqY*I*c>aPv1AEGb)^S z!m?`<}We;Uth(tkAMpoje z^t5ET8A_Pl+IC;;pW)c1|F$dGXd51*zBJtfoJ%bl?P3k^Wx=@KH;kdxcP^VYhb2rH z=|5HeF1Ehx=hm#4U$bu#Y%6L6G|yNUmOixqS88K zyGvn%FxxIOz*1K1%$VEYakvqPuKNyMCfL|v3^#<6(wgqif7MQH;rZDz64=gucL531 z&#vv0o+J6I`?@ZRhH#@AEmrS^-pPJaAvu4n7-k7pWV}LTJ(nOAJy3%t0tzTgs@vXE z40myhmu)w-_W5#)eJ}K7NtrmRT$7`4U=b<$uam8E0^nw31(LfpUZ&$Mt}Fhm z7)b>FMH-+`!T{;$!?w#;c;GXp^$xljnKs@(#>|TNsyLv6FmemidV#; z^`8(wcG7NYPoYbsPeB!yZ|1+_0YvKiiQA&M3P`EHpqmHr!{K2SkFmm;FJ0PrBZ3jJ_sbwKY2QvO=qR< zDdk;~2YUeDU<3eLQ5Y{ppjD@Si*Ye}I+u!u+hS>@RML}?@ib75Kpvby=>>Gnr{=!u z!KS-y434{e)KQl-3!X_Ub0w|eUq>kPu=J3OpY#Mvh)~)Pn_7 zd_uw66~R>z|IK33!~Cq%q_8WFaL)&X{6&4H{#e3qV9FUk*sRjlfr>W{)ZAoyA<5?P z;**{s=_$Vif=-pLMgWv|U>A3PJB93&yM>94B4FlzIl%*61K(Mak&7Un2TSbiR5+;!;py8= z_{-8~4m15Rh%K`ztqGlgG7K)%?a+nw2k6?^DwKn3)o^m4&eN^`NZ877(mKy2b+jXY zbJ!p~rU2(PxX>V05EkV3!!ETlNacc3>K)wKs?_We@;^QvU{u?i{{cU(LRV7YLr3(w zu27IbpnsWE@kK~@T;AS#__Nu0bE;6@Wr}j_l=|0M2(HEr1+Y+NAhG9MBoJchsc+Ix z3Kt3B3$1sW167kK*&j7l^i|~_V0dqKO&$H|Gm$AwzpOBgtq$U8fSv;F_Ob%T3{Ii| zvFNeX&;5G$sYQKWa&?TGuKle$Y8SUmo(o0r$l_rqr2v#$R|imrSG_eJ2ELF75Mh`- z5`QxRsZg_56=3-zdT{Y6pwW+;Yyu{06zvzj_F5zoJW*5RHiUl#=&<%lbomCTgB1cz zGuLi+UZKO)t6T~CnEV_I0j^mGyxr3bXk2a3k@;baN+D*jR8VA?GD(q1q8+M z8JAaJfusH#7;l*CuXeEF{uKl8ULi-%<`-a_6!;L(HfgNu_bIp<4j>&Z)dltbEewQa zWk|DX=chEt)(~dhZNmQVEy=e*3&AQ*V7F#N%$0zkBfBw3=2_L~{8bhDGQ5+w!vqRe z^FRPa@6uxS-MUC9VZ3qbS=+rz?2UFw;3owt3(|{E->gk6lFef|<1w5DHGIP%18rb) z_~LKU{wfte&b_^qYEr$HHZfK1ZIMaeP9B!>Kcsg*J|x9)SNjA&ia>a3L9JXg516>t zzx5={Q{`|)v>p)+!bef3NKn5pp$q)IeW!8gy(-yj>RezsA@GKOFwx#*N8}#xqTG4| zqCA!Tf>L_K*aH3aastKfHa)x)<814vw|JrQ5P&%5z^@C@x3!T6Zm>Cq)u;?luRAC? zJz~>F()mZlqP^A;VOom9KW0@k9++zBux#2tgA^4>vl0HS1ynZ}_3V_YPlC<8^7|(? z?|^2)^_KTlwhslPK|@?qJ^I$Y2P!Re>kwE}!Z$A*C4HVjei#q6Z*mqj-!*HCCyfi$~6)y?@Nf>?1YCszBop^Pft3^qw%>zBfDTX^HL}0b()kv?1)EfFq?M|>d5j3qeIG!AS0CpX6@80} z4^PKJ>9D=a*dwzP$2bd^E+JK@z2L913a*iH>j~5C426cZ(qSulQCuvIVUG=8LJoP7 zt^qFI(!au`uSz`k^<7zW`wxvsznh|iPx!P?{PDUAa)wcTf#G%Kv+FZKXMStc-V3)Q zk_jmE(P-xS5WutMV8+$bA?bLTLN;A~dL7uuLsEtZ7$Dpmr z)&MNPPy7LFfvASSU&(zlzQOeJHBh0~7Jb)XFLCS_<07FK5CzU+izztgo~oiVESlQS+GRBJe=1|tL>N?>yq16 zV?B{YN@vACf5wG$T!Uo^EN%F!%_1H-M^1BVqqw!L_C_kjbDe}#MCT2o&uD z6RUefm~V4asJ3z@1vf5Wg23@C2=hT@o5M_P#hB=&qH0-%RL+v(_?3w#yDJ^N=)G$B zQ?f0zHz#swF_r4u-xAQ@w%{4DH7Rk{Q0?uvKcut=J!iyf!VG#F0QZhH8>@ZECg15% zgU1QAL`y;1sNjJla9Za)EpMlDmZ-CV$}P`tC5pJfSG}dOhkO!ofZ{x1-7Z8lon%Ex zya(<;x$_R>_q6k9_x2FJDYV;4Y}2z+9w?D%!nx|tTzusq9gO2fpNBu;L^@H+f!1-# zTtb@QJrX=44wpYlh_tAZGO_UFj6 z=4~xNXd;jy=I*_VDCh&y@b1;|`Am;44-f$jdi_^>Od=l3vc*dy-v)T%#eBW6Y1rC)7osO6~{*5lS*5w_GnfS=E zh253Cx7!X9DPFkRca^n3=L=(8-s(xBnNvr&Q@A5YA*n?9Tvw&`m$c`%De$<}(8_mRFNm%S6^6$W}2@m8s z5rK?I)0Id3OB<)IsXp_30oZzkv1Z2slz9SE=xWNa-5qB_>BtRmGHU)lk^-(rK$h1e z23V=ze;&&US%2E|k(*i3c?YzsvCuB!)hLNf zQ>vgD;@wJ@oHj(62fE+~E$gV6;d_*i9E0mj;is22iv-PRJL7M9)cvwiNMmjZxQg~< z@@qle5FkGuPfL4yGcxp|tMtR9M<_5uDcO$FlqlgtaYZq}oRLpfJk)u2MvlEVj~4o! zE{Y_fc4^0;Jox?btB^9yh@qTec6^~ab+hSb+<=>0ex}e;iI=%z<-sKd$hvi0R=2a1 zFUL%$3oQpYRqSu1uWH==K?IW998T?c94%MxiEaD6_B-jRLh$A;go5HXZ`IeltN`MJ16}|UdWI??9 zy)VVZD^N-34zj~&>9MHbdW%ZiaD^$?PjClZK9u@aD)7N)t7g4?5BrcQc)NUYWWdOk z&ia^D{S9hP%wpvi`}# z8b9Vgu61?ButMe^y8VUHbx6mC72%6n0N`P^?84YusQD8{i7D4l|Bglwf69y{>n9HR zQeLa`X-79u`(OJ>lifNy9DH!Q<1$dui|aRwX>3QH0fhWha5#kLqbX8<@6O#h5~`U) zUl%x(i&?C{U14w*-r{CdVt`E1G(V9j%b&*pwPofehpD{$_zq{BiJee}Ak5Qa9x6xQ z%^1yErCu#XUWL8Mizr_A3(dBMh&Yv#9@!ScR`QT0jA&ri?Lc~cwr`{oM(2M`yPz&{ zn~ZcjlKr_stzsrN<3MZ!^JB?-9$OD>|AiSdhHyP|0sNzotefFIuR9B^NQ{-oC$b zw>H*}DyW=t6e6}SW5EvAwp|q0A)DMN?c-r|3Oda@^-t1`Zp)OfmpAr@lp<;O%C)Lj_W-4AILZXOHR$j$6qAU0DQs0q@)L0kfEhlVF z`42hg=$e^0_9`@gG59{g?LzY>c1~vLnuaK5*qnK0?{ZX?jb>j81DpgR5w zV7mHJW>ub>sw*6Xk{ItWT2mw=o|7us_jorfvBKf3F)JitA>2ajzF@GSl8s1P