{"version":3,"file":"ng-vue-route-plugin.min.mjs","sources":["../../src/plugins/angular-vue-route-plugin.js"],"sourcesContent":["import Vue from 'Vue';\n\nexport default function AngularVueRoutePlugin($injector) {\n\n  if(!$injector)\n    $injector = Vue?.prototype?.$ngVue?.$injector;\n\n    if(!$injector)\n        throw new Error('Angular $injector not provided, cannot use AngularVueRoutePlugin plugin');\n  \n    const $location  = $injector.get('$location');\n    const $route     = $injector.get('$route');\n    const $rootScope = $injector.get('$rootScope');\n  \n    if(!$location)\n        throw new Error('Angular $location service not available, cannot use AngularVueRoutePlugin plugin');\n    if(!$route)\n        throw new Error('Angular $route service not available, cannot use AngularVueRoutePlugin');\n  \n    const observableRoute = window.Vue.observable({\n      _route : null\n    })\n  \n    function updateRoute() {\n      const fullPath = $location.url();\n      const path   = $location.path();\n      const hash   = $location.hash();\n      const query  = { ...($location.search()    || {})};\n      const params = { ...($route.current?.params|| {})};\n\n      observableRoute._route = {\n        get fullPath() { return fullPath; },\n        get path()   { return path; },\n        get hash()   { return hash ? `#${hash}` : ''; },\n        get query()  { return { ...query  }; },\n        get params() { return { ...params }; },\n      }\n    }\n  \n    $rootScope.$on('$routeUpdate',        updateRoute);\n    $rootScope.$on('$routeChangeSuccess', updateRoute);\n  \n    if(!$route.current) { // initial route (at boot time)\n      const cancelWatch = $rootScope.$watch(()=>$route.current, (currentRoute)=>{\n        if(currentRoute===undefined) return;\n        cancelWatch();\n        updateRoute();\n      });\n    }\n  \n    updateRoute();\n  \n    return {\n        install(Vue, options) {\n            if(!Vue.prototype.$route) {\n              Object.defineProperty(Vue.prototype, '$route', {\n                get () { return observableRoute._route }\n              })\n            }\n        }\n      }\n  };"],"names":["AngularVueRoutePlugin","$injector","Vue","prototype","$ngVue","Error","$location","get","$route","$rootScope","observableRoute","window","observable","_route","updateRoute","fullPath","url","path","hash","query","search","params","current","$on","cancelWatch","$watch","currentRoute","undefined","install","options","Object","defineProperty"],"mappings":";;;mBAEe;AAAA,SAASA,CAAsBC,CAAAA,CAAAA,EAAAA;EAAAA;EAK1C,IAHEA,CACFA,KAAAA,CAAAA,GAAYC,CAAKC,aAALD,CAAKC,uCAALD,CAAKC,CAAAA,SAAAA,wEAALD,aAAgBE,8DAAhBF,oBAAwBD,SAEhCA,CAAAA,EAAAA,CAAAA,CAAAA,EACA,MAAM,IAAII,MAAM,yEAEpB,CAAA;EAAA,IAAMC,CAAaL,GAAAA,CAAAA,CAAUM,GAAI,CAAA,WAAA,CAAA;IAC3BC,CAAaP,GAAAA,CAAAA,CAAUM,IAAI,QAC3BE,CAAAA;IAAAA,CAAAA,GAAaR,CAAUM,CAAAA,GAAAA,CAAI;EAEjC,IAAID,CAAAA,CAAAA,EACA,MAAM,IAAID,MAAM,kFACpB,CAAA;EAAA,IAAA,CAAIG,CACA,EAAA,MAAM,IAAIH,KAAAA,CAAM,wEAEpB,CAAA;EAAA,IAAMK,IAAkBC,MAAOT,CAAAA,GAAAA,CAAIU,UAAW,CAAA;IAC5CC,QAAS;EAGX,CAAA,CAAA;EAAA,SAASC,CACP,GAAA;IAAA;IAAA,IAAMC,IAAWT,CAAUU,CAAAA,GAAAA,EAAAA;MACrBC,CAASX,GAAAA,CAAAA,CAAUW,IACnBC,EAAAA;MAAAA,CAAAA,GAASZ,CAAUY,CAAAA,IAAAA,EAAAA;MACnBC,sBAAeb,CAAAA,CAAUc,MAAe,EAAA,IAAA,CAAE;MAC1CC,CAAS,qBAAMb,eAAAA,CAAOc,CAAAA,OAAAA,+CAAPd,WAAgBa,WAAS,CAAE,CAAA,CAAA;IAEhDX,CAAgBG,CAAAA,MAAAA,GAAS;MACnBE,IAAAA,QAAAA,GAAAA;QAAa,OAAOA,CAAW;MAAA;MAC/BE,IAAWA,IAAA,GAAA;QAAA,OAAOA,CAAO;MAAA,CAAA;MACzBC;QAAW,OAAOA,CAAAA,cAAWA,CAAAA,IAAS,EAAK;MAAA,CAC3CC;MAAAA,IAAAA,KAAAA,GAAAA;QAAW,yBAAYA,CAAW;MAAA,CAAA;MAClCE,IAAWA,MAAA,GAAA;QAAA,yBAAYA,CAAW;MAAA;IAAA,CAEzC;EAAA;EAKD,IAHAZ,EAAWc,GAAI,CAAA,cAAA,EAAuBT,CACtCL,CAAAA,EAAAA,CAAAA,CAAWc,IAAI,qBAAuBT,EAAAA,CAAAA,CAAAA,EAAAA,CAElCN,CAAOc,CAAAA,OAAAA,EAAS;IAClB,IAAME,EAAcf,GAAAA,CAAAA,CAAWgB,OAAO;MAAA,OAAIjB,CAAAA,CAAOc,OAAUI;IAAAA,GAAAA,UAAAA,CAAAA,EAAAA;MAAAA,KACvCC,MAAfD,CACHF,KAAAA,EAAAA,EAAAA,EACAV,CAAa,EAAA,CAAA;IAAA,CAAA,CAEhB;EAAA;EAID,OAFAA,CAAAA,EAAAA,EAEO;IACHc,OAAAA,mBAAQ1B,GAAK2B,CACL3B,EAAAA;MAAAA,CAAAA,CAAIC,SAAUK,CAAAA,MAAAA,IAChBsB,OAAOC,cAAe7B,CAAAA,CAAAA,CAAIC,SAAW,EAAA,QAAA,EAAU;QAC7CI,GAAI,EAAA;UAAA,OAAYG,CAAgBG,CAAAA,MAAAA;QAAAA;MAAAA,CAAAA,CAGvC;IAAA;GAET;AAAA;"}