UNPKG

vue-leaflet-sidepanel

Version:
2 lines (1 loc) 4.13 kB
(function(a,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("leaflet"),require("leaflet.sidepanel")):typeof define=="function"&&define.amd?define(["exports","vue","leaflet","leaflet.sidepanel"],e):(a=typeof globalThis<"u"?globalThis:a||self,e(a["vue-leaflet-sidepanel"]={},a.Vue,a.L))})(this,function(a,e,_){"use strict";function y(n){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(l,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return l.default=n,Object.freeze(l)}const h=y(_),g={class:"sidepanel-tab"},B=["data-tab-link"],S=e.defineComponent({__name:"LSidepanelTabNav",props:{link:{}},setup(n){return(l,t)=>(e.openBlock(),e.createElementBlock("li",g,[e.createElementVNode("a",{href:"#",class:"sidebar-tab-link",role:"tab","data-tab-link":`tab-${l.link}`},[e.renderSlot(l.$slots,"default")],8,B)]))}}),T=["id"],V={class:"sidepanel-inner-wrapper"},E={key:0,class:"sidepanel-tabs-wrapper","aria-label":"sidepanel tab navigation"},N={class:"sidepanel-tabs"},C={class:"sidepanel-content-wrapper"},$={class:"sidepanel-content"},M=e.defineComponent({__name:"LSidepanel",props:e.mergeModels({id:{},headings:{default:void 0},position:{default:"left"},tabsPosition:{default:"top"},darkMode:{type:Boolean,default:!1},defaultTab:{default:1},pushControls:{type:Boolean,default:!1},size:{default:"400px"}},{modelValue:{type:Boolean,default:!1,required:!1},modelModifiers:{}}),emits:e.mergeModels(["tabClick"],["update:modelValue"]),setup(n,{emit:l}){const t=e.useModel(n,"modelValue");e.watch(t,s=>{f.value&&(s?k():b())});const r=n,{id:c,headings:o,position:u,tabsPosition:w,darkMode:O,defaultTab:j,pushControls:D,size:q}=r,x=l,z=e.useSlots(),m=e.ref(null),f=e.ref(null),i=e.ref();e.onMounted(()=>{var s;if(!f.value)return console.error("Panel not found");if(m.value=f.value.parentElement,!m.value)return console.error("Map not found");i.value=h.control.sidepanel(c,{panelPosition:u,hasTabs:o&&o.length>0,tabsPosition:w,darkMode:O,defaultTab:j||((s=o==null?void 0:o[0])==null?void 0:s.key),pushControls:D,size:q,onTabClick:d=>x("tabClick",d),onToggle:d=>t.value=d}),i.value.addTo(m.value),t.value?k():b()});const k=()=>{if(!i.value)return console.error("Panel not found");i.value.open(),t.value=!0},b=()=>{if(!i.value)return console.error("Panel not found");i.value.close(),t.value=!1};return(s,d)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(c),ref_key:"panel",ref:f,class:"sidepanel","aria-label":"side panel","aria-hidden":"false"},[e.createElementVNode("div",V,[e.unref(o)&&e.unref(o).length>0?(e.openBlock(),e.createElementBlock("nav",E,[e.createElementVNode("ul",N,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),p=>(e.openBlock(),e.createElementBlock("li",{key:p.key},[e.createVNode(S,{link:p.key},{default:e.withCtx(()=>[e.unref(z)[`heading.${p.key}`]?e.renderSlot(s.$slots,`heading.${p.key}`,{key:0}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(p.value),1)],64))]),_:2},1032,["link"])]))),128))])])):e.createCommentVNode("",!0),e.createElementVNode("div",C,[e.createElementVNode("div",$,[e.renderSlot(s.$slots,"default")])])]),d[0]||(d[0]=e.createElementVNode("div",{class:"sidepanel-toggle-container"},[e.createElementVNode("button",{class:"sidepanel-toggle-button",type:"button","aria-label":"toggle side panel"})],-1))],8,T))}}),P=["data-tab-content"],L=e.defineComponent({__name:"LSidepanelTab",props:{link:{},level:{default:"h3"},heading:{default:void 0}},setup(n){const l=n,{link:t,level:r,heading:c}=e.toRefs(l);return(o,u)=>(e.openBlock(),e.createElementBlock("div",{class:"sidepanel-tab-content","data-tab-content":`tab-${e.unref(t)}`},[e.unref(c)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r)),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(c)),1)]),_:1})):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default")],8,P))}});a.LSidepanel=M,a.LSidepanelTab=L,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});