@vcmap/ui 5.0.0-rc.6 → 5.0.0-rc.7
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/README.md +3 -0
- package/config/aerowest.config.json +2 -1
- package/config/base.config.json +7 -7
- package/dist/assets/cesium/Workers/{AttributeCompression-27507afe.js → AttributeCompression-80665726.js} +1 -1
- package/dist/assets/cesium/Workers/{AxisAlignedBoundingBox-7565c1e8.js → AxisAlignedBoundingBox-a655a4bc.js} +1 -1
- package/dist/assets/cesium/Workers/{BoundingRectangle-9d707275.js → BoundingRectangle-c3b79029.js} +1 -1
- package/dist/assets/cesium/Workers/{BoxGeometry-fb31d3b5.js → BoxGeometry-f8f9c981.js} +1 -1
- package/dist/assets/cesium/Workers/{Color-56bb5728.js → Color-de06a177.js} +1 -1
- package/dist/assets/cesium/Workers/{CoplanarPolygonGeometryLibrary-72143c19.js → CoplanarPolygonGeometryLibrary-48cdc26d.js} +1 -1
- package/dist/assets/cesium/Workers/{CorridorGeometryLibrary-7bae1712.js → CorridorGeometryLibrary-ddc027d3.js} +1 -1
- package/dist/assets/cesium/Workers/{CylinderGeometry-331891fe.js → CylinderGeometry-82a8cbe6.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipseGeometry-5e3f67b6.js → EllipseGeometry-32d55454.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipseGeometryLibrary-dbc15162.js → EllipseGeometryLibrary-b2ae188a.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipseOutlineGeometry-21191fce.js → EllipseOutlineGeometry-f05a5a27.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipsoidGeodesic-cc3bace8.js → EllipsoidGeodesic-19e75e11.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipsoidGeometry-8bfa24a9.js → EllipsoidGeometry-7c99fc81.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipsoidOutlineGeometry-48d9c023.js → EllipsoidOutlineGeometry-21c243df.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipsoidRhumbLine-125a8b72.js → EllipsoidRhumbLine-6145377b.js} +1 -1
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-a01286f6.js +1 -0
- package/dist/assets/cesium/Workers/{EncodedCartesian3-96fdc0ef.js → EncodedCartesian3-d9f5c4a4.js} +1 -1
- package/dist/assets/cesium/Workers/{FrustumGeometry-9ab86004.js → FrustumGeometry-17776af8.js} +1 -1
- package/dist/assets/cesium/Workers/GeometryAttribute-89a520b9.js +1 -0
- package/dist/assets/cesium/Workers/{GeometryInstance-13e4ff38.js → GeometryInstance-4fbf16ba.js} +1 -1
- package/dist/assets/cesium/Workers/{GeometryPipeline-e0eb4567.js → GeometryPipeline-309fad76.js} +1 -1
- package/dist/assets/cesium/Workers/IntersectionTests-58aa8f80.js +1 -0
- package/dist/assets/cesium/Workers/{Matrix2-37e55508.js → Matrix2-47e98d76.js} +0 -0
- package/dist/assets/cesium/Workers/{OrientedBoundingBox-e9c07538.js → OrientedBoundingBox-fcb5b750.js} +1 -1
- package/dist/assets/cesium/Workers/{Plane-6ee42cab.js → Plane-3f01019d.js} +1 -1
- package/dist/assets/cesium/Workers/{PolygonGeometryLibrary-b408c688.js → PolygonGeometryLibrary-0b29eb16.js} +1 -1
- package/dist/assets/cesium/Workers/{PolygonPipeline-7b8e4643.js → PolygonPipeline-a934c4dd.js} +1 -1
- package/dist/assets/cesium/Workers/{PolylinePipeline-6757400c.js → PolylinePipeline-8095c9bc.js} +1 -1
- package/dist/assets/cesium/Workers/{PolylineVolumeGeometryLibrary-eb972210.js → PolylineVolumeGeometryLibrary-67d12fff.js} +1 -1
- package/dist/assets/cesium/Workers/{PrimitivePipeline-f244975e.js → PrimitivePipeline-980e44c5.js} +1 -1
- package/dist/assets/cesium/Workers/{RectangleGeometryLibrary-1bd6152a.js → RectangleGeometryLibrary-621c6de8.js} +1 -1
- package/dist/assets/cesium/Workers/{TerrainEncoding-5a21a97f.js → TerrainEncoding-f96552d5.js} +1 -1
- package/dist/assets/cesium/Workers/{Transforms-eb5c1a84.js → Transforms-c8cb8f43.js} +3 -3
- package/dist/assets/cesium/Workers/{WallGeometryLibrary-a6b6a368.js → WallGeometryLibrary-c03d8479.js} +1 -1
- package/dist/assets/cesium/Workers/{WebMercatorProjection-2839e524.js → WebMercatorProjection-79b3214e.js} +1 -1
- package/dist/assets/cesium/Workers/combineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCircleGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createSphereGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -1
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +1 -1
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -1
- package/dist/assets/cesium/Workers/createWallGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1 -1
- package/dist/assets/{cesium.fba8ca.js → cesium.2a963a.js} +955 -968
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/core.ba64c8.js +4 -0
- package/dist/assets/core.js +1 -1
- package/dist/assets/{index.6a83278e.js → index.83d29643.js} +1 -1
- package/dist/assets/{ol.abea3a.js → ol.5c9201.js} +0 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.c4abb7.css +1 -0
- package/dist/assets/ui.c4abb7.js +39 -0
- package/dist/assets/ui.js +1 -1
- package/dist/assets/uicomponents.5e36c1.css +1 -0
- package/dist/assets/uicomponents.5e36c1.js +32 -0
- package/dist/assets/uicomponents.js +1 -1
- package/dist/assets/{vue-composition-api.7051d7.js → vue-composition-api.ff8a0e.js} +1 -1
- package/dist/assets/vue-composition-api.js +2 -2
- package/dist/assets/{vue.9fd7f6.js → vue.f0d3bf.js} +0 -0
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify.33dafc.css → vuetify.69b350.css} +1 -1
- package/dist/assets/{vuetify.33dafc.js → vuetify.69b350.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/package.json +4 -4
- package/src/actions/actionHelper.js +39 -0
- package/src/application/Navbar.vue +32 -3
- package/src/application/VcsApp.vue +3 -1
- package/src/application/VcsMap.vue +1 -20
- package/src/manager/buttonManager.js +2 -1
- package/src/manager/window/WindowComponent.vue +27 -20
- package/src/manager/window/WindowComponentHeader.vue +13 -6
- package/src/navigation/mapNavigation.vue +26 -1
- package/src/navigation/overviewMap.js +616 -0
- package/src/navigation/overviewMapClickedInteraction.js +38 -0
- package/src/vcsUiApp.js +14 -0
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-678e34e4.js +0 -1
- package/dist/assets/cesium/Workers/GeometryAttribute-3915ea0b.js +0 -1
- package/dist/assets/cesium/Workers/IntersectionTests-ac2459de.js +0 -1
- package/dist/assets/core.d5ed0f.js +0 -4
- package/dist/assets/ui.ad1ec9.css +0 -1
- package/dist/assets/ui.ad1ec9.js +0 -39
- package/dist/assets/uicomponents.161461.css +0 -1
- package/dist/assets/uicomponents.161461.js +0 -31
@@ -10,7 +10,7 @@ function loadCss(href) {
|
|
10
10
|
elem.onerror = reject;
|
11
11
|
document.head.appendChild(elem);
|
12
12
|
});
|
13
|
-
} await loadCss('./assets/vuetify.
|
13
|
+
} await loadCss('./assets/vuetify.69b350.css');var Qr=Object.defineProperty,Jr=Object.defineProperties;var ta=Object.getOwnPropertyDescriptors;var ae=Object.getOwnPropertySymbols;var Xi=Object.prototype.hasOwnProperty,Ki=Object.prototype.propertyIsEnumerable;var Ui=(t,e,i)=>e in t?Qr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,l=(t,e)=>{for(var i in e||(e={}))Xi.call(e,i)&&Ui(t,i,e[i]);if(ae)for(var i of ae(e))Ki.call(e,i)&&Ui(t,i,e[i]);return t},p=(t,e)=>Jr(t,ta(e));var Z=(t,e)=>{var i={};for(var s in t)Xi.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(t!=null&&ae)for(var s of ae(t))e.indexOf(s)<0&&Ki.call(t,s)&&(i[s]=t[s]);return i};import $ from"./vue.f0d3bf.js";var qu="";const Ye=$.extend().extend({name:"themeable",provide(){return{theme:this.themeableProvide}},inject:{theme:{default:{isDark:!1}}},props:{dark:{type:Boolean,default:null},light:{type:Boolean,default:null}},data(){return{themeableProvide:{isDark:!1}}},computed:{appIsDark(){return this.$vuetify.theme.dark||!1},isDark(){return this.dark===!0?!0:this.light===!0?!1:this.theme.isDark},themeClasses(){return{"theme--dark":this.isDark,"theme--light":!this.isDark}},rootIsDark(){return this.dark===!0?!0:this.light===!0?!1:this.appIsDark},rootThemeClasses(){return{"theme--dark":this.rootIsDark,"theme--light":!this.rootIsDark}}},watch:{isDark:{handler(t,e){t!==e&&(this.themeableProvide.isDark=this.isDark)},immediate:!0}}});var S=Ye;function qi(t){const e=l(l({},t.props),t.injections),i=Ye.options.computed.isDark.call(e);return Ye.options.computed.themeClasses.call({isDark:i})}function f(...t){return $.extend({mixins:t})}var ea=f(S).extend({name:"v-app",props:{dark:{type:Boolean,default:void 0},id:{type:String,default:"app"},light:{type:Boolean,default:void 0}},computed:{isDark(){return this.$vuetify.theme.dark}},beforeCreate(){if(!this.$vuetify||this.$vuetify===this.$root)throw new Error("Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object")},render(t){const e=t("div",{staticClass:"v-application--wrap"},this.$slots.default);return t("div",{staticClass:"v-application",class:l({"v-application--is-rtl":this.$vuetify.rtl,"v-application--is-ltr":!this.$vuetify.rtl},this.themeClasses),attrs:{"data-app":!0},domProps:{id:this.id}},[e])}}),Zu="",Qu="",Ju="";function Zi(t){return function(e,i){for(const s in i)Object.prototype.hasOwnProperty.call(e,s)||this.$delete(this.$data[t],s);for(const s in e)this.$set(this.$data[t],s,e[s])}}var wt=$.extend({data:()=>({attrs$:{},listeners$:{}}),created(){this.$watch("$attrs",Zi("attrs$"),{immediate:!0}),this.$watch("$listeners",Zi("listeners$"),{immediate:!0})}});function je(t,e={}){if(je.installed)return;je.installed=!0,$!==t&&X(`Multiple instances of Vue detected
|
14
14
|
See https://github.com/vuetifyjs/vuetify/issues/4068
|
15
15
|
|
16
16
|
If you're seeing "$attrs is readonly", it's caused by this`);const i=e.components||{},s=e.directives||{};for(const n in s){const r=s[n];t.directive(n,r)}(function n(r){if(r){for(const a in r){const o=r[a];o&&!n(o.$_vuetify_subcomponents)&&t.component(a,o)}return!0}return!1})(i),!t.$_vuetify_installed&&(t.$_vuetify_installed=!0,t.mixin({beforeCreate(){const n=this.$options;n.vuetify?(n.vuetify.init(this,this.$ssrContext),this.$vuetify=t.observable(n.vuetify.framework)):this.$vuetify=n.parent&&n.parent.$vuetify||this},beforeMount(){this.$options.vuetify&&this.$el&&this.$el.hasAttribute("data-server-rendered")&&(this.$vuetify.isHydrating=!0,this.$vuetify.breakpoint.update(!0))},mounted(){this.$options.vuetify&&this.$vuetify.isHydrating&&(this.$vuetify.isHydrating=!1,this.$vuetify.breakpoint.update())}}))}class mt{constructor(){this.framework={}}init(e,i){}}class Qi extends mt{constructor(){super(...arguments);this.bar=0,this.top=0,this.left=0,this.insetFooter=0,this.right=0,this.bottom=0,this.footer=0,this.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}}}register(e,i,s){this.application[i][e]=s,this.update(i)}unregister(e,i){this.application[i][e]!=null&&(delete this.application[i][e],this.update(i))}update(e){this[e]=Object.values(this.application[e]).reduce((i,s)=>i+s,0)}}Qi.property="application";class Ne extends mt{constructor(e){super();this.xs=!1,this.sm=!1,this.md=!1,this.lg=!1,this.xl=!1,this.xsOnly=!1,this.smOnly=!1,this.smAndDown=!1,this.smAndUp=!1,this.mdOnly=!1,this.mdAndDown=!1,this.mdAndUp=!1,this.lgOnly=!1,this.lgAndDown=!1,this.lgAndUp=!1,this.xlOnly=!1,this.name="xs",this.height=0,this.width=0,this.mobile=!0,this.resizeTimeout=0;const{mobileBreakpoint:i,scrollBarWidth:s,thresholds:n}=e[Ne.property];this.mobileBreakpoint=i,this.scrollBarWidth=s,this.thresholds=n}init(){this.update(),typeof window!="undefined"&&window.addEventListener("resize",this.onResize.bind(this),{passive:!0})}update(e=!1){const i=e?0:this.getClientHeight(),s=e?0:this.getClientWidth(),n=s<this.thresholds.xs,r=s<this.thresholds.sm&&!n,a=s<this.thresholds.md-this.scrollBarWidth&&!(r||n),o=s<this.thresholds.lg-this.scrollBarWidth&&!(a||r||n),h=s>=this.thresholds.lg-this.scrollBarWidth;switch(this.height=i,this.width=s,this.xs=n,this.sm=r,this.md=a,this.lg=o,this.xl=h,this.xsOnly=n,this.smOnly=r,this.smAndDown=(n||r)&&!(a||o||h),this.smAndUp=!n&&(r||a||o||h),this.mdOnly=a,this.mdAndDown=(n||r||a)&&!(o||h),this.mdAndUp=!(n||r)&&(a||o||h),this.lgOnly=o,this.lgAndDown=(n||r||a||o)&&!h,this.lgAndUp=!(n||r||a)&&(o||h),this.xlOnly=h,!0){case n:this.name="xs";break;case r:this.name="sm";break;case a:this.name="md";break;case o:this.name="lg";break;default:this.name="xl";break}if(typeof this.mobileBreakpoint=="number"){this.mobile=s<parseInt(this.mobileBreakpoint,10);return}const c={xs:0,sm:1,md:2,lg:3,xl:4},u=c[this.name],d=c[this.mobileBreakpoint];this.mobile=u<=d}onResize(){clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.update.bind(this),200)}getClientWidth(){return typeof document=="undefined"?0:Math.max(document.documentElement.clientWidth,window.innerWidth||0)}getClientHeight(){return typeof document=="undefined"?0:Math.max(document.documentElement.clientHeight,window.innerHeight||0)}}Ne.property="breakpoint";const ia=t=>t,sa=t=>t**2,na=t=>t*(2-t),ra=t=>t<.5?2*t**2:-1+(4-2*t)*t,aa=t=>t**3,oa=t=>--t**3+1,Ji=t=>t<.5?4*t**3:(t-1)*(2*t-2)*(2*t-2)+1,la=t=>t**4,ha=t=>1- --t**4,ca=t=>t<.5?8*t*t*t*t:1-8*--t*t*t*t,ua=t=>t**5,da=t=>1+--t**5,pa=t=>t<.5?16*t**5:1+16*--t**5;var fa=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",linear:ia,easeInQuad:sa,easeOutQuad:na,easeInOutQuad:ra,easeInCubic:aa,easeOutCubic:oa,easeInOutCubic:Ji,easeInQuart:la,easeOutQuart:ha,easeInOutQuart:ca,easeInQuint:ua,easeOutQuint:da,easeInOutQuint:pa});function Ge(t){if(typeof t=="number")return t;let e=es(t);if(!e)throw typeof t=="string"?new Error(`Target element "${t}" not found.`):new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${ts(t)} instead.`);let i=0;for(;e;)i+=e.offsetTop,e=e.offsetParent;return i}function ma(t){const e=es(t);if(e)return e;throw typeof t=="string"?new Error(`Container element "${t}" not found.`):new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${ts(t)} instead.`)}function ts(t){return t==null?t:t.constructor.name}function es(t){return typeof t=="string"?document.querySelector(t):t&&t._isVue?t.$el:t instanceof HTMLElement?t:null}function gt(t,e={}){const i=l({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),s=ma(i.container);if(i.appOffset&>.framework.application){const h=s.classList.contains("v-navigation-drawer"),c=s.classList.contains("v-navigation-drawer--clipped"),{bar:u,top:d}=gt.framework.application;i.offset+=u,(!h||c)&&(i.offset+=d)}const n=performance.now();let r;typeof t=="number"?r=Ge(t)-i.offset:r=Ge(t)-Ge(s)-i.offset;const a=s.scrollTop;if(r===a)return Promise.resolve(r);const o=typeof i.easing=="function"?i.easing:fa[i.easing];if(!o)throw new TypeError(`Easing function "${i.easing}" not found.`);return new Promise(h=>requestAnimationFrame(function c(u){const d=u-n,g=Math.abs(i.duration?Math.min(d/i.duration,1):1);s.scrollTop=Math.floor(a+(r-a)*o(g));const b=(s===document.body?document.documentElement.clientHeight:s.clientHeight)+s.scrollTop>=s.scrollHeight;if(g===1||r>s.scrollTop&&b)return h(r);requestAnimationFrame(c)}))}gt.framework={},gt.init=()=>{};class is extends mt{constructor(){super();return gt}}is.property="goTo";function N(t,e="div",i){return $.extend({name:i||t.replace(/__/g,"-"),functional:!0,props:{tag:{type:String,default:e}},render(s,{data:n,props:r,children:a}){return n.staticClass=`${t} ${n.staticClass||""}`.trim(),s(r.tag,n,a)}})}function Ue(t,e,i,s=!1){const n=r=>{i(r),t.removeEventListener(e,n,s)};t.addEventListener(e,n,s)}let vt=!1;try{if(typeof window!="undefined"){const t=Object.defineProperty({},"passive",{get:()=>{vt=!0}});window.addEventListener("testListener",t,t),window.removeEventListener("testListener",t,t)}}catch(t){console.warn(t)}function ga(t,e,i,s){t.addEventListener(e,i,vt?s:!1)}function Xe(t,e,i){const s=e.length-1;if(s<0)return t===void 0?i:t;for(let n=0;n<s;n++){if(t==null)return i;t=t[e[n]]}return t==null||t[e[s]]===void 0?i:t[e[s]]}function A(t,e){if(t===e)return!0;if(t instanceof Date&&e instanceof Date&&t.getTime()!==e.getTime()||t!==Object(t)||e!==Object(e))return!1;const i=Object.keys(t);return i.length!==Object.keys(e).length?!1:i.every(s=>A(t[s],e[s]))}function y(t,e,i){return t==null||!e||typeof e!="string"?i:t[e]!==void 0?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),Xe(t,e.split("."),i))}function ot(t,e,i){if(e==null)return t===void 0?i:t;if(t!==Object(t))return i===void 0?t:i;if(typeof e=="string")return y(t,e,i);if(Array.isArray(e))return Xe(t,e,i);if(typeof e!="function")return i;const s=e(t,i);return typeof s=="undefined"?i:s}function et(t){return Array.from({length:t},(e,i)=>i)}function Ht(t){if(!t||t.nodeType!==Node.ELEMENT_NODE)return 0;const e=+window.getComputedStyle(t).getPropertyValue("z-index");return e||Ht(t.parentNode)}const va={"&":"&","<":"<",">":">"};function Ft(t){return t.replace(/[&<>]/g,e=>va[e]||e)}function ya(t,e){const i={};for(let s=0;s<e.length;s++){const n=e[s];typeof t[n]!="undefined"&&(i[n]=t[n])}return i}function m(t,e="px"){if(!(t==null||t===""))return isNaN(+t)?String(t):`${Number(t)}${e}`}function oe(t){return(t||"").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function ss(t){return t!==null&&typeof t=="object"}const v=Object.freeze({enter:13,tab:9,delete:46,esc:27,space:32,up:38,down:40,left:37,right:39,end:35,home:36,del:46,backspace:8,insert:45,pageup:33,pagedown:34,shift:16});function ba(t,e){const i=t.$vuetify.icons.component;if(e.startsWith("$")){const s=`$vuetify.icons.values.${e.split("$").pop().split(".").pop()}`,n=y(t,s,e);if(typeof n=="string")e=n;else return n}return i==null?e:{component:i,props:{icon:e}}}function le(t){return Object.keys(t)}const $a=/-(\w)/g,ns=t=>t.replace($a,(e,i)=>i?i.toUpperCase():"");function Sa(t,e){const i=[];for(let s=0;s<e.length;s++)t.indexOf(e[s])<0&&i.push(e[s]);return i}function he(t){return t.charAt(0).toUpperCase()+t.slice(1)}function xa(t,e,i){const s=e[0],n=[];let r;for(let a=0;a<t.length;a++){const o=t[a],h=y(o,s,null);r!==h&&(r=h,n.push({name:h!=null?h:"",items:[]})),n[n.length-1].items.push(o)}return n}function O(t){return t!=null?Array.isArray(t)?t:[t]:[]}function Ca(t,e,i,s,n){if(e===null||!e.length)return t;const r=new Intl.Collator(s,{sensitivity:"accent",usage:"sort"});return t.sort((a,o)=>{for(let h=0;h<e.length;h++){const c=e[h];let u=y(a,c),d=y(o,c);if(i[h]&&([u,d]=[d,u]),n&&n[c]){const g=n[c](u,d);if(!g)continue;return g}if(!(u===null&&d===null)){if(u instanceof Date&&d instanceof Date)return u.getTime()-d.getTime();if([u,d]=[u,d].map(g=>(g||"").toString().toLocaleLowerCase()),u!==d)return!isNaN(u)&&!isNaN(d)?Number(u)-Number(d):r.compare(u,d)}}return 0})}function Ke(t,e,i){return t!=null&&e!=null&&typeof t!="boolean"&&t.toString().toLocaleLowerCase().indexOf(e.toLocaleLowerCase())!==-1}function wa(t,e){return!e||(e=e.toString().toLowerCase(),e.trim()==="")?t:t.filter(i=>Object.keys(i).some(s=>Ke(y(i,s),e)))}function rs(t,e,i){if(t.$slots.hasOwnProperty(e)&&t.$scopedSlots.hasOwnProperty(e)&&t.$scopedSlots[e].name)return i?"v-slot":"scoped";if(t.$slots.hasOwnProperty(e))return"normal";if(t.$scopedSlots.hasOwnProperty(e))return"scoped"}function ka(t,e){let i=0;return(...s)=>{clearTimeout(i),i=setTimeout(()=>t(...s),e)}}function Ia(t,e){let i=!1;return(...s)=>{if(!i)return i=!0,setTimeout(()=>i=!1,e),t(...s)}}function ce(t,e){return Object.keys(e).filter(i=>i.startsWith(t)).reduce((i,s)=>(i[s.replace(t,"")]=e[s],i),{})}function x(t,e="default",i,s=!1){if(t.$scopedSlots.hasOwnProperty(e))return t.$scopedSlots[e](i instanceof Function?i():i);if(t.$slots.hasOwnProperty(e)&&(!i||s))return t.$slots[e]}function qe(t,e=0,i=1){return Math.max(e,Math.min(i,t))}function Ze(t,e,i="0"){return t+i.repeat(Math.max(0,e-t.length))}function Ta(t,e=1){const i=[];let s=0;for(;s<t.length;)i.push(t.substr(s,e)),s+=e;return i}function as(t,e=!1){const i=e?1024:1e3;if(t<i)return`${t} B`;const s=e?["Ki","Mi","Gi"]:["k","M","G"];let n=-1;for(;Math.abs(t)>=i&&n<s.length-1;)t/=i,++n;return`${t.toFixed(1)} ${s[n]}B`}function os(t){return t?Object.keys(t).reduce((e,i)=>(e[ns(i)]=t[i],e),{}):{}}function Nt(t={},e={}){for(const i in e){const s=t[i],n=e[i];if(ss(s)&&ss(n)){t[i]=Nt(s,n);continue}t[i]=n}return t}function ls(t,e){return Array(t).fill(e)}function hs(t){if(t.composedPath)return t.composedPath();const e=[];let i=t.target;for(;i;){if(e.push(i),i.tagName==="HTML")return e.push(document),e.push(window),e;i=i.parentElement}return e}const _a={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"};var Aa=_a;const Da={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"};var Ba=Da;const Ea={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"};var Ma=Ea;const Va={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"};var cs=Va;const La={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"};var Oa=La;function Pa(t,e){const i={};for(const s in e)i[s]={component:t,props:{icon:e[s].split(" fa-")}};return i}var Ha=Pa("font-awesome-icon",cs),Fa=Object.freeze({mdiSvg:Aa,md:Ba,mdi:Ma,fa:cs,fa4:Oa,faSvg:Ha});class We extends mt{constructor(e){super();const{iconfont:i,values:s,component:n}=e[We.property];this.component=n,this.iconfont=i,this.values=Nt(Fa[i],s)}}We.property="icons";const us="$vuetify.",ds=Symbol("Lang fallback");function ps(t,e,i=!1,s){const n=e.replace(us,"");let r=y(t,n,ds);return r===ds&&(i?(X(`Translation key "${n}" not found in fallback`),r=e):(V(`Translation key "${n}" not found, falling back to default`),r=ps(s,e,!0,s))),r}class ze extends mt{constructor(e){super();this.defaultLocale="en";const{current:i,locales:s,t:n}=e[ze.property];this.current=i,this.locales=s,this.translator=n||this.defaultTranslator}currentLocale(e){const i=this.locales[this.current],s=this.locales[this.defaultLocale];return ps(i,e,!1,s)}t(e,...i){return e.startsWith(us)?this.translator(e,...i):this.replace(e,i)}defaultTranslator(e,...i){return this.replace(this.currentLocale(e),i)}replace(e,i){return e.replace(/\{(\d+)\}/g,(s,n)=>String(i[+n]))}}ze.property="lang";var td="",Na={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}},rating:{ariaLabel:{icon:"Rating {0} of {1}"}}};const Wa={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:Na},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}};class fs extends mt{constructor(e,i){super();const s=Nt({},Wa),{userPreset:n}=i,o=n,{preset:r={}}=o,a=Z(o,["preset"]);r.preset!=null&&V("Global presets do not support the **preset** option, it can be safely omitted"),i.preset=Nt(Nt(s,r),a)}}fs.property="presets";const za=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],Ra=t=>t<=.0031308?t*12.92:1.055*t**(1/2.4)-.055,Ya=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],ja=t=>t<=.04045?t/12.92:((t+.055)/1.055)**2.4;function ms(t){const e=Array(3),i=Ra,s=za;for(let n=0;n<3;++n)e[n]=Math.round(qe(i(s[n][0]*t[0]+s[n][1]*t[1]+s[n][2]*t[2]))*255);return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function ue(t){const e=[0,0,0],i=ja,s=Ya,n=i((t>>16&255)/255),r=i((t>>8&255)/255),a=i((t>>0&255)/255);for(let o=0;o<3;++o)e[o]=s[o][0]*n+s[o][1]*r+s[o][2]*a;return e}function gs(t){return!!t&&!!t.match(/^(#|var\(--|(rgb|hsl)a?\()/)}function Qe(t){let e;if(typeof t=="number")e=t;else if(typeof t=="string"){let i=t[0]==="#"?t.substring(1):t;i.length===3&&(i=i.split("").map(s=>s+s).join("")),i.length!==6&&V(`'${t}' is not a valid rgb color`),e=parseInt(i,16)}else throw new TypeError(`Colors can only be numbers or strings, recieved ${t==null?t:t.constructor.name} instead`);return e<0?(V(`Colors cannot be negative: '${t}'`),e=0):(e>16777215||isNaN(e))&&(V(`'${t}' is not a valid rgb color`),e=16777215),e}function Wt(t){let e=t.toString(16);return e.length<6&&(e="0".repeat(6-e.length)+e),"#"+e}function Ga(t){return Wt(Qe(t))}function de(t){const{h:e,s:i,v:s,a:n}=t,r=o=>{const h=(o+e/60)%6;return s-s*i*Math.max(Math.min(h,4-h,1),0)},a=[r(5),r(3),r(1)].map(o=>Math.round(o*255));return{r:a[0],g:a[1],b:a[2],a:n}}function vs(t){if(!t)return{h:0,s:1,v:1,a:1};const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),r=Math.min(e,i,s);let a=0;n!==r&&(n===e?a=60*(0+(i-s)/(n-r)):n===i?a=60*(2+(s-e)/(n-r)):n===s&&(a=60*(4+(e-i)/(n-r)))),a<0&&(a=a+360);const o=n===0?0:(n-r)/n,h=[a,o,n];return{h:h[0],s:h[1],v:h[2],a:t.a}}function Je(t){const{h:e,s:i,v:s,a:n}=t,r=s-s*i/2,a=r===1||r===0?0:(s-r)/Math.min(r,1-r);return{h:e,s:a,l:r,a:n}}function Ua(t){const{h:e,s:i,l:s,a:n}=t,r=s+i*Math.min(s,1-s),a=r===0?0:2-2*s/r;return{h:e,s:a,v:r,a:n}}function ys(t){return`rgba(${t.r}, ${t.g}, ${t.b}, ${t.a})`}function Xa(t){return ys(p(l({},t),{a:1}))}function bs(t){const e=i=>{const s=Math.round(i).toString(16);return("00".substr(0,2-s.length)+s).toUpperCase()};return`#${[e(t.r),e(t.g),e(t.b),e(Math.round(t.a*255))].join("")}`}function Ka(t){const e=Ta(t.slice(1),2).map(i=>parseInt(i,16));return{r:e[0],g:e[1],b:e[2],a:Math.round(e[3]/255*100)/100}}function qa(t){const e=Ka(t);return vs(e)}function $s(t){return bs(de(t))}function ti(t){return t.startsWith("#")&&(t=t.slice(1)),t=t.replace(/([^0-9a-f])/gi,"F"),(t.length===3||t.length===4)&&(t=t.split("").map(e=>e+e).join("")),t.length===6?t=Ze(t,8,"F"):t=Ze(Ze(t,6),8,"F"),`#${t}`.toUpperCase().substr(0,9)}function Ss(t){return(t.r<<16)+(t.g<<8)+t.b}function xs(t,e){const[,i]=ue(Ss(t)),[,s]=ue(Ss(e));return(Math.max(i,s)+.05)/(Math.min(i,s)+.05)}const pe=.20689655172413793,Za=t=>t>pe**3?Math.cbrt(t):t/(3*pe**2)+4/29,Qa=t=>t>pe?t**3:3*pe**2*(t-4/29);function Cs(t){const e=Za,i=e(t[1]);return[116*i-16,500*(e(t[0]/.95047)-i),200*(i-e(t[2]/1.08883))]}function ws(t){const e=Qa,i=(t[0]+16)/116;return[e(i+t[1]/500)*.95047,e(i),e(i-t[2]/200)*1.08883]}function ks(t,e=!1,i=!0){const o=t,{anchor:s}=o,n=Z(o,["anchor"]),r=Object.keys(n),a={};for(let h=0;h<r.length;++h){const c=r[h],u=t[c];u!=null&&(i?e?(c==="base"||c.startsWith("lighten")||c.startsWith("darken"))&&(a[c]=Ga(u)):typeof u=="object"?a[c]=ks(u,!0,i):a[c]=io(c,Qe(u)):a[c]={base:Wt(Qe(u))})}return e||(a.anchor=s||a.base||a.primary.base),a}const Ja=(t,e)=>`
|
package/dist/assets/vuetify.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export * from "./vuetify.
|
2
|
-
export { default } from "./vuetify.
|
1
|
+
export * from "./vuetify.69b350.js";
|
2
|
+
export { default } from "./vuetify.69b350.js";
|
package/dist/index.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
rel="stylesheet"
|
8
8
|
href="https://fonts.googleapis.com/css?family=Titillium+Web"
|
9
9
|
/>
|
10
|
-
<script type="module" crossorigin src="./assets/index.
|
10
|
+
<script type="module" crossorigin src="./assets/index.83d29643.js"></script>
|
11
11
|
<link rel="stylesheet" href="./assets/index.60dea538.css">
|
12
12
|
</head>
|
13
13
|
<body style="height: 100vH;">
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vcmap/ui",
|
3
|
-
"version": "5.0.0-rc.
|
3
|
+
"version": "5.0.0-rc.7",
|
4
4
|
"author": "Virtual City Systems",
|
5
5
|
"license": "MIT",
|
6
6
|
"scripts": {
|
@@ -41,9 +41,9 @@
|
|
41
41
|
"vue-i18n": "^8.24.1"
|
42
42
|
},
|
43
43
|
"peerDependencies": {
|
44
|
-
"@vcmap/cesium": "~1.
|
45
|
-
"@vcmap/core": "^5.0.0-rc.
|
46
|
-
"@vcsuite/ui-components": "~0.1.
|
44
|
+
"@vcmap/cesium": "~1.93.1",
|
45
|
+
"@vcmap/core": "^5.0.0-rc.11",
|
46
|
+
"@vcsuite/ui-components": "~0.1.15",
|
47
47
|
"@vue/composition-api": "~1.4.5",
|
48
48
|
"ol": "~6.13.0",
|
49
49
|
"vue": "~2.6.14",
|
@@ -87,6 +87,45 @@ export function createToggleAction(actionOptions, windowComponent, windowManager
|
|
87
87
|
return { action, destroy };
|
88
88
|
}
|
89
89
|
|
90
|
+
/**
|
91
|
+
* Creates an action which will toggle the overview map (opening & closing the window and activating/ deactivating the overview map).
|
92
|
+
* @param {OverviewMap} overviewMap
|
93
|
+
* @param {WindowComponentOptions} windowComponent
|
94
|
+
* @param {WindowManager} windowManager
|
95
|
+
* @returns {(function(): void)|*}
|
96
|
+
*/
|
97
|
+
export function createOverviewMapAction(overviewMap, windowComponent, windowManager) {
|
98
|
+
const { action, destroy } = createToggleAction(
|
99
|
+
{
|
100
|
+
name: 'overviewMapToggle',
|
101
|
+
icon: '$vcsMap',
|
102
|
+
title: 'Overview Map',
|
103
|
+
},
|
104
|
+
windowComponent,
|
105
|
+
windowManager,
|
106
|
+
vcsAppSymbol,
|
107
|
+
);
|
108
|
+
|
109
|
+
const listeners = [
|
110
|
+
windowManager.added.addEventListener(async ({ id }) => {
|
111
|
+
if (id === windowComponent.id) {
|
112
|
+
await overviewMap.activate();
|
113
|
+
}
|
114
|
+
}),
|
115
|
+
windowManager.removed.addEventListener(({ id }) => {
|
116
|
+
if (id === windowComponent.id) {
|
117
|
+
overviewMap.deactivate();
|
118
|
+
}
|
119
|
+
}),
|
120
|
+
];
|
121
|
+
|
122
|
+
const destroyAction = () => {
|
123
|
+
destroy();
|
124
|
+
listeners.forEach((cb) => { cb(); });
|
125
|
+
};
|
126
|
+
return { action, destroy: destroyAction };
|
127
|
+
}
|
128
|
+
|
90
129
|
/**
|
91
130
|
* Creates a header less window which will close if anything outside of the window is clicked. The window will open
|
92
131
|
* at the clicked position (the actions position) by default, unless the window component already has a position set.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<v-app-bar app absolute dense>
|
2
|
+
<v-app-bar app absolute dense elevation="0" color="var(--v-basic-base)">
|
3
3
|
<v-container fluid class="pa-0">
|
4
4
|
<v-row no-gutters>
|
5
5
|
<v-col>
|
@@ -12,6 +12,7 @@
|
|
12
12
|
/>
|
13
13
|
<v-divider
|
14
14
|
v-if="mapActions.length > 0 && (contentActions.length > 0 || toolActions.length > 0)"
|
15
|
+
class="mx-2"
|
15
16
|
vertical
|
16
17
|
inset
|
17
18
|
/>
|
@@ -21,6 +22,7 @@
|
|
21
22
|
/>
|
22
23
|
<v-divider
|
23
24
|
v-if="contentActions.length > 0 && toolActions.length > 0"
|
25
|
+
class="mx-2"
|
24
26
|
vertical
|
25
27
|
inset
|
26
28
|
/>
|
@@ -45,7 +47,27 @@
|
|
45
47
|
v-if="projectActions.length > 0 && menuActions.length > 0"
|
46
48
|
vertical
|
47
49
|
inset
|
50
|
+
class="mx-2"
|
48
51
|
/>
|
52
|
+
<v-menu
|
53
|
+
offset-y
|
54
|
+
v-if="shareActions.length > 0"
|
55
|
+
>
|
56
|
+
<template #activator="{ on, attrs }">
|
57
|
+
<VcsButton
|
58
|
+
v-bind="attrs"
|
59
|
+
v-on="on"
|
60
|
+
large
|
61
|
+
tooltip="Share current view of the map."
|
62
|
+
icon="$vcsShare"
|
63
|
+
/>
|
64
|
+
</template>
|
65
|
+
<VcsActionList
|
66
|
+
:actions="shareActions"
|
67
|
+
tooltip-position="left"
|
68
|
+
:show-icon="true"
|
69
|
+
/>
|
70
|
+
</v-menu>
|
49
71
|
<VcsActionButtonList
|
50
72
|
:actions="menuActions"
|
51
73
|
:overflow-count="3"
|
@@ -59,15 +81,21 @@
|
|
59
81
|
</v-app-bar>
|
60
82
|
</template>
|
61
83
|
|
84
|
+
<style lang="scss" scoped>
|
85
|
+
.v-toolbar__items > div{
|
86
|
+
gap: 8px;
|
87
|
+
}
|
88
|
+
</style>
|
89
|
+
|
62
90
|
<script>
|
63
91
|
|
64
|
-
import { VcsActionButtonList } from '@vcsuite/ui-components';
|
92
|
+
import { VcsActionButtonList, VcsActionList, VcsButton } from '@vcsuite/ui-components';
|
65
93
|
import { inject, ref, computed } from '@vue/composition-api';
|
66
94
|
import { ButtonLocation, getActionsByLocation } from '../manager/buttonManager.js';
|
67
95
|
|
68
96
|
export default {
|
69
97
|
name: 'VcsNavbar',
|
70
|
-
components: { VcsActionButtonList },
|
98
|
+
components: { VcsActionButtonList, VcsActionList, VcsButton },
|
71
99
|
setup() {
|
72
100
|
const app = inject('vcsApp');
|
73
101
|
|
@@ -82,6 +110,7 @@
|
|
82
110
|
contentActions: getActions(ButtonLocation.CONTENT),
|
83
111
|
toolActions: getActions(ButtonLocation.TOOL),
|
84
112
|
projectActions: getActions(ButtonLocation.PROJECT),
|
113
|
+
shareActions: getActions(ButtonLocation.SHARE),
|
85
114
|
menuActions: getActions(ButtonLocation.MENU),
|
86
115
|
};
|
87
116
|
},
|
@@ -53,6 +53,7 @@
|
|
53
53
|
},
|
54
54
|
setup(props) {
|
55
55
|
const id = uuid();
|
56
|
+
const mapId = `mapCollection-${id}`;
|
56
57
|
const app = getVcsAppById(props.appId);
|
57
58
|
provide('vcsApp', app);
|
58
59
|
|
@@ -115,6 +116,7 @@
|
|
115
116
|
plugin.onVcsAppMounted(app);
|
116
117
|
}
|
117
118
|
});
|
119
|
+
app.maps.setTarget(mapId);
|
118
120
|
});
|
119
121
|
|
120
122
|
onUnmounted(() => {
|
@@ -134,7 +136,7 @@
|
|
134
136
|
});
|
135
137
|
|
136
138
|
return {
|
137
|
-
mapId
|
139
|
+
mapId,
|
138
140
|
toolboxManagerVisible: app.toolboxManager.state.visible,
|
139
141
|
};
|
140
142
|
},
|
@@ -25,33 +25,14 @@
|
|
25
25
|
</style>
|
26
26
|
|
27
27
|
<script >
|
28
|
-
import { inject, onMounted, isReactive } from '@vue/composition-api';
|
29
|
-
import { getLogger as getLoggerByName } from '@vcsuite/logger';
|
30
|
-
|
31
|
-
/**
|
32
|
-
* @returns {Logger}
|
33
|
-
*/
|
34
|
-
function getLogger() {
|
35
|
-
return getLoggerByName('VcsMap');
|
36
|
-
}
|
37
|
-
|
38
28
|
|
39
29
|
export default {
|
30
|
+
name: 'VcsMap',
|
40
31
|
props: {
|
41
32
|
mapId: {
|
42
33
|
type: String,
|
43
34
|
required: true,
|
44
35
|
},
|
45
36
|
},
|
46
|
-
setup(props) {
|
47
|
-
const app = inject('vcsApp');
|
48
|
-
|
49
|
-
onMounted(async () => {
|
50
|
-
app.maps.setTarget(props.mapId);
|
51
|
-
if (isReactive(app.maps.activeMap)) {
|
52
|
-
getLogger().error('Map is reactive, PLEASE FIX');
|
53
|
-
}
|
54
|
-
});
|
55
|
-
},
|
56
37
|
};
|
57
38
|
</script>
|
@@ -1,36 +1,43 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
2
|
+
<v-sheet
|
3
3
|
:id="`window-component--${windowState.id}`"
|
4
|
-
class="
|
4
|
+
class="elevation-3 position-absolute d-flex flex-column"
|
5
5
|
ref="windowComponentRef"
|
6
6
|
@click="clicked"
|
7
|
+
:class="{
|
8
|
+
'rounded': !isDocked,
|
9
|
+
'marginToTop': isDocked
|
10
|
+
}"
|
7
11
|
>
|
8
|
-
<
|
12
|
+
<div
|
9
13
|
v-if="!windowState.hideHeader"
|
10
14
|
ref="draggableHeaderRef"
|
11
|
-
class="
|
15
|
+
class="pa-2"
|
12
16
|
:class="{
|
13
17
|
'cursor-grab': isDynamic,
|
14
18
|
'grey--text': !isOnTop,
|
15
|
-
'rounded-tl': !isDocked,
|
16
|
-
'rounded-tr': !isDocked,
|
17
19
|
}"
|
18
20
|
:draggable="isDynamic"
|
19
21
|
>
|
20
22
|
<slot name="headerComponent" />
|
21
|
-
</
|
22
|
-
<v-
|
23
|
-
|
24
|
-
|
25
|
-
'rounded-br': !isDocked,
|
26
|
-
'rounded-bl': !isDocked,
|
27
|
-
}"
|
23
|
+
</div>
|
24
|
+
<v-divider />
|
25
|
+
<div
|
26
|
+
class="overflow-x-hidden"
|
28
27
|
>
|
29
28
|
<slot />
|
30
|
-
</
|
31
|
-
</
|
29
|
+
</div>
|
30
|
+
</v-sheet>
|
32
31
|
</template>
|
33
32
|
|
33
|
+
<style scoped>
|
34
|
+
|
35
|
+
.marginToTop {
|
36
|
+
margin-top: 2px;
|
37
|
+
}
|
38
|
+
|
39
|
+
</style>
|
40
|
+
|
34
41
|
<script>
|
35
42
|
import {
|
36
43
|
onMounted, onUnmounted, computed, ref, nextTick,
|
@@ -58,8 +65,8 @@
|
|
58
65
|
setup({ windowState, slotWindow }, { emit }) {
|
59
66
|
const draggableHeaderRef = ref(null);
|
60
67
|
const windowComponentRef = ref(null);
|
61
|
-
const isDynamic = computed(() => slotWindow !== WindowSlot.STATIC);
|
62
|
-
const isDocked = computed(() => slotWindow !== WindowSlot.DETACHED);
|
68
|
+
const isDynamic = computed(() => slotWindow.value !== WindowSlot.STATIC);
|
69
|
+
const isDocked = computed(() => slotWindow.value !== WindowSlot.DETACHED);
|
63
70
|
const clicked = (e) => {
|
64
71
|
emit('click', e);
|
65
72
|
};
|
@@ -69,8 +76,7 @@
|
|
69
76
|
onMounted(() => {
|
70
77
|
if (!windowState.hideHeader && slotWindow.value !== WindowSlot.STATIC) {
|
71
78
|
nextTick(() => {
|
72
|
-
|
73
|
-
const dragStart = fromEvent(draggableHeaderRef.value.$el, 'dragstart');
|
79
|
+
const dragStart = fromEvent(draggableHeaderRef.value, 'dragstart');
|
74
80
|
const dragOver = fromEvent(document.body, 'dragover');
|
75
81
|
const drop = fromEvent(document.body, 'drop');
|
76
82
|
const dragThenDrop = dragStart.pipe(
|
@@ -82,7 +88,8 @@
|
|
82
88
|
});
|
83
89
|
}),
|
84
90
|
switchMap((startEvent) => {
|
85
|
-
|
91
|
+
// To get to the Root Element of a Custom Component .$el is used here.
|
92
|
+
const style = window.getComputedStyle(windowComponentRef.value.$el, null);
|
86
93
|
const windowPosition = {
|
87
94
|
top: parseInt(style.getPropertyValue('top'), 10),
|
88
95
|
left: parseInt(style.getPropertyValue('left'), 10),
|
@@ -1,27 +1,34 @@
|
|
1
1
|
<template>
|
2
|
-
<span class="d-flex justify-space-between">
|
2
|
+
<span class="d-flex justify-space-between align-center window-component-header">
|
3
3
|
<span>
|
4
4
|
<v-icon
|
5
5
|
v-if="windowState.headerIcon"
|
6
6
|
class="mr-2 primary--text"
|
7
7
|
v-text="windowState.headerIcon"
|
8
8
|
/>
|
9
|
-
<h3 class="font-size-14 d-inline-block user-select-none">
|
9
|
+
<h3 class="font-size-14 d-inline-block user-select-none font-weight-bold">
|
10
10
|
{{ windowState.headerTitle | translate }}
|
11
11
|
</h3>
|
12
12
|
</span>
|
13
|
-
<
|
14
|
-
class=".float-right"
|
13
|
+
<VcsButton
|
15
14
|
@click.stop="close"
|
16
|
-
|
17
|
-
|
15
|
+
small
|
16
|
+
icon="mdi-close-thick"
|
18
17
|
/>
|
19
18
|
</span>
|
20
19
|
</template>
|
21
20
|
|
21
|
+
<style>
|
22
|
+
.window-component-header{
|
23
|
+
max-height: 16px;
|
24
|
+
}
|
25
|
+
</style>
|
26
|
+
|
22
27
|
<script>
|
28
|
+
import { VcsButton } from '@vcsuite/ui-components';
|
23
29
|
|
24
30
|
export default {
|
31
|
+
components: { VcsButton },
|
25
32
|
props: {
|
26
33
|
windowState: {
|
27
34
|
type: Object,
|
@@ -22,17 +22,28 @@
|
|
22
22
|
<v-row v-if="is3D" justify="center">
|
23
23
|
<TiltSlider v-model="tilt" />
|
24
24
|
</v-row>
|
25
|
+
<v-row justify="center">
|
26
|
+
<OrientationToolsButton
|
27
|
+
:icon="overviewAction.icon"
|
28
|
+
:tooltip="overviewAction.title"
|
29
|
+
:color="overviewAction.active ? 'primary' : undefined"
|
30
|
+
@click.stop="overviewAction.callback($event)"
|
31
|
+
/>
|
32
|
+
</v-row>
|
25
33
|
</v-container>
|
26
34
|
</template>
|
27
35
|
|
28
36
|
<script>
|
29
|
-
import { computed, inject, ref } from '@vue/composition-api';
|
37
|
+
import { computed, inject, ref, onUnmounted } from '@vue/composition-api';
|
30
38
|
import { ObliqueMap, CesiumMap, OpenlayersMap } from '@vcmap/core';
|
31
39
|
import { unByKey } from 'ol/Observable.js';
|
40
|
+
import { createOverviewMapAction } from '../actions/actionHelper.js';
|
41
|
+
import { getWindowComponentOptions } from './overviewMap.js';
|
32
42
|
import VcsCompass from './vcsCompass.vue';
|
33
43
|
import VcsZoomButton from './vcsZoomButton.vue';
|
34
44
|
import TiltSlider from './tiltSlider.vue';
|
35
45
|
import ObliqueRotation from './obliqueRotation.vue';
|
46
|
+
import OrientationToolsButton from './orientationToolsButton.vue';
|
36
47
|
|
37
48
|
/**
|
38
49
|
* @enum {string}
|
@@ -99,6 +110,7 @@
|
|
99
110
|
|
100
111
|
export default {
|
101
112
|
components: {
|
113
|
+
OrientationToolsButton,
|
102
114
|
ObliqueRotation,
|
103
115
|
TiltSlider,
|
104
116
|
VcsZoomButton,
|
@@ -145,6 +157,18 @@
|
|
145
157
|
},
|
146
158
|
});
|
147
159
|
|
160
|
+
const { action, destroy } = createOverviewMapAction(
|
161
|
+
app.overviewMap,
|
162
|
+
getWindowComponentOptions(),
|
163
|
+
app.windowManager,
|
164
|
+
);
|
165
|
+
|
166
|
+
onUnmounted(() => {
|
167
|
+
if (destroy) {
|
168
|
+
destroy();
|
169
|
+
}
|
170
|
+
});
|
171
|
+
|
148
172
|
return {
|
149
173
|
viewMode,
|
150
174
|
heading,
|
@@ -155,6 +179,7 @@
|
|
155
179
|
zoomOut() { zoom(app.maps.activeMap, true); },
|
156
180
|
left: () => {},
|
157
181
|
right: () => {},
|
182
|
+
overviewAction: ref(action),
|
158
183
|
};
|
159
184
|
},
|
160
185
|
};
|