@phila/phila-ui-map-core 1.1.0-beta.11 → 1.1.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CyclomediaCameraIcon-FJB1K3MY.cjs → CyclomediaCameraIcon-BOdIgm0a.cjs} +1 -1
- package/dist/{CyclomediaCameraIcon-DeARttTu.js → CyclomediaCameraIcon-D4s14gEL.js} +1 -1
- package/dist/CyclomediaRecordingsLayer-C3Ay4rI8.js +4 -0
- package/dist/{CyclomediaRecordingsLayer-BDkVQKdr.cjs → CyclomediaRecordingsLayer-DMwHSKeD.cjs} +1 -1
- package/dist/{CyclomediaViewcone-DWMV1svY.cjs → CyclomediaViewcone-C9mMRyon.cjs} +1 -1
- package/dist/{CyclomediaViewcone-Cy-MLEFA.js → CyclomediaViewcone-D9g_eSUL.js} +1 -1
- package/dist/{PictometryPanel-DGqKNPHu.cjs → PictometryPanel-B_IFS6uB.cjs} +2 -2
- package/dist/{PictometryPanel-Dlld-KQQ.js → PictometryPanel-DMW-bCJy.js} +26 -16
- package/dist/assets/phila-ui-map-core.css +1 -1
- package/dist/components.d.ts +8 -0
- package/dist/components.js +1 -1
- package/dist/components.mjs +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/CyclomediaRecordingsLayer-l9-8W-5Q.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("vue"),C=require("./PictometryPanel-DGqKNPHu.cjs"),r="data:image/png;base64,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",m=A.defineComponent({__name:"CyclomediaCameraIcon",props:{position:{},yaw:{default:0},iconSize:{default:.09}},setup(t){const o=t,e=A.inject("map"),a=A.inject("isLoaded"),n=A.ref(!1);A.onMounted(async()=>{if(!(!e||!e.value)&&a){if(a.value||await new Promise(i=>{const g=A.watch(a,w=>{w&&(g(),i())})}),e.value.hasImage("cyclomedia-camera")){n.value=!0;return}try{const i=await e.value.loadImage(r);e.value.addImage("cyclomedia-camera",i.data),n.value=!0}catch{}}});const B=A.computed(()=>o.position?{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:o.position},properties:{}}}:{type:"geojson",data:{type:"FeatureCollection",features:[]}}),c=A.computed(()=>({"icon-image":"cyclomedia-camera","icon-size":o.iconSize,"icon-anchor":"center","icon-rotate":o.yaw,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0}));return(i,g)=>t.position&&n.value?(A.openBlock(),A.createBlock(C._sfc_main$5,{key:0,id:"cyclomedia-camera-icon",source:B.value,layout:c.value},null,8,["source","layout"])):A.createCommentVNode("",!0)}});exports.default=m;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("vue"),C=require("./PictometryPanel-B_IFS6uB.cjs"),r="data:image/png;base64,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",m=A.defineComponent({__name:"CyclomediaCameraIcon",props:{position:{},yaw:{default:0},iconSize:{default:.09}},setup(t){const o=t,e=A.inject("map"),a=A.inject("isLoaded"),n=A.ref(!1);A.onMounted(async()=>{if(!(!e||!e.value)&&a){if(a.value||await new Promise(i=>{const g=A.watch(a,w=>{w&&(g(),i())})}),e.value.hasImage("cyclomedia-camera")){n.value=!0;return}try{const i=await e.value.loadImage(r);e.value.addImage("cyclomedia-camera",i.data),n.value=!0}catch{}}});const B=A.computed(()=>o.position?{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:o.position},properties:{}}}:{type:"geojson",data:{type:"FeatureCollection",features:[]}}),c=A.computed(()=>({"icon-image":"cyclomedia-camera","icon-size":o.iconSize,"icon-anchor":"center","icon-rotate":o.yaw,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0}));return(i,g)=>t.position&&n.value?(A.openBlock(),A.createBlock(C._sfc_main$5,{key:0,id:"cyclomedia-camera-icon",source:B.value,layout:c.value},null,8,["source","layout"])):A.createCommentVNode("",!0)}});exports.default=m;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as c, inject as g, ref as r, onMounted as E, watch as s, computed as B, createBlock as p, createCommentVNode as l, openBlock as S } from "vue";
|
|
2
|
-
import { g as I } from "./PictometryPanel-
|
|
2
|
+
import { g as I } from "./PictometryPanel-DMW-bCJy.js";
|
|
3
3
|
const Y = "data:image/png;base64,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", U = /* @__PURE__ */ c({
|
|
4
4
|
__name: "CyclomediaCameraIcon",
|
|
5
5
|
props: {
|
package/dist/{CyclomediaRecordingsLayer-BDkVQKdr.cjs → CyclomediaRecordingsLayer-DMwHSKeD.cjs}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./PictometryPanel-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./PictometryPanel-B_IFS6uB.cjs");exports.default=e._sfc_main$15;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),I=require("./PictometryPanel-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),I=require("./PictometryPanel-B_IFS6uB.cjs"),g={size:100,fillColor:"rgba(0, 102, 255, 0.25)",strokeColor:"rgba(0, 102, 255, 0.6)",strokeWidth:1};function x(s){const{hFov:o,size:c=g.size,fillColor:l=g.fillColor,strokeColor:u=g.strokeColor,strokeWidth:a=g.strokeWidth}=s,d=Math.min(Math.max(o,10),170),m=30,h=120,n=1-(Math.min(Math.max(d,m),h)-m)/(h-m)*.6,r=(c-a*2)*n,b=d/2*Math.PI/180,p=r*Math.tan(b),v=Math.ceil(p*2+a*2),f=Math.ceil(r+a*2),y=document.createElement("canvas");y.width=v,y.height=f;const e=y.getContext("2d");if(!e)throw new Error("Failed to get canvas 2d context");e.clearRect(0,0,v,f);const w=v/2,k=f-a,F=a,M=w-p,H=w+p;return e.beginPath(),e.moveTo(w,k),e.lineTo(M,F),e.lineTo(H,F),e.closePath(),e.fillStyle=l,e.fill(),e.strokeStyle=u,e.lineWidth=a,e.stroke(),e.getImageData(0,0,v,f)}function C(s){return`cyclomedia-viewcone-${Math.round(s)}`}const z=t.defineComponent({__name:"CyclomediaViewcone",props:{position:{},yaw:{default:0},hFov:{default:80},iconSize:{default:.5}},setup(s){const o=s,c=t.inject("map"),l=t.inject("isLoaded"),u=t.ref(!1);let a=null;async function d(i){if(!c?.value)return;const n=C(i);if(c.value.hasImage(n)){a=n,u.value=!0;return}try{const r=x({hFov:i,size:100});c.value.addImage(n,r),a=n,u.value=!0}catch{}}t.onMounted(async()=>{!c||!c.value||l&&(l.value||await new Promise(i=>{const n=t.watch(l,r=>{r&&(n(),i())})}),await d(o.hFov))}),t.watch(()=>o.hFov,async i=>{!c?.value||!l?.value||await d(i)});const m=t.computed(()=>o.position?{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:o.position},properties:{}}}:{type:"geojson",data:{type:"FeatureCollection",features:[]}}),h=t.computed(()=>({"icon-image":a||C(o.hFov),"icon-size":o.iconSize,"icon-anchor":"bottom","icon-rotate":o.yaw,"icon-rotation-alignment":"map","icon-allow-overlap":!0,"icon-ignore-placement":!0}));return(i,n)=>s.position&&u.value?(t.openBlock(),t.createBlock(I._sfc_main$5,{key:0,id:"cyclomedia-viewcone",source:m.value,layout:h.value,"before-id":"cyclomedia-camera-icon"},null,8,["source","layout"])):t.createCommentVNode("",!0)}});exports.default=z;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as z, inject as F, ref as _, onMounted as P, watch as C, computed as k, createBlock as S, createCommentVNode as W, openBlock as N } from "vue";
|
|
2
|
-
import { g as V } from "./PictometryPanel-
|
|
2
|
+
import { g as V } from "./PictometryPanel-DMW-bCJy.js";
|
|
3
3
|
const f = {
|
|
4
4
|
size: 100,
|
|
5
5
|
fillColor: "rgba(0, 102, 255, 0.25)",
|
|
@@ -558,7 +558,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
558
558
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ownKeys(At,Y){var O=Object.keys(At);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(At);Y&&(Z=Z.filter(function(de){return Object.getOwnPropertyDescriptor(At,de).enumerable})),O.push.apply(O,Z)}return O}function _objectSpread2(At){for(var Y=1;Y<arguments.length;Y++){var O=arguments[Y]!=null?arguments[Y]:{};Y%2?ownKeys(Object(O),!0).forEach(function(Z){_defineProperty(At,Z,O[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(At,Object.getOwnPropertyDescriptors(O)):ownKeys(Object(O)).forEach(function(Z){Object.defineProperty(At,Z,Object.getOwnPropertyDescriptor(O,Z))})}return At}function _objectWithoutProperties(At,Y){if(At==null)return{};var O,Z,de=_objectWithoutPropertiesLoose(At,Y);if(Object.getOwnPropertySymbols){var ue=Object.getOwnPropertySymbols(At);for(Z=0;Z<ue.length;Z++)O=ue[Z],Y.indexOf(O)===-1&&{}.propertyIsEnumerable.call(At,O)&&(de[O]=At[O])}return de}function _objectWithoutPropertiesLoose(At,Y){if(At==null)return{};var O={};for(var Z in At)if({}.hasOwnProperty.call(At,Z)){if(Y.indexOf(Z)!==-1)continue;O[Z]=At[Z]}return O}function _toConsumableArray(At){return _arrayWithoutHoles(At)||_iterableToArray(At)||_unsupportedIterableToArray(At)||_nonIterableSpread()}function _toPrimitive(At,Y){if(typeof At!="object"||!At)return At;var O=At[Symbol.toPrimitive];if(O!==void 0){var Z=O.call(At,Y);if(typeof Z!="object")return Z;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Y==="string"?String:Number)(At)}function _toPropertyKey(At){var Y=_toPrimitive(At,"string");return typeof Y=="symbol"?Y:Y+""}function _typeof(At){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Y){return typeof Y}:function(Y){return Y&&typeof Symbol=="function"&&Y.constructor===Symbol&&Y!==Symbol.prototype?"symbol":typeof Y},_typeof(At)}function _unsupportedIterableToArray(At,Y){if(At){if(typeof At=="string")return _arrayLikeToArray(At,Y);var O={}.toString.call(At).slice(8,-1);return O==="Object"&&At.constructor&&(O=At.constructor.name),O==="Map"||O==="Set"?Array.from(At):O==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(O)?_arrayLikeToArray(At,Y):void 0}}function objectWithKey(At,Y){return Array.isArray(Y)&&Y.length>0||!Array.isArray(Y)&&Y?_defineProperty({},At,Y):{}}function classList(At){var Y,O=(Y={"fa-spin":At.spin,"fa-pulse":At.pulse,"fa-fw":At.fixedWidth,"fa-border":At.border,"fa-li":At.listItem,"fa-inverse":At.inverse,"fa-flip":At.flip===!0,"fa-flip-horizontal":At.flip==="horizontal"||At.flip==="both","fa-flip-vertical":At.flip==="vertical"||At.flip==="both"},_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(Y,"fa-".concat(At.size),At.size!==null),"fa-rotate-".concat(At.rotation),At.rotation!==null),"fa-rotate-by",At.rotateBy),"fa-pull-".concat(At.pull),At.pull!==null),"fa-swap-opacity",At.swapOpacity),"fa-bounce",At.bounce),"fa-shake",At.shake),"fa-beat",At.beat),"fa-fade",At.fade),"fa-beat-fade",At.beatFade),_defineProperty(_defineProperty(_defineProperty(_defineProperty(Y,"fa-flash",At.flash),"fa-spin-pulse",At.spinPulse),"fa-spin-reverse",At.spinReverse),"fa-width-auto",At.widthAuto));return Object.keys(O).map(function(Z){return O[Z]?Z:null}).filter(function(Z){return Z})}var commonjsGlobal$1=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},humps$1={exports:{}};(function(At){(function(Y){var O=function(Ve,bt,xt){if(!Oe(bt)||fe(bt)||ge(bt)||Me(bt)||me(bt))return bt;var St,Tt=0,Mt=0;if(pe(bt))for(St=[],Mt=bt.length;Tt<Mt;Tt++)St.push(O(Ve,bt[Tt],xt));else{St={};for(var jt in bt)Object.prototype.hasOwnProperty.call(bt,jt)&&(St[Ve(jt,xt)]=O(Ve,bt[jt],xt))}return St},Z=function(Ve,bt){bt=bt||{};var xt=bt.separator||"_",St=bt.split||/(?=[A-Z])/;return Ve.split(St).join(xt)},de=function(Ve){return Pe(Ve)?Ve:(Ve=Ve.replace(/[\-_\s]+(.)?/g,function(bt,xt){return xt?xt.toUpperCase():""}),Ve.substr(0,1).toLowerCase()+Ve.substr(1))},ue=function(Ve){var bt=de(Ve);return bt.substr(0,1).toUpperCase()+bt.substr(1)},we=function(Ve,bt){return Z(Ve,bt).toLowerCase()},Te=Object.prototype.toString,me=function(Ve){return typeof Ve=="function"},Oe=function(Ve){return Ve===Object(Ve)},pe=function(Ve){return Te.call(Ve)=="[object Array]"},fe=function(Ve){return Te.call(Ve)=="[object Date]"},ge=function(Ve){return Te.call(Ve)=="[object RegExp]"},Me=function(Ve){return Te.call(Ve)=="[object Boolean]"},Pe=function(Ve){return Ve=Ve-0,Ve===Ve},De=function(Ve,bt){var xt=bt&&"process"in bt?bt.process:bt;return typeof xt!="function"?Ve:function(St,Tt){return xt(St,Ve,Tt)}},yt={camelize:de,decamelize:we,pascalize:ue,depascalize:we,camelizeKeys:function(Ve,bt){return O(De(de,bt),Ve)},decamelizeKeys:function(Ve,bt){return O(De(we,bt),Ve,bt)},pascalizeKeys:function(Ve,bt){return O(De(ue,bt),Ve)},depascalizeKeys:function(){return this.decamelizeKeys.apply(this,arguments)}};At.exports?At.exports=yt:Y.humps=yt})(commonjsGlobal$1)})(humps$1);var humps=humps$1.exports,_excluded=["class","style"];function styleToObject(At){return At.split(";").map(function(Y){return Y.trim()}).filter(function(Y){return Y}).reduce(function(Y,O){var Z=O.indexOf(":"),de=humps.camelize(O.slice(0,Z)),ue=O.slice(Z+1).trim();return Y[de]=ue,Y},{})}function classToObject(At){return At.split(/\s+/).reduce(function(Y,O){return Y[O]=!0,Y},{})}function convert(At){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof At=="string")return At;var Z=(At.children||[]).map(function(me){return convert(me)}),de=Object.keys(At.attributes||{}).reduce(function(me,Oe){var pe=At.attributes[Oe];switch(Oe){case"class":me.class=classToObject(pe);break;case"style":me.style=styleToObject(pe);break;default:me.attrs[Oe]=pe}return me},{attrs:{},class:{},style:{}});O.class;var ue=O.style,we=ue===void 0?{}:ue,Te=_objectWithoutProperties(O,_excluded);return vue.h(At.tag,_objectSpread2(_objectSpread2(_objectSpread2({},Y),{},{class:de.class,style:_objectSpread2(_objectSpread2({},de.style),we)},de.attrs),Te),Z)}var PRODUCTION=!1;try{PRODUCTION=process.env.NODE_ENV==="production"}catch{}function log(){if(!PRODUCTION&&console&&typeof console.error=="function"){var At;(At=console).error.apply(At,arguments)}}function normalizeIconArgs(At){if(At&&_typeof(At)==="object"&&At.prefix&&At.iconName&&At.icon)return At;if(parse$1.icon)return parse$1.icon(At);if(At===null)return null;if(_typeof(At)==="object"&&At.prefix&&At.iconName)return At;if(Array.isArray(At)&&At.length===2)return{prefix:At[0],iconName:At[1]};if(typeof At=="string")return{prefix:"fas",iconName:At}}var FontAwesomeIcon=vue.defineComponent({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(Y){return[!0,!1,"horizontal","vertical","both"].indexOf(Y)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},maskId:{type:String,default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(Y){return["right","left"].indexOf(Y)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(Y){return[90,180,270].indexOf(Number.parseInt(Y,10))>-1}},rotateBy:{type:Boolean,default:!1},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(Y){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(Y)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},titleId:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1},widthAuto:{type:Boolean,default:!1}},setup:function(Y,O){var Z=O.attrs,de=vue.computed(function(){return normalizeIconArgs(Y.icon)}),ue=vue.computed(function(){return objectWithKey("classes",classList(Y))}),we=vue.computed(function(){return objectWithKey("transform",typeof Y.transform=="string"?parse$1.transform(Y.transform):Y.transform)}),Te=vue.computed(function(){return objectWithKey("mask",normalizeIconArgs(Y.mask))}),me=vue.computed(function(){var pe=_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({},ue.value),we.value),Te.value),{},{symbol:Y.symbol,maskId:Y.maskId});return pe.title=Y.title,pe.titleId=Y.titleId,icon(de.value,pe)});vue.watch(me,function(pe){if(!pe)return log("Could not find one or more icon(s)",de.value,Te.value)},{immediate:!0});var Oe=vue.computed(function(){return me.value?convert(me.value.abstract[0],{},Z):null});return function(){return Oe.value}}});vue.defineComponent({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(Y,O){var Z=O.slots,de=config$1.familyPrefix,ue=vue.computed(function(){return["".concat(de,"-layers")].concat(_toConsumableArray(Y.fixedWidth?["".concat(de,"-fw")]:[]))});return function(){return vue.h("div",{class:ue.value},Z.default?Z.default():[])}}});vue.defineComponent({name:"FontAwesomeLayersText",props:{value:{type:[String,Number],default:""},transform:{type:[String,Object],default:null},counter:{type:Boolean,default:!1},position:{type:String,default:null,validator:function(Y){return["bottom-left","bottom-right","top-left","top-right"].indexOf(Y)>-1}}},setup:function(Y,O){var Z=O.attrs,de=config$1.familyPrefix,ue=vue.computed(function(){return objectWithKey("classes",[].concat(_toConsumableArray(Y.counter?["".concat(de,"-layers-counter")]:[]),_toConsumableArray(Y.position?["".concat(de,"-layers-").concat(Y.position)]:[])))}),we=vue.computed(function(){return objectWithKey("transform",typeof Y.transform=="string"?parse$1.transform(Y.transform):Y.transform)}),Te=vue.computed(function(){var Oe=text(Y.value.toString(),_objectSpread2(_objectSpread2({},we.value),ue.value)),pe=Oe.abstract;return Y.counter&&(pe[0].attributes.class=pe[0].attributes.class.replace("fa-layers-text","")),pe[0]}),me=vue.computed(function(){return convert(Te.value,{},Z)});return function(){return me.value}}});const _hoisted_1$e=["title","aria-label","aria-pressed"],_sfc_main$p=vue.defineComponent({__name:"MapButton",props:{icon:{default:void 0},image:{default:""},imagePadding:{default:0},position:{default:"top-right"},title:{default:""},iconSize:{default:18},toggleable:{type:Boolean,default:!1},active:{type:Boolean,default:!1},activeColor:{default:"#ffcc80"},teleportTo:{default:void 0},className:{}},emits:["click"],setup(At,{emit:Y}){const O=At,Z=Y,de=vue.useSlots(),ue=vue.inject("controlCorners",{}),we=vue.computed(()=>O.teleportTo?O.teleportTo:ue[O.position??"top-right"]?.value??null),Te=()=>{Z("click")},me=vue.computed(()=>!!de.default),Oe=vue.computed(()=>O.position?.includes("right")),pe=vue.computed(()=>{const fe={};return O.image&&(fe.backgroundImage=`url("${O.image}")`,fe.backgroundPosition="center",fe.backgroundRepeat="no-repeat",O.imagePadding>0?(fe.backgroundSize="contain",fe.backgroundOrigin="content-box",fe.padding=`${O.imagePadding}px`):(fe.backgroundSize="cover",fe.width=`${O.iconSize}px`,fe.height=`${O.iconSize}px`)),O.toggleable&&O.active&&(fe.backgroundColor=O.activeColor),fe});return vue.onMounted(()=>{}),(fe,ge)=>we.value?(vue.openBlock(),vue.createBlock(vue.Teleport,{key:0,to:we.value},[vue.createElementVNode("div",{class:vue.normalizeClass(["maplibregl-ctrl",me.value?"map-button-wrapper":"maplibregl-ctrl-group"])},[Oe.value?vue.renderSlot(fe.$slots,"default",{key:0}):vue.createCommentVNode("",!0),vue.createElementVNode("button",{class:vue.normalizeClass(["map-button",{"has-image":O.image}]),type:"button",title:O.title,"aria-label":O.title,"aria-pressed":O.toggleable?String(O.active):void 0,style:vue.normalizeStyle(pe.value),onClick:Te},[O.icon&&!O.image?(vue.openBlock(),vue.createBlock(vue.unref(FontAwesomeIcon),{key:0,icon:O.icon,style:vue.normalizeStyle({fontSize:`${O.iconSize}px`}),"aria-hidden":"true"},null,8,["icon","style"])):vue.createCommentVNode("",!0)],14,_hoisted_1$e),Oe.value?vue.createCommentVNode("",!0):vue.renderSlot(fe.$slots,"default",{key:1})],2)],8,["to"])):vue.createCommentVNode("",!0)}});var faUpRightFromSquare={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z"]},faChevronUp={prefix:"fas",iconName:"chevron-up",icon:[448,512,[],"f077","M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]},faChevronDown={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"]},faLocationCrosshairs={prefix:"fas",iconName:"location-crosshairs",icon:[576,512,["location"],"f601","M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]};const _hoisted_1$d=["title","aria-expanded"],_hoisted_2$7={class:"dropdown-label"},_hoisted_3$6=["aria-checked","tabindex","onClick"],_sfc_main$o=vue.defineComponent({__name:"BasemapDropdown",props:{options:{},position:{default:"top-right"},selectedIndex:{default:0},useAsControl:{type:Boolean,default:!0},isDropUp:{type:Boolean,default:!1},teleportTo:{default:void 0}},emits:["select"],setup(At,{expose:Y,emit:O}){const Z=vue.inject("handleBasemapChange",null),de=At,ue=O,we=vue.ref(!1),Te=vue.ref(de.selectedIndex),me=vue.ref(-1),Oe=vue.ref(null),pe=vue.ref(null),fe=vue.ref([]),ge=vue.computed(()=>de.options[Te.value]),Me=vue.computed(()=>de.useAsControl?de.position?.includes("bottom")||!1:de.isDropUp),Pe=vue.inject("controlCorners",{}),De=vue.computed(()=>de.useAsControl?de.teleportTo?de.teleportTo:Pe[de.position??"top-right"]?.value??null:null);function yt(){we.value=!we.value,we.value?(me.value=Te.value,vue.nextTick(()=>bt(me.value))):me.value=-1}function Ve(){we.value=!1,me.value=-1,pe.value?.focus()}function bt(Ot){fe.value[Ot]?.focus()}function xt(Ot){(Ot.key==="ArrowDown"||Ot.key==="ArrowUp")&&(Ot.preventDefault(),we.value||(we.value=!0,me.value=Te.value,vue.nextTick(()=>bt(me.value))))}function St(Ot){switch(Ot.key){case"Escape":Ot.preventDefault(),Ve();break;case"ArrowDown":Ot.preventDefault(),me.value=(me.value+1)%de.options.length,bt(me.value);break;case"ArrowUp":Ot.preventDefault(),me.value=(me.value-1+de.options.length)%de.options.length,bt(me.value);break;case"Home":Ot.preventDefault(),me.value=0,bt(me.value);break;case"End":Ot.preventDefault(),me.value=de.options.length-1,bt(me.value);break;case"Tab":Ve();break}}function Tt(Ot,It){Ot&&(fe.value[It]=Ot)}function Mt(Ot,It){if(Te.value=It,we.value=!1,me.value=-1,pe.value?.focus(),ue("select",Ot,It),Z){const Nt={showImagery:!0,imageryUrl:Ot.imageryUrl,imageryLabelsUrl:Ot.imageryLabelsUrl,showLabels:Ot.showLabels??!0};Z(Nt)}}function jt(Ot){Oe.value&&!Oe.value.contains(Ot.target)&&(we.value=!1,me.value=-1)}return vue.onMounted(()=>{if(document.addEventListener("click",jt),Z&&de.options.length>0){const Ot=de.options[Te.value];if(Ot){const It={showImagery:!0,imageryUrl:Ot.imageryUrl,imageryLabelsUrl:Ot.imageryLabelsUrl,showLabels:Ot.showLabels??!0};Z(It)}}}),vue.onBeforeUnmount(()=>{document.removeEventListener("click",jt)}),Y({isOpen:we,selectedIndex:Te,selectedOption:ge,toggleDropdown:yt,closeDropdown:Ve}),(Ot,It)=>(vue.openBlock(),vue.createBlock(vue.Teleport,{to:De.value??"body",disabled:!De.value},[vue.createElementVNode("div",{ref_key:"containerRef",ref:Oe,class:vue.normalizeClass(["basemap-dropdown-control-wrapper",{"maplibregl-ctrl":At.useAsControl,"drop-up":Me.value,"standalone-control":At.useAsControl,"embedded-control":!At.useAsControl}])},[vue.createElementVNode("button",{ref_key:"toggleRef",ref:pe,class:"basemap-dropdown-toggle",title:ge.value?.label||"Select basemap","aria-expanded":we.value,"aria-haspopup":"true",onClick:vue.withModifiers(yt,["stop"]),onKeydown:xt},[vue.createElementVNode("span",_hoisted_2$7,vue.toDisplayString(ge.value?.label||"Select"),1),vue.createVNode(vue.unref(FontAwesomeIcon),{icon:Me.value?vue.unref(faChevronUp):vue.unref(faChevronDown),class:vue.normalizeClass(["dropdown-icon",{open:we.value}]),"aria-hidden":"true"},null,8,["icon","class"])],40,_hoisted_1$d),we.value?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"basemap-dropdown-menu",role:"menu",onKeydown:St},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(At.options,(Nt,Lt)=>(vue.openBlock(),vue.createElementBlock("button",{key:Lt,ref_for:!0,ref:Dt=>Tt(Dt,Lt),role:"menuitemradio","aria-checked":Lt===Te.value,tabindex:Lt===me.value?0:-1,class:vue.normalizeClass(["basemap-dropdown-item",{selected:Lt===Te.value}]),onClick:vue.withModifiers(Dt=>Mt(Nt,Lt),["stop"])},vue.toDisplayString(Nt.label),11,_hoisted_3$6))),128))],32)):vue.createCommentVNode("",!0)],2)],8,["to","disabled"]))}}),defaultImageryIcon="data:image/png;base64,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",defaultBasemapIcon="data:image/png;base64,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",imageryLabelsUrl="https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_Labels/MapServer/tile/{z}/{y}/{x}",imageryLabelsSource={tiles:[imageryLabelsUrl],type:"raster",tileSize:256},imageryParcelOutlinesSource={tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/PWDParcel_ImageryOverlay/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},imagerySources={2025:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2025_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2024:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2024_1in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2023:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2023/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2022:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2022_2in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2020:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2020_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2019:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2019_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2018:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2018_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2017:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2017_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2016:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2016_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2015:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2015_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2012:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2012_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2010:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2010_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2008:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2008_3in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},2004:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2004_6in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1996:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_1996_6in/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1962:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/HistoricLandUse_1962/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1942:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/HistoricLandUse_1942/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1910:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/HistoricBromleyAtlas_1910/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1895:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/HistoricBromleyAtlas_1895/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1875:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/HistoricGMHopkinsAtlas_1875/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},1860:{tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/HistoricHexamerLocherAtlas_1860/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256}},defaultBasemapSource={tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityBasemap/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},defaultLabelsSource={tiles:["https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityBasemap_Labels/MapServer/tile/{z}/{y}/{x}"],type:"raster",tileSize:256},defaultImageryOptions=[{label:"2025",year:"2025",imageryUrl:imagerySources[2025].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2024",year:"2024",imageryUrl:imagerySources[2024].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2023",year:"2023",imageryUrl:imagerySources[2023].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2022",year:"2022",imageryUrl:imagerySources[2022].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2020",year:"2020",imageryUrl:imagerySources[2020].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2019",year:"2019",imageryUrl:imagerySources[2019].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2018",year:"2018",imageryUrl:imagerySources[2018].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2017",year:"2017",imageryUrl:imagerySources[2017].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2016",year:"2016",imageryUrl:imagerySources[2016].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2015",year:"2015",imageryUrl:imagerySources[2015].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2012",year:"2012",imageryUrl:imagerySources[2012].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2010",year:"2010",imageryUrl:imagerySources[2010].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2008",year:"2008",imageryUrl:imagerySources[2008].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"2004",year:"2004",imageryUrl:imagerySources[2004].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"1996",year:"1996",imageryUrl:imagerySources[1996].tiles[0],imageryLabelsUrl,showLabels:!0},{label:"1962",year:"1962",imageryUrl:imagerySources[1962].tiles[0],imageryLabelsUrl:null,showLabels:!1},{label:"1942",year:"1942",imageryUrl:imagerySources[1942].tiles[0],imageryLabelsUrl:null,showLabels:!1},{label:"1910",year:"1910",imageryUrl:imagerySources[1910].tiles[0],imageryLabelsUrl:null,showLabels:!1},{label:"1895",year:"1895",imageryUrl:imagerySources[1895].tiles[0],imageryLabelsUrl:null,showLabels:!1},{label:"1875",year:"1875",imageryUrl:imagerySources[1875].tiles[0],imageryLabelsUrl:null,showLabels:!1},{label:"1860",year:"1860",imageryUrl:imagerySources[1860].tiles[0],imageryLabelsUrl:null,showLabels:!1}],_sfc_main$n=vue.defineComponent({__name:"BasemapToggle",props:{position:{default:"top-right"},imageryUrl:{default:"https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_2024_1in/MapServer/tile/{z}/{y}/{x}"},imageryLabelsUrl:{default:"https://tiles.arcgis.com/tiles/fLeGjb7u4uXqeF9q/arcgis/rest/services/CityImagery_Labels/MapServer/tile/{z}/{y}/{x}"},iconImage:{},basemapImage:{},title:{default:"Toggle Imagery"},iconSize:{default:29},showDropdown:{type:Boolean,default:!1},dropdownOptions:{default:()=>defaultImageryOptions},teleportTo:{default:void 0},className:{}},emits:["change"],setup(At,{emit:Y}){const O=vue.inject("handleBasemapChange",null),Z=At,de=Y,ue=vue.ref(!1),we=vue.ref(Z.imageryUrl),Te=vue.ref(Z.imageryLabelsUrl??null),me=vue.ref(Z.dropdownOptions?.[0]?.showLabels??!0),Oe=vue.ref(0),pe=vue.ref(Z.iconImage??defaultImageryIcon);function fe(){ue.value=!ue.value;let Me;ue.value?(pe.value=Z.basemapImage??defaultBasemapIcon,Me={showImagery:!0,imageryUrl:we.value,imageryLabelsUrl:Te.value,showLabels:me.value}):(pe.value=Z.iconImage??defaultImageryIcon,Me={showImagery:!1,imageryUrl:null,imageryLabelsUrl:null,showLabels:!0}),de("change",Me),O&&O(Me)}function ge(Me,Pe){if(Oe.value=Pe,we.value=Me.imageryUrl,Te.value=Me.imageryLabelsUrl,me.value=Me.showLabels??!0,ue.value){const De={showImagery:!0,imageryUrl:Me.imageryUrl,imageryLabelsUrl:Me.imageryLabelsUrl,showLabels:Me.showLabels??!0};de("change",De),O&&O(De)}}return(Me,Pe)=>(vue.openBlock(),vue.createBlock(_sfc_main$p,{image:pe.value,position:Z.position,"teleport-to":Z.teleportTo,title:Z.title,"icon-size":Z.iconSize,onClick:fe},{default:vue.withCtx(()=>[At.showDropdown&&At.dropdownOptions.length>0&&ue.value?(vue.openBlock(),vue.createBlock(_sfc_main$o,{key:0,options:At.dropdownOptions,"selected-index":Oe.value,"use-as-control":!1,"is-drop-up":At.position?.includes("bottom"),onSelect:ge},null,8,["options","selected-index","is-drop-up"])):vue.createCommentVNode("",!0)]),_:1},8,["image","position","teleport-to","title","icon-size"]))}}),_sfc_main$m=vue.defineComponent({__name:"MapNavigationControl",props:{position:{default:"top-right"},className:{}},setup(At){const Y=At;return useMapControl.useMapControl(Y,()=>new maplibregl.NavigationControl),(O,Z)=>vue.renderSlot(O.$slots,"default")}}),_sfc_main$l=vue.defineComponent({__name:"GeolocationButton",props:{position:{default:"top-right"},icon:{},iconSize:{default:18},title:{default:"Show my location"},trackUser:{type:Boolean,default:!1},markerColor:{default:"#4285F4"},teleportTo:{default:void 0},className:{}},emits:["located","error"],setup(At,{emit:Y}){const O=At,Z=O.icon||faLocationCrosshairs,de=Y,ue=vue.inject("map"),we=vue.ref(!1),Te=vue.ref(!1);let me=null,Oe=null;const pe=(yt,Ve)=>{if(!ue?.value)return;const bt=document.createElement("div");bt.className="geolocation-marker",bt.setAttribute("role","img"),bt.setAttribute("aria-label","Your location"),bt.innerHTML=`
|
|
559
559
|
<div class="geolocation-marker-dot"></div>
|
|
560
560
|
<div class="geolocation-marker-pulse"></div>
|
|
561
|
-
`,me=new maplibregl.Marker({element:bt}).setLngLat([yt,Ve]).addTo(ue.value)},fe=(yt,Ve)=>{me?me.setLngLat([yt,Ve]):pe(yt,Ve)},ge=()=>{me&&(me.remove(),me=null)},Me=()=>{Oe!==null&&(navigator.geolocation.clearWatch(Oe),Oe=null),Te.value=!1},Pe=(yt,Ve=!1)=>{if(!ue?.value)return;const{longitude:bt,latitude:xt,accuracy:St}=yt.coords;Ve&&(ue.value.setCenter([bt,xt]),ue.value.setZoom(16)),fe(bt,xt),de("located",{longitude:bt,latitude:xt,accuracy:St}),we.value=!1},De=()=>{if(!ue?.value||!navigator.geolocation){de("error",new Error("Geolocation not supported"));return}if(Te.value){Me(),ge();return}if(we.value=!0,O.trackUser){Te.value=!0;let yt=!0;Oe=navigator.geolocation.watchPosition(Ve=>{Pe(Ve,yt),yt=!1},Ve=>{de("error",Ve),we.value=!1,Me()},{enableHighAccuracy:!0,timeout:1e4,maximumAge:0})}else navigator.geolocation.getCurrentPosition(yt=>{Pe(yt,!0)},yt=>{de("error",yt),we.value=!1},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})};return vue.onBeforeUnmount(()=>{Me(),ge()}),(yt,Ve)=>(vue.openBlock(),vue.createBlock(_sfc_main$p,{icon:vue.unref(Z),position:O.position,"teleport-to":O.teleportTo,title:O.title,"icon-size":O.iconSize,onClick:De},null,8,["icon","position","teleport-to","title","icon-size"]))}}),_hoisted_1$c=["aria-label"],BASEMAP_CEILING_ID="basemap-ceiling",_sfc_main$k=vue.defineComponent({__name:"Map",props:{center:{default:()=>[-75.163613,39.952372]},zoom:{default:16},style:{default:()=>({version:8,sources:{},layers:[]})},minZoom:{default:0},maxZoom:{default:22},pitch:{default:0},bearing:{default:0},basemapUrl:{},labelsUrl:{},basemapChangeControls:{},navigationControls:{},geolocationControl:{},mapSearchControl:{},noDefaultTileLayers:{type:Boolean,default:!1},basemapBeforeId:{default:void 0},toolPanelLayout:{default:"vertical"},toolPanelSplitRatio:{default:50},cyclomediaConfig:{},enableCyclomedia:{type:Boolean,default:!1},cyclomediaButtonPosition:{default:"top-right"},pictometryCredentials:{},enablePictometry:{type:Boolean,default:!1},pictometryButtonPosition:{default:"top-right"},ariaLabel:{default:"Interactive map"},className:{}},emits:["load","click","move","moveend","zoom","searchResult"],setup(At,{expose:Y,emit:O}){const Z=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>CyclomediaButton$1)),de=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>CyclomediaPanel$1)),ue=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CyclomediaRecordingsLayer-BDkVQKdr.cjs"))),we=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CyclomediaCameraIcon-FJB1K3MY.cjs"))),Te=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CyclomediaViewcone-DWMV1svY.cjs"))),me=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>PictometryButton$1)),Oe=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>PictometryPanel$1)),pe=At,fe=O,ge=vue.ref(null),Me=vue.ref(null),Pe=vue.ref(!1),De=vue.ref(pe.center),yt=vue.ref(pe.zoom),Ve=vue.ref(pe.pitch),bt=vue.ref(pe.bearing),xt=vue.ref(null),St=vue.ref(!1),Tt=vue.ref(defaultImageryOptions[0]?.imageryUrl||null),Mt=vue.ref(defaultImageryOptions[0]?.imageryLabelsUrl||null),jt=vue.ref(defaultImageryOptions[0]?.showLabels??!0),Ot=vue.ref(!1),It=vue.ref(null),Nt=vue.ref(!1),Lt=vue.ref(!1),Dt=vue.ref(null);function zt(ir,hr){It.value=ir,ir==="cyclomedia"?(Nt.value||(Dt.value=hr,Nt.value=!0),Ot.value=!0):ir==="pictometry"&&(Lt.value||(Dt.value=hr,Lt.value=!0))}function Wt(){It.value=null,Dt.value=null,Ot.value=!1}function Gt(ir){ir.active?zt(ir.tool,ir.location):Wt()}function $t(ir){Gt({tool:"cyclomedia",...ir})}function Zt(ir){Gt({tool:"pictometry",...ir})}const Ft=vue.ref(null),Jt=vue.ref(0),on=vue.ref(80);function an(ir){Ft.value=[ir.lng,ir.lat],Jt.value=ir.yaw??0,on.value=ir.hFov??80}function pn(ir){It.value!=="cyclomedia"?zt("cyclomedia",ir):Dt.value={lng:ir.lng,lat:ir.lat}}function nn(ir){const hr=ir.lonLat.lon,or=ir.lonLat.lat;(Dt.value?.lng!==hr||Dt.value?.lat!==or)&&(Dt.value={lng:hr,lat:or})}function ln(ir){return{type:"raster",tiles:[ir.includes("{z}")?ir:`${ir}tile/{z}/{y}/{x}`],tileSize:256}}const gn=vue.computed(()=>St.value&&Tt.value?ln(Tt.value):pe.basemapUrl?ln(pe.basemapUrl):defaultBasemapSource),jn=vue.computed(()=>St.value?jt.value&&Mt.value?ln(Mt.value):null:pe.labelsUrl!==void 0?pe.labelsUrl===null?null:ln(pe.labelsUrl):defaultLabelsSource);function un(ir){St.value=ir.showImagery,Tt.value=ir.imageryUrl,Mt.value=ir.imageryLabelsUrl,jt.value=ir.showLabels}function _n(ir){const[hr,or]=ir.geometry.coordinates;Dt.value={lng:hr,lat:or},fe("searchResult",ir)}const kn=vue.computed(()=>pe.basemapBeforeId||BASEMAP_CEILING_ID),bn=vue.computed(()=>It.value!==null),fn=vue.computed(()=>({"layout-vertical":pe.toolPanelLayout==="vertical","layout-horizontal":pe.toolPanelLayout==="horizontal"})),hn=vue.computed(()=>{if(!bn.value)return{width:"100%",height:"100%"};const hr=`${pe.toolPanelSplitRatio??50}%`;return pe.toolPanelLayout==="vertical"?{width:"100%",height:hr}:{width:hr,height:"100%"}}),An=vue.computed(()=>{const hr=`${100-(pe.toolPanelSplitRatio??50)}%`;return pe.toolPanelLayout==="vertical"?{width:"100%",height:hr}:{width:hr,height:"100%"}});vue.provide("map",Me),vue.provide("cyclomediaConfig",pe.cyclomediaConfig||null),vue.provide("pictometryCredentials",pe.pictometryCredentials||null),vue.provide("toolLocation",Dt),vue.provide("isLoaded",Pe),vue.provide("handleBasemapChange",un);const Nn=vue.ref(!1);vue.provide("isDrawing",Nn);const Hn=vue.ref(new Set),Kn=ir=>{Hn.value.add(ir)};vue.provide("registerClickableLayer",Kn);const $n=ir=>{Hn.value.delete(ir)};vue.provide("unregisterClickableLayer",$n),vue.provide("cyclomediaActive",Ot),vue.provide("activeTool",It),vue.provide("toolLocation",Dt),vue.provide("handleToolToggle",Gt);const Pn=vue.ref(null),Yn=vue.ref(null),Dn=vue.ref(null),qn=vue.ref(null);return vue.provide("controlCorners",{"top-left":Pn,"top-right":Yn,"bottom-left":Dn,"bottom-right":qn}),vue.onMounted(()=>{ge.value&&(Me.value=new maplibregl.Map({container:ge.value,style:pe.style,center:pe.center,zoom:pe.zoom,minZoom:pe.minZoom,maxZoom:pe.maxZoom,pitch:pe.pitch,bearing:pe.bearing,attributionControl:!1}),Me.value.on("load",()=>{Pe.value=!0,Me.value&&fe("load",Me.value)}),Me.value.on("click",ir=>{if(!Nn.value){if(Hn.value.size>0&&Me.value){const hr=Array.from(Hn.value).filter(or=>Me.value?.getLayer(or));if(hr.length>0){const tr=[[ir.point.x-10,ir.point.y-10],[ir.point.x+10,ir.point.y+10]];if(Me.value.queryRenderedFeatures(tr,{layers:hr}).length>0)return}}fe("click",ir)}}),Me.value.on("move",()=>{Me.value&&(De.value=Me.value.getCenter(),yt.value=Me.value.getZoom(),fe("move",{center:Me.value.getCenter(),zoom:Me.value.getZoom()}))}),Me.value.on("moveend",()=>{if(Me.value){const ir=Me.value.getBounds();xt.value={west:ir.getWest(),south:ir.getSouth(),east:ir.getEast(),north:ir.getNorth()},fe("moveend",{center:Me.value.getCenter(),zoom:Me.value.getZoom(),bounds:xt.value})}}),Me.value.on("zoom",()=>{Me.value&&(yt.value=Me.value.getZoom(),fe("zoom",Me.value.getZoom()))}),Me.value.on("pitch",()=>{Me.value&&(Ve.value=Me.value.getPitch())}),Me.value.on("rotate",()=>{Me.value&&(bt.value=Me.value.getBearing())}))}),vue.watch(()=>pe.center,ir=>{Me.value&&ir&&(Me.value.setCenter(ir),De.value=ir)}),vue.watch(()=>pe.zoom,ir=>{Me.value&&ir!==void 0&&(Me.value.setZoom(ir),yt.value=ir)}),vue.watch(()=>pe.pitch,ir=>{Me.value&&ir!==void 0&&(Me.value.setPitch(ir),Ve.value=ir)}),vue.watch(()=>pe.bearing,ir=>{Me.value&&ir!==void 0&&(Me.value.setBearing(ir),bt.value=ir)}),vue.watch(()=>pe.style,ir=>{Me.value&&ir&&Me.value.setStyle(ir)}),vue.watch(()=>pe.minZoom,ir=>{Me.value&&ir!==void 0&&Me.value.setMinZoom(ir)}),vue.watch(()=>pe.maxZoom,ir=>{Me.value&&ir!==void 0&&Me.value.setMaxZoom(ir)}),vue.onBeforeUnmount(()=>{Pe.value=!1,Me.value&&Me.value.remove()}),Y({map:Me,isLoaded:Pe,currentCenter:De,currentZoom:yt,currentPitch:Ve,currentBearing:bt,currentBounds:xt,activeTool:It,toolLocation:Dt,cyclomediaActive:Ot}),(ir,hr)=>(vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["map-wrapper",fn.value])},[vue.createElementVNode("div",{ref_key:"mapContainer",ref:ge,class:"map-container",style:vue.normalizeStyle(hn.value),role:"region","aria-label":At.ariaLabel||void 0},[vue.createElementVNode("a",{href:"#",class:"map-keyboard-instructions",onClick:hr[0]||(hr[0]=vue.withModifiers(()=>{},["prevent"]))}," Use arrow keys to pan the map. Press + or - to zoom. Press Tab to exit. "),At.noDefaultTileLayers?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(_sfc_main$s,{key:0,id:"basemap",source:gn.value,"before-id":"basemap-labels"},null,8,["source"])),!At.noDefaultTileLayers&&jn.value?(vue.openBlock(),vue.createBlock(_sfc_main$s,{key:1,id:"basemap-labels",source:jn.value,"before-id":kn.value},null,8,["source","before-id"])):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$r,{id:BASEMAP_CEILING_ID}),It.value==="cyclomedia"?(vue.openBlock(),vue.createBlock(vue.unref(ue),{key:2,visible:!0,"min-zoom":17,onRecordingClick:pn})):vue.createCommentVNode("",!0),At.enableCyclomedia&&It.value==="cyclomedia"&&Ft.value?(vue.openBlock(),vue.createBlock(vue.unref(Te),{key:3,position:Ft.value,yaw:Jt.value,"h-fov":on.value,"icon-size":.5},null,8,["position","yaw","h-fov"])):vue.createCommentVNode("",!0),At.enableCyclomedia&&It.value==="cyclomedia"&&Ft.value?(vue.openBlock(),vue.createBlock(vue.unref(we),{key:4,position:Ft.value,yaw:Jt.value,"icon-size":.09},null,8,["position","yaw"])):vue.createCommentVNode("",!0),At.navigationControls?(vue.openBlock(),vue.createBlock(_sfc_main$m,{key:5,position:At.navigationControls.position},null,8,["position"])):vue.createCommentVNode("",!0),At.geolocationControl?(vue.openBlock(),vue.createBlock(_sfc_main$l,{key:6,position:At.geolocationControl.position},null,8,["position"])):vue.createCommentVNode("",!0),At.mapSearchControl?(vue.openBlock(),vue.createBlock(_sfc_main$q,{key:7,position:At.mapSearchControl.position,placeholder:At.mapSearchControl.placeholder??"Search for an address",onResult:_n},null,8,["position","placeholder"])):vue.createCommentVNode("",!0),At.basemapChangeControls?.toggle?(vue.openBlock(),vue.createBlock(_sfc_main$n,{key:8,position:At.basemapChangeControls.position,"show-dropdown":At.basemapChangeControls.dropdown,onChange:un},null,8,["position","show-dropdown"])):vue.createCommentVNode("",!0),At.enableCyclomedia?(vue.openBlock(),vue.createBlock(vue.unref(Z),{key:9,position:At.cyclomediaButtonPosition,active:It.value==="cyclomedia",onToggle:$t},null,8,["position","active"])):vue.createCommentVNode("",!0),At.enablePictometry?(vue.openBlock(),vue.createBlock(vue.unref(me),{key:10,position:At.pictometryButtonPosition,active:It.value==="pictometry",onToggle:Zt},null,8,["position","active"])):vue.createCommentVNode("",!0),vue.renderSlot(ir.$slots,"default",{},void 0,!0),vue.createElementVNode("div",{ref_key:"cornerTopLeft",ref:Pn,class:"map-controls map-controls-top-left"},null,512),vue.createElementVNode("div",{ref_key:"cornerTopRight",ref:Yn,class:"map-controls map-controls-top-right"},null,512),vue.createElementVNode("div",{ref_key:"cornerBottomLeft",ref:Dn,class:"map-controls map-controls-bottom-left"},null,512),vue.createElementVNode("div",{ref_key:"cornerBottomRight",ref:qn,class:"map-controls map-controls-bottom-right"},null,512)],12,_hoisted_1$c),vue.withDirectives(vue.createElementVNode("div",{class:"tool-panel-container",style:vue.normalizeStyle(An.value),role:"region","aria-label":"Cyclomedia street view"},[Nt.value?(vue.openBlock(),vue.createBlock(vue.unref(de),{key:0,"auto-open":!0,"pop-out-enabled":!0,onViewChange:an})):vue.createCommentVNode("",!0)],4),[[vue.vShow,It.value==="cyclomedia"]]),vue.withDirectives(vue.createElementVNode("div",{class:"tool-panel-container",style:vue.normalizeStyle(An.value),role:"region","aria-label":"Pictometry oblique imagery"},[Lt.value?(vue.openBlock(),vue.createBlock(vue.unref(Oe),{key:0,"auto-open":!0,"pop-out-enabled":!0,onViewChange:nn})):vue.createCommentVNode("",!0)],4),[[vue.vShow,It.value==="pictometry"]])],2))}}),_export_sfc=(At,Y)=>{const O=At.__vccOpts||At;for(const[Z,de]of Y)O[Z]=de;return O},Map$1=_export_sfc(_sfc_main$k,[["__scopeId","data-v-f58e117e"]]),_sfc_main$j=vue.defineComponent({__name:"MapMarker",props:{lngLat:{},color:{default:"#FF0000"},popup:{default:void 0},draggable:{type:Boolean,default:!1},rotation:{default:0},offset:{default:void 0},icon:{default:void 0},iconSize:{default:24},iconColor:{default:void 0},ariaLabel:{default:void 0},zIndex:{default:void 0},className:{}},emits:["dragstart","drag","dragend"],setup(At,{emit:Y}){const O=At,Z=Y,de=vue.useSlots(),ue=vue.ref(null),we=vue.inject("map"),Te=vue.inject("isLoaded");let me=null;const Oe=()=>{if(!we||!we.value||!O.lngLat)return;pe();const fe={draggable:O.draggable};if(de.default){const Me=document.createElement("div");ue.value=Me,fe.element=Me,fe.anchor="bottom"}else if(O.icon){const Me=document.createElement("div");Me.className="custom-marker",Me.innerHTML=`<i class="${O.icon}" style="font-size: ${O.iconSize}px; color: ${O.iconColor||O.color};"></i>`,fe.element=Me}else fe.color=O.color;if(O.rotation&&(fe.rotation=O.rotation),O.offset&&(fe.offset=O.offset),me=new maplibregl.Marker(fe).setLngLat(O.lngLat),O.popup){const Me=new maplibregl.Popup().setHTML(O.popup);me.setPopup(Me)}me.addTo(we.value);const ge=me.getElement();O.ariaLabel?(ge.setAttribute("role","img"),ge.setAttribute("aria-label",O.ariaLabel)):ge.setAttribute("aria-hidden","true"),O.zIndex!=null&&(ge.style.zIndex=String(O.zIndex)),O.draggable&&me&&(me.on("dragstart",()=>me&&Z("dragstart",me.getLngLat())),me.on("drag",()=>me&&Z("drag",me.getLngLat())),me.on("dragend",()=>me&&Z("dragend",me.getLngLat())))},pe=()=>{me&&(me.remove(),me=null),ue.value=null};return vue.watch(()=>O.zIndex,fe=>{if(!me)return;const ge=me.getElement();fe!=null?ge.style.zIndex=String(fe):ge.style.zIndex=""}),vue.watch(()=>O.lngLat,fe=>{fe&&me?me.setLngLat(fe):fe&&!me&&we?.value&&Te?.value?Oe():!fe&&me&&pe()},{deep:!0}),vue.watch(()=>Te?.value,async fe=>{fe&&we?.value&&O.lngLat&&(await vue.nextTick(),Oe())},{immediate:!0}),vue.onBeforeUnmount(()=>{pe()}),(fe,ge)=>ue.value&&fe.$slots.default?(vue.openBlock(),vue.createBlock(vue.Teleport,{key:0,to:ue.value},[vue.renderSlot(fe.$slots,"default")],8,["to"])):vue.createCommentVNode("",!0)}}),_hoisted_1$b=["role","aria-label","aria-hidden"],_hoisted_2$6=["role","aria-label","aria-hidden"],_hoisted_3$5={class:"icon-circle"},_hoisted_4$3={class:"pin-icon"},_hoisted_5$2={key:0,class:"pin-text"},_sfc_main$i=vue.defineComponent({__name:"MapIconTextPin",props:{icon:{},text:{default:void 0},colorTheme:{default:"dark-primary"},color:{default:void 0},size:{default:"large"},zoom:{default:void 0},selected:{type:Boolean,default:!1},visited:{type:Boolean,default:!1},hovered:{type:Boolean,default:!1},ariaLabel:{default:void 0},className:{}},emits:["mouseenter","mouseleave","click"],setup(At){const Y=At,O=vue.computed(()=>Y.zoom!==void 0?Y.zoom<12?"dot":Y.zoom<14?"small":"large":Y.size),Z=vue.computed(()=>{if(Y.color)return{"--pin-bg":"white","--pin-fg":Y.color,"--pin-border":"white","--pin-bg-hover":"var(--Schemes-Surface-Container-Low)","--pin-fg-hover":Y.color,"--pin-border-hover":Y.color,"--pin-bg-selected":Y.color,"--pin-fg-selected":"white","--pin-border-selected":Y.color,"--pin-bg-visited":"var(--Schemes-Surface-Container)","--pin-fg-visited":Y.color,"--pin-border-visited":"var(--Schemes-Surface-Container)"}});return(de,ue)=>O.value==="dot"?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:vue.normalizeClass(["map-icon-text-pin-dot",[`theme-${At.colorTheme}`,{selected:At.selected,visited:At.visited,hovered:At.hovered}]]),style:vue.normalizeStyle(Z.value),role:At.ariaLabel?"img":void 0,"aria-label":At.ariaLabel,"aria-hidden":At.ariaLabel?void 0:"true",onMouseenter:ue[0]||(ue[0]=we=>de.$emit("mouseenter",we)),onMouseleave:ue[1]||(ue[1]=we=>de.$emit("mouseleave",we)),onClick:ue[2]||(ue[2]=we=>de.$emit("click",we))},null,46,_hoisted_1$b)):(vue.openBlock(),vue.createElementBlock("div",{key:1,class:vue.normalizeClass(["map-icon-text-pin",[`theme-${At.colorTheme}`,`size-${O.value}`,{"icon-only":!At.text,selected:At.selected,visited:At.visited,hovered:At.hovered}]]),style:vue.normalizeStyle(Z.value),role:At.ariaLabel?"img":void 0,"aria-label":At.ariaLabel,"aria-hidden":At.ariaLabel?void 0:"true",onMouseenter:ue[3]||(ue[3]=we=>de.$emit("mouseenter",we)),onMouseleave:ue[4]||(ue[4]=we=>de.$emit("mouseleave",we)),onClick:ue[5]||(ue[5]=we=>de.$emit("click",we))},[vue.createElementVNode("div",_hoisted_3$5,[vue.createElementVNode("span",_hoisted_4$3,[vue.createVNode(vue.unref(FontAwesomeIcon),{icon:At.icon},null,8,["icon"])])]),At.text?(vue.openBlock(),vue.createElementBlock("span",_hoisted_5$2,vue.toDisplayString(At.text),1)):vue.createCommentVNode("",!0)],46,_hoisted_2$6))}}),MapIconTextPin=_export_sfc(_sfc_main$i,[["__scopeId","data-v-5935cd49"]]),ie=["disabled"],A=vue.defineComponent({inheritAttrs:!1,__name:"PhlButton",props:{href:{},to:{},target:{},rel:{},disabled:{type:Boolean,default:!1},clickTarget:{},variant:{default:"primary"},size:{default:"medium"},iconOnly:{type:Boolean,default:!1},iconRight:{type:Boolean},text:{},className:{},iconDefinition:{},iconClass:{},src:{},svgRaw:{}},setup(At){const Y=At,O=we=>"href"in we&&we.href!==void 0||"to"in we&&we.to!==void 0,Z=vue.computed(()=>ve$1("phila-button",`phila-button--${Y.variant}`,Y.size&&`is-${Y.size}`,Y.iconOnly&&"icon-button",Y.iconOnly&&Y.variant==="standard"&&"icon-button--standard",Y.className)),de=vue.computed(()=>O(Y)?"to"in Y&&Y.to!==void 0?{to:Y.to,disabled:Y.disabled,className:Z.value}:{href:Y.href,target:Y.target,rel:Y.rel,disabled:Y.disabled,className:Z.value}:{}),ue=vue.computed(()=>({iconDefinition:Y.iconDefinition,iconClass:Y.iconClass,src:Y.src,iconRight:Y.iconRight,iconOnly:Y.iconOnly,text:Y.text,size:Y.size}));return(we,Te)=>O(Y)?(vue.openBlock(),vue.createBlock(vue.unref(Ee),vue.mergeProps({key:0},{...de.value,...we.$attrs},{role:"button"}),{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Re),vue.normalizeProps(vue.guardReactiveProps(ue.value)),{default:vue.withCtx(()=>[vue.renderSlot(we.$slots,"default",{},()=>[vue.createTextVNode(vue.toDisplayString(Y.text),1)])]),_:3},16)]),_:3},16)):(vue.openBlock(),vue.createElementBlock("button",vue.mergeProps({key:1,type:"button",disabled:Y.disabled,class:Z.value},we.$attrs),[vue.createVNode(vue.unref(Re),vue.normalizeProps(vue.guardReactiveProps(ue.value)),{default:vue.withCtx(()=>[vue.renderSlot(we.$slots,"default",{},()=>[vue.createTextVNode(vue.toDisplayString(Y.text),1)])]),_:3},16)],16,ie))}});var I={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"]};const oe=["id"],le={key:0,class:"tooltip__tail","aria-hidden":"true"},se={key:1,class:"tooltip__plain-row has-text-body-small"},ne={key:0,class:"tooltip__title-row"},ae={key:0},re=vue.defineComponent({__name:"TooltipBubble",props:{id:{},type:{default:"plain"},color:{default:"default"},tail:{type:Boolean,default:!1},placement:{default:"top-center"},title:{},dismissable:{type:Boolean,default:!1},className:{}},emits:["dismiss"],setup(At){const Y=At,O=vue.computed(()=>ve$1("tooltip","content","resets-link-colors",`tooltip--${Y.type}`,`tooltip--${Y.color}`,Y.tail&&`tooltip--${Y.placement}`,Y.className));return(Z,de)=>(vue.openBlock(),vue.createElementBlock("div",{id:At.id,class:vue.normalizeClass(O.value),role:"tooltip"},[At.tail?(vue.openBlock(),vue.createElementBlock("div",le)):vue.createCommentVNode("",!0),At.type==="plain"?(vue.openBlock(),vue.createElementBlock("div",se,[vue.renderSlot(Z.$slots,"default",{},void 0,!0),At.dismissable?(vue.openBlock(),vue.createBlock(vue.unref(A),{key:0,class:"tooltip__dismiss",variant:"standard",size:"extra-small","icon-only":!0,"icon-definition":vue.unref(I),"aria-label":"Dismiss tooltip",onClick:de[0]||(de[0]=ue=>Z.$emit("dismiss"))},null,8,["icon-definition"])):vue.createCommentVNode("",!0)])):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[At.title||At.dismissable?(vue.openBlock(),vue.createElementBlock("div",ne,[At.title?(vue.openBlock(),vue.createElementBlock("h6",ae,vue.toDisplayString(At.title),1)):vue.createCommentVNode("",!0),At.dismissable?(vue.openBlock(),vue.createBlock(vue.unref(A),{key:1,class:"tooltip__dismiss",variant:"standard",size:"extra-small","icon-only":!0,"icon-definition":vue.unref(I),"aria-label":"Dismiss tooltip",onClick:de[1]||(de[1]=ue=>Z.$emit("dismiss"))},null,8,["icon-definition"])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),vue.renderSlot(Z.$slots,"default",{},void 0,!0)],64))],10,oe))}}),F=(At,Y)=>{const O=At.__vccOpts||At;for(const[Z,de]of Y)O[Z]=de;return O},ce=F(re,[["__scopeId","data-v-7ccd7c7d"]]),_sfc_main$h=vue.defineComponent({__name:"MapTooltip",props:{visible:{type:Boolean,default:!1},hoverBridge:{type:Boolean,default:!0},type:{default:"plain"},color:{default:"default"},tail:{type:Boolean,default:!1},placement:{default:"top-center"},title:{},dismissable:{type:Boolean},className:{}},emits:["mouseenter","mouseleave"],setup(At){const Y=At;return(O,Z)=>At.visible?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"map-tooltip",onMouseenter:Z[0]||(Z[0]=de=>At.hoverBridge?O.$emit("mouseenter",de):void 0),onMouseleave:Z[1]||(Z[1]=de=>At.hoverBridge?O.$emit("mouseleave",de):void 0)},[vue.createVNode(vue.unref(ce),{type:Y.type,color:Y.color,tail:Y.tail,placement:Y.placement,title:Y.title,dismissable:Y.dismissable,"class-name":Y.className},{default:vue.withCtx(()=>[vue.renderSlot(O.$slots,"default",{},void 0,!0)]),_:3},8,["type","color","tail","placement","title","dismissable","class-name"])],32)):vue.createCommentVNode("",!0)}}),MapTooltip=_export_sfc(_sfc_main$h,[["__scopeId","data-v-2ee3171f"]]),FOCUSABLE_SELECTOR='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',_sfc_main$g=vue.defineComponent({__name:"MapPopup",props:{lngLat:{},html:{default:void 0},closeButton:{type:Boolean,default:!0},closeOnClick:{type:Boolean,default:!0},className:{default:void 0},maxWidth:{default:"300px"},offset:{default:void 0},anchor:{default:"bottom"},showNavigation:{type:Boolean,default:!1},currentFeatureIndex:{default:0},totalFeatures:{default:1},layerName:{default:void 0}},emits:["close","open","next","previous"],setup(At,{emit:Y}){const O=At,Z=Y,de=vue.useSlots(),ue=vue.inject("map"),we=vue.inject("isLoaded");let Te=null;const me=vue.ref(null);let Oe=null,pe=null;const fe=()=>{if(!ue?.value||!Te)return;const Ve=ue.value;requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(!Te)return;const bt=Te.getElement();if(!bt)return;const xt=Ve.getContainer(),St=bt.getBoundingClientRect(),Tt=xt.getBoundingClientRect(),Mt=10;let jt=0,Ot=0;St.top<Tt.top+Mt&&(Ot=St.top-Tt.top-Mt),St.bottom>Tt.bottom-Mt&&(Ot=St.bottom-Tt.bottom+Mt),St.left<Tt.left+Mt&&(jt=St.left-Tt.left-Mt),St.right>Tt.right-Mt&&(jt=St.right-Tt.right+Mt),(jt!==0||Ot!==0)&&Ve.panBy([jt,Ot],{duration:300})})})},ge=()=>{if(!ue?.value)return;const Ve=document.activeElement;yt(),Oe=Ve;const bt={closeButton:O.closeButton,closeOnClick:O.closeOnClick,maxWidth:O.maxWidth},St=O.showNavigation&&O.totalFeatures&&O.totalFeatures>1?"multi-feature-popup":"";if((O.className||St)&&(bt.className=[O.className,St].filter(Boolean).join(" ")),O.offset&&(bt.offset=O.offset),O.anchor&&(bt.anchor=O.anchor),Te=new maplibregl.Popup(bt),de.default&&me.value)Te.setDOMContent(me.value);else if(O.html){let Mt="";O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&(Mt+=Me()),Mt+=`<div class="popup-scroll-content">${O.html}</div>`,Te.setHTML(Mt),O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&setTimeout(()=>{Pe()},0)}Te.setLngLat(O.lngLat),Te.addTo(ue.value),Z("open"),Te.on("close",()=>{De(),Oe&&typeof Oe.focus=="function"&&(Oe.focus(),Oe=null),Z("close")});const Tt=Te.getElement();if(Tt){const Mt=Tt.querySelector(".maplibregl-popup-content");if(Mt){Mt.setAttribute("tabindex","-1"),Mt.setAttribute("role","dialog"),Mt.setAttribute("aria-label","Map popup"),Mt.focus({preventScroll:!0});const Ot=Mt.querySelector(".popup-scroll-content");Ot&&(Ot.scrollTop=0)}const jt=Tt.querySelector(".maplibregl-popup-close-button");jt&&!jt.getAttribute("aria-label")&&jt.setAttribute("aria-label","Close"),pe=Ot=>{if(Ot.key==="Escape"){Ot.preventDefault(),Te?.remove();return}if(Ot.key==="Tab"){const It=Tt.querySelectorAll(FOCUSABLE_SELECTOR);if(It.length===0)return;const Nt=It[0],Lt=It[It.length-1];Ot.shiftKey?(document.activeElement===Nt||document.activeElement===Mt)&&(Ot.preventDefault(),Lt.focus()):document.activeElement===Lt&&(Ot.preventDefault(),Nt.focus())}},Tt.addEventListener("keydown",pe),fe()}},Me=()=>{const Ve=O.layerName?`<div class="popup-layer-name">${O.layerName}</div>`:"",bt=(O.currentFeatureIndex??0)+1,xt=O.totalFeatures??1,St=(O.currentFeatureIndex??0)>0,Tt=(O.currentFeatureIndex??0)<xt-1;return`
|
|
561
|
+
`,me=new maplibregl.Marker({element:bt}).setLngLat([yt,Ve]).addTo(ue.value)},fe=(yt,Ve)=>{me?me.setLngLat([yt,Ve]):pe(yt,Ve)},ge=()=>{me&&(me.remove(),me=null)},Me=()=>{Oe!==null&&(navigator.geolocation.clearWatch(Oe),Oe=null),Te.value=!1},Pe=(yt,Ve=!1)=>{if(!ue?.value)return;const{longitude:bt,latitude:xt,accuracy:St}=yt.coords;Ve&&(ue.value.setCenter([bt,xt]),ue.value.setZoom(16)),fe(bt,xt),de("located",{longitude:bt,latitude:xt,accuracy:St}),we.value=!1},De=()=>{if(!ue?.value||!navigator.geolocation){de("error",new Error("Geolocation not supported"));return}if(Te.value){Me(),ge();return}if(we.value=!0,O.trackUser){Te.value=!0;let yt=!0;Oe=navigator.geolocation.watchPosition(Ve=>{Pe(Ve,yt),yt=!1},Ve=>{de("error",Ve),we.value=!1,Me()},{enableHighAccuracy:!0,timeout:1e4,maximumAge:0})}else navigator.geolocation.getCurrentPosition(yt=>{Pe(yt,!0)},yt=>{de("error",yt),we.value=!1},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})};return vue.onBeforeUnmount(()=>{Me(),ge()}),(yt,Ve)=>(vue.openBlock(),vue.createBlock(_sfc_main$p,{icon:vue.unref(Z),position:O.position,"teleport-to":O.teleportTo,title:O.title,"icon-size":O.iconSize,onClick:De},null,8,["icon","position","teleport-to","title","icon-size"]))}}),_hoisted_1$c=["aria-label"],BASEMAP_CEILING_ID="basemap-ceiling",_sfc_main$k=vue.defineComponent({__name:"Map",props:{center:{default:()=>[-75.163613,39.952372]},zoom:{default:16},style:{default:()=>({version:8,sources:{},layers:[]})},minZoom:{default:0},maxZoom:{default:22},pitch:{default:0},bearing:{default:0},basemapUrl:{},labelsUrl:{},basemapChangeControls:{},navigationControls:{},geolocationControl:{},mapSearchControl:{},noDefaultTileLayers:{type:Boolean,default:!1},basemapBeforeId:{default:void 0},toolPanelLayout:{default:"vertical"},toolPanelSplitRatio:{default:50},cyclomediaConfig:{},enableCyclomedia:{type:Boolean,default:!1},cyclomediaButtonPosition:{default:"top-right"},pictometryCredentials:{},enablePictometry:{type:Boolean,default:!1},pictometryButtonPosition:{default:"top-right"},ariaLabel:{default:"Interactive map"},className:{}},emits:["load","click","move","moveend","zoom","searchResult"],setup(At,{expose:Y,emit:O}){const Z=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>CyclomediaButton$1)),de=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>CyclomediaPanel$1)),ue=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CyclomediaRecordingsLayer-DMwHSKeD.cjs"))),we=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CyclomediaCameraIcon-BOdIgm0a.cjs"))),Te=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CyclomediaViewcone-C9mMRyon.cjs"))),me=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>PictometryButton$1)),Oe=vue.defineAsyncComponent(()=>Promise.resolve().then(()=>PictometryPanel$1)),pe=At,fe=O,ge=vue.ref(null),Me=vue.ref(null),Pe=vue.ref(!1),De=vue.ref(pe.center),yt=vue.ref(pe.zoom),Ve=vue.ref(pe.pitch),bt=vue.ref(pe.bearing),xt=vue.ref(null),St=vue.ref(!1),Tt=vue.ref(defaultImageryOptions[0]?.imageryUrl||null),Mt=vue.ref(defaultImageryOptions[0]?.imageryLabelsUrl||null),jt=vue.ref(defaultImageryOptions[0]?.showLabels??!0),Ot=vue.ref(!1),It=vue.ref(null),Nt=vue.ref(!1),Lt=vue.ref(!1),Dt=vue.ref(null);function zt(ir,hr){It.value=ir,ir==="cyclomedia"?(Nt.value||(Dt.value=hr,Nt.value=!0),Ot.value=!0):ir==="pictometry"&&(Lt.value||(Dt.value=hr,Lt.value=!0))}function Wt(){It.value=null,Dt.value=null,Ot.value=!1}function Gt(ir){ir.active?zt(ir.tool,ir.location):Wt()}function $t(ir){Gt({tool:"cyclomedia",...ir})}function Zt(ir){Gt({tool:"pictometry",...ir})}const Ft=vue.ref(null),Jt=vue.ref(0),on=vue.ref(80);function an(ir){Ft.value=[ir.lng,ir.lat],Jt.value=ir.yaw??0,on.value=ir.hFov??80}function pn(ir){It.value!=="cyclomedia"?zt("cyclomedia",ir):Dt.value={lng:ir.lng,lat:ir.lat}}function nn(ir){const hr=ir.lonLat.lon,or=ir.lonLat.lat;(Dt.value?.lng!==hr||Dt.value?.lat!==or)&&(Dt.value={lng:hr,lat:or})}function ln(ir){return{type:"raster",tiles:[ir.includes("{z}")?ir:`${ir}tile/{z}/{y}/{x}`],tileSize:256}}const gn=vue.computed(()=>St.value&&Tt.value?ln(Tt.value):pe.basemapUrl?ln(pe.basemapUrl):defaultBasemapSource),jn=vue.computed(()=>St.value?jt.value&&Mt.value?ln(Mt.value):null:pe.labelsUrl!==void 0?pe.labelsUrl===null?null:ln(pe.labelsUrl):defaultLabelsSource);function un(ir){St.value=ir.showImagery,Tt.value=ir.imageryUrl,Mt.value=ir.imageryLabelsUrl,jt.value=ir.showLabels}function _n(ir){const[hr,or]=ir.geometry.coordinates;Dt.value={lng:hr,lat:or},fe("searchResult",ir)}const kn=vue.computed(()=>pe.basemapBeforeId||BASEMAP_CEILING_ID),bn=vue.computed(()=>It.value!==null),fn=vue.computed(()=>({"layout-vertical":pe.toolPanelLayout==="vertical","layout-horizontal":pe.toolPanelLayout==="horizontal"})),hn=vue.computed(()=>{if(!bn.value)return{width:"100%",height:"100%"};const hr=`${pe.toolPanelSplitRatio??50}%`;return pe.toolPanelLayout==="vertical"?{width:"100%",height:hr}:{width:hr,height:"100%"}}),An=vue.computed(()=>{const hr=`${100-(pe.toolPanelSplitRatio??50)}%`;return pe.toolPanelLayout==="vertical"?{width:"100%",height:hr}:{width:hr,height:"100%"}});vue.provide("map",Me),vue.provide("cyclomediaConfig",pe.cyclomediaConfig||null),vue.provide("pictometryCredentials",pe.pictometryCredentials||null),vue.provide("toolLocation",Dt),vue.provide("isLoaded",Pe),vue.provide("handleBasemapChange",un);const Nn=vue.ref(!1);vue.provide("isDrawing",Nn);const Hn=vue.ref(new Set),Kn=ir=>{Hn.value.add(ir)};vue.provide("registerClickableLayer",Kn);const $n=ir=>{Hn.value.delete(ir)};vue.provide("unregisterClickableLayer",$n),vue.provide("cyclomediaActive",Ot),vue.provide("activeTool",It),vue.provide("toolLocation",Dt),vue.provide("handleToolToggle",Gt);const Pn=vue.ref(null),Yn=vue.ref(null),Dn=vue.ref(null),qn=vue.ref(null);return vue.provide("controlCorners",{"top-left":Pn,"top-right":Yn,"bottom-left":Dn,"bottom-right":qn}),vue.onMounted(()=>{ge.value&&(Me.value=new maplibregl.Map({container:ge.value,style:pe.style,center:pe.center,zoom:pe.zoom,minZoom:pe.minZoom,maxZoom:pe.maxZoom,pitch:pe.pitch,bearing:pe.bearing,attributionControl:!1}),Me.value.on("load",()=>{Pe.value=!0,Me.value&&fe("load",Me.value)}),Me.value.on("click",ir=>{if(!Nn.value){if(Hn.value.size>0&&Me.value){const hr=Array.from(Hn.value).filter(or=>Me.value?.getLayer(or));if(hr.length>0){const tr=[[ir.point.x-10,ir.point.y-10],[ir.point.x+10,ir.point.y+10]];if(Me.value.queryRenderedFeatures(tr,{layers:hr}).length>0)return}}fe("click",ir)}}),Me.value.on("move",()=>{Me.value&&(De.value=Me.value.getCenter(),yt.value=Me.value.getZoom(),fe("move",{center:Me.value.getCenter(),zoom:Me.value.getZoom()}))}),Me.value.on("moveend",()=>{if(Me.value){const ir=Me.value.getBounds();xt.value={west:ir.getWest(),south:ir.getSouth(),east:ir.getEast(),north:ir.getNorth()},fe("moveend",{center:Me.value.getCenter(),zoom:Me.value.getZoom(),bounds:xt.value})}}),Me.value.on("zoom",()=>{Me.value&&(yt.value=Me.value.getZoom(),fe("zoom",Me.value.getZoom()))}),Me.value.on("pitch",()=>{Me.value&&(Ve.value=Me.value.getPitch())}),Me.value.on("rotate",()=>{Me.value&&(bt.value=Me.value.getBearing())}))}),vue.watch(()=>pe.center,ir=>{Me.value&&ir&&(Me.value.setCenter(ir),De.value=ir)}),vue.watch(()=>pe.zoom,ir=>{Me.value&&ir!==void 0&&(Me.value.setZoom(ir),yt.value=ir)}),vue.watch(()=>pe.pitch,ir=>{Me.value&&ir!==void 0&&(Me.value.setPitch(ir),Ve.value=ir)}),vue.watch(()=>pe.bearing,ir=>{Me.value&&ir!==void 0&&(Me.value.setBearing(ir),bt.value=ir)}),vue.watch(()=>pe.style,ir=>{Me.value&&ir&&Me.value.setStyle(ir)}),vue.watch(()=>pe.minZoom,ir=>{Me.value&&ir!==void 0&&Me.value.setMinZoom(ir)}),vue.watch(()=>pe.maxZoom,ir=>{Me.value&&ir!==void 0&&Me.value.setMaxZoom(ir)}),vue.onBeforeUnmount(()=>{Pe.value=!1,Me.value&&Me.value.remove()}),Y({map:Me,isLoaded:Pe,currentCenter:De,currentZoom:yt,currentPitch:Ve,currentBearing:bt,currentBounds:xt,activeTool:It,toolLocation:Dt,cyclomediaActive:Ot}),(ir,hr)=>(vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["map-wrapper",fn.value])},[vue.createElementVNode("div",{ref_key:"mapContainer",ref:ge,class:"map-container",style:vue.normalizeStyle(hn.value),role:"region","aria-label":At.ariaLabel||void 0},[vue.createElementVNode("a",{href:"#",class:"map-keyboard-instructions",onClick:hr[0]||(hr[0]=vue.withModifiers(()=>{},["prevent"]))}," Use arrow keys to pan the map. Press + or - to zoom. Press Tab to exit. "),At.noDefaultTileLayers?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(_sfc_main$s,{key:0,id:"basemap",source:gn.value,"before-id":"basemap-labels"},null,8,["source"])),!At.noDefaultTileLayers&&jn.value?(vue.openBlock(),vue.createBlock(_sfc_main$s,{key:1,id:"basemap-labels",source:jn.value,"before-id":kn.value},null,8,["source","before-id"])):vue.createCommentVNode("",!0),vue.createVNode(_sfc_main$r,{id:BASEMAP_CEILING_ID}),It.value==="cyclomedia"?(vue.openBlock(),vue.createBlock(vue.unref(ue),{key:2,visible:!0,"min-zoom":17,onRecordingClick:pn})):vue.createCommentVNode("",!0),At.enableCyclomedia&&It.value==="cyclomedia"&&Ft.value?(vue.openBlock(),vue.createBlock(vue.unref(Te),{key:3,position:Ft.value,yaw:Jt.value,"h-fov":on.value,"icon-size":.5},null,8,["position","yaw","h-fov"])):vue.createCommentVNode("",!0),At.enableCyclomedia&&It.value==="cyclomedia"&&Ft.value?(vue.openBlock(),vue.createBlock(vue.unref(we),{key:4,position:Ft.value,yaw:Jt.value,"icon-size":.09},null,8,["position","yaw"])):vue.createCommentVNode("",!0),At.navigationControls?(vue.openBlock(),vue.createBlock(_sfc_main$m,{key:5,position:At.navigationControls.position},null,8,["position"])):vue.createCommentVNode("",!0),At.geolocationControl?(vue.openBlock(),vue.createBlock(_sfc_main$l,{key:6,position:At.geolocationControl.position},null,8,["position"])):vue.createCommentVNode("",!0),At.mapSearchControl?(vue.openBlock(),vue.createBlock(_sfc_main$q,{key:7,position:At.mapSearchControl.position,placeholder:At.mapSearchControl.placeholder??"Search for an address",onResult:_n},null,8,["position","placeholder"])):vue.createCommentVNode("",!0),At.basemapChangeControls?.toggle?(vue.openBlock(),vue.createBlock(_sfc_main$n,{key:8,position:At.basemapChangeControls.position,"show-dropdown":At.basemapChangeControls.dropdown,onChange:un},null,8,["position","show-dropdown"])):vue.createCommentVNode("",!0),At.enableCyclomedia?(vue.openBlock(),vue.createBlock(vue.unref(Z),{key:9,position:At.cyclomediaButtonPosition,active:It.value==="cyclomedia",onToggle:$t},null,8,["position","active"])):vue.createCommentVNode("",!0),At.enablePictometry?(vue.openBlock(),vue.createBlock(vue.unref(me),{key:10,position:At.pictometryButtonPosition,active:It.value==="pictometry",onToggle:Zt},null,8,["position","active"])):vue.createCommentVNode("",!0),vue.renderSlot(ir.$slots,"default",{},void 0,!0),vue.createElementVNode("div",{ref_key:"cornerTopLeft",ref:Pn,class:"map-controls map-controls-top-left"},null,512),vue.createElementVNode("div",{ref_key:"cornerTopRight",ref:Yn,class:"map-controls map-controls-top-right"},null,512),vue.createElementVNode("div",{ref_key:"cornerBottomLeft",ref:Dn,class:"map-controls map-controls-bottom-left"},null,512),vue.createElementVNode("div",{ref_key:"cornerBottomRight",ref:qn,class:"map-controls map-controls-bottom-right"},null,512)],12,_hoisted_1$c),vue.withDirectives(vue.createElementVNode("div",{class:"tool-panel-container",style:vue.normalizeStyle(An.value),role:"region","aria-label":"Cyclomedia street view"},[Nt.value?(vue.openBlock(),vue.createBlock(vue.unref(de),{key:0,"auto-open":!0,"pop-out-enabled":!0,onViewChange:an})):vue.createCommentVNode("",!0)],4),[[vue.vShow,It.value==="cyclomedia"]]),vue.withDirectives(vue.createElementVNode("div",{class:"tool-panel-container",style:vue.normalizeStyle(An.value),role:"region","aria-label":"Pictometry oblique imagery"},[Lt.value?(vue.openBlock(),vue.createBlock(vue.unref(Oe),{key:0,"auto-open":!0,"pop-out-enabled":!0,onViewChange:nn})):vue.createCommentVNode("",!0)],4),[[vue.vShow,It.value==="pictometry"]])],2))}}),_export_sfc=(At,Y)=>{const O=At.__vccOpts||At;for(const[Z,de]of Y)O[Z]=de;return O},Map$1=_export_sfc(_sfc_main$k,[["__scopeId","data-v-f58e117e"]]),_sfc_main$j=vue.defineComponent({__name:"MapMarker",props:{lngLat:{},color:{default:"#FF0000"},popup:{default:void 0},draggable:{type:Boolean,default:!1},rotation:{default:0},offset:{default:void 0},icon:{default:void 0},iconSize:{default:24},iconColor:{default:void 0},ariaLabel:{default:void 0},zIndex:{default:void 0},className:{}},emits:["dragstart","drag","dragend"],setup(At,{emit:Y}){const O=At,Z=Y,de=vue.useSlots(),ue=vue.ref(null),we=vue.inject("map"),Te=vue.inject("isLoaded");let me=null;const Oe=()=>{if(!we||!we.value||!O.lngLat)return;pe();const fe={draggable:O.draggable};if(de.default){const Me=document.createElement("div");ue.value=Me,fe.element=Me,fe.anchor="bottom"}else if(O.icon){const Me=document.createElement("div");Me.className="custom-marker",Me.innerHTML=`<i class="${O.icon}" style="font-size: ${O.iconSize}px; color: ${O.iconColor||O.color};"></i>`,fe.element=Me}else fe.color=O.color;if(O.rotation&&(fe.rotation=O.rotation),O.offset&&(fe.offset=O.offset),me=new maplibregl.Marker(fe).setLngLat(O.lngLat),O.popup){const Me=new maplibregl.Popup().setHTML(O.popup);me.setPopup(Me)}me.addTo(we.value);const ge=me.getElement();O.ariaLabel?(ge.setAttribute("role","img"),ge.setAttribute("aria-label",O.ariaLabel)):ge.setAttribute("aria-hidden","true"),O.zIndex!=null&&(ge.style.zIndex=String(O.zIndex)),O.draggable&&me&&(me.on("dragstart",()=>me&&Z("dragstart",me.getLngLat())),me.on("drag",()=>me&&Z("drag",me.getLngLat())),me.on("dragend",()=>me&&Z("dragend",me.getLngLat())))},pe=()=>{me&&(me.remove(),me=null),ue.value=null};return vue.watch(()=>O.zIndex,fe=>{if(!me)return;const ge=me.getElement();fe!=null?ge.style.zIndex=String(fe):ge.style.zIndex=""}),vue.watch(()=>O.lngLat,fe=>{fe&&me?me.setLngLat(fe):fe&&!me&&we?.value&&Te?.value?Oe():!fe&&me&&pe()},{deep:!0}),vue.watch(()=>Te?.value,async fe=>{fe&&we?.value&&O.lngLat&&(await vue.nextTick(),Oe())},{immediate:!0}),vue.onBeforeUnmount(()=>{pe()}),(fe,ge)=>ue.value&&fe.$slots.default?(vue.openBlock(),vue.createBlock(vue.Teleport,{key:0,to:ue.value},[vue.renderSlot(fe.$slots,"default")],8,["to"])):vue.createCommentVNode("",!0)}}),_hoisted_1$b=["role","aria-label","aria-hidden"],_hoisted_2$6=["role","aria-label","aria-hidden"],_hoisted_3$5={class:"icon-circle"},_hoisted_4$3={class:"pin-icon"},_hoisted_5$2={key:0,class:"pin-text"},_sfc_main$i=vue.defineComponent({__name:"MapIconTextPin",props:{icon:{},text:{default:void 0},colorTheme:{default:"dark-primary"},color:{default:void 0},size:{default:"large"},zoom:{default:void 0},selected:{type:Boolean,default:!1},visited:{type:Boolean,default:!1},hovered:{type:Boolean,default:!1},ariaLabel:{default:void 0},className:{}},emits:["mouseenter","mouseleave","click"],setup(At){const Y=At,O=vue.computed(()=>Y.zoom!==void 0?Y.zoom<12?"dot":Y.zoom<14?"small":"large":Y.size),Z=vue.computed(()=>{if(Y.color)return{"--pin-bg":"white","--pin-fg":Y.color,"--pin-border":"white","--pin-bg-hover":"var(--Schemes-Surface-Container-Low)","--pin-fg-hover":Y.color,"--pin-border-hover":Y.color,"--pin-bg-selected":Y.color,"--pin-fg-selected":"white","--pin-border-selected":Y.color,"--pin-bg-visited":"var(--Schemes-Surface-Container)","--pin-fg-visited":Y.color,"--pin-border-visited":"var(--Schemes-Surface-Container)"}});return(de,ue)=>O.value==="dot"?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:vue.normalizeClass(["map-icon-text-pin-dot",[`theme-${At.colorTheme}`,{selected:At.selected,visited:At.visited,hovered:At.hovered}]]),style:vue.normalizeStyle(Z.value),role:At.ariaLabel?"img":void 0,"aria-label":At.ariaLabel,"aria-hidden":At.ariaLabel?void 0:"true",onMouseenter:ue[0]||(ue[0]=we=>de.$emit("mouseenter",we)),onMouseleave:ue[1]||(ue[1]=we=>de.$emit("mouseleave",we)),onClick:ue[2]||(ue[2]=we=>de.$emit("click",we))},null,46,_hoisted_1$b)):(vue.openBlock(),vue.createElementBlock("div",{key:1,class:vue.normalizeClass(["map-icon-text-pin",[`theme-${At.colorTheme}`,`size-${O.value}`,{"icon-only":!At.text,selected:At.selected,visited:At.visited,hovered:At.hovered}]]),style:vue.normalizeStyle(Z.value),role:At.ariaLabel?"img":void 0,"aria-label":At.ariaLabel,"aria-hidden":At.ariaLabel?void 0:"true",onMouseenter:ue[3]||(ue[3]=we=>de.$emit("mouseenter",we)),onMouseleave:ue[4]||(ue[4]=we=>de.$emit("mouseleave",we)),onClick:ue[5]||(ue[5]=we=>de.$emit("click",we))},[vue.createElementVNode("div",_hoisted_3$5,[vue.createElementVNode("span",_hoisted_4$3,[vue.createVNode(vue.unref(FontAwesomeIcon),{icon:At.icon},null,8,["icon"])])]),At.text?(vue.openBlock(),vue.createElementBlock("span",_hoisted_5$2,vue.toDisplayString(At.text),1)):vue.createCommentVNode("",!0)],46,_hoisted_2$6))}}),MapIconTextPin=_export_sfc(_sfc_main$i,[["__scopeId","data-v-5935cd49"]]),ie=["disabled"],A=vue.defineComponent({inheritAttrs:!1,__name:"PhlButton",props:{href:{},to:{},target:{},rel:{},disabled:{type:Boolean,default:!1},clickTarget:{},variant:{default:"primary"},size:{default:"medium"},iconOnly:{type:Boolean,default:!1},iconRight:{type:Boolean},text:{},className:{},iconDefinition:{},iconClass:{},src:{},svgRaw:{}},setup(At){const Y=At,O=we=>"href"in we&&we.href!==void 0||"to"in we&&we.to!==void 0,Z=vue.computed(()=>ve$1("phila-button",`phila-button--${Y.variant}`,Y.size&&`is-${Y.size}`,Y.iconOnly&&"icon-button",Y.iconOnly&&Y.variant==="standard"&&"icon-button--standard",Y.className)),de=vue.computed(()=>O(Y)?"to"in Y&&Y.to!==void 0?{to:Y.to,disabled:Y.disabled,className:Z.value}:{href:Y.href,target:Y.target,rel:Y.rel,disabled:Y.disabled,className:Z.value}:{}),ue=vue.computed(()=>({iconDefinition:Y.iconDefinition,iconClass:Y.iconClass,src:Y.src,iconRight:Y.iconRight,iconOnly:Y.iconOnly,text:Y.text,size:Y.size}));return(we,Te)=>O(Y)?(vue.openBlock(),vue.createBlock(vue.unref(Ee),vue.mergeProps({key:0},{...de.value,...we.$attrs},{role:"button"}),{default:vue.withCtx(()=>[vue.createVNode(vue.unref(Re),vue.normalizeProps(vue.guardReactiveProps(ue.value)),{default:vue.withCtx(()=>[vue.renderSlot(we.$slots,"default",{},()=>[vue.createTextVNode(vue.toDisplayString(Y.text),1)])]),_:3},16)]),_:3},16)):(vue.openBlock(),vue.createElementBlock("button",vue.mergeProps({key:1,type:"button",disabled:Y.disabled,class:Z.value},we.$attrs),[vue.createVNode(vue.unref(Re),vue.normalizeProps(vue.guardReactiveProps(ue.value)),{default:vue.withCtx(()=>[vue.renderSlot(we.$slots,"default",{},()=>[vue.createTextVNode(vue.toDisplayString(Y.text),1)])]),_:3},16)],16,ie))}});var I={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"]};const oe=["id"],le={key:0,class:"tooltip__tail","aria-hidden":"true"},se={key:1,class:"tooltip__plain-row has-text-body-small"},ne={key:0,class:"tooltip__title-row"},ae={key:0},re=vue.defineComponent({__name:"TooltipBubble",props:{id:{},type:{default:"plain"},color:{default:"default"},tail:{type:Boolean,default:!1},placement:{default:"top-center"},title:{},dismissable:{type:Boolean,default:!1},className:{}},emits:["dismiss"],setup(At){const Y=At,O=vue.computed(()=>ve$1("tooltip","content","resets-link-colors",`tooltip--${Y.type}`,`tooltip--${Y.color}`,Y.tail&&`tooltip--${Y.placement}`,Y.className));return(Z,de)=>(vue.openBlock(),vue.createElementBlock("div",{id:At.id,class:vue.normalizeClass(O.value),role:"tooltip"},[At.tail?(vue.openBlock(),vue.createElementBlock("div",le)):vue.createCommentVNode("",!0),At.type==="plain"?(vue.openBlock(),vue.createElementBlock("div",se,[vue.renderSlot(Z.$slots,"default",{},void 0,!0),At.dismissable?(vue.openBlock(),vue.createBlock(vue.unref(A),{key:0,class:"tooltip__dismiss",variant:"standard",size:"extra-small","icon-only":!0,"icon-definition":vue.unref(I),"aria-label":"Dismiss tooltip",onClick:de[0]||(de[0]=ue=>Z.$emit("dismiss"))},null,8,["icon-definition"])):vue.createCommentVNode("",!0)])):(vue.openBlock(),vue.createElementBlock(vue.Fragment,{key:2},[At.title||At.dismissable?(vue.openBlock(),vue.createElementBlock("div",ne,[At.title?(vue.openBlock(),vue.createElementBlock("h6",ae,vue.toDisplayString(At.title),1)):vue.createCommentVNode("",!0),At.dismissable?(vue.openBlock(),vue.createBlock(vue.unref(A),{key:1,class:"tooltip__dismiss",variant:"standard",size:"extra-small","icon-only":!0,"icon-definition":vue.unref(I),"aria-label":"Dismiss tooltip",onClick:de[1]||(de[1]=ue=>Z.$emit("dismiss"))},null,8,["icon-definition"])):vue.createCommentVNode("",!0)])):vue.createCommentVNode("",!0),vue.renderSlot(Z.$slots,"default",{},void 0,!0)],64))],10,oe))}}),F=(At,Y)=>{const O=At.__vccOpts||At;for(const[Z,de]of Y)O[Z]=de;return O},ce=F(re,[["__scopeId","data-v-7ccd7c7d"]]),_sfc_main$h=vue.defineComponent({__name:"MapTooltip",props:{visible:{type:Boolean,default:!1},hoverBridge:{type:Boolean,default:!0},type:{default:"plain"},color:{default:"default"},tail:{type:Boolean,default:!1},placement:{default:"top-center"},title:{},dismissable:{type:Boolean},className:{}},emits:["mouseenter","mouseleave"],setup(At){const Y=At;return(O,Z)=>At.visible?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"map-tooltip",onMouseenter:Z[0]||(Z[0]=de=>At.hoverBridge?O.$emit("mouseenter",de):void 0),onMouseleave:Z[1]||(Z[1]=de=>At.hoverBridge?O.$emit("mouseleave",de):void 0)},[vue.createVNode(vue.unref(ce),{type:Y.type,color:Y.color,tail:Y.tail,placement:Y.placement,title:Y.title,dismissable:Y.dismissable,"class-name":Y.className},{default:vue.withCtx(()=>[vue.renderSlot(O.$slots,"default",{},void 0,!0)]),_:3},8,["type","color","tail","placement","title","dismissable","class-name"])],32)):vue.createCommentVNode("",!0)}}),MapTooltip=_export_sfc(_sfc_main$h,[["__scopeId","data-v-2ee3171f"]]),FOCUSABLE_SELECTOR='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',_sfc_main$g=vue.defineComponent({__name:"MapPopup",props:{lngLat:{},html:{default:void 0},closeButton:{type:Boolean,default:!0},closeOnClick:{type:Boolean,default:!0},className:{default:void 0},maxWidth:{default:"300px"},offset:{default:void 0},anchor:{default:"bottom"},showNavigation:{type:Boolean,default:!1},currentFeatureIndex:{default:0},totalFeatures:{default:1},layerName:{default:void 0}},emits:["close","open","next","previous"],setup(At,{emit:Y}){const O=At,Z=Y,de=vue.useSlots(),ue=vue.inject("map"),we=vue.inject("isLoaded");let Te=null;const me=vue.ref(null);let Oe=null,pe=null;const fe=()=>{if(!ue?.value||!Te)return;const Ve=ue.value;requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(!Te)return;const bt=Te.getElement();if(!bt)return;const xt=Ve.getContainer(),St=bt.getBoundingClientRect(),Tt=xt.getBoundingClientRect(),Mt=10;let jt=0,Ot=0;St.top<Tt.top+Mt&&(Ot=St.top-Tt.top-Mt),St.bottom>Tt.bottom-Mt&&(Ot=St.bottom-Tt.bottom+Mt),St.left<Tt.left+Mt&&(jt=St.left-Tt.left-Mt),St.right>Tt.right-Mt&&(jt=St.right-Tt.right+Mt),(jt!==0||Ot!==0)&&Ve.panBy([jt,Ot],{duration:300})})})},ge=()=>{if(!ue?.value)return;const Ve=document.activeElement;yt(),Oe=Ve;const bt={closeButton:O.closeButton,closeOnClick:O.closeOnClick,maxWidth:O.maxWidth},St=O.showNavigation&&O.totalFeatures&&O.totalFeatures>1?"multi-feature-popup":"";if((O.className||St)&&(bt.className=[O.className,St].filter(Boolean).join(" ")),O.offset&&(bt.offset=O.offset),O.anchor&&(bt.anchor=O.anchor),Te=new maplibregl.Popup(bt),de.default&&me.value)Te.setDOMContent(me.value);else if(O.html){let Mt="";O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&(Mt+=Me()),Mt+=`<div class="popup-scroll-content">${O.html}</div>`,Te.setHTML(Mt),O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&setTimeout(()=>{Pe()},0)}Te.setLngLat(O.lngLat),Te.addTo(ue.value),Z("open"),Te.on("close",()=>{De(),Oe&&typeof Oe.focus=="function"&&(Oe.focus(),Oe=null),Z("close")});const Tt=Te.getElement();if(Tt){const Mt=Tt.querySelector(".maplibregl-popup-content");if(Mt){Mt.setAttribute("tabindex","-1"),Mt.setAttribute("role","dialog"),Mt.setAttribute("aria-label","Map popup"),Mt.focus({preventScroll:!0});const Ot=Mt.querySelector(".popup-scroll-content");Ot&&(Ot.scrollTop=0)}const jt=Tt.querySelector(".maplibregl-popup-close-button");jt&&!jt.getAttribute("aria-label")&&jt.setAttribute("aria-label","Close"),pe=Ot=>{if(Ot.key==="Escape"){Ot.preventDefault(),Te?.remove();return}if(Ot.key==="Tab"){const It=Tt.querySelectorAll(FOCUSABLE_SELECTOR);if(It.length===0)return;const Nt=It[0],Lt=It[It.length-1];Ot.shiftKey?(document.activeElement===Nt||document.activeElement===Mt)&&(Ot.preventDefault(),Lt.focus()):document.activeElement===Lt&&(Ot.preventDefault(),Nt.focus())}},Tt.addEventListener("keydown",pe),fe()}},Me=()=>{const Ve=O.layerName?`<div class="popup-layer-name">${O.layerName}</div>`:"",bt=(O.currentFeatureIndex??0)+1,xt=O.totalFeatures??1,St=(O.currentFeatureIndex??0)>0,Tt=(O.currentFeatureIndex??0)<xt-1;return`
|
|
562
562
|
<div class="popup-navigation-header">
|
|
563
563
|
${Ve}
|
|
564
564
|
<div class="popup-navigation-controls">
|
|
@@ -567,7 +567,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
567
567
|
${Tt?'<button class="popup-nav-button popup-nav-next" data-action="next" aria-label="Next feature">Next →</button>':""}
|
|
568
568
|
</div>
|
|
569
569
|
</div>
|
|
570
|
-
`},Pe=()=>{if(!Te)return;const Ve=Te.getElement();if(!Ve)return;const bt=Ve.querySelector('[data-action="previous"]'),xt=Ve.querySelector('[data-action="next"]');bt&&bt.addEventListener("click",St=>{St.stopPropagation(),Z("previous")}),xt&&xt.addEventListener("click",St=>{St.stopPropagation(),Z("next")})},De=()=>{if(pe&&Te){const Ve=Te.getElement();Ve&&Ve.removeEventListener("keydown",pe),pe=null}},yt=()=>{Te&&(De(),Te.remove(),Te=null)};return vue.watch(()=>we?.value,Ve=>{Ve&&ue?.value&&!Te&&ge()}),vue.watch(()=>O.lngLat,Ve=>{Te&&Ve&&(Te.setLngLat(Ve),fe())}),vue.watch([()=>O.html,()=>O.currentFeatureIndex,()=>O.showNavigation],([Ve])=>{if(Te&&Ve&&!de.default){let bt="";O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&(bt+=Me()),bt+=`<div class="popup-scroll-content">${Ve}</div>`,Te.setHTML(bt),O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&setTimeout(()=>{Pe()},0)}}),vue.onMounted(()=>{we?.value&&ue?.value&&vue.nextTick(()=>{ge()})}),vue.onBeforeUnmount(()=>{yt()}),(Ve,bt)=>Ve.$slots.default?(vue.openBlock(),vue.createElementBlock("div",{key:0,ref_key:"slotContainer",ref:me,class:"popup-scroll-content"},[vue.renderSlot(Ve.$slots,"default")],512)):vue.createCommentVNode("",!0)}}),LAYER_EVENTS=["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"];function useVectorLayer(At,Y){const O=vue.inject("map"),Z=vue.inject("isLoaded"),de=vue.inject("registerClickableLayer"),ue=vue.inject("unregisterClickableLayer"),we=vue.ref(!1);let Te=!0,me=JSON.stringify(vue.unref(At.source));const Oe=[];let pe=null;const fe=vue.getCurrentInstance(),ge=!!fe?.vnode.props?.onClick,Me=Ve=>{if(!O?.value)return;const bt=vue.unref(At.id),xt=vue.unref(At.source),St=vue.unref(At.sourceLayer),Tt=vue.unref(At.paint),Mt=vue.unref(At.layout),jt=vue.unref(At.filter),Ot=vue.unref(At.minzoom),It=vue.unref(At.maxzoom),Nt=vue.unref(At.beforeId);typeof xt=="object"&&(O.value.getSource(bt)||O.value.addSource(bt,xt));const Lt={id:bt,type:At.type,source:typeof xt=="object"?bt:xt,paint:Tt||{},layout:Mt||{}};if(St&&(Lt["source-layer"]=St),jt&&(Lt.filter=jt),Ot!==void 0&&(Lt.minzoom=Ot),It!==void 0&&(Lt.maxzoom=It),!O.value.getLayer(bt)){const Dt=Ve??Nt;let zt;Dt&&O.value.getLayer(Dt)&&(zt=Dt),O.value.addLayer(Lt,zt),we.value=!0,De(),ge&&de&&de(bt)}},Pe=()=>{if(!O?.value)return;const Ve=vue.unref(At.id),bt=vue.unref(At.source);try{ge&&ue&&ue(Ve),yt(),O.value.getLayer?.(Ve)&&(O.value.removeLayer(Ve),we.value=!1),typeof bt=="object"&&O.value.getSource?.(Ve)&&O.value.removeSource(Ve)}catch{}},De=()=>{if(!O?.value||!fe?.vnode.props)return;const Ve=vue.unref(At.id);for(const bt of LAYER_EVENTS){const xt=`on${bt.charAt(0).toUpperCase()}${bt.slice(1)}`;if(fe.vnode.props[xt])if(bt==="click")pe=Tt=>{const Mt=[[Tt.point.x-10,Tt.point.y-10],[Tt.point.x+10,Tt.point.y+10]],jt=O.value.queryRenderedFeatures(Mt,{layers:[Ve]});if(jt.length>0){const Ot=Tt;Ot.features=jt,Y("click",Ot)}},O.value.on("click",pe);else{const St=Tt=>{Y(bt,Tt)};O.value.on(bt,Ve,St),Oe.push({event:bt,handler:St})}}if(ge){const bt=()=>{O?.value&&(O.value.getCanvas().style.cursor="pointer")},xt=()=>{O?.value&&(O.value.getCanvas().style.cursor="")};O.value.on("mouseenter",Ve,bt),O.value.on("mouseleave",Ve,xt),Oe.push({event:"mouseenter",handler:bt}),Oe.push({event:"mouseleave",handler:xt})}},yt=()=>{if(!O?.value)return;const Ve=vue.unref(At.id);for(const{event:bt,handler:xt}of Oe)try{O.value.off(bt,Ve,xt)}catch{}if(Oe.length=0,pe){try{O.value.off("click",pe)}catch{}pe=null}};return vue.watch(()=>Z?.value,Ve=>{try{if(!Te||!Ve||!O?.value)return;Me()}catch{}},{immediate:!0}),vue.watch(()=>vue.unref(At.paint),Ve=>{try{const bt=vue.unref(At.id);if(!Te||!O?.value?.getLayer?.(bt)||!Ve)return;Object.keys(Ve).forEach(xt=>{!Te||!O?.value||O.value.setPaintProperty(bt,xt,Ve[xt])})}catch{}},{deep:!0}),vue.watch(()=>vue.unref(At.layout),Ve=>{try{const bt=vue.unref(At.id);if(!Te||!O?.value?.getLayer?.(bt)||!Ve)return;Object.keys(Ve).forEach(xt=>{!Te||!O?.value||O.value.setLayoutProperty(bt,xt,Ve[xt])})}catch{}},{deep:!0}),vue.watch(()=>vue.unref(At.filter),Ve=>{try{const bt=vue.unref(At.id);if(!Te||!O?.value?.getLayer?.(bt))return;O.value.setFilter(bt,Ve)}catch{}}),vue.watch(()=>vue.unref(At.source),Ve=>{try{if(!Te||!O?.value)return;const bt=vue.unref(At.id),xt=JSON.stringify(Ve);if(xt===me)return;if(me=xt,typeof Ve=="object"&&Ve.type==="geojson"){const St=O.value.getSource(bt);if(St&&"setData"in St){St.setData(Ve.data);return}}Pe(),Me()}catch{}},{deep:!0}),vue.onBeforeUnmount(()=>{Te=!1}),vue.onUnmounted(()=>{Pe()}),{map:O,isLoaded:Z,isLayerAdded:we,addLayer:Me,removeLayer:Pe}}const _hoisted_1$a=["data-layer-id"],_sfc_main$f=vue.defineComponent({__name:"FillLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge}=vue.toRefs(O);return useVectorLayer({id:de,type:"fill",source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge},Z),(Me,Pe)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"fill"},null,8,_hoisted_1$a))}}),_hoisted_1$9=["data-layer-id"],_sfc_main$e=vue.defineComponent({__name:"LineLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge}=vue.toRefs(O);return useVectorLayer({id:de,type:"line",source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge},Z),(Me,Pe)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"line"},null,8,_hoisted_1$9))}}),_hoisted_1$8=["data-layer-id"],_sfc_main$d=vue.defineComponent({__name:"CircleLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge}=vue.toRefs(O);return useVectorLayer({id:de,type:"circle",source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge},Z),(Me,Pe)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"circle"},null,8,_hoisted_1$8))}}),_hoisted_1$7=["data-layer-id"],_sfc_main$c=vue.defineComponent({__name:"SymbolLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},icon:{default:void 0},iconName:{default:void 0},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,filter:me,minzoom:Oe,maxzoom:pe,beforeId:fe,icon:ge,iconName:Me}=vue.toRefs(O),Pe=vue.computed(()=>{const bt=O.layout||{};return O.iconName?{...bt,"icon-image":O.iconName}:bt}),{map:De,isLoaded:yt,removeLayer:Ve}=useVectorLayer({id:de,type:"symbol",source:ue,sourceLayer:we,paint:Te,layout:Pe,filter:me,minzoom:Oe,maxzoom:pe,beforeId:fe},Z);return vue.watch(()=>yt?.value,async bt=>{if(!(!bt||!De?.value||!ge.value||!Me.value)){if(De.value.hasImage(Me.value)){De.value.triggerRepaint();return}try{const xt=await De.value.loadImage(ge.value);if(!De.value)return;De.value.hasImage(Me.value)||De.value.addImage(Me.value,xt.data),De.value.triggerRepaint()}catch{Ve()}}},{immediate:!0}),vue.onUnmounted(()=>{if(!(!De?.value||!Me.value))try{De.value.hasImage(Me.value)&&De.value.removeImage(Me.value)}catch{}}),(bt,xt)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"symbol"},null,8,_hoisted_1$7))}}),_hoisted_1$6={key:0,class:"map-loading-overlay"},_hoisted_2$5={class:"map-loading-content"},_hoisted_3$4={class:"map-loading-text"},_sfc_main$b=vue.defineComponent({__name:"MapLoadingOverlay",props:{visible:{type:Boolean},text:{default:"Loading..."}},setup(At){return(Y,O)=>(vue.openBlock(),vue.createBlock(vue.Transition,{name:"overlay-fade"},{default:vue.withCtx(()=>[At.visible?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$6,[vue.createElementVNode("div",_hoisted_2$5,[O[0]||(O[0]=vue.createElementVNode("div",{class:"map-loading-spinner"},null,-1)),vue.createElementVNode("span",_hoisted_3$4,vue.toDisplayString(At.text),1)])])):vue.createCommentVNode("",!0)]),_:1}))}}),MapLoadingOverlay=_export_sfc(_sfc_main$b,[["__scopeId","data-v-760930b2"]]),_hoisted_1$5=["aria-label"],_sfc_main$a=vue.defineComponent({__name:"MapFloatingPanel",props:{position:{default:"top-right"},visible:{type:Boolean,default:!0},offset:{default:()=>({x:10,y:10})},leaveRoomForControls:{type:Boolean,default:!0},ariaLabel:{default:"Map panel"},className:{}},setup(At){const Y=At,O=vue.ref(null);let Z=null;vue.watch(()=>Y.visible,ue=>{ue?(Z=document.activeElement,vue.nextTick(()=>{O.value?.focus()})):Z&&typeof Z.focus=="function"&&(Z.focus(),Z=null)});const de=vue.computed(()=>{const ue={position:"absolute",zIndex:"1"},we=Y.offset?.x??10,Te=Y.offset?.y??10,me=Y.leaveRoomForControls?50:0;switch(Y.position){case"top-right":ue.top=`${Te}px`,ue.right=`${me+we}px`;break;case"top-left":ue.top=`${Te}px`,ue.left=`${me+we}px`;break;case"bottom-right":ue.bottom=`${Te}px`,ue.right=`${me+we}px`;break;case"bottom-left":ue.bottom=`${Te}px`,ue.left=`${me+we}px`;break}return ue});return(ue,we)=>vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{ref_key:"panelRef",ref:O,class:"map-floating-panel",style:vue.normalizeStyle(de.value),tabindex:"-1",role:"region","aria-label":At.ariaLabel},[vue.renderSlot(ue.$slots,"default")],12,_hoisted_1$5)),[[vue.vShow,At.visible]])}}),E=vue.defineComponent({__name:"CheckboxIcon",props:{checked:{type:Boolean}},setup(At){return(Y,O)=>(vue.openBlock(),vue.createElementBlock("svg",{class:vue.normalizeClass(["checkbox-svg",{"checkbox-svg--checked":At.checked}]),width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[...O[0]||(O[0]=[vue.createElementVNode("rect",{class:"checkbox-bg",x:"1",y:"1",width:"18",height:"18",rx:"3",ry:"3"},null,-1),vue.createElementVNode("path",{class:"checkbox-check",d:"M 4.5 10 L 8.5 14 L 15.5 6","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))}}),_hoisted_1$4={class:"map-checkbox-legend__title"},_hoisted_2$4={class:"map-checkbox-legend__rows"},_hoisted_3$3=["checked","onChange"],_hoisted_4$2={class:"map-checkbox-legend__label"},_sfc_main$9=vue.defineComponent({__name:"MapCheckboxLegend",props:{items:{},modelValue:{},title:{default:"Legend"},position:{default:"bottom-left"},visible:{type:Boolean,default:!0},leaveRoomForControls:{type:Boolean,default:!0},className:{}},emits:["update:modelValue","change"],setup(At,{emit:Y}){const O=At,Z=Y;function de(we){return O.modelValue.includes(we)}function ue(we,Te){const me=Te.target.checked,Oe=me?[...O.modelValue,we]:O.modelValue.filter(pe=>pe!==we);Z("update:modelValue",Oe),Z("change",we,me)}return(we,Te)=>(vue.openBlock(),vue.createBlock(_sfc_main$a,{position:At.position,visible:At.visible,"leave-room-for-controls":At.leaveRoomForControls,"aria-label":At.title},{default:vue.withCtx(()=>[vue.createElementVNode("h4",_hoisted_1$4,vue.toDisplayString(At.title),1),vue.createElementVNode("div",_hoisted_2$4,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(At.items,me=>(vue.openBlock(),vue.createElementBlock("label",{key:me.value,class:"map-checkbox-legend__row"},[vue.createElementVNode("input",{type:"checkbox",class:"map-checkbox-legend__input",checked:de(me.value),onChange:Oe=>ue(me.value,Oe)},null,40,_hoisted_3$3),vue.createVNode(vue.unref(E),{checked:de(me.value)},null,8,["checked"]),vue.createElementVNode("span",{class:"map-checkbox-legend__swatch",style:vue.normalizeStyle({backgroundColor:me.color}),"aria-hidden":"true"},null,4),vue.createElementVNode("span",_hoisted_4$2,vue.toDisplayString(me.label),1)]))),128))])]),_:1},8,["position","visible","leave-room-for-controls","aria-label"]))}}),MapCheckboxLegend=_export_sfc(_sfc_main$9,[["__scopeId","data-v-fb0765eb"]]),rulersImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAGJJREFUOI1jYGBgOM3AwPAfCTMwMDA8QxPDhT8xoAlIM5AG/jMi2QoDjKQYwITEkSFRM9w2qrkA5oqBc8EIDYNHDAzkp0I4QE/fMDF5YvnoBsiTwscWBiQBJgYGhpMU6D8CAJDrOVecOVsbAAAAAElFTkSuQmCC",_hoisted_1$3={"aria-live":"polite",class:"draw-tool-sr-only"},_hoisted_2$3=["innerHTML"],drawLayerId="drawing-polygon-layer",drawLineLayerId="drawing-polygon-line-layer",drawPointsLayerId="drawing-points-layer",drawLabelsLayerId="drawing-labels-layer",completedPolygonsLayerId="completed-polygons-layer",completedPolygonsLineLayerId="completed-polygons-line-layer",completedPolygonsPointLayerId="completed-polygons-point-layer",completedPolygonsPointsLayerId="completed-polygons-points-layer",completedPolygonsLabelsLayerId="completed-polygons-labels-layer",_sfc_main$8=vue.defineComponent({__name:"DrawTool",props:{icon:{},image:{},position:{default:"top-right"},title:{default:"Draw Tool"},iconSize:{default:18},teleportTo:{default:void 0},className:{}},emits:["polygonComplete"],setup(At,{emit:Y}){const O=At,Z=O.icon?void 0:O.image||rulersImage,de=Y,ue=vue.inject("isDrawing",vue.ref(!1)),we=vue.ref(""),Te=vue.ref([]),me=vue.ref([]),Oe=vue.ref(null);let pe=null,fe=null,ge=null;const Me=(un,_n)=>{const bn=un.lat*Math.PI/180,fn=_n.lat*Math.PI/180,hn=(_n.lat-un.lat)*Math.PI/180,An=(_n.lng-un.lng)*Math.PI/180,Nn=Math.sin(hn/2)*Math.sin(hn/2)+Math.cos(bn)*Math.cos(fn)*Math.sin(An/2)*Math.sin(An/2);return(6371e3*(2*Math.atan2(Math.sqrt(Nn),Math.sqrt(1-Nn)))*3.28084).toFixed(2)},Pe=(un,_n)=>({lng:(un.lng+_n.lng)/2,lat:(un.lat+_n.lat)/2}),De=un=>{if(un.length<2)return"0";let _n=0;for(let kn=1;kn<un.length;kn++)_n+=parseFloat(Me(un[kn-1],un[kn]));return un.length>=3&&(_n+=parseFloat(Me(un[un.length-1],un[0]))),_n.toFixed(2)},yt=()=>{Ft?.value&&(pe&&(Ft.value.off("click",pe),pe=null),fe&&(Ft.value.off("dblclick",fe),fe=null))},Ve=un=>{if(un.length<3)return"0";const _n=un.reduce((Nn,Hn)=>Nn+Hn.lat,0)/un.length,kn=111320,bn=111320*Math.cos(_n*Math.PI/180),fn=un.map(Nn=>({x:Nn.lng*bn,y:Nn.lat*kn}));let hn=0;for(let Nn=0;Nn<fn.length;Nn++){const Hn=(Nn+1)%fn.length;hn+=fn[Nn].x*fn[Hn].y,hn-=fn[Hn].x*fn[Nn].y}return hn=Math.abs(hn)/2,(hn*10.7639).toFixed(2)},bt=()=>{if(Te.value.length<1)return;const un=`shape-${Date.now()}`;if(Te.value.length===1){const bn=Te.value[0];me.value.push({id:un,coordinates:[[bn.lng,bn.lat]],points:[bn],isLine:!1,isPoint:!0}),Oe.value=un,we.value="Shape completed",de("polygonComplete",{type:"Point",coordinates:[bn.lng,bn.lat]}),Te.value=[],yt(),Ft?.value&&(Ft.value.getCanvas().style.cursor="");return}const _n=Te.value.map(bn=>[bn.lng,bn.lat]),kn=Te.value.length>=3;kn&&_n.push(_n[0]),me.value.push({id:un,coordinates:_n,points:[...Te.value],isLine:!kn,isPoint:!1}),Oe.value=un,we.value="Shape completed",kn?de("polygonComplete",{type:"Polygon",coordinates:[_n]}):de("polygonComplete",{type:"LineString",coordinates:_n}),Te.value=[],yt(),Ft?.value&&(Ft.value.getCanvas().style.cursor="")},xt=bt,St=()=>{if(!Oe.value)return;const un=me.value.findIndex(_n=>_n.id===Oe.value);un!==-1&&(me.value.splice(un,1),Oe.value=null,we.value="Shape deleted")},Tt=()=>{Te.value=[],yt(),ue.value=!1,we.value="Drawing mode ended",Ft?.value&&(Ft.value.getCanvas().style.cursor="")},Mt=()=>{Te.value.length>=1&&bt()},jt=()=>{if(!Ft?.value)return;ge=bn=>{const fn=bn.originalEvent?.target;if(!(fn&&(fn.closest(".vertices-table")||fn.closest(".maplibregl-ctrl")))&&Oe.value!==null&&Te.value.length===0)try{const hn=Ft.value?.getLayer(completedPolygonsLayerId)?Ft.value.queryRenderedFeatures(bn.point,{layers:[completedPolygonsLayerId]}):[],An=Ft.value?.getLayer(completedPolygonsLineLayerId)?Ft.value.queryRenderedFeatures(bn.point,{layers:[completedPolygonsLineLayerId]}):[],Nn=Ft.value?.getLayer(completedPolygonsPointLayerId)?Ft.value.queryRenderedFeatures(bn.point,{layers:[completedPolygonsPointLayerId]}):[];(hn.length>0?hn:An.length>0?An:Nn).length===0&&(Oe.value=null)}catch{}},Ft.value.on("click",ge);let un=null,_n=null;Ft.value.on("mouseenter",completedPolygonsPointsLayerId,()=>{const bn=Nt();bn&&!bn.isPoint&&Ft?.value&&(Ft.value.getCanvas().style.cursor="move")}),Ft.value.on("mouseenter",completedPolygonsPointLayerId,()=>{const bn=Nt();bn&&bn.isPoint&&Ft?.value&&(Ft.value.getCanvas().style.cursor="move")}),Ft.value.on("mouseleave",completedPolygonsPointsLayerId,()=>{!ue.value&&Ft?.value&&(Ft.value.getCanvas().style.cursor="")}),Ft.value.on("mouseleave",completedPolygonsPointLayerId,()=>{!ue.value&&Ft?.value&&(Ft.value.getCanvas().style.cursor="")});const kn=(bn,fn)=>{const hn=Nt();if(!hn||!bn.features||bn.features.length===0||!Ft?.value)return;const An=bn.features[0];if(!An.properties?.active)return;bn.preventDefault(),fn?(un=0,_n=hn.id):(un=An.properties.index,_n=An.properties.polygonId),Ft.value.getCanvas().style.cursor="grabbing";const Nn=Kn=>{if(un===null||_n===null)return;const $n=me.value.find(Yn=>Yn.id===_n);if(!$n)return;const Pn=Kn.lngLat;$n.points[un]={lat:Pn.lat,lng:Pn.lng},$n.isPoint?$n.coordinates=[[Pn.lng,Pn.lat]]:($n.coordinates=$n.points.map(Yn=>[Yn.lng,Yn.lat]),$n.isLine||$n.coordinates.push($n.coordinates[0]))},Hn=()=>{un=null,_n=null,Ft?.value&&(Ft.value.getCanvas().style.cursor="move",Ft.value.off("mousemove",Nn),Ft.value.off("mouseup",Hn))};Ft.value.on("mousemove",Nn),Ft.value.on("mouseup",Hn)};Ft.value.on("mousedown",completedPolygonsPointsLayerId,bn=>{kn(bn,!1)}),Ft.value.on("mousedown",completedPolygonsPointLayerId,bn=>{kn(bn,!0)})},Ot=un=>{const _n=un.originalEvent?.target;if(!(_n&&(_n.closest(".vertices-table")||_n.closest(".maplibregl-ctrl")))&&un.features&&un.features.length>0){const kn=un.features[0].properties?.id;kn&&(ue.value=!0,Oe.value=kn)}},It=()=>{Ft?.value&&(ue.value=!ue.value,ue.value?(Ft.value.getCanvas().style.cursor="crosshair",Te.value=[],we.value="Drawing mode active",pe=un=>{if(Ft?.value){if(Te.value.length>=3){const _n=Te.value[0],kn=un.lngLat,bn=Ft.value.project([_n.lng,_n.lat]),fn=Ft.value.project([kn.lng,kn.lat]);if(Math.sqrt(Math.pow(bn.x-fn.x,2)+Math.pow(bn.y-fn.y,2))<10){xt();return}}Te.value.push(un.lngLat),we.value=`Point added, ${Te.value.length} point${Te.value.length===1?"":"s"} total`}},fe=un=>{un.preventDefault(),Te.value.length>0&&Te.value.pop(),Te.value.length>=1&&bt()},Ft.value.on("click",pe),Ft.value.on("dblclick",fe)):(yt(),Te.value=[],we.value="Drawing mode ended",Ft.value.getCanvas().style.cursor=""))},Nt=()=>{if(Oe.value!==null)return me.value.find(un=>un.id===Oe.value)},Lt=()=>{if(ue.value&&Te.value.length>0)return Te.value;const un=Nt();return un?un.points:[]},Dt=()=>{const un=Lt();if(un.length===0&&ue.value)return`
|
|
570
|
+
`},Pe=()=>{if(!Te)return;const Ve=Te.getElement();if(!Ve)return;const bt=Ve.querySelector('[data-action="previous"]'),xt=Ve.querySelector('[data-action="next"]');bt&&bt.addEventListener("click",St=>{St.stopPropagation(),Z("previous")}),xt&&xt.addEventListener("click",St=>{St.stopPropagation(),Z("next")})},De=()=>{if(pe&&Te){const Ve=Te.getElement();Ve&&Ve.removeEventListener("keydown",pe),pe=null}},yt=()=>{Te&&(De(),Te.remove(),Te=null)};return vue.watch(()=>we?.value,Ve=>{Ve&&ue?.value&&!Te&&ge()}),vue.watch(()=>O.lngLat,Ve=>{Te&&Ve&&(Te.setLngLat(Ve),fe())}),vue.watch([()=>O.html,()=>O.currentFeatureIndex,()=>O.showNavigation],([Ve])=>{if(Te&&Ve&&!de.default){let bt="";O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&(bt+=Me()),bt+=`<div class="popup-scroll-content">${Ve}</div>`,Te.setHTML(bt),O.showNavigation&&O.totalFeatures&&O.totalFeatures>1&&setTimeout(()=>{Pe()},0)}}),vue.onMounted(()=>{we?.value&&ue?.value&&vue.nextTick(()=>{ge()})}),vue.onBeforeUnmount(()=>{yt()}),(Ve,bt)=>Ve.$slots.default?(vue.openBlock(),vue.createElementBlock("div",{key:0,ref_key:"slotContainer",ref:me,class:"popup-scroll-content"},[vue.renderSlot(Ve.$slots,"default")],512)):vue.createCommentVNode("",!0)}}),LAYER_EVENTS=["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"];function useVectorLayer(At,Y){const O=vue.inject("map"),Z=vue.inject("isLoaded"),de=vue.inject("registerClickableLayer"),ue=vue.inject("unregisterClickableLayer"),we=vue.ref(!1);let Te=!0,me=JSON.stringify(vue.unref(At.source));const Oe=[];let pe=null;const fe=vue.getCurrentInstance(),ge=!!fe?.vnode.props?.onClick,Me=Ve=>{if(!O?.value)return;const bt=vue.unref(At.id),xt=vue.unref(At.source),St=vue.unref(At.sourceLayer),Tt=vue.unref(At.paint),Mt=vue.unref(At.layout),jt=vue.unref(At.filter),Ot=vue.unref(At.minzoom),It=vue.unref(At.maxzoom),Nt=vue.unref(At.beforeId);typeof xt=="object"&&(O.value.getSource(bt)||O.value.addSource(bt,xt));const Lt={id:bt,type:At.type,source:typeof xt=="object"?bt:xt,paint:Tt||{},layout:Mt||{}};if(St&&(Lt["source-layer"]=St),jt&&(Lt.filter=jt),Ot!==void 0&&(Lt.minzoom=Ot),It!==void 0&&(Lt.maxzoom=It),!O.value.getLayer(bt)){const Dt=Ve??Nt;let zt;Dt&&O.value.getLayer(Dt)&&(zt=Dt),O.value.addLayer(Lt,zt),we.value=!0,De(),ge&&de&&de(bt)}},Pe=()=>{if(!O?.value)return;const Ve=vue.unref(At.id),bt=vue.unref(At.source);try{ge&&ue&&ue(Ve),yt(),O.value.getLayer?.(Ve)&&(O.value.removeLayer(Ve),we.value=!1),typeof bt=="object"&&O.value.getSource?.(Ve)&&O.value.removeSource(Ve)}catch{}},De=()=>{if(!O?.value||!fe?.vnode.props)return;const Ve=vue.unref(At.id);for(const bt of LAYER_EVENTS){const xt=`on${bt.charAt(0).toUpperCase()}${bt.slice(1)}`;if(fe.vnode.props[xt])if(bt==="click")pe=Tt=>{const Mt=[[Tt.point.x-10,Tt.point.y-10],[Tt.point.x+10,Tt.point.y+10]],jt=O.value.queryRenderedFeatures(Mt,{layers:[Ve]});if(jt.length>0){const Ot=Tt;Ot.features=jt,Y("click",Ot)}},O.value.on("click",pe);else{const St=Tt=>{Y(bt,Tt)};O.value.on(bt,Ve,St),Oe.push({event:bt,handler:St})}}if(ge){const bt=()=>{O?.value&&(O.value.getCanvas().style.cursor="pointer")},xt=()=>{O?.value&&(O.value.getCanvas().style.cursor="")};O.value.on("mouseenter",Ve,bt),O.value.on("mouseleave",Ve,xt),Oe.push({event:"mouseenter",handler:bt}),Oe.push({event:"mouseleave",handler:xt})}},yt=()=>{if(!O?.value)return;const Ve=vue.unref(At.id);for(const{event:bt,handler:xt}of Oe)try{O.value.off(bt,Ve,xt)}catch{}if(Oe.length=0,pe){try{O.value.off("click",pe)}catch{}pe=null}};return vue.watch(()=>Z?.value,Ve=>{try{if(!Te||!Ve||!O?.value)return;Me()}catch{}},{immediate:!0}),vue.watch(()=>vue.unref(At.paint),Ve=>{try{const bt=vue.unref(At.id);if(!Te||!O?.value?.getLayer?.(bt)||!Ve)return;Object.keys(Ve).forEach(xt=>{!Te||!O?.value||O.value.setPaintProperty(bt,xt,Ve[xt])})}catch{}},{deep:!0}),vue.watch(()=>vue.unref(At.layout),Ve=>{try{const bt=vue.unref(At.id);if(!Te||!O?.value?.getLayer?.(bt)||!Ve)return;Object.keys(Ve).forEach(xt=>{!Te||!O?.value||O.value.setLayoutProperty(bt,xt,Ve[xt])})}catch{}},{deep:!0}),vue.watch(()=>vue.unref(At.filter),Ve=>{try{const bt=vue.unref(At.id);if(!Te||!O?.value?.getLayer?.(bt))return;O.value.setFilter(bt,Ve)}catch{}}),vue.watch(()=>vue.unref(At.source),Ve=>{try{if(!Te||!O?.value)return;const bt=vue.unref(At.id),xt=JSON.stringify(Ve);if(xt===me)return;if(me=xt,typeof Ve=="object"&&Ve.type==="geojson"){const St=O.value.getSource(bt);if(St&&"setData"in St){St.setData(Ve.data);return}}Pe(),Me()}catch{}},{deep:!0}),vue.onBeforeUnmount(()=>{Te=!1}),vue.onUnmounted(()=>{Pe()}),{map:O,isLoaded:Z,isLayerAdded:we,addLayer:Me,removeLayer:Pe}}const _hoisted_1$a=["data-layer-id"],_sfc_main$f=vue.defineComponent({__name:"FillLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge}=vue.toRefs(O);return useVectorLayer({id:de,type:"fill",source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge},Z),(Me,Pe)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"fill"},null,8,_hoisted_1$a))}}),_hoisted_1$9=["data-layer-id"],_sfc_main$e=vue.defineComponent({__name:"LineLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge}=vue.toRefs(O);return useVectorLayer({id:de,type:"line",source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge},Z),(Me,Pe)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"line"},null,8,_hoisted_1$9))}}),_hoisted_1$8=["data-layer-id"],_sfc_main$d=vue.defineComponent({__name:"CircleLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge}=vue.toRefs(O);return useVectorLayer({id:de,type:"circle",source:ue,sourceLayer:we,paint:Te,layout:me,filter:Oe,minzoom:pe,maxzoom:fe,beforeId:ge},Z),(Me,Pe)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"circle"},null,8,_hoisted_1$8))}}),_hoisted_1$7=["data-layer-id"],_sfc_main$c=vue.defineComponent({__name:"SymbolLayer",props:{paint:{default:()=>({})},layout:{default:()=>({})},icon:{default:void 0},iconName:{default:void 0},id:{},source:{},sourceLayer:{default:void 0},filter:{type:[Boolean,Array],default:void 0},minzoom:{default:void 0},maxzoom:{default:void 0},beforeId:{default:void 0},className:{}},emits:["click","dblclick","mouseenter","mouseleave","mousemove","mousedown","mouseup","contextmenu"],setup(At,{emit:Y}){const O=At,Z=Y,{id:de,source:ue,sourceLayer:we,paint:Te,filter:me,minzoom:Oe,maxzoom:pe,beforeId:fe,icon:ge,iconName:Me}=vue.toRefs(O),Pe=vue.computed(()=>{const bt=O.layout||{};return O.iconName?{...bt,"icon-image":O.iconName}:bt}),{map:De,isLoaded:yt,removeLayer:Ve}=useVectorLayer({id:de,type:"symbol",source:ue,sourceLayer:we,paint:Te,layout:Pe,filter:me,minzoom:Oe,maxzoom:pe,beforeId:fe},Z);return vue.watch(()=>yt?.value,async bt=>{if(!(!bt||!De?.value||!ge.value||!Me.value)){if(De.value.hasImage(Me.value)){De.value.triggerRepaint();return}try{const xt=await De.value.loadImage(ge.value);if(!De.value)return;De.value.hasImage(Me.value)||De.value.addImage(Me.value,xt.data),De.value.triggerRepaint()}catch{Ve()}}},{immediate:!0}),vue.onUnmounted(()=>{if(!(!De?.value||!Me.value))try{De.value.hasImage(Me.value)&&De.value.removeImage(Me.value)}catch{}}),(bt,xt)=>(vue.openBlock(),vue.createElementBlock("span",{style:{display:"none"},"data-layer-id":O.id,"data-layer-type":"symbol"},null,8,_hoisted_1$7))}}),_hoisted_1$6={key:0,class:"map-loading-overlay"},_hoisted_2$5={class:"map-loading-content"},_hoisted_3$4={class:"map-loading-text"},_sfc_main$b=vue.defineComponent({__name:"MapLoadingOverlay",props:{visible:{type:Boolean},text:{default:"Loading..."}},setup(At){return(Y,O)=>(vue.openBlock(),vue.createBlock(vue.Transition,{name:"overlay-fade"},{default:vue.withCtx(()=>[At.visible?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$6,[vue.createElementVNode("div",_hoisted_2$5,[O[0]||(O[0]=vue.createElementVNode("div",{class:"map-loading-spinner"},null,-1)),vue.createElementVNode("span",_hoisted_3$4,vue.toDisplayString(At.text),1)])])):vue.createCommentVNode("",!0)]),_:1}))}}),MapLoadingOverlay=_export_sfc(_sfc_main$b,[["__scopeId","data-v-760930b2"]]),_hoisted_1$5=["aria-label"],_sfc_main$a=vue.defineComponent({__name:"MapFloatingPanel",props:{position:{default:"top-right"},visible:{type:Boolean,default:!0},offset:{default:()=>({x:10,y:10})},leaveRoomForControls:{type:Boolean,default:!0},ariaLabel:{default:"Map panel"},teleportTo:{default:null},className:{}},setup(At){const Y=At,O=vue.ref(null);let Z=null;vue.watch(()=>Y.visible,ue=>{ue?(Z=document.activeElement,vue.nextTick(()=>{O.value?.focus()})):Z&&typeof Z.focus=="function"&&(Z.focus(),Z=null)});const de=vue.computed(()=>{if(Y.teleportTo)return{};const ue={position:"absolute",zIndex:"1"},we=Y.offset?.x??10,Te=Y.offset?.y??10,me=Y.leaveRoomForControls?50:0;switch(Y.position){case"top-right":ue.top=`${Te}px`,ue.right=`${me+we}px`;break;case"top-left":ue.top=`${Te}px`,ue.left=`${me+we}px`;break;case"bottom-right":ue.bottom=`${Te}px`,ue.right=`${me+we}px`;break;case"bottom-left":ue.bottom=`${Te}px`,ue.left=`${me+we}px`;break}return ue});return(ue,we)=>(vue.openBlock(),vue.createBlock(vue.Teleport,{to:At.teleportTo||"body",disabled:!At.teleportTo},[vue.withDirectives(vue.createElementVNode("div",{ref_key:"panelRef",ref:O,class:"map-floating-panel",style:vue.normalizeStyle(de.value),tabindex:"-1",role:"region","aria-label":At.ariaLabel},[vue.renderSlot(ue.$slots,"default")],12,_hoisted_1$5),[[vue.vShow,At.visible]])],8,["to","disabled"]))}}),E=vue.defineComponent({__name:"CheckboxIcon",props:{checked:{type:Boolean}},setup(At){return(Y,O)=>(vue.openBlock(),vue.createElementBlock("svg",{class:vue.normalizeClass(["checkbox-svg",{"checkbox-svg--checked":At.checked}]),width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[...O[0]||(O[0]=[vue.createElementVNode("rect",{class:"checkbox-bg",x:"1",y:"1",width:"18",height:"18",rx:"3",ry:"3"},null,-1),vue.createElementVNode("path",{class:"checkbox-check",d:"M 4.5 10 L 8.5 14 L 15.5 6","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))}}),_hoisted_1$4={class:"map-checkbox-legend__title"},_hoisted_2$4={class:"map-checkbox-legend__rows"},_hoisted_3$3=["checked","onChange"],_hoisted_4$2={class:"map-checkbox-legend__label"},_sfc_main$9=vue.defineComponent({__name:"MapCheckboxLegend",props:{items:{},modelValue:{},title:{default:"Legend"},position:{default:"bottom-left"},visible:{type:Boolean,default:!0},leaveRoomForControls:{type:Boolean,default:!0},teleportTo:{default:null},className:{}},emits:["update:modelValue","change"],setup(At,{emit:Y}){const O=At,Z=Y;function de(we){return O.modelValue.includes(we)}function ue(we,Te){const me=Te.target.checked,Oe=me?[...O.modelValue,we]:O.modelValue.filter(pe=>pe!==we);Z("update:modelValue",Oe),Z("change",we,me)}return(we,Te)=>(vue.openBlock(),vue.createBlock(_sfc_main$a,{position:At.position,visible:At.visible,"leave-room-for-controls":At.leaveRoomForControls,"aria-label":At.title,"teleport-to":At.teleportTo},{default:vue.withCtx(()=>[vue.createElementVNode("h4",_hoisted_1$4,vue.toDisplayString(At.title),1),vue.createElementVNode("div",_hoisted_2$4,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(At.items,me=>(vue.openBlock(),vue.createElementBlock("label",{key:me.value,class:"map-checkbox-legend__row"},[vue.createElementVNode("input",{type:"checkbox",class:"map-checkbox-legend__input",checked:de(me.value),onChange:Oe=>ue(me.value,Oe)},null,40,_hoisted_3$3),vue.createVNode(vue.unref(E),{checked:de(me.value)},null,8,["checked"]),vue.createElementVNode("span",{class:"map-checkbox-legend__swatch",style:vue.normalizeStyle({backgroundColor:me.color}),"aria-hidden":"true"},null,4),vue.createElementVNode("span",_hoisted_4$2,vue.toDisplayString(me.label),1)]))),128))])]),_:1},8,["position","visible","leave-room-for-controls","aria-label","teleport-to"]))}}),MapCheckboxLegend=_export_sfc(_sfc_main$9,[["__scopeId","data-v-9ee5a36f"]]),rulersImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAGJJREFUOI1jYGBgOM3AwPAfCTMwMDA8QxPDhT8xoAlIM5AG/jMi2QoDjKQYwITEkSFRM9w2qrkA5oqBc8EIDYNHDAzkp0I4QE/fMDF5YvnoBsiTwscWBiQBJgYGhpMU6D8CAJDrOVecOVsbAAAAAElFTkSuQmCC",_hoisted_1$3={"aria-live":"polite",class:"draw-tool-sr-only"},_hoisted_2$3=["innerHTML"],drawLayerId="drawing-polygon-layer",drawLineLayerId="drawing-polygon-line-layer",drawPointsLayerId="drawing-points-layer",drawLabelsLayerId="drawing-labels-layer",completedPolygonsLayerId="completed-polygons-layer",completedPolygonsLineLayerId="completed-polygons-line-layer",completedPolygonsPointLayerId="completed-polygons-point-layer",completedPolygonsPointsLayerId="completed-polygons-points-layer",completedPolygonsLabelsLayerId="completed-polygons-labels-layer",_sfc_main$8=vue.defineComponent({__name:"DrawTool",props:{icon:{},image:{},position:{default:"top-right"},title:{default:"Draw Tool"},iconSize:{default:18},teleportTo:{default:void 0},className:{}},emits:["polygonComplete"],setup(At,{emit:Y}){const O=At,Z=O.icon?void 0:O.image||rulersImage,de=Y,ue=vue.inject("isDrawing",vue.ref(!1)),we=vue.ref(""),Te=vue.ref([]),me=vue.ref([]),Oe=vue.ref(null);let pe=null,fe=null,ge=null;const Me=(un,_n)=>{const bn=un.lat*Math.PI/180,fn=_n.lat*Math.PI/180,hn=(_n.lat-un.lat)*Math.PI/180,An=(_n.lng-un.lng)*Math.PI/180,Nn=Math.sin(hn/2)*Math.sin(hn/2)+Math.cos(bn)*Math.cos(fn)*Math.sin(An/2)*Math.sin(An/2);return(6371e3*(2*Math.atan2(Math.sqrt(Nn),Math.sqrt(1-Nn)))*3.28084).toFixed(2)},Pe=(un,_n)=>({lng:(un.lng+_n.lng)/2,lat:(un.lat+_n.lat)/2}),De=un=>{if(un.length<2)return"0";let _n=0;for(let kn=1;kn<un.length;kn++)_n+=parseFloat(Me(un[kn-1],un[kn]));return un.length>=3&&(_n+=parseFloat(Me(un[un.length-1],un[0]))),_n.toFixed(2)},yt=()=>{Ft?.value&&(pe&&(Ft.value.off("click",pe),pe=null),fe&&(Ft.value.off("dblclick",fe),fe=null))},Ve=un=>{if(un.length<3)return"0";const _n=un.reduce((Nn,Hn)=>Nn+Hn.lat,0)/un.length,kn=111320,bn=111320*Math.cos(_n*Math.PI/180),fn=un.map(Nn=>({x:Nn.lng*bn,y:Nn.lat*kn}));let hn=0;for(let Nn=0;Nn<fn.length;Nn++){const Hn=(Nn+1)%fn.length;hn+=fn[Nn].x*fn[Hn].y,hn-=fn[Hn].x*fn[Nn].y}return hn=Math.abs(hn)/2,(hn*10.7639).toFixed(2)},bt=()=>{if(Te.value.length<1)return;const un=`shape-${Date.now()}`;if(Te.value.length===1){const bn=Te.value[0];me.value.push({id:un,coordinates:[[bn.lng,bn.lat]],points:[bn],isLine:!1,isPoint:!0}),Oe.value=un,we.value="Shape completed",de("polygonComplete",{type:"Point",coordinates:[bn.lng,bn.lat]}),Te.value=[],yt(),Ft?.value&&(Ft.value.getCanvas().style.cursor="");return}const _n=Te.value.map(bn=>[bn.lng,bn.lat]),kn=Te.value.length>=3;kn&&_n.push(_n[0]),me.value.push({id:un,coordinates:_n,points:[...Te.value],isLine:!kn,isPoint:!1}),Oe.value=un,we.value="Shape completed",kn?de("polygonComplete",{type:"Polygon",coordinates:[_n]}):de("polygonComplete",{type:"LineString",coordinates:_n}),Te.value=[],yt(),Ft?.value&&(Ft.value.getCanvas().style.cursor="")},xt=bt,St=()=>{if(!Oe.value)return;const un=me.value.findIndex(_n=>_n.id===Oe.value);un!==-1&&(me.value.splice(un,1),Oe.value=null,we.value="Shape deleted")},Tt=()=>{Te.value=[],yt(),ue.value=!1,we.value="Drawing mode ended",Ft?.value&&(Ft.value.getCanvas().style.cursor="")},Mt=()=>{Te.value.length>=1&&bt()},jt=()=>{if(!Ft?.value)return;ge=bn=>{const fn=bn.originalEvent?.target;if(!(fn&&(fn.closest(".vertices-table")||fn.closest(".maplibregl-ctrl")))&&Oe.value!==null&&Te.value.length===0)try{const hn=Ft.value?.getLayer(completedPolygonsLayerId)?Ft.value.queryRenderedFeatures(bn.point,{layers:[completedPolygonsLayerId]}):[],An=Ft.value?.getLayer(completedPolygonsLineLayerId)?Ft.value.queryRenderedFeatures(bn.point,{layers:[completedPolygonsLineLayerId]}):[],Nn=Ft.value?.getLayer(completedPolygonsPointLayerId)?Ft.value.queryRenderedFeatures(bn.point,{layers:[completedPolygonsPointLayerId]}):[];(hn.length>0?hn:An.length>0?An:Nn).length===0&&(Oe.value=null)}catch{}},Ft.value.on("click",ge);let un=null,_n=null;Ft.value.on("mouseenter",completedPolygonsPointsLayerId,()=>{const bn=Nt();bn&&!bn.isPoint&&Ft?.value&&(Ft.value.getCanvas().style.cursor="move")}),Ft.value.on("mouseenter",completedPolygonsPointLayerId,()=>{const bn=Nt();bn&&bn.isPoint&&Ft?.value&&(Ft.value.getCanvas().style.cursor="move")}),Ft.value.on("mouseleave",completedPolygonsPointsLayerId,()=>{!ue.value&&Ft?.value&&(Ft.value.getCanvas().style.cursor="")}),Ft.value.on("mouseleave",completedPolygonsPointLayerId,()=>{!ue.value&&Ft?.value&&(Ft.value.getCanvas().style.cursor="")});const kn=(bn,fn)=>{const hn=Nt();if(!hn||!bn.features||bn.features.length===0||!Ft?.value)return;const An=bn.features[0];if(!An.properties?.active)return;bn.preventDefault(),fn?(un=0,_n=hn.id):(un=An.properties.index,_n=An.properties.polygonId),Ft.value.getCanvas().style.cursor="grabbing";const Nn=Kn=>{if(un===null||_n===null)return;const $n=me.value.find(Yn=>Yn.id===_n);if(!$n)return;const Pn=Kn.lngLat;$n.points[un]={lat:Pn.lat,lng:Pn.lng},$n.isPoint?$n.coordinates=[[Pn.lng,Pn.lat]]:($n.coordinates=$n.points.map(Yn=>[Yn.lng,Yn.lat]),$n.isLine||$n.coordinates.push($n.coordinates[0]))},Hn=()=>{un=null,_n=null,Ft?.value&&(Ft.value.getCanvas().style.cursor="move",Ft.value.off("mousemove",Nn),Ft.value.off("mouseup",Hn))};Ft.value.on("mousemove",Nn),Ft.value.on("mouseup",Hn)};Ft.value.on("mousedown",completedPolygonsPointsLayerId,bn=>{kn(bn,!1)}),Ft.value.on("mousedown",completedPolygonsPointLayerId,bn=>{kn(bn,!0)})},Ot=un=>{const _n=un.originalEvent?.target;if(!(_n&&(_n.closest(".vertices-table")||_n.closest(".maplibregl-ctrl")))&&un.features&&un.features.length>0){const kn=un.features[0].properties?.id;kn&&(ue.value=!0,Oe.value=kn)}},It=()=>{Ft?.value&&(ue.value=!ue.value,ue.value?(Ft.value.getCanvas().style.cursor="crosshair",Te.value=[],we.value="Drawing mode active",pe=un=>{if(Ft?.value){if(Te.value.length>=3){const _n=Te.value[0],kn=un.lngLat,bn=Ft.value.project([_n.lng,_n.lat]),fn=Ft.value.project([kn.lng,kn.lat]);if(Math.sqrt(Math.pow(bn.x-fn.x,2)+Math.pow(bn.y-fn.y,2))<10){xt();return}}Te.value.push(un.lngLat),we.value=`Point added, ${Te.value.length} point${Te.value.length===1?"":"s"} total`}},fe=un=>{un.preventDefault(),Te.value.length>0&&Te.value.pop(),Te.value.length>=1&&bt()},Ft.value.on("click",pe),Ft.value.on("dblclick",fe)):(yt(),Te.value=[],we.value="Drawing mode ended",Ft.value.getCanvas().style.cursor=""))},Nt=()=>{if(Oe.value!==null)return me.value.find(un=>un.id===Oe.value)},Lt=()=>{if(ue.value&&Te.value.length>0)return Te.value;const un=Nt();return un?un.points:[]},Dt=()=>{const un=Lt();if(un.length===0&&ue.value)return`
|
|
571
571
|
<div class="draw-instructions">
|
|
572
572
|
<div class="instructions-title">Measure distances and areas</div>
|
|
573
573
|
<div class="instructions-text">Start creating a measurement by adding points to the map.</div>
|
|
@@ -7971,7 +7971,7 @@ const _hoisted_1$d = ["title", "aria-expanded"], _hoisted_2$7 = { class: "dropdo
|
|
|
7971
7971
|
},
|
|
7972
7972
|
emits: ["load", "click", "move", "moveend", "zoom", "searchResult"],
|
|
7973
7973
|
setup(At, { expose: Y, emit: O }) {
|
|
7974
|
-
const Z = defineAsyncComponent(() => Promise.resolve().then(() => CyclomediaButton$1)), de = defineAsyncComponent(() => Promise.resolve().then(() => CyclomediaPanel$1)), ue = defineAsyncComponent(() => import("./CyclomediaRecordingsLayer-
|
|
7974
|
+
const Z = defineAsyncComponent(() => Promise.resolve().then(() => CyclomediaButton$1)), de = defineAsyncComponent(() => Promise.resolve().then(() => CyclomediaPanel$1)), ue = defineAsyncComponent(() => import("./CyclomediaRecordingsLayer-C3Ay4rI8.js")), we = defineAsyncComponent(() => import("./CyclomediaCameraIcon-D4s14gEL.js")), Te = defineAsyncComponent(() => import("./CyclomediaViewcone-D9g_eSUL.js")), me = defineAsyncComponent(() => Promise.resolve().then(() => PictometryButton$1)), Oe = defineAsyncComponent(() => Promise.resolve().then(() => PictometryPanel$1)), pe = At, fe = O, ge = ref(null), Me = ref(null), Pe = ref(!1), De = ref(pe.center), yt = ref(pe.zoom), Ve = ref(pe.pitch), bt = ref(pe.bearing), xt = ref(null), St = ref(!1), Tt = ref(defaultImageryOptions[0]?.imageryUrl || null), Mt = ref(defaultImageryOptions[0]?.imageryLabelsUrl || null), jt = ref(defaultImageryOptions[0]?.showLabels ?? !0), Ot = ref(!1), It = ref(null), Nt = ref(!1), Lt = ref(!1), Dt = ref(null);
|
|
7975
7975
|
function zt(ir, hr) {
|
|
7976
7976
|
It.value = ir, ir === "cyclomedia" ? (Nt.value || (Dt.value = hr, Nt.value = !0), Ot.value = !0) : ir === "pictometry" && (Lt.value || (Dt.value = hr, Lt.value = !0));
|
|
7977
7977
|
}
|
|
@@ -9129,6 +9129,7 @@ const _hoisted_1$a = ["data-layer-id"], _sfc_main$f = /* @__PURE__ */ defineComp
|
|
|
9129
9129
|
offset: { default: () => ({ x: 10, y: 10 }) },
|
|
9130
9130
|
leaveRoomForControls: { type: Boolean, default: !0 },
|
|
9131
9131
|
ariaLabel: { default: "Map panel" },
|
|
9132
|
+
teleportTo: { default: null },
|
|
9132
9133
|
className: {}
|
|
9133
9134
|
},
|
|
9134
9135
|
setup(At) {
|
|
@@ -9143,6 +9144,8 @@ const _hoisted_1$a = ["data-layer-id"], _sfc_main$f = /* @__PURE__ */ defineComp
|
|
|
9143
9144
|
}
|
|
9144
9145
|
);
|
|
9145
9146
|
const de = computed(() => {
|
|
9147
|
+
if (Y.teleportTo)
|
|
9148
|
+
return {};
|
|
9146
9149
|
const ue = {
|
|
9147
9150
|
position: "absolute",
|
|
9148
9151
|
zIndex: "1"
|
|
@@ -9163,19 +9166,24 @@ const _hoisted_1$a = ["data-layer-id"], _sfc_main$f = /* @__PURE__ */ defineComp
|
|
|
9163
9166
|
}
|
|
9164
9167
|
return ue;
|
|
9165
9168
|
});
|
|
9166
|
-
return (ue, we) =>
|
|
9167
|
-
|
|
9168
|
-
|
|
9169
|
-
class: "map-floating-panel",
|
|
9170
|
-
style: normalizeStyle(de.value),
|
|
9171
|
-
tabindex: "-1",
|
|
9172
|
-
role: "region",
|
|
9173
|
-
"aria-label": At.ariaLabel
|
|
9169
|
+
return (ue, we) => (openBlock(), createBlock(Teleport, {
|
|
9170
|
+
to: At.teleportTo || "body",
|
|
9171
|
+
disabled: !At.teleportTo
|
|
9174
9172
|
}, [
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
|
|
9178
|
-
|
|
9173
|
+
withDirectives(createElementVNode("div", {
|
|
9174
|
+
ref_key: "panelRef",
|
|
9175
|
+
ref: O,
|
|
9176
|
+
class: "map-floating-panel",
|
|
9177
|
+
style: normalizeStyle(de.value),
|
|
9178
|
+
tabindex: "-1",
|
|
9179
|
+
role: "region",
|
|
9180
|
+
"aria-label": At.ariaLabel
|
|
9181
|
+
}, [
|
|
9182
|
+
renderSlot(ue.$slots, "default")
|
|
9183
|
+
], 12, _hoisted_1$5), [
|
|
9184
|
+
[vShow, At.visible]
|
|
9185
|
+
])
|
|
9186
|
+
], 8, ["to", "disabled"]));
|
|
9179
9187
|
}
|
|
9180
9188
|
}), E = /* @__PURE__ */ defineComponent({
|
|
9181
9189
|
__name: "CheckboxIcon",
|
|
@@ -9218,6 +9226,7 @@ const _hoisted_1$a = ["data-layer-id"], _sfc_main$f = /* @__PURE__ */ defineComp
|
|
|
9218
9226
|
position: { default: "bottom-left" },
|
|
9219
9227
|
visible: { type: Boolean, default: !0 },
|
|
9220
9228
|
leaveRoomForControls: { type: Boolean, default: !0 },
|
|
9229
|
+
teleportTo: { default: null },
|
|
9221
9230
|
className: {}
|
|
9222
9231
|
},
|
|
9223
9232
|
emits: ["update:modelValue", "change"],
|
|
@@ -9234,7 +9243,8 @@ const _hoisted_1$a = ["data-layer-id"], _sfc_main$f = /* @__PURE__ */ defineComp
|
|
|
9234
9243
|
position: At.position,
|
|
9235
9244
|
visible: At.visible,
|
|
9236
9245
|
"leave-room-for-controls": At.leaveRoomForControls,
|
|
9237
|
-
"aria-label": At.title
|
|
9246
|
+
"aria-label": At.title,
|
|
9247
|
+
"teleport-to": At.teleportTo
|
|
9238
9248
|
}, {
|
|
9239
9249
|
default: withCtx(() => [
|
|
9240
9250
|
createElementVNode("h4", _hoisted_1$4, toDisplayString(At.title), 1),
|
|
@@ -9262,9 +9272,9 @@ const _hoisted_1$a = ["data-layer-id"], _sfc_main$f = /* @__PURE__ */ defineComp
|
|
|
9262
9272
|
])
|
|
9263
9273
|
]),
|
|
9264
9274
|
_: 1
|
|
9265
|
-
}, 8, ["position", "visible", "leave-room-for-controls", "aria-label"]));
|
|
9275
|
+
}, 8, ["position", "visible", "leave-room-for-controls", "aria-label", "teleport-to"]));
|
|
9266
9276
|
}
|
|
9267
|
-
}), MapCheckboxLegend = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-
|
|
9277
|
+
}), MapCheckboxLegend = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-9ee5a36f"]]), rulersImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAGJJREFUOI1jYGBgOM3AwPAfCTMwMDA8QxPDhT8xoAlIM5AG/jMi2QoDjKQYwITEkSFRM9w2qrkA5oqBc8EIDYNHDAzkp0I4QE/fMDF5YvnoBsiTwscWBiQBJgYGhpMU6D8CAJDrOVecOVsbAAAAAElFTkSuQmCC", _hoisted_1$3 = {
|
|
9268
9278
|
"aria-live": "polite",
|
|
9269
9279
|
class: "draw-tool-sr-only"
|
|
9270
9280
|
}, _hoisted_2$3 = ["innerHTML"], drawLayerId = "drawing-polygon-layer", drawLineLayerId = "drawing-polygon-line-layer", drawPointsLayerId = "drawing-points-layer", drawLabelsLayerId = "drawing-labels-layer", completedPolygonsLayerId = "completed-polygons-layer", completedPolygonsLineLayerId = "completed-polygons-line-layer", completedPolygonsPointLayerId = "completed-polygons-point-layer", completedPolygonsPointsLayerId = "completed-polygons-points-layer", completedPolygonsLabelsLayerId = "completed-polygons-labels-layer", _sfc_main$8 = /* @__PURE__ */ defineComponent({
|