From 4412c2cbeb7b974c2eb94a24f0d0cc7f147fb75d Mon Sep 17 00:00:00 2001 From: Ben White Date: Thu, 26 Oct 2023 09:20:43 +0200 Subject: [PATCH] feat: Person feed map (#18184) --- .env.example | 1 + .../components-map--unavailable.png | Bin 0 -> 10618 bytes frontend/src/globals.d.ts | 1 + .../src/lib/components/Map/Map.stories.tsx | 31 + frontend/src/lib/components/Map/Map.tsx | 64 ++ .../notebooks/Nodes/NotebookNodeMap.tsx | 64 ++ .../components/NotebookNodeEmptyState.tsx | 11 + .../src/scenes/notebooks/Notebook/Editor.tsx | 2 + .../src/scenes/notebooks/Notebook/utils.ts | 1 + .../NotebooksTable/ContainsTypeFilter.tsx | 2 +- .../src/scenes/persons/PersonFeedCanvas.tsx | 4 + frontend/src/types.ts | 1 + package.json | 1 + pnpm-lock.yaml | 723 +++++++++++++----- posthog/settings/__init__.py | 3 + posthog/templates/head.html | 5 + posthog/utils.py | 3 + 17 files changed, 719 insertions(+), 198 deletions(-) create mode 100644 .env.example create mode 100644 frontend/__snapshots__/components-map--unavailable.png create mode 100644 frontend/src/lib/components/Map/Map.stories.tsx create mode 100644 frontend/src/lib/components/Map/Map.tsx create mode 100644 frontend/src/scenes/notebooks/Nodes/NotebookNodeMap.tsx create mode 100644 frontend/src/scenes/notebooks/Nodes/components/NotebookNodeEmptyState.tsx diff --git a/.env.example b/.env.example new file mode 100644 index 00000000000..65971db798c --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +MAPLIBRE_STYLE_URL=https://api.example.com/style.json?key=mykey \ No newline at end of file diff --git a/frontend/__snapshots__/components-map--unavailable.png b/frontend/__snapshots__/components-map--unavailable.png new file mode 100644 index 0000000000000000000000000000000000000000..6e49827d9e782bb66576ac1937a76d237851743d GIT binary patch literal 10618 zcmdtIhg(zI6Zg9VA|i?g3!oGY2+~1Bk!lH|fb>m=s2D(ckxn3bjvAziNC2g%NZUZ@ zp%+mCNIQt3MT*jt-Z9j>_}%+Q-1lA2L*OAhJ8R9F`Oar%?Jxs9t-}XT9fTn0@a(it{d&^O z9Y?agc2OoVW;=U1GleIH)7^$>=Jg^blq-`FDYw?)S`0|W)X!I^qBli#mo=42px ztl0lQj@YL&GZ2YH^5t3d-%^6Yp?Y3#JsfU$Q00mU2J_|%Mnwg}e6YEuD%e}!lxbyY zsce>St7iFmtsB}BBCa(Q4Gr1ud~#V|CP164L{hL&J?c~3C*Pi#wXTS2u?y-LOrW^4 z1N&8M3Fm;HzyIGc%S&>!@&ndcU2e`>ELzyV0=ii2iN)|Iq%3uzymN&lsf4Vnj=k>@ zp-+7RJ-e(6Ka=^n(C9l}!G~UvvbZoy^TiIG>i&b3KGQkrkxirX`#pYh9S9e#aJjUp z041xaaA7b5iVGd5(1yvFm|Iy@c*L^XMhOE3(XWR@a>_txp~L5|IQQgsy7m>^E4Lo_ z=ZLz$J0!HC;l?JHZn*>OU=BH;l&-_;$70SxZ=oOgNH4y)UlC7bxGg>Z)19e5=-sI% zYeql9^7k_IR&(qKMENs2Tch#7vvmTeU-`@Dxqxq9EiEA&6?_$|jH-t2mda09(e1T! z(^Kp_k}Ax!w3>`D-wr~wgnu?RHZHwxSyzHI*ddsp`nFy0z}4_?7sq*F37o=Lo0d=P zLe+lG&ePW+vFs^z%#sLE1NwVYZ8oi5BV&@)zmC*q1fQ-KMKfWU_|3I}Qs?5;i96Vm zs-MYo8arB{~5bgAmF2@xq^g|S6*H$K(K07nx65V*e3^L~!IRq(SKOU|( zf#f4n{`X|s?dHh!yu_v~ z)Ak?h_nr$--NCy4fjZd!`-A(U$NnGNh+m=k%u?X}2(Yb}Xt^h1I>VZ$QM%}uOXx(l zyN_KNp^=UEQ}e{!F&_revU{8PAcE=ka~Kx%JdS1-r0RKB{P>{F)Js-YJcr5Le-e+9 zVlCjWC#JqXhw1%tzc5W=ToM2E^|a=g0Zcel?*-TJ*~MBOw?>CIs+)>OhuK^7MDkW$ z^}h=9Y|N2$*t7^jfQo+rW%a<=d96szkQ49N^iG0Y$ zc_JPOfjvnZUDW^1jZ+m2twM%`G5IU&i?5L#=&Cl{yYE+(#L4hvGo2wUwo1}A z7mcQ8<>$|H!32H?JJt*g-yt3+b240Dde{&m1_=iKe*f4jfCgrMQ0y0?d_N+wm%%ta zKRY`+H#?g={Oy|;DfAN?pYiNmOE6qREiLsib$6fNa=8>l!NcGdn`___-%D=^`SKI(3$mxMUy7uhtJYagXJ<-VQGZYn*$ts+Qsezy zQ+{JrL5=HJ+u2a-I^Wp=4Mn@*$Tvhn>b{ZF{Vu-X+uZ#wy;UQ4cr5tvZVD*<-DG-Y zD@)*eaxLAaI!9{sxW$SGqN&{iF!}VE0qh?$xGX(_ad=9Xiod4U+ z`1N^R2pB>b|BY?Fa?n8hb5~av9oevja3*v%0)gZ*B7;A$2U@_xYr#(6b~--3nO z?2CE!g_du|XbJLtwJ+v0SLP_6fhey-lDcjM#b2b5Yzs zrd)CzxOg6;!A6^3NHW3XE^3{LlxGaW&TH~WLQa~a;djO+q!K<>+ z8B7q1QmOU+Yk7HjVx(r5&|!^M@a-q-S`*vtL*F5|H4R^0yAH0{%jmATh+`2)(e!Ju z`#z5=L=s6UIXOArZJ^{~K|u&`s{E5N$F@uK?Th;vlH=?D-8fQ1EcA;pCF>}ts%||B z+U%Qm3cppVa({d%S^={p4TWz9>#-~(O9b3GVAm#{PG(TICFzB|Us(Jqpo_NpNac0x z1XD-@diS^M`(n5vx_|DzD@&B2WBX7UVrym}hmLVx%wO}wd@W1&B;zA--}&rnO=WCk z;&n9Bx*9e;=20F#rPX01Ux#XQVGMF3G<0_Y1iD?soj!RVFzZa$ff8}pToyA~FJz}V zCc1C#?!O|1<}MkCpa^D@HGyM9gLQgV`}Cw&#W2|_6IlW~^(Y7(j12#&ro_VUKsitN858XbXhP}UR+F9|~jd7R0i zh5KPeX7CP8jwulG_h;A7pFd+!<(MV6i1v?WW-d2w+<4oX$0)+L9_!AyBN=>XRqxxr zmUs&ap3Lf)n_>zQ+^O(JH&%}*QVBM#YZUc^#YN-BM^f(jQi4LXVVp&QfZarK=jZlC^ z)Gej+_XJi^Rkhj(JH&0C#9n}^C(36G7v*k3TS~ev!otG%;oBkOlDLN_1QotFX!xSr zv&41{o4vQ9#Xi@W-xxtRgYbw~{m?&SXA*8duM*!HSMxO|lhE8Z&(-sB;jJGQYa+N8 zSf{*MiO$5uu$$^p^bH` z1$)SVzS)~+wcd=Ksj_V!TK}GHj4OWFo$j@<;2d;zCH+IO5r`rSt?%~(EL7wrTfx->INBy;|fmJOF@p#&Owqyl?K{%EOy*;Dg^Uk z|H|5$dUR;ba)}tRYD9l-q?6ZTt|s@sG3Rc9>t>h{M}+*cwzTYM@N2kwwSulzZU=c?QN2gc~5_TzhHEeF>g>4 z7qVe36F<%IHWS%VURca&)YvZ=-q>ME5C1%27Hv=Oexv9t2pRm1Su*~)oAQ>FJ2gKq zdxd$kINDHJ^zN|xi^luCC(5GDrKsjuu2r6GJAZ#AlTBce=ZGa~F~MIo%Df*^}WuD1QU&@%p#W7u50jv{zC@HZooSXh>)pLMByn);k~Mz>a(C2f+nNu2R0VPAh(3$|TTQiYNe_2~Ee=n**LhiuP$79w}L{i&+IhBH)7Hb*5 zz>B8{=O2)lp&w$Hd^Wj!$FGl0#DoV01sUVZWbOfdJkka>&I`?aC1iJ+xO;vq4{?r^ zcNm~UI0e{-LF_Uu`Qle2Rb4r}}T!`jcub*9Uu(@tJV zPk`VAZ6_MIqvQbBp_zBXid+onu|4^?-F3?)G0cF#qWmq)2hjr8pbBK?7-X_qI5ad= z<oxa2KXdS^_`!gz^O5MBDH5W7@Er(yp_q32d_=6nT}k{{q_mf7Ynkx}|oyf|3*0liB_7wg|U;Yf)hLpGP*EX9fgB zVq3D2KzHTjkWos)E_Ux-G&6iMAjXpF%|9s&)tAywJa?BUdZ8YWYx=BSI+kPG+}R{J@aU zU@9`TSQ?dl@0YACk5p%rI+u-&O%TX1TRg;WsQO_2erWhsX7^?KTZc4!RtaIDoXiyD zJsRWO{byyhos^#Vr0}x0OM)&wX=ZAw4I~w4Y?*ljI~GsI`&_!5`|VZB*dtf~TKN1( zned`+MjF{TL(KX1XJwM}p+HkW8foh`93Pkxe_m>SZY~ASSQ}>PS7#rI2Km1zT_=7= zyj;jmS2ecff#jD$0l21Nx%%nO&gHP?ot>r77q>KsIba(4+pCkL=5{`r=Ey5W1`s1k)_{Shg~j-?`j`ZDoVcfm!SRg}#D2q#gRjHsUq z!~O!QtVWdNWIX_haEB2z$K0WgRaN)wQ6+J7f0~Exiwa8B@%k<99CCX1pE)P|Ezww4 zMEN|XDcvZ$iUl9EufA6e+|rV;@kf%@?~=a%!!LZciBsznHqIesLwVgtJM@|6Pkrw3 z!zd3YQ1KD;^*g;)if7`E(+tpI6U)rY;mv;hO)WtwexEy{T#NeRq8##OgB{jdTjXTu zAC$;8%zgP5s|ezN`g@Q#yW=r5I9QX42o5{$+?#Fl{WdgIdmYB%Eqb@fFyC+rdRRLqm8Q4iPE&M%89gRgSTyXoWVR5_Euf{_YR^!?VN zIbVJU>SREtDdz})`Tp5VmdaDd60K#{MWLfHtWvETfg;>Y6tRr0C;+FPI?UTvmXLsFhX97wcJyy$t3#MJgUia?PSa{ z^gXzcDqNGaF-rL$Ue+S{XKpSe+Lh7E>Mu=XkC1m0jSa{x7^)NYia`VqjG&?3<2w>Y zHwEiisjjKj9zPq}K((&VR)Cz3ygSqLmx*i~wrg92+&Dpw*v!@yE#|1tpin3ef`T?V zp&_;rE&A6ICpyAUbF295$q)8VymMK5@XtVzOMlTF=s!B$M-y~88bJ^qg`S2h8k--v zYkVPbD*_qvqwzV+sM#KkX=)hKl>B)Mo?TaUuh?ZiZ1M#B(aT!DG~SxZzMu+~Q#Nyv zsFU-Ou`M43nwSal6P%EYmyMqcu{c70_lRaFJqHWpT;B2Di_7agA!)i*)6>Qs_N5Es z#Y)`P9P^{Ps)X~%hI}ZfHDdViPaa4ALD2+Ho6;{5Q%}em)AQMdB9F$fo2=fzcqNk_ zAye~9%<9wUdH9={uSrRnNIuE~SRE%v`(ZU#m^dP=NdIb5Vv}GlvmkrHHVtt`1$Ql1 zr^e;5b}qk4pBnH?TE>pCzyxVx9jUq3q*Uon|Aw9jx6spFw#iBg%Hz5G#5d(B>XiR+ z(H_gN=2LL8p&OyJyhCX;q9(2DcO1rxn`j1=n_<;sw9^F_r!(iM)@L(xpy2D+HJH8$ zug>U-DjYS(QC&?`1nE%@cZKkq*DF+RHM%xvT&c8#%}%B?WTmTXmwLn7$_6`|`9mT7 zzYCMFqeezp_1S?%ML^A>w-W6!WS1RQ9xyk9l6*zH_lH z-SFyZ1^c$X(4P%YY0>NTw?rFy(Kc_Vqto!ej3VU_s~>M-nn;%@R=ZUDsm!1 zzIohB0d-ua=cRVK+kTJY)M1^07kCT5I2AHvACIgD(rEj0Q3h*4?~=5KOXFxi4>IFi zWA8Ol0tZafsg~J7ED2y)8+UD=QumKoqbv5;pM=%e>cb%Qa~S{Q4jlcH)1S01N8?`w zQqF0lHede9@`ekY%X6I%E)3_KJh

MSb;d%Rn&7=C2VuhdtJncl z@Oi*-?u@m}sqAR&+3IiWxNFkeOXC-0#=R<3P{2kGp%Ce2nwH(nk;10q-$>0t*s;m> z-03IU+v(T=z!ie5tgKom$)HDJ45=pQWeQOg>)r)69fP;kiAR99W#^1PR)7ikfj1{ z!aU*4$&_i^KS~`|JTlhhgG`rf>Mx;IH68v|dZXCp>KFR?)*>zwdZyDL#k%gm6)yKo z@+AvbRixAvcFHLgRKewtsu{fABE;d1(H22k!e@9DW!HB3^NfnF#gtMV((>=Hg)v<} z( zB9+e(b!Us7hplAkO^57~FzkICyj_h9O$H1V4-O7?Lswxlm8fIYedWE&)yEoULTM3v zWn702Rm0ejF{KWBbcGex^tgtyVdP}MkxEKc19g^xnsJD@Qcj*F2zl{OHh#d*FRIS( zC@&#Mxw`Y9Eu0y4s|s&%8LYLv<-w92s2NV2v1ZgPcc?rE^R@?lDZ}T#_V%pw)Aoy7 zUwFMeE7XfUM`=3PvC)*t?JvV)=w2UO4q|rED8opi@f)3vx0?x{P6N2X6&j1`^*I9K zuNVq}DO^tuG9e|E*p?rH=eu{HT7GKncCD>-8KXwWD$gxvRv5T(f=1{LKbo0@$cWqW z_$HOOZhrsy^PYHwELeRnh?pb)`CG|EW#{Cyn$mT!B8hsL^NTzR zFl9VtTKzq;jIurgVZ5S9Kki2aTpPo+i(y^zAa$S`b88y1p8O6PXyzeem7%a*8_$bn zBf1WBoc83|W)hBl5@by)c)Oew>~{C=2uH6^U5Z|29mmzyQlBQzkYB_1#FOTexmC$* zkx6MipFNZQiIk5=nOja%)4!gYP^nZ(wPZXX73O46;p{va%MwScK0C8Bm>9rTjrdlw ztC!8XC8TF%#TXAiDLp{GB|Ot!@fQ+(o`&X3*+W54{l@Av?sVi$ zoGW8(HfnT?<*hk4|3hu_+F<5#)M%~|{Q5b05)D_K*nYHDihsL0Ymxv#5< z&xJzDyNhxOu8g5Mk*nAczKMOMMnHSP5rcR>Os|QQuj9xtqgOqci3vCO(B+s(nsJR_ z;tkbDLk%45370PjJ`GdMy{ZzK<-}FLE*LaZn13RZ(`t>!*8g64Uf%3>)Mzzp{ULNf z8bU?2ySF~I8y*-4biZ2|nBpfOr;aktq8iTmn{+$k&cC>~WmsXqJ}Wn#la8xRqMd`c zD@fJsSGBQGCt_kF<>y^NV@rj22_CEle71wdpq)i(jU-m%jUwb*HOFp3lc|8DlR*+& z0Nfut)qcd$U)2!0j7;@IlvKbC7wdMSkjz|HSJyh37e7H|X2Xq%ig$E(AC}oM3Q)}M ze5jmk%W}8H!XbI}O|ZJgk@|5E<8g_)6PzcgR%h*^5gWPCovm$nRhpJ?||P4mCgpv{n@+W9tFFLSpn!{{j}W-i5PtL-uCj;<&;!n}+smwGv7Vb^wgtM6un ze5y_5qd&2qRKJ8e@3KfBgcS@Y|;~&?9qJ3W8&MM@IBj@ z&t=<{Oj$`!0-mP|@!C;0N1u>Nm|~S|@O1IXl*we5h(z|g$Lo&(%$y(D*gxQ=IKB~a z7>c}u1^Q7P=HZK5oYvCP(ku{YRyX28d_4z5>3)NwhSG(m$C`IXs8s4h zAc^;PZTjAfT7p~x&iHBp=*eRANzHel4i2~BHfmDmBpZ|xy2E@^r=eXE87Rc0S5U)i(``YLIvuB(O1fh2EY=kP$dkOOiqMFN2+-908=^Uue6Q9_GA_Hvoa#2X;Sb&) zM)8Nuip>Y)leV%K-dhHg?foCrR|*0G0%B)8CQsKFJ`KI7Z2B+SUg+Na!;&+7$3!Ur zVEHgh6cEs6JbGtrdesVFQu$o3I66B1E{uwbnjBy-qEQRSLWO+6omkLJ!#-*kNsjP| zI?Dr}0IV?F&Qx z?KkkBIZVcHvlBI*hY3Hh4Hb_sPf?$&oO=#g@BB`St`+~QC1V$H4l}AR6z3$l!~BxB zla}j#EiqB}H1FxuQ+#|^&^uT$HjGyhY3ppc)Ph>UC!axCR5_B9GtCa}G6cbfjw3DR76Cuz*Jkc%btE;XwfEi`LfGT!8(rL!&q& zq%!nE;*UA5*LaIg8QbdesgiYM!w=dWRqE&g{7ocPf2GdmKr5YZ6m!Ph%jr6>%9iqh z0siu!OX>bKq%l?vI|J!mL3D*&%&nEMW)01;SSaP8tE-KL1mWpM?nyD|U0$9mMSeoP z*QW}EO7Dwiab)B2nP3LUwh!$hK$lPq^jqGVNR+1gTd1dMneSX(m9}d;3{Vc7M+rNF zLX}~nXoAZ&$*^2qSs4Q)EkT^N?iDy0qpolXzjTh4uy~DPBJjFpQU&P0CW9ITui8M| zPmk4v@k(mPWe%t}d^s4gOBwkL)N4rq9WQTROseLMycxSZ(Oy-No{oPeKOy;4^-UK! z+z!CTsR)71YiK?Lx;~_&nA#b1k8xADVdbfb#A?>4QnUqmb#`uUPS%pFXa(!+P#zSx ztd^AC-0<0hvWqg(*5&_|Q-aENYZCSmGgCu0$~I?;_4%)U1j+T>{P)){>d5A(cb1{q z1%sgLE>65;*XH_o+-ID}S2g=fQLZMkVGN0KhgFZ+WEK>LHJb@EwOEi#P2p&iM+}m3 zT-SK3=8CGSs(Dg0G9lGksTy-@%#|@`Mz=Fry$^32qz7h|b~2;;Z2js{>_6TBR-(FY zRsi1rmt>u07yItSROZ-vG%44BZiRZ}!l2Gle{D@iwrXU=XHTv3H}y-#x8{|&R>4@k z*g}rPDDfdtgN&R=`7q!ytxzzfpxUH{N9Oz!?YPn&&+?v2eD*U3yQ#!C15R{1vmE=C zSSO#Z-vOVZ{0|jLbuQPYBk|$Q4UQKpx$KM;^LhFCbN>(!7I<49GK6as%BwRo#qtpi zav{fUC(km3Yu`@Q324ucEzI}7yMd+93x&Fd=8~maizrc8OmvP@9TI}B4-H6Jf31*bpP`Q8>zOx+SG0>T1Aw!8uYYM_Vwu$a{B z+35MEkk9|%^f0bkJ+-rUDZWYvl?x8YE}@xuQQOVyVUH)H%Zw@NIgJ)CLBV_;6Q4D; z4oFIa*lR&n%r8*aWvn{nZj_ULI7TpiEAXWW@^-WnkedNrGv?NV8YCqLIp<)JTdG^S zB&5QWAUgZFXpevd`7lw}eoI7BHvqJLcX{n7M`PUi>;zdnqU1%&b|dM3fdyFIa8~=LGBr5@bK%-$zh9x zFXFlkM-x)*JKi9XKni$h1sw8V$G$l+dyIu5SEemD##=qCD_Mz(%F318yl>Bc5*iM* zadUCM*yFUF-r&0{iP;6+0Cus1IhQrgtoR%Cto-SoH>8W1tWu5Ue>{)818eLbd5cu) z!JVug&n5%v&TAJBuG{PA=wuIDfI##H{m&Qj6KCNX11vXy6${L4x#gxc(56>lejI0H zF@C4)iU7eK9C-nthkm`%%M}lRX&uGO9h17gva*$C;fcBmc5xlPJj==dp95}HUoWK>G*M2r{}wwt^&xwb z4STVo1@x~!d}50l-KrW@x|7WR+>xigRxV({eC7#v7`Dx4kb~Ls;kKT2?;xm;TU1nD z#^-RjSgCCF-FX&L)GheWM;f3w7*_lEBM{BBQBIZ#;BmhI)QSTwzDe3g3=K?~oGBoR zUg`D8=R0*OFl|&RzMonn9^WdkZ{!r3x!4gE>8N!dm!Rq| = { + title: 'Components/Map', + component: Map, + tags: ['autodocs'], +} +type Story = StoryObj + +const coordinates: [number, number] = [0.119167, 52.205276] + +export const Unavailable: Story = {} + +export const Basic: Story = { + render: (args) => ( + + ), + args: { + center: coordinates, + markers: [new Marker({ color: 'var(--primary)' }).setLngLat(coordinates)], + className: 'h-60', + }, +} + +export default meta diff --git a/frontend/src/lib/components/Map/Map.tsx b/frontend/src/lib/components/Map/Map.tsx new file mode 100644 index 00000000000..0b72d136d04 --- /dev/null +++ b/frontend/src/lib/components/Map/Map.tsx @@ -0,0 +1,64 @@ +import { useEffect, useRef } from 'react' +import { Map as RawMap, Marker } from 'maplibre-gl' +import useResizeObserver from 'use-resize-observer' + +import 'maplibre-gl/dist/maplibre-gl.css' + +/** Latitude and longtitude in degrees (+lat is east, -lat is west, +lon is south, -lon is north). */ +export interface MapProps { + /** Coordinates to center the map on by default. */ + center: [number, number] + /** Markers to show. */ + markers?: Marker[] + /** Map container class names. */ + className?: string + /** The map's MapLibre style. This must be a JSON object conforming to the schema described in the MapLibre Style Specification, or a URL to such JSON. */ + mapLibreStyleUrl: string +} + +export function Map({ className, ...rest }: Omit): JSX.Element { + if (!window.JS_MAPLIBRE_STYLE_URL) { + return ( +

+

Map unavailable

+

+ The MAPLIBRE_STYLE_URL setting is not defined. Please configure this setting with a + valid MapLibre Style URL to display maps. +

+
+ ) + } + + return +} + +export function MapComponent({ center, markers, className, mapLibreStyleUrl }: MapProps): JSX.Element { + const mapContainer = useRef(null) + const map = useRef(null) + + useEffect(() => { + map.current = new RawMap({ + container: mapContainer.current as HTMLElement, + style: mapLibreStyleUrl, + center, + zoom: 4, + maxZoom: 10, + }) + if (markers) { + for (const marker of markers) { + marker.addTo(map.current) + } + } + }, []) + + useResizeObserver({ + ref: mapContainer, + onResize: () => { + if (map.current) { + map.current.resize() + } + }, + }) + + return
+} diff --git a/frontend/src/scenes/notebooks/Nodes/NotebookNodeMap.tsx b/frontend/src/scenes/notebooks/Nodes/NotebookNodeMap.tsx new file mode 100644 index 00000000000..f0e5ef1931c --- /dev/null +++ b/frontend/src/scenes/notebooks/Nodes/NotebookNodeMap.tsx @@ -0,0 +1,64 @@ +import { Marker } from 'maplibre-gl' + +import { NotebookNodeType } from '~/types' +import { createPostHogWidgetNode } from 'scenes/notebooks/Nodes/NodeWrapper' +import { personLogic } from 'scenes/persons/personLogic' +import { useValues } from 'kea' +import { LemonSkeleton } from '@posthog/lemon-ui' +import { NotFound } from 'lib/components/NotFound' +import { Map } from '../../../lib/components/Map/Map' +import { notebookNodeLogic } from './notebookNodeLogic' +import { NotebookNodeProps } from 'scenes/notebooks/Notebook/utils' +import { NotebookNodeEmptyState } from './components/NotebookNodeEmptyState' + +const Component = ({ attributes }: NotebookNodeProps): JSX.Element | null => { + const { id } = attributes + const { expanded } = useValues(notebookNodeLogic) + + const logic = personLogic({ id }) + const { person, personLoading } = useValues(logic) + + if (personLoading) { + return + } else if (!person) { + return + } + + if (!expanded) { + return null + } + + const longtitude = person?.properties?.['$geoip_longitude'] + const latitude = person?.properties?.['$geoip_latitude'] + const personCoordinates: [number, number] | null = + !isNaN(longtitude) && !isNaN(latitude) ? [longtitude, latitude] : null + + if (!personCoordinates) { + return + } + + return ( + + ) +} + +type NotebookNodeMapAttributes = { + id: string +} + +export const NotebookNodeMap = createPostHogWidgetNode({ + nodeType: NotebookNodeType.Map, + titlePlaceholder: 'Location', + Component, + resizeable: true, + heightEstimate: 150, + expandable: true, + startExpanded: true, + attributes: { + id: {}, + }, +}) diff --git a/frontend/src/scenes/notebooks/Nodes/components/NotebookNodeEmptyState.tsx b/frontend/src/scenes/notebooks/Nodes/components/NotebookNodeEmptyState.tsx new file mode 100644 index 00000000000..8dd8c292407 --- /dev/null +++ b/frontend/src/scenes/notebooks/Nodes/components/NotebookNodeEmptyState.tsx @@ -0,0 +1,11 @@ +type NotebookNodeEmptyStateProps = { + message: string +} + +export function NotebookNodeEmptyState({ message }: NotebookNodeEmptyStateProps): JSX.Element { + return ( +
+ {message} +
+ ) +} diff --git a/frontend/src/scenes/notebooks/Notebook/Editor.tsx b/frontend/src/scenes/notebooks/Notebook/Editor.tsx index 51cf23c4166..0954dda2dbb 100644 --- a/frontend/src/scenes/notebooks/Notebook/Editor.tsx +++ b/frontend/src/scenes/notebooks/Notebook/Editor.tsx @@ -39,6 +39,7 @@ import { sampleOne } from 'lib/utils' import { NotebookNodeGroup } from '../Nodes/NotebookNodeGroup' import { NotebookNodeCohort } from '../Nodes/NotebookNodeCohort' import { NotebookNodePersonFeed } from '../Nodes/NotebookNodePersonFeed/NotebookNodePersonFeed' +import { NotebookNodeMap } from '../Nodes/NotebookNodeMap' const CustomDocument = ExtensionDocument.extend({ content: 'heading block*', @@ -120,6 +121,7 @@ export function Editor(): JSX.Element { BacklinkCommandsExtension, NodeGapInsertionExtension, NotebookNodePersonFeed, + NotebookNodeMap, ], editorProps: { handleDrop: (view, event, _slice, moved) => { diff --git a/frontend/src/scenes/notebooks/Notebook/utils.ts b/frontend/src/scenes/notebooks/Notebook/utils.ts index d0f9a67ac9b..085098f5e10 100644 --- a/frontend/src/scenes/notebooks/Notebook/utils.ts +++ b/frontend/src/scenes/notebooks/Notebook/utils.ts @@ -125,6 +125,7 @@ export const textContent = (node: any): string => { 'ph-group': customOrTitleSerializer, 'ph-cohort': customOrTitleSerializer, 'ph-person-feed': customOrTitleSerializer, + 'ph-map': customOrTitleSerializer, } return getText(node, { diff --git a/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx b/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx index 10c2ba86f82..3f91edb487e 100644 --- a/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx +++ b/frontend/src/scenes/notebooks/NotebooksTable/ContainsTypeFilter.tsx @@ -4,7 +4,7 @@ import { NotebooksListFilters } from 'scenes/notebooks/NotebooksTable/notebooksT export const fromNodeTypeToLabel: Omit< Record, - NotebookNodeType.Backlink | NotebookNodeType.PersonFeed + NotebookNodeType.Backlink | NotebookNodeType.PersonFeed | NotebookNodeType.Map > = { [NotebookNodeType.FeatureFlag]: 'Feature flags', [NotebookNodeType.FeatureFlagCodeExample]: 'Feature flag Code Examples', diff --git a/frontend/src/scenes/persons/PersonFeedCanvas.tsx b/frontend/src/scenes/persons/PersonFeedCanvas.tsx index 1195b958aff..1273fa1c134 100644 --- a/frontend/src/scenes/persons/PersonFeedCanvas.tsx +++ b/frontend/src/scenes/persons/PersonFeedCanvas.tsx @@ -32,6 +32,10 @@ const PersonFeedCanvas = ({ person }: PersonFeedCanvasProps): JSX.Element => { type: 'ph-person', attrs: { id: personId, nodeId: uuid(), title: 'Info' }, }, + { + type: 'ph-map', + attrs: { id: personId, nodeId: uuid() }, + }, ], }, }, diff --git a/frontend/src/types.ts b/frontend/src/types.ts index cd88a668626..cbcfaa11bd9 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -3082,6 +3082,7 @@ export enum NotebookNodeType { ReplayTimestamp = 'ph-replay-timestamp', Image = 'ph-image', PersonFeed = 'ph-person-feed', + Map = 'ph-map', } export type NotebookNodeResource = { diff --git a/package.json b/package.json index 8a718827211..04efee98671 100644 --- a/package.json +++ b/package.json @@ -130,6 +130,7 @@ "kea-test-utils": "^0.2.4", "kea-waitfor": "^0.2.1", "kea-window-values": "^3.0.0", + "maplibre-gl": "^3.5.1", "md5": "^2.3.0", "monaco-editor": "^0.39.0", "papaparse": "^5.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d3710208675..d5c9d734183 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' settings: autoInstallPeers: true @@ -203,6 +203,9 @@ dependencies: kea-window-values: specifier: ^3.0.0 version: 3.0.0(kea@3.1.5) + maplibre-gl: + specifier: ^3.5.1 + version: 3.5.1 md5: specifier: ^2.3.0 version: 2.3.0 @@ -829,7 +832,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.1 transitivePeerDependencies: - supports-color @@ -2441,8 +2444,8 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.9.1: - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -3100,6 +3103,54 @@ packages: react: 16.14.0 dev: false + /@mapbox/geojson-rewind@0.5.2: + resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} + hasBin: true + dependencies: + get-stream: 6.0.1 + minimist: 1.2.8 + dev: false + + /@mapbox/jsonlint-lines-primitives@2.0.2: + resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==} + engines: {node: '>= 0.6'} + dev: false + + /@mapbox/point-geometry@0.1.0: + resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} + dev: false + + /@mapbox/tiny-sdf@2.0.6: + resolution: {integrity: sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==} + dev: false + + /@mapbox/unitbezier@0.0.1: + resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==} + dev: false + + /@mapbox/vector-tile@1.3.1: + resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} + dependencies: + '@mapbox/point-geometry': 0.1.0 + dev: false + + /@mapbox/whoots-js@3.1.0: + resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} + engines: {node: '>=6.0.0'} + dev: false + + /@maplibre/maplibre-gl-style-spec@19.3.3: + resolution: {integrity: sha512-cOZZOVhDSulgK0meTsTkmNXb1ahVvmTmWmfx9gRBwc6hq98wS9JP35ESIoNq3xqEan+UN+gn8187Z6E4NKhLsw==} + hasBin: true + dependencies: + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/unitbezier': 0.0.1 + json-stringify-pretty-compact: 3.0.0 + minimist: 1.2.8 + rw: 1.3.3 + sort-object: 3.0.3 + dev: false + /@maxmind/geoip2-node@3.5.0: resolution: {integrity: sha512-WG2TNxMwDWDOrljLwyZf5bwiEYubaHuICvQRlgz74lE9OZA/z4o+ZT6OisjDBAZh/yRJVNK6mfHqmP5lLlAwsA==} dependencies: @@ -3216,7 +3267,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.13.0 dev: true /@open-draft/until@1.0.3: @@ -4924,7 +4975,7 @@ packages: flat-cache: 3.0.4 micromatch: 4.0.5 react-docgen-typescript: 2.2.2(typescript@4.9.5) - tslib: 2.6.2 + tslib: 2.4.1 typescript: 4.9.5 webpack: 5.88.2(@swc/core@1.3.93)(esbuild@0.14.54)(webpack-cli@5.1.4) transitivePeerDependencies: @@ -6004,6 +6055,10 @@ packages: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} dev: true + /@types/geojson@7946.0.12: + resolution: {integrity: sha512-uK2z1ZHJyC0nQRbuovXFt4mzXDwf27vQeUWNhfKGwRcWW429GOhP8HxUHlM6TLH4bzmlv/HlEjpvJh3JfmGsAA==} + dev: false + /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: @@ -6080,10 +6135,6 @@ packages: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/json-schema@7.0.14: - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} - dev: true - /@types/less@3.0.3: resolution: {integrity: sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw==} dev: false @@ -6092,6 +6143,18 @@ packages: resolution: {integrity: sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==} dev: true + /@types/mapbox__point-geometry@0.1.3: + resolution: {integrity: sha512-2W46IOXlu7vC8m3+M5rDqSnuY22GFxxx3xhkoyqyPWrD+eP2iAwNst0A1+umLYjCTJMJTSpiofphn9h9k+Kw+w==} + dev: false + + /@types/mapbox__vector-tile@1.3.3: + resolution: {integrity: sha512-d263B3KCQtXKVZMHpMJrEW5EeLBsQ8jvAS9nhpUKC5hHIlQaACG9PWkW8qxEeNuceo9120AwPjeS91uNa4ltqA==} + dependencies: + '@types/geojson': 7946.0.12 + '@types/mapbox__point-geometry': 0.1.3 + '@types/pbf': 3.0.4 + dev: false + /@types/md5@2.3.2: resolution: {integrity: sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==} dev: false @@ -6159,6 +6222,10 @@ packages: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} dev: true + /@types/pbf@3.0.4: + resolution: {integrity: sha512-SOFlLGZkLbEXJRwcWCqeP/Koyaf/uAqLXHUsdo/nMfjLsNd8kqauwHe9GBOljSmpcHp/LC6kOjo3SidGjNirVA==} + dev: false + /@types/pica@9.0.1: resolution: {integrity: sha512-hTsYxcy0MqIOKzeALuh3zOHyozBlndxV/bX9X52GBFq2XUQchZF6T0vcRYeT5P1ggmswi2LlIwHAH+bKWxxalg==} dev: true @@ -6273,10 +6340,6 @@ packages: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} - dev: true - /@types/send@0.17.3: resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} dependencies: @@ -6310,6 +6373,12 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true + /@types/supercluster@7.1.2: + resolution: {integrity: sha512-qMhofL945Z4njQUuntadexAgPtpiBC014WvVqU70Prj42LC77Xgmz04us7hSMmwjs7KbgAwGBmje+FSOvDbP0Q==} + dependencies: + '@types/geojson': 7946.0.12 + dev: false + /@types/testing-library__jest-dom@5.14.5: resolution: {integrity: sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==} dependencies: @@ -6376,7 +6445,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.9.1 + '@eslint-community/regexpp': 4.6.2 '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@4.9.5) '@typescript-eslint/scope-manager': 6.9.0 '@typescript-eslint/type-utils': 6.9.0(eslint@8.52.0)(typescript@4.9.5) @@ -6388,7 +6457,7 @@ packages: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) + ts-api-utils: 1.0.2(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -6445,7 +6514,7 @@ packages: '@typescript-eslint/utils': 6.9.0(eslint@8.52.0)(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) eslint: 8.52.0 - ts-api-utils: 1.0.3(typescript@4.9.5) + ts-api-utils: 1.0.2(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -6497,7 +6566,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) + ts-api-utils: 1.0.2(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -6530,8 +6599,8 @@ packages: eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.9.0 '@typescript-eslint/types': 6.9.0 '@typescript-eslint/typescript-estree': 6.9.0(typescript@4.9.5) @@ -6915,7 +6984,7 @@ packages: resolution: {integrity: sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==} engines: {node: '>=14.16'} dependencies: - type-fest: 3.13.1 + type-fest: 3.5.3 dev: true /ansi-html-community@0.0.8: @@ -7081,6 +7150,11 @@ packages: dependencies: deep-equal: 2.1.0 + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: false + /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: @@ -7091,14 +7165,14 @@ packages: /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + get-intrinsic: 1.1.3 is-string: 1.0.7 dev: true @@ -7111,24 +7185,14 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + es-shim-unscopables: 1.0.0 dev: true /array.prototype.reduce@1.0.5: @@ -7142,14 +7206,14 @@ packages: is-string: 1.0.7 dev: true - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.1.3 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -7188,6 +7252,11 @@ packages: util: 0.12.5 dev: true + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: false + /ast-metadata-inferer@0.8.0: resolution: {integrity: sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==} dependencies: @@ -7212,7 +7281,7 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: true /astral-regex@2.0.0: @@ -7675,6 +7744,19 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + /bytewise-core@1.2.3: + resolution: {integrity: sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==} + dependencies: + typewise-core: 1.2.0 + dev: false + + /bytewise@1.1.0: + resolution: {integrity: sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==} + dependencies: + bytewise-core: 1.2.3 + typewise: 1.0.3 + dev: false + /c8@7.14.0: resolution: {integrity: sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==} engines: {node: '>=10.12.0'} @@ -7709,6 +7791,12 @@ packages: write-file-atomic: 3.0.3 dev: true + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.2 + /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -8995,9 +9083,9 @@ packages: /deep-equal@2.1.0: resolution: {integrity: sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.2 es-get-iterator: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.1.3 is-arguments: 1.1.1 is-date-object: 1.0.5 is-regex: 1.1.4 @@ -9056,7 +9144,7 @@ packages: dependencies: get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -9068,12 +9156,20 @@ packages: engines: {node: '>=12'} dev: true + /define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 object-keys: 1.1.1 /defu@6.1.2: @@ -9328,6 +9424,10 @@ packages: stream-shift: 1.0.1 dev: true + /earcut@2.2.4: + resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} + dev: false + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -9455,6 +9555,36 @@ packages: dependencies: stackframe: 1.3.4 + /es-abstract@1.20.4: + resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} @@ -9470,7 +9600,7 @@ packages: get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.0 @@ -9520,14 +9650,14 @@ packages: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} dependencies: asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.3 es-set-tostringtag: 2.0.2 - function-bind: 1.1.2 + function-bind: 1.1.1 get-intrinsic: 1.2.2 globalthis: 1.0.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.6 @@ -9548,10 +9678,10 @@ packages: hasown: 2.0.0 dev: true - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: - hasown: 2.0.0 + has: 1.0.3 dev: true /es-to-primitive@1.2.1: @@ -9956,23 +10086,23 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 eslint: 8.52.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 + jsx-ast-utils: 3.3.3 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 prop-types: 15.8.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.4 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.8 dev: true /eslint-plugin-storybook@0.6.15(eslint@8.52.0)(typescript@4.9.5): @@ -10018,7 +10148,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@eslint-community/regexpp': 4.9.1 + '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.2 '@eslint/js': 8.52.0 '@humanwhocodes/config-array': 0.11.13 @@ -10263,6 +10393,21 @@ packages: transitivePeerDependencies: - supports-color + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: false + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: false + /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -10308,8 +10453,19 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + /fast-diff@1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 dev: true /fast-glob@3.3.1: @@ -10348,8 +10504,8 @@ packages: resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} dev: false - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 dev: true @@ -10420,7 +10576,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.0.4 dev: true /file-loader@6.2.0(webpack@5.88.2): @@ -10444,7 +10600,7 @@ packages: /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: - minimatch: 5.1.6 + minimatch: 5.1.1 dev: true /fill-range@7.0.1: @@ -10558,23 +10714,10 @@ packages: rimraf: 3.0.2 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} - dependencies: - flatted: 3.2.9 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: true - /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - dev: true - /flow-parser@0.214.0: resolution: {integrity: sha512-RW1Dh6BuT14DA7+gtNRKzgzvG3GTPdrceHCi4ddZ9VFGQ9HtO5L8wzxMGsor7XtInIrbWZZCSak0oxnBF7tApw==} engines: {node: '>=0.4.0'} @@ -10755,9 +10898,22 @@ packages: requiresBuild: true optional: true + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} @@ -10780,11 +10936,22 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + /geojson-vt@3.2.1: + resolution: {integrity: sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==} + dev: false + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-intrinsic@1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -10832,7 +10999,6 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - dev: true /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -10842,6 +11008,11 @@ packages: get-intrinsic: 1.2.2 dev: true + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: false + /getos@3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: @@ -10877,6 +11048,10 @@ packages: resolution: {integrity: sha512-4hYlStsEIaYeYvZTZwgD5yOS2WVP0dcDsOBqeImdEM8eLuclvv0IEMlQQ1kuA5DN4he7wVH1jsYtNe9uininxg==} dev: true + /gl-matrix@3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} + dev: false + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -10964,6 +11139,15 @@ packages: which: 1.3.1 dev: true + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: false + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -10988,7 +11172,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.2.12 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -11050,8 +11234,8 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.2 @@ -11074,7 +11258,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.2 - dev: true /hasha@5.2.2: resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} @@ -11359,7 +11542,6 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} @@ -11433,7 +11615,6 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true /ini@2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} @@ -11467,6 +11648,15 @@ packages: wrap-ansi: 7.0.0 dev: true + /internal-slot@1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + /internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} @@ -11604,10 +11794,10 @@ packages: rgba-regex: 1.0.0 dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} dependencies: - hasown: 2.0.0 + has: 1.0.3 /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -11639,6 +11829,11 @@ packages: hasBin: true dev: true + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false + /is-extendable@1.0.1: resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} engines: {node: '>=0.10.0'} @@ -11839,13 +12034,13 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 + dev: true /is-typed-array@1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.13 - dev: true /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -11900,7 +12095,6 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true /isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} @@ -12677,7 +12871,7 @@ packages: jest-pnp-resolver: 1.2.2(jest-resolve@28.1.3) jest-util: 28.1.3 jest-validate: 28.1.3 - resolve: 1.22.8 + resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 dev: true @@ -12692,7 +12886,7 @@ packages: jest-pnp-resolver: 1.2.2(jest-resolve@29.3.1) jest-util: 29.3.1 jest-validate: 29.3.1 - resolve: 1.22.8 + resolve: 1.22.1 resolve.exports: 1.1.0 slash: 3.0.0 dev: true @@ -13166,10 +13360,6 @@ packages: engines: {node: '>=4'} hasBin: true - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -13193,6 +13383,10 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true + /json-stringify-pretty-compact@3.0.0: + resolution: {integrity: sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==} + dev: false + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -13235,16 +13429,18 @@ packages: json-schema: 0.4.0 verror: 1.10.0 - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + /jsx-ast-utils@3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 + array-includes: 3.1.6 object.assign: 4.1.4 - object.values: 1.1.7 dev: true + /kdbush@4.0.2: + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} + dev: false + /kea-forms@3.0.3(kea@3.1.5): resolution: {integrity: sha512-ApiirM7K103ULa0hNNcJHiJ0ffvuVIn9Nwg4wsEadfyraV9GLrWVbUeZWW0qFI2zTlkizDplM/gc3gGUfQTs9g==} peerDependencies: @@ -13340,16 +13536,9 @@ packages: use-sync-external-store: 1.2.0(react@16.14.0) dev: false - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - dev: true /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -13413,7 +13602,7 @@ packages: dependencies: copy-anything: 2.0.6 parse-node-version: 1.0.1 - tslib: 2.6.2 + tslib: 2.4.1 optionalDependencies: errno: 0.1.8 graceful-fs: 4.2.11 @@ -13670,7 +13859,7 @@ packages: requiresBuild: true dependencies: pify: 4.0.1 - semver: 5.7.2 + semver: 5.7.1 /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -13697,6 +13886,37 @@ packages: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} dev: true + /maplibre-gl@3.5.1: + resolution: {integrity: sha512-XFpqAKjpm7Y6cV3B1MDZ3FGUCXyrfeM2QkXloKc4x2QK9/e6/BEHdVebtxXcTrwdzpQexKrMqzdYCbaobJRNrw==} + engines: {node: '>=16.14.0', npm: '>=8.1.0'} + dependencies: + '@mapbox/geojson-rewind': 0.5.2 + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/point-geometry': 0.1.0 + '@mapbox/tiny-sdf': 2.0.6 + '@mapbox/unitbezier': 0.0.1 + '@mapbox/vector-tile': 1.3.1 + '@mapbox/whoots-js': 3.1.0 + '@maplibre/maplibre-gl-style-spec': 19.3.3 + '@types/geojson': 7946.0.12 + '@types/mapbox__point-geometry': 0.1.3 + '@types/mapbox__vector-tile': 1.3.3 + '@types/pbf': 3.0.4 + '@types/supercluster': 7.1.2 + earcut: 2.2.4 + geojson-vt: 3.2.1 + gl-matrix: 3.4.3 + global-prefix: 3.0.0 + kdbush: 4.0.2 + murmurhash-js: 1.0.0 + pbf: 3.2.1 + potpack: 2.0.0 + quickselect: 2.0.0 + supercluster: 8.0.1 + tinyqueue: 2.0.3 + vt-pbf: 3.1.3 + dev: false + /markdown-it@13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} hasBin: true @@ -13875,13 +14095,6 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -13891,7 +14104,6 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} @@ -14028,6 +14240,10 @@ packages: object-assign: 4.1.1 dev: false + /murmurhash-js@1.0.0: + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} + dev: false + /mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true @@ -14147,8 +14363,8 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 + resolve: 1.22.1 + semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -14236,8 +14452,12 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + /object-inspect@1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} @@ -14254,27 +14474,27 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.2 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 dev: true /object.getownpropertydescriptors@2.1.4: @@ -14287,11 +14507,11 @@ packages: es-abstract: 1.22.3 dev: true - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.3 + define-properties: 1.1.4 + es-abstract: 1.20.4 dev: true /object.omit@3.0.0: @@ -14308,13 +14528,13 @@ packages: isobject: 3.0.1 dev: false - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 dev: true /objectorarray@1.0.5: @@ -14636,6 +14856,14 @@ packages: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} dev: true + /pbf@3.2.1: + resolution: {integrity: sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==} + hasBin: true + dependencies: + ieee754: 1.2.1 + resolve-protobuf-schema: 2.1.0 + dev: false + /peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} dependencies: @@ -15151,6 +15379,10 @@ packages: fflate: 0.4.8 dev: false + /potpack@2.0.0: + resolution: {integrity: sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==} + dev: false + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -15160,7 +15392,7 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} dependencies: - fast-diff: 1.3.0 + fast-diff: 1.2.0 dev: true /prettier@2.8.8: @@ -15409,6 +15641,10 @@ packages: prosemirror-transform: 1.7.1 dev: false + /protocol-buffers-schema@3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + dev: false + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -15526,6 +15762,10 @@ packages: engines: {node: '>=10'} dev: false + /quickselect@2.0.0: + resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} + dev: false + /ramda@0.29.0: resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} dev: true @@ -16280,7 +16520,7 @@ packages: react: 16.14.0 react-remove-scroll-bar: 2.3.4(@types/react@16.14.34)(react@16.14.0) react-style-singleton: 2.2.1(@types/react@16.14.34)(react@16.14.0) - tslib: 2.6.2 + tslib: 2.4.1 use-callback-ref: 1.3.0(@types/react@16.14.34)(react@16.14.0) use-sidecar: 1.1.2(@types/react@16.14.34)(react@16.14.0) dev: true @@ -16402,14 +16642,14 @@ packages: react-dom: 16.14.0(react@16.14.0) dev: false - /react-universal-interface@0.6.2(react@16.14.0)(tslib@2.6.2): + /react-universal-interface@0.6.2(react@16.14.0)(tslib@2.4.1): resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} peerDependencies: react: '*' tslib: '*' dependencies: react: 16.14.0 - tslib: 2.6.2 + tslib: 2.4.1 dev: false /react-use@15.3.8(react-dom@16.14.0)(react@16.14.0): @@ -16427,13 +16667,13 @@ packages: nano-css: 5.3.5(react-dom@16.14.0)(react@16.14.0) react: 16.14.0 react-dom: 16.14.0(react@16.14.0) - react-universal-interface: 0.6.2(react@16.14.0)(tslib@2.6.2) + react-universal-interface: 0.6.2(react@16.14.0)(tslib@2.4.1) resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 set-harmonic-interval: 1.0.1 throttle-debounce: 2.3.0 ts-easing: 0.2.0 - tslib: 2.6.2 + tslib: 2.4.1 dev: false /react-virtualized@9.22.5(react-dom@16.14.0)(react@16.14.0): @@ -16600,7 +16840,7 @@ packages: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.2 define-properties: 1.2.1 functions-have-names: 1.2.3 @@ -16746,6 +16986,12 @@ packages: engines: {node: '>=8'} dev: true + /resolve-protobuf-schema@2.1.0: + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} + dependencies: + protocol-buffers-schema: 3.6.0 + dev: false + /resolve.exports@1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} engines: {node: '>=10'} @@ -16755,23 +17001,15 @@ packages: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - dependencies: - is-core-module: 2.13.1 + is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -16898,7 +17136,7 @@ packages: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.2 get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 @@ -17020,8 +17258,8 @@ packages: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} dev: true - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true /semver@6.3.1: @@ -17088,7 +17326,7 @@ packages: define-data-property: 1.1.1 get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} @@ -17096,7 +17334,7 @@ packages: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 dev: true /set-harmonic-interval@1.0.1: @@ -17104,6 +17342,16 @@ packages: engines: {node: '>=6.9'} dev: false + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: false + /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: false @@ -17137,9 +17385,9 @@ packages: /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.2 get-intrinsic: 1.2.2 - object-inspect: 1.13.1 + object-inspect: 1.12.2 /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -17195,6 +17443,28 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true + /sort-asc@0.2.0: + resolution: {integrity: sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==} + engines: {node: '>=0.10.0'} + dev: false + + /sort-desc@0.2.0: + resolution: {integrity: sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==} + engines: {node: '>=0.10.0'} + dev: false + + /sort-object@3.0.3: + resolution: {integrity: sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==} + engines: {node: '>=0.10.0'} + dependencies: + bytewise: 1.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + sort-asc: 0.2.0 + sort-desc: 0.2.0 + union-value: 1.0.1 + dev: false + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -17284,6 +17554,13 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: true + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: false + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true @@ -17459,17 +17736,16 @@ packages: strip-ansi: 7.0.1 dev: true - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + get-intrinsic: 1.1.3 has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 dev: true @@ -17482,6 +17758,14 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trimend@1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: @@ -17490,6 +17774,14 @@ packages: es-abstract: 1.22.3 dev: true + /string.prototype.trimstart@1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: @@ -17613,6 +17905,12 @@ packages: ts-interface-checker: 0.1.13 dev: true + /supercluster@8.0.1: + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} + dependencies: + kdbush: 4.0.2 + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -17664,7 +17962,7 @@ packages: csso: 4.2.0 js-yaml: 3.14.1 mkdirp: 0.5.6 - object.values: 1.1.7 + object.values: 1.1.6 sax: 1.2.4 stable: 0.1.8 unquote: 1.1.1 @@ -17880,6 +18178,10 @@ packages: engines: {node: '>=6'} dev: false + /tinyqueue@2.0.3: + resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==} + dev: false + /tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} dependencies: @@ -17960,8 +18262,8 @@ packages: resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} dev: false - /ts-api-utils@1.0.3(typescript@4.9.5): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + /ts-api-utils@1.0.2(typescript@4.9.5): + resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' @@ -18046,6 +18348,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true /tsutils@3.21.0(typescript@4.9.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -18118,8 +18421,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + /type-fest@3.5.3: + resolution: {integrity: sha512-V2+og4j/rWReWvaFrse3s9g2xvUv/K9Azm/xo6CjIuq7oeGqsoimC7+9/A3tfvNcbQf8RPSVj/HV81fB4DJrjA==} engines: {node: '>=14.16'} dev: true @@ -18184,6 +18487,16 @@ packages: hasBin: true dev: true + /typewise-core@1.2.0: + resolution: {integrity: sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==} + dev: false + + /typewise@1.0.3: + resolution: {integrity: sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==} + dependencies: + typewise-core: 1.2.0 + dev: false + /ua-parser-js@0.7.32: resolution: {integrity: sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==} dev: false @@ -18244,6 +18557,16 @@ packages: vfile: 4.2.1 dev: false + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: false + /uniq@1.0.1: resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} dev: true @@ -18549,6 +18872,14 @@ packages: vfile-message: 2.0.4 dev: false + /vt-pbf@3.1.3: + resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==} + dependencies: + '@mapbox/point-geometry': 0.1.0 + '@mapbox/vector-tile': 1.3.1 + pbf: 3.2.1 + dev: false + /w3c-keyname@2.2.6: resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} dev: false @@ -18826,7 +19157,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true /which-typed-array@1.1.9: resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} @@ -18837,14 +19167,13 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 + is-typed-array: 1.1.12 /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 - dev: true /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} diff --git a/posthog/settings/__init__.py b/posthog/settings/__init__.py index 32b3d87d322..c164be0503f 100644 --- a/posthog/settings/__init__.py +++ b/posthog/settings/__init__.py @@ -79,6 +79,9 @@ CAPTURE_TIME_TO_SEE_DATA = get_from_env("CAPTURE_TIME_TO_SEE_DATA", False, type_ # Whether kea should be act in verbose mode KEA_VERBOSE_LOGGING = get_from_env("KEA_VERBOSE_LOGGING", False, type_cast=str_to_bool) +# MapLibre Style URL to configure map tile source +MAPLIBRE_STYLE_URL = get_from_env("MAPLIBRE_STYLE_URL", optional=True) + # Only written in specific scripts - do not use outside of them. PERSON_ON_EVENTS_OVERRIDE = get_from_env("PERSON_ON_EVENTS_OVERRIDE", optional=True, type_cast=str_to_bool) diff --git a/posthog/templates/head.html b/posthog/templates/head.html index ed0d359faa0..7ca827ae159 100644 --- a/posthog/templates/head.html +++ b/posthog/templates/head.html @@ -36,6 +36,11 @@ window.SENTRY_ENVIRONMENT = '{{ sentry_environment | escapejs }}'; {% endif %} +{% if js_maplibre_style_url %} + +{% endif %}