@sd-angular/core 1.3.31 → 1.3.33

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","length","push","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdTabBase","tab","_tab","defineProperty","SdTabActivated","_super","SdTabDeactivated","SdTabRouterService","notifyService","_this","events","BehaviorSubject","actions","builders","currentTabChanges","newTabs","_currentTab","_componentBuilders","addBuilder","builder","some","component","setCurrentTab","pushEvent","Event","setOptions","close","type","_a","key","Injectable","args","providedIn","SdNotifyService","SdTabDecoratorService","tabRouterService","undefined","SdTabRouterItemComponent","cdRef","_subsctiption","Subscription","event","preventDefault","stopPropagation","ngOnInit","add","subscribe","markForCheck","ngOnDestroy","unsubscribe","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Input","SdTabRouterNavComponent","elementRef","mode","checkUI","nameWidth","tabRouterNav","nativeElement","clientWidth","tabs","onDrop","moveItemInArray","previousIndex","currentIndex","onResize","ElementRef","ViewChild","HostListener","SdTabRouterOutletComponent","router","activatedRoute","cd","injector","compiler","tabDecoratorService","sdNotifyService","_rootRoute","_subscription","_firstLoad","tabTrackBy","index","_closeTab","isActive","activeKey","activeIndex","findIndex","_k","nextTab","nextUrl","url","nextQueryParams","assign","queryParams","filter","navigate","switchTab","navigateByUrl","_activeRoute","fullUrl","route","params","data","split","hash","existedIndex","activatedIndex","forEach","currentNavigation","getCurrentNavigation","_b","extras","replaceTab","_d","_c","existedTab","splice","_f","_e","parent","routeConfig","loadChildren","module","_l","compileModuleAsync","factory","injector_1","activatedRoute_1","_getActivatedRoute","SdOutletInjector","name","indexOf","_h","_g","injector_2","activatedRoute_2","_j","notify","warning","_getActivatedRouteSnapshot","activatedRouteSnapshot","firstChild","pipe","RoutesRecognized","NavigationEnd","snapshot","routerState","root","urlAfterRedirects","Router","ActivatedRoute","Injector","Compiler","token","notFoundValue","SdTabInfoPipe","transform","tabInfo","of","map","find","initialName","tooltip","color","Pipe","RouterLinkMouseDownDirective","onMouseDown","button","ctrlKey","shiftKey","altKey","metaKey","onClick","RouterLinkWithHref","Directive","NgModule","declarations","imports","RouterModule","CommonModule","MatIconModule","MatTooltipModule","DragDropModule","exports","providers","service","take"],"mappings":"ulCAgBIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC;;;;;;;;;;;;;;6FAGZS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,YAyCnEI,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOpC,OAAU0B,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIhB,EAAG,MAAM,IAAI1B,UAAU,mCAC3B,KAAO8B,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAE9B,KAAK6B,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAE9B,KAAK6B,EAAGe,EAAG,KAAKrB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEb,QACzB2B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEhB,MAAO2B,EAAG,GAAIrB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVF,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAEE,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIW,KAAKH,GAAK,MACvDd,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBD,EAAKjB,EAAK3B,KAAKS,EAASuB,GAC1B,MAAOZ,GAAKwB,EAAK,CAAC,EAAGxB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3B,MAAO2B,EAAG,GAAKA,EAAG,QAAK,EAAQrB,MAAM,GArB9BL,CAAK,CAACwB,EAAGC,MAyBhClD,OAAOc,gBAwBpByC,EAAOC,EAAGP,GACtB,IAAIQ,EAAsB,mBAAXV,QAAyBS,EAAET,OAAOC,UACjD,IAAKS,EAAG,OAAOD,EACf,IAAmBE,EAAY/B,EAA3BgC,EAAIF,EAAElD,KAAKiD,GAAOI,EAAK,GAC3B,IACI,WAAc,IAANX,GAAgBA,KAAM,MAAQS,EAAIC,EAAEjC,QAAQI,MAAM8B,EAAGN,KAAKI,EAAElC,OAExE,MAAOqC,GAASlC,EAAI,CAAEkC,MAAOA,WAEzB,IACQH,IAAMA,EAAE5B,OAAS2B,EAAIE,EAAU,SAAIF,EAAElD,KAAKoD,WAExC,GAAIhC,EAAG,MAAMA,EAAEkC,OAE7B,OAAOD,EAgEX,MAAyB5D,OAAOc,gBAkBhBgD,EAAuBC,EAAUC,EAAOC,EAAM9B,GAC1D,GAAa,MAAT8B,IAAiB9B,EAAG,MAAM,IAAI1B,UAAU,iDAC5C,GAAqB,mBAAVuD,EAAuBD,IAAaC,IAAU7B,GAAK6B,EAAME,IAAIH,GAAW,MAAM,IAAItD,UAAU,4EACvG,MAAgB,MAATwD,EAAe9B,EAAa,MAAT8B,EAAe9B,EAAE5B,KAAKwD,GAAY5B,EAAIA,EAAEX,MAAQwC,EAAMG,IAAIJ,YAGxEK,EAAuBL,EAAUC,EAAOxC,EAAOyC,EAAM9B,GACjE,GAAa,MAAT8B,EAAc,MAAM,IAAIxD,UAAU,kCACtC,GAAa,MAATwD,IAAiB9B,EAAG,MAAM,IAAI1B,UAAU,iDAC5C,GAAqB,mBAAVuD,EAAuBD,IAAaC,IAAU7B,GAAK6B,EAAME,IAAIH,GAAW,MAAM,IAAItD,UAAU,2EACvG,MAAiB,MAATwD,EAAe9B,EAAE5B,KAAKwD,EAAUvC,GAASW,EAAIA,EAAEX,MAAQA,EAAQwC,EAAMK,IAAIN,EAAUvC,GAASA,mBCxOtG,SAAA8C,EAAYC,GAFZC,EAAAH,IAAAzD,UAAA,GAGEwD,EAAAxD,KAAI4D,EAAQD,UAGdvE,OAAAyE,eAAIH,EAAAjE,UAAA,MAAG,KAAP,WACE,OAAAyD,EAAAlD,KAAA4D,6EAIJ,SAAAE,0DAAoClE,EAAAkE,EAAAC,MAAAL,iBAEpC,SAAAM,0DAAsCpE,EAAAoE,EAAAD,MAAAL,gBCGpC,SAAAO,EAAoBC,GAApB,IAAAC,EAAAnE,KAAoBA,KAAAkE,cAAAA,EAPpBlE,KAAAoE,OAAS,IAAIC,EAAAA,gBAA4B,IAAIX,EAAU,OACvD1D,KAAAsE,QAAU,IAAID,EAAAA,gBAAoC,MAClDrE,KAAAuE,SAAW,IAAIF,EAAAA,gBAAyC,IACxDrE,KAAAwE,kBAAoB,IAAIH,EAAAA,gBAAuB,MAC/CrE,KAAAyE,QAAU,IAAIJ,EAAAA,gBAAuB,MACrCK,EAAAjB,IAAAzD,KAA4B,MAC5B2E,EAAAlB,IAAAzD,KAA8C,IAI9CA,KAAA4E,WAAa,SAACC,GACP3B,EAAAiB,EAAAQ,GAAwBG,MAAK,SAAA/D,GAAK,OAAAA,EAAEgE,YAAcF,EAAQE,eAC7D7B,EAAAiB,EAAAQ,GAAwBjC,KAAKmC,GAC7BV,EAAKI,SAASzD,KAAIoC,EAAAiB,EAAAQ,MAkDtB3E,KAAAgF,cAAgB,SAACrB,GACfH,EAAAW,EAAIO,EAAef,GACnBQ,EAAKK,kBAAkB1D,KAAK6C,IAG9B3D,KAAAiF,UAAY,SAACtB,EAAYuB,GACvBf,EAAKC,OAAOtD,KAAK,IAAIoE,EAAMvB,KAG7B3D,KAAAmF,WAAa,aAEbnF,KAAAoF,MAAQ,SAACzB,GACHA,EACFQ,EAAKG,QAAQxD,KAAK,CAChBuE,KAAM,QACN1B,IAAGA,IAEAT,EAAAiB,EAAAO,IACLP,EAAKG,QAAQxD,KAAK,CAChBuE,KAAM,QACN1B,IAAGT,EAAAiB,EAAAO,aAlETtF,OAAAyE,eAAII,EAAAxE,UAAA,aAAU,KAAd,WACE,OAAAyD,EAAAlD,KAAA0E,oCAGFtF,OAAAyE,eAAII,EAAAxE,UAAA,MAAG,KAAP,iBACE,OAAO,QAAA6F,EAAApC,EAAAlD,KAAA0E,UAAA,IAAAY,OAAA,EAAAA,EAAkBC,MAAO,qNA1BnCC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAJLC,EAAAA,2BCGP,SAAAC,EAAYC,GACVD,EAAsBC,iBAAiB/E,KAAK+E,IAFvCD,EAAAC,iBAAmB,IAAIxB,EAAAA,qBAAoCyB,iIAJnEN,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAFLzB,sBCsBP,SAAA8B,EACUC,EACAH,GAFV,IAAA1B,EAAAnE,KACUA,KAAAgG,MAAAA,EACAhG,KAAA6F,iBAAAA,EAJVI,EAAAxC,IAAAzD,KAA8B,IAAIkG,EAAAA,cAmBlClG,KAAAoF,MAAQ,SAACe,GACPA,EAAMC,iBACND,EAAME,kBACNlC,EAAK0B,iBAAiBT,MAAMjB,EAAKR,aAfnCoC,EAAAtG,UAAA6G,SAAA,WAAA,IAAAnC,EAAAnE,KACEkD,EAAAlD,KAAAiG,GAAmBM,IACjBvG,KAAK6F,iBAAiBzB,OAAOoC,WAAU,WACrC,OAAArC,EAAK6B,MAAMS,oBAKjBV,EAAAtG,UAAAiH,YAAA,WACExD,EAAAlD,KAAAiG,GAAmBU,sDAzBtBC,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,qBACVC,SAAA,6rCAEAC,gBAAiBC,EAAAA,wBAAwBC,umCAfzCC,EAAAA,yBASOjD,kCASNkD,EAAAA,wCCKD,SAAAC,EAAoBpB,EAAgCqB,GAApD,IAAAlD,EAAAnE,KAAoBA,KAAAgG,MAAAA,EAAgChG,KAAAqH,WAAAA,EAFpDrH,KAAAsH,KAA8B,UAS9BtH,KAAAuH,QAAU,WACR,IACMC,GADQrD,EAAKsD,aAAaC,cAAcC,YACA,GAAnBxD,EAAKyD,KAAKnF,QAAe0B,EAAKyD,KAAKnF,OAE5D0B,EAAKmD,KADHE,GAAa,GACH,UAEA,UAEdrD,EAAK6B,MAAMS,gBAGbzG,KAAA6H,OAAS,SAAC1B,GACR2B,EAAAA,gBAAgB3D,EAAKyD,KAAMzB,EAAM4B,cAAe5B,EAAM6B,sBAhBxDZ,EAAA3H,UAAAwI,SAAA,SAAS9B,GACPnG,KAAKuH,oCAhBRX,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,oBACVC,SAAA,0eAEAC,gBAAiBC,EAAAA,wBAAwBC,whBAdzCC,EAAAA,yBAEAgB,EAAAA,oDAeCC,EAAAA,UAAS1C,KAAA,CAAC,8BAEV0B,EAAAA,wBAKAiB,EAAAA,aAAY3C,KAAA,CAAC,gBAAiB,CAAC,+BCwBhC,SAAA4C,EACUC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9C,EACA+C,GARV,IAAAzE,EAAAnE,KACUA,KAAAsI,OAAAA,EACAtI,KAAAuI,eAAAA,EACAvI,KAAAwI,GAAAA,EACAxI,KAAAyI,SAAAA,EACAzI,KAAA0I,SAAAA,EACA1I,KAAA2I,oBAAAA,EACA3I,KAAA6F,iBAAAA,EACA7F,KAAA4I,gBAAAA,EAbV5I,KAAA4H,KAAgB,GAEhBiB,EAAApF,IAAAzD,UAAA,GACA8I,EAAArF,IAAAzD,KAAgB,IAAIkG,EAAAA,cACpB6C,EAAAtF,IAAAzD,MAAa,GAyDbA,KAAAgJ,WAAa,SAACC,EAAetF,GAC3B,OAAOA,EAAI4B,KAGb2D,EAAAzF,IAAAzD,MAAY,SAAC2D,SACHwF,EAA6BxF,EAAGwF,SAAjBC,EAAczF,EAAG4B,IAExC,GAAI4D,EAAU,CACZ,IAAME,EAAclF,EAAKyD,KAAK0B,WAAU,SAACC,GAAY,OAAPA,EAAAhE,MAAe6D,KACvDI,EAAUrF,EAAKyD,KAAKyB,EAAc,IAAMlF,EAAKyD,KAAKyB,EAAc,GACtE,GAAIG,EAAS,CACH,IAAKC,EAAYD,EAAOE,IAC1BC,EAAevK,OAAAwK,OAAA,GACfJ,EAAQK,aAAe,IAG7B1F,EAAKyD,KAAOzD,EAAKyD,KAAKkC,QAAO,SAACP,GAAY,OAAPA,EAAAhE,MAAe6D,KAClDjF,EAAKmE,OAAOyB,SAAS,CAACN,GAAU,CAC9BI,YAAaF,EACbvG,MAAO,CACL4G,WAAW,UAIf7F,EAAKyD,KAAOzD,EAAKyD,KAAKkC,QAAO,SAACP,GAAY,OAAPA,EAAAhE,MAAe6D,KAClDjF,EAAKmE,OAAO2B,cAAc,IAAK,CAC7B7G,MAAO,CACL4G,WAAW,UAKjB7F,EAAKyD,KAAOzD,EAAKyD,KAAKkC,QAAO,SAACP,GAAY,OAAPA,EAAAhE,MAAe5B,EAAI4B,OACrC,QAAjBD,EAAAnB,EAAKsD,oBAAY,IAAAnC,GAAAA,EAAEiC,UACnBpD,EAAKqE,GAAG/B,kBAIZyD,EAAAzG,IAAAzD,MAAe,SACbmK,EACAC,GAAoC,OAAAjK,EAAAgE,OAAA,OAAA,GAAA,kIAEpC,OAAKiG,MAAAA,OAAK,EAALA,EAAOrF,YAGNA,EAAYqF,EAAMrF,UAClB8E,EAAWzK,OAAAwK,OAAA,GACXQ,EAAMP,aAAe,IAErBQ,EAAMjL,OAAAwK,OAAA,GACNQ,EAAMC,QAAU,IAEhBC,EAAIlL,OAAAwK,OAAA,GACJQ,EAAME,MAAQ,IAGdf,EAAA5G,EAAQwH,EAAQI,MAAM,KAAI,GAAzBb,EAAGH,EAAA,GACJhE,EAAMiF,EAAAA,QAAK,CAAEd,IAAGA,EAAEG,YAAWA,IAC/BY,GAAgB,EAChBC,GAAkB,EACtB1K,KAAK4H,KAAK+C,SAAQ,SAAChH,EAAYsF,GACzBtF,EAAI4B,MAAQA,GACd5B,EAAIwF,UAAW,EACfsB,EAAexB,IAEXtF,EAAIwF,WACNuB,EAAiBzB,EACjB9E,EAAK0B,iBAAiBZ,UAAUtB,EAAKK,IAEvCL,EAAIwF,UAAW,MAIbyB,EAAoB5K,KAAKsI,OAAOuC,uBAEhCb,EAA4C,QAAnCc,EAA4B,QAA5BxF,EAAGsF,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAAzF,OAAA,EAAAA,EAAElC,aAAK,IAAA0H,OAAA,EAAAA,EAAEd,UAE9CgB,EAA6C,QAAnCC,EAA4B,QAA5BC,EAAGN,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAAG,OAAA,EAAAA,EAAE9H,aAAK,IAAA6H,OAAA,EAAAA,EAAED,WACjDP,GAAgB,GACZU,EAAanL,KAAK4H,KAAK6C,GACzBO,GAAcN,GAAkB,GAC9BA,GAAkB,GACpB1K,KAAK4H,KAAKwD,OAAOV,EAAgB,GAGjCV,GACFhK,KAAK6F,iBAAiBb,cAAcmG,GACpCnL,KAAK6F,iBAAiBZ,UAAUkG,EAAYrH,UAF1C,CAAA,EAAA,IAPF,CAAA,EAAA,IAnCF,CAAA,gBA8C0D,mBAAnB,QAAjCuH,EAAoB,QAApBC,EAAOlB,MAAAA,OAAK,EAALA,EAAOmB,cAAM,IAAAD,OAAA,EAAAA,EAAEE,mBAAW,IAAAH,OAAA,EAAAA,EAAEI,cAAnC,CAAA,EAAA,GACa,CAAA,EAAMrB,EAAMmB,OAAOC,YAAYC,uBAC9B,OADVC,EAASC,EAAA9J,OACC,CAAA,EAAM7B,KAAK0I,SAASkD,mBAAmBF,WAAjDG,EAAUF,EAAA9J,OACViK,EAAWD,EAAQ3L,OAAOF,KAAKyI,UAC/BsD,EAAiB7I,EAAAlD,KAAAgM,GAAArM,KAAAK,KAAIkD,EAAAlD,KAAA6I,GAEzB9D,GAEIpB,EAAM,CACV4B,IAAGA,EACHR,UAASA,EACT0D,SAAU,IAAIwD,EAAiBF,EAAgBD,GAC/C3C,UAAU,EACV+C,KAAMxC,EACNA,IAAGA,EACHW,OAAMA,EACNR,YAAWA,EACXS,KAAIA,GAENtK,KAAK4H,KAAK5H,KAAK4H,KAAKuE,QAAQhB,IAAexH,4CAIS,mBAAnB,QAAjCyI,EAAoB,QAApBC,EAAOjC,MAAAA,OAAK,EAALA,EAAOmB,cAAM,IAAAc,OAAA,EAAAA,EAAEb,mBAAW,IAAAY,OAAA,EAAAA,EAAEX,cAAnC,CAAA,EAAA,GACa,CAAA,EAAMrB,EAAMmB,OAAOC,YAAYC,uBAC9B,OADVC,EAASC,EAAA9J,OACC,CAAA,EAAM7B,KAAK0I,SAASkD,mBAAmBF,WAAjDG,EAAUF,EAAA9J,OACVyK,EAAWT,EAAQ3L,OAAOF,KAAKyI,UAC/B8D,EAAiBrJ,EAAAlD,KAAAgM,GAAArM,KAAAK,KAAIkD,EAAAlD,KAAA6I,GAEzB9D,GAGIpB,EAAM,CACV4B,IAAGA,EACHR,UAASA,EACT0D,SAAU,IAAIwD,EAAiBM,EAAgBD,GAC/CnD,UAAU,EACV+C,KAAMxC,EACNA,IAAGA,EACHW,OAAMA,EACNR,YAAWA,EACXS,KAAIA,GAGNtK,KAAK6F,iBAAiBb,cAAcrB,GAChC+G,GAAkB,GAAKM,GACzBhL,KAAK4H,KAAKwD,OAAOV,EAAgB,GAEnC1K,KAAK4H,KAAKlF,KAAKiB,oBAQA,QAAjB6I,EAAAxM,KAAKyH,oBAAY,IAAA+E,GAAAA,EAAEjF,UACfvH,KAAK4H,KAAKnF,OAAS,IACrBzC,KAAK4I,gBAAgB6D,OAAOC,QAC1B,2FAGA1M,KAAK4H,KAAKnF,OAAS,IACrBzC,KAAK4H,KAAKwD,OAAO,EAAGpL,KAAK4H,KAAKnF,OAAS,4BAkD3CzC,KAAKwI,GAAG/B,6BAGVkG,EAAAlJ,IAAAzD,MAA6B,SAC3B4M,GAEA,IAAKA,EACH,OAAO,KAET,KAAOA,EAAuBC,YAC5BD,EAAyBA,EAAuBC,WAElD,OAAOD,KAGTZ,EAAAvI,IAAAzD,MAAqB,SACnBuI,EACAxD,GAEA,IAAKwD,EACH,OAAO,KAGT,GAAIA,EAAexD,WAAawD,EAAexD,YAAcA,EAC3D,OAAOwD,EAET,KAAOA,EAAesE,YAEpB,IADAtE,EAAiBA,EAAesE,YACb9H,WAAawD,EAAexD,YAAcA,EAC3D,OAAOwD,EAGX,OAAO,QAxRPrF,EAAAlD,KAAA8I,GAAmBvC,IACjB+B,EAAOlE,OACJ0I,KACChD,EAAAA,QACE,SAAC3D,GACC,OAAAA,aAAiB4G,EAAAA,kBACjB5G,aAAiB6G,EAAAA,kBAGtBxG,WAAU,SAAOL,GAAuC,OAAAhG,EAAAgE,OAAA,OAAA,GAAA,0EACnDjB,EAAAlD,KAAA+I,IAAmB5C,aAAiB6G,EAAAA,eACtCxJ,EAAAxD,KAAI+I,GAAc,GACZqB,EAAQlH,EAAAlD,KAAA2M,GAAAhN,KAAAK,KACZA,KAAKuI,eAAe0E,UAEtBzJ,EAAAxD,KAAI6I,EAAc7I,KAAKsI,OAAO4E,YAAYC,MAC1C,CAAA,EAAMjK,EAAAlD,KAAAkK,GAAAvK,KAAAK,KACJmG,EAAMiH,mBAAqBjH,EAAMuD,IACjCU,KARA,CAAA,EAAA,UAUF,OAJAb,EAAA1H,OAIA,CAAA,iBAEEqB,EAAAlD,KAAA+I,IAAoB5C,aAAiB4G,EAAAA,kBACjC3C,EAAQlH,EAAAlD,KAAA2M,GAAAhN,KAAAK,KAAgCmG,EAAM/C,MAAM+J,MAC1D3J,EAAAxD,KAAI6I,EAAc7I,KAAKsI,OAAO4E,YAAYC,MAC1C,CAAA,EAAMjK,EAAAlD,KAAAkK,GAAAvK,KAAAK,KACJmG,EAAMiH,mBAAqBjH,EAAMuD,IACjCU,KALA,CAAA,EAAA,UAGFb,EAAA1H,6CAQRqB,EAAAlD,KAAA8I,GAAmBvC,IACjBV,EAAiBvB,QAAQkC,WAAU,SAACL,GAC9BA,GAAwB,UAAfA,EAAMd,MACjBnC,EAAAiB,EAAA+E,GAAAvJ,KAAAwE,EAAegC,EAAMxC,gBAM7B0E,EAAA5I,UAAAiH,YAAA,WACExD,EAAAlD,KAAA8I,GAAmBnC,0IAlEtBC,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,uBACVC,SAAA,w8BApBAuG,EAAAA,cAPAC,EAAAA,sBAXApG,EAAAA,yBAGAqG,EAAAA,gBAFAC,EAAAA,gBA+BO5H,SAHA3B,SARA0B,EAAAA,yDAsBNwC,EAAAA,UAAS1C,KAAA,CAAC,mBA4Sb,IAAAwG,EAAA,WACE,SAAAA,EACU7B,EAEAmB,GAFAvL,KAAAoK,MAAAA,EAEApK,KAAAuL,OAAAA,SAGVU,EAAAxM,UAAA8D,IAAA,SAAIkK,EAAYC,GACd,OAAID,IAAUH,EAAAA,gBAAkBtN,KAAKoK,MAC5BpK,KAAKoK,MAOPpK,KAAKuL,OAAOhI,IAAIkK,EAAOC,MAhBlC,gBChVE,SAAAC,EAAoB9H,GAAA7F,KAAA6F,iBAAAA,SACpB8H,EAAAlO,UAAAmO,UAAA,SAAUC,EAAoBlK,GAC5B,OAAIkK,EACKC,EAAAA,GAAGD,GAEL7N,KAAK6F,iBAAiBtB,SAASuI,KAAKiB,EAAAA,KAAI,SAAAxJ,GAC7C,IAAMM,EAAUN,EAASyJ,MAAK,SAAAjN,GAAK,OAAAA,EAAEgE,YAAcpB,EAAIoB,aACvD,GAAIF,EAAS,CACH,IAAA6E,EAAmC/F,EAAG+F,IAAjCW,EAA8B1G,EAAG0G,OAAzBR,EAAsBlG,EAAGkG,YAAZS,EAAS3G,EAAG2G,KAW9C,OAVA3G,EAAIkK,QAAU,CACZ3B,KAAgC,mBAAlBrH,EAAY,KACxBA,EAAQqH,KAAK,CAAExC,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,EAAES,KAAIA,IAAMzF,EAAQqH,KAC7D+B,YAA8C,mBAAzBpJ,EAAmB,YACtCA,EAAQoJ,YAAY,CAAEvE,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,IAAMhF,EAAQoJ,YAC9DC,QAAsC,mBAArBrJ,EAAe,QAC9BA,EAAQqJ,QAAQ,CAAExE,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,IAAMhF,EAAQqJ,QAC1DC,MAAkC,mBAAnBtJ,EAAa,MAC1BA,EAAQsJ,MAAM,CAAEzE,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,IAAMhF,EAAQsJ,OAEnDxK,EAAIkK,QAMb,OAJAlK,EAAIkK,QAAU,CACZ3B,KAAMvI,EAAI+F,IACVuE,YAAa,MAERtK,EAAIkK,sCA7BhBO,EAAAA,KAAI3I,KAAA,CAAC,CACJyG,KAAM,yDAFCjI,uBCET,SAAAoK,0DAAkDzO,EAAAyO,EAAAtK,GAQhDsK,EAAA5O,UAAA6O,YAAA,SACEC,EACAC,EACAC,EACAC,EACAC,GAEA,OAAO3O,KAAK4O,QAAQL,EAAQC,EAASC,EAAUC,EAAQC,OAfTE,EAAAA,wCAHjDC,EAAAA,UAASrJ,KAAA,CAAC,CACToB,SAAU,0EAGTuB,EAAAA,aAAY3C,KAAA,CAAC,YAAa,CACzB,gBACA,iBACA,kBACA,gBACA,4BCuBJ,iCAtBCsJ,EAAAA,SAAQtJ,KAAA,CAAC,CACRuJ,aAAc,CACZjJ,EACAqB,EACAiB,EACAsF,EACAU,GAEFY,QAAS,CACPC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,cACAC,EAAAA,iBACAC,EAAAA,gBAEFC,QAAS,CACPxJ,EACAqB,EACAiB,GAEFmH,UAAW,kECpBqB3K,GAChC,OAAO,SAAC5E,GACN2F,EAAsBC,iBAAiBiH,KACrChD,EAAAA,QAAO,SAAA2F,GAAW,OAAAA,MAAAA,KAClBC,EAAAA,KAAK,IAAIlJ,WAAU,SAAAiJ,GACjBA,EAAQ7K,WAAWC","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n // Switch tab sẽ ko re-render lại trang\r\n const switchTab = currentNavigation?.extras?.state?.switchTab;\r\n // Replace tab sẽ close trang hiện tại\r\n const replaceTab = currentNavigation?.extras?.state?.replaceTab;\r\n if (existedIndex >= 0) {\r\n const existedTab = this.tabs[existedIndex];\r\n if (replaceTab && activatedIndex >= 0) {\r\n if (activatedIndex >= 0) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n }\r\n if (switchTab) {\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n this.tabs[this.tabs.indexOf(existedTab)] = tab;\r\n }\r\n }\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (activatedIndex >= 0 && replaceTab) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n this.tabs.push(tab);\r\n // if (existedIndex >= 0 && !switchTab) {\r\n // this.tabs[existedIndex] = tab;\r\n // } else {\r\n // this.tabs.push(tab);\r\n // }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n // if (existedIndex >= 0 && switchTab) {\r\n // const existedTab = this.tabs[existedIndex];\r\n // this.tabRouterService.setCurrentTab(existedTab);\r\n // this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n // } else {\r\n // if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n // const module = await route.parent.routeConfig.loadChildren();\r\n // const factory = await this.compiler.compileModuleAsync(module);\r\n // const injector = factory.create(this.injector);\r\n // const activatedRoute = this.#getActivatedRoute(\r\n // this.#rootRoute,\r\n // component\r\n // );\r\n\r\n // const tab = {\r\n // key,\r\n // component,\r\n // injector: new SdOutletInjector(activatedRoute, injector),\r\n // isActive: true,\r\n // name: url,\r\n // url,\r\n // params,\r\n // queryParams,\r\n // data\r\n // };\r\n\r\n // this.tabRouterService.setCurrentTab(tab);\r\n // if (activatedIndex >= 0 && replaceTab) {\r\n // this.tabs.splice(activatedIndex, 1);\r\n // }\r\n // if (existedIndex >= 0 && !switchTab) {\r\n // this.tabs[existedIndex] = tab;\r\n // } else {\r\n // this.tabs.push(tab);\r\n // }\r\n // }\r\n\r\n // this.tabRouterNav?.checkUI();\r\n // if (this.tabs.length > 10) {\r\n // this.sdNotifyService.notify.warning(\r\n // 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n // );\r\n // }\r\n // if (this.tabs.length > 15) {\r\n // this.tabs.splice(0, this.tabs.length - 10);\r\n // }\r\n // }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) { }\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","length","push","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdTabBase","tab","_tab","defineProperty","SdTabActivated","_super","SdTabDeactivated","SdTabRouterService","notifyService","_this","events","BehaviorSubject","actions","builders","currentTabChanges","newTabs","_currentTab","_componentBuilders","addBuilder","builder","some","component","setCurrentTab","pushEvent","Event","setOptions","close","type","_a","key","Injectable","args","providedIn","SdNotifyService","SdTabDecoratorService","tabRouterService","undefined","SdTabRouterItemComponent","cdRef","_subsctiption","Subscription","event","preventDefault","stopPropagation","ngOnInit","add","pipe","debounceTime","subscribe","markForCheck","ngOnDestroy","unsubscribe","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Input","SdTabRouterNavComponent","elementRef","mode","checkUI","nameWidth","tabRouterNav","nativeElement","clientWidth","tabs","onDrop","moveItemInArray","previousIndex","currentIndex","onResize","ElementRef","ViewChild","HostListener","SdTabRouterOutletComponent","router","activatedRoute","cd","injector","compiler","tabDecoratorService","sdNotifyService","_rootRoute","_subscription","_firstLoad","tabTrackBy","index","_closeTab","isActive","activeKey","activeIndex","findIndex","_k","nextTab","nextUrl","url","nextQueryParams","assign","queryParams","filter","navigate","switchTab","navigateByUrl","_activeRoute","fullUrl","route","params","data","split","hash","existedIndex","activatedIndex","forEach","currentNavigation","getCurrentNavigation","_b","extras","replaceTab","_d","_c","existedTab","splice","_f","_e","parent","routeConfig","loadChildren","module","_l","compileModuleAsync","factory","injector_1","activatedRoute_1","_getActivatedRoute","SdOutletInjector","name","indexOf","_h","_g","injector_2","activatedRoute_2","_j","notify","warning","_getActivatedRouteSnapshot","activatedRouteSnapshot","firstChild","RoutesRecognized","NavigationEnd","snapshot","routerState","root","urlAfterRedirects","Router","ActivatedRoute","Injector","Compiler","token","notFoundValue","SdTabInfoPipe","transform","tabInfo","of","map","find","initialName","tooltip","color","Pipe","RouterLinkMouseDownDirective","onMouseDown","button","ctrlKey","shiftKey","altKey","metaKey","onClick","RouterLinkWithHref","Directive","NgModule","declarations","imports","RouterModule","CommonModule","MatIconModule","MatTooltipModule","DragDropModule","exports","providers","service","take"],"mappings":"ulCAgBIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC;;;;;;;;;;;;;;6FAGZS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,YAyCnEI,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOpC,OAAU0B,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIhB,EAAG,MAAM,IAAI1B,UAAU,mCAC3B,KAAO8B,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAE9B,KAAK6B,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAE9B,KAAK6B,EAAGe,EAAG,KAAKrB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEb,QACzB2B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEhB,MAAO2B,EAAG,GAAIrB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVF,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAEE,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIW,KAAKH,GAAK,MACvDd,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBD,EAAKjB,EAAK3B,KAAKS,EAASuB,GAC1B,MAAOZ,GAAKwB,EAAK,CAAC,EAAGxB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3B,MAAO2B,EAAG,GAAKA,EAAG,QAAK,EAAQrB,MAAM,GArB9BL,CAAK,CAACwB,EAAGC,MAyBhClD,OAAOc,gBAwBpByC,EAAOC,EAAGP,GACtB,IAAIQ,EAAsB,mBAAXV,QAAyBS,EAAET,OAAOC,UACjD,IAAKS,EAAG,OAAOD,EACf,IAAmBE,EAAY/B,EAA3BgC,EAAIF,EAAElD,KAAKiD,GAAOI,EAAK,GAC3B,IACI,WAAc,IAANX,GAAgBA,KAAM,MAAQS,EAAIC,EAAEjC,QAAQI,MAAM8B,EAAGN,KAAKI,EAAElC,OAExE,MAAOqC,GAASlC,EAAI,CAAEkC,MAAOA,WAEzB,IACQH,IAAMA,EAAE5B,OAAS2B,EAAIE,EAAU,SAAIF,EAAElD,KAAKoD,WAExC,GAAIhC,EAAG,MAAMA,EAAEkC,OAE7B,OAAOD,EAgEX,MAAyB5D,OAAOc,gBAkBhBgD,EAAuBC,EAAUC,EAAOC,EAAM9B,GAC1D,GAAa,MAAT8B,IAAiB9B,EAAG,MAAM,IAAI1B,UAAU,iDAC5C,GAAqB,mBAAVuD,EAAuBD,IAAaC,IAAU7B,GAAK6B,EAAME,IAAIH,GAAW,MAAM,IAAItD,UAAU,4EACvG,MAAgB,MAATwD,EAAe9B,EAAa,MAAT8B,EAAe9B,EAAE5B,KAAKwD,GAAY5B,EAAIA,EAAEX,MAAQwC,EAAMG,IAAIJ,YAGxEK,EAAuBL,EAAUC,EAAOxC,EAAOyC,EAAM9B,GACjE,GAAa,MAAT8B,EAAc,MAAM,IAAIxD,UAAU,kCACtC,GAAa,MAATwD,IAAiB9B,EAAG,MAAM,IAAI1B,UAAU,iDAC5C,GAAqB,mBAAVuD,EAAuBD,IAAaC,IAAU7B,GAAK6B,EAAME,IAAIH,GAAW,MAAM,IAAItD,UAAU,2EACvG,MAAiB,MAATwD,EAAe9B,EAAE5B,KAAKwD,EAAUvC,GAASW,EAAIA,EAAEX,MAAQA,EAAQwC,EAAMK,IAAIN,EAAUvC,GAASA,mBCxOtG,SAAA8C,EAAYC,GAFZC,EAAAH,IAAAzD,UAAA,GAGEwD,EAAAxD,KAAI4D,EAAQD,UAGdvE,OAAAyE,eAAIH,EAAAjE,UAAA,MAAG,KAAP,WACE,OAAAyD,EAAAlD,KAAA4D,6EAIJ,SAAAE,0DAAoClE,EAAAkE,EAAAC,MAAAL,iBAEpC,SAAAM,0DAAsCpE,EAAAoE,EAAAD,MAAAL,gBCGpC,SAAAO,EAAoBC,GAApB,IAAAC,EAAAnE,KAAoBA,KAAAkE,cAAAA,EAPpBlE,KAAAoE,OAAS,IAAIC,EAAAA,gBAA4B,IAAIX,EAAU,OACvD1D,KAAAsE,QAAU,IAAID,EAAAA,gBAAoC,MAClDrE,KAAAuE,SAAW,IAAIF,EAAAA,gBAAyC,IACxDrE,KAAAwE,kBAAoB,IAAIH,EAAAA,gBAAuB,MAC/CrE,KAAAyE,QAAU,IAAIJ,EAAAA,gBAAuB,MACrCK,EAAAjB,IAAAzD,KAA4B,MAC5B2E,EAAAlB,IAAAzD,KAA8C,IAI9CA,KAAA4E,WAAa,SAACC,GACP3B,EAAAiB,EAAAQ,GAAwBG,MAAK,SAAA/D,GAAK,OAAAA,EAAEgE,YAAcF,EAAQE,eAC7D7B,EAAAiB,EAAAQ,GAAwBjC,KAAKmC,GAC7BV,EAAKI,SAASzD,KAAIoC,EAAAiB,EAAAQ,MAkDtB3E,KAAAgF,cAAgB,SAACrB,GACfH,EAAAW,EAAIO,EAAef,GACnBQ,EAAKK,kBAAkB1D,KAAK6C,IAG9B3D,KAAAiF,UAAY,SAACtB,EAAYuB,GACvBf,EAAKC,OAAOtD,KAAK,IAAIoE,EAAMvB,KAG7B3D,KAAAmF,WAAa,aAEbnF,KAAAoF,MAAQ,SAACzB,GACHA,EACFQ,EAAKG,QAAQxD,KAAK,CAChBuE,KAAM,QACN1B,IAAGA,IAEAT,EAAAiB,EAAAO,IACLP,EAAKG,QAAQxD,KAAK,CAChBuE,KAAM,QACN1B,IAAGT,EAAAiB,EAAAO,aAlETtF,OAAAyE,eAAII,EAAAxE,UAAA,aAAU,KAAd,WACE,OAAAyD,EAAAlD,KAAA0E,oCAGFtF,OAAAyE,eAAII,EAAAxE,UAAA,MAAG,KAAP,iBACE,OAAO,QAAA6F,EAAApC,EAAAlD,KAAA0E,UAAA,IAAAY,OAAA,EAAAA,EAAkBC,MAAO,qNA1BnCC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAJLC,EAAAA,2BCGP,SAAAC,EAAYC,GACVD,EAAsBC,iBAAiB/E,KAAK+E,IAFvCD,EAAAC,iBAAmB,IAAIxB,EAAAA,qBAAoCyB,iIAJnEN,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAFLzB,sBCuBP,SAAA8B,EACUC,EACAH,GAFV,IAAA1B,EAAAnE,KACUA,KAAAgG,MAAAA,EACAhG,KAAA6F,iBAAAA,EAJVI,EAAAxC,IAAAzD,KAA8B,IAAIkG,EAAAA,cAmBlClG,KAAAoF,MAAQ,SAACe,GACPA,EAAMC,iBACND,EAAME,kBACNlC,EAAK0B,iBAAiBT,MAAMjB,EAAKR,aAfnCoC,EAAAtG,UAAA6G,SAAA,WAAA,IAAAnC,EAAAnE,KACEkD,EAAAlD,KAAAiG,GAAmBM,IACjBvG,KAAK6F,iBAAiBzB,OAAOoC,KAAKC,EAAAA,aAAa,MAAMC,WAAU,WAC7DvC,EAAK6B,MAAMW,oBAKjBZ,EAAAtG,UAAAmH,YAAA,WACE1D,EAAAlD,KAAAiG,GAAmBY,sDAzBtBC,EAAAA,UAASrB,KAAA,CAAC,CACTsB,SAAU,qBACVC,SAAA,6rCAEAC,gBAAiBC,EAAAA,wBAAwBC,umCAhBzCC,EAAAA,yBAUOnD,kCASNoD,EAAAA,wCCID,SAAAC,EAAoBtB,EAAgCuB,GAApD,IAAApD,EAAAnE,KAAoBA,KAAAgG,MAAAA,EAAgChG,KAAAuH,WAAAA,EAFpDvH,KAAAwH,KAA8B,UAS9BxH,KAAAyH,QAAU,WACR,IACMC,GADQvD,EAAKwD,aAAaC,cAAcC,YACA,GAAnB1D,EAAK2D,KAAKrF,QAAe0B,EAAK2D,KAAKrF,OAE5D0B,EAAKqD,KADHE,GAAa,GACH,UAEA,UAEdvD,EAAK6B,MAAMW,gBAGb3G,KAAA+H,OAAS,SAAC5B,GACR6B,EAAAA,gBAAgB7D,EAAK2D,KAAM3B,EAAM8B,cAAe9B,EAAM+B,sBAhBxDZ,EAAA7H,UAAA0I,SAAA,SAAShC,GACPnG,KAAKyH,oCAhBRX,EAAAA,UAASrB,KAAA,CAAC,CACTsB,SAAU,oBACVC,SAAA,0eAEAC,gBAAiBC,EAAAA,wBAAwBC,whBAdzCC,EAAAA,yBAEAgB,EAAAA,oDAeCC,EAAAA,UAAS5C,KAAA,CAAC,8BAEV4B,EAAAA,wBAKAiB,EAAAA,aAAY7C,KAAA,CAAC,gBAAiB,CAAC,+BCwBhC,SAAA8C,EACUC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhD,EACAiD,GARV,IAAA3E,EAAAnE,KACUA,KAAAwI,OAAAA,EACAxI,KAAAyI,eAAAA,EACAzI,KAAA0I,GAAAA,EACA1I,KAAA2I,SAAAA,EACA3I,KAAA4I,SAAAA,EACA5I,KAAA6I,oBAAAA,EACA7I,KAAA6F,iBAAAA,EACA7F,KAAA8I,gBAAAA,EAbV9I,KAAA8H,KAAgB,GAEhBiB,EAAAtF,IAAAzD,UAAA,GACAgJ,EAAAvF,IAAAzD,KAAgB,IAAIkG,EAAAA,cACpB+C,EAAAxF,IAAAzD,MAAa,GAyDbA,KAAAkJ,WAAa,SAACC,EAAexF,GAC3B,OAAOA,EAAI4B,KAGb6D,EAAA3F,IAAAzD,MAAY,SAAC2D,SACH0F,EAA6B1F,EAAG0F,SAAjBC,EAAc3F,EAAG4B,IAExC,GAAI8D,EAAU,CACZ,IAAME,EAAcpF,EAAK2D,KAAK0B,WAAU,SAACC,GAAY,OAAPA,EAAAlE,MAAe+D,KACvDI,EAAUvF,EAAK2D,KAAKyB,EAAc,IAAMpF,EAAK2D,KAAKyB,EAAc,GACtE,GAAIG,EAAS,CACH,IAAKC,EAAYD,EAAOE,IAC1BC,EAAezK,OAAA0K,OAAA,GACfJ,EAAQK,aAAe,IAG7B5F,EAAK2D,KAAO3D,EAAK2D,KAAKkC,QAAO,SAACP,GAAY,OAAPA,EAAAlE,MAAe+D,KAClDnF,EAAKqE,OAAOyB,SAAS,CAACN,GAAU,CAC9BI,YAAaF,EACbzG,MAAO,CACL8G,WAAW,UAIf/F,EAAK2D,KAAO3D,EAAK2D,KAAKkC,QAAO,SAACP,GAAY,OAAPA,EAAAlE,MAAe+D,KAClDnF,EAAKqE,OAAO2B,cAAc,IAAK,CAC7B/G,MAAO,CACL8G,WAAW,UAKjB/F,EAAK2D,KAAO3D,EAAK2D,KAAKkC,QAAO,SAACP,GAAY,OAAPA,EAAAlE,MAAe5B,EAAI4B,OACrC,QAAjBD,EAAAnB,EAAKwD,oBAAY,IAAArC,GAAAA,EAAEmC,UACnBtD,EAAKuE,GAAG/B,kBAIZyD,EAAA3G,IAAAzD,MAAe,SACbqK,EACAC,GAAoC,OAAAnK,EAAAgE,OAAA,OAAA,GAAA,kIAEpC,OAAKmG,MAAAA,OAAK,EAALA,EAAOvF,YAGNA,EAAYuF,EAAMvF,UAClBgF,EAAW3K,OAAA0K,OAAA,GACXQ,EAAMP,aAAe,IAErBQ,EAAMnL,OAAA0K,OAAA,GACNQ,EAAMC,QAAU,IAEhBC,EAAIpL,OAAA0K,OAAA,GACJQ,EAAME,MAAQ,IAGdf,EAAA9G,EAAQ0H,EAAQI,MAAM,KAAI,GAAzBb,EAAGH,EAAA,GACJlE,EAAMmF,EAAAA,QAAK,CAAEd,IAAGA,EAAEG,YAAWA,IAC/BY,GAAgB,EAChBC,GAAkB,EACtB5K,KAAK8H,KAAK+C,SAAQ,SAAClH,EAAYwF,GACzBxF,EAAI4B,MAAQA,GACd5B,EAAI0F,UAAW,EACfsB,EAAexB,IAEXxF,EAAI0F,WACNuB,EAAiBzB,EACjBhF,EAAK0B,iBAAiBZ,UAAUtB,EAAKK,IAEvCL,EAAI0F,UAAW,MAIbyB,EAAoB9K,KAAKwI,OAAOuC,uBAEhCb,EAA4C,QAAnCc,EAA4B,QAA5B1F,EAAGwF,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAA3F,OAAA,EAAAA,EAAElC,aAAK,IAAA4H,OAAA,EAAAA,EAAEd,UAE9CgB,EAA6C,QAAnCC,EAA4B,QAA5BC,EAAGN,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAAG,OAAA,EAAAA,EAAEhI,aAAK,IAAA+H,OAAA,EAAAA,EAAED,WACjDP,GAAgB,GACZU,EAAarL,KAAK8H,KAAK6C,GACzBO,GAAcN,GAAkB,GAC9BA,GAAkB,GACpB5K,KAAK8H,KAAKwD,OAAOV,EAAgB,GAGjCV,GACFlK,KAAK6F,iBAAiBb,cAAcqG,GACpCrL,KAAK6F,iBAAiBZ,UAAUoG,EAAYvH,UAF1C,CAAA,EAAA,IAPF,CAAA,EAAA,IAnCF,CAAA,gBA8C0D,mBAAnB,QAAjCyH,EAAoB,QAApBC,EAAOlB,MAAAA,OAAK,EAALA,EAAOmB,cAAM,IAAAD,OAAA,EAAAA,EAAEE,mBAAW,IAAAH,OAAA,EAAAA,EAAEI,cAAnC,CAAA,EAAA,GACa,CAAA,EAAMrB,EAAMmB,OAAOC,YAAYC,uBAC9B,OADVC,EAASC,EAAAhK,OACC,CAAA,EAAM7B,KAAK4I,SAASkD,mBAAmBF,WAAjDG,EAAUF,EAAAhK,OACVmK,EAAWD,EAAQ7L,OAAOF,KAAK2I,UAC/BsD,EAAiB/I,EAAAlD,KAAAkM,GAAAvM,KAAAK,KAAIkD,EAAAlD,KAAA+I,GAEzBhE,GAEIpB,EAAM,CACV4B,IAAGA,EACHR,UAASA,EACT4D,SAAU,IAAIwD,EAAiBF,EAAgBD,GAC/C3C,UAAU,EACV+C,KAAMxC,EACNA,IAAGA,EACHW,OAAMA,EACNR,YAAWA,EACXS,KAAIA,GAENxK,KAAK8H,KAAK9H,KAAK8H,KAAKuE,QAAQhB,IAAe1H,4CAIS,mBAAnB,QAAjC2I,EAAoB,QAApBC,EAAOjC,MAAAA,OAAK,EAALA,EAAOmB,cAAM,IAAAc,OAAA,EAAAA,EAAEb,mBAAW,IAAAY,OAAA,EAAAA,EAAEX,cAAnC,CAAA,EAAA,GACa,CAAA,EAAMrB,EAAMmB,OAAOC,YAAYC,uBAC9B,OADVC,EAASC,EAAAhK,OACC,CAAA,EAAM7B,KAAK4I,SAASkD,mBAAmBF,WAAjDG,EAAUF,EAAAhK,OACV2K,EAAWT,EAAQ7L,OAAOF,KAAK2I,UAC/B8D,EAAiBvJ,EAAAlD,KAAAkM,GAAAvM,KAAAK,KAAIkD,EAAAlD,KAAA+I,GAEzBhE,GAGIpB,EAAM,CACV4B,IAAGA,EACHR,UAASA,EACT4D,SAAU,IAAIwD,EAAiBM,EAAgBD,GAC/CnD,UAAU,EACV+C,KAAMxC,EACNA,IAAGA,EACHW,OAAMA,EACNR,YAAWA,EACXS,KAAIA,GAGNxK,KAAK6F,iBAAiBb,cAAcrB,GAChCiH,GAAkB,GAAKM,GACzBlL,KAAK8H,KAAKwD,OAAOV,EAAgB,GAEnC5K,KAAK8H,KAAKpF,KAAKiB,oBAQA,QAAjB+I,EAAA1M,KAAK2H,oBAAY,IAAA+E,GAAAA,EAAEjF,UACfzH,KAAK8H,KAAKrF,OAAS,IACrBzC,KAAK8I,gBAAgB6D,OAAOC,QAC1B,2FAGA5M,KAAK8H,KAAKrF,OAAS,IACrBzC,KAAK8H,KAAKwD,OAAO,EAAGtL,KAAK8H,KAAKrF,OAAS,4BAkD3CzC,KAAK0I,GAAG/B,6BAGVkG,EAAApJ,IAAAzD,MAA6B,SAC3B8M,GAEA,IAAKA,EACH,OAAO,KAET,KAAOA,EAAuBC,YAC5BD,EAAyBA,EAAuBC,WAElD,OAAOD,KAGTZ,EAAAzI,IAAAzD,MAAqB,SACnByI,EACA1D,GAEA,IAAK0D,EACH,OAAO,KAGT,GAAIA,EAAe1D,WAAa0D,EAAe1D,YAAcA,EAC3D,OAAO0D,EAET,KAAOA,EAAesE,YAEpB,IADAtE,EAAiBA,EAAesE,YACbhI,WAAa0D,EAAe1D,YAAcA,EAC3D,OAAO0D,EAGX,OAAO,QAxRPvF,EAAAlD,KAAAgJ,GAAmBzC,IACjBiC,EAAOpE,OACJoC,KACCwD,EAAAA,QACE,SAAC7D,GACC,OAAAA,aAAiB6G,EAAAA,kBACjB7G,aAAiB8G,EAAAA,kBAGtBvG,WAAU,SAAOP,GAAuC,OAAAhG,EAAAgE,OAAA,OAAA,GAAA,0EACnDjB,EAAAlD,KAAAiJ,IAAmB9C,aAAiB8G,EAAAA,eACtCzJ,EAAAxD,KAAIiJ,GAAc,GACZqB,EAAQpH,EAAAlD,KAAA6M,GAAAlN,KAAAK,KACZA,KAAKyI,eAAeyE,UAEtB1J,EAAAxD,KAAI+I,EAAc/I,KAAKwI,OAAO2E,YAAYC,MAC1C,CAAA,EAAMlK,EAAAlD,KAAAoK,GAAAzK,KAAAK,KACJmG,EAAMkH,mBAAqBlH,EAAMyD,IACjCU,KARA,CAAA,EAAA,UAUF,OAJAb,EAAA5H,OAIA,CAAA,iBAEEqB,EAAAlD,KAAAiJ,IAAoB9C,aAAiB6G,EAAAA,kBACjC1C,EAAQpH,EAAAlD,KAAA6M,GAAAlN,KAAAK,KAAgCmG,EAAM/C,MAAMgK,MAC1D5J,EAAAxD,KAAI+I,EAAc/I,KAAKwI,OAAO2E,YAAYC,MAC1C,CAAA,EAAMlK,EAAAlD,KAAAoK,GAAAzK,KAAAK,KACJmG,EAAMkH,mBAAqBlH,EAAMyD,IACjCU,KALA,CAAA,EAAA,UAGFb,EAAA5H,6CAQRqB,EAAAlD,KAAAgJ,GAAmBzC,IACjBV,EAAiBvB,QAAQoC,WAAU,SAACP,GAC9BA,GAAwB,UAAfA,EAAMd,MACjBnC,EAAAiB,EAAAiF,GAAAzJ,KAAAwE,EAAegC,EAAMxC,gBAM7B4E,EAAA9I,UAAAmH,YAAA,WACE1D,EAAAlD,KAAAgJ,GAAmBnC,0IAlEtBC,EAAAA,UAASrB,KAAA,CAAC,CACTsB,SAAU,uBACVC,SAAA,w8BApBAsG,EAAAA,cAPAC,EAAAA,sBAXAnG,EAAAA,yBAGAoG,EAAAA,gBAFAC,EAAAA,gBA+BO7H,SAHA3B,SARA0B,EAAAA,yDAsBN0C,EAAAA,UAAS5C,KAAA,CAAC,mBA4Sb,IAAA0G,EAAA,WACE,SAAAA,EACU7B,EAEAmB,GAFAzL,KAAAsK,MAAAA,EAEAtK,KAAAyL,OAAAA,SAGVU,EAAA1M,UAAA8D,IAAA,SAAImK,EAAYC,GACd,OAAID,IAAUH,EAAAA,gBAAkBvN,KAAKsK,MAC5BtK,KAAKsK,MAOPtK,KAAKyL,OAAOlI,IAAImK,EAAOC,MAhBlC,gBChVE,SAAAC,EAAoB/H,GAAA7F,KAAA6F,iBAAAA,SACpB+H,EAAAnO,UAAAoO,UAAA,SAAUC,EAAoBnK,GAC5B,OAAImK,EACKC,EAAAA,GAAGD,GAEL9N,KAAK6F,iBAAiBtB,SAASiC,KAAKwH,EAAAA,KAAI,SAAAzJ,GAC7C,IAAMM,EAAUN,EAAS0J,MAAK,SAAAlN,GAAK,OAAAA,EAAEgE,YAAcpB,EAAIoB,aACvD,GAAIF,EAAS,CACH,IAAA+E,EAAmCjG,EAAGiG,IAAjCW,EAA8B5G,EAAG4G,OAAzBR,EAAsBpG,EAAGoG,YAAZS,EAAS7G,EAAG6G,KAW9C,OAVA7G,EAAImK,QAAU,CACZ1B,KAAgC,mBAAlBvH,EAAY,KACxBA,EAAQuH,KAAK,CAAExC,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,EAAES,KAAIA,IAAM3F,EAAQuH,KAC7D8B,YAA8C,mBAAzBrJ,EAAmB,YACtCA,EAAQqJ,YAAY,CAAEtE,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,IAAMlF,EAAQqJ,YAC9DC,QAAsC,mBAArBtJ,EAAe,QAC9BA,EAAQsJ,QAAQ,CAAEvE,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,IAAMlF,EAAQsJ,QAC1DC,MAAkC,mBAAnBvJ,EAAa,MAC1BA,EAAQuJ,MAAM,CAAExE,IAAGA,EAAEW,OAAMA,EAAER,YAAWA,IAAMlF,EAAQuJ,OAEnDzK,EAAImK,QAMb,OAJAnK,EAAImK,QAAU,CACZ1B,KAAMzI,EAAIiG,IACVsE,YAAa,MAERvK,EAAImK,sCA7BhBO,EAAAA,KAAI5I,KAAA,CAAC,CACJ2G,KAAM,yDAFCnI,uBCET,SAAAqK,0DAAkD1O,EAAA0O,EAAAvK,GAQhDuK,EAAA7O,UAAA8O,YAAA,SACEC,EACAC,EACAC,EACAC,EACAC,GAEA,OAAO5O,KAAK6O,QAAQL,EAAQC,EAASC,EAAUC,EAAQC,OAfTE,EAAAA,wCAHjDC,EAAAA,UAAStJ,KAAA,CAAC,CACTsB,SAAU,0EAGTuB,EAAAA,aAAY7C,KAAA,CAAC,YAAa,CACzB,gBACA,iBACA,kBACA,gBACA,4BCuBJ,iCAtBCuJ,EAAAA,SAAQvJ,KAAA,CAAC,CACRwJ,aAAc,CACZlJ,EACAuB,EACAiB,EACAqF,EACAU,GAEFY,QAAS,CACPC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,cACAC,EAAAA,iBACAC,EAAAA,gBAEFC,QAAS,CACPzJ,EACAuB,EACAiB,GAEFkH,UAAW,kECpBqB5K,GAChC,OAAO,SAAC5E,GACN2F,EAAsBC,iBAAiBW,KACrCwD,EAAAA,QAAO,SAAA0F,GAAW,OAAAA,MAAAA,KAClBC,EAAAA,KAAK,IAAIjJ,WAAU,SAAAgJ,GACjBA,EAAQ9K,WAAWC","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { debounceTime } from \"rxjs/operators\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.pipe(debounceTime(100)).subscribe(() => {\r\n this.cdRef.markForCheck();\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n // Switch tab sẽ ko re-render lại trang\r\n const switchTab = currentNavigation?.extras?.state?.switchTab;\r\n // Replace tab sẽ close trang hiện tại\r\n const replaceTab = currentNavigation?.extras?.state?.replaceTab;\r\n if (existedIndex >= 0) {\r\n const existedTab = this.tabs[existedIndex];\r\n if (replaceTab && activatedIndex >= 0) {\r\n if (activatedIndex >= 0) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n }\r\n if (switchTab) {\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n this.tabs[this.tabs.indexOf(existedTab)] = tab;\r\n }\r\n }\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (activatedIndex >= 0 && replaceTab) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n this.tabs.push(tab);\r\n // if (existedIndex >= 0 && !switchTab) {\r\n // this.tabs[existedIndex] = tab;\r\n // } else {\r\n // this.tabs.push(tab);\r\n // }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n // if (existedIndex >= 0 && switchTab) {\r\n // const existedTab = this.tabs[existedIndex];\r\n // this.tabRouterService.setCurrentTab(existedTab);\r\n // this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n // } else {\r\n // if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n // const module = await route.parent.routeConfig.loadChildren();\r\n // const factory = await this.compiler.compileModuleAsync(module);\r\n // const injector = factory.create(this.injector);\r\n // const activatedRoute = this.#getActivatedRoute(\r\n // this.#rootRoute,\r\n // component\r\n // );\r\n\r\n // const tab = {\r\n // key,\r\n // component,\r\n // injector: new SdOutletInjector(activatedRoute, injector),\r\n // isActive: true,\r\n // name: url,\r\n // url,\r\n // params,\r\n // queryParams,\r\n // data\r\n // };\r\n\r\n // this.tabRouterService.setCurrentTab(tab);\r\n // if (activatedIndex >= 0 && replaceTab) {\r\n // this.tabs.splice(activatedIndex, 1);\r\n // }\r\n // if (existedIndex >= 0 && !switchTab) {\r\n // this.tabs[existedIndex] = tab;\r\n // } else {\r\n // this.tabs.push(tab);\r\n // }\r\n // }\r\n\r\n // this.tabRouterNav?.checkUI();\r\n // if (this.tabs.length > 10) {\r\n // this.sdNotifyService.notify.warning(\r\n // 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n // );\r\n // }\r\n // if (this.tabs.length > 15) {\r\n // this.tabs.splice(0, this.tabs.length - 10);\r\n // }\r\n // }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) { }\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n"]}
@@ -27,7 +27,12 @@ export class SdDbService {
27
27
  };
28
28
  });
29
29
  _getKey.set(this, (id, args) => {
30
- const configuration = Object.assign(Object.assign({}, this.firebaseConfiguration), args);
30
+ var _a, _b, _c;
31
+ const configuration = {
32
+ functionUrl: ((_a = this.firebaseConfiguration) === null || _a === void 0 ? void 0 : _a.functionUrl) || (args === null || args === void 0 ? void 0 : args.functionUrl),
33
+ project: ((_b = this.firebaseConfiguration) === null || _b === void 0 ? void 0 : _b.project) || (args === null || args === void 0 ? void 0 : args.project),
34
+ env: ((_c = this.firebaseConfiguration) === null || _c === void 0 ? void 0 : _c.env) || (args === null || args === void 0 ? void 0 : args.env)
35
+ };
31
36
  return hash(Object.assign({ id }, configuration));
32
37
  });
33
38
  this.register = (collection, option) => {
@@ -111,4 +116,4 @@ SdDbService.ctorParameters = () => [
111
116
  { type: SdApiService },
112
117
  { type: undefined, decorators: [{ type: Inject, args: [FIREBASE_CONFIG,] }, { type: Optional }] }
113
118
  ];
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGIvIiwic291cmNlcyI6WyJzcmMvbGliL2RiLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQU1sRixNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLFVBQXdCLEVBQ2EscUJBQTZDO1FBRGxGLGVBQVUsR0FBVixVQUFVLENBQWM7UUFDYSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXdCO1FBRTVGLGlCQUE4QixFQUFFLEVBQUM7UUFFakMsa0JBQVUsQ0FBQyxJQUErRCxFQUFFLEVBQUU7WUFDNUUsTUFBTSxhQUFhLG1DQUNkLElBQUksQ0FBQyxxQkFBcUIsR0FDMUIsSUFBSSxDQUNSLENBQUM7WUFDRixNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsT0FBTztnQkFDTCxJQUFJLEVBQUUsR0FBRyxXQUFXLFlBQVksT0FBTyxJQUFJLEdBQUcsRUFBRTtnQkFDaEQsR0FBRyxFQUFFLEdBQUcsV0FBVyxXQUFXLE9BQU8sSUFBSSxHQUFHLEVBQUU7Z0JB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Y0FBYyxFQUFFLENBQUM7WUFDMUcsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBYSxPQUFPLENBQUMsQ0FBQztZQUNoRSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFBLENBQUE7SUFuSUQsQ0FBQztJQU5ELElBQUksZ0JBQWdCOztRQUNsQixPQUFPLENBQUMsUUFBQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLFdBQVcsQ0FBQSxJQUFJLENBQUMsUUFBQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLENBQUMsUUFBQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLEdBQUcsQ0FBQSxDQUFDO0lBQ2pJLENBQUM7Ozs7O1lBTkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFOUSxZQUFZOzRDQWFoQixNQUFNLFNBQUMsZUFBZSxjQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBTZEFwaVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2FwaSc7XHJcbmltcG9ydCB7IEZJUkVCQVNFX0NPTkZJRywgSUZpcmViYXNlQ29uZmlndXJhdGlvbiB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2REYlF1ZXJ5LCBTZERiUmVnaXN0ZXIsIFNkRGJSZXMsIFNkUmVnaXN0ZXJPcHRpb24gfSBmcm9tICcuL2RiLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRGJTZXJ2aWNlIHtcclxuICBnZXQgaGFzQ29uZmlndXJhdGlvbigpIHtcclxuICAgIHJldHVybiAhIXRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uPy5mdW5jdGlvblVybCAmJiAhIXRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uPy5wcm9qZWN0ICYmICEhdGhpcy5maXJlYmFzZUNvbmZpZ3VyYXRpb24/LmVudjtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IFNkQXBpU2VydmljZSxcclxuICAgIEBJbmplY3QoRklSRUJBU0VfQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGZpcmViYXNlQ29uZmlndXJhdGlvbjogSUZpcmViYXNlQ29uZmlndXJhdGlvbikge1xyXG4gIH1cclxuICAjY2FjaGU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgI2dldFVybCA9IChhcmdzPzogeyBmdW5jdGlvblVybD86IHN0cmluZzsgcHJvamVjdD86IHN0cmluZzsgZW52Pzogc3RyaW5nIH0pID0+IHtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIC4uLnRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uLFxyXG4gICAgICAuLi5hcmdzXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBmdW5jdGlvblVybCwgcHJvamVjdCwgZW52IH0gPSBjb25maWd1cmF0aW9uO1xyXG4gICAgaWYgKCFmdW5jdGlvblVybCB8fCAhcHJvamVjdCB8fCAhZW52KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZmlyZWJhc2UgZnVuY3Rpb24gY29uZmlndXJhdGlvbicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZmluZDogYCR7ZnVuY3Rpb25Vcmx9L2RiL2ZpbmQvJHtwcm9qZWN0fS8ke2Vudn1gLFxyXG4gICAgICBnZXQ6IGAke2Z1bmN0aW9uVXJsfS9kYi9nZXQvJHtwcm9qZWN0fS8ke2Vudn1gLFxyXG4gICAgICBzZXQ6IGAke2Z1bmN0aW9uVXJsfS9kYi9zZXQvJHtwcm9qZWN0fS8ke2Vudn1gLFxyXG4gICAgICByZW1vdmU6IGAke2Z1bmN0aW9uVXJsfS9kYi9yZW1vdmUvJHtwcm9qZWN0fS8ke2Vudn1gXHJcbiAgICB9O1xyXG4gIH1cclxuICAjZ2V0S2V5ID0gKGlkOiBzdHJpbmcsIGFyZ3M/OiB7IGZ1bmN0aW9uVXJsPzogc3RyaW5nOyBwcm9qZWN0Pzogc3RyaW5nOyBlbnY/OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgLi4udGhpcy5maXJlYmFzZUNvbmZpZ3VyYXRpb24sXHJcbiAgICAgIC4uLmFyZ3NcclxuICAgIH07XHJcbiAgICByZXR1cm4gaGFzaCh7XHJcbiAgICAgIGlkLFxyXG4gICAgICAuLi5jb25maWd1cmF0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVnaXN0ZXIgPSA8VCA9IGFueT4oY29sbGVjdGlvbjogc3RyaW5nLCBvcHRpb24/OiBTZFJlZ2lzdGVyT3B0aW9uKTogU2REYlJlZ2lzdGVyPFQ+ID0+IHtcclxuICAgIGNvbnN0IHsgY2FjaGVhYmxlIH0gPSBvcHRpb24gfHwge307XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBnZXQ6IGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KGlkLCBvcHRpb24pO1xyXG4gICAgICAgIGlmICghY2FjaGVhYmxlIHx8ICF0aGlzLiNjYWNoZVtrZXldKSB7XHJcbiAgICAgICAgICB0aGlzLiNjYWNoZVtrZXldID0gYXdhaXQgdGhpcy5nZXQoY29sbGVjdGlvbiwgaWQsIG9wdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuI2NhY2hlW2tleV0pKTtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAoaWQ6IHN0cmluZywgZGF0YTogVCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShpZCwgb3B0aW9uKTtcclxuICAgICAgICBkZWxldGUgdGhpcy4jY2FjaGVba2V5XTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXQoY29sbGVjdGlvbiwgaWQsIGRhdGEsIG9wdGlvbik7XHJcbiAgICAgIH0sXHJcbiAgICAgIHJlbW92ZTogKGlkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoaWQsIG9wdGlvbik7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlKGNvbGxlY3Rpb24sIGlkLCBvcHRpb24pO1xyXG4gICAgICB9LFxyXG4gICAgICBmaW5kOiAocXVlcnk/OiBTZERiUXVlcnkpID0+IHRoaXMuZmluZChjb2xsZWN0aW9uLCBxdWVyeSwgb3B0aW9uKSxcclxuICAgICAgY29weTogKFxyXG4gICAgICAgIHNvdXJjZToge1xyXG4gICAgICAgICAgZnVuY3Rpb25Vcmw/OiBzdHJpbmcsXHJcbiAgICAgICAgICBwcm9qZWN0Pzogc3RyaW5nLFxyXG4gICAgICAgICAgZW52OiBzdHJpbmcsXHJcbiAgICAgICAgICBmcm9tSWQ6IHN0cmluZ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9JZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KHRvSWQsIG9wdGlvbik7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29weShjb2xsZWN0aW9uLCBzb3VyY2UsIHRvSWQsIG9wdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgPSBhc3luYyA8VCA9IGFueT4oY29sbGVjdGlvbjogc3RyaW5nLCBpZDogc3RyaW5nLCBvcHRpb24/OiBTZFJlZ2lzdGVyT3B0aW9uKTogUHJvbWlzZTxTZERiUmVzPFQ+PiA9PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLiNnZXRVcmwob3B0aW9uKS5nZXR9LyR7Y29sbGVjdGlvbn0vJHtpZH1gO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXBpU2VydmljZS5nZXQodXJsKTtcclxuICB9XHJcblxyXG4gIHNldCA9IGFzeW5jIDxUID0gYW55Pihjb2xsZWN0aW9uOiBzdHJpbmcsIGlkOiBzdHJpbmcsIGRhdGE6IFQsIG9wdGlvbj86IFNkUmVnaXN0ZXJPcHRpb24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuI2dldFVybChvcHRpb24pLnNldH0vJHtjb2xsZWN0aW9ufS8ke2lkfWA7XHJcbiAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2UucG9zdCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlID0gYXN5bmMgKGNvbGxlY3Rpb246IHN0cmluZywgaWQ6IHN0cmluZywgb3B0aW9uPzogU2RSZWdpc3Rlck9wdGlvbik6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy4jZ2V0VXJsKG9wdGlvbikucmVtb3ZlfS8ke2NvbGxlY3Rpb259LyR7aWR9YDtcclxuICAgIGF3YWl0IHRoaXMuYXBpU2VydmljZS5kZWxldGUodXJsKTtcclxuICB9XHJcblxyXG4gIGZpbmQgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICBjb2xsZWN0aW9uOiBzdHJpbmcsXHJcbiAgICBxdWVyeT86IFNkRGJRdWVyeSxcclxuICAgIG9wdGlvbj86IFNkUmVnaXN0ZXJPcHRpb24pOiBQcm9taXNlPFNkRGJSZXM8KFQgJiB7IGRvY3VtZW50SWQ6IHN0cmluZyB9KVtdPj4gPT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy4jZ2V0VXJsKG9wdGlvbikuZmluZH0vJHtjb2xsZWN0aW9ufWA7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLnBvc3QodXJsLCBxdWVyeSk7XHJcbiAgfVxyXG5cclxuICBjb3B5ID0gYXN5bmMgPFQgPSBhbnk+KFxyXG4gICAgY29sbGVjdGlvbjogc3RyaW5nLFxyXG4gICAgc291cmNlOiB7XHJcbiAgICAgIGZ1bmN0aW9uVXJsPzogc3RyaW5nLFxyXG4gICAgICBwcm9qZWN0Pzogc3RyaW5nLFxyXG4gICAgICBlbnY6IHN0cmluZyxcclxuICAgICAgZnJvbUlkOiBzdHJpbmdcclxuICAgIH0sXHJcbiAgICB0b0lkOiBzdHJpbmcsXHJcbiAgICBvcHRpb24/OiBTZFJlZ2lzdGVyT3B0aW9uKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmdldDxUPihjb2xsZWN0aW9uLCBzb3VyY2UuZnJvbUlkLCB7XHJcbiAgICAgIC4uLm9wdGlvbixcclxuICAgICAgLi4uc291cmNlXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNldDxUPihjb2xsZWN0aW9uLCB0b0lkLCByZXMuZGF0YSwgb3B0aW9uKTtcclxuICB9XHJcblxyXG4gIGNsb25lID0gYXN5bmM8VCA9IGFueT4oXHJcbiAgICBhcmdzOiB7XHJcbiAgICAgIGNvbGxlY3Rpb24/OiBzdHJpbmcsXHJcbiAgICAgIGRvY3VtZW50SWQ/OiBzdHJpbmdcclxuICAgIH0sXHJcbiAgICBmcm9tOiB7XHJcbiAgICAgIGZ1bmN0aW9uVXJsPzogc3RyaW5nLFxyXG4gICAgICBwcm9qZWN0Pzogc3RyaW5nLFxyXG4gICAgICBlbnY6IHN0cmluZyxcclxuICAgICAgY29sbGVjdGlvbjogc3RyaW5nLFxyXG4gICAgICBkb2N1bWVudElkOiBzdHJpbmdcclxuICAgIH0pID0+IHtcclxuICAgIGlmICghdGhpcy5oYXNDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZmlyZWJhc2UgZnVuY3Rpb24gY29uZmlndXJhdGlvbicpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBmdW5jdGlvblVybCwgcHJvamVjdCwgZW52IH0gPSB0aGlzLmZpcmViYXNlQ29uZmlndXJhdGlvbjtcclxuICAgIGNvbnN0IGZyb21GdW5jdGlvblVybCA9IGZyb20/LmZ1bmN0aW9uVXJsIHx8IGZ1bmN0aW9uVXJsO1xyXG4gICAgY29uc3QgZnJvbVByb2plY3QgPSBmcm9tPy5wcm9qZWN0IHx8IHByb2plY3Q7XHJcbiAgICBjb25zdCBmcm9tRW52ID0gZnJvbT8uZW52O1xyXG4gICAgY29uc3QgZnJvbUNvbGxlY3Rpb24gPSBmcm9tPy5jb2xsZWN0aW9uO1xyXG4gICAgY29uc3QgZnJvbURvY3VtZW50SWQgPSBmcm9tPy5kb2N1bWVudElkO1xyXG4gICAgY29uc3QgdG9Db2xsZWN0aW9uID0gYXJncz8uY29sbGVjdGlvbiB8fCBmcm9tPy5jb2xsZWN0aW9uO1xyXG4gICAgY29uc3QgdG9Eb2N1bWVudElkID0gYXJncz8uZG9jdW1lbnRJZCB8fCBmcm9tPy5kb2N1bWVudElkO1xyXG4gICAgY29uc3QgZnJvbVVybCA9IGAke2Zyb21GdW5jdGlvblVybH0vZGIvZ2V0LyR7ZnJvbVByb2plY3R9LyR7ZnJvbUVudn0vJHtmcm9tQ29sbGVjdGlvbn0vJHtmcm9tRG9jdW1lbnRJZH1gO1xyXG4gICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuZ2V0PFNkRGJSZXM8VD4+KGZyb21VcmwpO1xyXG4gICAgYXdhaXQgdGhpcy5zZXQodG9Db2xsZWN0aW9uLCB0b0RvY3VtZW50SWQsIGRvY3VtZW50LmRhdGEpO1xyXG4gIH1cclxufVxyXG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZGIvIiwic291cmNlcyI6WyJzcmMvbGliL2RiLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQU1sRixNQUFNLE9BQU8sV0FBVztJQUl0QixZQUNVLFVBQXdCLEVBQ2EscUJBQTZDO1FBRGxGLGVBQVUsR0FBVixVQUFVLENBQWM7UUFDYSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXdCO1FBRTVGLGlCQUE4QixFQUFFLEVBQUM7UUFFakMsa0JBQVUsQ0FBQyxJQUErRCxFQUFFLEVBQUU7WUFDNUUsTUFBTSxhQUFhLG1DQUNkLElBQUksQ0FBQyxxQkFBcUIsR0FDMUIsSUFBSSxDQUNSLENBQUM7WUFDRixNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsT0FBTztnQkFDTCxJQUFJLEVBQUUsR0FBRyxXQUFXLFlBQVksT0FBTyxJQUFJLEdBQUcsRUFBRTtnQkFDaEQsR0FBRyxFQUFFLEdBQUcsV0FBVyxXQUFXLE9BQU8sSUFBSSxHQUFHLEVBQUU7Z0JB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YUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxVQUFVLE1BQUksSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsQ0FBQSxDQUFDO1lBQzFELE1BQU0sWUFBWSxHQUFHLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsTUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsVUFBVSxDQUFBLENBQUM7WUFDMUQsTUFBTSxPQUFPLEdBQUcsR0FBRyxlQUFlLFdBQVcsV0FBVyxJQUFJLE9BQU8sSUFBSSxjQUFjLElBQUksY0FBYyxFQUFFLENBQUM7WUFDMUcsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBYSxPQUFPLENBQUMsQ0FBQztZQUNoRSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFBLENBQUE7SUFwSUQsQ0FBQztJQU5ELElBQUksZ0JBQWdCOztRQUNsQixPQUFPLENBQUMsUUFBQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLFdBQVcsQ0FBQSxJQUFJLENBQUMsUUFBQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLENBQUMsUUFBQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLEdBQUcsQ0FBQSxDQUFDO0lBQ2pJLENBQUM7Ozs7O1lBTkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFOUSxZQUFZOzRDQWFoQixNQUFNLFNBQUMsZUFBZSxjQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBTZEFwaVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2FwaSc7XHJcbmltcG9ydCB7IEZJUkVCQVNFX0NPTkZJRywgSUZpcmViYXNlQ29uZmlndXJhdGlvbiB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2REYlF1ZXJ5LCBTZERiUmVnaXN0ZXIsIFNkRGJSZXMsIFNkUmVnaXN0ZXJPcHRpb24gfSBmcm9tICcuL2RiLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRGJTZXJ2aWNlIHtcclxuICBnZXQgaGFzQ29uZmlndXJhdGlvbigpIHtcclxuICAgIHJldHVybiAhIXRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uPy5mdW5jdGlvblVybCAmJiAhIXRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uPy5wcm9qZWN0ICYmICEhdGhpcy5maXJlYmFzZUNvbmZpZ3VyYXRpb24/LmVudjtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IFNkQXBpU2VydmljZSxcclxuICAgIEBJbmplY3QoRklSRUJBU0VfQ09ORklHKSBAT3B0aW9uYWwoKSBwcml2YXRlIGZpcmViYXNlQ29uZmlndXJhdGlvbjogSUZpcmViYXNlQ29uZmlndXJhdGlvbikge1xyXG4gIH1cclxuICAjY2FjaGU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgI2dldFVybCA9IChhcmdzPzogeyBmdW5jdGlvblVybD86IHN0cmluZzsgcHJvamVjdD86IHN0cmluZzsgZW52Pzogc3RyaW5nIH0pID0+IHtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIC4uLnRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uLFxyXG4gICAgICAuLi5hcmdzXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBmdW5jdGlvblVybCwgcHJvamVjdCwgZW52IH0gPSBjb25maWd1cmF0aW9uO1xyXG4gICAgaWYgKCFmdW5jdGlvblVybCB8fCAhcHJvamVjdCB8fCAhZW52KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZmlyZWJhc2UgZnVuY3Rpb24gY29uZmlndXJhdGlvbicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZmluZDogYCR7ZnVuY3Rpb25Vcmx9L2RiL2ZpbmQvJHtwcm9qZWN0fS8ke2Vudn1gLFxyXG4gICAgICBnZXQ6IGAke2Z1bmN0aW9uVXJsfS9kYi9nZXQvJHtwcm9qZWN0fS8ke2Vudn1gLFxyXG4gICAgICBzZXQ6IGAke2Z1bmN0aW9uVXJsfS9kYi9zZXQvJHtwcm9qZWN0fS8ke2Vudn1gLFxyXG4gICAgICByZW1vdmU6IGAke2Z1bmN0aW9uVXJsfS9kYi9yZW1vdmUvJHtwcm9qZWN0fS8ke2Vudn1gXHJcbiAgICB9O1xyXG4gIH1cclxuICAjZ2V0S2V5ID0gKGlkOiBzdHJpbmcsIGFyZ3M/OiB7IGZ1bmN0aW9uVXJsPzogc3RyaW5nOyBwcm9qZWN0Pzogc3RyaW5nOyBlbnY/OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgZnVuY3Rpb25Vcmw6IHRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uPy5mdW5jdGlvblVybCB8fCBhcmdzPy5mdW5jdGlvblVybCxcclxuICAgICAgcHJvamVjdDogdGhpcy5maXJlYmFzZUNvbmZpZ3VyYXRpb24/LnByb2plY3QgfHwgYXJncz8ucHJvamVjdCxcclxuICAgICAgZW52OiB0aGlzLmZpcmViYXNlQ29uZmlndXJhdGlvbj8uZW52IHx8IGFyZ3M/LmVudlxyXG4gICAgfTtcclxuICAgIHJldHVybiBoYXNoKHtcclxuICAgICAgaWQsXHJcbiAgICAgIC4uLmNvbmZpZ3VyYXRpb25cclxuICAgIH0pO1xyXG4gIH1cclxuICByZWdpc3RlciA9IDxUID0gYW55Pihjb2xsZWN0aW9uOiBzdHJpbmcsIG9wdGlvbj86IFNkUmVnaXN0ZXJPcHRpb24pOiBTZERiUmVnaXN0ZXI8VD4gPT4ge1xyXG4gICAgY29uc3QgeyBjYWNoZWFibGUgfSA9IG9wdGlvbiB8fCB7fTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldDogYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoaWQsIG9wdGlvbik7XHJcbiAgICAgICAgaWYgKCFjYWNoZWFibGUgfHwgIXRoaXMuI2NhY2hlW2tleV0pIHtcclxuICAgICAgICAgIHRoaXMuI2NhY2hlW2tleV0gPSBhd2FpdCB0aGlzLmdldChjb2xsZWN0aW9uLCBpZCwgb3B0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy4jY2FjaGVba2V5XSkpO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6IChpZDogc3RyaW5nLCBkYXRhOiBUKSA9PiB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KGlkLCBvcHRpb24pO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLiNjYWNoZVtrZXldO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldChjb2xsZWN0aW9uLCBpZCwgZGF0YSwgb3B0aW9uKTtcclxuICAgICAgfSxcclxuICAgICAgcmVtb3ZlOiAoaWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShpZCwgb3B0aW9uKTtcclxuICAgICAgICBkZWxldGUgdGhpcy4jY2FjaGVba2V5XTtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmUoY29sbGVjdGlvbiwgaWQsIG9wdGlvbik7XHJcbiAgICAgIH0sXHJcbiAgICAgIGZpbmQ6IChxdWVyeT86IFNkRGJRdWVyeSkgPT4gdGhpcy5maW5kKGNvbGxlY3Rpb24sIHF1ZXJ5LCBvcHRpb24pLFxyXG4gICAgICBjb3B5OiAoXHJcbiAgICAgICAgc291cmNlOiB7XHJcbiAgICAgICAgICBmdW5jdGlvblVybD86IHN0cmluZyxcclxuICAgICAgICAgIHByb2plY3Q/OiBzdHJpbmcsXHJcbiAgICAgICAgICBlbnY6IHN0cmluZyxcclxuICAgICAgICAgIGZyb21JZDogc3RyaW5nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b0lkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkodG9JZCwgb3B0aW9uKTtcclxuICAgICAgICBkZWxldGUgdGhpcy4jY2FjaGVba2V5XTtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb3B5KGNvbGxlY3Rpb24sIHNvdXJjZSwgdG9JZCwgb3B0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCA9IGFzeW5jIDxUID0gYW55Pihjb2xsZWN0aW9uOiBzdHJpbmcsIGlkOiBzdHJpbmcsIG9wdGlvbj86IFNkUmVnaXN0ZXJPcHRpb24pOiBQcm9taXNlPFNkRGJSZXM8VD4+ID0+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuI2dldFVybChvcHRpb24pLmdldH0vJHtjb2xsZWN0aW9ufS8ke2lkfWA7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgc2V0ID0gYXN5bmMgPFQgPSBhbnk+KGNvbGxlY3Rpb246IHN0cmluZywgaWQ6IHN0cmluZywgZGF0YTogVCwgb3B0aW9uPzogU2RSZWdpc3Rlck9wdGlvbik6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy4jZ2V0VXJsKG9wdGlvbikuc2V0fS8ke2NvbGxlY3Rpb259LyR7aWR9YDtcclxuICAgIGF3YWl0IHRoaXMuYXBpU2VydmljZS5wb3N0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUgPSBhc3luYyAoY29sbGVjdGlvbjogc3RyaW5nLCBpZDogc3RyaW5nLCBvcHRpb24/OiBTZFJlZ2lzdGVyT3B0aW9uKTogUHJvbWlzZTx2b2lkPiA9PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLiNnZXRVcmwob3B0aW9uKS5yZW1vdmV9LyR7Y29sbGVjdGlvbn0vJHtpZH1gO1xyXG4gICAgYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZSh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZmluZCA9IGFzeW5jIDxUID0gYW55PihcclxuICAgIGNvbGxlY3Rpb246IHN0cmluZyxcclxuICAgIHF1ZXJ5PzogU2REYlF1ZXJ5LFxyXG4gICAgb3B0aW9uPzogU2RSZWdpc3Rlck9wdGlvbik6IFByb21pc2U8U2REYlJlczwoVCAmIHsgZG9jdW1lbnRJZDogc3RyaW5nIH0pW10+PiA9PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLiNnZXRVcmwob3B0aW9uKS5maW5kfS8ke2NvbGxlY3Rpb259YDtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmFwaVNlcnZpY2UucG9zdCh1cmwsIHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIGNvcHkgPSBhc3luYyA8VCA9IGFueT4oXHJcbiAgICBjb2xsZWN0aW9uOiBzdHJpbmcsXHJcbiAgICBzb3VyY2U6IHtcclxuICAgICAgZnVuY3Rpb25Vcmw/OiBzdHJpbmcsXHJcbiAgICAgIHByb2plY3Q/OiBzdHJpbmcsXHJcbiAgICAgIGVudjogc3RyaW5nLFxyXG4gICAgICBmcm9tSWQ6IHN0cmluZ1xyXG4gICAgfSxcclxuICAgIHRvSWQ6IHN0cmluZyxcclxuICAgIG9wdGlvbj86IFNkUmVnaXN0ZXJPcHRpb24pOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ2V0PFQ+KGNvbGxlY3Rpb24sIHNvdXJjZS5mcm9tSWQsIHtcclxuICAgICAgLi4ub3B0aW9uLFxyXG4gICAgICAuLi5zb3VyY2VcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0PFQ+KGNvbGxlY3Rpb24sIHRvSWQsIHJlcy5kYXRhLCBvcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgY2xvbmUgPSBhc3luYzxUID0gYW55PihcclxuICAgIGFyZ3M6IHtcclxuICAgICAgY29sbGVjdGlvbj86IHN0cmluZyxcclxuICAgICAgZG9jdW1lbnRJZD86IHN0cmluZ1xyXG4gICAgfSxcclxuICAgIGZyb206IHtcclxuICAgICAgZnVuY3Rpb25Vcmw/OiBzdHJpbmcsXHJcbiAgICAgIHByb2plY3Q/OiBzdHJpbmcsXHJcbiAgICAgIGVudjogc3RyaW5nLFxyXG4gICAgICBjb2xsZWN0aW9uOiBzdHJpbmcsXHJcbiAgICAgIGRvY3VtZW50SWQ6IHN0cmluZ1xyXG4gICAgfSkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLmhhc0NvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBmaXJlYmFzZSBmdW5jdGlvbiBjb25maWd1cmF0aW9uJyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGZ1bmN0aW9uVXJsLCBwcm9qZWN0LCBlbnYgfSA9IHRoaXMuZmlyZWJhc2VDb25maWd1cmF0aW9uO1xyXG4gICAgY29uc3QgZnJvbUZ1bmN0aW9uVXJsID0gZnJvbT8uZnVuY3Rpb25VcmwgfHwgZnVuY3Rpb25Vcmw7XHJcbiAgICBjb25zdCBmcm9tUHJvamVjdCA9IGZyb20/LnByb2plY3QgfHwgcHJvamVjdDtcclxuICAgIGNvbnN0IGZyb21FbnYgPSBmcm9tPy5lbnY7XHJcbiAgICBjb25zdCBmcm9tQ29sbGVjdGlvbiA9IGZyb20/LmNvbGxlY3Rpb247XHJcbiAgICBjb25zdCBmcm9tRG9jdW1lbnRJZCA9IGZyb20/LmRvY3VtZW50SWQ7XHJcbiAgICBjb25zdCB0b0NvbGxlY3Rpb24gPSBhcmdzPy5jb2xsZWN0aW9uIHx8IGZyb20/LmNvbGxlY3Rpb247XHJcbiAgICBjb25zdCB0b0RvY3VtZW50SWQgPSBhcmdzPy5kb2N1bWVudElkIHx8IGZyb20/LmRvY3VtZW50SWQ7XHJcbiAgICBjb25zdCBmcm9tVXJsID0gYCR7ZnJvbUZ1bmN0aW9uVXJsfS9kYi9nZXQvJHtmcm9tUHJvamVjdH0vJHtmcm9tRW52fS8ke2Zyb21Db2xsZWN0aW9ufS8ke2Zyb21Eb2N1bWVudElkfWA7XHJcbiAgICBjb25zdCBkb2N1bWVudCA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5nZXQ8U2REYlJlczxUPj4oZnJvbVVybCk7XHJcbiAgICBhd2FpdCB0aGlzLnNldCh0b0NvbGxlY3Rpb24sIHRvRG9jdW1lbnRJZCwgZG9jdW1lbnQuZGF0YSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,6 +2,7 @@ var _subsctiption;
2
2
  import { __classPrivateFieldGet } from "tslib";
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from "@angular/core";
4
4
  import { Subscription } from "rxjs";
5
+ import { debounceTime } from "rxjs/operators";
5
6
  import { SdTabRouterService } from "../../services/tab-router.service";
6
7
  export class SdTabRouterItemComponent {
7
8
  constructor(cdRef, tabRouterService) {
@@ -15,7 +16,9 @@ export class SdTabRouterItemComponent {
15
16
  };
16
17
  }
17
18
  ngOnInit() {
18
- __classPrivateFieldGet(this, _subsctiption).add(this.tabRouterService.events.subscribe(() => this.cdRef.markForCheck()));
19
+ __classPrivateFieldGet(this, _subsctiption).add(this.tabRouterService.events.pipe(debounceTime(100)).subscribe(() => {
20
+ this.cdRef.markForCheck();
21
+ }));
19
22
  }
20
23
  ngOnDestroy() {
21
24
  __classPrivateFieldGet(this, _subsctiption).unsubscribe();
@@ -37,4 +40,4 @@ SdTabRouterItemComponent.ctorParameters = () => [
37
40
  SdTabRouterItemComponent.propDecorators = {
38
41
  tab: [{ type: Input }]
39
42
  };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXJvdXRlci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvdGFiLXJvdXRlci8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy90YWItcm91dGVyLWl0ZW0vdGFiLXJvdXRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQVF2RSxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQ1UsS0FBd0IsRUFDeEIsZ0JBQW9DO1FBRHBDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFKOUMsd0JBQThCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFtQmpELFVBQUssR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDO0lBbEJDLENBQUM7SUFFSixRQUFRO1FBQ04sNENBQW1CLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQzFCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7WUExQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHd1Q0FBK0M7Z0JBRS9DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBaEJDLGlCQUFpQjtZQVNWLGtCQUFrQjs7O2tCQVN4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHsgU2RUYWIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3RhYi1yb3V0ZXIubW9kZWxcIjtcclxuaW1wb3J0IHsgU2RUYWJSb3V0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RhYi1yb3V0ZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic2QtdGFiLXJvdXRlci1pdGVtXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90YWItcm91dGVyLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vdGFiLXJvdXRlci1pdGVtLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RUYWJSb3V0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHRhYjogU2RUYWI7XHJcblxyXG4gICNzdWJzY3RpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdGFiUm91dGVyU2VydmljZTogU2RUYWJSb3V0ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuI3N1YnNjdGlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5ldmVudHMuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLiNzdWJzY3RpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy50YWJSb3V0ZXJTZXJ2aWNlLmNsb3NlKHRoaXMudGFiKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXJvdXRlci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvdGFiLXJvdXRlci8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy90YWItcm91dGVyLWl0ZW0vdGFiLXJvdXRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFRdkUsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQyxZQUNVLEtBQXdCLEVBQ3hCLGdCQUFvQztRQURwQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBSjlDLHdCQUE4QixJQUFJLFlBQVksRUFBRSxFQUFDO1FBbUJqRCxVQUFLLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztJQWxCQyxDQUFDO0lBRUosUUFBUTtRQUNOLDRDQUFtQixHQUFHLENBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztZQTFCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsd3VDQUErQztnQkFFL0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUFqQkMsaUJBQWlCO1lBVVYsa0JBQWtCOzs7a0JBU3hCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHsgU2RUYWIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3RhYi1yb3V0ZXIubW9kZWxcIjtcclxuaW1wb3J0IHsgU2RUYWJSb3V0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RhYi1yb3V0ZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic2QtdGFiLXJvdXRlci1pdGVtXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi90YWItcm91dGVyLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vdGFiLXJvdXRlci1pdGVtLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RUYWJSb3V0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHRhYjogU2RUYWI7XHJcblxyXG4gICNzdWJzY3RpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdGFiUm91dGVyU2VydmljZTogU2RUYWJSb3V0ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuI3N1YnNjdGlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5ldmVudHMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jc3Vic2N0aXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMudGFiUm91dGVyU2VydmljZS5jbG9zZSh0aGlzLnRhYik7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -24,7 +24,12 @@ class SdDbService {
24
24
  };
25
25
  });
26
26
  _getKey.set(this, (id, args) => {
27
- const configuration = Object.assign(Object.assign({}, this.firebaseConfiguration), args);
27
+ var _a, _b, _c;
28
+ const configuration = {
29
+ functionUrl: ((_a = this.firebaseConfiguration) === null || _a === void 0 ? void 0 : _a.functionUrl) || (args === null || args === void 0 ? void 0 : args.functionUrl),
30
+ project: ((_b = this.firebaseConfiguration) === null || _b === void 0 ? void 0 : _b.project) || (args === null || args === void 0 ? void 0 : args.project),
31
+ env: ((_c = this.firebaseConfiguration) === null || _c === void 0 ? void 0 : _c.env) || (args === null || args === void 0 ? void 0 : args.env)
32
+ };
28
33
  return hash(Object.assign({ id }, configuration));
29
34
  });
30
35
  this.register = (collection, option) => {
@@ -1 +1 @@
1
- {"version":3,"file":"sd-angular-core-db.js","sources":["../../../../projects/sd-core/db/src/lib/db.service.ts","../../../../projects/sd-core/db/src/public-api.ts","../../../../projects/sd-core/db/sd-angular-core-db.ts"],"sourcesContent":["import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\nimport { SdDbQuery, SdDbRegister, SdDbRes, SdRegisterOption } from './db.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdDbService {\r\n get hasConfiguration() {\r\n return !!this.firebaseConfiguration?.functionUrl && !!this.firebaseConfiguration?.project && !!this.firebaseConfiguration?.env;\r\n }\r\n constructor(\r\n private apiService: SdApiService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n #cache: Record<string, any> = {};\r\n\r\n #getUrl = (args?: { functionUrl?: string; project?: string; env?: string }) => {\r\n const configuration = {\r\n ...this.firebaseConfiguration,\r\n ...args\r\n };\r\n const { functionUrl, project, env } = configuration;\r\n if (!functionUrl || !project || !env) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n return {\r\n find: `${functionUrl}/db/find/${project}/${env}`,\r\n get: `${functionUrl}/db/get/${project}/${env}`,\r\n set: `${functionUrl}/db/set/${project}/${env}`,\r\n remove: `${functionUrl}/db/remove/${project}/${env}`\r\n };\r\n }\r\n #getKey = (id: string, args?: { functionUrl?: string; project?: string; env?: string }) => {\r\n const configuration = {\r\n ...this.firebaseConfiguration,\r\n ...args\r\n };\r\n return hash({\r\n id,\r\n ...configuration\r\n });\r\n }\r\n register = <T = any>(collection: string, option?: SdRegisterOption): SdDbRegister<T> => {\r\n const { cacheable } = option || {};\r\n return {\r\n get: async (id: string) => {\r\n const key = this.#getKey(id, option);\r\n if (!cacheable || !this.#cache[key]) {\r\n this.#cache[key] = await this.get(collection, id, option);\r\n }\r\n return JSON.parse(JSON.stringify(this.#cache[key]));\r\n },\r\n set: (id: string, data: T) => {\r\n const key = this.#getKey(id, option);\r\n delete this.#cache[key];\r\n return this.set(collection, id, data, option);\r\n },\r\n remove: (id: string) => {\r\n const key = this.#getKey(id, option);\r\n delete this.#cache[key];\r\n return this.remove(collection, id, option);\r\n },\r\n find: (query?: SdDbQuery) => this.find(collection, query, option),\r\n copy: (\r\n source: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n fromId: string\r\n },\r\n toId: string) => {\r\n const key = this.#getKey(toId, option);\r\n delete this.#cache[key];\r\n return this.copy(collection, source, toId, option);\r\n }\r\n };\r\n }\r\n\r\n get = async <T = any>(collection: string, id: string, option?: SdRegisterOption): Promise<SdDbRes<T>> => {\r\n const url = `${this.#getUrl(option).get}/${collection}/${id}`;\r\n return await this.apiService.get(url);\r\n }\r\n\r\n set = async <T = any>(collection: string, id: string, data: T, option?: SdRegisterOption): Promise<void> => {\r\n const url = `${this.#getUrl(option).set}/${collection}/${id}`;\r\n await this.apiService.post(url, data);\r\n }\r\n\r\n remove = async (collection: string, id: string, option?: SdRegisterOption): Promise<void> => {\r\n const url = `${this.#getUrl(option).remove}/${collection}/${id}`;\r\n await this.apiService.delete(url);\r\n }\r\n\r\n find = async <T = any>(\r\n collection: string,\r\n query?: SdDbQuery,\r\n option?: SdRegisterOption): Promise<SdDbRes<(T & { documentId: string })[]>> => {\r\n const url = `${this.#getUrl(option).find}/${collection}`;\r\n return await this.apiService.post(url, query);\r\n }\r\n\r\n copy = async <T = any>(\r\n collection: string,\r\n source: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n fromId: string\r\n },\r\n toId: string,\r\n option?: SdRegisterOption): Promise<void> => {\r\n const res = await this.get<T>(collection, source.fromId, {\r\n ...option,\r\n ...source\r\n });\r\n return await this.set<T>(collection, toId, res.data, option);\r\n }\r\n\r\n clone = async<T = any>(\r\n args: {\r\n collection?: string,\r\n documentId?: string\r\n },\r\n from: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n collection: string,\r\n documentId: string\r\n }) => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const fromFunctionUrl = from?.functionUrl || functionUrl;\r\n const fromProject = from?.project || project;\r\n const fromEnv = from?.env;\r\n const fromCollection = from?.collection;\r\n const fromDocumentId = from?.documentId;\r\n const toCollection = args?.collection || from?.collection;\r\n const toDocumentId = args?.documentId || from?.documentId;\r\n const fromUrl = `${fromFunctionUrl}/db/get/${fromProject}/${fromEnv}/${fromCollection}/${fromDocumentId}`;\r\n const document = await this.apiService.get<SdDbRes<T>>(fromUrl);\r\n await this.set(toCollection, toDocumentId, document.data);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/db.model';\r\nexport * from './lib/db.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-db.js","sources":["../../../../projects/sd-core/db/src/lib/db.service.ts","../../../../projects/sd-core/db/src/public-api.ts","../../../../projects/sd-core/db/sd-angular-core-db.ts"],"sourcesContent":["import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport hash from 'object-hash';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\nimport { SdDbQuery, SdDbRegister, SdDbRes, SdRegisterOption } from './db.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdDbService {\r\n get hasConfiguration() {\r\n return !!this.firebaseConfiguration?.functionUrl && !!this.firebaseConfiguration?.project && !!this.firebaseConfiguration?.env;\r\n }\r\n constructor(\r\n private apiService: SdApiService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n #cache: Record<string, any> = {};\r\n\r\n #getUrl = (args?: { functionUrl?: string; project?: string; env?: string }) => {\r\n const configuration = {\r\n ...this.firebaseConfiguration,\r\n ...args\r\n };\r\n const { functionUrl, project, env } = configuration;\r\n if (!functionUrl || !project || !env) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n return {\r\n find: `${functionUrl}/db/find/${project}/${env}`,\r\n get: `${functionUrl}/db/get/${project}/${env}`,\r\n set: `${functionUrl}/db/set/${project}/${env}`,\r\n remove: `${functionUrl}/db/remove/${project}/${env}`\r\n };\r\n }\r\n #getKey = (id: string, args?: { functionUrl?: string; project?: string; env?: string }) => {\r\n const configuration = {\r\n functionUrl: this.firebaseConfiguration?.functionUrl || args?.functionUrl,\r\n project: this.firebaseConfiguration?.project || args?.project,\r\n env: this.firebaseConfiguration?.env || args?.env\r\n };\r\n return hash({\r\n id,\r\n ...configuration\r\n });\r\n }\r\n register = <T = any>(collection: string, option?: SdRegisterOption): SdDbRegister<T> => {\r\n const { cacheable } = option || {};\r\n return {\r\n get: async (id: string) => {\r\n const key = this.#getKey(id, option);\r\n if (!cacheable || !this.#cache[key]) {\r\n this.#cache[key] = await this.get(collection, id, option);\r\n }\r\n return JSON.parse(JSON.stringify(this.#cache[key]));\r\n },\r\n set: (id: string, data: T) => {\r\n const key = this.#getKey(id, option);\r\n delete this.#cache[key];\r\n return this.set(collection, id, data, option);\r\n },\r\n remove: (id: string) => {\r\n const key = this.#getKey(id, option);\r\n delete this.#cache[key];\r\n return this.remove(collection, id, option);\r\n },\r\n find: (query?: SdDbQuery) => this.find(collection, query, option),\r\n copy: (\r\n source: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n fromId: string\r\n },\r\n toId: string) => {\r\n const key = this.#getKey(toId, option);\r\n delete this.#cache[key];\r\n return this.copy(collection, source, toId, option);\r\n }\r\n };\r\n }\r\n\r\n get = async <T = any>(collection: string, id: string, option?: SdRegisterOption): Promise<SdDbRes<T>> => {\r\n const url = `${this.#getUrl(option).get}/${collection}/${id}`;\r\n return await this.apiService.get(url);\r\n }\r\n\r\n set = async <T = any>(collection: string, id: string, data: T, option?: SdRegisterOption): Promise<void> => {\r\n const url = `${this.#getUrl(option).set}/${collection}/${id}`;\r\n await this.apiService.post(url, data);\r\n }\r\n\r\n remove = async (collection: string, id: string, option?: SdRegisterOption): Promise<void> => {\r\n const url = `${this.#getUrl(option).remove}/${collection}/${id}`;\r\n await this.apiService.delete(url);\r\n }\r\n\r\n find = async <T = any>(\r\n collection: string,\r\n query?: SdDbQuery,\r\n option?: SdRegisterOption): Promise<SdDbRes<(T & { documentId: string })[]>> => {\r\n const url = `${this.#getUrl(option).find}/${collection}`;\r\n return await this.apiService.post(url, query);\r\n }\r\n\r\n copy = async <T = any>(\r\n collection: string,\r\n source: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n fromId: string\r\n },\r\n toId: string,\r\n option?: SdRegisterOption): Promise<void> => {\r\n const res = await this.get<T>(collection, source.fromId, {\r\n ...option,\r\n ...source\r\n });\r\n return await this.set<T>(collection, toId, res.data, option);\r\n }\r\n\r\n clone = async<T = any>(\r\n args: {\r\n collection?: string,\r\n documentId?: string\r\n },\r\n from: {\r\n functionUrl?: string,\r\n project?: string,\r\n env: string,\r\n collection: string,\r\n documentId: string\r\n }) => {\r\n if (!this.hasConfiguration) {\r\n throw new Error('No firebase function configuration');\r\n }\r\n const { functionUrl, project, env } = this.firebaseConfiguration;\r\n const fromFunctionUrl = from?.functionUrl || functionUrl;\r\n const fromProject = from?.project || project;\r\n const fromEnv = from?.env;\r\n const fromCollection = from?.collection;\r\n const fromDocumentId = from?.documentId;\r\n const toCollection = args?.collection || from?.collection;\r\n const toDocumentId = args?.documentId || from?.documentId;\r\n const fromUrl = `${fromFunctionUrl}/db/get/${fromProject}/${fromEnv}/${fromCollection}/${fromDocumentId}`;\r\n const document = await this.apiService.get<SdDbRes<T>>(fromUrl);\r\n await this.set(toCollection, toDocumentId, document.data);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\nexport * from './lib/db.model';\r\nexport * from './lib/db.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { __classPrivateFieldSet, __classPrivateFieldGet, __awaiter } from 'tslib';
2
- import { filter, take, map } from 'rxjs/operators';
2
+ import { filter, take, debounceTime, map } from 'rxjs/operators';
3
3
  import { ɵɵdefineInjectable, ɵɵinject, Injectable, Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, ElementRef, ViewChild, HostListener, Injector, Compiler, Pipe, Directive, NgModule } from '@angular/core';
4
4
  import { BehaviorSubject, Subscription, of } from 'rxjs';
5
5
  import { SdNotifyService } from '@sd-angular/core/notify';
@@ -156,7 +156,9 @@ class SdTabRouterItemComponent {
156
156
  };
157
157
  }
158
158
  ngOnInit() {
159
- __classPrivateFieldGet(this, _subsctiption).add(this.tabRouterService.events.subscribe(() => this.cdRef.markForCheck()));
159
+ __classPrivateFieldGet(this, _subsctiption).add(this.tabRouterService.events.pipe(debounceTime(100)).subscribe(() => {
160
+ this.cdRef.markForCheck();
161
+ }));
160
162
  }
161
163
  ngOnDestroy() {
162
164
  __classPrivateFieldGet(this, _subsctiption).unsubscribe();