n.max.y&&(r|=8),r}function Rn(e,n){var r=n.x-e.x,i=n.y-e.y;return r*r+i*i}function zn(e,n,r,i){var a=n.x,o=n.y,s=r.x-a,c=r.y-o,l=s*s+c*c,u;return l>0&&(u=((e.x-a)*s+(e.y-o)*c)/l,u>1?(a=r.x,o=r.y):u>0&&(a+=s*u,o+=c*u)),s=e.x-a,c=e.y-o,i?s*s+c*c:new S(a,o)}function Y(e){return!v(e[0])||typeof e[0][0]!=`object`&&e[0][0]!==void 0}function Bn(e){return console.warn(`Deprecated use of _flat, please use L.LineUtil.isFlat instead.`),Y(e)}function Vn(e,n){var r,i,a,o,s,c,l,u;if(!e||e.length===0)throw Error(`latlngs not passed`);Y(e)||(console.warn(`latlngs are not flat! Only the first ring will be used`),e=e[0]);var d=k([0,0]),f=D(e);f.getNorthWest().distanceTo(f.getSouthWest())*f.getNorthEast().distanceTo(f.getNorthWest())<1700&&(d=En(e));var p=e.length,m=[];for(r=0;ri){l=(o-i)/a,u=[c.x-l*(c.x-s.x),c.y-l*(c.y-s.y)];break}var g=n.unproject(C(u));return k([g.lat+d.lat,g.lng+d.lng])}var Hn={__proto__:null,simplify:On,pointToSegmentDistance:kn,closestPointOnSegment:An,clipSegment:Fn,_getEdgeIntersection:In,_getBitCode:Ln,_sqClosestPointOnSegment:zn,isFlat:Y,_flat:Bn,polylineCenter:Vn},Un={project:function(e){return new S(e.lng,e.lat)},unproject:function(e){return new O(e.y,e.x)},bounds:new w([-180,-90],[180,90])},Wn={R:6378137,R_MINOR:6356752.314245179,bounds:new w([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(e){var n=Math.PI/180,r=this.R,i=e.lat*n,a=this.R_MINOR/r,o=Math.sqrt(1-a*a),s=o*Math.sin(i),c=Math.tan(Math.PI/4-i/2)/((1-s)/(1+s))**(o/2);return i=-r*Math.log(Math.max(c,1e-10)),new S(e.lng*n*r,i)},unproject:function(e){for(var n=180/Math.PI,r=this.R,i=this.R_MINOR/r,a=Math.sqrt(1-i*i),o=Math.exp(-e.y/r),s=Math.PI/2-2*Math.atan(o),c=0,l=.1,u;c<15&&Math.abs(l)>1e-7;c++)u=a*Math.sin(s),u=((1-u)/(1+u))**(a/2),l=Math.PI/2-2*Math.atan(o*u)-s,s+=l;return new O(s*n,e.x*n/r)}},Gn={__proto__:null,LonLat:Un,Mercator:Wn,SphericalMercator:j},Kn=r({},fe,{code:`EPSG:3395`,projection:Wn,transformation:function(){var e=.5/(Math.PI*Wn.R);return M(e,.5,-e,.5)}()}),qn=r({},fe,{code:`EPSG:4326`,projection:Un,transformation:M(1/180,1,-1/180,.5)}),Jn=r({},A,{projection:Un,transformation:M(1,0,-1,0),scale:function(e){return 2**e},zoom:function(e){return Math.log(e)/Math.LN2},distance:function(e,n){var r=n.lng-e.lng,i=n.lat-e.lat;return Math.sqrt(r*r+i*i)},infinite:!0});A.Earth=fe,A.EPSG3395=Kn,A.EPSG3857=he,A.EPSG900913=ge,A.EPSG4326=qn,A.Simple=Jn;var X=ue.extend({options:{pane:`overlayPane`,attribution:null,bubblingMouseEvents:!0},addTo:function(e){return e.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(e){return e&&e.removeLayer(this),this},getPane:function(e){return this._map.getPane(e?this.options[e]||e:this.options.pane)},addInteractiveTarget:function(e){return this._map._targets[s(e)]=this,this},removeInteractiveTarget:function(e){return delete this._map._targets[s(e)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(e){var n=e.target;if(n.hasLayer(this)){if(this._map=n,this._zoomAnimated=n._zoomAnimated,this.getEvents){var r=this.getEvents();n.on(r,this),this.once(`remove`,function(){n.off(r,this)},this)}this.onAdd(n),this.fire(`add`),n.fire(`layeradd`,{layer:this})}}});q.include({addLayer:function(e){if(!e._layerAdd)throw Error(`The provided object is not a Layer.`);var n=s(e);return this._layers[n]?this:(this._layers[n]=e,e._mapToAdd=this,e.beforeAdd&&e.beforeAdd(this),this.whenReady(e._layerAdd,e),this)},removeLayer:function(e){var n=s(e);return this._layers[n]?(this._loaded&&e.onRemove(this),delete this._layers[n],this._loaded&&(this.fire(`layerremove`,{layer:e}),e.fire(`remove`)),e._map=e._mapToAdd=null,this):this},hasLayer:function(e){return s(e)in this._layers},eachLayer:function(e,n){for(var r in this._layers)e.call(n,this._layers[r]);return this},_addLayers:function(e){e=e?v(e)?e:[e]:[];for(var n=0,r=e.length;nthis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()=2&&n[0]instanceof O&&n[0].equals(n[r-1])&&n.pop(),n},_setLatLngs:function(e){ur.prototype._setLatLngs.call(this,e),Y(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Y(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var e=this._renderer._bounds,n=this.options.weight,r=new S(n,n);if(e=new w(e.min.subtract(r),e.max.add(r)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(e))){if(this.options.noClip){this._parts=this._rings;return}for(var i=0,a=this._rings.length,o;ie.y!=a.y>e.y&&e.x<(a.x-i.x)*(e.y-i.y)/(a.y-i.y)+i.x&&(n=!n);return n||ur.prototype._containsPoint.call(this,e,!0)}});function pr(e,n){return new fr(e,n)}var mr=Zn.extend({initialize:function(e,n){m(this,n),this._layers={},e&&this.addData(e)},addData:function(e){var n=v(e)?e:e.features,r,i,a;if(n){for(r=0,i=n.length;r0&&a.push(a[0].slice()),a}function xr(e,n){return e.feature?r({},e.feature,{geometry:n}):Sr(n)}function Sr(e){return e.type===`Feature`||e.type===`FeatureCollection`?e:{type:`Feature`,properties:{},geometry:e}}var Cr={toGeoJSON:function(e){return xr(this,{type:`Point`,coordinates:yr(this.getLatLng(),e)})}};rr.include(Cr),cr.include(Cr),or.include(Cr),ur.include({toGeoJSON:function(e){var n=!Y(this._latlngs),r=br(this._latlngs,+!!n,!1,e);return xr(this,{type:(n?`Multi`:``)+`LineString`,coordinates:r})}}),fr.include({toGeoJSON:function(e){var n=!Y(this._latlngs),r=n&&!Y(this._latlngs[0]),i=br(this._latlngs,r?2:+!!n,!0,e);return n||(i=[i]),xr(this,{type:(r?`Multi`:``)+`Polygon`,coordinates:i})}}),Yn.include({toMultiPoint:function(e){var n=[];return this.eachLayer(function(r){n.push(r.toGeoJSON(e).geometry.coordinates)}),xr(this,{type:`MultiPoint`,coordinates:n})},toGeoJSON:function(e){var n=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(n===`MultiPoint`)return this.toMultiPoint(e);var r=n===`GeometryCollection`,i=[];return this.eachLayer(function(n){if(n.toGeoJSON){var a=n.toGeoJSON(e);if(r)i.push(a.geometry);else{var o=Sr(a);o.type===`FeatureCollection`?i.push.apply(i,o.features):i.push(o)}}}),r?xr(this,{geometries:i,type:`GeometryCollection`}):{type:`FeatureCollection`,features:i}}});function wr(e,n){return new mr(e,n)}var Tr=wr,Er=X.extend({options:{opacity:1,alt:``,interactive:!1,crossOrigin:!1,errorOverlayUrl:``,zIndex:1,className:``},initialize:function(e,n,r){this._url=e,this._bounds=D(n),m(this,r)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(z(this._image,`leaflet-interactive`),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){R(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(e){return this.options.opacity=e,this._image&&this._updateOpacity(),this},setStyle:function(e){return e.opacity&&this.setOpacity(e.opacity),this},bringToFront:function(){return this._map&&Dt(this._image),this},bringToBack:function(){return this._map&&Ot(this._image),this},setUrl:function(e){return this._url=e,this._image&&(this._image.src=e),this},setBounds:function(e){return this._bounds=D(e),this._map&&this._reset(),this},getEvents:function(){var e={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(e.zoomanim=this._animateZoom),e},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var e=this._url.tagName===`IMG`,n=this._image=e?this._url:I(`img`);if(z(n,`leaflet-image-layer`),this._zoomAnimated&&z(n,`leaflet-zoom-animated`),this.options.className&&z(n,this.options.className),n.onselectstart=u,n.onmousemove=u,n.onload=a(this.fire,this,`load`),n.onerror=a(this._overlayOnError,this,`error`),(this.options.crossOrigin||this.options.crossOrigin===``)&&(n.crossOrigin=this.options.crossOrigin===!0?``:this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),e){this._url=n.src;return}n.src=this._url,n.alt=this.options.alt},_animateZoom:function(e){var n=this._map.getZoomScale(e.zoom),r=this._map._latLngBoundsToNewLayerBounds(this._bounds,e.zoom,e.center).min;Pt(this._image,r,n)},_reset:function(){var e=this._image,n=new w(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),r=n.getSize();H(e,n.min),e.style.width=r.x+`px`,e.style.height=r.y+`px`},_updateOpacity:function(){V(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire(`error`);var e=this.options.errorOverlayUrl;e&&this._url!==e&&(this._url=e,this._image.src=e)},getCenter:function(){return this._bounds.getCenter()}}),Dr=function(e,n,r){return new Er(e,n,r)},Or=Er.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var e=this._url.tagName===`VIDEO`,n=this._image=e?this._url:I(`video`);if(z(n,`leaflet-image-layer`),this._zoomAnimated&&z(n,`leaflet-zoom-animated`),this.options.className&&z(n,this.options.className),n.onselectstart=u,n.onmousemove=u,n.onloadeddata=a(this.fire,this,`load`),e){for(var r=n.getElementsByTagName(`source`),i=[],o=0;o0?i:[n.src];return}v(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(n.style,`objectFit`)&&(n.style.objectFit=`fill`),n.autoplay=!!this.options.autoplay,n.loop=!!this.options.loop,n.muted=!!this.options.muted,n.playsInline=!!this.options.playsInline;for(var s=0;s×`,U(i,`click`,function(e){K(e),this.close()},this)}},_updateLayout:function(){var e=this._contentNode,n=e.style;n.width=``,n.whiteSpace=`nowrap`;var r=e.offsetWidth;r=Math.min(r,this.options.maxWidth),r=Math.max(r,this.options.minWidth),n.width=r+1+`px`,n.whiteSpace=``,n.height=``;var i=e.offsetHeight,a=this.options.maxHeight,o=`leaflet-popup-scrolled`;a&&i>a?(n.height=a+`px`,z(e,o)):B(e,o),this._containerWidth=this._container.offsetWidth},_animateZoom:function(e){var n=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center),r=this._getAnchor();H(this._container,n.add(r))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var e=this._map,n=parseInt(Tt(this._container,`marginBottom`),10)||0,r=this._container.offsetHeight+n,i=this._containerWidth,a=new S(this._containerLeft,-r-this._containerBottom);a._add(Ft(this._container));var o=e.layerPointToContainerPoint(a),s=C(this.options.autoPanPadding),c=C(this.options.autoPanPaddingTopLeft||s),l=C(this.options.autoPanPaddingBottomRight||s),u=e.getSize(),d=0,f=0;o.x+i+l.x>u.x&&(d=o.x+i-u.x+l.x),o.x-d-c.x<0&&(d=o.x-c.x),o.y+r+l.y>u.y&&(f=o.y+r-u.y+l.y),o.y-f-c.y<0&&(f=o.y-c.y),(d||f)&&(this.options.keepInView&&(this._autopanning=!0),e.fire(`autopanstart`).panBy([d,f]))}},_getAnchor:function(){return C(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Nr=function(e,n){return new Mr(e,n)};q.mergeOptions({closePopupOnClick:!0}),q.include({openPopup:function(e,n,r){return this._initOverlay(Mr,e,n,r).openOn(this),this},closePopup:function(e){return e=arguments.length?e:this._popup,e&&e.close(),this}}),X.include({bindPopup:function(e,n){return this._popup=this._initOverlay(Mr,this._popup,e,n),this._popupHandlersAdded||=(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),!0),this},unbindPopup:function(){return this._popup&&=(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,null),this},openPopup:function(e){return this._popup&&(this instanceof Zn||(this._popup._source=this),this._popup._prepareOpen(e||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(e){return this._popup&&this._popup.setContent(e),this},getPopup:function(){return this._popup},_openPopup:function(e){if(!(!this._popup||!this._map)){nn(e);var n=e.layer||e.target;if(this._popup._source===n&&!(n instanceof ar)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(e.latlng);return}this._popup._source=n,this.openPopup(e.latlng)}},_movePopup:function(e){this._popup.setLatLng(e.latlng)},_onKeyPress:function(e){e.originalEvent.keyCode===13&&this._openPopup(e)}});var Pr=Z.extend({options:{pane:`tooltipPane`,offset:[0,0],direction:`auto`,permanent:!1,sticky:!1,opacity:.9},onAdd:function(e){Z.prototype.onAdd.call(this,e),this.setOpacity(this.options.opacity),e.fire(`tooltipopen`,{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire(`tooltipopen`,{tooltip:this},!0))},onRemove:function(e){Z.prototype.onRemove.call(this,e),e.fire(`tooltipclose`,{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire(`tooltipclose`,{tooltip:this},!0))},getEvents:function(){var e=Z.prototype.getEvents.call(this);return this.options.permanent||(e.preclick=this.close),e},_initLayout:function(){this._contentNode=this._container=I(`div`,`leaflet-tooltip `+(this.options.className||``)+` leaflet-zoom-`+(this._zoomAnimated?`animated`:`hide`)),this._container.setAttribute(`role`,`tooltip`),this._container.setAttribute(`id`,`leaflet-tooltip-`+s(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(e){var n,r,i=this._map,a=this._container,o=i.latLngToContainerPoint(i.getCenter()),s=i.layerPointToContainerPoint(e),c=this.options.direction,l=a.offsetWidth,u=a.offsetHeight,d=C(this.options.offset),f=this._getAnchor();c===`top`?(n=l/2,r=u):c===`bottom`?(n=l/2,r=0):c===`center`?(n=l/2,r=u/2):c===`right`?(n=0,r=u/2):c===`left`?(n=l,r=u/2):s.xthis.options.maxZoom||ri?this._retainParent(a,o,s,i):!1)},_retainChildren:function(e,n,r,i){for(var a=2*e;a<2*e+2;a++)for(var o=2*n;o<2*n+2;o++){var s=new S(a,o);s.z=r+1;var c=this._tileCoordsToKey(s),l=this._tiles[c];if(l&&l.active){l.retain=!0;continue}else l&&l.loaded&&(l.retain=!0);r+1this.options.maxZoom||this.options.minZoom!==void 0&&a1){this._setView(e,r);return}for(var f=a.min.y;f<=a.max.y;f++)for(var p=a.min.x;p<=a.max.x;p++){var m=new S(p,f);if(m.z=this._tileZoom,this._isValidTile(m)){var h=this._tiles[this._tileCoordsToKey(m)];h?h.current=!0:s.push(m)}}if(s.sort(function(e,n){return e.distanceTo(o)-n.distanceTo(o)}),s.length!==0){this._loading||(this._loading=!0,this.fire(`loading`));var g=document.createDocumentFragment();for(p=0;pr.max.x)||!n.wrapLat&&(e.yr.max.y))return!1}if(!this.options.bounds)return!0;var i=this._tileCoordsToBounds(e);return D(this.options.bounds).overlaps(i)},_keyToBounds:function(e){return this._tileCoordsToBounds(this._keyToTileCoords(e))},_tileCoordsToNwSe:function(e){var n=this._map,r=this.getTileSize(),i=e.scaleBy(r),a=i.add(r);return[n.unproject(i,e.z),n.unproject(a,e.z)]},_tileCoordsToBounds:function(e){var n=this._tileCoordsToNwSe(e),r=new E(n[0],n[1]);return this.options.noWrap||(r=this._map.wrapLatLngBounds(r)),r},_tileCoordsToKey:function(e){return e.x+`:`+e.y+`:`+e.z},_keyToTileCoords:function(e){var n=e.split(`:`),r=new S(+n[0],+n[1]);return r.z=+n[2],r},_removeTile:function(e){var n=this._tiles[e];n&&(R(n.el),delete this._tiles[e],this.fire(`tileunload`,{tile:n.el,coords:this._keyToTileCoords(e)}))},_initTile:function(e){z(e,`leaflet-tile`);var n=this.getTileSize();e.style.width=n.x+`px`,e.style.height=n.y+`px`,e.onselectstart=u,e.onmousemove=u,N.ielt9&&this.options.opacity<1&&V(e,this.options.opacity)},_addTile:function(e,n){var r=this._getTilePos(e),i=this._tileCoordsToKey(e),o=this.createTile(this._wrapCoords(e),a(this._tileReady,this,e));this._initTile(o),this.createTile.length<2&&y(a(this._tileReady,this,e,null,o)),H(o,r),this._tiles[i]={el:o,coords:e,current:!0},n.appendChild(o),this.fire(`tileloadstart`,{tile:o,coords:e})},_tileReady:function(e,n,r){n&&this.fire(`tileerror`,{error:n,tile:r,coords:e});var i=this._tileCoordsToKey(e);r=this._tiles[i],r&&(r.loaded=+new Date,this._map._fadeAnimated?(V(r.el,0),b(this._fadeFrame),this._fadeFrame=y(this._updateOpacity,this)):(r.active=!0,this._pruneTiles()),n||(z(r.el,`leaflet-tile-loaded`),this.fire(`tileload`,{tile:r.el,coords:e})),this._noTilesToLoad()&&(this._loading=!1,this.fire(`load`),N.ielt9||!this._map._fadeAnimated?y(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(e){return e.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(e){var n=new S(this._wrapX?l(e.x,this._wrapX):e.x,this._wrapY?l(e.y,this._wrapY):e.y);return n.z=e.z,n},_pxBoundsToTileRange:function(e){var n=this.getTileSize();return new w(e.min.unscaleBy(n).floor(),e.max.unscaleBy(n).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var e in this._tiles)if(!this._tiles[e].loaded)return!1;return!0}});function zr(e){return new Rr(e)}var Br=Rr.extend({options:{minZoom:0,maxZoom:18,subdomains:`abc`,errorTileUrl:``,zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(e,n){this._url=e,n=m(this,n),n.detectRetina&&N.retina&&n.maxZoom>0?(n.tileSize=Math.floor(n.tileSize/2),n.zoomReverse?(n.zoomOffset--,n.minZoom=Math.min(n.maxZoom,n.minZoom+1)):(n.zoomOffset++,n.maxZoom=Math.max(n.minZoom,n.maxZoom-1)),n.minZoom=Math.max(0,n.minZoom)):n.zoomReverse?n.minZoom=Math.min(n.maxZoom,n.minZoom):n.maxZoom=Math.max(n.minZoom,n.maxZoom),typeof n.subdomains==`string`&&(n.subdomains=n.subdomains.split(``)),this.on(`tileunload`,this._onTileRemove)},setUrl:function(e,n){return this._url===e&&n===void 0&&(n=!0),this._url=e,n||this.redraw(),this},createTile:function(e,n){var r=document.createElement(`img`);return U(r,`load`,a(this._tileOnLoad,this,n,r)),U(r,`error`,a(this._tileOnError,this,n,r)),(this.options.crossOrigin||this.options.crossOrigin===``)&&(r.crossOrigin=this.options.crossOrigin===!0?``:this.options.crossOrigin),typeof this.options.referrerPolicy==`string`&&(r.referrerPolicy=this.options.referrerPolicy),r.alt=``,r.src=this.getTileUrl(e),r},getTileUrl:function(e){var n={r:N.retina?`@2x`:``,s:this._getSubdomain(e),x:e.x,y:e.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-e.y;this.options.tms&&(n.y=i),n[`-y`]=i}return _(this._url,r(n,this.options))},_tileOnLoad:function(e,n){N.ielt9?setTimeout(a(e,this,null,n),0):e(null,n)},_tileOnError:function(e,n,r){var i=this.options.errorTileUrl;i&&n.getAttribute(`src`)!==i&&(n.src=i),e(r,n)},_onTileRemove:function(e){e.tile.onload=null},_getZoomForUrl:function(){var e=this._tileZoom,n=this.options.maxZoom,r=this.options.zoomReverse,i=this.options.zoomOffset;return r&&(e=n-e),e+i},_getSubdomain:function(e){var n=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[n]},_abortLoading:function(){var e,n;for(e in this._tiles)if(this._tiles[e].coords.z!==this._tileZoom&&(n=this._tiles[e].el,n.onload=u,n.onerror=u,!n.complete)){n.src=te;var r=this._tiles[e].coords;R(n),delete this._tiles[e],this.fire(`tileabort`,{tile:n,coords:r})}},_removeTile:function(e){var n=this._tiles[e];if(n)return n.el.setAttribute(`src`,te),Rr.prototype._removeTile.call(this,e)},_tileReady:function(e,n,r){if(!(!this._map||r&&r.getAttribute(`src`)===te))return Rr.prototype._tileReady.call(this,e,n,r)}});function Vr(e,n){return new Br(e,n)}var Hr=Br.extend({defaultWmsParams:{service:`WMS`,request:`GetMap`,layers:``,styles:``,format:`image/jpeg`,transparent:!1,version:`1.1.1`},options:{crs:null,uppercase:!1},initialize:function(e,n){this._url=e;var i=r({},this.defaultWmsParams);for(var a in n)a in this.options||(i[a]=n[a]);n=m(this,n);var o=n.detectRetina&&N.retina?2:1,s=this.getTileSize();i.width=s.x*o,i.height=s.y*o,this.wmsParams=i},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var n=this._wmsVersion>=1.3?`crs`:`srs`;this.wmsParams[n]=this._crs.code,Br.prototype.onAdd.call(this,e)},getTileUrl:function(e){var n=this._tileCoordsToNwSe(e),r=this._crs,i=T(r.project(n[0]),r.project(n[1])),a=i.min,o=i.max,s=(this._wmsVersion>=1.3&&this._crs===qn?[a.y,a.x,o.y,o.x]:[a.x,a.y,o.x,o.y]).join(`,`),c=Br.prototype.getTileUrl.call(this,e);return c+h(this.wmsParams,c,this.options.uppercase)+(this.options.uppercase?`&BBOX=`:`&bbox=`)+s},setParams:function(e,n){return r(this.wmsParams,e),n||this.redraw(),this}});function Ur(e,n){return new Hr(e,n)}Br.WMS=Hr,Vr.wms=Ur;var Q=X.extend({options:{padding:.1},initialize:function(e){m(this,e),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),z(this._container,`leaflet-zoom-animated`)),this.getPane().appendChild(this._container),this._update(),this.on(`update`,this._updatePaths,this)},onRemove:function(){this.off(`update`,this._updatePaths,this),this._destroyContainer()},getEvents:function(){var e={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(e.zoomanim=this._onAnimZoom),e},_onAnimZoom:function(e){this._updateTransform(e.center,e.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(e,n){var r=this._map.getZoomScale(n,this._zoom),i=this._map.getSize().multiplyBy(.5+this.options.padding),a=this._map.project(this._center,n),o=i.multiplyBy(-r).add(a).subtract(this._map._getNewPixelOrigin(e,n));N.any3d?Pt(this._container,o,r):H(this._container,o)},_reset:function(){for(var e in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[e]._reset()},_onZoomEnd:function(){for(var e in this._layers)this._layers[e]._project()},_updatePaths:function(){for(var e in this._layers)this._layers[e]._update()},_update:function(){var e=this.options.padding,n=this._map.getSize(),r=this._map.containerPointToLayerPoint(n.multiplyBy(-e)).round();this._bounds=new w(r,r.add(n.multiplyBy(1+e*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Wr=Q.extend({options:{tolerance:0},getEvents:function(){var e=Q.prototype.getEvents.call(this);return e.viewprereset=this._onViewPreReset,e},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Q.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var e=this._container=document.createElement(`canvas`);U(e,`mousemove`,this._onMouseMove,this),U(e,`click dblclick mousedown mouseup contextmenu`,this._onClick,this),U(e,`mouseout`,this._handleMouseOut,this),e._leaflet_disable_events=!0,this._ctx=e.getContext(`2d`)},_destroyContainer:function(){b(this._redrawRequest),delete this._ctx,R(this._container),G(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var e;for(var n in this._redrawBounds=null,this._layers)e=this._layers[n],e._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){Q.prototype._update.call(this);var e=this._bounds,n=this._container,r=e.getSize(),i=N.retina?2:1;H(n,e.min),n.width=i*r.x,n.height=i*r.y,n.style.width=r.x+`px`,n.style.height=r.y+`px`,N.retina&&this._ctx.scale(2,2),this._ctx.translate(-e.min.x,-e.min.y),this.fire(`update`)}},_reset:function(){Q.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(e){this._updateDashArray(e),this._layers[s(e)]=e;var n=e._order={layer:e,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=n),this._drawLast=n,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(e){this._requestRedraw(e)},_removePath:function(e){var n=e._order,r=n.next,i=n.prev;r?r.prev=i:this._drawLast=i,i?i.next=r:this._drawFirst=r,delete e._order,delete this._layers[s(e)],this._requestRedraw(e)},_updatePath:function(e){this._extendRedrawBounds(e),e._project(),e._update(),this._requestRedraw(e)},_updateStyle:function(e){this._updateDashArray(e),this._requestRedraw(e)},_updateDashArray:function(e){if(typeof e.options.dashArray==`string`){var n=e.options.dashArray.split(/[, ]+/),r=[],i,a;for(a=0;a`)}}catch{}return function(e){return document.createElement(`<`+e+` xmlns="urn:schemas-microsoft.com:vml" class="lvml">`)}})(),Kr={_initContainer:function(){this._container=I(`div`,`leaflet-vml-container`)},_update:function(){this._map._animatingZoom||(Q.prototype._update.call(this),this.fire(`update`))},_initPath:function(e){var n=e._container=$(`shape`);z(n,`leaflet-vml-shape `+(this.options.className||``)),n.coordsize=`1 1`,e._path=$(`path`),n.appendChild(e._path),this._updateStyle(e),this._layers[s(e)]=e},_addPath:function(e){var n=e._container;this._container.appendChild(n),e.options.interactive&&e.addInteractiveTarget(n)},_removePath:function(e){var n=e._container;R(n),e.removeInteractiveTarget(n),delete this._layers[s(e)]},_updateStyle:function(e){var n=e._stroke,r=e._fill,i=e.options,a=e._container;a.stroked=!!i.stroke,a.filled=!!i.fill,i.stroke?(n||=e._stroke=$(`stroke`),a.appendChild(n),n.weight=i.weight+`px`,n.color=i.color,n.opacity=i.opacity,i.dashArray?n.dashStyle=v(i.dashArray)?i.dashArray.join(` `):i.dashArray.replace(/( *, *)/g,` `):n.dashStyle=``,n.endcap=i.lineCap.replace(`butt`,`flat`),n.joinstyle=i.lineJoin):n&&(a.removeChild(n),e._stroke=null),i.fill?(r||=e._fill=$(`fill`),a.appendChild(r),r.color=i.fillColor||i.color,r.opacity=i.fillOpacity):r&&(a.removeChild(r),e._fill=null)},_updateCircle:function(e){var n=e._point.round(),r=Math.round(e._radius),i=Math.round(e._radiusY||r);this._setPath(e,e._empty()?`M0 0`:`AL `+n.x+`,`+n.y+` `+r+`,`+i+` 0,23592600`)},_setPath:function(e,n){e._path.v=n},_bringToFront:function(e){Dt(e._container)},_bringToBack:function(e){Ot(e._container)}},qr=N.vml?$:_e,Jr=Q.extend({_initContainer:function(){this._container=qr(`svg`),this._container.setAttribute(`pointer-events`,`none`),this._rootGroup=qr(`g`),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){R(this._container),G(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){Q.prototype._update.call(this);var e=this._bounds,n=e.getSize(),r=this._container;(!this._svgSize||!this._svgSize.equals(n))&&(this._svgSize=n,r.setAttribute(`width`,n.x),r.setAttribute(`height`,n.y)),H(r,e.min),r.setAttribute(`viewBox`,[e.min.x,e.min.y,n.x,n.y].join(` `)),this.fire(`update`)}},_initPath:function(e){var n=e._path=qr(`path`);e.options.className&&z(n,e.options.className),e.options.interactive&&z(n,`leaflet-interactive`),this._updateStyle(e),this._layers[s(e)]=e},_addPath:function(e){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(e._path),e.addInteractiveTarget(e._path)},_removePath:function(e){R(e._path),e.removeInteractiveTarget(e._path),delete this._layers[s(e)]},_updatePath:function(e){e._project(),e._update()},_updateStyle:function(e){var n=e._path,r=e.options;n&&(r.stroke?(n.setAttribute(`stroke`,r.color),n.setAttribute(`stroke-opacity`,r.opacity),n.setAttribute(`stroke-width`,r.weight),n.setAttribute(`stroke-linecap`,r.lineCap),n.setAttribute(`stroke-linejoin`,r.lineJoin),r.dashArray?n.setAttribute(`stroke-dasharray`,r.dashArray):n.removeAttribute(`stroke-dasharray`),r.dashOffset?n.setAttribute(`stroke-dashoffset`,r.dashOffset):n.removeAttribute(`stroke-dashoffset`)):n.setAttribute(`stroke`,`none`),r.fill?(n.setAttribute(`fill`,r.fillColor||r.color),n.setAttribute(`fill-opacity`,r.fillOpacity),n.setAttribute(`fill-rule`,r.fillRule||`evenodd`)):n.setAttribute(`fill`,`none`))},_updatePoly:function(e,n){this._setPath(e,ve(e._parts,n))},_updateCircle:function(e){var n=e._point,r=Math.max(Math.round(e._radius),1),i=Math.max(Math.round(e._radiusY),1)||r,a=`a`+r+`,`+i+` 0 1,0 `,o=e._empty()?`M0 0`:`M`+(n.x-r)+`,`+n.y+a+r*2+`,0 `+a+-r*2+`,0 `;this._setPath(e,o)},_setPath:function(e,n){e._path.setAttribute(`d`,n)},_bringToFront:function(e){Dt(e._path)},_bringToBack:function(e){Ot(e._path)}});N.vml&&Jr.include(Kr);function Yr(e){return N.svg||N.vml?new Jr(e):null}q.include({getRenderer:function(e){var n=e.options.renderer||this._getPaneRenderer(e.options.pane)||this.options.renderer||this._renderer;return n||=this._renderer=this._createRenderer(),this.hasLayer(n)||this.addLayer(n),n},_getPaneRenderer:function(e){if(e===`overlayPane`||e===void 0)return!1;var n=this._paneRenderers[e];return n===void 0&&(n=this._createRenderer({pane:e}),this._paneRenderers[e]=n),n},_createRenderer:function(e){return this.options.preferCanvas&&Gr(e)||Yr(e)}});var Xr=fr.extend({initialize:function(e,n){fr.prototype.initialize.call(this,this._boundsToLatLngs(e),n)},setBounds:function(e){return this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return e=D(e),[e.getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}});function Zr(e,n){return new Xr(e,n)}Jr.create=qr,Jr.pointsToPath=ve,mr.geometryToLayer=hr,mr.coordsToLatLng=_r,mr.coordsToLatLngs=vr,mr.latLngToCoords=yr,mr.latLngsToCoords=br,mr.getFeature=xr,mr.asFeature=Sr,q.mergeOptions({boxZoom:!0});var Qr=bn.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._resetStateTimeout=0,e.on(`unload`,this._destroy,this)},addHooks:function(){U(this._container,`mousedown`,this._onMouseDown,this)},removeHooks:function(){G(this._container,`mousedown`,this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){R(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(e){if(!e.shiftKey||e.which!==1&&e.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),It(),Bt(),this._startPoint=this._map.mouseEventToContainerPoint(e),U(document,{contextmenu:nn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(e){this._moved||(this._moved=!0,this._box=I(`div`,`leaflet-zoom-box`,this._container),z(this._container,`leaflet-crosshair`),this._map.fire(`boxzoomstart`)),this._point=this._map.mouseEventToContainerPoint(e);var n=new w(this._point,this._startPoint),r=n.getSize();H(this._box,n.min),this._box.style.width=r.x+`px`,this._box.style.height=r.y+`px`},_finish:function(){this._moved&&(R(this._box),B(this._container,`leaflet-crosshair`)),Lt(),Vt(),G(document,{contextmenu:nn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(e){if(!(e.which!==1&&e.button!==1)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0);var n=new E(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(n).fire(`boxzoomend`,{boxZoomBounds:n})}},_onKeyDown:function(e){e.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});q.addInitHook(`addHandler`,`boxZoom`,Qr),q.mergeOptions({doubleClickZoom:!0});var $r=bn.extend({addHooks:function(){this._map.on(`dblclick`,this._onDoubleClick,this)},removeHooks:function(){this._map.off(`dblclick`,this._onDoubleClick,this)},_onDoubleClick:function(e){var n=this._map,r=n.getZoom(),i=n.options.zoomDelta,a=e.originalEvent.shiftKey?r-i:r+i;n.options.doubleClickZoom===`center`?n.setZoom(a):n.setZoomAround(e.containerPoint,a)}});q.addInitHook(`addHandler`,`doubleClickZoom`,$r),q.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var ei=bn.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new Cn(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on(`predrag`,this._onPreDragLimit,this),e.options.worldCopyJump&&(this._draggable.on(`predrag`,this._onPreDragWrap,this),e.on(`zoomend`,this._onZoomEnd,this),e.whenReady(this._onZoomEnd,this))}z(this._map._container,`leaflet-grab leaflet-touch-drag`),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){B(this._map._container,`leaflet-grab`),B(this._map._container,`leaflet-touch-drag`),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var e=this._map;if(e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var n=D(this._map.options.maxBounds);this._offsetLimit=T(this._map.latLngToContainerPoint(n.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(n.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;e.fire(`movestart`).fire(`dragstart`),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(e){if(this._map.options.inertia){var n=this._lastTime=+new Date,r=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(r),this._times.push(n),this._prunePositions(n)}this._map.fire(`move`,e).fire(`drag`,e)},_prunePositions:function(e){for(;this._positions.length>1&&e-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var e=this._map.getSize().divideBy(2);this._initialWorldOffset=this._map.latLngToLayerPoint([0,0]).subtract(e).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(e,n){return e-(e-n)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var e=this._draggable._newPos.subtract(this._draggable._startPos),n=this._offsetLimit;e.xn.max.x&&(e.x=this._viscousLimit(e.x,n.max.x)),e.y>n.max.y&&(e.y=this._viscousLimit(e.y,n.max.y)),this._draggable._newPos=this._draggable._startPos.add(e)}},_onPreDragWrap:function(){var e=this._worldWidth,n=Math.round(e/2),r=this._initialWorldOffset,i=this._draggable._newPos.x,a=(i-n+r)%e+n-r,o=(i+n+r)%e-n-r,s=Math.abs(a+r)0?o:-o))-n;this._delta=0,this._startTime=null,s&&(e.options.scrollWheelZoom===`center`?e.setZoom(n+s):e.setZoomAround(this._lastMousePos,n+s))}});q.addInitHook(`addHandler`,`scrollWheelZoom`,ni);var ri=600;q.mergeOptions({tapHold:N.touchNative&&N.safari&&N.mobile,tapTolerance:15});var ii=bn.extend({addHooks:function(){U(this._map._container,`touchstart`,this._onDown,this)},removeHooks:function(){G(this._map._container,`touchstart`,this._onDown,this)},_onDown:function(e){if(clearTimeout(this._holdTimeout),e.touches.length===1){var n=e.touches[0];this._startPos=this._newPos=new S(n.clientX,n.clientY),this._holdTimeout=setTimeout(a(function(){this._cancel(),this._isTapValid()&&(U(document,`touchend`,K),U(document,`touchend touchcancel`,this._cancelClickPrevent),this._simulateEvent(`contextmenu`,n))},this),ri),U(document,`touchend touchcancel contextmenu`,this._cancel,this),U(document,`touchmove`,this._onMove,this)}},_cancelClickPrevent:function e(){G(document,`touchend`,K),G(document,`touchend touchcancel`,e)},_cancel:function(){clearTimeout(this._holdTimeout),G(document,`touchend touchcancel contextmenu`,this._cancel,this),G(document,`touchmove`,this._onMove,this)},_onMove:function(e){var n=e.touches[0];this._newPos=new S(n.clientX,n.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(e,n){var r=new MouseEvent(e,{bubbles:!0,cancelable:!0,view:window,screenX:n.screenX,screenY:n.screenY,clientX:n.clientX,clientY:n.clientY});r._simulated=!0,n.target.dispatchEvent(r)}});q.addInitHook(`addHandler`,`tapHold`,ii),q.mergeOptions({touchZoom:N.touch,bounceAtZoomLimits:!0});var ai=bn.extend({addHooks:function(){z(this._map._container,`leaflet-touch-zoom`),U(this._map._container,`touchstart`,this._onTouchStart,this)},removeHooks:function(){B(this._map._container,`leaflet-touch-zoom`),G(this._map._container,`touchstart`,this._onTouchStart,this)},_onTouchStart:function(e){var n=this._map;if(!(!e.touches||e.touches.length!==2||n._animatingZoom||this._zooming)){var r=n.mouseEventToContainerPoint(e.touches[0]),i=n.mouseEventToContainerPoint(e.touches[1]);this._centerPoint=n.getSize()._divideBy(2),this._startLatLng=n.containerPointToLatLng(this._centerPoint),n.options.touchZoom!==`center`&&(this._pinchStartLatLng=n.containerPointToLatLng(r.add(i)._divideBy(2))),this._startDist=r.distanceTo(i),this._startZoom=n.getZoom(),this._moved=!1,this._zooming=!0,n._stop(),U(document,`touchmove`,this._onTouchMove,this),U(document,`touchend touchcancel`,this._onTouchEnd,this),K(e)}},_onTouchMove:function(e){if(!(!e.touches||e.touches.length!==2||!this._zooming)){var n=this._map,r=n.mouseEventToContainerPoint(e.touches[0]),i=n.mouseEventToContainerPoint(e.touches[1]),o=r.distanceTo(i)/this._startDist;if(this._zoom=n.getScaleZoom(o,this._startZoom),!n.options.bounceAtZoomLimits&&(this._zoomn.getMaxZoom()&&o>1)&&(this._zoom=n._limitZoom(this._zoom)),n.options.touchZoom===`center`){if(this._center=this._startLatLng,o===1)return}else{var s=r._add(i)._divideBy(2)._subtract(this._centerPoint);if(o===1&&s.x===0&&s.y===0)return;this._center=n.unproject(n.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||=(n._moveStart(!0,!1),!0),b(this._animRequest),this._animRequest=y(a(n._move,n,this._center,this._zoom,{pinch:!0,round:!1},void 0),this,!0),K(e)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,b(this._animRequest),G(document,`touchmove`,this._onTouchMove,this),G(document,`touchend touchcancel`,this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});q.addInitHook(`addHandler`,`touchZoom`,ai),q.BoxZoom=Qr,q.DoubleClickZoom=$r,q.Drag=ei,q.Keyboard=ti,q.ScrollWheelZoom=ni,q.TapHold=ii,q.TouchZoom=ai,e.Bounds=w,e.Browser=N,e.CRS=A,e.Canvas=Wr,e.Circle=cr,e.CircleMarker=or,e.Class=ce,e.Control=J,e.DivIcon=Ir,e.DivOverlay=Z,e.DomEvent=ln,e.DomUtil=Jt,e.Draggable=Cn,e.Evented=ue,e.FeatureGroup=Zn,e.GeoJSON=mr,e.GridLayer=Rr,e.Handler=bn,e.Icon=$n,e.ImageOverlay=Er,e.LatLng=O,e.LatLngBounds=E,e.Layer=X,e.LayerGroup=Yn,e.LineUtil=Hn,e.Map=q,e.Marker=rr,e.Mixin=xn,e.Path=ar,e.Point=S,e.PolyUtil=Dn,e.Polygon=fr,e.Polyline=ur,e.Popup=Mr,e.PosAnimation=un,e.Projection=Gn,e.Rectangle=Xr,e.Renderer=Q,e.SVG=Jr,e.SVGOverlay=Ar,e.TileLayer=Br,e.Tooltip=Pr,e.Transformation=me,e.Util=se,e.VideoOverlay=Or,e.bind=a,e.bounds=T,e.canvas=Gr,e.circle=lr,e.circleMarker=sr,e.control=fn,e.divIcon=Lr,e.extend=r,e.featureGroup=Qn,e.geoJSON=wr,e.geoJson=Tr,e.gridLayer=zr,e.icon=er,e.imageOverlay=Dr,e.latLng=k,e.latLngBounds=D,e.layerGroup=Xn,e.map=dn,e.marker=ir,e.point=C,e.polygon=pr,e.polyline=dr,e.popup=Nr,e.rectangle=Zr,e.setOptions=m,e.stamp=s,e.svg=Yr,e.svgOverlay=jr,e.tileLayer=Vr,e.tooltip=Fr,e.transformation=M,e.version=n,e.videoOverlay=kr;var oi=window.L;e.noConflict=function(){return window.L=oi,this},window.L=e}))}))(),1),Re=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcYBeBeoQIhRAkLlRDGrhIgY3BJL8CVeKzuyXFzzjkn5ZxzzuScg3PO8cKzu70JkO0LfxdTU//pM9vTu7Xgf6KqOVTb9X7toRrVEfBf1HTVjZccrT/2by1VV928Yty9ZbVuucdz90frG8DBjl9pVApbOstvmMuvVgaNXSfAAd6pGxpy6yxf5ph43pS/4f3uoaGm2rdu72S9xzOvMymkZFq/ptDrk90mhW7e4zl7HLzhxGWPR20xmSxJ/VqldG5m9XhaVOA1DadsNh3Pu5L2N6QtPO/32JpqQBVVk20oy/Pi2s23WEvyfHbe1thadVQttvm7Llf65gGmXK67XtupyoM7HQhmXdLS8oGWJNeOJ3C5fG5XCEJnkez3/oFdsvgJ4l2ANZwhrJKk/7OSXa+3Vw2WJMlKnGkobouYk6T0TyX30klOUnTD9HJ5qpckL3EW/w4XF3Xd0FGywXUrstrclVsqz5Pd/sXFYyDnPdrLcQODmGOK47IZb4CmibmMn+MYRzFZ5jg33ZL/EJrWcszHmANy3ARBK/IXtciJy8VsitPSdE3uuHxzougojcUdr8/32atnz/ev3f/K5wtpxUTpcaI45zusVDpYtZi+jg0oU9b3x74h7+n9ABvYEZeKaVq0sh0AtLKsFtqNBdeT0MrSzwwlq9+x6xAO4tgOtSzbCjrNQQiNvQUbUEubvzBUeGw26yDCsRHCoLkTHDa7IdOLIThs/gHvChszh2CimE8peRs47cxANI0lYNB5y1DljpOF0IhzBDPOZnDOqYYbeGKECbPzWnXludPphw5c2YBq5zlwXphIbO4VDCZ0gnPfUO1TwZoYwAs2ExPCedAu9DAjfQUjzITQb3jNj0KG2Sgt6BHaQUdYzWz+XmBktOHwanXjaSTcwwziBcuMOtwBmqPrTOxFQR/DRKKPqyur0aiW6cULYsx6tBm0jXpR/AUWR6HRq9WVW6MRhIq5jLyjbaCTDCijyYJNpCajdyobP/eTw0iexBAKkJ3gA5KcQb2zBXsIBckn+xVv8jkZSaEFHE+jFEleAEfayRU0MouNoBmB/L50Ai/HSLIHxcrpCvnhSQAuakKp2C/YbCylJjXRVy/z3+Kv/RrNcCo+WUzlVEhzKffnTQnxeN9fWF88fiNCUdSTsaufaChKWInHeysygfpIqagoakW+vV20J8uyl6TyNKEZWV4oRSPyCkWpgOLSbkCObT8o2r6tlG58HQquf6O0v50tB7JM7F4EORd2dx/K0w/KHsVkLPaoYrwgP/y7krr3SSMA4zj+OBgmjYkxcdIJQyQRKgg2viX9Hddi9UBb29LrKR7CVVEEEXWojUkXNyfTNDE14W9gbHJNuhjDettN3ZvbOvdOqCD3Jp/9l+/wJE+9PkYGjx/fqkys3S2rMozM/o2106rfMUINo6hVqz+eu/hd1c4xTg0TAfy5kV+4UG6+IthHTU9woWmxuKNbTfuCSfovBCxq7EtHqvYL4Sm6F8GVxsSXHMQ07TOi1DKtZxjWaaIyi4CXWjxPccUw8WVbMYY5wxC1mzEyXMJWkllpRloi+Kkoq69sxBTlElF6aAxYUbjXNlhlDZilDnM4U5SlN5biRsRHnbx3mbeWjEh4mEyiuJDl5XcWVmX5GvNkFgLWZM5qwsop4/AWfLhU1cR7k1VVvcYCWRkOI6Xy5gmnphCYIkvzuNYzHzosq2oNk2RtSs8khfUOfHIDgR6ysYBaMpl4uEgk2U/oJTs9AaTSwma7dT69geAE2ZpEjUsn2ieJNHeKfrI3EcAGJ2ZaNgVuC8EBctCLc57P5u5led6IOBkIYkuQMrmmjChs4VkfOerHqSBkPzZlhe06RslZ3zMjk2sscqKwY0RcjKK+LWbzd7KiHhkncs/siFJ+V5eXxD34B8nVuJEpGJNmxN2gH3vSvp7J70tF+D1Ej8qUJD1TkErAND2GZwTFg/LubvmgiBG3SOvdlsqFQrkEzJCL1rstlnVFROixZoDDSuXQFHESwVGlcuQcMb/b42NgjLowh5MTDFE3vNB5qStRIErdCQEh6pLPR92anSUb/wAIhldAaDMpGgAAAABJRU5ErkJggg==`,ze=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=`,Be=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC`,Ve=8;window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.leaflet=function(e={}){let n=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,className:``,point:{lat:0,lon:0},onchange:function(e){}}),r=app.utils.extendStore(n,e),i,a,o;r.push(watch(()=>{n.point.lat>90&&(n.point.lat=90),n.point.lat<-90&&(n.point.lat=-90),n.point.lon>180&&(n.point.lon=180),n.point.lon<-180&&(n.point.lon=-180)},()=>{s()}));function s(e=200){i&&(clearTimeout(o),o=setTimeout(()=>{a?.setLatLng([n.point.lat,n.point.lon]),i?.panInside([n.point.lat,n.point.lon],{padding:[20,40]})},e))}function c(e){let r=[He(n.point.lat),He(n.point.lon)];i=Le.default.map(e,{zoomControl:!1}).setView(r,Ve),Le.default.tileLayer(`https://tile.openstreetmap.org/{z}/{x}/{y}.png`,{attribution:`© OpenStreetMap`}).addTo(i),Le.default.Icon.Default.prototype.options.iconUrl=ze,Le.default.Icon.Default.prototype.options.iconRetinaUrl=Re,Le.default.Icon.Default.prototype.options.shadowUrl=Be,Le.default.Icon.Default.imagePath=``,a=Le.default.marker(r,{draggable:!0,autoPan:!0}).addTo(i),a.bindTooltip(`drag or right click anywhere on the map to move`),a.on(`moveend`,e=>{e.sourceTarget?._latlng&&u(e.sourceTarget._latlng.lat,e.sourceTarget._latlng.lng,!1)}),i.on(`contextmenu`,e=>{u(e.latlng.lat,e.latlng.lng,!1)})}function l(){clearTimeout(o),a?.remove(),i?.remove()}function u(e,r,o=!0){let s={lat:He(e),lon:He(r)};n.onchange&&n.onchange(s)===!1||(n.point=s,o&&(a?.setLatLng([n.point.lat,n.point.lon]),i?.panTo([n.point.lat,n.point.lon],{animate:!1})),i.getContainer()?.dispatchEvent(new CustomEvent(`change`,{detail:s})),f?.())}let[d,f]=Ue(u);return t.div({rid:n.rid,id:()=>n.id,hidden:()=>n.hidden,inert:()=>n.inert,className:`map-container`,onunmount:()=>{r.forEach(e=>e?.unwatch())}},d,t.div({className:`map-box`,onmount:e=>{c(e)},onunmount:()=>{l()}}))};function He(e){return+(+e).toFixed(6)||0}function Ue(e=null){let n=store({searchTerm:``,isSearching:!1,searchResults:[]}),r,i;function a(){i?.abort(`reset`),clearTimeout(r),n.isSearching=!1,n.searchResults=[],n.searchTerm=``}function o(e=1100){if(clearTimeout(r),i?.abort(`search debounce`),n.isSearching=!0,n.searchResults=[],!n.searchTerm){n.isSearching=!1;return}r=setTimeout(async()=>{try{i=new AbortController;let e=await fetch(`https://nominatim.openstreetmap.org/search.php?format=jsonv2&q=`+encodeURIComponent(n.searchTerm),{signal:i.signal});if(e.status!=200)throw Error(`OpenStreetMap API error `+e.status);let r=[],a=await e.json();for(let e of a)r.push({lat:e.lat,lon:e.lon,name:e.display_name});n.searchResults=r}catch(e){console.warn(`[address search failed]`,e)}n.isSearching=!1},e)}let s=t.div({className:`fields`},t.div({className:`field`},t.input({type:`text`,placeholder:`Search address...`,value:()=>n.searchTerm,oninput:e=>n.searchTerm=e.target.value})),t.div({className:`field addon p-l-10 p-r-10`},()=>{if(n.isSearching)return t.span({className:`loader sm`});if(n.searchTerm.length)return t.button({className:`link-hint`,title:`Clear search`,onclick:()=>a()},t.i({className:`ri-close-line`}))})),c=t.div({className:`dropdown`,popover:`manual`},()=>n.searchResults.map(n=>t.button({type:`button`,className:`dropdown-item`,title:`Select address coordinates`,onclick:()=>e?.(n.lat,n.lon)},n.name))),l=[];return[t.div({className:`map-search`,onmount:()=>{l.push(watch(()=>n.searchTerm,e=>{o(e)})),l.push(watch(()=>n.searchResults,e=>{e.length?c.showPopover({source:s}):c.hidePopover()}))},onunmount:()=>{l.forEach(e=>e?.unwatch()),a()}},s,c),a]}var We=`:root,.dropdown,.base-surface{--baseFontFamily:"IBM Plex Sans", system-ui, sans-serif, emoji;--monospaceFontFamily:"IBM Plex Mono", ui-monospace, monospace, emoji;--iconFontFamily:"remixicon";--primaryColor:#25272d;--primaryAlt1Color:color-mix(in srgb, var(--primaryColor), white 8%);--primaryAlt2Color:color-mix(in srgb, var(--primaryColor), white 13%);--primaryTxtColor:#fff;--primaryTxtHintColor:color-mix(in srgb, var(--primaryTxtColor), transparent 35%);--primaryTxtDisabledColor:color-mix(in srgb, var(--primaryTxtColor), transparent 50%);--secondaryColor:#e8eaee;--secondaryAlt1Color:#dcdfe5;--secondaryAlt2Color:#c4cbd4;--secondaryTxtColor:var(--primaryColor);--secondaryTxtHintColor:color-mix(in srgb, var(--secondaryTxtColor), transparent 35%);--secondaryTxtDisabledColor:color-mix(in srgb, var(--secondaryTxtColor), transparent 50%);--infoColor:#3376e5;--infoAlt1Color:color-mix(in srgb, var(--infoColor), white 10%);--infoAlt2Color:color-mix(in srgb, var(--infoColor), white 15%);--infoTxtColor:var(--primaryTxtColor);--infoTxtHintColor:var(--primaryTxtHintColor);--infoTxtDisabledColor:var(--primaryTxtDisabledColor);--successColor:#22a96d;--successAlt1Color:color-mix(in srgb, var(--successColor), white 10%);--successAlt2Color:color-mix(in srgb, var(--successColor), white 15%);--successTxtColor:var(--primaryTxtColor);--successTxtHintColor:var(--primaryTxtHintColor);--successTxtDisabledColor:var(--primaryTxtDisabledColor);--warningColor:#e57534;--warningAlt1Color:color-mix(in srgb, var(--warningColor), white 10%);--warningAlt2Color:color-mix(in srgb, var(--warningColor), white 15%);--warningTxtColor:var(--primaryTxtColor);--warningTxtHintColor:var(--primaryTxtHintColor);--warningTxtDisabledColor:var(--primaryTxtDisabledColor);--dangerColor:#c33751;--dangerAlt1Color:color-mix(in srgb, var(--dangerColor), white 10%);--dangerAlt2Color:color-mix(in srgb, var(--dangerColor), white 15%);--dangerTxtColor:var(--primaryTxtColor);--dangerTxtHintColor:var(--primaryTxtHintColor);--dangerTxtDisabledColor:var(--primaryTxtDisabledColor);--accentColor:#1055c9;--accentAlt1Color:color-mix(in srgb, var(--accentColor), white 10%);--accentAlt2Color:color-mix(in srgb, var(--accentColor), white 15%);--accentTxtColor:#fff;--accentTxtHintColor:color-mix(in srgb, var(--accentTxtColor), transparent 40%);--accentTxtDisabledColor:color-mix(in srgb, var(--accentTxtColor), transparent 50%);--surfaceColor:#fff;--surfaceAlt1Color:#f6f7f9;--surfaceAlt2Color:#e8eaee;--surfaceAlt3Color:#dfe2e7;--surfaceAlt4Color:#d9dde2;--surfaceAlt5Color:#d1d6dc;--surfaceTxtColor:#25272d;--surfaceTxtHintColor:#6b747b;--surfaceTxtDisabledColor:#abaeba;--surfaceAccentColor:color-mix(in srgb, var(--accentColor), white 80%);--surfaceInfoColor:color-mix(in srgb, var(--infoColor), white 80%);--surfaceSuccessColor:color-mix(in srgb, var(--successColor), white 80%);--surfaceWarningColor:color-mix(in srgb, var(--warningColor), white 80%);--surfaceDangerColor:color-mix(in srgb, var(--dangerColor), white 80%);--selectionColor:var(--surfaceAlt3Color);--inputColor:var(--surfaceAlt2Color);--inputFocusColor:var(--surfaceAlt3Color);--inputBorderColor:var(--surfaceAlt4Color);scrollbar-color:var(--surfaceAlt4Color) transparent;--prismFunctionColor:#7c00aa;--prismStringColor:#116b00;--prismNumberColor:#246f86;--prismPropertyColor:#246f86;--prismKeywordColor:#a04900;--prismCommentColor:var(--surfaceTxtHintColor);--prismPunctuationColor:var(--surfaceTxtColor);--modalAnimationSpeed:.2s;--modalOverlayColor:#22242a38;--tooltipTxtColor:#fff;--tooltipSurfaceColor:#222424e6;--boxShadow:0px 8px 5px -5px #2224241a;--leftBoxShadow:-1px 0px 5px 0 #2224241a;--rightBoxShadow:1px 0px 5px 0 #2224241a;--topScrollShadow:0px 2px 8px 1px #22242426;--bottomScrollShadow:0px -2px 8px 1px #22242426;--leftScrollShadow:3px 0px 5px 0px #22242433;--rightScrollShadow:-3px 0px 5px 0px #22242433;--fontSize:14px;--smFontSize:13px;--lgFontSize:15px;--lineHeight:22px;--smLineHeight:16px;--lgLineHeight:24px;--btnHeight:45px;--smBtnHeight:35px;--lgBtnHeight:52px;--spacing:30px;--smSpacing:20px;--inputPadding:13px;--inputBorderRadius:var(--borderRadius);--borderRadius:5px;--lgBorderRadius:15px;--pageSidebarWidth:240px;--wrapperWidth:840px;--smWrapperWidth:430px;--lgWrapperWidth:1150px;--loaderIcon:"";--loaderAnimationSpeed:1.2s;--animationSpeed:.15s;--activeAnimationSpeed:70ms;--slideAnimationSpeed:.2s;accent-color:var(--primaryColor)}[data-color-scheme=dark],[data-color-scheme=dark] .dropdown{--surfaceColor:#282828;--surfaceAlt1Color:color-mix(in srgb, var(--surfaceColor), white 2%);--surfaceAlt2Color:color-mix(in srgb, var(--surfaceColor), white 4%);--surfaceAlt3Color:color-mix(in srgb, var(--surfaceColor), white 6%);--surfaceAlt4Color:color-mix(in srgb, var(--surfaceColor), white 9%);--surfaceAlt5Color:color-mix(in srgb, var(--surfaceColor), white 12%);--surfaceTxtColor:#dedede;--tooltipTxtColor:var(--surfaceTxtColor);--surfaceTxtHintColor:color-mix(in srgb, var(--surfaceTxtColor), transparent 45%);--surfaceTxtDisabledColor:color-mix(in srgb, var(--surfaceTxtColor), transparent 65%);--secondaryColor:var(--surfaceAlt3Color);--secondaryTxtColor:var(--surfaceTxtColor);--secondaryAlt1Color:var(--surfaceAlt4Color);--secondaryAlt2Color:var(--surfaceAlt5Color);--primaryColor:#1e1e1e;--primaryTxtColor:var(--surfaceTxtColor);--primaryAlt1Color:color-mix(in srgb, var(--primaryColor), black 8%);--primaryAlt2Color:color-mix(in srgb, var(--primaryColor), black 16%);--primaryTxtHintColor:color-mix(in srgb, var(--primaryTxtColor), transparent 35%);--primaryTxtDisabledColor:color-mix(in srgb, var(--primaryTxtColor), transparent 50%);--infoColor:#4273bd;--infoTxtColor:var(--surfaceTxtColor);--infoAlt1Color:color-mix(in srgb, var(--infoColor), black 10%);--infoAlt2Color:color-mix(in srgb, var(--infoColor), black 15%);--surfaceInfoColor:color-mix(in srgb, var(--infoColor), var(--surfaceColor) 45%);--successColor:#257e58;--successTxtColor:var(--surfaceTxtColor);--successAlt1Color:color-mix(in srgb, var(--successColor), black 10%);--successAlt2Color:color-mix(in srgb, var(--successColor), black 15%);--surfaceSuccessColor:color-mix(in srgb, var(--successColor), var(--surfaceColor) 45%);--warningColor:#ae4d0e;--warningTxtColor:var(--surfaceTxtColor);--warningAlt1Color:color-mix(in srgb, var(--warningColor), black 10%);--warningAlt2Color:color-mix(in srgb, var(--warningColor), black 15%);--surfaceWarningColor:color-mix(in srgb, var(--warningColor), var(--surfaceColor) 45%);--dangerColor:#b6354c;--dangerTxtColor:var(--surfaceTxtColor);--dangerAlt1Color:color-mix(in srgb, var(--dangerColor), black 10%);--dangerAlt2Color:color-mix(in srgb, var(--dangerColor), black 15%);--surfaceDangerColor:color-mix(in srgb, var(--dangerColor), var(--surfaceColor) 45%);--inputColor:var(--surfaceAlt2Color);--inputFocusColor:var(--surfaceAlt3Color);--inputBorderColor:var(--surfaceAlt4Color);scrollbar-color:var(--surfaceAlt5Color) transparent;--modalOverlayColor:#00000080;--boxShadow:0px 8px 5px -5px #0000004d;--leftBoxShadow:-1px 0px 5px 0 #0000004d;--rightBoxShadow:1px 0px 5px 0 #0000004d;--topScrollShadow:0px 2px 8px 1px #00000073;--bottomScrollShadow:0px -2px 8px 1px #00000073;--leftScrollShadow:3px 0px 5px 0px #0006;--rightScrollShadow:-3px 0px 5px 0px #0006;--prismFunctionColor:#ab7abd;--prismStringColor:#87b47e;--prismNumberColor:#86b9bb;--prismPropertyColor:#90c2d1;--prismKeywordColor:#b3703d;--prismCommentColor:var(--surfaceTxtHintColor);--prismPunctuationColor:var(--surfaceTxtColor)}html .accent-surface{--surfaceColor:var(--accentColor);--surfaceAlt1Color:color-mix(in srgb, var(--surfaceColor), white 5%);--surfaceAlt2Color:color-mix(in srgb, var(--surfaceColor), white 10%);--surfaceAlt3Color:color-mix(in srgb, var(--surfaceColor), white 20%);--surfaceAlt4Color:color-mix(in srgb, var(--surfaceColor), white 30%);--surfaceAlt5Color:color-mix(in srgb, var(--surfaceColor), white 40%);--surfaceTxtColor:#fff;--surfaceTxtHintColor:color-mix(in srgb, var(--surfaceTxtColor), transparent 35%);--surfaceTxtDisabledColor:color-mix(in srgb, var(--surfaceTxtColor), transparent 60%);--surfaceAccentColor:color-mix(in srgb, var(--surfaceColor), white 20%);--surfaceInfoColor:color-mix(in srgb, var(--infoColor), transparent 40%);--surfaceSuccessColor:color-mix(in srgb, var(--successColor), transparent 40%);--surfaceWarningColor:color-mix(in srgb, var(--warningColor), transparent 40%);--surfaceDangerColor:color-mix(in srgb, var(--dangerColor), transparent 40%);--inputColor:var(--surfaceAlt3Color);--inputFocusColor:var(--surfaceAlt4Color);--inputBorderColor:var(--surfaceAlt5Color);--selectionColor:var(--surfaceAccentColor);scrollbar-color:var(--surfaceAlt4Color) transparent}@media (width<=900px){:root,.dropdown,.base-surface{--spacing:20px;--smSpacing:15px;--btnHeight:40px;--smBtnHeight:30px;--lgBtnHeight:47px}}`;window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.tinymce=function(e={}){let n=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,name:void 0,className:``,value:``,readonly:!1,disabled:!1,required:!1,convertURLs:!1,onchange:function(e){},onbeforeinit:function(e){},onafterinit:function(e){}}),r=app.utils.extendStore(n,e),i,a,o;r.push(watch(()=>n.value,c)),r.push(watch(()=>n.disabled||n.readonly,l)),r.push(watch(()=>n.convertURLs,u)),r.push(watch(()=>app.store.activeColorScheme,d));function s(e){try{e()}catch(e){console.warn(`tinymce error:`,e)}}function c(){o!=n.value&&s(()=>{i?.setContent(``+(n.value||``))})}function l(){s(()=>{i?.mode?.set(n.disabled||n.readonly?`readonly`:`design`)})}function u(){s(()=>{i?.options?.set(`convert_urls`,!!n.convertURLs)})}function d(){s(()=>{i?.getBody()?.setAttribute(`data-color-scheme`,app.store.activeColorScheme)})}let f;function p(e=150){clearTimeout(f),f=setTimeout(m,e)}function m(){if(!i)return;clearTimeout(f);let e;s(()=>{e=i.getContent()}),e!=o&&(o=e,n.onchange?.(e),a?.dispatchEvent(new CustomEvent(`change`,{detail:{editor:i,content:e},bubbles:!0})))}function h(){i&&(clearTimeout(f),i.dom?.unbind(document),s(()=>{window.tinymce?.remove(i)}),i=null,o=null)}async function g(e){if(await Xe(),h(),!e.isConnected)return;let r={target:e,content_style:We,branding:!1,promotion:!1,menubar:!1,resize:!1,min_height:265,height:265,max_height:600,sandbox_iframes:!0,convert_unsafe_embeds:!0,codesample_global_prismjs:!0,convert_urls:!1,relative_urls:!1,autoresize_bottom_margin:30,media_poster:!1,media_alt_source:!1,codesample_languages:[{text:`HTML/XML`,value:`markup`},{text:`CSS`,value:`css`},{text:`SQL`,value:`sql`},{text:`JavaScript`,value:`javascript`},{text:`Go`,value:`go`},{text:`Dart`,value:`dart`},{text:`Zig`,value:`zig`},{text:`Rust`,value:`rust`},{text:`Lua`,value:`lua`},{text:`PHP`,value:`php`},{text:`Ruby`,value:`ruby`},{text:`Python`,value:`python`},{text:`Java`,value:`java`},{text:`C`,value:`c`},{text:`C#`,value:`csharp`},{text:`C++`,value:`cpp`},{text:`Markdown`,value:`markdown`},{text:`Swift`,value:`swift`},{text:`Kotlin`,value:`kotlin`},{text:`Elixir`,value:`elixir`},{text:`Scala`,value:`scala`},{text:`Julia`,value:`julia`},{text:`Haskell`,value:`haskell`}],plugins:[`autolink`,`autoresize`,`code`,`codesample`,`directionality`,`image`,`link`,`lists`,`media`,`table`,`wordcount`],toolbar:`styles | alignleft aligncenter alignright | bold italic forecolor backcolor | bullist numlist | link table media_picker codesample | direction code`,paste_postprocess:(e,n)=>{Je(n.node)},file_picker_types:`image`,file_picker_callback:(e,n,r)=>{let i=document.createElement(`input`);i.setAttribute(`type`,`file`),i.setAttribute(`accept`,`image/*`),i.addEventListener(`change`,n=>{let r=n.target.files[0],i=new FileReader;i.addEventListener(`load`,()=>{if(!tinymce)return;let n=`blobid`+new Date().getTime(),a=tinymce.activeEditor.editorUpload.blobCache,o=i.result.split(`,`)[1],s=a.create(n,r,o);a.add(s),e(s.blobUri(),{title:r.name})}),i.readAsDataURL(r)}),i.click()},setup:e=>{i=e,e.on(`init`,e=>{n.onafterinit?.(i),u(),l(),d(),c()}),e.on(`keydown`,n=>{(n.ctrlKey||n.metaKey)&&n.code==`KeyS`&&e.formElement&&(n.preventDefault(),n.stopPropagation(),e.formElement.dispatchEvent(new KeyboardEvent(`keydown`,n)))}),e.on(`input`,e=>{p()}),e.on(`change`,e=>{m()}),Ge(e),Ke(e)}};n.readonly&&(r.statusbar=!1,r.min_height=30,r.height=30,r.max_height=500,r.autoresize_bottom_margin=5,r.resize=!1,r.toolbar=!1,r.plugins=[`autoresize`,`codesample`,`directionality`]),n.onbeforeinit&&n.onbeforeinit(r),window.tinymce.init(r)}return a=t.textarea({name:()=>n.name,onmount:e=>{g(e).catch(e=>{console.warn(`tinymce init error:`,e)})},onunmount:h}),t.div({rid:n.rid,id:()=>n.id,hidden:()=>n.hidden,inert:()=>n.inert,className:()=>`pb-tinymce ${n.className}`,"html-required":()=>n.required||void 0,onunmount:e=>{clearTimeout(f),r.forEach(e=>e?.unwatch()),a=null}},a)};function Ge(e){let n=`pbTinymceLastDirection`;e.on(`init`,()=>{let r=window.localStorage.getItem(n);!e.isDirty()&&e.getContent()==``&&r==`rtl`&&e.execCommand(`mceDirectionRTL`)}),e.ui.registry.addMenuButton(`direction`,{icon:`visualchars`,tooltip:`Direction`,fetch:r=>{r([{type:`menuitem`,text:`LTR content`,icon:`ltr`,onAction:()=>{window?.localStorage?.setItem(n,`ltr`),e.execCommand(`mceDirectionLTR`)}},{type:`menuitem`,text:`RTL content`,icon:`rtl`,onAction:()=>{window?.localStorage?.setItem(n,`rtl`),e.execCommand(`mceDirectionRTL`)}}])}})}function Ke(e){e.ui.registry.addMenuButton(`media_picker`,{tooltip:`Insert media`,icon:`embed`,fetch:n=>{n([{type:`menuitem`,text:`Inline image (Base64)`,onAction:()=>{e.execCommand(`mceImage`)}},{type:`menuitem`,text:`Media from collection`,onAction:()=>{app.modals.openRecordFilePicker({fileTypes:[`image`,`audio`,`video`],onselect:n=>{let r=app.pb.files.getURL(n.record,n.name,{thumb:n.thumb||void 0}),i=app.utils.encodeEntities(n.name),a=app.utils.encodeEntities(r);app.utils.hasImageExtension(n.name)?e?.execCommand(`InsertImage`,!1,r):app.utils.hasAudioExtension(n.name)?e?.execCommand(`InsertHTML`,!1,``):app.utils.hasVideoExtension(i)&&e?.execCommand(`InsertHTML`,!1,`
-
- `)}})}},{type:`menuitem`,text:`Manual embed`,onAction:()=>{tinymce.activeEditor.execCommand(`mceMedia`)}}])}})}var qe=`DIV.P.A.EM.B.STRONG.H1.H2.H3.H4.H5.H6.TABLE.TR.TD.TH.TBODY.THEAD.TFOOT.BR.HR.Q.SUP.SUB.DEL.IMG.OL.UL.LI.CODE`.split(`.`);function Je(e){if(e){for(let n of e.children)Je(n);qe.includes(e.tagName)?(e.removeAttribute(`style`),e.removeAttribute(`class`)):Ye(e)}}function Ye(e){let n=e.parentNode;for(;e.firstChild;)n.insertBefore(e.firstChild,e);n.removeChild(e)}async function Xe(){if(window.tinymce!==void 0)return;let e=`lazy-tinymce-js`;return document.getElementById(e)?new Promise((e,n)=>{function r(){document.removeEventListener(`tinymceLoadSuccess`,i),document.removeEventListener(`tinymceLoadError`,a)}let i=function(){r(),e()},a=function(e){r(),n(e?.details)};document.addEventListener(`tinymceLoadSuccess`,i),document.addEventListener(`tinymceLoadError`,a)}):new Promise((n,r)=>{document.head.querySelector(`#shablon-script`).after(t.script({id:e,src:`./libs/tinymce/tinymce.min.js`,onload:()=>{n()},onerror:e=>{console.warn(`failed to load tinymce.min.js:`,e),r(e)}}))}).then(()=>{document.dispatchEvent(new CustomEvent(`tinymceLoadSuccess`))}).catch(e=>{document.dispatchEvent(new CustomEvent(`tinymceLoadError`,{detail:e}))})}window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.colorPicker=function(e={}){let n=`picker_`+app.utils.randomString(),r=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,className:``,name:``,required:!1,disabled:!1,value:``,predefinedColors:[],onchange:e=>{},onmount:e=>{},onunmount:e=>{}}),i=app.utils.extendStore(r,e),a=store({inputValue:`#ffffff`});function o(e){e=e?.toLowerCase()||``,r.onchange?.(e)}let s,c=t.input({type:`color`,className:`color-picker-input`,id:()=>r.id,name:()=>r.name,required:()=>r.required,disabled:()=>r.disabled,value:()=>(a.inputValue=r.value||`#ffffff`,r.value||void 0),oninput:e=>{a.inputValue=e.target.value,clearTimeout(s),s=setTimeout(()=>{o(e.target.value)},50)}});return t.div({rid:r.rid,hidden:()=>r.hidden,inert:()=>r.inert,className:()=>`color-picker ${r.className}`,onmount:e=>{r.onmount?.(e)},onunmount:e=>{clearTimeout(s),r.onunmount?.(e),i.forEach(e=>e?.unwatch())}},t.div({className:`color-picker-input-wrapper`},c,t.output({className:`result`,style:()=>`color: lch(from ${a.inputValue||`#ffffff`} calc((49 - l) * infinity) 0 0);`,textContent:()=>a.inputValue})),t.button({hidden:()=>!r.predefinedColors.length,type:`button`,title:`Predefined colors`,className:`link-hint predefined-colors-btn`,"html-popovertarget":n+`predefined-colors-dropdown`},t.i({className:`ri-arrow-down-s-line`,roleHidden:!0})),t.div({pbEvent:`predefinedColorsDropdown`,id:n+`predefined-colors-dropdown`,className:`dropdown predefined-colors-dropdown`,popover:`auto`},t.div({className:`predefined-colors-list`},()=>r.predefinedColors?.map(e=>t.button({type:`button`,className:()=>`color ${r.value==e?`active`:``}`,style:`background:${e}`,onclick:n=>{c&&(n.target.closest(`.dropdown`)?.hidePopover(),c.value=e||void 0,c.dispatchEvent(new Event(`input`,{bubbles:!0})))}})))))},window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.ruleField=function(e={}){let n=`rule_`+app.utils.randomString(),r=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,className:``,required:!1,disabled:!1,name:void 0,label:void 0,help:void 0,value:null,nullable:!0,placeholder:`Leave empty to grant everyone access...`,autocomplete:e=>[],oninput:e=>{},onmount:e=>{},onunmount:e=>{},get isLocked(){return r.value==null}}),i=app.utils.extendStore(r,e,`isLocked`),a,o=``;function s(e){r.value=e,r.oninput?.(e),a?.dispatchEvent(new CustomEvent(`change`,{detail:e}))}function c(){r.value!==null&&(o=r.value,s(null))}function l(){s(o??``),setTimeout(()=>{document.getElementById(n)?.focus()},0)}return a=t.div({rid:r.rid,id:()=>r.id,hidden:()=>r.hidden,inert:()=>r.inert,"html-name":()=>r.name,className:()=>[`field`,`rule-field`,r.required?`required`:null,r.value===null?`locked`:null,r.disabled?`disabled`:null].filter(Boolean).join(` `),onmount:e=>{r.onmount?.(e)},onunmount:e=>{r.onunmount?.(e),i.forEach(e=>e?.unwatch())}},t.label({htmlFor:n},e=>r.label?typeof r.label==`function`?r.label(e):typeof r.label==`string`?t.span({className:`txt`},r.label):r.label:t.span({className:`txt`},`Rule`),t.span({hidden:()=>!r.isLocked,className:`txt superusers-label`},`(Superusers only)`)),e=>r.isLocked?t.button({type:`button`,className:`unlock-overlay`,disabled:()=>r.disabled,onclick:l},t.span({className:`txt`},`Unlock and set custom rule`),t.i({className:`ri-lock-unlock-line`,ariaHidden:!0})):[app.components.codeEditor({id:n,language:`pbrule`,required:()=>r.required,disabled:()=>r.disabled,value:()=>r.value,oninput:s,placeholder:()=>r.placeholder,autocomplete:r.autocomplete,autocompleteContainer:e}),t.button({hidden:()=>!r.nullable,type:`button`,className:`superuser-toggle`,disabled:()=>r.disabled,onclick:c},t.i({className:`ri-lock-line`,ariaHidden:!0}),t.span({className:`txt`},`Set superusers only`))]),a},window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.credits=function(){return t.div({pbEvent:`credits`,className:`credits`},()=>app.store.creditLinks.map(e=>{let n=e.href.startsWith(`#/`);return t.a({href:()=>e.href,target:()=>n?void 0:`_blank`,rel:()=>n?void 0:`noopener noreferrer`,className:n=>`credit-item ${e.isActive?.(n)||app.utils.isActivePath(e.href,!1)?`active`:``}`},()=>{if(e.icon)return t.i({className:e.icon})},t.span({className:`txt`},()=>e.label))}))},window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.searchbar=function(e={}){let n=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,value:``,className:``,placeholder:`Search...`,disabled:!1,historyKey:``,autocomplete:void 0,onsubmit:e=>{}}),r=app.utils.extendStore(n,e,`autocomplete`),i=store({value:``});function a(){n.value=i.value,n.onsubmit?.(i.value)}function o(){i.value=``,a()}return r.push(watch(()=>n.value,e=>{i.value=e})),t.form({rid:n.rid,id:()=>n.id,hidden:()=>n.hidden,inert:()=>n.inert,className:()=>`fields searchbar ${n.className}`,onsubmit:e=>{e.preventDefault(),a()},onunmount:e=>{r.forEach(e=>e?.unwatch())}},()=>{if(n.historyKey)return t.div({className:`field addon p-l-5`},app.components.searchHistoryButton({historyKey:()=>n.historyKey,value:()=>n.value,onselect:e=>{i.value=e,a()}}))},t.div({className:`field`},app.components.codeEditor({singleLine:!0,language:`pbrule`,className:()=>n.historyKey?`p-l-5`:`p-l-20`,placeholder:()=>n.placeholder,disabled:()=>n.disabled,value:()=>i.value,oninput:e=>i.value=e,autocomplete:n.autocomplete})),()=>{if(n.value.length>0||i.value.length>0)return t.div({rid:`search-ctrls`,className:`field addon p-r-5`},t.button({type:`submit`,className:`btn sm pill warning`,hidden:()=>n.value==i.value},`Search`),t.button({type:`button`,className:`btn sm pill secondary transparent`,onclick:()=>o()},`Clear`))})},window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.uploadedFileThumb=function(e={}){let n=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,file:void 0,imageWidth:100,imageHeight:100,extraClasses:`sm`}),r=app.utils.extendStore(n,e),i=store({thumbSrc:void 0});return r.push(watch(()=>[n.file,n.imageWidth,n.imageHeight],()=>{app.utils.hasImageExtension(n.file?.name)?app.utils.generateThumb(n.file,n.imageWidth,n.imageHeight).then(e=>{i.thumbSrc=e}).catch(e=>{console.warn(`unable to generate thumb:`,e),i.thumbSrc=void 0}):i.thumbSrc=void 0})),t.div({rid:n.rid,id:()=>n.id,hidden:()=>n.hidden,inert:()=>n.inert,className:()=>`thumb ${n.extraClasses}`,onunmount:()=>{r.forEach(e=>e?.unwatch())}},()=>{let e=app.utils.getFileType(n.file?.name);return e==`image`&&i.thumbSrc?t.img({draggable:!1,loading:`lazy`,alt:()=>`Thumb of `+n.file.name,src:i.thumbSrc}):t.i({className:app.utils.fileTypeIcons[e]||`ri-file-line`})})},window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openFilePreview=function(e){let n=Ze(e);document.body.appendChild(n),app.modals.open(n)};function Ze(e){let n=store({url:``,get filename(){let e=n.url,r=e.indexOf(`?`);return e.substring(e.lastIndexOf(`/`)+1,r>0?r:void 0)},get fileType(){return app.utils.getFileType(n.filename)}});async function r(){let r=``;try{r=typeof e==`function`?await e():await e}catch(e){e.isAbort||console.warn(`resolveUrlOrFactory file preview failure:`,e)}return n.url=r,r}async function i(){let e=await r();e&&window.open(e,`_blank`,`noreferrer,noopener`)}return t.div({pbEvent:`filePreviewModal`,className:()=>`modal preview preview-${n.fileType}`,onbeforeopen:()=>{r()},onafterclose:e=>{e.remove()}},t.div({className:`modal-content`},()=>n.url?n.fileType==`image`?t.img({src:()=>n.url,alt:()=>`Preview ${n.filename}`}):t.object({data:n.url,title:()=>n.filename},`Cannot preview the file.`):t.span({className:`loader`})),t.footer({className:`modal-footer`},t.button({type:`button`,className:`link-hint filename-link`,ariaDescription:app.attrs.tooltip(`Open in new tab`),onclick:()=>i()},t.span({className:`txt`},()=>n.filename)),t.button({type:`button`,className:`btn transparent m-l-auto`,onclick:()=>app.modals.close()},t.span({className:`txt`},`Close`))))}window.app=window.app||{},window.app.components=window.app.components||{};var Qe=2,$e=.4,et=40;window.app.components.erd=function(e={}){let n=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,className:``,collections:[],height:500,cols:5,marginX:90,marginY:70,scale:.8,onscalechange:e=>{}}),r=app.utils.extendStore(n,e),i=store({activeCollection:null,positions:{},viewX:0,viewY:0,panStartX:0,panStartY:0,isPanning:!1,isUpdating:!0}),a,o,s=`erd_`+app.utils.randomString();r.push(watch(()=>n.scale,e=>{e>Qe&&(n.scale=Qe),e<$e&&(n.scale=$e),o||=e,n.onscalechange?.(e)})),r.push(watch(()=>JSON.stringify(n.collections),(e,n)=>{n!==void 0&&c()}));async function c(e=!0){i.isUpdating=!0,await new Promise(e=>setTimeout(e,0)),i.positions={};let r=Array(n.cols).fill(et);a.querySelectorAll(`.erd-table`)?.forEach((e,a)=>{let o=a%n.cols;i.positions[e.dataset.collectionId]={x:et+o*(e.clientWidth+n.marginX),y:r[o]},r[o]+=e.clientHeight+n.marginY}),d(),e?await u():l(),i.isUpdating=!1}function l(){h.innerHTML=``,_.innerHTML=``}async function u(){await new Promise(e=>setTimeout(e,0)),l();let e=[];for(let r of n.collections){let i=r.fields||[];for(let o of i){if(o.type!=`relation`)continue;let i=a?.querySelector(`[data-collection-id="${r.id}"]`)?.querySelector(`[data-field-name="${o.name}"]`),s=a?.querySelector(`[data-collection-id="${o.collectionId}"]`)?.querySelector(`[data-field-name="id"]`);e.push(tt(i,s,n.scale,r.id,o.collectionId))}}e.length&&h.append(...e)}function d(){let e=a.clientWidth||0,r=a.querySelector(`.erd-table`)?.offsetWidth||0,o=2*et+n.cols*(r+n.marginX)-n.marginX;i.viewY=0,i.viewX=(e-o*n.scale)/2}function f(){n.scale=o||1,d()}function p(e){return i.activeCollection?i.activeCollection.id==e.id||i.activeCollection.fields?.find(n=>n.type==`relation`&&n.collectionId==e.id)?!0:!!e.fields?.find(e=>e.type==`relation`&&e.collectionId==i.activeCollection.id):!1}let m=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);m.classList.add(`erd-paths`,`back`),m.innerHTML=`
-
-
-
-
-
-
- `;let h=m.querySelector(`.paths-group`),g=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);g.classList.add(`erd-paths`,`front`),g.innerHTML=`
-
-
-
-
-
-
- `;let _=g.querySelector(`.paths-group`);return a=t.div({tabIndex:-1,rid:n.rid,id:()=>n.id,hidden:()=>n.hidden,inert:()=>n.inert,className:()=>`erd ${n.className} ${i.isUpdating?`updating`:``} ${i.isPanning?`panning`:``} ${i.activeCollection?`active`:``}`,onkeydown:e=>{(e.ctrlKey||e.metaKey)&&e.key==`0`&&f()},onmount:async e=>{e.addEventListener(`wheel`,r=>{r.preventDefault();let a=e.getBoundingClientRect(),o=r.clientX-a.left,s=r.clientY-a.top,c=(o-i.viewX)/n.scale,l=(s-i.viewY)/n.scale,u=Math.min(Math.max(-r.deltaY*.001+n.scale,$e),Qe);i.viewX=o-c*u,i.viewY=s-l*u,n.scale=u}),e.addEventListener(`pointerdown`,e=>{e.buttons==1&&(i.isPanning=!0,i.panStartX=e.clientX-i.viewX,i.panStartY=e.clientY-i.viewY)}),e._ondragging=function(e){i.isPanning&&(i.viewX=e.clientX-i.panStartX,i.viewY=e.clientY-i.panStartY)},e._ondragstop=function(){i.isPanning=!1},window.addEventListener(`pointermove`,e._ondragging),window.addEventListener(`pointerup`,e._ondragstop),c()},onunmount:e=>{window.removeEventListener(`pointermove`,e._ondragging),window.removeEventListener(`pointerup`,e._ondragstop),r.forEach(e=>e?.unwatch())}},t.div({className:`erd-area`,style:()=>`transform: translate(${i.viewX}px, ${i.viewY}px) scale(${n.scale});`},m,t.div({className:`erd-tables`},()=>n.collections.map(e=>t.div({style:()=>`left:${i.positions[e.id]?.x||0}px;top:${i.positions[e.id]?.y||0}px`,className:()=>`erd-table type-${e.type} ${p(e)?`active`:``} ${e.system?`system`:``}`,"html-data-collection-id":()=>e.id,"html-data-collection-name":()=>e.name,onmouseenter:()=>{h.querySelectorAll(`[data-to="${e.id}"]`)?.forEach(e=>{e.classList.add(`active-to`),_.append(e)}),h.querySelectorAll(`[data-from="${e.id}"]`)?.forEach(e=>{e.classList.add(`active-from`),_.append(e)}),i.activeCollection=e},onmouseleave:()=>{for(let e of _.children)e.classList.remove(`active-from`,`active-to`);h.append(..._.children),i.activeCollection=null}},t.div({className:`erd-table-row header`},()=>e.name),()=>e.fields?.map(e=>t.div({className:`erd-table-row type-${e.type} ${e.primaryKey?`primary-key`:``}`,"html-data-field-id":()=>e.id,"html-data-field-name":()=>e.name},t.i({title:()=>e.type,className:()=>`field-icon ${app.fieldTypes[e.type].icon||app.utils.fallbackFieldIcon}`}),t.span({className:`field-name`},()=>e.name),()=>{if(e.hidden)return t.span({className:`label danger field-hidden-label`},`Hidden`)},()=>{if(e.maxSelect!==void 0)return t.span({className:`meta`},e.maxSelect>1?`multiple`:`single`)}))))),g),t.nav({className:`erd-nav`,onmousedown:e=>{e.stopImmediatePropagation()}},t.button({type:`button`,className:`btn sm circle secondary`,title:`Zoom in`,onclick:()=>{n.scale+=.05}},t.i({className:`ri-add-line`,ariaHidden:!0})),t.button({type:`button`,className:`btn sm circle secondary`,title:`Zoom out`,onclick:()=>{n.scale-=.05}},t.i({className:`ri-subtract-line`,ariaHidden:!0})))),a};function tt(e,n,r=1,i=``,a=``,o=2){if(!e||!n)return;let s=e.closest(`.erd-area`).getBoundingClientRect(),c=e.getBoundingClientRect(),l=n.getBoundingClientRect();o*=r;let u=c.top-s.top+c.height/2,d=l.top-s.top+l.height/2,f,p;c.leftl.left?(f=c.left-s.left-o,p=l.left-s.left+l.width+o):(f=c.left-s.left-o,p=l.left-s.left-o),f/=r,p/=r,u/=r,d/=r;let m=f+(p-f)/2;f==p&&(m-=20);let h=`M ${f} ${u}
- L ${m} ${u}
- L ${m} ${d}
- L ${p} ${d}`,g=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return g.setAttribute(`class`,`relation-path`),g.setAttribute(`data-from`,i||``),g.setAttribute(`data-to`,a||``),g.setAttribute(`d`,h),g}window.app=window.app||{},window.app.components=window.app.components||{};var nt=1e3;window.app.components.pageSidebar=function(e={},...n){let r,i=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,className:``,widthHistoryKey:`pbPageSidebarWidth`,onmount:void 0,onunmount:void 0}),a=app.utils.extendStore(i,e),o=store({responsiveShow:!1}),s;function c(){if(r){if(window.innerWidth>nt){o.responsiveShow=!1,r.dataset.responsive=!1,s?.remove(),s=null;return}r.dataset.responsive=!0,s||(s=t.button({type:`button`,className:`btn transparent secondary responsive-sidebar-btn`,title:`Toggle sidebar`,onclick:e=>{e.stopPropagation(),o.responsiveShow=!o.responsiveShow}},t.i({className:`ri-menu-2-line`,ariaHidden:!0})),document.body.querySelector(`.page-header .breadcrumbs`).before(s))}}function l(e){if(e.target.closest(`.responsive-close`)){o.responsiveShow=!1;return}if(!(e.target.closest(`.page-sidebar`)||e.target.closest(`.app-header`)||e.target.closest(`.modal`)))return e.preventDefault(),e.stopImmediatePropagation(),o.responsiveShow=!1,!1}return a.push(watch(()=>o.responsiveShow,e=>{e?window.addEventListener(`click`,l,!0):window.removeEventListener(`click`,l,!0)})),r=t.aside({pbEvent:`pageSidebar`,rid:i.rid,id:()=>i.id,hidden:()=>i.hidden,inert:()=>i.inert,className:()=>`page-sidebar ${i.className} ${o.responsiveShow?`active`:``}`,onmount:e=>{c(e),window.addEventListener(`resize`,c),i.onmount?.(e)},onunmount:e=>{i.onunmount?.(e),window.removeEventListener(`click`,l,!0),window.removeEventListener(`resize`,c),s?.remove(),a.forEach(e=>e?.unwatch())}},e=>{let n;return i.widthHistoryKey&&(n=localStorage.getItem(i.widthHistoryKey),n&&(e.style.width=n)),app.components.dragline({ondragstart:n=>{e._startWidth=e.offsetWidth},ondragging:(r,a,o)=>{n=e._startWidth+a+`px`,e.style.width=n,i.widthHistoryKey&&localStorage.setItem(i.widthHistoryKey,n)}})},...n),r};var N=`modulepreload`,rt=function(e,n){return new URL(e,n).href},it={},P=function(e,n,r){let i=Promise.resolve();if(n&&n.length>0){let e=document.getElementsByTagName(`link`),a=document.querySelector(`meta[property=csp-nonce]`),o=a?.nonce||a?.getAttribute(`nonce`);function s(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}i=s(n.map(n=>{if(n=rt(n,r),n in it)return;it[n]=!0;let i=n.endsWith(`.css`),a=i?`[rel="stylesheet"]`:``;if(r)for(let r=e.length-1;r>=0;r--){let a=e[r];if(a.href===n&&(!i||a.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${n}"]${a}`))return;let s=document.createElement(`link`);if(s.rel=i?`stylesheet`:N,i||(s.as=`script`),s.crossOrigin=``,s.href=n,o&&s.setAttribute(`nonce`,o),document.head.appendChild(s),i)return new Promise((e,r)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>r(Error(`Unable to preload CSS for ${n}`)))})}))}function a(e){let n=new Event(`vite:preloadError`,{cancelable:!0});if(n.payload=e,window.dispatchEvent(n),!n.defaultPrevented)throw e}return i.then(n=>{for(let e of n||[])e.status===`rejected`&&a(e.reason);return e().catch(a)})};window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openApiPreview=function(e,n={onbeforeopen:null,onafteropen:null,onbeforeclose:null,onafterclose:null}){let r=at(e,n);r&&(document.body.appendChild(r),app.modals.open(r))};function at(e,n){if(!e){console.warn(`[apiPreviewModal] missing required collection`);return}let r,i=store({activeTab:`List/Search`,tabEl:null,isLoading:!1}),a={"List/Search":async e=>{let{docsList:n}=await P(async()=>{let{docsList:e}=await import(`./docsList-BHALa0P4.js`);return{docsList:e}},__vite__mapDeps([0,1,2,3]),import.meta.url);return i.tabEl=n(e)},View:async e=>{let{docsView:n}=await P(async()=>{let{docsView:e}=await import(`./docsView-Be6Uhvcf.js`);return{docsView:e}},__vite__mapDeps([4,1,2]),import.meta.url);return i.tabEl=n(e)}};e.type!=`view`&&(a.Create=async e=>{let{docsCreate:n}=await P(async()=>{let{docsCreate:e}=await import(`./docsCreate-Be3S3y5K.js`);return{docsCreate:e}},__vite__mapDeps([5,1,2]),import.meta.url);return i.tabEl=n(e)},a.Update=async e=>{let{docsUpdate:n}=await P(async()=>{let{docsUpdate:e}=await import(`./docsUpdate-LtD8DbWI.js`);return{docsUpdate:e}},__vite__mapDeps([6,5,1,2]),import.meta.url);return i.tabEl=n(e)},a.Delete=async e=>{let{docsDelete:n}=await P(async()=>{let{docsDelete:e}=await import(`./docsDelete-CybOn5jy.js`);return{docsDelete:e}},[],import.meta.url);return i.tabEl=n(e)},a.Realtime=async e=>{let{docsRealtime:n}=await P(async()=>{let{docsRealtime:e}=await import(`./docsRealtime-PMESvmJN.js`);return{docsRealtime:e}},[],import.meta.url);return i.tabEl=n(e)},a.Batch=async e=>{let{docsBatch:n}=await P(async()=>{let{docsBatch:e}=await import(`./docsBatch-DNJl1NTn.js`);return{docsBatch:e}},[],import.meta.url);return i.tabEl=n(e)}),e.type==`auth`&&(a[``]=null,a[`List auth methods`]=async e=>{let{docsListAuthMethods:n}=await P(async()=>{let{docsListAuthMethods:e}=await import(`./docsListAuthMethods-9feSopQX.js`);return{docsListAuthMethods:e}},__vite__mapDeps([7,2]),import.meta.url);return i.tabEl=n(e)},a[`Auth with password`]=e.passwordAuth?.enabled?async e=>{let{docsAuthWithPassword:n}=await P(async()=>{let{docsAuthWithPassword:e}=await import(`./docsAuthWithPassword-DEWj8Jyn.js`);return{docsAuthWithPassword:e}},__vite__mapDeps([8,1,2]),import.meta.url);return i.tabEl=n(e)}:null,e.name!=`_superusers`&&(a[`Auth with OAuth2`]=e.oauth2?.enabled?async e=>{let{docsAuthWithOAuth2:n}=await P(async()=>{let{docsAuthWithOAuth2:e}=await import(`./docsAuthWithOAuth2-DUIE4EoY.js`);return{docsAuthWithOAuth2:e}},__vite__mapDeps([9,1,2]),import.meta.url);return i.tabEl=n(e)}:null),a[`Auth with OTP`]=e.otp?.enabled?async e=>{let{docsAuthWithOTP:n}=await P(async()=>{let{docsAuthWithOTP:e}=await import(`./docsAuthWithOTP-B7z2VJzp.js`);return{docsAuthWithOTP:e}},__vite__mapDeps([10,1,2]),import.meta.url);return i.tabEl=n(e)}:null,a[`Auth refresh`]=async e=>{let{docsAuthRefresh:n}=await P(async()=>{let{docsAuthRefresh:e}=await import(`./docsAuthRefresh-UjveHHwo.js`);return{docsAuthRefresh:e}},__vite__mapDeps([11,1,2]),import.meta.url);return i.tabEl=n(e)},e.name!=`_superusers`&&(a.Verification=async e=>{let{docsVerification:n}=await P(async()=>{let{docsVerification:e}=await import(`./docsVerification-B_Nb90xU.js`);return{docsVerification:e}},[],import.meta.url);return i.tabEl=n(e)}),a[`Password reset`]=async e=>{let{docsPasswordReset:n}=await P(async()=>{let{docsPasswordReset:e}=await import(`./docsPasswordReset-vLO_ZWrq.js`);return{docsPasswordReset:e}},[],import.meta.url);return i.tabEl=n(e)},a[`Email change`]=async e=>{let{docsEmailChange:n}=await P(async()=>{let{docsEmailChange:e}=await import(`./docsEmailChange-B---6FKV.js`);return{docsEmailChange:e}},[],import.meta.url);return i.tabEl=n(e)});let o=[watch(()=>i.activeTab,async()=>{i.isLoading=!0,await a[i.activeTab]?.(e),i.isLoading=!1})];return r=t.div({pbEvent:`apiPreviewModal`,className:`modal api-preview-modal`,onbeforeopen:e=>n.onbeforeopen?.(e),onafteropen:e=>{n.onafteropen?.(e)},onbeforeclose:e=>n.onbeforeclose?.(e),onafterclose:e=>{n.onafterclose?.(e),o.forEach(e=>e?.unwatch()),e?.remove()},onmount:e=>{},onunmount:e=>{o.forEach(e=>e?.unwatch())}},t.div({className:`modal-content`},t.aside({className:`api-preview-sidebar`},t.nav({className:`api-preview-nav`},()=>{let e=[];for(let n in a){if(!n){e.push(t.hr());continue}let r=!a[n];e.push(t.button({type:`button`,className:()=>`nav-item ${i.activeTab==n?`active`:``}`,disabled:r,ariaDescription:app.attrs.tooltip(()=>r?`Not enabled for the collection`:``,`left`),onclick:()=>{r||(i.activeTab=n)}},n))}return e})),t.div({className:()=>`api-preview-content ${i.isLoading?`faded`:``}`,scrollTop:()=>i.activeTab?0:null},t.header({className:`api-preview-content-header`},t.h6(null,()=>i.activeTab+` (${e.name})`),t.button({type:`button`,className:()=>`btn sm circle transparent secondary m-l-auto preview-close-btn ${i.isLoading?`loading`:``}`,title:`Close`,onclick:()=>app.modals.close(r)},t.i({className:`ri-close-line`,ariaHidden:!0}))),()=>i.tabEl))),r}window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openMailTest=function(e=``,n=``){let r=ot(e,n);document.body.appendChild(r),app.modals.open(r)};function ot(e=``,n=``){let r=`mail_test_`+app.utils.randomString(),i=`pbLastTestEmail`,a=`email_test_request`,o=[{label:`Verification`,value:`verification`},{label:`Password reset`,value:`password-reset`},{label:`Confirm email change`,value:`email-change`},{label:`OTP`,value:`otp`},{label:`Login alert`,value:`login-alert`}],s=store({email:localStorage.getItem(i)||app.store.superuser?.email||``,template:n||o[0].value,isSending:!1,collectionIdOrName:e,get isAuthCollectionsLoading(){return app.store.isCollectionsLoading},get authCollections(){return app.utils.sortedCollections(app.store.collections.filter(e=>e.type==`auth`))},get canSubmit(){return!!s.email&&!!s.template&&!!s.collectionIdOrName}}),c;async function l(){if(!(s.isSending||!s.canSubmit)){s.isSending=!0,clearTimeout(c),c=setTimeout(()=>{s.isSending=!1,app.pb.cancelRequest(a),app.modals.close(),app.toasts.error(`Test email send timeout.`)},15e3);try{s.email!=app.pb.authStore.record?.email&&localStorage.setItem(i,s.email),await app.pb.settings.testEmail(s.collectionIdOrName,s.email,s.template,{requestKey:a}),app.toasts.success(`Successfully sent test email.`),app.modals.close()}catch(e){app.checkApiError(e)}s.isSending=!1,clearTimeout(c)}}let u=[];return t.div({className:`modal popup sm`,onbeforeopen:e=>{u.push(watch(()=>s.isAuthCollectionsLoading,e=>{!e&&!s.collectionIdOrName&&(s.collectionIdOrName=s.authCollections[0]?.id||``)}))},onafterclose:e=>{clearTimeout(c),e?.remove()},onunmount:()=>{clearTimeout(c),u.forEach(e=>e?.unwatch())}},t.header({className:`modal-header`},t.h5({className:`m-auto`},`Send test email`)),t.form({id:r,className:`modal-content mail-settings-test-form`,onsubmit:e=>{e.preventDefault(),l()}},t.div({className:`grid`},t.div({className:`col-lg-12`},()=>o.map((e,n)=>t.field({className:()=>`field ${n>0?`m-t-10`:``}`},t.input({type:`radio`,id:r+`.template.`+e.value,name:`template`,checked:()=>s.template==e.value,onchange:n=>s.template=e.value}),t.label({htmlFor:r+`.template.`+e.value},e.label||e.value)))),()=>{if(!e)return t.div({className:`col-lg-12`},t.div({className:`field`},t.label({htmlFor:r+`.collection`},`Auth collection`),app.components.select({id:r+`.collection`,name:`collection`,required:!0,placeholder:()=>s.isAuthCollectionsLoading?`Loading auth collections...`:`Select auth collection`,options:()=>s.authCollections.map(e=>({value:e.id,label:e.name})),value:()=>s.collectionIdOrName||``,onchange:e=>{s.collectionIdOrName=e?.[0]?.value}})))},t.div({className:`col-lg-12`},t.div({className:`field`},t.label({htmlFor:r+`.email`},`To email address`),t.input({id:r+`.email`,name:`email`,type:`email`,required:!0,value:()=>s.email||``,oninput:e=>s.email=e.target.value}))))),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,onclick:()=>app.modals.close(),disabled:()=>s.isSending},t.span({className:`txt`},`Close`)),t.button({"html-form":r,type:`submit`,className:()=>`btn expanded ${s.isSending?`loading`:``}`,disabled:()=>s.isSending||!s.canSubmit},t.i({className:`ri-mail-send-line`}),t.span({className:`txt`},`Send`))))}function st(e={}){let n=store({rid:void 0,collectionA:null,collectionB:null,deleteMissing:!1,className:``}),r=app.utils.extendStore(n,e),i=store({hasAnyChange:!1,get isDeleteDiff(){return!n.collectionB?.id&&!n.collectionB?.name},get isCreateDiff(){return!i.isDeleteDiff&&!n.collectionA?.id},get hasAnyChange(){return app.utils.hasCollectionChanges(n.collectionA,n.collectionB,n.deleteMissing)},get fieldsListA(){return Array.isArray(n.collectionA?.fields)?n.collectionA?.fields:[]},get fieldsListB(){let e=Array.isArray(n.collectionB?.fields)?n.collectionB?.fields:[];return n.deleteMissing||(e=e.concat(n.collectionA?.fields?.filter(n=>!e.find(e=>n.id==e.id))||[])),e},get mainModelProps(){return app.utils.mergeUnique(Object.keys(n.collectionA||{}),Object.keys(n.collectionB||{})).filter(e=>![`fields`,`created`,`updated`].includes(e))},get removedFields(){return i.fieldsListA.filter(e=>!i.fieldsListB.find(n=>e.id==n.id))},get sharedFields(){return i.fieldsListB.filter(e=>i.fieldsListA.find(n=>n.id==e.id))},get addedFields(){return i.fieldsListB.filter(e=>!i.fieldsListA.find(n=>n.id==e.id))}});function a(e){return e===void 0?``:app.utils.isObject(e)?JSON.stringify(e,null,4):``+e}function o(e,n){return e===n?!1:JSON.stringify(e)!=JSON.stringify(n)}function s(e,n){return(e||[]).find(e=>e.id==n)}return t.div({rid:n.rid,pbEvent:`collectionsDiffTableWrapper`,className:()=>`collections-diff-table-wrapper ${n.className}`,onunmount:()=>{r.forEach(e=>e?.unwatch())}},t.div({className:`collections-diff-table-title`},()=>n.collectionA?.id?n.collectionB?.id?[t.span({hidden:()=>!i.hasAnyChange,className:`label import-change-label warning`,textContent:`Changed`}),t.div({className:`inline-flex gap-5`},()=>{if(n.collectionA?.name!=n.collectionB?.name)return[t.strong({className:`txt-strikethrough txt-hint`,textContent:n.collectionA?.name}),t.i({className:`ri-arrow-right-line txt-sm`})]},t.strong({textContent:()=>n.collectionB?.name}))]:[t.span({className:`label import-change-label danger`,textContent:`Deleted`}),t.strong({textContent:()=>n.collectionA?.name})]:[t.span({className:`label import-change-label success`,textContent:`Added`}),t.strong({textContent:()=>n.collectionB?.name})]),t.table({className:`collections-diff-table`},t.thead(null,t.tr(null,t.th({className:`min-width`},`Props`),t.th({width:`40%`},`Old`),t.th({width:`40%`},`New`))),t.tbody(null,()=>i.mainModelProps.map(e=>{let r=o(n.collectionA?.[e],n.collectionB?.[e]);return t.tr({className:r?`txt-primary`:``},t.td({className:`min-width`},e),t.td({className:()=>i.isCreateDiff?`changed-non-col`:r?`changed-old-col`:``},t.pre({className:`txt diff-value`},a(n.collectionA?.[e]))),t.td({className:()=>i.isDeleteDiff?`changed-non-col`:r?`changed-new-col`:``},t.pre({className:`txt diff-value`},a(n.collectionB?.[e]))))}),()=>{if(!n.deleteMissing&&!i.isDeleteDiff)return;let e=[];for(let n of i.removedFields){e.push(t.tr(null,t.th({className:`min-width`,colSpan:3},t.span({className:`txt`},`field: `,n.name),t.span({className:`label danger m-l-5`},`Deleted - `,t.small(null,`All stored data related to '${n.name}' will be deleted!`)))));for(let r in n){let i=n[r];e.push(t.tr(null,t.td({className:`min-width field-key-col`},r),t.td({className:`changed-old-col`},t.pre({className:`txt`},a(i))),t.td({className:`changed-none-col`})))}}return e},()=>{let e=[];for(let n of i.sharedFields){let r=s(i.fieldsListA,n.id),c=o(r,s(i.fieldsListB,n.id));e.push(t.tr(null,t.th({className:`min-width`,colSpan:3},t.span({className:`txt`},`field: `,n.name),t.span({className:`label warning m-l-5 ${c?``:`hidden`}`,textContent:`Changed`}))));for(let i in n){let s=n[i],c=o(r?.[i],s);e.push(t.tr({className:c?`txt-primary`:``},t.td({className:`min-width field-key-col`},i),t.td({className:c?`changed-old-col`:``},t.pre({className:`txt`},a(r?.[i]))),t.td({className:c?`changed-new-col`:``},t.pre({className:`txt`},a(s)))))}}return e},()=>{let e=[];for(let n of i.addedFields){e.push(t.tr(null,t.th({className:`min-width`,colSpan:3},t.span({className:`txt`},`field: `,n.name),t.span({className:`label success m-l-5`},`Added`))));for(let r in n){let i=n[r];e.push(t.tr({className:`txt-primary`},t.td({className:`min-width field-key-col`},r),t.td({className:`changed-none-col`}),t.td({className:`changed-new-col`},t.pre({className:`txt`},a(i)))))}}return e})))}window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openImportCollectionsReview=function(e,n,r={deleteMissing:!1,onsubmit:null}){let i=ct(e,n,r);i&&(document.body.appendChild(i),app.modals.open(i))};function ct(e,n,r){let i,a=store({deleteMissing:!1,onsubmit:function(e){}}),o=app.utils.extendStore(a,r),s=store({isImporting:!1,pairs:[]});function c(){let r=[];for(let i of e){let e=n.find(e=>e.id==i.id);(a.deleteMissing&&!e?.id||e?.id&&app.utils.hasCollectionChanges(i,e,a.deleteMissing))&&r.push({old:i,new:e})}for(let i of n){let n=e.find(e=>e.id==i.id);n?.id||r.push({old:n,new:i})}s.pairs=r}function l(){let r=[];if(a.deleteMissing)for(let i of e){let e=n.find(e=>e.id==i.id);if(!e)r.push(i.name+`.*`);else{let n=Array.isArray(i.fields)?i.fields:[];for(let a of n)e.fields.find(e=>e.id==a.id)||r.push(`${i.name}.${a.name} (${a.id})`)}}r.length?app.modals.confirm([t.h6(null,`Do you really want to delete the following collection fields and their related records data:`),t.ul(null,()=>r.map(e=>t.li(null,e)))],()=>u()):u()}async function u(){if(!s.isImporting){s.isImporting=!0;try{await app.pb.collections.import(n,a.deleteMissing),await app.store.loadCollections(),a.onsubmit?.(JSON.parse(JSON.stringify(app.store.collections))),app.toasts.success(`Successfully imported collections configuration.`)}catch(e){app.checkApiError(e)}s.isImporting=!1,app.modals.close(i)}}return i=t.div({pbEvent:`importCollectionsReviewModal`,className:`modal popup full import-collections-review-modal`,onbeforeopen:()=>{c()},onbeforeclose:()=>!s.isImporting,onafterclose:e=>{e?.remove()},onunmount:()=>{o.forEach(e=>e?.unwatch())}},t.header({className:`modal-header`},t.h5(null,`Side-by-side diff`)),t.div({className:`modal-content`},()=>s.pairs.map(e=>st({collectionA:e.old,collectionB:e.new,deleteMissing:a.deleteMissing}))),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,disabled:()=>s.isImporting,onclick:()=>app.modals.close(i)},t.span({className:`txt`},`Close`)),t.button({type:`button`,className:()=>`btn expanded ${s.isImporting?`loading`:``}`,disabled:()=>s.isImporting,onclick:()=>l()},t.span({className:`txt`},`Confirm and import`)))),i}window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.recordSummary=function(e,n=null){let r=store({get collection(){return app.store.collections.find(n=>n.id==e.collectionId||n.name==e.collectionName)},get presentableFields(){if(!r.collection?.id)return[];let e=r.collection.fields.filter(e=>e.presentable).sort((e,n)=>{let r=app.fieldTypes[e.type].summaryPriority||0,i=app.fieldTypes[n.type].summaryPriority||0;return r>i?1:re.name==n);if(i){e.push(i);break}}return e}});return t.div({className:`label record-summary`},t.i({ariaHidden:!0,className:`ri-eye-line link-hint record-preview-icon`,onclick:e=>{e.stopImmediatePropagation(),e.preventDefault()},onmouseenter:n=>{ut(n.target,e,100)},onmouseleave:e=>{lt(e.target,100)},onunmount:e=>{lt(e,0)}}),()=>{let i=[];function a(e){(e==null||e==``)&&(e=t.span({className:`missing-value`})),i.push(e)}for(let i of r.presentableFields){let r=app.fieldTypes[i.type]?.view;if(r)a(r({short:!0,get record(){return e},get field(){return i},get meta(){return n}}));else{let n=app.utils.toArray(e[i.name]).splice(0,3);for(let e of n)a(e)}}return i})};function lt(e,n=150){if(e){if(clearTimeout(e._summaryDropdownTimeoutId),n<=0){e?._summaryDropdown?.hidePopover?.();return}e._summaryDropdownTimeoutId=setTimeout(()=>{e?._summaryDropdown?.hidePopover?.()},n)}}function ut(e,n,r=150){if(e){if(clearTimeout(e._summaryDropdownTimeoutId),r<=0){dt(e,n);return}e._summaryDropdownTimeoutId=setTimeout(()=>{dt(e,n)},r)}}var dt=function(e,n){e&&(e._summaryDropdown||(e._summaryDropdown=t.div({className:`dropdown record-summary-dropdown`,popover:`manual`,onclick:e=>{e.stopImmediatePropagation(),e.preventDefault()}},t.div({className:`record-header`},t.a({className:`link-hint txt-bold m-r-auto`,target:`_blank`,href:`#/collections?collection=${n.collectionName}&record=${n.id}`,onclick:e=>{e.stopImmediatePropagation()}},t.span({className:`txt`},`Edit relation record`),t.i({className:`ri-external-link-line`})),t.button({type:`button`,className:`link-hint`,title:`Close`,onclick:()=>lt(e,0)},t.i({className:`ri-close-line`,ariaHidden:!0}))),t.hr(),t.pre({className:`record-json`},()=>{let e=app.store.collections.find(e=>e.id==n.collectionId||e.name==n.collectionName)?.fields||[];if(!e.length)return;let r={collectionId:n.collectionId,collectionName:n.collectionName};for(let i of e)r[i.name]=n[i.name];return JSON.stringify(app.utils.truncateObject(r,27),null,2)})),e.appendChild(e._summaryDropdown)),e._summaryDropdown?.showPopover({source:e}))};window.app=window.app||{},window.app.components=window.app.components||{},window.app.components.recordsSearchbar=function(e={}){let n=store({rid:void 0,id:void 0,hidden:void 0,inert:void 0,disabled:void 0,value:``,className:``,collection:void 0,onsubmit:e=>{}}),r=app.utils.extendStore(n,e);return t.div({rid:n.rid,id:()=>n.id,hidden:()=>n.hidden,inert:()=>n.inert,className:()=>`full-width records-searchbar-wrapper ${n.className}`,onunmount:()=>{r.forEach(e=>e?.unwatch())}},app.components.searchbar({placeholder:()=>!n.disabled&&!n.collection?.id?`Loading...`:`Search term or filter...`,historyKey:()=>`pbRecordsSearchHistory_`+n.collection?.id,disabled:()=>n.disabled||!n.collection,value:()=>n.value,autocomplete:e=>app.utils.collectionAutocompleteKeys(n.collection,e,{requestKeys:!1,collectionJoinKeys:!1}),onsubmit:n.onsubmit}))},window.app=window.app||{},window.app.components=window.app.components||{};var F={max:10,pending:new Set,processing:new Set};function ft(e){return F.pending.add(e),F.processing.size<=F.max&&pt(),()=>{F.pending.delete(e),F.processing.delete(e),F.processing.sizen.id,hidden:()=>n.hidden,inert:()=>n.inert,type:`button`,draggable:!1,className:()=>`thumb ${n.extraClasses} ${i.isPreviewLoading?`loading`:``}`,title:()=>(i.hasPreview?`Preview`:`Download`)+` `+n.filename,onclick:async e=>{e.stopPropagation();async function r(){let e=await app.getFileToken(n.record.collectionId);return app.pb.files.getURL(n.record,n.filename,{token:e})}if(i.hasPreview)app.modals.openFilePreview(r);else{let e=await r();app.utils.download(e,n.filename)}},onunmount:()=>{r.forEach(e=>e?.unwatch())}},()=>{if(i.fileType==`image`){let e=t.img({draggable:!1,alt:()=>`Thumb of `+n.filename,src:()=>i.previewURL,onerror:n=>{console.warn(`[recordFileThumb] load err:`,n),i.isPreviewLoading=!1,e?._semaphoreRelease?.()},onload:()=>{i.isPreviewLoading=!1,e?._semaphoreRelease?.()},onmount:e=>{i.isPreviewLoading=!0,e._semaphoreRelease=ft(async()=>{try{i.previewToken=await app.getFileToken(n.record.collectionId),i.previewURL=app.pb.files.getURL(n.record,n.filename,{thumb:`100x100`,token:i.previewToken})}catch(e){console.warn(e)}})},onunmount:e=>{i.isPreviewLoading=!1,e._semaphoreRelease?.()}});return e}return t.i({className:app.utils.fileTypeIcons[i.fileType]||`ri-file-line`})})},window.app=window.app||{},window.app.modals=window.app.modals||{};var mt=100,ht={btnText:`Insert`,fileTypes:[],onselect:function(e){}},gt=`pbLastRecordFilePickerCollection`,_t=`listFilePickerRecords`;window.app.modals.openRecordFilePicker=function(e={}){e=Object.assign({},ht,e);let n=vt(e);document.body.appendChild(n),app.modals.open(n)};function vt(e=ht){let n,r=`file_picker_`+app.utils.randomString(),i=store({selectedFile:{},records:[],activeCollectionId:``,searchTerm:``,lastRecordsPage:1,lastTotalRecords:0,isLoadingRecords:!1,get collections(){return app.utils.sortedCollections(app.store.collections.filter(e=>e.type==`view`?!1:!!e.fields?.find(e=>e.type===`file`&&!e.protected)))},get activeCollection(){return i.collections.find(e=>e.id==i.activeCollectionId)||i.collections[0]},get activeCollectionFileFields(){return i.activeCollection?.fields?.filter(e=>e.type===`file`&&!e.protected)||[]},get isLoading(){return app.store.isLoadingCollections||i.isLoadingRecords},get canLoadMore(){return!i.isLoadingRecords&&i.lastTotalRecords==mt},get hasAtleastOneFile(){return!!i.records.find(e=>c(e).length>0)}}),a=[];a.push(watch(()=>{i.activeCollectionId?(window.localStorage.setItem(gt,i.activeCollectionId),i.searchTerm=``):i.activeCollectionId=window.localStorage.getItem(gt)})),a.push(watch(()=>[i.activeCollection,i.searchTerm],()=>s(!0)));function o(){app.pb.cancelRequest(_t),i.isLoadingRecords=!1,i.records=[],i.lastTotalRecords=0,i.lastRecordsPage=1,i.selectedFile={}}async function s(e=!1){if(!i.activeCollection){o();return}e&&o(),i.isLoadingRecords=!0;try{let n=e?1:i.lastRecordsPage+1,r=app.utils.getAllCollectionIdentifiers(i.activeCollection),a=app.utils.normalizeSearchFilter(i.searchTerm,r)||``;a&&(a+=` && `),a+=`(`+i.activeCollectionFileFields.map(e=>`${e.name}:length>0`).join(`||`)+`)`;let o=await app.pb.collection(i.activeCollection.id).getList(n,mt,{requestKey:_t,filter:a,skipTotal:1,sort:i.activeCollection.type==`view`?``:`-@rowid`});i.lastRecordsPage=o.page,i.lastTotalRecords=o.items.length,i.records=app.utils.filterDuplicatesByKey(i.records.concat(o.items)),i.isLoadingRecords=!1}catch(e){e.isAbort||(i.isLoadingRecords=!1,app.checkApiError(e))}}function c(n){let r=[];for(let a of i.activeCollectionFileFields){let i=app.utils.toArray(n[a.name]);for(let n of i)(app.utils.isEmpty(e.fileTypes)||e.fileTypes?.includes(app.utils.getFileType(n)))&&r.push(n)}return r}function l(e,n){i.selectedFile={record:e,name:n,thumb:``}}function u(e,n){return i.selectedFile?.name==n&&i.selectedFile?.record?.id==e?.id}let d={"record:create":e=>{e.detail.collectionId==i.activeCollection?.id&&(i.selectedFile?.record?.id==e.detail.id&&(i.selectedFile.record=e.detail),s(!0))},"record:delete":e=>{e.detail.collectionId!=i.activeCollection?.id&&e.detail.collectionName!=i.activeCollection?.name||(i.selectedFile?.record?.id==e.detail.id&&(i.selectedFile={}),s(!0))}};return n=t.div({className:`modal popup record-file-picker-modal`,onafterclose:e=>{e?.remove()},onmount:e=>{for(let e in d)document.addEventListener(e,d[e])},onunmount:e=>{a.forEach(e=>e?.unwatch());for(let e in d)document.removeEventListener(e,d[e])}},t.header({className:`modal-header`},t.button({className:()=>`btn primary outline record-file-picker-collection-select-btn ${app.store.isLoadingCollections?`loading`:``}`,disabled:()=>app.store.isLoadingCollections,"html-popovertarget":`collections_dropdown`+r},t.span({className:`txt-lg collection-name m-r-auto`},()=>i.activeCollection?.name||`Select collection`),t.i({className:`ri-arrow-drop-down-line`})),t.div({id:`collections_dropdown`+r,className:`dropdown`,popover:`hint`},()=>i.collections.map(e=>t.button({type:`button`,className:()=>`dropdown-item ${i.activeCollectionId==e.id?`active`:``}`,onclick:n=>{i.activeCollectionId=e.id,n.target?.closest(`.dropdown`)?.hidePopover()}},e.name))),app.components.recordsSearchbar({disabled:()=>!i.activeCollection?.id,collection:()=>i.activeCollection,value:()=>i.searchTerm,onsubmit:e=>i.searchTerm=e}),t.button({type:`button`,className:`btn circle transparent`,ariaDescription:app.attrs.tooltip(`Add new record`),onclick:()=>app.modals.openRecordUpsert(i.activeCollection)},t.i({className:`ri-add-line txt-hint`}))),t.div({className:`modal-content`},t.div({className:`block txt-center`,hidden:()=>i.hasAtleastOneFile||!i.isLoading},t.span({className:`loader`})),t.div({className:`record-file-picker-list`},()=>{let e=[];for(let n of i.records){let r=c(n);for(let i of r)e.push(t.button({rid:n.id+`:`+i,className:()=>`list-item thumb ${u(n,i)?`success`:``}`,ariaDescription:app.attrs.tooltip(i,`bottom`),onclick:()=>l(n,i)},()=>{if(app.utils.hasImageExtension(i))return t.img({loading:`lazy`,src:app.pb.files.getURL(n,i,{thumb:`100x100`}),alt:i});let e=app.utils.getFileType(i);return t.i({className:app.utils.fileTypeIcons[e]||`ri-file-line`})}))}return e}),t.div({hidden:()=>!i.canLoadMore||!i.hasAtleastOneFile,className:`block txt-center`},t.button({className:()=>`btn secondary expanded-lg m-t-base ${i.isLoadingRecords?`loading`:``}`,disabled:()=>i.isLoadingRecords,onclick:()=>s()},t.span({className:`txt`},`Load more`))),t.div({className:`block txt-center txt-hint p-t-10 p-b-10`,hidden:()=>i.hasAtleastOneFile||i.isLoading},()=>app.utils.isEmpty(e.fileTypes)?t.p(null,`No records with selectable files found.`):t.p(null,`No "${e.fileTypes.join(`", "`)}" files found.`),t.button({type:`button`,className:`btn sm secondary`,textContent:`Clear search`,hidden:()=>!i.searchTerm?.length,onclick:()=>{i.searchTerm=``}}))),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,onclick:()=>app.modals.close(n)},t.span({className:`txt`},`Close`)),()=>{if(!i.selectedFile?.name||!app.utils.hasImageExtension(i.selectedFile.name))return;let e=[{value:``,label:`Original size`},{value:`100x100`,label:`100x100 thumb`}],n=i.activeCollectionFileFields.find(e=>i.selectedFile.record[e.name].includes(i.selectedFile.name)),r=app.utils.toArray(n.thumbs);for(let n of r)e.push({value:n,label:`${n} thumb`});return t.div({className:`record-file-picker-thumb-select`},app.components.select({required:!0,value:i.selectedFile.thumb||``,options:e,onchange:e=>{i.selectedFile.thumb=e?.[0].value}}))},t.button({type:`button`,className:`btn expanded`,disabled:()=>i.isLoading||!i.selectedFile?.name,onclick:()=>{let r=JSON.parse(JSON.stringify(i.selectedFile));if(e.onselect&&e.onselect(r)===!1)return!1;app.modals.close(n)}},t.span({className:`txt`},()=>e.btnText||ht.btnText)))),n}window.app=window.app||{},window.app.modals=window.app.modals||{};var yt=50,bt=100,xt=`listRelationPickerRecords`,St={collection:``,selectedIds:[],maxSelect:1,btnText:`Set selection`,onselect:function(e){}};window.app.modals.openRecordsPicker=function(e={}){e=Object.assign({},St,e);let n=Ct(e);document.body.appendChild(n),app.modals.open(n)};function Ct(e=St){let n,r=store({searchTerm:``,selected:[],preselected:[],isLoadingPreselected:!1,records:[],isLoadingRecords:!1,lastRecordsPage:1,lastRecordsTotal:0,get collection(){let n=e.collection;return typeof e.collection==`object`&&e.collection?.id&&(n=e.collection?.id),app.store.collections.find(e=>e.id==n||e.name==n)},get isLoading(){return r.isLoadingPreselected||r.isLoadingRecords},get canLoadMore(){return!r.isLoadingRecords&&r.lastRecordsTotal==yt}}),i=[watch(()=>[e.collection,e.selectedIds],()=>{o()}),watch(()=>[r.collection,r.searchTerm],()=>{s(!0)})];function a(){setTimeout(()=>app.modals.close(n),0)}async function o(){let n=app.utils.toArray(e.selectedIds),i=e.collection?.id||e.collection;if(!i||!n.length)return;r.isLoadingSelected=!0;let a=[],o=n.slice(),s=[];for(;o.length>0;){let e=[],n=o.splice(0,bt);for(let r of n)e.push(`id="${r}"`);s.push(app.pb.collection(i).getFullList({requestKey:null,filter:e.join(`||`)}))}try{await Promise.all(s).then(e=>{a=a.concat(...e)});let e=[];for(let r of n){let n=a.find(e=>e.id==r);n&&e.push(n)}r.searchTerm.trim()||(r.records=app.utils.filterDuplicatesByKey(e.concat(r.records))),r.selected=e,r.isLoadingSelected=!1}catch(e){e.isAbort||(app.checkApiError(e),r.isLoadingSelected=!1)}}async function s(e=!1){if(r.collection?.id){e&&(c(),r.searchTerm.trim()||(r.records=r.selected.slice())),r.isLoadingRecords=!0;try{let n=e?1:r.lastRecordsPage+1,i=app.utils.getAllCollectionIdentifiers(r.collection),a=app.utils.normalizeSearchFilter(r.searchTerm,i)||``,o=await app.pb.collection(r.collection.id).getList(n,yt,{requestKey:xt,filter:a,skipTotal:1,sort:r.collection.type==`view`?``:`-@rowid`});r.lastRecordsPage=o.page,r.lastRecordsTotal=o.items.length,r.records=app.utils.filterDuplicatesByKey(r.records.concat(o.items)),r.isLoadingRecords=!1}catch(e){e.isAbort||(r.isLoadingRecords=!1,app.checkApiError(e))}}}function c(){app.pb.cancelRequest(xt),r.isLoadingRecords=!1,r.records=[],r.lastTotalRecords=0,r.lastRecordsPage=1}function l(e){e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<=100&&r.canLoadMore&&s()}function u(n){let i=r.selected.findIndex(e=>e.id==n.id);if(i>=0)r.selected.splice(i,1);else{let i=e.maxSelect||1,a=r.selected.length-i;for(;a>=0;)r.selected.pop(),a--;r.selected.push(n)}}function d(e){return r.selected.findIndex(n=>n.id==e.id)>=0}let f={"record:save":e=>{if(e.detail.collectionId!=r.collection?.id)return;let n=r.selected?.findIndex(n=>n.id==e.detail.id);n>=0&&(r.selected[n]=e.detail),app.utils.pushOrReplaceObject(r.records,e.detail),s(!0)},"record:delete":e=>{e.detail.collectionId!=r.collection?.id&&e.detail.collectionName!=r.collection?.name||(d(e.detail)&&u(e.detail),app.utils.removeByKey(r.records,`id`,e.detail.id),s(!0))}};return n=t.div({className:`modal popup lg records-picker-modal`,onafterclose:e=>{e.remove()},onmount:e=>{for(let e in f)document.addEventListener(e,f[e])},onunmount:e=>{i.forEach(e=>e?.unwatch());for(let e in f)document.removeEventListener(e,f[e])}},t.header({className:`modal-header`},t.h6({className:`collection-name`},()=>r.collection.name),app.components.recordsSearchbar({disabled:()=>!r.collection?.id,collection:()=>r.collection,value:()=>r.searchTerm,onsubmit:e=>r.searchTerm=e}),t.button({type:`button`,className:`btn circle transparent`,ariaDescription:app.attrs.tooltip(`Add new record`),onclick:()=>{app.modals.openRecordUpsert(r.collection)}},t.i({className:`ri-add-line txt-hint`}))),t.div({className:`modal-content`,hidden:()=>r.isLoadingCollection},t.div({className:`list records-picker-list`,onscroll:l,onresize:l},()=>r.records.map(e=>t.div({tabIndex:0,className:`list-item handle`,onclick:()=>{u(e),document.activeElement?.blur()}},t.div({className:`content`},t.span({className:`state-icon`},t.i({className:()=>d(e)?`ri-checkbox-circle-fill txt-success`:`ri-checkbox-blank-circle-line txt-disabled`})),()=>app.components.recordSummary(e)),t.div({className:`actions autohide`},t.button({className:`btn sm secondary transparent circle`,ariaDescription:app.attrs.tooltip(`Edit`),onclick:n=>{n.stopPropagation(),app.modals.openRecordUpsert(r.collection,e)}},t.i({className:`ri-pencil-line`}))))),t.div({className:`list-item`,hidden:()=>!r.isLoading},t.div({className:`skeleton-loader`})),t.div({className:`list-item`,hidden:()=>r.records.length||r.isLoading},t.div({className:`content txt-hint`},t.span({className:`txt`},`No records found.`),t.button({type:`button`,className:`btn sm secondary`,textContent:`Clear search`,hidden:()=>!r.searchTerm.trim().length,onclick:()=>{r.searchTerm=``}})))),t.div({className:`block m-t-base`},t.p({className:`txt-bold`},()=>`Selected (${r.selected.length} of max ${e.maxSelect||1})`),t.span({className:`txt-hint`,hidden:()=>r.selected},`No selected records.`),app.components.sortable({className:`records-picker-selected-list`,data:()=>r.selected,dataItem:(e,n)=>t.div({rid:e,className:`label handle`},()=>app.components.recordSummary(e,[],!0),t.span({className:`link-hint`,title:`Remove`,role:`button`,onclick:()=>u(e)},t.i({className:`ri-close-line`,ariaHidden:!0}))),onchange:(e,n,i)=>{r.selected=e}}))),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,onclick:()=>a()},t.span({className:`txt`},`Close`)),()=>{if(!r.selectedFile?.name||!app.utils.hasImageExtension(r.selectedFile.name))return;let e=[{value:``,label:`Original size`},{value:`100x100`,label:`100x100 thumb`}],n=r.activeCollectionFileFields.find(e=>r.selectedFile.record[e.name].includes(r.selectedFile.name)),i=app.utils.toArray(n.thumbs);for(let n of i)e.push({value:n,label:`${n} thumb`});return t.div({className:`record-file-picker-thumb-select`},app.components.select({required:!0,value:r.selectedFile.thumb||``,options:e,onchange:e=>{r.selectedFile.thumb=e?.[0].value}}))},t.button({type:`button`,className:`btn expanded`,disabled:()=>r.isLoadingCollection,onclick:()=>{let n=JSON.parse(JSON.stringify(r.selected));if(e.onselect&&e.onselect(n)===!1)return!1;a()}},t.span({className:`txt`},e.btnText||St.btnText)))),n}window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openRecordPreview=function(e,n={onbeforeopen:null,onafteropen:null,onbeforeclose:null,onafterclose:null}){let r=I(e,n);r&&(document.body.appendChild(r),app.modals.open(r))};function wt(e){e.expand&&(e=Object.assign({},e),delete e.expand),app.utils.downloadJSON(e,e.collectionName+`_`+e.id+`.json`)}function Tt(e){e.expand&&(e=Object.assign({},e),delete e.expand),app.utils.copyToClipboard(JSON.stringify(e,null,2)),app.toasts.success(`Record copied to clipboard!`)}function I(e,n){let r,i=app.utils.randomString(),a=store({isLoading:!1,record:null,get collection(){return app.store.collections.find(n=>n.id==e.collectionId||n.name==e.collectionName)}});async function o(){if(!e?.id){app.toasts.error(`Failed to load record.`),setTimeout(()=>app.modals.close(r),0),console.warn(`[recordPreviewModal] missing required record id field:`,e);return}if(!e.collectionId&&!e.collectionName){app.toasts.error(`Failed to load record.`),setTimeout(()=>app.modals.close(r),0),console.warn(`[recordPreviewModal] missing required collectionId or collectionName field:`,e);return}a.isLoading=!0;try{let n=[],r=a.collection?.fields?.filter(e=>!e.hidden&&e.presentable&&e.type==`relation`)||[];for(let e of r)n.push(e.name);a.record=await app.pb.collection(e.collectionId||e.collectionName).getOne(e.id,{requestKey:`record_preview_`+e.id,expand:n.join(`,`)||void 0}),a.isLoading=!1}catch(e){e?.isAbort||(a.isLoading=!1,app.checkApiError(e),setTimeout(()=>app.modals.close(r),0))}}return r=t.div({pbEvent:`recordPreviewModal`,className:`modal record-preview-modal`,onbeforeopen:e=>(o(),n.onbeforeopen?.(e)),onafteropen:e=>{n.onafteropen?.(e)},onbeforeclose:e=>n.onbeforeclose?.(e),onafterclose:e=>{n.onafterclose?.(e),e?.remove()},onmount:e=>{},onunmount:e=>{}},t.header({className:`modal-header`},t.h6(null,t.strong(null,()=>e?.collectionName||a.collection?.name),` record preview`),t.button({className:`btn sm circle transparent m-l-auto`,"html-popovertarget":i+`preview-dropdown`},t.i({className:`ri-more-line`})),t.div({id:i+`preview-dropdown`,className:`dropdown`,popover:`auto`},e=>t.button({className:`dropdown-item`,onclick:()=>{Tt(a.record),e.hidePopover()}},t.i({className:`ri-braces-line`}),t.span({className:`txt`},`Copy JSON`)))),t.div({className:`modal-content`},()=>a.isLoading||!a.record?.id||!a.collection?.id?t.table(null,t.tbody(null,()=>{let e=a.collection?.fields?.filter(e=>e.type!=`password`).length||1,n=[];for(let r=0;r(a.collection?.fields?.filter(e=>e.type!=`password`)||[]).map(e=>t.tr(null,t.th({className:()=>`min-width p-r-0 col-field-name-${e.name}`},e.name),t.td({className:()=>`col-field-name-${e.name}`},()=>app.fieldTypes[e.type]?.view?app.fieldTypes[e.type].view({short:!1,get record(){return a.record},get field(){return e}}):app.utils.stringifyValue(a.record[e.name]))))))),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,onclick:()=>app.modals.close(r)},t.span({className:`txt`},`Close`)),t.button({type:`button`,className:`btn`,onclick:()=>wt(a.record)},t.i({className:`ri-download-line`}),t.span({className:`txt`},`Download JSON`)))),r}window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openRecordImpersontate=function(e){let n=R(e);document.body.appendChild(n),app.modals.open(n)};function R(e){let n=`impersonate_`+app.utils.randomString(),r=store({isLoading:!1,token:``,duration:0,get collection(){return app.store.collections.find(n=>n.id==e.collectionId||n.name==e.collectionName)}}),i=app.utils.getApiExampleURL();async function a(){if(!r.isLoading){r.isLoading=!0;try{r.token=(await app.pb.collection(r.collection.name).impersonate(e.id,r.duration)).authStore.token}catch(e){app.checkApiError(e)}r.isLoading=!1}}function o(){r.token=``,r.duration=0}return t.div({className:`modal popup record-impersonate-auth-modal`,onbeforeclose:()=>!r.isLoading,onafterclose:e=>{e?.remove()}},t.header({className:`modal-header`},t.h6(null,`Generate nonrenewable auth token for `,t.strong(null,()=>e.email||e.id))),t.div({className:`modal-content`},t.form({id:n+`_form`,hidden:()=>r.token,className:`block`,onsubmit:e=>{e.preventDefault(),a()}},t.div({className:`field`},t.label({htmlFor:n+`_duration`},`Token duration (in seconds)`),t.input({id:n+`_duration`,type:`number`,name:`duration`,min:0,step:1,placeholder:()=>`Default to the collection settings (${r.collection?.authToken?.duration||0}s)`,value:e=>r.duration||``,oninput:e=>r.duration=parseInt(e.target.value,10)}))),t.div({hidden:()=>!r.token,className:`alert success impersonate-success`},t.strong(null,()=>r.token),` `,app.components.copyButton(()=>r.token)),app.components.codeBlockTabs({hidden:()=>!r.token,className:`sdk-examples m-t-base`,tabs:[{title:`JS SDK`,language:`js`,value:`
- import PocketBase from 'pocketbase';
-
- const pb = new PocketBase('${i}');
-
- // load the token into the store
- const token = '...';
- pb.authStore.save(token, null);
- `,footnote:t.div({className:`txt-right`},t.a({href:`https://github.com/pocketbase/js-sdk`,target:`_blank`,rel:`noopener noreferrer`,textContent:`JS SDK docs`}))},{title:`Dart SDK`,language:`dart`,value:`
- import 'package:pocketbase/pocketbase.dart';
-
- final pb = PocketBase('${i}');
-
- // load the token into the store
- final token = '...';
- pb.authStore.save(token, null);
- `,footnote:t.div({className:`txt-right`},t.a({href:`https://github.com/pocketbase/dart-sdk`,target:`_blank`,rel:`noopener noreferrer`,textContent:`Dart SDK docs`}))}]})),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,disabled:()=>r.isLoading,onclick:()=>app.modals.close()},t.span({className:`txt`},`Close`)),t.button({hidden:()=>r.token,type:`submit`,"html-form":n+`_form`,className:()=>`btn expanded-lg ${r.isLoading?`loading`:``}`,disabled:()=>r.isLoading},t.span({className:`txt`},`Generate token`)),t.button({hidden:()=>!r.token,type:`button`,className:()=>`btn secondary expanded-lg ${r.isLoading?`loading`:``}`,onclick:()=>o()},t.span({className:`txt`},`Generate new one`))))}window.app=window.app||{},window.app.modals=window.app.modals||{},window.app.modals.openRecordUpsert=function(e,n=null,r={onbeforeopen:null,onafteropen:null,onbeforeclose:null,onafterclose:null,onsave:null,ondelete:null,onduplicate:null,ontokensreset:null,onpasswordresetsend:null,onverificationsend:null}){app.store.errors=null;let i=At(e,n,r);i&&(document.body.appendChild(i),app.modals.open(i))};var Et=[`expand`];function Dt(e,n=Et){if(n.find(n=>e[n]!==void 0)){e=Object.assign({},e);for(let r of n)delete e[r]}return e}function Ot(e){e=Dt(e),app.utils.copyToClipboard(JSON.stringify(e,null,2)),app.toasts.success(`Record copied to clipboard!`)}function kt(e){return e?JSON.stringify(e):``}var z=`main`,B=`authProviders`;function At(e,n,r){if(!e?.id){console.warn(`[recordUpsertModal] missing required collection`);return}let i,a=`record_upsert_`+app.utils.randomString(),o=app.utils.getLocalHistory(app.consts.COLUMNS_STORAGE_PREFIX+e.id,{}),s=store({isLoading:!0,isSaving:!1,isLocked:!1,originalRecord:{},record:{},initialDraft:null,activeTab:z,get isNew(){return app.utils.isEmpty(s.originalRecord?.id)},get isAuthCollection(){return e.type==`auth`},get isSuperusersCollection(){return e.name==`_superusers`},get showTabs(){return!s.isNew&&s.isAuthCollection&&!s.isSuperusersCollection},get excludedFields(){let e=[`id`];return s.isAuthCollection&&e.push(`email`,`emailVisibility`,`verified`,`password`,`tokenKey`),e},get initialDraftHash(){return kt(s.initialDraft)},get recordHash(){return kt(s.record)},get originalRecordHash(){return kt(s.originalRecord)},get hasChanges(){return s.originalRecordHash!=s.recordHash},get isFormDisabled(){return s.isLoading||s.isSaving||!s.isNew&&!s.hasChanges}});function c(){return`draft_`+e.id+`_`+(s.originalRecord?.id||``)}function l(){return window.localStorage.getItem(c())||``}function u(){try{let e=l();if(e)return JSON.parse(e)}catch(e){console.warn(`getDraft failure:`,e),f()}return null}function d(e){try{window.localStorage.setItem(c(),e)}catch(e){console.warn(`saveDraft failure:`,e),f()}}function f(){window.localStorage.removeItem(c()),s.initialDraft=null}function p(){if(!s.initialDraft)return;app.store.errors&&(app.store.errors=null);let e=JSON.parse(JSON.stringify(s.initialDraft));f(),s.record=e}async function m(n){s.isLoading=!0;let r=typeof n==`string`?n:n?.id;if(!r){let e=app.utils.isObject(n)?JSON.parse(JSON.stringify(n)):{};s.originalRecord=app.utils.emptyClone(e,[`collectionId`,`collectionName`]),s.initialDraft=u(),s.record=e,s.isLoading=!1,s.isLocked=!1;return}s.isLocked=!!app.store.settings?.meta?.hideControls;try{s.originalRecord={id:r};let n=await app.pb.collection(e.name).getOne(r,{requestKey:`upsert_load_`+r});s.originalRecord=n,s.initialDraft=u(),s.record=JSON.parse(JSON.stringify(n)),s.isLoading=!1}catch(e){e?.isAbort||(app.checkApiError(e),s.isLoading=!1,setTimeout(()=>app.modals.close(i,!0),0))}}async function h(){let n={};for(let e in s.record){if(e==`expand`||e.startsWith(`@@`))continue;let r=s.record[e]?.__raw||s.record[e];r===void 0&&(r=null),n[e]=r}for(let r of e.fields){let i=app.fieldTypes[r.type]?.onrecordsave;i&&await i({collection:e,originalRecord:s.originalRecord,record:s.record,field:r,payload:n})}return n}async function g(n=!0){if(!(s.isLocked||s.isSaving||!s.isNew&&!s.hasChanges)){s.isSaving=!0;try{let a=await h(),o=app.utils.isEmpty(s.originalRecord?.id),c;c=o?await app.pb.collection(e.name).create(a):await app.pb.collection(e.name).update(s.originalRecord.id,a),f(),o?(s.originalRecord=structuredClone(c),s.record=structuredClone(c)):(Object.assign(s.originalRecord,structuredClone(c)),Object.assign(s.record,structuredClone(c))),r.onsave?.(structuredClone(c),o),app.store.errors=null;let l;l=o?`Successfully created ${e.name} "${c.id}".`:`Successfully updated ${e.name} "${c.id}".`,app.toasts.success(l,{key:`recordSave`}),s.isSaving=!1,n&&app.modals.close(i,!0)}catch(e){e?.isAbort||(s.isSaving=!1,app.checkApiError(e,!1),app.toasts.error(e.message||`Failed to save record.`,{key:`recordSave`}))}}}function _(){f(),s.record=JSON.parse(JSON.stringify(s.originalRecord))}async function v(){let n=s.originalRecord?JSON.parse(JSON.stringify(s.originalRecord)):{};n.id=``;for(let r of e.fields){let i=app.fieldTypes[r.type]?.onrecordduplicate;i&&await i({collection:e,field:r,originalRecord:s.originalRecord,clone:n})}f(),r.onduplicate?.(n),m(n)}let ee=[];function te(){return[t.div({className:`modal-content`},t.form({id:a+`form`,className:`grid`,inert:()=>s.isLoading||s.isSaving,onsubmit:e=>{e.preventDefault()},onmount:e=>{e._quickSaveHandler=e=>{(e.ctrlKey||e.metaKey)&&e.code==`KeyS`&&(e.preventDefault(),g(!1))},window.addEventListener(`keydown`,e._quickSaveHandler)},onunmount:e=>{e?._quickSaveHandler&&window.removeEventListener(`keydown`,e?._quickSaveHandler)}},()=>{if(!(s.isLoading||s.hasChanges||app.utils.isEmpty(s.initialDraft)||s.initialDraftHash==s.recordHash))return t.div({className:`col-12`},t.div({className:`alert warning flex gap-sm`},t.div({className:`content`},`The record has previous unsaved changes.`),t.button({type:`button`,className:`btn sm outline`,onclick:()=>p()},t.span({className:`txt`},`Restore draft`)),t.button({type:`button`,className:`btn sm secondary transparent circle m-l-auto`,ariaDescription:app.attrs.tooltip(`Discard draft`,`left`),onclick:()=>{f()}},t.i({className:`ri-close-line`}))))},()=>{let n=e.fields?.find(e=>e.primaryKey);return t.div({className:`col-12`},app.fieldTypes[n.type].input({get collection(){return s.collection},get originalRecord(){return s.originalRecord},get record(){return s.record},get field(){return n}}))},()=>{if(!s.isAuthCollection)return;let n=[t.div({className:`col-12`},H(e,s)),t.div({className:`col-12`},It(e,s))];return s.isSuperusersCollection||n.push(t.div({className:`col-12`},Ft(e,s))),n},()=>{let n=[],r=s.excludedFields;for(let i of e.fields)!app.fieldTypes[i.type]?.input||r.includes(i.name)||n.push(t.div({className:()=>`col-12 ${i.hidden&&!o[i.id]?`hidden-field-blur`:``}`},()=>app.fieldTypes[i.type].input({get collection(){return s.collection},get originalRecord(){return s.originalRecord},get record(){return s.record},get field(){return i}})));return n.length&&s.isAuthCollection&&n.unshift(t.div({className:`col-12`},t.hr({className:`m-0`}))),n})),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,disabled:()=>s.isSaving,onclick:()=>app.modals.close(i)},t.span({className:`txt`},`Close`)),t.button({hidden:()=>!s.isLocked,type:`button`,className:`btn outline`,disabled:()=>s.isFormDisabled,onclick:()=>s.isLocked=!1},t.i({className:`ri-lock-unlock-line`}),t.span({className:`txt`},`Unlock to save`)),t.div({hidden:()=>s.isLocked,className:`btns`},t.button({type:`button`,className:()=>`btn expanded-lg ${s.isLoading||s.isSaving?`loading`:``}`,disabled:()=>s.isLocked||s.isFormDisabled,onclick:()=>g()},t.span({className:`txt`},()=>s.isNew?`Create`:`Save changes`)),t.button({type:`button`,className:()=>`btn p-5`,disabled:()=>s.isLocked||s.isFormDisabled,"html-popovertarget":a+`save_options`},t.i({className:`ri-arrow-up-s-line`})),t.div({id:a+`save_options`,className:`dropdown nowrap`,popover:`auto`},t.button({type:`button`,className:`dropdown-item`,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),g(!1)}},t.span({className:`txt`},`Save and continue`),t.small({className:`txt-hint`},`(Ctrl+S)`)),t.hr(),t.button({type:`button`,className:`dropdown-item`,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),_()}},t.span({className:`txt`},`Reset form`)))))]}return i=t.div({pbEvent:`recordUpsertModal`,className:`modal record-upsert-modal`,onbeforeopen:()=>(m(n),ee.push(watch(()=>s.recordHash,(e,n)=>{!n||!e||e==`{}`||n==`{}`||d(e)})),r.onbeforeopen?.(el)),onafteropen:e=>{r.onafteropen?.(e)},onbeforeclose:(e,n)=>(!s.hasChanges&&s.initialDraftHash!=l()&&f(),n?r.onbeforeclose?.(e):s.isLoading||s.isSaving?!1:s.hasChanges?new Promise(n=>{app.modals.confirm(`You have unsaved changes. Do you really want to discard them?`,()=>(f(),n(r.onbeforeclose?.(e))),()=>n(!1),{yesButton:`Yes, discard`})}):r.onbeforeclose?.(e)),onafterclose:e=>{r.onafterclose?.(e),ee.forEach(e=>e?.unwatch()),e?.remove()},onunmount:()=>{ee.forEach(e=>e?.unwatch())}},t.header({className:()=>`modal-header ${s.showTabs?`isolated`:``}`},t.div({className:`grid`},t.div({className:`col-12 flex`},t.h6({className:`modal-title`},()=>s.isLoading?t.span({className:`loader sm`}):[t.span(null,()=>s.isNew?`Create `:`Edit `),t.strong({className:`txt-ellipsis collection-name`,style:`max-width: 220px`},()=>e.name),t.span(null,` record`)]),t.div({className:`flex-fill`}),()=>{if(!app.utils.isEmpty(s.originalRecord?.id))return[t.button({type:`button`,className:`btn sm circle transparent`,disabled:()=>s.isLoading,"html-popovertarget":a+`modal-header-dropdown`},t.i({className:`ri-more-line`})),t.div({id:a+`modal-header-dropdown`,className:`dropdown nowrap modal-header-dropdown`,popover:`auto`},()=>{if(!s.isAuthCollection)return;let n=[];return!s.originalRecord.verified&&s.originalRecord.email&&!s.isSuperusersCollection&&n.push(Mt(e,s,r)),s.originalRecord.email&&n.push(V(e,s,r)),n.push(Nt(e,s,r)),n.push(jt(e,s,r)),n.push(t.hr()),n},t.button({type:`button`,className:`dropdown-item`,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),Ot(s.originalRecord)}},t.i({className:`ri-braces-line`}),t.span({className:`txt`},`Copy JSON`)),()=>{if(e.type!=`view`)return[t.button({type:`button`,className:`dropdown-item`,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),s.hasChanges?app.modals.confirm(`You have unsaved changes. Do you really want to discard them?`,v,null,{yesButton:`Yes, discard`}):v()}},t.i({className:`ri-file-copy-line`}),t.span({className:`txt`},`Duplicate`)),t.hr(),Pt(e,s,r)]})]}),()=>{if(s.showTabs)return t.div({className:`col-12`},t.nav({className:`tabs-header equal-width`},t.button({type:`button`,disabled:()=>s.isLoading||s.isSaving,className:()=>`tab-item ${s.activeTab==z?`active`:s.hasChanges?`txt-warning`:``}`,ariaDescription:app.attrs.tooltip(()=>s.hasChanges&&s.activeTab!=z?`Has unsaved changes`:``),onclick:()=>s.activeTab=z},t.span({className:`txt`},()=>s.isAuthCollection?`Account`:`Main`)),t.button({type:`button`,disabled:()=>s.isLoading||s.isSaving,className:()=>`tab-item ${s.activeTab==B?`active`:``}`,onclick:()=>s.activeTab=B},t.span({className:`txt`},`Auth providers`))))})),()=>!s.isNew&&!s.isSuperusersCollection&&s.activeTab==B?Lt(e,s):te()),i}function jt(e,n,r){let i=store({isSubmitting:!1});async function a(){if(!(i.isSubmitting||!n.record.id)){i.isSubmitting=!0;try{let i={},a=e.fields.find(e=>e.name==`tokenKey`);a.autogeneratePattern?i[`tokenKey:autogenerate`]=``:i.tokenKey=app.utils.randomSecret(a.max<<0||Math.max(2*a.min<<0,50));let o=await app.pb.collection(e.name).update(n.record.id,i);r.ontokensreset?.(o);let s=e.fields?.filter(e=>e.type==`autodate`)||[];for(let e of s){let r=o[e.name];n.initialDraft&&(n.initialDraft[e.name]=r),n.originalRecord[e.name]=r,n.record[e.name]=r}app.toasts.success(`Successfully reset all tokens for the selected record.`)}catch(e){app.checkApiError(e)}i.isSubmitting=!1}}return t.button({type:`button`,className:`dropdown-item`,disabled:()=>i.isSubmitting,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),app.modals.confirm(`Do you really want to reset all issued tokens for the selected auth record?`,a,null,{yesButton:`Reset all tokens`})}},t.i({className:`ri-reset-left-line`}),t.span({className:`txt`},`Reset issued tokens`))}function V(e,n,r){let i=store({isSubmitting:!1});async function a(){if(!(i.isSubmitting||!n.originalRecord?.email)){i.isSubmitting=!0;try{await app.pb.collection(e.name).requestPasswordReset(n.originalRecord.email),r.onpasswordresetsend?.(JSON.parse(JSON.stringify(n.originalRecord))),app.toasts.success(`Successfully sent password reset email to ${n.originalRecord.email}.`)}catch(e){app.checkApiError(e)}i.isSubmitting=!1}}return t.button({type:`button`,className:`dropdown-item`,disabled:()=>i.isSubmitting,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),app.modals.confirm(`Do you really want to send password reset email to ${n.originalRecord?.email}?`,a,null,{yesButton:`Send`})}},t.i({className:`ri-mail-lock-line`}),t.span({className:`txt`},`Send password reset email`))}function Mt(e,n,r){let i=store({isSubmitting:!1});async function a(){if(!(i.isSubmitting||!n.originalRecord?.email||n.originalRecord?.verified)){i.isSubmitting=!0;try{await app.pb.collection(e.name).requestVerification(n.originalRecord.email),r.onverificationsend?.(JSON.parse(JSON.stringify(n.originalRecord))),app.toasts.success(`Successfully sent verification email to ${n.originalRecord.email}.`)}catch(e){app.checkApiError(e)}i.isSubmitting=!1}}return t.button({type:`button`,className:`dropdown-item`,disabled:()=>i.isSubmitting,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),app.modals.confirm(`Do you really want to send verification email to ${n.originalRecord?.email}?`,a,null,{yesButton:`Send`})}},t.i({className:`ri-mail-check-line`}),t.span({className:`txt`},`Send verification email`))}function Nt(e,n,r){return t.button({type:`button`,className:`dropdown-item`,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),app.modals.openRecordImpersontate(n.originalRecord)}},t.i({className:`ri-id-card-line`}),t.span({className:`txt`},`Impersonate`))}function Pt(e,n,r){let i=store({isSubmitting:!1});async function a(){if(!(i.isSubmitting||!n.originalRecord?.id)){i.isSubmitting=!0;try{await app.pb.collection(e.name).delete(n.originalRecord.id),r.ondelete?.(JSON.parse(JSON.stringify(n.originalRecord))),app.toasts.success(`Successfully deleted record "${n.originalRecord.id}".`)}catch(e){app.checkApiError(e)}i.isSubmitting=!1}}return t.button({type:`button`,className:`dropdown-item txt-danger`,disabled:()=>i.isSubmitting,onclick:e=>{e.target.closest(`.dropdown`).hidePopover(),app.modals.confirm(`Do you really want to delete the selected record?`,async()=>{await a(),app.modals.close(e.target.closest(`.modal`))},null,{yesButton:`Delete record`})}},t.i({className:`ri-delete-bin-7-line`}),t.span({className:`txt`},`Delete`))}function H(e,n){let r=e.fields.find(e=>e.name==`email`);if(!r){console.warn(`missing expected email field`);return}let i=`auth_email_`+app.utils.randomString();return t.div({className:`record-field-input field-type-email field-type-auth-email`},t.div({className:`fields`},t.div({className:`field`},t.label({htmlFor:i},t.i({className:app.fieldTypes.email.icon}),t.span({className:`txt`},()=>r.name)),t.input({type:`email`,id:i,spellcheck:!1,name:()=>r.name,required:()=>r.required,value:()=>n.record[r.name]||``,oninput:e=>n.record[r.name]=e.target.value})),t.div({className:`field addon`},t.button({type:`button`,className:()=>`btn sm transparent ${n.record.emailVisibility?`success`:`secondary`}`,ariaDescription:app.attrs.tooltip(`Make email public or private`,`top-right`),onclick:()=>{n.record.emailVisibility=!n.record.emailVisibility}},t.span({className:`txt`},`Public: `,()=>n.record.emailVisibility?`On`:`Off`)))),()=>{if(r.help)return t.div({className:`field-help`},r.help)})}function Ft(e,n){let r=e.fields.find(e=>e.name==`verified`);if(!r){console.warn(`missing expected verified field`);return}let i=app.fieldTypes.bool.input({get field(){return r},get collection(){return e},get record(){return n.record},get originalRecord(){return n.originalRecord}});return i.addEventListener(`change`,e=>{n.originalRecord.verified!=n.record.verified&&app.modals.confirm(`Do you really want to manually change the verified account state from "${!n.record.verified}" to "${n.record.verified}"?`,null,()=>{n.record.verified=!n.record.verified},{yesButton:`Yes, `+(n.record.verified?`verify`:`unverify`)})}),i}function It(e,n){let r=`auth_pass_`+app.utils.randomString(),i=store({changePassword:!1,get isNew(){return app.utils.isEmpty(n.originalRecord?.id)}});function a(){delete n.record.password,delete n.record.passwordConfirm,app.store.errors&&(delete app.store.errors.password,delete app.store.errors.passwordConfirm)}return t.div({className:`record-field-input field-type-password field-type-auth-password`,onmount:e=>{e._watchers?.forEach(e=>e?.unwatch()),e._watchers=[watch(()=>{i.changePassword||(app.store.errors?.password||app.store.errors?.passwordConfirm||n.record.password||n.record.passwordConfirm)&&(i.changePassword=!0)})]},onunmount:e=>{e._watchers?.forEach(e=>e?.unwatch())}},t.div({hidden:()=>i.isNew,className:`field`},t.input({type:`checkbox`,id:r+`_change`,className:`switch`,checked:()=>i.changePassword,onchange:e=>{i.changePassword=e.target.checked,e.target.checked||a()}}),t.label({htmlFor:r+`_change`},t.span({className:`txt`},`change password`))),app.components.slide(()=>i.isNew||i.changePassword,t.div({className:()=>`fields ${i.isNew?``:`m-t-sm`}`},t.div({className:`field`},t.label({htmlFor:r+`_password`},t.i({className:`ri-lock-line`}),t.span({className:`txt`},`Password`)),t.input({type:`password`,id:r+`_password`,spellcheck:!1,name:`password`,autocomplete:`new-password`,required:()=>i.isNew||i.changePassword,value:()=>n.record.password||``,oninput:e=>{e.target.value?n.record.password=e.target.value:delete n.record.password}})),t.div({className:`delimiter`}),t.div({className:`field`},t.label({htmlFor:r+`_password_confirm`},t.i({className:`ri-lock-line`}),t.span({className:`txt`},`Confirm`)),t.input({type:`password`,id:r+`_password_confirm`,spellcheck:!1,name:`passwordConfirm`,autocomplete:`new-password`,required:()=>i.isNew||i.changePassword,value:()=>n.record.passwordConfirm||``,oninput:e=>{e.target.value?n.record.passwordConfirm=e.target.value:delete n.record.passwordConfirm}}))),()=>{let n=e.fields?.find(e=>e.name==`password`)?.help||``;if(n)return t.div({className:`field-help`},n)},t.div({className:`field-help`},t.span({className:`txt link-hint`,role:`button`,onclick:e=>{e.preventDefault();let r=app.utils.randomSecret(20);n.record.password=r,n.record.passwordConfirm=r,app.utils.copyToClipboard(r),app.toasts.info(`Generated and copied random password to clipboard.`)}},`Generate and set random password`))))}function Lt(e,n){let r=store({isLoading:!1,externalAuths:[]});async function i(){r.isLoading=!0;try{r.externalAuths=await app.pb.collection(`_externalAuths`).getFullList({filter:app.pb.filter(`collectionRef={:collectionId} && recordRef={:recordId}`,{collectionId:n.record.collectionId,recordId:n.record.id})}),r.isLoading=!1}catch(e){e?.isAbort&&(app.pb.checkApiError(e),r.isLoading=!1)}}function a(e){let n=(app.store.oauth2Providers?.find(n=>n.name==e.provider)||{}).displayName||e.provider;app.modals.confirm(`Do you really want to unlink the ${n} provider?`,()=>app.pb.collection(`_externalAuths`).delete(e.id).then(()=>{app.toasts.success(`Successfully unlinked ${n}.`),i()}).catch(e=>{app.checkApiError(e)}),null,{yesButton:`Unlink`})}return[t.div({className:`modal-content`},t.div({className:`list`,onmount:()=>{i()}},()=>r.isLoading?t.div({className:`list-item`},t.div({className:`skeleton-loader`})):r.externalAuths.length?r.externalAuths.map(e=>{let n=app.store.oauth2Providers?.find(n=>n.name==e.provider)||{};return t.div({className:`list-item`},t.figure({className:`provider-logo`},()=>n.logo?t.img({src:`data:image/svg+xml;base64,`+btoa(n.logo),alt:e.provider+` logo`}):t.i({className:app.utils.fallbackProviderIcon})),t.div({className:`content`},t.span({className:`txt-nowrap`},()=>n.displayName||e.provider),t.small({className:`txt-hint`},`ID: `,()=>e.providerId)),t.div({className:`actions`},t.button({type:`button`,className:`btn sm secondary transparent circle`,ariaDescription:app.attrs.tooltip(`Unlink`,`left`),onclick:()=>a(e)},t.i({className:`ri-close-line`}))))}):t.div({className:`list-item`},t.div({className:`block txt-hint txt-center`},`No external auth providers found.`)))),t.footer({className:`modal-footer`},t.button({type:`button`,className:`btn transparent m-r-auto`,onclick:()=>app.modals.close()},t.span({className:`txt`},`Close`)))]}var Rt=10,zt=500,Bt=`pb:lazyExpandSummaryRels`,Vt={},Ht={};function Ut(e){let n=new Set;return t.div({className:`record-field-view field-type-relation`,onunmount:()=>{for(let e of n)document.removeEventListener(Bt,e);n.clear(),n=null}},()=>{let r=app.utils.toArray(e.record[e.field.name]);if(!r.length)return t.span({className:`missing-value`});let i=e.meta||{},a=app.utils.toArray(i.parents);if(a.includes(e.record.id))return t.span({className:`marker recursive`},`(recursive)`);let o=JSON.parse(JSON.stringify(i));o.parents=a.concat(e.record.id);let s=[],c=e.short?3:1e3,l=app.utils.toArray(e.record.expand?.[e.field.name]);for(let i=0;i=c){s.push(t.span({className:`marker more`},`(`,r.length-c,` more)`));break}let a=r[i],u=l.find(e=>e?.id==a);if(u)s.push(app.components.recordSummary(u,o));else if(s.push(t.span({className:`label relation-id animate-delayed-fadeIn`},app.components.copyButton(a),a)),o.parents.length