{"version":3,"sources":["webpack:///src/app/core/data/base/cache.interceptor.ts","webpack:///src/app/shared/components/no-access/no-access.component.ts","webpack:///src/app/shared/layout/header/sticky-header.directive.ts","webpack:///projects/vehicle-search/src/lib/service/iderivative-search.service.ts","webpack:///projects/vehicle-search/src/lib/models/search-result-model.ts","webpack:///projects/vehicle-search/src/public-api.ts","webpack:///src/app/core/auth/guards/has-access.guard.ts","webpack:///src/app/shared/layout/header/header.component.ts","webpack:///src/app/core/preload/custom-preloader.ts","webpack:///src/app/core/preload/custom-preloader.ts.pre-build-optimizer.js","webpack:///src/app/report-filters/service/report-filter.service.ts","webpack:///src/app/report-filters/service/report-filter.service.ts.pre-build-optimizer.js","webpack:///src/app/modules/material/material.module.ts","webpack:///src/app/settings/index.ts","webpack:///src/app/core/auth/models/profile.model.ts","webpack:///projects/vehicle-search/src/lib/views/derivative-search-container.component.ts","webpack:///src/app/shared/services/local-store-manager.service.ts.pre-build-optimizer.js","webpack:///src/app/shared/services/local-store-manager.service.ts","webpack:///src/app/core/data/user.service.ts","webpack:///src/app/core/data/user.service.ts.pre-build-optimizer.js","webpack:///src/app/core/auth/login.service.ts.pre-build-optimizer.js","webpack:///src/app/core/auth/login.service.ts","webpack:///projects/vehicle-search/src/lib/service/isimilar-search.service.ts","webpack:///src/app/settings/settings.model.ts","webpack:///src/app/core/auth/auth.module.ts","webpack:///src/app/shared/index.ts","webpack:///src/app/core/utils/utils.objects.ts","webpack:///src/app/core/data/base/data.service.ts","webpack:///src/app/core/auth/guards/must-be-logged-in-guard.service.ts","webpack:///src/app/shared/shared.module.ts","webpack:///projects/vehicle-search/src/lib/service/short-list.service.ts","webpack:///projects/vehicle-search/src/lib/service/short-list.service.ts.pre-build-optimizer.js","webpack:///src/app/core/data/base/cache-request.service.ts.pre-build-optimizer.js","webpack:///src/app/core/data/base/cache-request.service.ts","webpack:///src/app/shared/components/page-not-found/page-not-found.component.ts","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/shared/components/page-not-found/page-not-found.component.ngfactory.js.pre-build-optimizer.js","webpack:///src/app/shared/components/page-not-found/page-not-found.component.ts.PageNotFoundComponent.html","webpack:///projects/vehicle-search/src/lib/views/similar-vehicle.component.ts","webpack:///src/app/models/api/basket-header-model.ts","webpack:///src/app/models/api/basket-model.ts","webpack:///src/app/models/api/filter-model.ts","webpack:///src/app/models/api/report-filter.model.ts","webpack:///src/app/models/api/report-preset-type.ts","webpack:///src/app/models/api/valuation-model.ts","webpack:///src/app/models/api/valuation-result-model.ts","webpack:///src/app/models/index.ts","webpack:///src/app/shared/classes/page-base.component.ts","webpack:///src/app/core/data/derivative-search.service.ts","webpack:///src/app/core/data/derivative-search.service.ts.pre-build-optimizer.js","webpack:///src/app/core/data/file-saver.service.ts","webpack:///src/app/core/data/file-saver.service.ts.pre-build-optimizer.js","webpack:///src/app/settings/settings.service.ts.pre-build-optimizer.js","webpack:///src/app/settings/settings.service.ts","webpack:///src/app/core/error-handler/toast-error-handler.ts","webpack:///projects/vehicle-search/src/lib/models/derivative-search-model.ts","webpack:///src/$_lazy_route_resource lazy namespace object","webpack:///src/app/core/data/base/http.interceptor.ts","webpack:///src/app/core/index.ts","webpack:///src/app/shared/services/window.token.ts","webpack:///src/app/shared/animations/animations.ts","webpack:///src/app/shared/classes/items-base.component.ts","webpack:///src/app/core/core.module.ts","webpack:///projects/vehicle-search/src/lib/models/similar-search-model.ts","webpack:///src/app/modules/bootstrap/bootstrap.module.ts","webpack:///src/app/shared/dev/debug-operator.ts","webpack:///projects/vehicle-search/src/lib/service/similar-vehicle.service.ts","webpack:///projects/vehicle-search/src/lib/models/common-model.ts","webpack:///projects/vehicle-search/src/lib/vehicle-search.module.ts","webpack:///src/app/core/auth/guards/auth-guard.service.ts","webpack:///src/app/app.module.ts.pre-build-optimizer.js","webpack:///src/app/app.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/home/home.component.ts","webpack:///src/app/home/home.component.ngfactory.js.pre-build-optimizer.js","webpack:///src/app/home/home.component.scss.ngstyle.js.pre-build-optimizer.js","webpack:///src/app/home/home.component.html","webpack:///src/app/shared/components/no-access/no-access.component.ngfactory.js.pre-build-optimizer.js","webpack:///src/app/shared/components/no-access/no-access.component.ts.NoAccessComponent.html","webpack:///src/app/shared/layout/header/header.component.ngfactory.js.pre-build-optimizer.js","webpack:///src/app/shared/layout/header/header.component.scss.ngstyle.js.pre-build-optimizer.js","webpack:///src/app/shared/layout/header/header.component.html","webpack:///src/app/routing/app-routing.module.ts.pre-build-optimizer.js","webpack:///src/app/routing/app-routing.module.ts","webpack:///src/app/sidebar/sidebar.component.ts","webpack:///src/app/sidebar/sidebar.component.ngfactory.js.pre-build-optimizer.js","webpack:///src/app/sidebar/sidebar.component.scss.shim.ngstyle.js.pre-build-optimizer.js","webpack:///src/app/sidebar/sidebar.component.html","webpack:///src/app/app.component.ngfactory.js.pre-build-optimizer.js","webpack:///src/app/app.component.scss.shim.ngstyle.js.pre-build-optimizer.js","webpack:///src/app/app.component.html","webpack:///src/app/modules/translate/translates.module.ts","webpack:///src/app/modules/translate/translates.module.ts.pre-build-optimizer.js","webpack:///src/app/report-filters/report-filters.module.ts","webpack:///src/app/app.module.ngfactory.js.pre-build-optimizer.js","webpack:///src/main.ts","webpack:///src/app/core/auth/guards/must-be-admin-guard.service.ts"],"names":["__webpack_require__","d","__webpack_exports__","CacheInterceptor","cacheRequestService","request","next","handle","method","urlWithParams","indexOf","NoAccessComponent","_classCallCheck","this","route","Direction","StickyHeaderDirective","_angular_animations__WEBPACK_IMPORTED_MODULE_0__","_angular_core__WEBPACK_IMPORTED_MODULE_1__","rxjs__WEBPACK_IMPORTED_MODULE_2__","rxjs__WEBPACK_IMPORTED_MODULE_3__","rxjs__WEBPACK_IMPORTED_MODULE_4__","rxjs_operators__WEBPACK_IMPORTED_MODULE_5__","rxjs_operators__WEBPACK_IMPORTED_MODULE_6__","rxjs_operators__WEBPACK_IMPORTED_MODULE_7__","rxjs_operators__WEBPACK_IMPORTED_MODULE_8__","rxjs_operators__WEBPACK_IMPORTED_MODULE_9__","rxjs_operators__WEBPACK_IMPORTED_MODULE_10__","rxjs_operators__WEBPACK_IMPORTED_MODULE_11__","rxjs_operators__WEBPACK_IMPORTED_MODULE_12__","Top","Up","Down","builder","el","window","ngUnsubscribe","a","useCustomEvent","onPageYOffsetEvent","m","onDirectionEvent","show","player","destroy","metadata","fadeUp","fadeDown","build","create","nativeElement","play","Object","k","opacity","e","transform","f_filterResults","innerHeight","document","documentElement","clientHeight","body","n_win","n_docel","n_body","n_result","Math","max","scrollHeight","offsetHeight","_this","scroll$","pipe","pageYOffset","scrollTop","_ref","index","direction","y1","y2","f_scrollHeight","f_clientHeight","isScrolledToBottom","emit","goingUp$","goingDown$","top$","customDirectionHandler$","event","subscribe","complete","DerivativeSearchToken","SearchResultModel","pageNumber","itemsPerPage","totalItems","startItemNumber","totalPages","filters","items","super","_class","derivative_search_model","b","similar_search_model","derivative_search_container_component","similar_vehicle_component","HasAccessGuard","loginService","userService","settingsService","router","settings","get","state","hasAccess","_this3","Promise","resolve","reject","useIdentityServer","navigate","HeaderComponent","rxjs_operators__WEBPACK_IMPORTED_MODULE_0__","_sticky_header_directive__WEBPACK_IMPORTED_MODULE_1__","showHeader","isCollapsed","directionHandler$","direction$","bootstrapBaseUri","login","logout","isLoggedIn","CustomPreloader","rxjs__WEBPACK_IMPORTED_MODULE_0__","_createClass","key","value","load","data","preload","ngInjectableDef","Sb","factory","token","providedIn","ReportFilterService","rxjs__WEBPACK_IMPORTED_MODULE_1__","_models__WEBPACK_IMPORTED_MODULE_2__","_app_settings__WEBPACK_IMPORTED_MODULE_3__","_angular_core__WEBPACK_IMPORTED_MODULE_4__","_angular_extensions_model__WEBPACK_IMPORTED_MODULE_5__","_shared_services_local_store_manager_service__WEBPACK_IMPORTED_MODULE_6__","lodash__WEBPACK_IMPORTED_MODULE_7__","initialData","f","initialFilterBase","c","empty","_modelFactory","_localStorage","_filter","_filterSettings","filter$","asObservable","filterSettings$","filterBaseLastState","loadLocalStore","FILTER_BASE","_model","assign","active$","data$","filter","model","vModel","countryIds","length","vTypes","set","saveToLocalStore","cloneDeep","_toConsumableArray","Set","map","item","countryId","sort","vType","exists","getDataObject","setTimeout","saveSessionData","Tb","MY_FORMATS","MaterialModule","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","_settings_model__WEBPACK_IMPORTED_MODULE_0__","_settings_service__WEBPACK_IMPORTED_MODULE_1__","Profile","email","forename","surname","organisationId","concat","DerivativeSearchContainerComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_0__","rxjs_operators__WEBPACK_IMPORTED_MODULE_2__","rxjs_operators__WEBPACK_IMPORTED_MODULE_3__","fb","searchfilterService","shortListService","totalItems$","totalItemsPaging$","itemsPerPage$","isLoading$","itemsToShow$","filtersToShow$","viewType","masterItemsToShow","subscriptions","sideNavOpened$","sideNavState$","currentDsPeriod$","activeDsCurrentValue$","_this6","push","reset$","result","JSON","stringify","derivativeSearchForm","group","query","currentActive","z","required","searchModel","search","res","min","forEach","sub","unsubscribe","update","controls","toggleFilter","changeFilter","pageChanged","page","reset","addToBasketFilter","LocalStoreManager","_angular_core__WEBPACK_IMPORTED_MODULE_0__","syncKeys","reservedKeys","DBKEY_USER_DATA","testForInvalidKeys","localStorage","removeItem","sessionStorageSetItem","removeFromSessionStorage","localStorageSetItem","sessionStorage","getItem","sessionStorageGetItem","localStorageGetItem","arguments","undefined","isDateType","getData","Date","setItem","JSonTryParse","keyToRemove","removeFromSessionStorageHelper","Error","some","x","clearInstanceSessionStorage","clear","DBKEY_SYNC_KEYS","UserService","rxjs_operators__WEBPACK_IMPORTED_MODULE_4__","_base_data_service__WEBPACK_IMPORTED_MODULE_8__","_angular_core__WEBPACK_IMPORTED_MODULE_9__","_angular_common_http__WEBPACK_IMPORTED_MODULE_10__","_auth_login_service__WEBPACK_IMPORTED_MODULE_11__","_settings_settings_service__WEBPACK_IMPORTED_MODULE_12__","_base_data_service__W","_inherits","_super2","_createSuper","httpClient","_this7","reloadIsAdmin$","reloadHasAccess$","userProfile$","onDestroy$","userProfile","forceReloadIsAdmin","forceReloadSubFleetId","getRequestOptions","success","handleError","_this8","cacheHasAccess$","updates$","requestHasAccess","API_ENDPOINT","cacheIsAdmin$","LoginService","tslib__WEBPACK_IMPORTED_MODULE_0__","angular_oauth2_oidc__WEBPACK_IMPORTED_MODULE_1__","_settings__WEBPACK_IMPORTED_MODULE_2__","_models_profile_model__WEBPACK_IMPORTED_MODULE_3__","oAuthService","hasValidAcessTokenAndExpiredInnetExp","_userProfile","configureAuth","then","trylogin","regeneratorRuntime","mark","_callee","localUrl","_this10","wrap","_context","prev","appUrl","configure","issuer","identityServerUrl","redirectUri","silentRefreshRedirectUri","clientId","scope","oidc","tokenValidationHandler","events","processEvents","setStorage","stop","_callee2","claims","profile","profileEntity","now","_context2","loadDiscoveryDocumentAndLogin","setupAutomaticSilentRefresh","lastRequestedUrl","CALL_BACK_URL","deleteData","getIdentityClaims","t0","discoveryDocumentLoaded","loadUserProfile","sent","given_name","family_name","organisation_id","exp","iat","round","getTime","setUTCSeconds","url","navigateByUrl","pendo","initialize","visitor","id","account","initImplicitFlow","logOut","getAccessToken","isValid","hasValidAccessToken","idTokenExpiration","hasValidIdToken","getIdTokenExpiration","accessTokenExpiration","getAccessTokenExpiration","timeNow","callBackUrl","console","log","loadDiscoveryDocument","tryLogin","type","savePermanentData","SimilarSearchToken","Settings","DBkeys","userConfiguration","UserConfiguration","isFeatureListEnabled","isFeatureDownloadReport","isFeatureEditReportRangeEnabled","isFeatureReportDealerEnabled","isFeatureReportCompetitorEnabled","admins","longRunningRequestTimeout","enableDebug","showDevMenu","subFleetId","FILTER_PERIOD","FILTER_SETTINGS","FILTER_VALUATION","BASKET_ID_CURRENT","REPORT_DEALER_GROUP_BY","AuthModule","_login_service__WEBPACK_IMPORTED_MODULE_0__","parentModule","ngModule","providers","no_access_component","page_not_found_component","debug_operator","UtilsObjects","obj","prop","Array","isArray","DataService","_angular_common_http__WEBPACK_IMPORTED_MODULE_0__","_app_core_utils_utils_objects__WEBPACK_IMPORTED_MODULE_3__","headers","i","append","accessToken","dateStart","dateEnd","converToDateSafe","paramName","date","converToDateString","toISOString","substring","getRequestHeaders","j","fromObject","error","deleteNullProps","MustBeLoggedInGuardService","ensureLoggedIn","path","SharedModule","translate","addLangs","setDefaultLang","use","ShortListService","_angular_extensions_model__WEBPACK_IMPORTED_MODULE_2__","_modelFactoryFilters","_toBasket","_reset","_viewTypeChanging","toBasket$","_modelFilters","activeFilters$","vModels","hasUpdates","findIndex","cc","o","splice","derivativeType","countryCode","isSelected","searchFilters","CacheRequestService","cachedData","Map","cached","lastUpdated","response","entry","removeExpired","_this15","useLikePattern","urlBase","split","urlBaseCached","_this16","expirationDate","PageNotFoundComponent","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn-bd","./bn-bd.js","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-in","./en-in.js","./en-nz","./en-nz.js","./en-sg","./en-sg.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-mx","./es-mx.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fil","./fil.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./ga","./ga.js","./gd","./gd.js","./gl","./gl.js","./gom-deva","./gom-deva.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it-ch","./it-ch.js","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mn","./mn.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./oc-lnc","./oc-lnc.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./tg","./tg.js","./th","./th.js","./tk","./tk.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-mo","./zh-mo.js","./zh-tw","./zh-tw.js","webpackContext","req","webpackContextResolve","code","keys","module","exports","PageNotFoundComponentNgFactory","_page_not_found_component__WEBPACK_IMPORTED_MODULE_1__","RenderType_PageNotFoundComponent","qb","encapsulation","styles","View_PageNotFoundComponent_0","_l","Ob","sb","Mb","ob","rb","_ck","_v","SimilarVehicleComponent","rxjs_operators__WEBPACK_IMPORTED_MODULE_1__","_models_similar_search_model__WEBPACK_IMPORTED_MODULE_3__","viewTypes","similarVehicleService","activatedRoute","headerText","text","viewTypeResult","isLoadingSimilar$","itemsToShowSimilar$","totalItemsSimilar$","isLoadingLinked$","itemsToShowLinked$","totalItemsLinked$","masterItemsToShowSimilar","masterItemsToShowLinked","_this18","snapshot","paramMap","viewTypeIndex","toLowerCase","tabInstance","selectedItem","hasValidRoute","similar","linked","selectedIndex","derivativeId","BasketHeaderModel","name","basketType","ownerId","contentCount","lastEdited","effectiveFrom","securityTypes","canEdit","markets","BasketModel","header","content","FilterModel","SettingsFilter","term","distance","FilterBaseModel","ReportPresetType","None","AgeVsDist","AgeVsAccumulativeDist","ContastPlateVsDist","AverageValueVsOneAge","AverageValueVsOneDist","ActualsVsForecast","IntroducedSince","DiscontinuedSince","ValuationModel","reportPresetType","basketId","contentIds","contentIdsString","ageMonths","tDist","months","ds","aDist","datesetMonth","ValuationResultModel","report","basketHeader","dynamicColumn","valuations","missingDerivativeIds","PageBaseComponent","loading","DerivativeSearchService","_app_core__WEBPACK_IMPORTED_MODULE_5__","_angular_core__WEBPACK_IMPORTED_MODULE_6__","_angular_common_http__WEBPACK_IMPORTED_MODULE_7__","_auth_login_service__WEBPACK_IMPORTED_MODULE_8__","_report_filters_service_report_filter_service__WEBPACK_IMPORTED_MODULE_9__","vehicle_search__WEBPACK_IMPORTED_MODULE_10__","_app_core__WEBPACK_IM","_super3","reportFilterService","getAuthorisationHeader","post","handleErrorWithModel","ind","requestDerivativeSearch","FileSaverService","_base_data_service__WEBPACK_IMPORTED_MODULE_4__","file_saver__WEBPACK_IMPORTED_MODULE_5__","_auth_login_service__WEBPACK_IMPORTED_MODULE_7__","_settings_settings_service__WEBPACK_IMPORTED_MODULE_8__","ngx_toastr__WEBPACK_IMPORTED_MODULE_9__","_base_data_service__W2","_super4","toastrService","observer","fileName","responseType","observe","g","Response","getFilenameFromResponse","file","saveAs","reportName","filterModel","params","convertToHttpParams","replace","decodeURIComponent","alteredParams","getParamsFromObject","SettingsService","settingsServiceFactory","_angular_common_http__WEBPACK_IMPORTED_MODULE_1__","_settings_model__WEBPACK_IMPORTED_MODULE_3__","_shared_services_local_store_manager_service__WEBPACK_IMPORTED_MODULE_5__","http","injector","loadBrowserWindowEnv","browserWindowEnv","__env","hasOwnProperty","_settings","_callee3","_this26","_context3","abrupt","configSettingsJson","loadLocalChanges","toPromise","_this27","Number","n","loadSettings","ToastErrorHandler","ngx_toastr__WEBPACK_IMPORTED_MODULE_1__","errorResp","status","tapToDismiss","warning","errors","message","statusText","l","DerivativeSearchModel","FilterRequest","SearchSettings","includes","isCustom","returnFilters","hightlight","webpackEmptyAsyncContext","ApplicationHttpInterceptor","_settings__WEBPACK_IMPORTED_MODULE_4__","auth_guard_service","has_access_guard","data_service","utils_objects","WindowRef","_window","margin-left","min-width","width","background-color","SortDirection","ItemsBaseComponent","_dev_debug_operator__WEBPACK_IMPORTED_MODULE_4__","lodash__WEBPACK_IMPORTED_MODULE_5__","_page_base_component__WEBPACK_IMPORTED_MODULE_6__","asc","desc","sortedBy","_this30","sortedDirection","sortBy$","orderBy","CoreModule","SimilarSearchModel","BootstrapModule","debugToConsole","source","subscriber","err","prototype","debug","tap","nextValue","SimilarVehicleService","similarSearchService","linkedSearch","similarSearch","ShortListItem","modelsId","VehicleSearchModule","AuthGuard","authService","checkLogin","canActivate","ɵ0","app_settings","ɵ1","window_token","AppModule","app_component_AppComponent","titleService","translateService","isSideBarOpen","onSibarOpenEvent","args","isTopMost","sticky_header_directive","onNavigationEnd","fesm2015_router","merge","onLangChange","firstChild","switchMap","title","setTitle","instant","HomeComponent","_this32","RenderType_HomeComponent","core","View_HomeComponent_0","Gb","ngx_translate_core","h","Nb","Eb","HomeComponentNgFactory","login_service","RenderType_NoAccessComponent","View_NoAccessComponent_0","NoAccessComponentNgFactory","RenderType_HeaderComponent","View_HeaderComponent_3","en","$event","ad","component","View_HeaderComponent_4","View_HeaderComponent_2","hb","common","O","L","ngIf","_co","View_HeaderComponent_1","Jb","ngx_bootstrap_dropdown","D","ngx_bootstrap_component_loader","animations","onClick","dropup","isOpen","isBs4","isDisabled","View_HeaderComponent_5","View_HeaderComponent_8","View_HeaderComponent_9","View_HeaderComponent_7","View_HeaderComponent_6","View_HeaderComponent_0","C","r","s","klass","ngClass","Hb","navbar-toggle--opened","black-overlay--opened","currVal_2","currVal_6","app_routing_module_0","app_routing_module_1","all","bind","DashboardModuleNgFactory","ɵ2","ɵ3","BasketsModuleNgFactory","ɵ4","ɵ5","VehiclesModuleNgFactory","ɵ6","ɵ7","RelatedModuleNgFactory","ɵ8","ɵ9","ReportsModuleNgFactory","ɵ10","ɵ11","AdminModuleNgFactory","ɵ12","ɵ13","ChartsModuleNgFactory","ɵ14","ɵ15","PrivacyNoticeModuleNgFactory","ɵ16","ɵ17","AppRoutingModule","routableComponents","sidebar_component_SidebarComponent","fileSaverService","isDevDebug","debugData","isDevTest","_this34","isAdmin$","isAdmin","subscription","queryParams","models","nowDateValue","minRangeDate","setMonth","getMonth","RenderType_SidebarComponent","View_SidebarComponent_1","p","routerLinkActive","Kb","links","linksWithHrefs","Fb","button","ctrlKey","metaKey","shiftKey","routerLink","currVal_0","currVal_3","currVal_4","currVal_7","currVal_8","currVal_11","target","href","View_SidebarComponent_2","View_SidebarComponent_3","View_SidebarComponent_4","downloadTest","View_SidebarComponent_5","View_SidebarComponent_6","View_SidebarComponent_7","View_SidebarComponent_8","View_SidebarComponent_9","View_SidebarComponent_0","routerLinkActiveOptions","exact","currVal_1","RenderType_AppComponent","View_AppComponent_0","header_component","settings_service","user_service","file_saver_service","AppComponentNgFactory","platform_browser","RvMissingTranslationHandler","warn","innerKeys","translates_module_0","ngx_translate_http_loader","TranslatesModule","ReportFilterModule","AppModuleNgFactory","pb","Bb","Cb","ab","router_ngfactory","page_not_found_component_ngfactory","index_ngfactory","typings_index_ngfactory","datepicker_typings_index_ngfactory","ngx_toastr_ngfactory","ngx_bootstrap_popover_ngfactory","ngx_bootstrap_dropdown_ngfactory","ngx_bootstrap_datepicker_ngfactory","w","B","custom_preloader","v","q","G","E","p0_0","t","mb","H","ib","nb","y","jb","kb","lb","esm2015_core","p0_1","p0_2","p1_0","p2_0","p2_1","p2_2","p2_3","A","bb","browser","fesm2015_animations","M","angular_oauth2_oidc","fesm2015_http","local_store_manager_service","ngx_toastr","p3_0","p3_1","p3_2","p3_3","cache_interceptor","http_interceptor","cache_request_service","fesm2015_forms","overlay","bidi","dialog","observers","esm2015_select","tooltip","datepicker","material_moment_adapter","ngx_loading","must_be_logged_in_guard_service","must_be_admin_guard_service","ngx_bootstrap_popover","ngx_bootstrap_positioning","ngx_bootstrap_pagination","ngx_bootstrap_tabs","iderivative_search_service","derivative_search_service","report_filter_service","isimilar_search_service","toast_error_handler","settings_model","u","preloadingStrategy","J","K","pathMatch","loadChildren","canActivateChild","core_module","platform","esm2015_button","button_toggle","portal","scrolling","icon","text_field","form_field","input","progress_spinner","table","esm2015_table","a11y","material_module","shared_module","auth_module","bootstrap_module","ngx_bootstrap_datepicker","Z","fullScreenBackdrop","animationType","primaryColour","backdropBorderRadius","autoClose","insideClick","default","config","S","bootstrapModuleFactory","MustBeAdminGuardService"],"mappings":"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","file":"main-es5.76cab341fd54d260ddb5.js","sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpResponse, HttpHandler, HttpEvent } from '@angular/common/http';\r\n \r\nimport { Observable, AsyncSubject} from 'rxjs';\r\n\r\nimport { CacheRequestService } from './cache-request.service';\r\nimport { delay, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class CacheInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n private cacheRequestService: CacheRequestService\r\n ) {\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n return next.handle(request);//skip cache in UI/use only cache in API for now 07.08.2020\r\n\r\n\r\n if (!this.isCachable(request)) {\r\n this.cacheRequestService.delete(request.urlWithParams, true);\r\n //console.log('cache:check', request.urlWithParams);\r\n return next.handle(request);\r\n }\r\n\r\n if (request.headers.get('x-cache-refresh')) {\r\n\r\n this.cacheRequestService.delete(request.urlWithParams);\r\n\r\n return next.handle(request);\r\n }\r\n\r\n const cachedResponse = this.cacheRequestService.get(request.urlWithParams);\r\n if (cachedResponse) {\r\n return cachedResponse.pipe(delay(0));\r\n }\r\n\r\n const subscriber = new AsyncSubject>();\r\n this.cacheRequestService.set(request.urlWithParams, subscriber);\r\n\r\n var urlWithParams = request.urlWithParams;\r\n\r\n next.handle(request)\r\n .subscribe(\r\n event => {\r\n if (event instanceof HttpResponse) {\r\n subscriber.next(event);\r\n //subscriber.complete();\r\n }\r\n },\r\n error => {\r\n subscriber.error(error);\r\n\r\n this.cacheRequestService.delete(urlWithParams);\r\n },\r\n () => {\r\n subscriber.complete();\r\n });\r\n\r\n return subscriber;\r\n }\r\n\r\n isCachable(request: HttpRequest) {\r\n return request.method === 'GET' && request.urlWithParams.indexOf('api/') === 0;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'no-access',\r\n template: '

You are not authorised to use this product.

'\r\n})\r\nexport class NoAccessComponent {\r\n static route = 'noaccess';\r\n}\r\n","import { animate, AnimationBuilder, AnimationMetadata, AnimationPlayer, style } from '@angular/animations';\r\nimport { AfterViewInit, Directive, ElementRef, Inject, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { fromEvent, Subject, merge, Observable} from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, pairwise, share, throttleTime, takeUntil, switchMap, tap, debounceTime } from 'rxjs/operators';\r\nimport { debugToConsole } from '../../dev/debug-operator';\r\n\r\n// or https://github.com/NetanelBasal/ngx-take-until-destroy/blob/master/src/take-until-destroy.ts\r\n// import { untilDestroy } from '@ngx-starter-kit/ngx-utils';\r\n// import { WINDOW } from '@ngx-starter-kit/core';\r\nimport { WindowRef } from '../../services/window.token';\r\n\r\nexport enum Direction {\r\n Top = 'Top',\r\n Up = 'Up',\r\n Down = 'Down',\r\n}\r\n\r\n@Directive({\r\n /* tslint:disable-next-line */\r\n selector: '[stickyHeader]',\r\n})\r\n// https://netbasal.com/reactive-sticky-header-in-angular-12dbffb3f1d3\r\n// https://github.com/zetsnotdead/ng-reactive-sticky-header/blob/master/src/app/sticky-header.component.ts\r\n// https://stackoverflow.com/questions/51931366/sticky-header-for-my-table-in-angular-5\r\n// https://codesandbox.io/s/kw7q12q9zr\r\nexport class StickyHeaderDirective implements AfterViewInit, OnDestroy {\r\n player: AnimationPlayer;\r\n private ngUnsubscribe = new Subject();\r\n\r\n /* tslint:disable-next-line:no-input-rename */\r\n @Input('customEvent') useCustomEvent = false;\r\n\r\n @Output() onPageYOffsetEvent = new EventEmitter<[number, number, Direction, number, number, boolean]>(); // debug IOS\r\n @Output() onDirectionEvent = new EventEmitter();\r\n /* tslint:disable-next-line:no-input-rename */\r\n @Input('customDirectionHandler') customDirectionHandler$: (direction: Observable) => Observable;\r\n\r\n set show(show: boolean) {\r\n if (this.useCustomEvent) {\r\n return;\r\n }\r\n\r\n if (this.player) {\r\n this.player.destroy();\r\n }\r\n\r\n // const metadata = show ? this.fadeIn() : this.fadeOut();\r\n const metadata = show ? this.fadeUp() : this.fadeDown();\r\n\r\n const factory = this.builder.build(metadata);\r\n const player = factory.create(this.el.nativeElement);\r\n\r\n player.play();\r\n }\r\n\r\n constructor(\r\n private builder: AnimationBuilder,\r\n private el: ElementRef,\r\n @Inject(WindowRef) private window: Window\r\n ) {\r\n }\r\n\r\n private fadeIn(): AnimationMetadata[] {\r\n return [style({ opacity: 0 }), animate('200ms ease-in', style({ opacity: 1 }))];\r\n }\r\n\r\n private fadeOut(): AnimationMetadata[] {\r\n return [style({ opacity: '*' }), animate('200ms ease-in', style({ opacity: 0 }))];\r\n }\r\n\r\n private fadeUp(): AnimationMetadata[] {\r\n return [style({ opacity: 0 }), animate('200ms ease-in', style({ opacity: 1, transform: 'translateY(0)' }))];\r\n }\r\n\r\n private fadeDown(): AnimationMetadata[] {\r\n return [style({ opacity: '*' }), animate('200ms ease-in', style({ opacity: 0, transform: 'translateY(-100%)' }))];\r\n }\r\n\r\n // https://gist.github.com/Hyvi/1445943\r\n private f_clientHeight(): number {\r\n return this.f_filterResults(\r\n window.innerHeight ? window.innerHeight : 0,\r\n document.documentElement ? document.documentElement.clientHeight : 0,\r\n document.body ? document.body.clientHeight : 0\r\n );\r\n }\r\n private f_filterResults(n_win, n_docel, n_body): number {\r\n let n_result = n_win ? n_win : 0;\r\n if (n_docel && (!n_result || (n_result > n_docel))) {\r\n n_result = n_docel;\r\n }\r\n return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;\r\n }\r\n // https://javascript.info/size-and-scroll-window\r\n private f_scrollHeight(): number {\r\n return Math.max(\r\n document.body.scrollHeight, document.documentElement.scrollHeight,\r\n document.body.offsetHeight, document.documentElement.offsetHeight,\r\n document.body.clientHeight, document.documentElement.clientHeight\r\n );\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n const scroll$ = fromEvent(this.window, 'scroll').pipe(\r\n //throttleTime(100),\r\n map(() => {\r\n // r eturn this.window.pageYOffset;\r\n return this.window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n }),\r\n debounceTime(250),\r\n pairwise(),\r\n // debugToConsole(\"[y1, y2]:\"),\r\n map(([y1, y2], index): Direction => {\r\n\r\n let direction: Direction;\r\n\r\n const scrollHeight = this.f_scrollHeight();\r\n const clientHeight = this.f_clientHeight();\r\n // https://stackoverflow.com/questions/18614301/keep-overflow-div-scrolled-to-bottom-unless-user-scrolls-up\r\n // var isScrolledToBottom = document.documentElement.scrollHeight - document.documentElement.clientHeight <= document.documentElement.scrollTop + 1;\r\n const isScrolledToBottom = scrollHeight - clientHeight <= y2 + 1;\r\n\r\n if (/*y1 == 0 ||*/y2 <= 0) {\r\n direction = Direction.Top;\r\n } else if (isScrolledToBottom) {\r\n direction = Direction.Down;\r\n } else {\r\n direction = (y2 < y1 ? Direction.Up : Direction.Down);\r\n }\r\n\r\n this.onPageYOffsetEvent.emit([y1, y2, direction, clientHeight, scrollHeight, isScrolledToBottom]);\r\n\r\n return direction;\r\n\r\n }),\r\n distinctUntilChanged(),\r\n share(),\r\n // untilDestroy(this),\r\n takeUntil(this.ngUnsubscribe)\r\n );\r\n\r\n const goingUp$ = scroll$.pipe(filter(direction => direction === Direction.Up));\r\n const goingDown$ = scroll$.pipe(filter(direction => direction === Direction.Down));\r\n const top$ = scroll$.pipe(filter(direction => direction === Direction.Top));\r\n\r\n // this.onStickyHeaderEvent =\r\n const mergedUpDown = merge(goingUp$, goingDown$, top$)\r\n .pipe(\r\n // debugToConsole(\"merge: goingUp$, goingDown$; Direction:\"),\r\n this.customDirectionHandler$, // outer event stream // ToDo V: should be improves, throw ex if not defined\r\n tap((event) => {\r\n if (!this.customDirectionHandler$) {\r\n\r\n this.onDirectionEvent.emit(event); // outer event value\r\n this.show = event === Direction.Up || event === Direction.Top; // inner event\r\n }\r\n }),\r\n takeUntil(this.ngUnsubscribe),\r\n );\r\n\r\n mergedUpDown.subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { IDerivativeSearchModel } from '../models/derivative-search-model';\r\nimport { ISearchResultModel } from '../models/search-result-model';\r\n\r\nexport const DerivativeSearchToken = new InjectionToken(\"DerivativeSearchToken\");\r\n\r\nexport interface IDerivativeSearchService {\r\n derivativeSearch(searchModel: IDerivativeSearchModel): Observable;\r\n}\r\n","export interface IPageModel {\r\n pageNumber: number;\r\n itemsPerPage: number;\r\n totalItems: number;\r\n startItemNumber: number;\r\n totalPages: number;\r\n}\r\nexport class PageModel implements IPageModel {\r\n constructor(\r\n public pageNumber: number,\r\n public itemsPerPage: number,\r\n public totalItems: number,\r\n public startItemNumber: number,\r\n public totalPages: number,\r\n ) { }\r\n}\r\n\r\n\r\nexport interface ISearchResultModel extends IPageModel {\r\n filters: FilterResponse[];\r\n items: any[];\r\n}\r\nexport class SearchResultModel extends PageModel implements ISearchResultModel {\r\n constructor(\r\n public pageNumber: number,\r\n public itemsPerPage: number,\r\n public totalItems: number,\r\n public startItemNumber: number,\r\n public totalPages: number,\r\n\r\n public filters: any[],\r\n public items: any[]\r\n ) {\r\n super(\r\n pageNumber,\r\n itemsPerPage,\r\n totalItems,\r\n startItemNumber,\r\n totalPages\r\n )\r\n }\r\n}\r\n\r\n\r\nexport interface IFilterResponse {\r\n name: string;\r\n type: string; // It is enum as a string // ToDo V use enum FilterType // MultiSelect = 0, RadioSelect = 1, RangeNumber = 2, SingleBoolean = 3\r\n state: string; // It is enum // ToDo V use enum FilterStateType // CollapsableClosed = 0, CollapsableOpened = 1, AlwaysOpen = 2\r\n custom?: ICustomRangeFilter;\r\n selectedDisplayName: string;\r\n selected?: string[];\r\n values: IDerivativeFilter[];\r\n}\r\nexport class FilterResponse implements IFilterResponse {\r\n constructor(\r\n public name: string,\r\n public type: string,\r\n public state: string,\r\n public custom: CustomRangeFilter,\r\n public selectedDisplayName: string,\r\n public selected: string[],\r\n public values: DerivativeFilter[]\r\n ) { }\r\n}\r\n\r\nexport interface ICustomRangeFilter {\r\n displayName: string;\r\n min: IValueRangeFilter;\r\n max: IValueRangeFilter;\r\n}\r\nexport class CustomRangeFilter implements ICustomRangeFilter {\r\n constructor(\r\n public displayName: string,\r\n public min: ValueRangeFilter,\r\n public max: ValueRangeFilter,\r\n ) { }\r\n}\r\n\r\nexport interface IValueRangeFilter {\r\n value: number;\r\n selected?: number;\r\n}\r\nexport class ValueRangeFilter implements IValueRangeFilter {\r\n constructor(\r\n public value: number,\r\n public selected: number,\r\n ) { }\r\n}\r\n\r\n\r\nexport interface IDerivativeFilter {\r\n displayName?: string;\r\n name?: string;\r\n count?: number;\r\n}\r\nexport class DerivativeFilter implements IDerivativeFilter {\r\n constructor(\r\n public displayName: string,\r\n public name: string,\r\n public count: number,\r\n ) { }\r\n}\r\n","/*\r\n * Public API Surface of vehicle-search\r\n */\r\n\r\n/*\r\n * module\r\n */\r\nexport * from './lib/vehicle-search.module';\r\n\r\n/*\r\n * services\r\n */\r\nexport * from './lib/service/short-list.service';\r\nexport * from './lib/service/iderivative-search.service';\r\nexport * from './lib/service/similar-vehicle.service';\r\nexport * from './lib/service/isimilar-search.service';\r\n\r\n/*\r\n * models\r\n */\r\nexport * from './lib/models/common-model';\r\nexport * from './lib/models/derivative-search-model';\r\nexport * from './lib/models/search-result-model';\r\nexport * from './lib/models/similar-search-model';\r\n\r\n/*\r\n * components\r\n */\r\nexport * from './lib/views/derivative-search-container.component';\r\nexport * from './lib/views/similar-vehicle.component';\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanActivateChild, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Router, Route } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { LoginService } from '../login.service';\r\nimport { UserService } from '../../data/user.service';\r\nimport { Settings, SettingsService } from '../../../settings';\r\n\r\n//@Injectable({\r\n// providedIn: 'root'\r\n//})\r\n@Injectable()\r\nexport class HasAccessGuard implements CanActivate, CanActivateChild, CanLoad {\r\n private settings: Settings; \r\n\r\n constructor(\r\n private loginService: LoginService,\r\n private userService: UserService,\r\n private settingsService: SettingsService,\r\n private router: Router\r\n ) {\r\n this.settings = settingsService.get();\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean{\r\n return this.hasAccess();\r\n }\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n return this.hasAccess();\r\n }\r\n canLoad(route: Route): Promise {\r\n return this.hasAccess();\r\n }\r\n\r\n hasAccess(): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n if (!this.settings.useIdentityServer) {\r\n\r\n resolve(true);\r\n\r\n } else {\r\n\r\n this.userService.hasAccess()\r\n .subscribe((hasAccess) => {\r\n\r\n if (!hasAccess)\r\n this.router.navigate(['/noaccess']);\r\n\r\n resolve(hasAccess);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { debugToConsole } from '../../dev/debug-operator';\r\n\r\nimport { LoginService } from '../../../core/auth';\r\nimport { Settings, SettingsService } from '../../../settings';\r\n\r\nimport { Direction } from './sticky-header.directive';\r\n\r\n@Component({\r\n selector: 'lud-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n useIdentityServer: boolean;\r\n bootstrapBaseUri: string;\r\n showHeader: boolean = true;\r\n isCollapsed: boolean = false;\r\n\r\n //Note: directionChanged and directionHandler$ are two way of consuming directive stickyHeader, directionHandler$ override directionChanged\r\n directionChanged(event) {\r\n this.showHeader = event === Direction.Up || event === Direction.Top;\r\n }\r\n directionHandler$ = (direction$: Observable) =>\r\n direction$.pipe(\r\n //debugToConsole(\"direction$:\"),\r\n tap((event) => {\r\n this.showHeader = event === Direction.Up || event === Direction.Top;\r\n }),\r\n )\r\n\r\n constructor(\r\n private loginService: LoginService,\r\n private settingsService: SettingsService\r\n ) {\r\n let settings = settingsService.get();\r\n this.bootstrapBaseUri = settings.bootstrapBaseUri;\r\n this.useIdentityServer = settings.useIdentityServer;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private login() {\r\n this.loginService.login();\r\n }\r\n\r\n private logout() {\r\n this.loginService.logout();\r\n }\r\n\r\n get isLoggedIn() {\r\n return this.loginService.isLoggedIn;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\n\r\nimport { Observable, of as observableOf } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomPreloader implements PreloadingStrategy {\r\n\r\n preload(route: Route, load: Function): Observable {\r\n if (route.data && route.data['preload'] === false) {\r\n return observableOf(null); \r\n } else {\r\n return load();\r\n }\r\n }\r\n}\r\n","import { of as observableOf } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class CustomPreloader {\n preload(route, load) {\n if (route.data && route.data['preload'] === false) {\n return observableOf(null);\n }\n else {\n return load();\n }\n }\n}\nCustomPreloader.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function CustomPreloader_Factory() { return new CustomPreloader(); }, token: CustomPreloader, providedIn: \"root\" });\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Model, ModelFactory } from '@angular-extensions/model';\r\n\r\nimport { RangeMonthType, ReportFilter, ISettingsFilter, SettingsFilter, ValuationModel, IFilterBaseModel, FilterBaseModel, IMarketModel, MarketModel } from '../../models';\r\n\r\nimport { LocalStoreManager } from '@app/shared/services/local-store-manager.service';\r\nimport { DBkeys } from '@app/settings';\r\n\r\nconst initialData: ISettingsFilter = new SettingsFilter(10, 'gb', 'Car', 36, 60);\r\nconst initialFilterBase: IFilterBaseModel = FilterBaseModel.empty();\r\n\r\nimport * as _ from 'lodash';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportFilterService {//old style migrate to user****-state.service\r\n\r\n private _filter = new Subject();\r\n private _filterSettings = new BehaviorSubject((initialData as SettingsFilter));\r\n\r\n //consume events - this.subscription = this.reportFilterService.filter$.subscribe(n => { this.reportFilter = n; });\r\n public filter$ = this._filter.asObservable();\r\n public filterSettings$ = this._filterSettings.asObservable();\r\n\r\n //rise an event - this.reportFilterService.filterChanged(filter: ReportFilter);\r\n public filterChanged(filter: ReportFilter): void {\r\n this._filter.next(filter);\r\n }\r\n\r\n public filterSettingsChanged(filter: SettingsFilter): void {\r\n this._filterSettings.next(filter);\r\n }\r\n\r\n\r\n //current multi countries and vtypes way 17.07.2020 // not used 06.08.2020\r\n private _model: Model;\r\n active$: Observable;\r\n\r\n constructor(\r\n private _modelFactory: ModelFactory,\r\n private readonly _localStorage: LocalStoreManager,\r\n ) {\r\n var filterBaseLastState = this.loadLocalStore(DBkeys.FILTER_BASE);\r\n this._model = this._modelFactory.create({ ...initialFilterBase, ...filterBaseLastState });\r\n this.active$ = this._model.data$;\r\n }\r\n\r\n get currentActive(): IFilterBaseModel {\r\n return this._model.get();\r\n }\r\n\r\n update(model?: IFilterBaseModel) {\r\n const vModel = this._model.get();\r\n\r\n if (model) {\r\n model.countryIds && model.countryIds.length > 0 && (vModel.countryIds = model.countryIds);\r\n model.vTypes && model.vTypes.length > 0 && (vModel.vTypes = model.vTypes);\r\n\r\n this._model.set(vModel);\r\n }\r\n\r\n this.saveToLocalStore(_.cloneDeep(vModel), DBkeys.FILTER_BASE);\r\n }\r\n //not used\r\n updateFromMarketModel(model: IMarketModel[]) {\r\n const vModel = this._model.get();\r\n\r\n if (model.length) {\r\n vModel.countryIds = [...new Set(model.map(item => item.countryId))].sort();\r\n vModel.vTypes = [...new Set(model.map(item => item.vType))].sort();\r\n\r\n this._model.set(vModel);\r\n }\r\n\r\n this.saveToLocalStore(_.cloneDeep(vModel), DBkeys.FILTER_BASE);\r\n }\r\n\r\n private loadLocalStore(key: string) {\r\n\r\n if (this._localStorage.exists(key))\r\n return this._localStorage.getDataObject(key);\r\n }\r\n private saveToLocalStore(data: any, key: string) {\r\n setTimeout(() =>\r\n this._localStorage.saveSessionData(data, key)\r\n );\r\n }\r\n}\r\n","import { Subject, BehaviorSubject } from 'rxjs';\nimport { ModelFactory } from '@angular-extensions/model';\nimport { ReportFilter, ISettingsFilter, SettingsFilter, IFilterBaseModel, FilterBaseModel, IMarketModel } from '../../models';\nimport { LocalStoreManager } from '@app/shared/services/local-store-manager.service';\nimport { DBkeys } from '@app/settings';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular-extensions/model\";\nimport * as i2 from \"../../shared/services/local-store-manager.service\";\nconst initialData = new SettingsFilter(10, 'gb', 'Car', 36, 60);\nconst initialFilterBase = FilterBaseModel.empty();\nimport * as _ from 'lodash';\nexport class ReportFilterService {\n constructor(_modelFactory, _localStorage) {\n this._modelFactory = _modelFactory;\n this._localStorage = _localStorage;\n this._filter = new Subject();\n this._filterSettings = new BehaviorSubject(initialData);\n //consume events - this.subscription = this.reportFilterService.filter$.subscribe(n => { this.reportFilter = n; });\n this.filter$ = this._filter.asObservable();\n this.filterSettings$ = this._filterSettings.asObservable();\n var filterBaseLastState = this.loadLocalStore(DBkeys.FILTER_BASE);\n this._model = this._modelFactory.create(Object.assign({}, initialFilterBase, filterBaseLastState));\n this.active$ = this._model.data$;\n }\n //rise an event - this.reportFilterService.filterChanged(filter: ReportFilter);\n filterChanged(filter) {\n this._filter.next(filter);\n }\n filterSettingsChanged(filter) {\n this._filterSettings.next(filter);\n }\n get currentActive() {\n return this._model.get();\n }\n update(model) {\n const vModel = this._model.get();\n if (model) {\n model.countryIds && model.countryIds.length > 0 && (vModel.countryIds = model.countryIds);\n model.vTypes && model.vTypes.length > 0 && (vModel.vTypes = model.vTypes);\n this._model.set(vModel);\n }\n this.saveToLocalStore(_.cloneDeep(vModel), DBkeys.FILTER_BASE);\n }\n //not used\n updateFromMarketModel(model) {\n const vModel = this._model.get();\n if (model.length) {\n vModel.countryIds = [...new Set(model.map(item => item.countryId))].sort();\n vModel.vTypes = [...new Set(model.map(item => item.vType))].sort();\n this._model.set(vModel);\n }\n this.saveToLocalStore(_.cloneDeep(vModel), DBkeys.FILTER_BASE);\n }\n loadLocalStore(key) {\n if (this._localStorage.exists(key))\n return this._localStorage.getDataObject(key);\n }\n saveToLocalStore(data, key) {\n setTimeout(() => this._localStorage.saveSessionData(data, key));\n }\n}\nReportFilterService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ReportFilterService_Factory() { return new ReportFilterService(i0.ɵɵinject(i1.ModelFactory), i0.ɵɵinject(i2.LocalStoreManager)); }, token: ReportFilterService, providedIn: \"root\" });\n","import { NgModule } from '@angular/core';\r\n\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule, ScrollDispatcher } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n//Date related\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\r\nimport { MatNativeDateModule, DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\n\r\n// Valuation intelligence use follow:\r\n// export const MY_FORMATS = {\r\n// parse: {\r\n// dateInput: 'LL',\r\n// },\r\n// display: {\r\n// dateInput: 'LL',\r\n// monthYearLabel: 'MM YYYY',\r\n// dateA11yLabel: 'LL',\r\n// monthYearA11yLabel: 'MMMM YYYY',\r\n// },\r\n// };\r\n//\r\n// See the Moment.js docs for the meaning of these formats:\r\n// https://momentjs.com/docs/#/displaying/format/\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'MM / YYYY',\r\n },\r\n display: {\r\n dateInput: 'MMMM YYYY', // was 'MM /YYYY'\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@NgModule({\r\n imports: [\r\n ],\r\n exports: [\r\n //A11yModule,\r\n //CdkStepperModule,\r\n //CdkTableModule,\r\n //CdkTreeModule,\r\n //DragDropModule,\r\n //MatAutocompleteModule,\r\n //MatBadgeModule,\r\n //MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n //MatCardModule,\r\n //MatCardModule,\r\n //MatCheckboxModule,\r\n //MatChipsModule,\r\n //MatStepperModule,\r\n MatDialogModule,\r\n //MatDividerModule,\r\n //MatExpansionModule,\r\n //MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n //MatListModule,\r\n //MatMenuModule,\r\n //MatPaginatorModule,\r\n //MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n //MatRadioModule,\r\n //MatRippleModule,\r\n MatSelectModule,\r\n //MatSidenavModule,\r\n //MatSliderModule,\r\n //MatSlideToggleModule,\r\n //MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n //MatTabsModule,\r\n //MatToolbarModule,\r\n MatTooltipModule,\r\n //MatTreeModule,\r\n //PortalModule,\r\n ScrollingModule,\r\n\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n //MatNativeDateModule,\r\n ],\r\n providers: [\r\n // `MomentDateAdapter` can be automatically provided by importing `MomentDateModule` in your application's root module.\r\n // We provide it at the component level here, due to limitations of our example generation script.\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS, useValue: MY_FORMATS\r\n },\r\n //ScrollDispatcher\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","export * from './settings.model';\r\nexport * from './settings.service';\r\n","export class Profile {\r\n sector_code: string;\r\n constructor(public email: string, public forename: string, public surname: string, public organisationId: string) {\r\n }\r\n\r\n get fullName(): string {\r\n return `${this.forename} ${this.surname}`;\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { fadeInSlideFromDown, onMainContentChange } from '../service/animations';\r\n\r\nimport { Subscription, BehaviorSubject } from 'rxjs';\r\nimport { tap, debounceTime, distinctUntilChanged, filter, switchMap, map, skip } from 'rxjs/operators';\r\n\r\nimport { SearchFilterService } from '../service/search-filter.service';\r\nimport { ISearchResultModel } from '../models/search-result-model';\r\nimport { IToggleSingleFilter, IChangeManyFilterItems } from '../models/common-model';\r\nimport { ShortListService } from '../service/short-list.service';\r\n\r\n// Third Party\r\nimport { PageChangedEvent } from 'ngx-bootstrap/pagination';\r\n\r\n@Component({\r\n selector: 'lud-derivative-search-container',\r\n templateUrl: './derivative-search-container.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [fadeInSlideFromDown(20), onMainContentChange]\r\n})\r\nexport class DerivativeSearchContainerComponent implements OnInit, OnDestroy {\r\n\r\n derivativeSearchForm: FormGroup;\r\n\r\n totalItems$ = new BehaviorSubject(0);\r\n totalItemsPaging$ = new BehaviorSubject(0);\r\n itemsPerPage$ = new BehaviorSubject(null);\r\n isLoading$ = new BehaviorSubject(false);\r\n itemsToShow$ = new BehaviorSubject(null);\r\n filtersToShow$ = new BehaviorSubject([]);\r\n\r\n sideNavOpened$;// ToDo store state on destroy\r\n currentDsPeriod$;\r\n\r\n viewType: string = '';//'card' | 'list' | 'gantt' = 'list';\r\n\r\n private masterItemsToShow = [];\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private searchfilterService: SearchFilterService,\r\n private shortListService: ShortListService\r\n ) {\r\n this.sideNavOpened$ = searchfilterService.sideNavState$;\r\n\r\n this.currentDsPeriod$ = searchfilterService.activeDsCurrentValue$;\r\n }\r\n\r\n ngOnInit() {\r\n //this.searchfilterService.reset();\r\n //this.shortListService.reset();\r\n\r\n this.subscriptions.push(\r\n this.shortListService.reset$\r\n .subscribe(result => {\r\n this.itemsToShow$.next(JSON.parse(JSON.stringify(this.masterItemsToShow)));\r\n })\r\n );\r\n\r\n var currentActiveFilter = this.searchfilterService.currentActive;\r\n\r\n this.derivativeSearchForm = this.fb.group({\r\n query: [currentActiveFilter.query, Validators.required]\r\n });\r\n\r\n this.subscriptions.push(\r\n this.searchfilterService.active$\r\n .pipe(\r\n //skip(1),\r\n switchMap(searchModel => {\r\n this.isLoading$.next(true);\r\n\r\n this.itemsPerPage$.next(searchModel.itemsPerPage);\r\n\r\n return this.searchfilterService.search(searchModel)\r\n }),\r\n tap((res: ISearchResultModel) => {\r\n this.isLoading$.next(false);\r\n\r\n this.totalItems$.next(res.totalItems);\r\n this.totalItemsPaging$.next(Math.min(res.totalItems, 10000));// Elastic Search limit to 10,000 pages\r\n this.masterItemsToShow = res.items;\r\n this.itemsToShow$.next(JSON.parse(JSON.stringify(res.items)));\r\n this.filtersToShow$.next(res.filters);\r\n })\r\n ).subscribe()\r\n );\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n searchQueryChanged(event: boolean) {\r\n this.searchfilterService.update(this.derivativeSearchForm.controls['query'].value);\r\n }\r\n\r\n filterSingleChanged(filter: IToggleSingleFilter) {\r\n this.searchfilterService.toggleFilter(filter);\r\n }\r\n filterManyChanged(filter: IChangeManyFilterItems) {\r\n this.searchfilterService.changeFilter(filter);\r\n }\r\n pageChanged(event: PageChangedEvent): void {\r\n //const startItem = (event.page - 1) * event.itemsPerPage;\r\n //const endItem = event.page * event.itemsPerPage;\r\n\r\n //console.log(\"event\", event);\r\n this.searchfilterService.pageChanged(event.page);\r\n }\r\n\r\n resetFilters(event): void {\r\n this.searchfilterService.reset(false);\r\n }\r\n\r\n saveFilters(event): void {\r\n this.shortListService.addToBasketFilter({ ...this.searchfilterService.currentActive, query: this.derivativeSearchForm.controls['query'].value });\r\n }\r\n}\r\n","import * as i0 from \"@angular/core\";\n//import { Utilities } from './utilities';\nexport class LocalStoreManager {\n constructor() {\n this.syncKeys = [];\n this.reservedKeys = [\n 'sync_keys',\n 'addToSyncKeys',\n 'removeFromSyncKeys',\n 'getSessionStorage',\n 'setSessionStorage',\n 'addToSessionStorage',\n 'removeFromSessionStorage',\n 'clearAllSessionsStorage'\n ];\n }\n saveSessionData(data, key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n //this.removeFromSyncKeys(key);\n localStorage.removeItem(key);\n this.sessionStorageSetItem(key, data);\n }\n savePermanentData(data, key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n this.removeFromSessionStorage(key);\n this.localStorageSetItem(key, data);\n }\n exists(key = LocalStoreManager.DBKEY_USER_DATA) {\n let data = sessionStorage.getItem(key);\n if (data == null)\n data = localStorage.getItem(key);\n return data != null;\n }\n getData(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n let data = this.sessionStorageGetItem(key);\n if (data == null)\n data = this.localStorageGetItem(key);\n return data;\n }\n getDataObject(key = LocalStoreManager.DBKEY_USER_DATA, isDateType = false) {\n let data = this.getData(key);\n if (data != null) {\n if (isDateType)\n data = new Date(data);\n return data;\n }\n else {\n return null;\n }\n }\n deleteData(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n this.removeFromSessionStorage(key);\n localStorage.removeItem(key);\n }\n localStorageSetItem(key, data) {\n localStorage.setItem(key, JSON.stringify(data));\n }\n sessionStorageSetItem(key, data) {\n sessionStorage.setItem(key, JSON.stringify(data));\n }\n localStorageGetItem(key) {\n return this.JSonTryParse(localStorage.getItem(key));\n }\n sessionStorageGetItem(key) {\n return this.JSonTryParse(sessionStorage.getItem(key));\n }\n removeFromSessionStorage(keyToRemove) {\n this.removeFromSessionStorageHelper(keyToRemove);\n //this.removeFromSyncKeysBackup(keyToRemove);\n //localStorage.setItem('removeFromSessionStorage', keyToRemove);\n //localStorage.removeItem('removeFromSessionStorage');\n }\n removeFromSessionStorageHelper(keyToRemove) {\n sessionStorage.removeItem(keyToRemove);\n //this.removeFromSyncKeysHelper(keyToRemove);\n }\n testForInvalidKeys(key) {\n if (!key)\n throw new Error(\"key cannot be empty\");\n if (this.reservedKeys.some(x => x == key))\n throw new Error(`The storage key \"${key}\" is reserved and cannot be used. Please use a different key`);\n }\n JSonTryParse(value) {\n try {\n return JSON.parse(value);\n }\n catch (e) {\n if (value === \"undefined\")\n return void 0;\n return value;\n }\n }\n clearAllSessionsStorage() {\n this.clearInstanceSessionStorage();\n //localStorage.removeItem(LocalStoreManager.DBKEY_SYNC_KEYS);\n //localStorage.setItem('clearAllSessionsStorage', '_dummy');\n //localStorage.removeItem('clearAllSessionsStorage');\n }\n clearInstanceSessionStorage() {\n sessionStorage.clear();\n this.syncKeys = [];\n }\n clearLocalStorage() {\n localStorage.clear();\n }\n}\nLocalStoreManager.DBKEY_USER_DATA = \"user_data\";\nLocalStoreManager.DBKEY_SYNC_KEYS = \"sync_keys\";\nLocalStoreManager.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LocalStoreManager_Factory() { return new LocalStoreManager(); }, token: LocalStoreManager, providedIn: \"root\" });\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n//import { Utilities } from './utilities';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStoreManager {\r\n\r\n private syncKeys: string[] = [];\r\n\r\n private reservedKeys: string[] =\r\n [\r\n 'sync_keys',\r\n 'addToSyncKeys',\r\n 'removeFromSyncKeys',\r\n 'getSessionStorage',\r\n 'setSessionStorage',\r\n 'addToSessionStorage',\r\n 'removeFromSessionStorage',\r\n 'clearAllSessionsStorage'\r\n ];\r\n\r\n public static readonly DBKEY_USER_DATA = \"user_data\";\r\n private static readonly DBKEY_SYNC_KEYS = \"sync_keys\";\r\n\r\n public saveSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n //this.removeFromSyncKeys(key);\r\n localStorage.removeItem(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n public savePermanentData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSessionStorage(key);\r\n this.localStorageSetItem(key, data);\r\n }\r\n\r\n\r\n public exists(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n let data = sessionStorage.getItem(key);\r\n\r\n if (data == null)\r\n data = localStorage.getItem(key);\r\n\r\n return data != null;\r\n }\r\n public getData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n let data = this.sessionStorageGetItem(key);\r\n\r\n if (data == null)\r\n data = this.localStorageGetItem(key);\r\n\r\n return data;\r\n }\r\n public getDataObject(key = LocalStoreManager.DBKEY_USER_DATA, isDateType = false): T {\r\n\r\n let data = this.getData(key);\r\n\r\n if (data != null) {\r\n if (isDateType)\r\n data = new Date(data);\r\n\r\n return data;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n public deleteData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSessionStorage(key);\r\n localStorage.removeItem(key);\r\n }\r\n\r\n\r\n private localStorageSetItem(key: string, data: any) {\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n private sessionStorageSetItem(key: string, data: any) {\r\n sessionStorage.setItem(key, JSON.stringify(data));\r\n }\r\n private localStorageGetItem(key: string) {\r\n return this.JSonTryParse(localStorage.getItem(key));\r\n }\r\n private sessionStorageGetItem(key: string) {\r\n return this.JSonTryParse(sessionStorage.getItem(key));\r\n }\r\n private removeFromSessionStorage(keyToRemove: string) {\r\n\r\n this.removeFromSessionStorageHelper(keyToRemove);\r\n //this.removeFromSyncKeysBackup(keyToRemove);\r\n\r\n //localStorage.setItem('removeFromSessionStorage', keyToRemove);\r\n //localStorage.removeItem('removeFromSessionStorage');\r\n }\r\n private removeFromSessionStorageHelper(keyToRemove: string) {\r\n\r\n sessionStorage.removeItem(keyToRemove);\r\n //this.removeFromSyncKeysHelper(keyToRemove);\r\n }\r\n private testForInvalidKeys(key: string) {\r\n\r\n if (!key)\r\n throw new Error(\"key cannot be empty\")\r\n\r\n if (this.reservedKeys.some(x => x == key))\r\n throw new Error(`The storage key \"${key}\" is reserved and cannot be used. Please use a different key`);\r\n }\r\n private JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n\r\n public clearAllSessionsStorage() {\r\n\r\n this.clearInstanceSessionStorage();\r\n //localStorage.removeItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n\r\n //localStorage.setItem('clearAllSessionsStorage', '_dummy');\r\n //localStorage.removeItem('clearAllSessionsStorage');\r\n }\r\n public clearInstanceSessionStorage() {\r\n\r\n sessionStorage.clear();\r\n this.syncKeys = [];\r\n }\r\n public clearLocalStorage() {\r\n localStorage.clear();\r\n }\r\n}\r\n","import { Injectable, Inject, OnDestroy } from \"@angular/core\";\r\nimport { HttpClient, HttpParams, HttpHeaders } from \"@angular/common/http\";\r\n\r\nimport { Observable, Subject, merge, of as observableOf } from \"rxjs\";\r\nimport { catchError, shareReplay, map, takeUntil, switchMap, mergeMap, retry } from 'rxjs/operators';\r\nimport { debugToConsole } from '../../shared/dev/debug-operator';\r\n\r\nimport { DataService, LoginService } from \"./base/data.service\";\r\nimport { Settings, SettingsService } from '../../settings';\r\nimport { GenericResultModel, CountyModel } from '../../models';\r\n\r\n\r\nconst API_ENDPOINT = 'api/v1/permission/';\r\nconst CACHE_SIZE = 1;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService extends DataService{\r\n //https://blog.thoughtram.io/angular/2018/03/05/advanced-caching-with-rxjs.html\r\n private cacheIsAdmin$: Observable;//to share a single instance across all subscribers.\r\n private reloadIsAdmin$ = new Subject();\r\n\r\n private cacheHasAccess$: Observable;\r\n private reloadHasAccess$ = new Subject();\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n //@Inject(LoginService) loginService\r\n loginService: LoginService,\r\n private readonly settingsService: SettingsService,\r\n ) {\r\n super(httpClient, loginService);\r\n\r\n //On Change userProfile:\r\n // Reload IsAdmin\r\n // Reload SubFleetId\r\n loginService.userProfile$\r\n .pipe(\r\n takeUntil(this.onDestroy$)\r\n )\r\n //.\r\n .subscribe(userProfile => {\r\n\r\n //if (userProfile) {\r\n this.forceReloadIsAdmin();\r\n this.forceReloadSubFleetId();\r\n\r\n //}\r\n });\r\n }\r\n\r\n public getCountries(): Observable | any {\r\n return this.httpClient\r\n .get(/*API_ENDPOINT*/ 'api/v1/common/countries', this.getRequestOptions())\r\n .pipe(\r\n map((data: GenericResultModel) => {\r\n if (data && data.success) {\r\n return data.result;\r\n } \r\n\r\n return observableOf(false);\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public hasAccess(): Observable {\r\n if (!this.cacheHasAccess$) {\r\n const updates$ = this.reloadHasAccess$\r\n .pipe(\r\n switchMap(() => observableOf(true))\r\n );\r\n\r\n this.cacheHasAccess$ = merge(observableOf(true), updates$)\r\n .pipe(\r\n switchMap((value, index) => this.requestHasAccess()),\r\n shareReplay(CACHE_SIZE)\r\n );\r\n }\r\n return this.cacheHasAccess$;\r\n }\r\n\r\n public forceReloadSubFleetId() {\r\n this.reloadHasAccess$.next();//we simply propagate a ghost value causing all active Observers to be notified\r\n }\r\n\r\n private requestHasAccess(): Observable {\r\n return this.httpClient\r\n .get(API_ENDPOINT + 'has-access', this.getRequestOptions())\r\n .pipe(\r\n catchError(this.handleError)\r\n )\r\n .pipe(\r\n map((hasAccess: boolean) => hasAccess)\r\n )\r\n }\r\n\r\n public get isAdmin(): Observable {\r\n if (!this.cacheIsAdmin$) {\r\n }\r\n return this.cacheIsAdmin$;\r\n }\r\n\r\n // Public facing API to force the cache to reload the data\r\n public forceReloadIsAdmin() {\r\n this.reloadIsAdmin$.next();//we simply propagate a ghost value causing all active Observers to be notified\r\n }\r\n\r\n private requestIsAdmin(): Observable {\r\n return this.httpClient\r\n .get(API_ENDPOINT + 'is-admin', this.getRequestOptions());\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\nimport { Subject, merge, of as observableOf } from \"rxjs\";\nimport { catchError, shareReplay, map, takeUntil, switchMap } from 'rxjs/operators';\nimport { DataService, LoginService } from \"./base/data.service\";\nimport { SettingsService } from '../../settings';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"../auth/login.service\";\nimport * as i3 from \"../../settings/settings.service\";\nconst API_ENDPOINT = 'api/v1/permission/';\nconst CACHE_SIZE = 1;\nexport class UserService extends DataService {\n constructor(httpClient, \n //@Inject(LoginService) loginService\n loginService, settingsService) {\n super(httpClient, loginService);\n this.settingsService = settingsService;\n this.reloadIsAdmin$ = new Subject();\n this.reloadHasAccess$ = new Subject();\n //On Change userProfile:\n // Reload IsAdmin\n // Reload SubFleetId\n loginService.userProfile$\n .pipe(takeUntil(this.onDestroy$))\n //.\n .subscribe(userProfile => {\n //if (userProfile) {\n this.forceReloadIsAdmin();\n this.forceReloadSubFleetId();\n //}\n });\n }\n getCountries() {\n return this.httpClient\n .get(/*API_ENDPOINT*/ 'api/v1/common/countries', this.getRequestOptions())\n .pipe(map((data) => {\n if (data && data.success) {\n return data.result;\n }\n return observableOf(false);\n }), catchError(this.handleError));\n }\n hasAccess() {\n if (!this.cacheHasAccess$) {\n const updates$ = this.reloadHasAccess$\n .pipe(switchMap(() => observableOf(true)));\n this.cacheHasAccess$ = merge(observableOf(true), updates$)\n .pipe(switchMap((value, index) => this.requestHasAccess()), shareReplay(CACHE_SIZE));\n }\n return this.cacheHasAccess$;\n }\n forceReloadSubFleetId() {\n this.reloadHasAccess$.next(); //we simply propagate a ghost value causing all active Observers to be notified\n }\n requestHasAccess() {\n return this.httpClient\n .get(API_ENDPOINT + 'has-access', this.getRequestOptions())\n .pipe(catchError(this.handleError))\n .pipe(map((hasAccess) => hasAccess));\n }\n get isAdmin() {\n if (!this.cacheIsAdmin$) {\n }\n return this.cacheIsAdmin$;\n }\n // Public facing API to force the cache to reload the data\n forceReloadIsAdmin() {\n this.reloadIsAdmin$.next(); //we simply propagate a ghost value causing all active Observers to be notified\n }\n requestIsAdmin() {\n return this.httpClient\n .get(API_ENDPOINT + 'is-admin', this.getRequestOptions());\n }\n}\nUserService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function UserService_Factory() { return new UserService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LoginService), i0.ɵɵinject(i3.SettingsService)); }, token: UserService, providedIn: \"root\" });\n","import * as tslib_1 from \"tslib\";\nimport { Router } from '@angular/router';\nimport { OAuthService, JwksValidationHandler } from 'angular-oauth2-oidc';\nimport { SettingsService } from '../../settings';\nimport { DBkeys } from '../../settings';\nimport { Profile } from './models/profile.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { LocalStoreManager } from '../../shared/services/local-store-manager.service';\nexport class LoginService {\n constructor(oAuthService, settingsService, router, localStorage) {\n this.oAuthService = oAuthService;\n this.settingsService = settingsService;\n this.router = router;\n this.localStorage = localStorage;\n this.hasValidAcessTokenAndExpiredInnetExp = false; //fix very specific error/case\n this._userProfile = new BehaviorSubject(null);\n this.userProfile$ = this._userProfile.asObservable();\n this.settings = settingsService.get();\n // https://tfs.cap-hpi.tools/DefaultCollection/International/_search?type=code&lp=custom-Project&text=appSettings.useAuthentication&result=DefaultCollection%2FInternational%2F%24%2FInternational%2F664%2F%24%2FInternational%2FBranches%2FBI_MB%2FPublic%2FApplications%2FCapHpi.BulkValuations%2Fsrc%2FCapHpi.BulkValuations.Web%2Fsrc%2Fapp%2Fauth%2Fservices%2Fauth.service.ts&preview=1&filters=ProjectFilters%7BInternational%7D&_a=search\n // https://tfs.cap-hpi.tools/DefaultCollection/International/_search?type=code&lp=custom-Project&text=appSettings.useAuthentication&result=DefaultCollection%2FInternational%2Fbulk-valuations%2FGBmaster%2F%2Fsrc%2FCapHpi.BulkValuations.Web%2Fsrc%2Fapp%2Fauth%2Fservices%2Fauth.service.ts&preview=0&filters=ProjectFilters%7BInternational%7D&_a=search\n if (this.settings.useIdentityServer) {\n this.configureAuth().then(() => {\n this.trylogin();\n });\n }\n }\n configureAuth() {\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\n // window.location.origin,//throw exception on IE 10\n let localUrl = /*window.location.origin || */ this.settings.appUrl;\n const authConfig = {\n issuer: this.settings.identityServerUrl,\n redirectUri: localUrl,\n silentRefreshRedirectUri: localUrl + '/silent-refresh.html',\n clientId: 'CapHpi.Applications.ResidualTracker.Web2',\n scope: 'openid profile email Cap.User.Organisation',\n oidc: true,\n };\n //this.oAuthService.skipIssuerCheck = true; //to fix error main.05152f64b2085655e6ea.js:1 invalid issuer in discovery document expected: https://dv1-identity.cap-hpi.com/ current: https://dv1-identity.cap-hpi.com\n this.oAuthService.configure(authConfig);\n this.oAuthService.tokenValidationHandler = new JwksValidationHandler();\n ////this.oAuthService.sessionChecksEnabled = true;\n ////start: need init if we don't use loadDiscoveryDocument...() \n //this.oAuthService.loginUrl = (this.settings.identityServerUrl + '/connect/authorize'),\n //this.oAuthService.tokenEndpoint = (this.settings.identityServerUrl + '/identity/connect/token');\n //this.oAuthService.logoutUrl = (this.settings.identityServerUrl + '/connect/endsession');\n //this.oAuthService.sessionCheckIFrameUrl = (this.settings.identityServerUrl + '/connect/checksession');\n //this.oAuthService.userinfoEndpoint = (this.settings.identityServerUrl + 'identity/connect/userinfo');\n ////this.oAuthService.jwksUri = (this.settings.identityServerUrl + '/.well-known/jwks');\n //////this.oAuthService.discoveryDocumentLoaded = true;\n //this.oAuthService.tokenValidationHandler = null;// new JwksValidationHandler();//skip token validation, because we don't use loadDiscoveryDocument...() ;\n ////end: need init if we don't use loadDiscoveryDocument...() \n //vt//\n this.oAuthService.events.subscribe(e => this.processEvents(e));\n this.oAuthService.setStorage(localStorage);\n });\n }\n trylogin() {\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\n //this.oAuthService.setupAutomaticSilentRefresh();\n //this.oAuthService\n // .silentRefresh()\n // .then(info => console.debug('refresh ok', info))\n // .catch(err => console.error('refresh error', err));\n //await this.oAuthService.loadDiscoveryDocumentAndTryLogin();\n yield this.oAuthService.loadDiscoveryDocumentAndLogin();\n //await this.oAuthService.loadDiscoveryDocument();\n if (this.isLoggedIn) { //on login callback// page refresh\n this.oAuthService.setupAutomaticSilentRefresh(); //move event here 20.12.2019\n this.lastRequestedUrl = this.loadLocalStore(DBkeys.CALL_BACK_URL);\n this.deleteData(DBkeys.CALL_BACK_URL);\n //console.log('LoginService, trylogin(), this.isLoggedIn = true, login callback', this.lastRequestedUrl);\n const claims = this.oAuthService.getIdentityClaims();\n var profile;\n var profileEntity;\n if (this.oAuthService.discoveryDocumentLoaded) {\n profile = yield this.oAuthService.loadUserProfile();\n }\n if (profile) {\n profileEntity = new Profile(profile.email, profile.given_name, profile.family_name, profile.organisation_id);\n }\n else {\n profileEntity = new Profile(\"\", \"\", \"\", \"\");\n }\n this._userProfile.next(profileEntity);\n //console.log(\"profile details\", profile);\n if (claims && claims['exp' /*Expiration Time*/] && claims['iat' /*Issued At*/]) {\n var now = new Date();\n var nowEpoch = Math.round(now.getTime() / 1000);\n var exp = new Date(0);\n exp.setUTCSeconds(claims['exp']);\n //console.log(\"expire after mins: \" + (claims['exp'] - nowEpoch) / 60 + \", token active mins: \" + (claims['exp'] - claims['iat']) / 60 + \", exp \" + exp + \", now \" + now);\n }\n if (this.lastRequestedUrl && this.router.url !== this.lastRequestedUrl) {\n this.router.navigateByUrl(this.lastRequestedUrl);\n this.lastRequestedUrl = null;\n }\n if (pendo) {\n pendo.initialize({\n visitor: {\n id: profile.sub,\n },\n account: {\n id: profile.organisation_id,\n }\n });\n }\n }\n });\n }\n login() {\n //this.oAuthService.initLoginFlow();\n this.oAuthService.initImplicitFlow();\n }\n logout() {\n this._userProfile.next(null);\n this.oAuthService.logOut();\n }\n get isLoggedIn() {\n if (!this.settings.useIdentityServer) {\n return true;\n }\n var token = this.oAuthService.getAccessToken();\n const isValid = this.oAuthService.hasValidAccessToken();\n //test with expired token\n const isValidId = this.oAuthService.hasValidIdToken();\n const idTokenExpiration = this.oAuthService.getIdTokenExpiration();\n const accessTokenExpiration = this.oAuthService.getAccessTokenExpiration();\n const now = new Date();\n var timeNow = now.getTime();\n //console.log(this.hasValidAcessTokenAndExpiredInnetExp, \"timeNow\", timeNow, \"accessTokenExpiration\", accessTokenExpiration, \"idTokenExpiration\", idTokenExpiration);\n if (accessTokenExpiration && accessTokenExpiration < timeNow) {\n //console.log(\"hasValidAccessToken (accessTokenExpiration)\", false);\n return false;\n }\n if (idTokenExpiration && idTokenExpiration < timeNow) {\n //console.log(\"getIdTokenExpiration (idTokenExpiration)\", false);\n return false;\n }\n if ( /*!this.hasValidAcessTokenAndExpiredInnetExp &&*/token && isValid) {\n return true;\n }\n return false;\n }\n accessToken() {\n return this.oAuthService.getAccessToken();\n }\n //from Leeds code\n //https://tfs.cap-hpi.tools/DefaultCollection/International/_git/user-management?path=%2FCapHpi.UserManagement.Web%2Fsrc%2Fapp%2Fauth-module%2Fservices%2Flogin.service.ts&version=GBmaster&_a=contents\n ensureLoggedIn(callBackUrl) {\n return new Promise((resolve, reject) => {\n if (!this.isLoggedIn) {\n this.oAuthService.loadDiscoveryDocument()\n .then(() => {\n this.oAuthService.tryLogin({}); // This method just tries to parse the token(s) within the url when\n // the auth-server redirects the user back to the web-app\n // It doesn't send the user to the login page.\n if (!this.oAuthService.hasValidAccessToken()) { // Does the user need to login?\n if (callBackUrl) {\n this.saveToLocalStore(callBackUrl, DBkeys.CALL_BACK_URL);\n }\n this.oAuthService.initImplicitFlow(); // This will redirect away from page\n console.log('LoginService, ensureLoggedIn(), this.isLoggedIn = false, initImplicitFlow() redirect');\n return; // returning to prevent promise resolution when redirect takes place\n }\n else {\n console.log('LoginService, ensureLoggedIn(), this.isLoggedIn = false, loadDiscoveryDocument() resolved');\n resolve(true);\n }\n this.oAuthService.setupAutomaticSilentRefresh();\n });\n }\n else {\n if (!this.settings.useIdentityServer) {\n resolve(true);\n }\n if (!this.oAuthService.hasValidAccessToken()) { // Is the user token valid?\n this.oAuthService.initImplicitFlow(); // Go Get A New Token\n return; // returning to prevent promise resolution when redirect takes place\n }\n console.log('LoginService, ensureLoggedIn(), this.isLoggedIn = true, loadDiscoveryDocument() resolved');\n resolve(true);\n }\n });\n }\n processEvents(event) {\n //console.log(\"oauth2-oidc processEvents: \" + event.type, event, new Date());\n switch (event.type) {\n case 'token_received':\n {\n let test = 'received';\n // https://stackoverflow.com/questions/51761306/angular-oauth2-oidc-how-to-detect-if-i-logged-in-somewhere-else/51780984\n //this.checkLoginState();\n }\n break;\n case 'silent_refresh_timeout':\n case 'silent_refresh_error':\n {\n //this.oAuthService.initImplicitFlow();// refresh failed: make user login again\n //console.log(event);\n //alert('silent_refresh_error');\n let test = 'error';\n }\n break;\n case 'silently_refreshed':\n {\n let test = 'refreshed';\n }\n break;\n case 'token_validation_error':\n {\n let test = 'error';\n this.hasValidAcessTokenAndExpiredInnetExp = true;\n }\n break;\n case 'discovery_document_load_error':\n {\n let test = 'error';\n }\n break;\n case 'discovery_document_loaded':\n {\n let test = 'loaded';\n }\n break;\n case 'logout':\n {\n let test = 'logout';\n }\n break;\n }\n if (event.type === 'silent_refresh_error') { // refresh failed: make user login again\n this.oAuthService.initImplicitFlow();\n }\n }\n storeLastRequestedUrl(callBackUrl) {\n this.saveToLocalStore(callBackUrl, DBkeys.CALL_BACK_URL);\n }\n deleteData(key) {\n if (this.localStorage.exists(key))\n return this.localStorage.deleteData(key);\n }\n loadLocalStore(key) {\n if (this.localStorage.exists(key))\n return this.localStorage.getDataObject(key);\n }\n saveToLocalStore(data, key) {\n setTimeout(() => this.localStorage.savePermanentData(data, key));\n }\n}\n","import { Injectable, EventEmitter} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { OAuthService, AuthConfig, JwksValidationHandler, OAuthEvent } from 'angular-oauth2-oidc';\r\n\r\nimport { environment } from '@env/environment';\r\nimport { Settings, SettingsService } from '../../settings';\r\nimport { DBkeys } from '../../settings';\r\n\r\nimport { Profile } from './models/profile.model';\r\nimport { Observable, BehaviorSubject} from 'rxjs';\r\nimport { LocalStoreManager } from '../../shared/services/local-store-manager.service';\r\n\r\ndeclare let pendo: any;\r\n\r\n@Injectable()\r\nexport class LoginService {\r\n private hasValidAcessTokenAndExpiredInnetExp: boolean = false;//fix very specific error/case\r\n\r\n private settings: Settings; \r\n\r\n private _userProfile: BehaviorSubject = new BehaviorSubject(null);\r\n public userProfile$ = this._userProfile.asObservable();\r\n\r\n //private loginCachedPromise: CachedPromise;\r\n\r\n public lastRequestedUrl: string;\r\n public loginRedirectUrl: string;\r\n public logoutRedirectUrl: string;\r\n\r\n constructor(\r\n private readonly oAuthService: OAuthService,\r\n private settingsService: SettingsService,\r\n private router: Router,\r\n private localStorage: LocalStoreManager,\r\n ) {\r\n this.settings = settingsService.get();\r\n\r\n // https://tfs.cap-hpi.tools/DefaultCollection/International/_search?type=code&lp=custom-Project&text=appSettings.useAuthentication&result=DefaultCollection%2FInternational%2F%24%2FInternational%2F664%2F%24%2FInternational%2FBranches%2FBI_MB%2FPublic%2FApplications%2FCapHpi.BulkValuations%2Fsrc%2FCapHpi.BulkValuations.Web%2Fsrc%2Fapp%2Fauth%2Fservices%2Fauth.service.ts&preview=1&filters=ProjectFilters%7BInternational%7D&_a=search\r\n // https://tfs.cap-hpi.tools/DefaultCollection/International/_search?type=code&lp=custom-Project&text=appSettings.useAuthentication&result=DefaultCollection%2FInternational%2Fbulk-valuations%2FGBmaster%2F%2Fsrc%2FCapHpi.BulkValuations.Web%2Fsrc%2Fapp%2Fauth%2Fservices%2Fauth.service.ts&preview=0&filters=ProjectFilters%7BInternational%7D&_a=search\r\n\r\n if (this.settings.useIdentityServer) {\r\n\r\n this.configureAuth().then(() => {\r\n this.trylogin();\r\n });\r\n\r\n }\r\n }\r\n\r\n private async configureAuth() {\r\n // window.location.origin,//throw exception on IE 10\r\n let localUrl = /*window.location.origin || */this.settings.appUrl;\r\n\r\n const authConfig: AuthConfig = {\r\n issuer: this.settings.identityServerUrl,\r\n redirectUri: localUrl,\r\n silentRefreshRedirectUri: localUrl + '/silent-refresh.html',\r\n\r\n clientId: 'CapHpi.Applications.ResidualTracker.Web2',//CapHpi.Applications.ComparatorAnalytics3.Ui\r\n scope: 'openid profile email Cap.User.Organisation',//CapHpi.ResidualTracker.Web2\r\n oidc: true,\r\n\r\n //requireHttps: false, //TODO: should be removed, after tests\r\n //showDebugInformation: true,\r\n //silentRefreshShowIFrame: true,\r\n //silentRefreshTimeout: 50.000, // silentRefreshTimeout(msec).The default value is 20.000(20 seconds).\r\n //timeoutFactor: 0.1\r\n };\r\n //this.oAuthService.skipIssuerCheck = true; //to fix error main.05152f64b2085655e6ea.js:1 invalid issuer in discovery document expected: https://dv1-identity.cap-hpi.com/ current: https://dv1-identity.cap-hpi.com\r\n\r\n this.oAuthService.configure(authConfig);\r\n this.oAuthService.tokenValidationHandler = new JwksValidationHandler();\r\n\r\n ////this.oAuthService.sessionChecksEnabled = true;\r\n\r\n ////start: need init if we don't use loadDiscoveryDocument...() \r\n //this.oAuthService.loginUrl = (this.settings.identityServerUrl + '/connect/authorize'),\r\n //this.oAuthService.tokenEndpoint = (this.settings.identityServerUrl + '/identity/connect/token');\r\n //this.oAuthService.logoutUrl = (this.settings.identityServerUrl + '/connect/endsession');\r\n //this.oAuthService.sessionCheckIFrameUrl = (this.settings.identityServerUrl + '/connect/checksession');\r\n //this.oAuthService.userinfoEndpoint = (this.settings.identityServerUrl + 'identity/connect/userinfo');\r\n ////this.oAuthService.jwksUri = (this.settings.identityServerUrl + '/.well-known/jwks');\r\n //////this.oAuthService.discoveryDocumentLoaded = true;\r\n\r\n //this.oAuthService.tokenValidationHandler = null;// new JwksValidationHandler();//skip token validation, because we don't use loadDiscoveryDocument...() ;\r\n ////end: need init if we don't use loadDiscoveryDocument...() \r\n\r\n //vt//\r\n this.oAuthService.events.subscribe(e => this.processEvents(e));\r\n\r\n this.oAuthService.setStorage(localStorage);\r\n }\r\n\r\n public async trylogin() {\r\n //this.oAuthService.setupAutomaticSilentRefresh();\r\n\r\n //this.oAuthService\r\n // .silentRefresh()\r\n // .then(info => console.debug('refresh ok', info))\r\n // .catch(err => console.error('refresh error', err));\r\n \r\n //await this.oAuthService.loadDiscoveryDocumentAndTryLogin();\r\n await this.oAuthService.loadDiscoveryDocumentAndLogin();\r\n //await this.oAuthService.loadDiscoveryDocument();\r\n\r\n if (this.isLoggedIn) {//on login callback// page refresh\r\n this.oAuthService.setupAutomaticSilentRefresh();//move event here 20.12.2019\r\n\r\n this.lastRequestedUrl = this.loadLocalStore(DBkeys.CALL_BACK_URL);\r\n this.deleteData(DBkeys.CALL_BACK_URL);\r\n //console.log('LoginService, trylogin(), this.isLoggedIn = true, login callback', this.lastRequestedUrl);\r\n\r\n const claims = this.oAuthService.getIdentityClaims();\r\n\r\n var profile;\r\n var profileEntity;\r\n if(this.oAuthService.discoveryDocumentLoaded) {\r\n profile = await this.oAuthService.loadUserProfile();\r\n }\r\n\r\n if (profile) {\r\n profileEntity = new Profile(profile.email, profile.given_name, profile.family_name, profile.organisation_id);\r\n } else {\r\n profileEntity = new Profile(\"\", \"\", \"\", \"\");\r\n }\r\n\r\n this._userProfile.next(profileEntity);\r\n\r\n //console.log(\"profile details\", profile);\r\n if (claims && claims['exp'/*Expiration Time*/] && claims['iat'/*Issued At*/]) {\r\n var now = new Date()\r\n var nowEpoch = Math.round(now.getTime() / 1000)\r\n\r\n var exp = new Date(0);\r\n exp.setUTCSeconds(claims['exp']);\r\n //console.log(\"expire after mins: \" + (claims['exp'] - nowEpoch) / 60 + \", token active mins: \" + (claims['exp'] - claims['iat']) / 60 + \", exp \" + exp + \", now \" + now);\r\n }\r\n\r\n if (this.lastRequestedUrl && this.router.url !== this.lastRequestedUrl) {\r\n this.router.navigateByUrl(this.lastRequestedUrl);\r\n this.lastRequestedUrl = null;\r\n }\r\n\r\n if (pendo) {\r\n pendo.initialize({\r\n visitor: {\r\n id: profile.sub,\r\n },\r\n account: {\r\n id: profile.organisation_id,\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n public login(): void {\r\n //this.oAuthService.initLoginFlow();\r\n this.oAuthService.initImplicitFlow();\r\n }\r\n\r\n public logout(): void {\r\n this._userProfile.next(null);\r\n this.oAuthService.logOut();\r\n }\r\n\r\n public get isLoggedIn(): boolean {\r\n if (!this.settings.useIdentityServer) {\r\n return true;\r\n }\r\n\r\n var token = this.oAuthService.getAccessToken();\r\n const isValid = this.oAuthService.hasValidAccessToken();\r\n\r\n //test with expired token\r\n const isValidId = this.oAuthService.hasValidIdToken();\r\n const idTokenExpiration = this.oAuthService.getIdTokenExpiration();\r\n const accessTokenExpiration = this.oAuthService.getAccessTokenExpiration();\r\n\r\n const now = new Date();\r\n var timeNow = now.getTime();\r\n //console.log(this.hasValidAcessTokenAndExpiredInnetExp, \"timeNow\", timeNow, \"accessTokenExpiration\", accessTokenExpiration, \"idTokenExpiration\", idTokenExpiration);\r\n if (accessTokenExpiration && accessTokenExpiration < timeNow) {\r\n //console.log(\"hasValidAccessToken (accessTokenExpiration)\", false);\r\n return false;\r\n }\r\n if (idTokenExpiration && idTokenExpiration < timeNow) {\r\n //console.log(\"getIdTokenExpiration (idTokenExpiration)\", false);\r\n return false;\r\n }\r\n\r\n if (/*!this.hasValidAcessTokenAndExpiredInnetExp &&*/ token && isValid) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public accessToken(): string {\r\n return this.oAuthService.getAccessToken();\r\n }\r\n\r\n //from Leeds code\r\n //https://tfs.cap-hpi.tools/DefaultCollection/International/_git/user-management?path=%2FCapHpi.UserManagement.Web%2Fsrc%2Fapp%2Fauth-module%2Fservices%2Flogin.service.ts&version=GBmaster&_a=contents\r\n public ensureLoggedIn(callBackUrl: string): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n if (!this.isLoggedIn) {\r\n\r\n this.oAuthService.loadDiscoveryDocument()\r\n .then(() => {\r\n this.oAuthService.tryLogin({}); // This method just tries to parse the token(s) within the url when\r\n // the auth-server redirects the user back to the web-app\r\n // It doesn't send the user to the login page.\r\n if (!this.oAuthService.hasValidAccessToken()) { // Does the user need to login?\r\n if (callBackUrl) {\r\n this.saveToLocalStore(callBackUrl, DBkeys.CALL_BACK_URL);\r\n }\r\n\r\n this.oAuthService.initImplicitFlow(); // This will redirect away from page\r\n\r\n console.log('LoginService, ensureLoggedIn(), this.isLoggedIn = false, initImplicitFlow() redirect');\r\n\r\n return; // returning to prevent promise resolution when redirect takes place\r\n\r\n } else {\r\n\r\n console.log('LoginService, ensureLoggedIn(), this.isLoggedIn = false, loadDiscoveryDocument() resolved');\r\n resolve(true);\r\n }\r\n\r\n this.oAuthService.setupAutomaticSilentRefresh();\r\n });\r\n } else {\r\n\r\n if (!this.settings.useIdentityServer) {\r\n resolve(true);\r\n }\r\n\r\n if (!this.oAuthService.hasValidAccessToken()) { // Is the user token valid?\r\n this.oAuthService.initImplicitFlow(); // Go Get A New Token\r\n return; // returning to prevent promise resolution when redirect takes place\r\n }\r\n\r\n console.log('LoginService, ensureLoggedIn(), this.isLoggedIn = true, loadDiscoveryDocument() resolved');\r\n resolve(true);\r\n }\r\n })\r\n }\r\n\r\n private processEvents(event: OAuthEvent) {\r\n //console.log(\"oauth2-oidc processEvents: \" + event.type, event, new Date());\r\n\r\n switch (event.type) {\r\n case 'token_received': {\r\n let test = 'received';\r\n // https://stackoverflow.com/questions/51761306/angular-oauth2-oidc-how-to-detect-if-i-logged-in-somewhere-else/51780984\r\n //this.checkLoginState();\r\n }\r\n break;\r\n case 'silent_refresh_timeout':\r\n case 'silent_refresh_error': {\r\n //this.oAuthService.initImplicitFlow();// refresh failed: make user login again\r\n //console.log(event);\r\n //alert('silent_refresh_error');\r\n let test = 'error';\r\n }\r\n break;\r\n case 'silently_refreshed': {\r\n let test = 'refreshed';\r\n }\r\n break;\r\n case 'token_validation_error': {\r\n let test = 'error';\r\n this.hasValidAcessTokenAndExpiredInnetExp = true;\r\n }\r\n break;\r\n case 'discovery_document_load_error': {\r\n let test = 'error';\r\n }\r\n break;\r\n case 'discovery_document_loaded': {\r\n let test = 'loaded';\r\n }\r\n break;\r\n case 'logout': {\r\n let test = 'logout';\r\n }\r\n break;\r\n }\r\n\r\n if (event.type === 'silent_refresh_error') { // refresh failed: make user login again\r\n this.oAuthService.initImplicitFlow();\r\n }\r\n }\r\n\r\n storeLastRequestedUrl(callBackUrl: string) : void {\r\n this.saveToLocalStore(callBackUrl, DBkeys.CALL_BACK_URL);\r\n }\r\n\r\n private deleteData(key: string) {\r\n if (this.localStorage.exists(key))\r\n return this.localStorage.deleteData(key);\r\n }\r\n private loadLocalStore(key: string) {\r\n if (this.localStorage.exists(key))\r\n return this.localStorage.getDataObject(key);\r\n }\r\n private saveToLocalStore(data: any, key: string) {\r\n setTimeout(() =>\r\n this.localStorage.savePermanentData(data, key)\r\n );\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { ISimilarSearchModel } from '../models/similar-search-model';\r\nimport { ISearchResultModel } from '../models/search-result-model';\r\n\r\nexport const SimilarSearchToken = new InjectionToken(\"SimilarSearchToken\");\r\n\r\nexport interface ISimilarSearchService {\r\n similarSearch(searchModel: ISimilarSearchModel): Observable;\r\n\r\n linkedSearch(searchModel: ISimilarSearchModel): Observable;\r\n}\r\n","// sets default values, overridden by settings.json, if it exists\r\nexport class Settings {\r\n appUrl: '';\r\n userConfiguration: UserConfiguration = new UserConfiguration();\r\n \r\n isFeatureListEnabled = false;\r\n isFeatureDownloadReport = false;\r\n\r\n isFeatureEditReportRangeEnabled = true; \r\n isFeatureReportDealerEnabled = true;\r\n isFeatureReportCompetitorEnabled = true;\r\n admins: string[] = [];\r\n\r\n bootstrapBaseUri = '';\r\n longRunningRequestTimeout: number = 1200000;// 20 mins\r\n\r\n report: {\r\n colors:['red']//['#c3002f', '#55a5c2', '#f7ce69', '#b2e56e']\r\n };\r\n\r\n //baseHrefDynamic = '';\r\n useIdentityServer = true;\r\n identityServerUrl = '';\r\n\r\n enableDebug = true;\r\n showDevMenu = false;\r\n}\r\n\r\nexport class UserConfiguration {\r\n /**\r\n * Set/Access the prop only from service SettingsService (this.settingsService.subFleetId)\r\n */\r\n subFleetId = 0;\r\n}\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DBkeys {\r\n\r\n //public static readonly CURRENT_USER = \"current_user\";\r\n //public static readonly USER_PERMISSIONS = \"user_permissions\";\r\n\r\n //public static readonly SUB_FLEET_ID = \"subFleetId\";\r\n //public static readonly DEALER = \"dealerId\";\r\n //public static readonly RANGE = \"rangeName\";\r\n public static readonly FILTER_PERIOD = \"filterPeriod\";\r\n public static readonly FILTER_SETTINGS = \"filterSettings\";\r\n public static readonly FILTER_VALUATION = \"filterValuation\";\r\n public static readonly FILTER_BASE = \"filterBase\";\r\n public static readonly BASKET_ID_CURRENT = \"basketIdCurrent\";\r\n public static readonly REPORT_DEALER_GROUP_BY = \"reportDealerGroupBy\";\r\n public static readonly CALL_BACK_URL = \"callBackUrl\";\r\n\r\n}\r\n\r\n","// Note: This file will excluded altogether once it has been refactored in to it's own module\r\n// and published to the registry. This is because cookie cutter doesn't support excluding files.\r\n\r\n// Angular\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { ModuleWithProviders } from '@angular/compiler/src/core';\r\n\r\nimport { AuthGuard, MustBeLoggedInGuardService, MustBeAdminGuardService, HasAccessGuard } from './guards';\r\nimport { LoginService } from './login.service';\r\n//import { AuthModuleConfig } from './models/auth-module-config.model';\r\n\r\n// Third Party\r\nimport { OAuthService, OAuthModule } from 'angular-oauth2-oidc';\r\n\r\n\r\n@NgModule({\r\n providers: [\r\n AuthGuard,\r\n MustBeLoggedInGuardService,\r\n MustBeAdminGuardService,\r\n HasAccessGuard\r\n ],\r\n imports: [\r\n OAuthModule.forRoot(\r\n // https://github.com/manfredsteyer/angular-oauth2-oidc\r\n ////Since 3.1 you can also automate this task by switching sendAccessToken on and by setting allowedUrls to an array with prefixes for the respective URLs. Use lower case for the prefixes.\r\n ////Not tested\r\n // {\r\n // resourceServer: {\r\n // allowedUrls: ['http://localhost:61536/api'],\r\n // sendAccessToken: true\r\n // }\r\n //}\r\n )\r\n ],\r\n declarations: []\r\n})\r\n//@Injectable()\r\nexport class AuthModule {\r\n public static forRoot(/*config: AuthModuleConfig*/): ModuleWithProviders {\r\n return {\r\n ngModule: AuthModule,\r\n providers: [\r\n //{ provide: 'raw-auth-module-config', useValue: config },\r\n //{ provide: 'auth-module-config', useFactory: getAuthModuleConfig, deps: ['raw-auth-module-config'] },\r\n LoginService\r\n ]\r\n };\r\n }\r\n\r\n /* make sure AuthModule is imported only by one NgModule the AppModule */\r\n constructor(\r\n @Optional() @SkipSelf() parentModule: AuthModule\r\n ) {\r\n if (parentModule) {\r\n throw new Error('AuthModule is already loaded. Import only in AppModule');\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n//export function getAuthModuleConfig(config) { const cfg = new AuthModuleConfig(); Object.assign(cfg, config); return cfg; }\r\n","export * from './animations/animations';\r\nexport * from './classes/items-base.component';\r\nexport * from './classes/page-base.component';\r\nexport * from './components/country-flag/country-flag.component';\r\nexport * from './components/no-access/no-access.component';\r\nexport * from './components/page-not-found/page-not-found.component';\r\nexport * from './dev/debug-operator';\r\nexport * from './helpers/table.scroll';\r\nexport * from './layout/footer/footer.component';\r\nexport * from './layout/header/header.component';\r\nexport * from './layout/header/sticky-header.directive';\r\nexport * from './pipes';\r\nexport * from './services/local-store-manager.service';\r\nexport * from './services/window.token';\r\n","export class UtilsObjects {\r\n static deleteNullProps(obj) {\r\n //Object.keys(obj).forEach((key) => (obj[key] == null) && delete obj[key]); \r\n for (var prop in obj) {\r\n if (obj[prop] === null || obj[prop] === undefined || (Array.isArray(obj[prop]) && !obj[prop].length)) {\r\n delete obj[prop];\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable, Optional, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpParams, HttpHeaders, HttpEvent, HttpEventType, HttpErrorResponse } from '@angular/common/http';\r\n//import { Http, Response, Headers, RequestOptions, Request, RequestMethod, ResponseContentType } from '@angular/http';\r\n\r\nimport { of as observableOf, Observable, Subject, throwError, concat } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LoginService } from '../../auth/login.service';\r\nimport { UtilsObjects } from '@app/core/utils/utils.objects';\r\n\r\nvar configUrl = 'assets/config.json';\r\n\r\n//exports\r\nexport { LoginService } from '../../auth/login.service';\r\n@Injectable()\r\nexport abstract class DataService implements OnDestroy {\r\n\r\n protected onDestroy$ = new Subject();\r\n\r\n constructor(\r\n protected httpClient: HttpClient,\r\n private loginService: LoginService\r\n ) {\r\n }\r\n ngOnDestroy() {\r\n this.onDestroy$.next(true);//not used, but could be\r\n this.onDestroy$.complete();\r\n }\r\n\r\n protected getRequestHeaders(): HttpHeaders {\r\n let headers = new HttpHeaders()\r\n //.set('Authorization', 'Bearer ' + this.loginService.accessToken())\r\n .set('Cache-control', 'no-cache, no-store')\r\n .append('Expires', '0')\r\n .append('Pragma', 'no-cache');\r\n\r\n if (this.loginService.accessToken())//skip null token\r\n headers = headers.append('Authorization', 'Bearer ' + this.loginService.accessToken());\r\n\r\n return headers;\r\n }\r\n\r\n protected getAuthorisationHeader(): HttpHeaders {\r\n let headers = new HttpHeaders()\r\n\r\n if (this.loginService.accessToken())\r\n headers = headers.append('Authorization', 'Bearer ' + this.loginService.accessToken());\r\n else\r\n return null;\r\n\r\n return headers;\r\n }\r\n\r\n protected addRefreshHeader(headers: HttpHeaders): HttpHeaders {\r\n headers = headers.append('x-cache-refresh', 'true');\r\n\r\n return headers;\r\n }\r\n\r\n protected addPeriodSafe(query: string, dateStart?: Date, dateEnd?: Date): string {\r\n if (dateStart)\r\n //query += `&dateStart=${dateStart.toISOString().substring(0, 10)}`;//\"yyyy-mm-dd\"\r\n query += `&${this.converToDateSafe('dateStart', dateStart)}`;\r\n if (dateEnd)\r\n query += `&${this.converToDateSafe('dateEnd', dateEnd)}`;\r\n\r\n return query;\r\n }\r\n\r\n protected converToDateSafe(paramName: string, date?: Date): string {\r\n if (paramName && date)\r\n return `${paramName}=${this.converToDateString(date)}`;\r\n\r\n return `${paramName}=`;\r\n }\r\n\r\n protected converToDateString(date?: Date): string {\r\n return `${date.toISOString().substring(0, 10)}`;//\"yyyy-mm-dd\"\r\n }\r\n\r\n protected getRequestOptions(): { headers: HttpHeaders } {\r\n const headers = this.getRequestHeaders();\r\n return { headers: headers };\r\n }\r\n\r\n protected getParamsFromObject(model: any): HttpParams {\r\n let params = new HttpParams({\r\n fromObject: model\r\n //or more models/objects\r\n //fromObject: {\r\n // query: query,\r\n // sort: sort,\r\n // order: order\r\n //}\r\n });\r\n return params;\r\n }\r\n\r\n protected handleError(error/*: Response*/): Observable {\r\n //console.log('error = ' + error);//log it somewhere? //we have ApplicationHttpInterceptor\r\n\r\n //return Observable.throwError(error);\r\n //or\r\n return observableOf(false);\r\n }\r\n\r\n protected handleErrorWithModel(serviceName = '', operation = 'operation', result = {} as T) {\r\n return (error: HttpErrorResponse): Observable => {\r\n\r\n return observableOf(result);\r\n };\r\n }\r\n\r\n getConfig() {\r\n return this.httpClient.get(configUrl);\r\n }\r\n\r\n deleteNullProps(obj) {\r\n UtilsObjects.deleteNullProps(obj);\r\n }\r\n}\r\n","import { CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { LoginService } from '../login.service';\r\n\r\n@Injectable()\r\nexport class MustBeLoggedInGuardService implements CanActivate, CanLoad {\r\n\r\n constructor(\r\n private loginService: LoginService\r\n ) {\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\r\n let callBackUrl = state.url;\r\n //console.log('MustBeLoggedInGuardService, canActivate', route.url, callBackUrl);\r\n\r\n return new Promise((resolve, reject) => {\r\n //console.log('MustBeLoggedInGuardService, ensureLoggedIn()');\r\n\r\n this.loginService.ensureLoggedIn(callBackUrl).then((result) => {\r\n // Login service by default is redirecting to identity server page, current implementation is really fire and forget,\r\n // this will wait for redirect to happen (current state) and will still work in case logic is rewritten\r\n\r\n //console.log('MustBeLoggedInGuardService, ensureLoggedIn(), resolved');\r\n\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n canLoad(route: Route): Promise | boolean {\r\n let callBackUrl = `/${route.path}`;\r\n //console.log('MustBeLoggedInGuardService, canLoad()', callBackUrl);\r\n\r\n return new Promise((resolve, reject) => {\r\n //console.log('MustBeLoggedInGuardService, canLoad()');\r\n\r\n this.loginService.ensureLoggedIn(callBackUrl).then((result) => {\r\n\r\n //console.log('MustBeLoggedInGuardService, canLoad(), resolved');\r\n\r\n resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { GroupByPipe, FilterUniquePipe, FilterComparisonPipe, ObjectArrayPipe, HasExtendedPipe } from './pipes';\r\n\r\nimport { NoAccessComponent } from './components/no-access/no-access.component';\r\nimport { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';\r\n\r\n// Third Party\r\nimport { TranslateModule, TranslateService, TranslatePipe, TranslateDirective } from '@ngx-translate/core';\r\nimport { MaterialModule } from './../modules/material/material.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule, ReactiveFormsModule,\r\n TranslateModule,\r\n //TranslateModule.forChild({})\r\n MaterialModule\r\n ],\r\n declarations: [\r\n GroupByPipe, FilterUniquePipe, HasExtendedPipe, FilterComparisonPipe, ObjectArrayPipe,\r\n\r\n PageNotFoundComponent,\r\n NoAccessComponent,\r\n ],\r\n\r\n //The SharedModule should not have providers\r\n //providers: [],\r\n\r\n exports: [//ToDo V: add the other exports\r\n CommonModule,\r\n FormsModule, ReactiveFormsModule,\r\n TranslateModule,\r\n MaterialModule,\r\n\r\n GroupByPipe, FilterUniquePipe, HasExtendedPipe, FilterComparisonPipe, ObjectArrayPipe,\r\n\r\n PageNotFoundComponent,\r\n NoAccessComponent,\r\n ]\r\n})\r\nexport class SharedModule {\r\n constructor(private translate: TranslateService) {\r\n\r\n //Note; translate Service required minimum settings! \r\n translate.addLangs(['en'/*, 'ru'*/]);\r\n translate.setDefaultLang('en');\r\n\r\n // this language will be used as a fallback when a translation isn't found in the current language\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n translate.use('en');//http://localhost:4200/assets/i18n/en.json\r\n \r\n //translate.get('HELLO', { value: 'world' }).subscribe((res: string) => {\r\n // console.log(res);\r\n // //=> 'hello world'\r\n //});\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\n\r\nimport { Model, ModelFactory } from '@angular-extensions/model';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { IShortListItem, ShortListItem } from '../models/common-model';\r\nimport { IDerivativeSearchModel } from '../models/derivative-search-model';\r\n\r\nconst initialData: IShortListItem[] = [];\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShortListService {\r\n private _model: Model;\r\n private _modelFilters: Model;\r\n private _toBasket = new Subject();\r\n private _reset = new Subject();\r\n private _viewTypeChanging = false;\r\n\r\n active$: Observable;\r\n activeFilters$: Observable;\r\n toBasket$ = this._toBasket.asObservable();\r\n reset$ = this._reset.asObservable();\r\n\r\n constructor(\r\n private _modelFactory: ModelFactory,\r\n private _modelFactoryFilters: ModelFactory,\r\n ) {\r\n this._model = this._modelFactory.create(initialData);\r\n this.active$ = this._model.data$;\r\n\r\n this._modelFilters = this._modelFactoryFilters.create(null);\r\n this.activeFilters$ = this._modelFilters.data$;\r\n }\r\n\r\n get currentActive(): IShortListItem[] {\r\n return this._model.get();\r\n }\r\n\r\n add(items: IShortListItem[]): void {\r\n const vModels = this._model.get();\r\n\r\n var hasUpdates = false;\r\n\r\n items.forEach(item => {\r\n var o = vModels.findIndex(vModel => vModel.id === item.id && vModel.type === item.type && vModel.cc === item.cc);//ToDo V ?add item.modelGroups[0].modelsId\r\n if (o < 0) {\r\n hasUpdates = true;\r\n vModels.push(item);\r\n }\r\n });\r\n\r\n if (hasUpdates)\r\n this._model.set(vModels);\r\n }\r\n\r\n remove(items: IShortListItem[]): void {\r\n const vModels = this._model.get();\r\n\r\n var hasUpdates = false;\r\n\r\n items.forEach(item => {\r\n var o = vModels.findIndex(vModel => vModel.id === item.id && vModel.type === item.type && vModel.cc === item.cc);//ToDo V ?add item.modelGroups[0].modelsId\r\n if (o > -1) {\r\n hasUpdates = true;\r\n vModels.splice(o, 1);\r\n }\r\n });\r\n\r\n if (hasUpdates)\r\n this._model.set(vModels);\r\n }\r\n\r\n restoreIsSelected(items: any[]) {\r\n const vModels = this._model.get();\r\n\r\n items.forEach(item => {\r\n var o = vModels.findIndex(vModel => vModel.id === item.id\r\n && (vModel.type === item.type || vModel.type === item.derivativeType)\r\n && (vModel.cc === item.cc || vModel.cc === item.countryCode));//ToDo V ?add item.modelGroups[0].modelsId\r\n if (o > -1) {\r\n item.isSelected = true;\r\n }\r\n });\r\n }\r\n\r\n reset(): void {\r\n const vModels = this._model.get();\r\n\r\n vModels.length = 0;\r\n\r\n this._model.set(vModels);\r\n\r\n this._reset.next(true);\r\n }\r\n\r\n exist(item: any): boolean {\r\n const vModels = this._model.get();\r\n\r\n var o = vModels.findIndex(vModel => vModel.id === item.id\r\n && (/*vModel.type === item.type ||*/ vModel.type === item.derivativeType)\r\n && (/*vModel.cc === item.cc ||*/ vModel.cc === item.countryCode));\r\n\r\n return o > -1;\r\n }\r\n\r\n addToBasket(): void {\r\n const vModels = this._model.get();\r\n this._toBasket.next(vModels);\r\n }\r\n\r\n addToBasketFilter(searchFilters: IDerivativeSearchModel): void {\r\n this._modelFilters.set(searchFilters);\r\n }\r\n\r\n resetFilter(): void {\r\n this._modelFilters.set(null);\r\n }\r\n\r\n get viewTypeChanging() {\r\n return this._viewTypeChanging;\r\n }\r\n set viewTypeChanging(value: boolean) {\r\n this._viewTypeChanging = value;\r\n }\r\n} \r\n","import { ModelFactory } from '@angular-extensions/model';\nimport { Subject } from 'rxjs';\nimport { IShortListItem } from '../models/common-model';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular-extensions/model\";\nconst initialData = [];\nexport class ShortListService {\n constructor(_modelFactory, _modelFactoryFilters) {\n this._modelFactory = _modelFactory;\n this._modelFactoryFilters = _modelFactoryFilters;\n this._toBasket = new Subject();\n this._reset = new Subject();\n this._viewTypeChanging = false;\n this.toBasket$ = this._toBasket.asObservable();\n this.reset$ = this._reset.asObservable();\n this._model = this._modelFactory.create(initialData);\n this.active$ = this._model.data$;\n this._modelFilters = this._modelFactoryFilters.create(null);\n this.activeFilters$ = this._modelFilters.data$;\n }\n get currentActive() {\n return this._model.get();\n }\n add(items) {\n const vModels = this._model.get();\n var hasUpdates = false;\n items.forEach(item => {\n var o = vModels.findIndex(vModel => vModel.id === item.id && vModel.type === item.type && vModel.cc === item.cc); //ToDo V ?add item.modelGroups[0].modelsId\n if (o < 0) {\n hasUpdates = true;\n vModels.push(item);\n }\n });\n if (hasUpdates)\n this._model.set(vModels);\n }\n remove(items) {\n const vModels = this._model.get();\n var hasUpdates = false;\n items.forEach(item => {\n var o = vModels.findIndex(vModel => vModel.id === item.id && vModel.type === item.type && vModel.cc === item.cc); //ToDo V ?add item.modelGroups[0].modelsId\n if (o > -1) {\n hasUpdates = true;\n vModels.splice(o, 1);\n }\n });\n if (hasUpdates)\n this._model.set(vModels);\n }\n restoreIsSelected(items) {\n const vModels = this._model.get();\n items.forEach(item => {\n var o = vModels.findIndex(vModel => vModel.id === item.id\n && (vModel.type === item.type || vModel.type === item.derivativeType)\n && (vModel.cc === item.cc || vModel.cc === item.countryCode)); //ToDo V ?add item.modelGroups[0].modelsId\n if (o > -1) {\n item.isSelected = true;\n }\n });\n }\n reset() {\n const vModels = this._model.get();\n vModels.length = 0;\n this._model.set(vModels);\n this._reset.next(true);\n }\n exist(item) {\n const vModels = this._model.get();\n var o = vModels.findIndex(vModel => vModel.id === item.id\n && ( /*vModel.type === item.type ||*/vModel.type === item.derivativeType)\n && ( /*vModel.cc === item.cc ||*/vModel.cc === item.countryCode));\n return o > -1;\n }\n addToBasket() {\n const vModels = this._model.get();\n this._toBasket.next(vModels);\n }\n addToBasketFilter(searchFilters) {\n this._modelFilters.set(searchFilters);\n }\n resetFilter() {\n this._modelFilters.set(null);\n }\n get viewTypeChanging() {\n return this._viewTypeChanging;\n }\n set viewTypeChanging(value) {\n this._viewTypeChanging = value;\n }\n}\nShortListService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ShortListService_Factory() { return new ShortListService(i0.ɵɵinject(i1.ModelFactory), i0.ɵɵinject(i1.ModelFactory)); }, token: ShortListService, providedIn: \"root\" });\n","import * as i0 from \"@angular/core\";\nexport class CacheRequest {\n}\nconst maxAge = 1800000; // maximum cache age (ms) 1800000 => 30 mins\nexport class CacheRequestService {\n //cache: { [name: string]: AsyncSubject> } = {};\n constructor() {\n this.cachedData = new Map();\n //this.loadCacheData();\n }\n get(url) {\n const cached = this.cachedData.get(url);\n if (!cached || cached.lastUpdated < (Date.now() - maxAge)) {\n console.log('cache:get', url, 'not');\n return undefined;\n }\n console.log('cache:get', url, this.cachedData);\n return cached.response;\n }\n set(url, response) {\n console.log('cache:set', url, this.cachedData);\n const entry = { url, response, lastUpdated: Date.now() };\n this.cachedData.set(url, entry);\n this.removeExpired();\n }\n delete(url, useLikePattern = false) {\n if (useLikePattern) {\n const urlBase = url.split(\"?\")[0];\n this.cachedData.forEach(entry => {\n const urlBaseCached = entry.url.split(\"?\")[0];\n if (urlBaseCached == urlBase) {\n this.cachedData.delete(entry.url);\n console.log('cache:del', url, useLikePattern, urlBaseCached);\n }\n });\n }\n else {\n const cached = this.cachedData.get(url);\n if (cached) {\n console.log('cache:del', url, useLikePattern);\n }\n this.cachedData.delete(url); //ToDo V improve if pending\n }\n }\n removeExpired() {\n const expirationDate = Date.now() - maxAge;\n this.cachedData.forEach(entry => {\n if (entry.lastUpdated <= expirationDate) {\n this.cachedData.delete(entry.url);\n }\n });\n }\n}\nCacheRequestService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function CacheRequestService_Factory() { return new CacheRequestService(); }, token: CacheRequestService, providedIn: \"root\" });\n","import { Injectable } from '@angular/core';\r\nimport { HttpResponse } from '@angular/common/http';\r\n\r\nimport { AsyncSubject } from 'rxjs';\r\n\r\nexport interface CacheRequestEntry {\r\n url: string;\r\n response: AsyncSubject>;\r\n lastUpdated: number;\r\n}\r\n\r\nexport abstract class CacheRequest {\r\n abstract get(url: string): AsyncSubject> | undefined;\r\n abstract set(url: string, response: AsyncSubject>): void;\r\n abstract delete(url: string): void;\r\n}\r\n\r\nconst maxAge = 1800000; // maximum cache age (ms) 1800000 => 30 mins\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CacheRequestService implements CacheRequest {\r\n\r\n cachedData = new Map();\r\n //cache: { [name: string]: AsyncSubject> } = {};\r\n\r\n constructor(\r\n ) {\r\n //this.loadCacheData();\r\n }\r\n\r\n get(url: string): AsyncSubject> | undefined {\r\n const cached = this.cachedData.get(url);\r\n\r\n if (!cached || cached.lastUpdated < (Date.now() - maxAge)) {\r\n console.log('cache:get', url, 'not');\r\n return undefined;\r\n }\r\n console.log('cache:get', url, this.cachedData);\r\n return cached.response;\r\n }\r\n\r\n set(url: string, response: AsyncSubject>): void {\r\n console.log('cache:set', url, this.cachedData);\r\n const entry: CacheRequestEntry = { url, response, lastUpdated: Date.now() };\r\n\r\n this.cachedData.set(url, entry);\r\n\r\n this.removeExpired();\r\n }\r\n\r\n delete(url: string, useLikePattern: boolean = false): void {\r\n if (useLikePattern) {\r\n const urlBase = url.split(\"?\")[0];\r\n this.cachedData.forEach(entry => {\r\n const urlBaseCached = entry.url.split(\"?\")[0];\r\n if (urlBaseCached == urlBase) {\r\n this.cachedData.delete(entry.url);\r\n\r\n console.log('cache:del', url, useLikePattern, urlBaseCached);\r\n }\r\n });\r\n } else {\r\n const cached = this.cachedData.get(url);\r\n if (cached) {\r\n console.log('cache:del', url, useLikePattern);\r\n }\r\n\r\n this.cachedData.delete(url);//ToDo V improve if pending\r\n }\r\n }\r\n\r\n private removeExpired(): void {\r\n const expirationDate = Date.now() - maxAge;\r\n this.cachedData.forEach(entry => {\r\n if (entry.lastUpdated <= expirationDate) {\r\n this.cachedData.delete(entry.url);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n //selector: 'lud-page-not-found',\r\n template: `\r\n
\r\n
\r\n

404 - Page Not Found!

\r\n
\r\n
\r\n`\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n static route = '**';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./page-not-found.component\";\nvar styles_PageNotFoundComponent = [];\nvar RenderType_PageNotFoundComponent = i0.ɵcrt({ encapsulation: 2, styles: styles_PageNotFoundComponent, data: {} });\nexport { RenderType_PageNotFoundComponent as RenderType_PageNotFoundComponent };\nexport function View_PageNotFoundComponent_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 3, \"div\", [[\"class\", \"container\"]], null, null, null, null, null)), (_l()(), i0.ɵeld(1, 0, null, null, 2, \"div\", [[\"class\", \"jumbotron\"]], null, null, null, null, null)), (_l()(), i0.ɵeld(2, 0, null, null, 1, \"h2\", [], null, null, null, null, null)), (_l()(), i0.ɵted(-1, null, [\"404 - Page Not Found! \"]))], null, null); }\nexport function View_PageNotFoundComponent_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"ng-component\", [], null, null, null, View_PageNotFoundComponent_0, RenderType_PageNotFoundComponent)), i0.ɵdid(1, 114688, null, 0, i1.PageNotFoundComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar PageNotFoundComponentNgFactory = i0.ɵccf(\"ng-component\", i1.PageNotFoundComponent, View_PageNotFoundComponent_Host_0, {}, {}, []);\nexport { PageNotFoundComponentNgFactory as PageNotFoundComponentNgFactory };\n","\n
\n
\n

404 - Page Not Found!

\n
\n
\n","import { Component, OnInit, ChangeDetectionStrategy, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription, BehaviorSubject } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\n\r\nimport { ISimilarSearchModel, SimilarSearchModel } from '../models/similar-search-model';\r\nimport { ISearchResultModel, SearchResultModel } from '../models/search-result-model';\r\nimport { SimilarVehicleService } from '../service/similar-vehicle.service';\r\nimport { ShortListService } from '../service/short-list.service';\r\n\r\n// Third Party\r\nimport { TabComponent, SelectEventArgs, HeaderModel, SelectingEventArgs } from '@syncfusion/ej2-angular-navigations';\r\n\r\nconst viewTypes = ['similar', 'linked'];\r\n\r\n@Component({\r\n selector: 'lud-similar-vehicle',\r\n templateUrl: './similar-vehicle.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SimilarVehicleComponent implements OnInit {\r\n static route = ':viewType'; //'similar' | 'linked';\r\n\r\n viewType: string = 'similar'; // from route\r\n headerText: HeaderModel[] = [{ text: 'Similar Vehicles' }, { text: 'Linked Vehicles' }];\r\n\r\n viewTypeResult: string = '';//'card' | 'list' | 'gantt' = 'list';\r\n\r\n @ViewChild('tabObj', { static: true }) tabInstance: TabComponent;\r\n\r\n isLoadingSimilar$ = new BehaviorSubject(false);\r\n itemsToShowSimilar$ = new BehaviorSubject(null);\r\n totalItemsSimilar$ = new BehaviorSubject(0);\r\n\r\n isLoadingLinked$ = new BehaviorSubject(false);\r\n itemsToShowLinked$ = new BehaviorSubject(null);\r\n totalItemsLinked$ = new BehaviorSubject(0);\r\n\r\n private masterItemsToShowSimilar = [];\r\n private masterItemsToShowLinked = [];\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private similarVehicleService: SimilarVehicleService,\r\n private shortListService: ShortListService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n\r\n this.subscriptions.push(\r\n this.shortListService.reset$\r\n .subscribe(result => {\r\n console.log('SimilarVehicleComponent. reset().', result);\r\n\r\n this.itemsToShowSimilar$.next(JSON.parse(JSON.stringify(this.masterItemsToShowSimilar)));\r\n this.itemsToShowLinked$.next(JSON.parse(JSON.stringify(this.masterItemsToShowLinked)));\r\n })\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n const viewType = this.activatedRoute.snapshot.paramMap.get('viewType');\r\n if (viewType) {\r\n var viewTypeIndex = viewTypes.indexOf(viewType.toLowerCase());\r\n if (viewTypeIndex > -1) {\r\n this.viewType = viewType;\r\n this.tabInstance.selectedItem = viewTypeIndex;\r\n //this.tabInstance.dataBind();\r\n }\r\n }\r\n\r\n if (!this.hasValidRoute()) {\r\n //this.router.navigate(['/find-vehicles']);\r\n //return;\r\n }\r\n\r\n this.subscriptions.push(\r\n this.similarVehicleService.active$\r\n .pipe(\r\n //skip(1),\r\n switchMap(searchModel => {\r\n this.isLoadingSimilar$.next(true);\r\n\r\n return this.similarVehicleService.similar(searchModel)\r\n }),\r\n tap((res: ISearchResultModel) => {\r\n this.isLoadingSimilar$.next(false);\r\n\r\n this.masterItemsToShowSimilar = res.items;\r\n this.itemsToShowSimilar$.next(JSON.parse(JSON.stringify(res.items || [])));\r\n this.totalItemsSimilar$.next(res.totalItems);\r\n })\r\n ).subscribe()\r\n );\r\n\r\n this.subscriptions.push(\r\n this.similarVehicleService.active$\r\n .pipe(\r\n //skip(1),\r\n switchMap(searchModel => {\r\n this.isLoadingLinked$.next(true);\r\n\r\n return this.similarVehicleService.linked(searchModel)\r\n }),\r\n tap((res: ISearchResultModel) => {\r\n this.isLoadingLinked$.next(false);\r\n\r\n this.masterItemsToShowLinked = res.items;\r\n this.itemsToShowLinked$.next(JSON.parse(JSON.stringify(res.items || [])));\r\n this.totalItemsLinked$.next(res.totalItems);\r\n })\r\n ).subscribe()\r\n );\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n selecting(e: SelectingEventArgs) {\r\n //if (e.isSwiped) {\r\n // e.cancel = true;\r\n //}\r\n }\r\n\r\n selected(e: SelectEventArgs) {\r\n if (e.selectedIndex < viewTypes.length) {\r\n this.viewType = viewTypes[e.selectedIndex];\r\n }\r\n }\r\n\r\n private hasValidRoute(): boolean {\r\n var derivativeId = +this.activatedRoute.snapshot.paramMap.get('id');\r\n var derivativeType = this.activatedRoute.snapshot.paramMap.get('derivativeType');\r\n var countryCode = this.activatedRoute.snapshot.paramMap.get('countryCode');\r\n\r\n var isValid = derivativeId > 0 && derivativeType != null && countryCode != null;\r\n if (isValid) {\r\n this.similarVehicleService.update(new SimilarSearchModel(derivativeId, derivativeType, countryCode));\r\n }\r\n\r\n return isValid;\r\n }\r\n}\r\n","import { IMarketModel, MarketModel } from './market-model'\r\n\r\n//IMPORTANT: this file is auto-generated, any changes included will not be persisted, if extension is required please inherit from this class in separate file and inlcude your changes there\r\n\r\nexport interface IBasketHeaderModel {\r\n id?: number;\r\n name?: string;\r\n //isArchived?: boolean;\r\n basketType?: string;\r\n ownerId?: string;\r\n\r\n contentCount?: number;\r\n lastEdited?: Date;\r\n effectiveFrom?: Date;\r\n securityTypes?: string[];\r\n canEdit?: boolean;\r\n markets?: IMarketModel[];\r\n}\r\n\r\nexport class BasketHeaderModel implements IBasketHeaderModel {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n // public isArchived: boolean,\r\n public basketType: string,\r\n public ownerId: string,\r\n public contentCount: number,\r\n public lastEdited: Date,\r\n public effectiveFrom: Date,\r\n public securityTypes?: string[],\r\n public canEdit?: boolean,\r\n public markets?: MarketModel[]\r\n ) {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new BasketHeaderModel(null, null, null, null, null, null, null, null, null, null);\r\n }\r\n}\r\n\r\n\r\n","import { IBasketHeaderModel, BasketHeaderModel } from './basket-header-model'\r\nimport { IBasketContentModel, BasketContentModel } from './basket-content-model'\r\n\r\n//IMPORTANT: this file is auto-generated, any changes included will not be persisted, if extension is required please inherit from this class in separate file and inlcude your changes there\r\n\r\nexport interface IBasketModel { \r\n header?: IBasketHeaderModel;\r\n content?: IBasketContentModel[];\r\n}\r\n\r\nexport class BasketModel implements IBasketModel {\r\n constructor(\r\n public header: BasketHeaderModel,\r\n public content: BasketContentModel[]\r\n )\r\n {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new BasketModel(null, null);\r\n }\r\n}\r\n\r\n\r\n","\r\n\r\n//IMPORTANT: this file is auto-generated, any changes included will not be persisted, if extension is required please inherit from this class in separate file and inlcude your changes there\r\n\r\nexport interface IFilterModel { \r\n subFleetId?: number;\r\n dateStart?: Date;\r\n dateEnd?: Date;\r\n}\r\n\r\nexport class FilterModel implements IFilterModel {\r\n constructor(\r\n public subFleetId: number,\r\n public dateStart: Date,\r\n public dateEnd: Date\r\n )\r\n {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new FilterModel(null, null, null);\r\n }\r\n}\r\n\r\n\r\n","import { RangeMonthType } from './range-month-type.enum';\r\n\r\nexport class ReportFilter {\r\n //id: string;\r\n //name: string;\r\n rangeValue: Date[];\r\n reportPeriod: RangeMonthType;\r\n}\r\n\r\n\r\nexport interface ISettingsFilter {\r\n countryId?: number;\r\n countryCode?: string;\r\n vType?: string;\r\n term?: number;\r\n distance?: number;\r\n}\r\n\r\nexport class SettingsFilter implements ISettingsFilter {\r\n constructor(\r\n public countryId: number,\r\n public countryCode: string,\r\n public vType: string,\r\n public term: number,\r\n public distance: number,\r\n ) {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new SettingsFilter(null, null, null, null, null);\r\n }\r\n}\r\n\r\n\r\nexport interface IFilterBaseModel {\r\n countryIds?: number[];\r\n vTypes?: number[];\r\n}\r\n\r\nexport class FilterBaseModel implements IFilterBaseModel {\r\n constructor(\r\n public countryIds: number[],\r\n public vTypes: number[],\r\n ) {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new FilterBaseModel([], []);\r\n }\r\n}\r\n","\r\n\r\n\r\n//IMPORTANT: this file is auto-generated, any changes included will not be persisted, if extension is required please inherit from this class in separate file and inlcude your changes there\r\nexport enum ReportPresetType {\r\n \r\n None = \"None\",\r\n AgeVsDist = \"AgeVsDist\",\r\n AgeVsAccumulativeDist = \"AgeVsAccumulativeDist\",\r\n ContastPlateVsDist = \"ContastPlateVsDist\",\r\n AverageValueVsOneAge = \"AverageValueVsOneAge\",\r\n AverageValueVsOneDist = \"AverageValueVsOneDist\",\r\n ActualsVsForecast = \"ActualsVsForecast\",\r\n IntroducedSince = \"IntroducedSince\",\r\n DiscontinuedSince = \"DiscontinuedSince\"\r\n}\r\n\r\n","import { DataSourceType } from './data-source-type'\r\nimport { ReportPresetType } from './report-preset-type'\r\n\r\n//IMPORTANT: this file is auto-generated, any changes included will not be persisted, if extension is required please inherit from this class in separate file and inlcude your changes there\r\n\r\nexport interface IValuationModel {\r\n reportPresetType?: ReportPresetType;\r\n basketId?: number;\r\n contentIds?: number[];\r\n contentIdsString?: string[];\r\n\r\n ageMonths?: number;\r\n tDist?: number;\r\n months?: number;\r\n ds?: DataSourceType[];\r\n\r\n aDist?: number;\r\n datesetMonth?: string;\r\n}\r\n\r\nexport class ValuationModel implements IValuationModel {\r\n constructor(\r\n public reportPresetType: ReportPresetType,\r\n public basketId: number,\r\n public contentIds: number[],\r\n public contentIdsString: string[],\r\n\r\n public ageMonths: number,\r\n public tDist: number,\r\n public months: number,\r\n public ds: DataSourceType[],\r\n\r\n public aDist?: number,\r\n public datesetMonth?: string,\r\n ) {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new ValuationModel(null, null, [], [], null, null, null, [], null, null);\r\n }\r\n}\r\n\r\n\r\n","import { IValuationModel, ValuationModel } from './valuation-model'\r\nimport { IBasketHeaderModel, BasketHeaderModel } from './basket-header-model'\r\nimport { IDynamicColumnModel, DynamicColumnModel } from './dynamic-column-model'\r\nimport { IValuationResponseModel, ValuationResponseModel } from './valuation-response-model'\r\n\r\n//IMPORTANT: this file is auto-generated, any changes included will not be persisted, if extension is required please inherit from this class in separate file and inlcude your changes there\r\n\r\nexport interface IValuationResultModel { \r\n report?: IValuationModel;\r\n basketHeader?: IBasketHeaderModel;\r\n dynamicColumn?: IDynamicColumnModel;\r\n valuations?: IValuationResponseModel[];\r\n missingDerivativeIds?: number[];\r\n}\r\n\r\nexport class ValuationResultModel implements IValuationResultModel {\r\n constructor(\r\n public report: ValuationModel,\r\n public basketHeader: BasketHeaderModel,\r\n public dynamicColumn: DynamicColumnModel,\r\n public valuations: ValuationResponseModel[],\r\n public missingDerivativeIds: number[]\r\n )\r\n {\r\n\r\n }\r\n\r\n public static empty() {\r\n return new ValuationResultModel(null, null, null, null, null);\r\n }\r\n}\r\n\r\n\r\n","export * from './api/basket-content-model';\r\nexport * from './api/basket-header-model';\r\nexport * from './api/basket-model';\r\nexport * from './api/county-model';\r\nexport * from './api/data-source-type';\r\nexport * from './api/dynamic-column-model';\r\nexport * from './api/filter-model';\r\nexport * from './api/generic-result-model';\r\nexport * from './api/market-model';\r\nexport * from './api/range-month-type.enum';\r\nexport * from './api/report-filter.model';\r\nexport * from './api/report-model';\r\nexport * from './api/report-predefined-model';\r\nexport * from './api/report-preset-type';\r\nexport * from './api/report-type';\r\nexport * from './api/rv-access-type';\r\nexport * from './api/rv-filter-model';\r\nexport * from './api/term-distance-model';\r\nexport * from './api/user-access-model';\r\nexport * from './api/valuation-item-model';\r\nexport * from './api/valuation-model';\r\nexport * from './api/valuation-point-model';\r\nexport * from './api/valuation-response-model';\r\nexport * from './api/valuation-result-model';\r\nexport * from './api/vehicle-type';\r\nexport * from './api/vehicle-type-model';\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { Settings, SettingsService } from '../../settings';\r\nimport { LocalStoreManager } from '../services/local-store-manager.service';\r\n\r\n//exports\r\nexport { Settings, SettingsService } from '../../settings';\r\nexport { LocalStoreManager } from '../services/local-store-manager.service';\r\n\r\nexport class PageBaseComponent implements OnInit, OnDestroy {\r\n protected ngUnsubscribe = new Subject();\r\n\r\n public loading: boolean = false;//public to be used in template\r\n public settings: Settings;//public to be used in template\r\n\r\n constructor(\r\n protected readonly settingsService?: SettingsService,\r\n protected readonly localStorage?: LocalStoreManager\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.settingsService) {\r\n this.settings = this.settingsService.get();\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n protected loadData(): void {\r\n this.loading = true;\r\n }\r\n\r\n protected loadLocalStore(key: string) {\r\n\r\n if (this.localStorage && this.localStorage.exists(key))\r\n return this.localStorage.getDataObject(key);\r\n }\r\n protected saveToLocalStore(data: any, key: string) {\r\n setTimeout(() => {\r\n if (this.localStorage)\r\n this.localStorage.saveSessionData(data, key)\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable, of as observableOf, combineLatest } from 'rxjs';\r\nimport { map, catchError, filter, switchMap } from 'rxjs/operators';\r\n\r\nimport { GenericResultModel, SettingsFilter } from '@app/models';\r\nimport { DataService, LoginService } from '@app/core';\r\nimport { ReportFilterService } from '@app/report-filters/service/report-filter.service';\r\n\r\nconst API_ENDPOINT = 'api/v1/derivative/';\r\n\r\nimport {\r\n IDerivativeSearchService, ISearchResultModel, SearchResultModel, IDerivativeSearchModel, FilterRequest,\r\n ISimilarSearchService, ISimilarSearchModel\r\n} from 'vehicle-search';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DerivativeSearchService extends DataService implements IDerivativeSearchService, ISimilarSearchService {\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n loginService: LoginService,\r\n private readonly reportFilterService: ReportFilterService,\r\n ) {\r\n super(httpClient, loginService);\r\n }\r\n\r\n similarSearch(searchModel: ISimilarSearchModel): Observable {\r\n\r\n let headers = this.getAuthorisationHeader();\r\n\r\n let query = API_ENDPOINT + `similar`;\r\n\r\n return this.httpClient\r\n .post(query, searchModel,\r\n {\r\n headers: headers,\r\n })\r\n .pipe(\r\n map((data: GenericResultModel) => {\r\n if (data && data.success) {\r\n return data.result;\r\n }\r\n }),\r\n catchError(this.handleErrorWithModel('DerivativeSearchService', 'similarSearch', new SearchResultModel(0, 0, 0, 0, 0, [], [])))\r\n );\r\n }\r\n\r\n linkedSearch(searchModel: ISimilarSearchModel): Observable {\r\n\r\n let headers = this.getAuthorisationHeader();\r\n\r\n let query = API_ENDPOINT + `linked`;\r\n\r\n return this.httpClient\r\n .post(query, searchModel,\r\n {\r\n headers: headers,\r\n })\r\n .pipe(\r\n map((data: GenericResultModel) => {\r\n if (data && data.success) {\r\n return data.result;\r\n }\r\n }),\r\n catchError(this.handleErrorWithModel('DerivativeSearchService', 'linkedSearch', new SearchResultModel(0, 0, 0, 0, 0, [], [])))\r\n );\r\n }\r\n\r\n public derivativeSearch(searchModel: IDerivativeSearchModel): Observable {\r\n //var singleCountryMode = true; // ToDo V set from user restrictions\r\n //var defaultCountryCode = 'GB';\r\n\r\n //searchModel.filters = new FilterRequest('countryCode', ['GB']);\r\n\r\n return combineLatest(\r\n observableOf(searchModel),\r\n //(singleCountryMode ? this.reportFilterService.filterSettings$: observableOf(true))\r\n ).pipe(\r\n //filter((filters) => singleCountryMode ? filters[1]['countryId'] > 0: true),\r\n //map(([filterSettings, searchModel]) => {\r\n // return searchModel;\r\n //}),\r\n switchMap((filters, ind) => {\r\n\r\n //return this.requestDerivativeSearch(filters[0], (singleCountryMode ? filters[1]['countryCode'] : null));\r\n return this.requestDerivativeSearch(filters[0]);\r\n }),\r\n );\r\n }\r\n\r\n private requestDerivativeSearch(searchModel: IDerivativeSearchModel, countryCode?: string): Observable {\r\n //console.log('derivativeSearch: ', searchModel/*, countryCode*/);\r\n\r\n let headers = this.getAuthorisationHeader();\r\n //let params = this.getParamsFromObject(filter);\r\n\r\n let query = API_ENDPOINT + `search`;\r\n //if (countryCode)\r\n // query += `?cc=${countryCode}`\r\n\r\n return this.httpClient\r\n .post(query, searchModel,\r\n {\r\n headers: headers,\r\n //params: params,\r\n })\r\n .pipe(\r\n map((data: GenericResultModel) => {\r\n //console.log('derivativeSearch: result ', data);\r\n if (data && data.success) {\r\n return data.result;\r\n }\r\n }),\r\n catchError(this.handleErrorWithModel('DerivativeSearchService', 'derivativeSearch', new SearchResultModel(0, 0, 0, 0, 0, [], [])))\r\n );\r\n }\r\n} \r\n","import { HttpClient } from '@angular/common/http';\nimport { of as observableOf, combineLatest } from 'rxjs';\nimport { map, catchError, switchMap } from 'rxjs/operators';\nimport { GenericResultModel } from '@app/models';\nimport { DataService, LoginService } from '@app/core';\nimport { ReportFilterService } from '@app/report-filters/service/report-filter.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"../auth/login.service\";\nimport * as i3 from \"../../report-filters/service/report-filter.service\";\nconst API_ENDPOINT = 'api/v1/derivative/';\nimport { IDerivativeSearchService, ISearchResultModel, SearchResultModel, IDerivativeSearchModel, ISimilarSearchService, ISimilarSearchModel } from 'vehicle-search';\nexport class DerivativeSearchService extends DataService {\n constructor(httpClient, loginService, reportFilterService) {\n super(httpClient, loginService);\n this.reportFilterService = reportFilterService;\n }\n similarSearch(searchModel) {\n let headers = this.getAuthorisationHeader();\n let query = API_ENDPOINT + `similar`;\n return this.httpClient\n .post(query, searchModel, {\n headers: headers,\n })\n .pipe(map((data) => {\n if (data && data.success) {\n return data.result;\n }\n }), catchError(this.handleErrorWithModel('DerivativeSearchService', 'similarSearch', new SearchResultModel(0, 0, 0, 0, 0, [], []))));\n }\n linkedSearch(searchModel) {\n let headers = this.getAuthorisationHeader();\n let query = API_ENDPOINT + `linked`;\n return this.httpClient\n .post(query, searchModel, {\n headers: headers,\n })\n .pipe(map((data) => {\n if (data && data.success) {\n return data.result;\n }\n }), catchError(this.handleErrorWithModel('DerivativeSearchService', 'linkedSearch', new SearchResultModel(0, 0, 0, 0, 0, [], []))));\n }\n derivativeSearch(searchModel) {\n //var singleCountryMode = true; // ToDo V set from user restrictions\n //var defaultCountryCode = 'GB';\n //searchModel.filters = new FilterRequest('countryCode', ['GB']);\n return combineLatest(observableOf(searchModel)).pipe(\n //filter((filters) => singleCountryMode ? filters[1]['countryId'] > 0: true),\n //map(([filterSettings, searchModel]) => {\n // return searchModel;\n //}),\n switchMap((filters, ind) => {\n //return this.requestDerivativeSearch(filters[0], (singleCountryMode ? filters[1]['countryCode'] : null));\n return this.requestDerivativeSearch(filters[0]);\n }));\n }\n requestDerivativeSearch(searchModel, countryCode) {\n //console.log('derivativeSearch: ', searchModel/*, countryCode*/);\n let headers = this.getAuthorisationHeader();\n //let params = this.getParamsFromObject(filter);\n let query = API_ENDPOINT + `search`;\n //if (countryCode)\n // query += `?cc=${countryCode}`\n return this.httpClient\n .post(query, searchModel, {\n headers: headers,\n })\n .pipe(map((data) => {\n //console.log('derivativeSearch: result ', data);\n if (data && data.success) {\n return data.result;\n }\n }), catchError(this.handleErrorWithModel('DerivativeSearchService', 'derivativeSearch', new SearchResultModel(0, 0, 0, 0, 0, [], []))));\n }\n}\nDerivativeSearchService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DerivativeSearchService_Factory() { return new DerivativeSearchService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LoginService), i0.ɵɵinject(i3.ReportFilterService)); }, token: DerivativeSearchService, providedIn: \"root\" });\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpParams, HttpHeaders, HttpEvent, HttpEventType } from '@angular/common/http';\r\n//import { HttpParamsOptions } from '@angular/common/http/src/params';\r\n//import { ResponseContentType } from '@angular/http';\r\n\r\nimport { Observable, empty, throwError } from \"rxjs\";\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { DataService, LoginService } from \"./base/data.service\";\r\nimport { SettingsService, DBkeys } from '../../settings';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { saveAs } from 'file-saver';\r\nimport * as FileSaver from 'file-saver';\r\n\r\nimport { FilterModel } from '../../models';\r\n\r\n// https://github.com/cipchk/ngx-filesaver/blob/master/lib/src/filesaver.service.ts\r\n\r\nconst API_ENDPOINT = 'api/v1/exports/';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileSaverService extends DataService {\r\n\r\n constructor(\r\n httpClient: HttpClient,\r\n loginService: LoginService,\r\n private readonly settingsService: SettingsService,\r\n private readonly toastrService: ToastrService\r\n ) {\r\n super(httpClient, loginService);\r\n }\r\n\r\n downloadFileWithObservable(query: string, data: any) : Observable {\r\n\r\n return Observable.create((observer) => {\r\n var fileName: string;\r\n\r\n let headers = this.getAuthorisationHeader();\r\n headers = headers.set('timeout', '240000');\r\n\r\n //let params = this.convertToHttpParams(data);\r\n\r\n this.httpClient.post(API_ENDPOINT + query, data,\r\n {\r\n headers: headers,\r\n //params: params,\r\n responseType: 'blob', /*ResponseContentType.Blob.toString()*/\r\n observe: 'response',\r\n })\r\n .pipe(\r\n map((data: HttpEvent) => {\r\n if (data.type === HttpEventType.Response) {\r\n\r\n fileName = this.getFilenameFromResponse(data);\r\n\r\n return data.body;\r\n }\r\n })\r\n )\r\n .subscribe((file: Blob) => {\r\n FileSaver.saveAs(file, fileName);\r\n\r\n observer.next(true);\r\n observer.complete();\r\n\r\n }, (error: any) => {\r\n\r\n //setTimeout(() => {\r\n // this.toastrService.error(error && error.statusText ? error.statusText : error && error.status ? error.status : \"General\", 'Unexpected Error', { tapToDismiss: true });\r\n //});\r\n\r\n observer.next(false);\r\n observer.complete();\r\n });\r\n });\r\n }\r\n\r\n downloadFileWithAuth(reportName: string, filterModel: FilterModel) { // not tested\r\n if (this.getAuthorisationHeader() == null) {\r\n // return Observable.of(false);\r\n return throwError(new Error('Not Authorised'));\r\n }\r\n\r\n let headers = this.getAuthorisationHeader();\r\n headers = headers.set('timeout', '240000');\r\n\r\n let params = this.convertToHttpParams(filterModel);\r\n // params = params.append('subFleetID', this.settingsService.subFleetId.toString());// add some \r\n\r\n return Observable.create((observer) => {\r\n this.httpClient.get(API_ENDPOINT + `report/${reportName}`,\r\n {\r\n headers: headers,\r\n params: params,\r\n responseType: 'blob',\r\n observe: 'response'\r\n })\r\n .subscribe(response => {\r\n\r\n observer.next(response);\r\n observer.complete();\r\n });\r\n\r\n });\r\n }\r\n\r\n getFilenameFromResponse(response): string {\r\n // \"content-disposition\" => attachment; filename=report.xlsx; filename*=UTF-8''report.xlsx\r\n let fileName = response.headers.get('content-disposition').split(';')[2].split('=')[1];\r\n fileName = fileName.replace(\"UTF-8''\", '');\r\n fileName = decodeURIComponent(fileName);\r\n\r\n return fileName;\r\n }\r\n\r\n private convertToHttpParams(filterModel: any /* skip intellisense */) {\r\n const alteredParams = Object.assign({}, filterModel);// copy\r\n\r\n if (alteredParams.dateStart)\r\n alteredParams.dateStart = this.converToDateString(alteredParams.dateStart);\r\n if (alteredParams.dateEnd)\r\n alteredParams.dateEnd = this.converToDateString(alteredParams.dateEnd);\r\n\r\n let params = this.getParamsFromObject(alteredParams); // convert object\r\n\r\n return params;\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpEvent, HttpEventType } from '@angular/common/http';\n//import { HttpParamsOptions } from '@angular/common/http/src/params';\n//import { ResponseContentType } from '@angular/http';\nimport { Observable, throwError } from \"rxjs\";\nimport { map } from 'rxjs/operators';\nimport { DataService, LoginService } from \"./base/data.service\";\nimport { SettingsService } from '../../settings';\nimport { ToastrService } from 'ngx-toastr';\nimport * as FileSaver from 'file-saver';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"../auth/login.service\";\nimport * as i3 from \"../../settings/settings.service\";\nimport * as i4 from \"ngx-toastr\";\n// https://github.com/cipchk/ngx-filesaver/blob/master/lib/src/filesaver.service.ts\nconst API_ENDPOINT = 'api/v1/exports/';\nexport class FileSaverService extends DataService {\n constructor(httpClient, loginService, settingsService, toastrService) {\n super(httpClient, loginService);\n this.settingsService = settingsService;\n this.toastrService = toastrService;\n }\n downloadFileWithObservable(query, data) {\n return Observable.create((observer) => {\n var fileName;\n let headers = this.getAuthorisationHeader();\n headers = headers.set('timeout', '240000');\n //let params = this.convertToHttpParams(data);\n this.httpClient.post(API_ENDPOINT + query, data, {\n headers: headers,\n //params: params,\n responseType: 'blob',\n observe: 'response',\n })\n .pipe(map((data) => {\n if (data.type === HttpEventType.Response) {\n fileName = this.getFilenameFromResponse(data);\n return data.body;\n }\n }))\n .subscribe((file) => {\n FileSaver.saveAs(file, fileName);\n observer.next(true);\n observer.complete();\n }, (error) => {\n //setTimeout(() => {\n // this.toastrService.error(error && error.statusText ? error.statusText : error && error.status ? error.status : \"General\", 'Unexpected Error', { tapToDismiss: true });\n //});\n observer.next(false);\n observer.complete();\n });\n });\n }\n downloadFileWithAuth(reportName, filterModel) {\n if (this.getAuthorisationHeader() == null) {\n // return Observable.of(false);\n return throwError(new Error('Not Authorised'));\n }\n let headers = this.getAuthorisationHeader();\n headers = headers.set('timeout', '240000');\n let params = this.convertToHttpParams(filterModel);\n // params = params.append('subFleetID', this.settingsService.subFleetId.toString());// add some \n return Observable.create((observer) => {\n this.httpClient.get(API_ENDPOINT + `report/${reportName}`, {\n headers: headers,\n params: params,\n responseType: 'blob',\n observe: 'response'\n })\n .subscribe(response => {\n observer.next(response);\n observer.complete();\n });\n });\n }\n getFilenameFromResponse(response) {\n // \"content-disposition\" => attachment; filename=report.xlsx; filename*=UTF-8''report.xlsx\n let fileName = response.headers.get('content-disposition').split(';')[2].split('=')[1];\n fileName = fileName.replace(\"UTF-8''\", '');\n fileName = decodeURIComponent(fileName);\n return fileName;\n }\n convertToHttpParams(filterModel /* skip intellisense */) {\n const alteredParams = Object.assign({}, filterModel); // copy\n if (alteredParams.dateStart)\n alteredParams.dateStart = this.converToDateString(alteredParams.dateStart);\n if (alteredParams.dateEnd)\n alteredParams.dateEnd = this.converToDateString(alteredParams.dateEnd);\n let params = this.getParamsFromObject(alteredParams); // convert object\n return params;\n }\n}\nFileSaverService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FileSaverService_Factory() { return new FileSaverService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LoginService), i0.ɵɵinject(i3.SettingsService), i0.ɵɵinject(i4.ToastrService)); }, token: FileSaverService, providedIn: \"root\" });\n","import * as tslib_1 from \"tslib\";\nimport { Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { tap } from 'rxjs/operators';\nimport { Settings } from './settings.model';\nimport { LocalStoreManager } from '../shared/services/local-store-manager.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"../shared/services/local-store-manager.service\";\nexport class SettingsService {\n constructor(http, localStorage, injector) {\n this.http = http;\n this.localStorage = localStorage;\n this.injector = injector;\n this.loadBrowserWindowEnv = () => {\n // Read environment variables from browser window\n const browserWindowEnv = window['__env'] || {};\n //const browserWindowEnv = browserWindow['__env'] || {};\n //console.log(browserWindowEnv);\n // Assign environment variables from browser window to env\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\n for (const key in browserWindowEnv) {\n if (browserWindowEnv.hasOwnProperty(key)) {\n this._settings[key] = browserWindowEnv[key];\n }\n }\n };\n this._settings = new Settings();\n }\n loadSettings() {\n return tslib_1.__awaiter(this, void 0, void 0, function* () {\n //https://stackoverflow.com/questions/49163532/angular-v5-service-is-getting-constructed-before-app-initializer-promise-resol\n const http = this.injector.get(HttpClient);\n // Note VT:\n // Three step process to build settings:\n // use variables from settings.model \n // 1. Load file settings.json\n // 2. get browser Window Env (window.__env) if set from Octopus in envOctopus.js\n // 3. Load local Storage\n // Every step override settings.model in UI\n var promise = http\n .get('settings.json') // './settings.json'\n .pipe(tap((configSettingsJson) => {\n //console.log(configSettingsJson);\n for (const key in configSettingsJson) {\n if (configSettingsJson.hasOwnProperty(key)) {\n this._settings[key] = configSettingsJson[key];\n }\n }\n this.loadBrowserWindowEnv();\n //if (this._settings.useIdentityServer) {//should be before loadLocalChanges(); \n // this.subFleetId = 0;//It will be loaded later - after user authentification\n //}\n this.loadLocalChanges();\n //console.log(this._settings);\n }, (error) => {\n this._settings = new Settings();\n this.loadBrowserWindowEnv();\n if (this._settings.useIdentityServer) {\n this.subFleetId = 0;\n }\n this.loadLocalChanges();\n }))\n .toPromise();\n //const zipUtil = import(`../../settings.json`)\n // .then(function (value) {\n // if (value) {\n // console.log(\"import\", value);\n // }\n // });\n return promise;\n });\n }\n load() {\n return new Promise(resolve => {\n this.http\n .get('./settings.json')\n .subscribe((configSettingsJson) => {\n //console.log(configSettingsJson);\n //this._settings = Object.assign({}, this._settings, configSettingsJson);\n //Object.assign(this._settings, configSettingsJson);\n for (const key in configSettingsJson) {\n if (configSettingsJson.hasOwnProperty(key)) {\n this._settings[key] = configSettingsJson[key];\n }\n }\n this.loadBrowserWindowEnv();\n this.loadLocalChanges();\n //console.log(this._settings);\n resolve(this._settings);\n }, (error) => {\n this._settings = new Settings();\n this.loadBrowserWindowEnv();\n this.loadLocalChanges();\n resolve(this._settings);\n });\n });\n }\n loadLocalChanges() {\n //console.log('loadLocalChanges before', this._settings.userConfiguration.subFleetId);\n //if (this.localStorage.exists(DBkeys.SUB_FLEET_ID) && this._settings.useIdentityServer) {\n // //this.subFleetId = this.localStorage.getDataObject(DBkeys.SUB_FLEET_ID);\n //}\n //console.log('loadLocalChanges after', this._settings.userConfiguration.subFleetId);\n }\n saveToLocalStore(data, key) {\n setTimeout(() => this.localStorage.saveSessionData(data, key));\n }\n get() {\n return this._settings;\n }\n set subFleetId(value) {\n //console.log(' set subFleetId before', this._settings.userConfiguration.subFleetId);\n this._settings.userConfiguration.subFleetId = Number(value);\n //if (this._settings.useIdentityServer) {\n // this.saveToLocalStore(Number(value), DBkeys.SUB_FLEET_ID);\n //}\n //console.log(' set subFleetId after', this._settings.userConfiguration.subFleetId);\n }\n get subFleetId() {\n //console.log(' get subFleetId before', this._settings.userConfiguration.subFleetId);\n return this._settings.userConfiguration.subFleetId;\n }\n}\nSettingsService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function SettingsService_Factory() { return new SettingsService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LocalStoreManager), i0.ɵɵinject(i0.INJECTOR)); }, token: SettingsService, providedIn: \"root\" });\n//https://juristr.com/blog/2018/01/ng-app-runtime-config/\nexport function settingsServiceFactory(settings) {\n // Angular will first resolve that Promise before it continues with the bootstrapping.\n return () => \n //settings.load();\n settings.loadSettings();\n}\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable, Subject, throwError, concat, of } from \"rxjs\";\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { Settings, DBkeys } from './settings.model';\r\nimport { LocalStoreManager } from '../shared/services/local-store-manager.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingsService {\r\n private _settings: Settings;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private localStorage: LocalStoreManager,\r\n private injector: Injector\r\n ) {\r\n this._settings = new Settings();\r\n }\r\n\r\n public async loadSettings()/*: Promise*/{\r\n //https://stackoverflow.com/questions/49163532/angular-v5-service-is-getting-constructed-before-app-initializer-promise-resol\r\n const http = this.injector.get(HttpClient);\r\n\r\n // Note VT:\r\n // Three step process to build settings:\r\n // use variables from settings.model \r\n // 1. Load file settings.json\r\n // 2. get browser Window Env (window.__env) if set from Octopus in envOctopus.js\r\n // 3. Load local Storage\r\n // Every step override settings.model in UI\r\n\r\n var promise = http\r\n .get('settings.json')// './settings.json'\r\n .pipe(\r\n tap(\r\n (configSettingsJson: Settings) => {\r\n //console.log(configSettingsJson);\r\n\r\n for (const key in configSettingsJson) {\r\n if (configSettingsJson.hasOwnProperty(key)) {\r\n this._settings[key] = configSettingsJson[key];\r\n }\r\n }\r\n\r\n this.loadBrowserWindowEnv();\r\n //if (this._settings.useIdentityServer) {//should be before loadLocalChanges(); \r\n // this.subFleetId = 0;//It will be loaded later - after user authentification\r\n //}\r\n this.loadLocalChanges();\r\n\r\n //console.log(this._settings);\r\n },\r\n (error: any) => {\r\n this._settings = new Settings();\r\n\r\n this.loadBrowserWindowEnv();\r\n if (this._settings.useIdentityServer) {\r\n this.subFleetId = 0;\r\n }\r\n this.loadLocalChanges();\r\n })\r\n )\r\n .toPromise();\r\n\r\n //const zipUtil = import(`../../settings.json`)\r\n // .then(function (value) {\r\n // if (value) {\r\n // console.log(\"import\", value);\r\n // }\r\n // });\r\n\r\n return promise;\r\n }\r\n\r\n public load(): Promise {\r\n return new Promise(resolve => {\r\n this.http\r\n .get('./settings.json')\r\n .subscribe(\r\n (configSettingsJson: Settings) => {\r\n //console.log(configSettingsJson);\r\n\r\n //this._settings = Object.assign({}, this._settings, configSettingsJson);\r\n //Object.assign(this._settings, configSettingsJson);\r\n for (const key in configSettingsJson) {\r\n if (configSettingsJson.hasOwnProperty(key)) {\r\n this._settings[key] = configSettingsJson[key];\r\n }\r\n }\r\n\r\n this.loadBrowserWindowEnv();\r\n this.loadLocalChanges();\r\n\r\n //console.log(this._settings);\r\n\r\n resolve(this._settings);\r\n },\r\n (error: any) => {\r\n this._settings = new Settings();\r\n\r\n this.loadBrowserWindowEnv();\r\n this.loadLocalChanges();\r\n\r\n resolve(this._settings);\r\n }\r\n );\r\n });\r\n }\r\n\r\n private loadLocalChanges() {\r\n //console.log('loadLocalChanges before', this._settings.userConfiguration.subFleetId);\r\n //if (this.localStorage.exists(DBkeys.SUB_FLEET_ID) && this._settings.useIdentityServer) {\r\n // //this.subFleetId = this.localStorage.getDataObject(DBkeys.SUB_FLEET_ID);\r\n //}\r\n //console.log('loadLocalChanges after', this._settings.userConfiguration.subFleetId);\r\n }\r\n private saveToLocalStore(data: any, key: string) {\r\n setTimeout(() => this.localStorage.saveSessionData(data, key));\r\n }\r\n\r\n public get() {\r\n return this._settings;\r\n }\r\n\r\n set subFleetId(value: number) {\r\n //console.log(' set subFleetId before', this._settings.userConfiguration.subFleetId);\r\n this._settings.userConfiguration.subFleetId = Number(value);\r\n\r\n //if (this._settings.useIdentityServer) {\r\n // this.saveToLocalStore(Number(value), DBkeys.SUB_FLEET_ID);\r\n //}\r\n //console.log(' set subFleetId after', this._settings.userConfiguration.subFleetId);\r\n }\r\n get subFleetId(): number {\r\n //console.log(' get subFleetId before', this._settings.userConfiguration.subFleetId);\r\n return this._settings.userConfiguration.subFleetId;\r\n }\r\n\r\n public loadBrowserWindowEnv = () => {\r\n // Read environment variables from browser window\r\n const browserWindowEnv = (window as any)['__env'] || {};\r\n\r\n //const browserWindowEnv = browserWindow['__env'] || {};\r\n //console.log(browserWindowEnv);\r\n\r\n // Assign environment variables from browser window to env\r\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\r\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\r\n for (const key in browserWindowEnv) {\r\n if (browserWindowEnv.hasOwnProperty(key)) {\r\n this._settings[key] = browserWindowEnv[key];\r\n }\r\n }\r\n }\r\n}\r\n\r\n//https://juristr.com/blog/2018/01/ng-app-runtime-config/\r\nexport function settingsServiceFactory(settings: SettingsService) {\r\n // Angular will first resolve that Promise before it continues with the bootstrapping.\r\n return () =>\r\n //settings.load();\r\n settings.loadSettings();\r\n}\r\n","import { Injectable, ErrorHandler, Injector } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class ToastErrorHandler extends ErrorHandler {\r\n\r\n constructor(private injector: Injector) {\r\n super();\r\n }\r\n\r\n handleError(errorResp: /*Error |*/ HttpErrorResponse) {\r\n const toastrService = this.injector.get(ToastrService);\r\n\r\n let displayMessage = 'An error occurred.';\r\n\r\n setTimeout(() => {\r\n if (errorResp.status >= 500 /* 500, 504 */) {\r\n toastrService.error(displayMessage, 'Unexpected Error', { tapToDismiss: true });\r\n } else if (errorResp.status === 401) {\r\n toastrService.warning('You are not authorized', 'Authorization', { tapToDismiss: true });\r\n } else if (errorResp.status === 400) {\r\n if (errorResp.error.errors && errorResp.error.errors.length && errorResp.error.errors[0].message)\r\n toastrService.warning(errorResp.error.errors[0].message, 'Warning', { tapToDismiss: true });// cap hpi - Business Error Response\r\n else if (errorResp.error.errors && errorResp.error.errors) {\r\n var obj = errorResp.error.errors;\r\n\r\n //skip errors with $(Model State Errors) for now\r\n if (Object.keys(obj)[0].indexOf('$') === 0) {\r\n //console.log('error with $', Object.keys(obj)[0]);\r\n } else {\r\n toastrService.warning(obj[Object.keys(obj)[0]], 'Warning', { tapToDismiss: true });// Model State Errors\r\n }\r\n\r\n } else\r\n toastrService.warning(errorResp.statusText, 'Warning', { tapToDismiss: true });\r\n } else if (errorResp.status === 404) {\r\n toastrService.warning(errorResp.statusText, 'Warning ' + errorResp.status, { tapToDismiss: true });\r\n }\r\n else {\r\n //toastrService.warning('A minor error happened', 'Warning ' + errorResp.status, { tapToDismiss: true });\r\n console.log('A minor error happened', errorResp);\r\n }\r\n });\r\n\r\n\r\n\r\n super.handleError(errorResp);\r\n }\r\n}\r\n","export interface IDerivativeSearchModel { \r\n query?: string;\r\n pageNumber: number;\r\n itemsPerPage: number;\r\n\r\n sortField?: string;\r\n sortDirection?: string;\r\n\r\n filters?: IFilterRequest[];\r\n settings?: ISearchSettings;\r\n}\r\nexport class DerivativeSearchModel implements IDerivativeSearchModel{\r\n constructor(\r\n public query: string,\r\n public pageNumber: number,\r\n public itemsPerPage: number,\r\n public filters: IFilterRequest[],\r\n public settings?: ISearchSettings,\r\n )\r\n {}\r\n\r\n public static empty() {\r\n return new DerivativeSearchModel('', 1, 25, [], SearchSettings.empty());\r\n }\r\n}\r\n\r\n\r\nexport interface IFilterRequest {\r\n name: string;\r\n includes: string[];\r\n isCustom?: boolean;\r\n}\r\nexport class FilterRequest implements IFilterRequest {\r\n constructor(\r\n public name: string,\r\n public includes: string[],\r\n public isCustom: boolean\r\n ) {}\r\n\r\n public static empty() {\r\n return new FilterRequest('', [], null);\r\n }\r\n}\r\n\r\n\r\nexport interface ISearchSettings {\r\n returnFilters?: boolean;\r\n hightlight?: boolean;\r\n}\r\nexport class SearchSettings implements ISearchSettings{\r\n constructor(\r\n public returnFilters: boolean,\r\n public hightlight: boolean\r\n ) { }\r\n\r\n public static empty() {\r\n return new SearchSettings(true, false);\r\n }\r\n}\r\n\r\n\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","import { Injectable, Injector, ErrorHandler } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpResponse, HttpErrorResponse, HttpHandler, HttpEvent } from '@angular/common/http';\r\n \r\nimport { Observable } from 'rxjs';\r\nimport { tap, timeout } from 'rxjs/operators';\r\n\r\nimport { Settings, SettingsService } from '../../../settings';\r\n \r\n@Injectable()\r\nexport class ApplicationHttpInterceptor implements HttpInterceptor {\r\n\r\n settings: Settings;\r\n\r\n constructor(\r\n private injector: Injector\r\n ) {\r\n var settingsService = this.injector.get(SettingsService);\r\n\r\n this.settings = settingsService.get();\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request); // skip for now 11.02.2021\r\n\r\n\r\n //const requestTimeout = 10000;\r\n const requestTimeout: number = Number(request.headers.get('timeout')) || this.settings.longRunningRequestTimeout;\r\n\r\n return next.handle(request)\r\n .pipe(\r\n //.timeout(new Date(\"December 17, 2020 03:24:00\"))\r\n timeout(requestTimeout\r\n //,\r\n //new Error('Timeout expired.')\r\n //console.log('Timeout expired.')\r\n ),\r\n tap(response => {\r\n if (response instanceof HttpResponse) {\r\n let body = response.body;\r\n if (body.Error || body.errorMessage) {\r\n //this.toasterService.pop('error', 'Error ' + response.Code, response.Message);\r\n console.log('An error occurred:', body.Error || body.errorMessage);\r\n }\r\n }\r\n }, (err: any) => {\r\n if (err instanceof HttpErrorResponse) {\r\n const appErrorHandler = this.injector.get(ErrorHandler);\r\n appErrorHandler.handleError(err);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","export * from './auth';\r\nexport * from './data/base/cache-request.service';\r\nexport * from './data/base/cache.interceptor';\r\nexport * from './data/base/data.service';\r\nexport * from './data/base/http-general.interceptor';\r\nexport * from './data/base/http.interceptor';\r\nexport * from './data/file-saver.service';\r\nexport * from './data/user.service';\r\nexport * from './error-handler/toast-error-handler';\r\nexport * from './preload/custom-preloader';\r\nexport * from './utils/utils.objects';\r\nexport * from './core.module';\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const WindowRef = new InjectionToken('WindowToken');\r\n\r\nexport function _window(): Window {\r\n return window;\r\n}\r\n\r\n// https://juristr.com/blog/2016/09/ng2-get-window-ref/\r\n// function _window(): any {\r\n// // return the global native browser window object\r\n// return window;\r\n// }\r\n\r\n// @Injectable()\r\n// export class WindowRef {\r\n// get nativeWindow(): any {\r\n// return _window();\r\n// }\r\n// }\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n\r\nexport const fadeInOut = trigger('fadeInOut', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.4s 10ms ease-out', style({ opacity: 0 }))])\r\n])\r\n\r\nexport const fadeIn = trigger('fadeIn', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n])\r\n\r\n\r\nexport function fadeInSlideFromDown(pixelsX: number = 30) {\r\n return trigger('fadeInSlideFromDown', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: `translateY(${pixelsX}px` }),\r\n animate('0.2s ease-in', style({ opacity: 1, transform: 'translateX(0px)' }))\r\n ]),\r\n ])\r\n}\r\n\r\nexport function flyInOut(duration: number = 0.2) {\r\n return trigger('flyInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateX(-100%)' }), animate(`${duration}s ease-in`)]),\r\n transition('* => void', [animate(`${duration}s 10ms ease-out`, style({ opacity: 0, transform: 'translateX(100%)' }))])\r\n ])\r\n}\r\n\r\nexport function slideFromLeftInOut(pixelsX: number = 30) {\r\n return trigger('slideFromLeftInOut', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: `translateX(-${pixelsX}px)` }),\r\n animate('200ms ease-in', style({ opacity: 1, transform: 'translateX(0px)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ opacity: 0, transform: `translateX(-${pixelsX}px)` }))\r\n ])\r\n ])\r\n}\r\n\r\nexport function slideFromTopInOut(pixelsY: number = 30) {\r\n return trigger('slideFromTopInOut', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: `translateY(-${pixelsY}px)` }),\r\n animate('200ms ease-in', style({ opacity: 1, transform: 'translateY(0px)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ opacity: 0, transform: `translateY(-${pixelsY}px)` }))\r\n ])\r\n ])\r\n}\r\n\r\nexport const animateText = trigger('animateText', [\r\n state('hide',\r\n style({\r\n 'display': 'none',\r\n opacity: 0,\r\n })\r\n ),\r\n state('show',\r\n style({\r\n 'display': 'block',\r\n opacity: 1,\r\n })\r\n ),\r\n transition('close => open', animate('350ms ease-in')),\r\n transition('open => close', animate('200ms ease-out')),\r\n]);\r\n\r\nexport const onMainContentChange = trigger('onMainContentChange', [\r\n state('close',\r\n style({\r\n 'margin-left': '96px'\r\n })\r\n ),\r\n state('open',\r\n style({\r\n 'margin-left': '266px'\r\n })\r\n ),\r\n transition('close => open', animate('250ms ease-in')),\r\n transition('open => close', animate('250ms ease-in')),\r\n]);\r\n\r\nexport const onSideNavChange = trigger('onSideNavChange', [\r\n state('close',\r\n style({\r\n 'min-width': '40px',\r\n 'width': '40px',\r\n 'background-color': 'rgba(153, 153, 153, 0.1)',\r\n })\r\n ),\r\n state('open',\r\n style({\r\n 'min-width': '200px'\r\n })\r\n ),\r\n //transition('close => open', animate('250ms ease-in')),\r\n transition('open => close', animate('250ms ease-in')),\r\n]);\r\n","import { BehaviorSubject } from 'rxjs';\r\nimport { takeUntil, tap, filter } from 'rxjs/operators';\r\nimport { debugToConsole } from '../dev/debug-operator'\r\nimport * as _ from 'lodash';\r\n\r\nimport {\r\n PageBaseComponent,\r\n Settings,\r\n SettingsService,\r\n LocalStoreManager\r\n\r\n} from './page-base.component';\r\n\r\n//exports\r\nexport * from './page-base.component';\r\nexport * from '../../shared/animations/animations';\r\n\r\nexport enum SortDirection {\r\n asc = 'asc',\r\n desc = 'desc'\r\n}\r\n\r\n//export function CustomInjectable(annotation: any) {\r\n// return function (target: Function) {\r\n// var parentTarget = Object.getPrototypeOf(target.prototype).constructor;\r\n// var parentAnnotations = Reflect.getMetadata('design:paramtypes', parentTarget);\r\n\r\n// Reflect.defineMetadata('design:paramtypes', parentAnnotations, target);\r\n// }\r\n//}\r\n//// https://stackoverflow.com/questions/37117698/angular2-use-imported-libs-from-base-class\r\n//@CustomInjectable()\r\nexport class ItemsBaseComponent extends PageBaseComponent {\r\n\r\n protected sortedBy: string = '';\r\n public sortedDirection = SortDirection.asc;//public to be used in template\r\n public sortBy$ = new BehaviorSubject(this.sortedBy);//public to be used in template\r\n \r\n public items: TItem[] = [];\r\n //protected observableItems = new BehaviorSubject([]);\r\n\r\n constructor(\r\n settingsService?: SettingsService,\r\n localStorage?: LocalStoreManager\r\n ) {\r\n super(settingsService, localStorage);\r\n\r\n this.sortBy$\r\n .pipe(\r\n debugToConsole(\"start pipe: ItemsBaseComponent: sortBy$\"),\r\n filter((prop, index) => prop != '' && this.items.length > 0),\r\n tap(prop => {\r\n \r\n if (this.sortedBy.toLowerCase() === prop.toLowerCase()) {\r\n this.sortedDirection = (this.sortedDirection === SortDirection.asc) ? SortDirection.desc : SortDirection.asc;\r\n }\r\n this.sortedBy = prop;\r\n\r\n this.items = this.orderBy(this.items, prop, this.sortedDirection);\r\n }),\r\n takeUntil(this.ngUnsubscribe),\r\n )\r\n .subscribe();\r\n }\r\n\r\n protected orderBy(items: any[], prop: string, direction: string): any[] {\r\n //var test = _.orderBy(this.items, ['type', 'name'], ['asc', 'desc']);\r\n //return _.orderBy(items, [prop], [direction]);\r\n return _.orderBy(items, [prop], (direction === SortDirection.asc ? \"asc\" : \"desc\"));\r\n }\r\n}\r\n","import { NgModule, Optional, SkipSelf, ErrorHandler } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { UserService } from './data/user.service';\r\nimport { FileSaverService } from './data/file-saver.service';\r\nimport { UtilsObjects } from './';\r\n\r\nimport { ApplicationHttpInterceptor } from './data/base/http.interceptor';\r\nimport { CacheInterceptor } from './data/base/cache.interceptor';\r\n//import { GeneralHttpInterceptor } from './data/base/http-general.interceptor';\r\nimport { ToastErrorHandler } from './error-handler/toast-error-handler';\r\n\r\n/** Http interceptor providers in outside-in order */\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\r\n\r\n { provide: HTTP_INTERCEPTORS, useClass: ApplicationHttpInterceptor, multi: true },\r\n //{ provide: HTTP_INTERCEPTORS, useClass: GeneralHttpInterceptor, multi: true },\r\n];\r\n\r\n//Create a CoreModule with providers for the singleton services you load when the application starts.\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n\r\n //Consider making CoreModule a pure services module with no declarations.\r\n //declarations: []\r\n\r\n providers: [\r\n UserService,\r\n FileSaverService,\r\n UtilsObjects,\r\n httpInterceptorProviders,\r\n { provide: ErrorHandler, useClass: ToastErrorHandler },\r\n //{ provide: ErrorHandler, useClass: AppErrorHandler },\r\n //{ provide: RouterStateSerializer, useClass: CustomSerializer }\r\n ],\r\n})\r\n\r\nexport class CoreModule {\r\n //Import CoreModule in the root AppModule only. Never import CoreModule in any other module.\r\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\r\n if (parentModule) {\r\n throw new Error('CoreModule has already been loaded. You should only import Core modules in the AppModule only.');\r\n }\r\n }\r\n}\r\n","export interface ISimilarSearchModel {\r\n //pageNumber: number;\r\n //itemsPerPage: number;\r\n\r\n derivativeId: number;\r\n derivativeType: string;\r\n countryCode: string;\r\n\r\n}\r\nexport class SimilarSearchModel implements ISimilarSearchModel {\r\n constructor(\r\n public derivativeId: number,\r\n public derivativeType: string,\r\n public countryCode: string,\r\n ) { }\r\n\r\n public static empty() {\r\n return new SimilarSearchModel(0, '', '');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { TabsModule } from 'ngx-bootstrap/tabs';\r\n\r\n@NgModule({\r\n imports: [\r\n PopoverModule.forRoot(),\r\n PaginationModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n TabsModule.forRoot(),\r\n ],\r\n exports: [\r\n PopoverModule,\r\n BsDropdownModule,\r\n TabsModule,\r\n ],\r\n})\r\nexport class BootstrapModule { }\r\n","import { map, mergeMap } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n\r\n// import 'rxjs/add/operator/map';\r\n// import 'rxjs/add/operator/mergeMap';\r\n// import { Observable } from \"rxjs/internal/Observable\";\r\n\r\nconst debuggerOn = false;\r\n\r\n// export declare function debug(this: Observable, project: (value: T, index: number) => R, thisArg?: any): Observable;\r\n//\r\n// export declare function debugToConsole(message: string) => (source: Observable) => new Observable((subscriber) => {\r\nexport const debugToConsole = (message: string) => (source: Observable) => new Observable((subscriber) => {\r\n source.subscribe({\r\n next(value) {\r\n if (debuggerOn) {\r\n console.log(message, value);\r\n }\r\n\r\n subscriber.next(value);\r\n },\r\n error(err) {\r\n subscriber.error(err);\r\n },\r\n complete() {\r\n subscriber.complete();\r\n },\r\n });\r\n});\r\n\r\n// // Uncomment to see it works\r\n// Observable.of(\"ad\").pipe(\r\n// debugToConsole(\"to console\"),\r\n// ).subscribe();\r\n\r\ndeclare module 'rxjs/internal/Observable' {\r\n interface Observable {\r\n debug: (...any) => Observable;\r\n }\r\n}\r\n\r\n// import { MonoTypeOperatorFunction, PartialObserver } from '../types';\r\n// export declare function tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction;\r\n// export declare function tap(observer: PartialObserver): MonoTypeOperatorFunction;\r\n\r\n// import { Observable } from 'rxjs';\r\nexport declare function debug(this: Observable, project: (value: T, index: number) => R, thisArg?: any): Observable;\r\n\r\n// Note VT: just test\r\n// https://blog.angular-university.io/debug-rxjs/\r\nObservable.prototype.debug = function (message: string) {\r\n // https://www.academind.com/learn/javascript/rxjs-6-what-changed/\r\n return this.tap( // RxJS 6 Changes: operator was renamed do() => tap()\r\n (nextValue) => {\r\n if (debuggerOn) {\r\n console.log(message, nextValue);\r\n }\r\n },\r\n function (error) {\r\n if (debuggerOn) {\r\n console.error('ERROR >>> ', message, error);\r\n }\r\n },\r\n function () {\r\n if (debuggerOn) {\r\n console.log('Completed.');\r\n }\r\n }\r\n );\r\n};\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Model, ModelFactory } from '@angular-extensions/model';\r\n\r\nimport { SimilarSearchModel, ISimilarSearchModel } from '../models/similar-search-model';\r\nimport { ISearchResultModel } from '../models/search-result-model';\r\nimport { SimilarSearchToken, ISimilarSearchService } from './isimilar-search.service';\r\n\r\nconst initialData: ISimilarSearchModel = SimilarSearchModel.empty();\r\n\r\n@Injectable(/*{\r\n providedIn: 'root' // keep it local\r\n}*/)\r\nexport class SimilarVehicleService {\r\n private _model: Model;\r\n\r\n active$: Observable;\r\n\r\n constructor(\r\n private _modelFactory: ModelFactory,\r\n @Inject(SimilarSearchToken) private similarSearchService: ISimilarSearchService\r\n ) {\r\n\r\n this._model = this._modelFactory.create(initialData);\r\n this.active$ = this._model.data$;\r\n }\r\n\r\n update(model: ISimilarSearchModel): void {\r\n this._model.set(model);\r\n }\r\n\r\n linked(model: ISimilarSearchModel): Observable {\r\n return this.similarSearchService.linkedSearch(model);\r\n }\r\n\r\n similar(model: ISimilarSearchModel): Observable {\r\n return this.similarSearchService.similarSearch(model);\r\n }\r\n}\r\n","\r\nexport interface IToggleSingleFilter {\r\n filterName: string;\r\n value: string;\r\n singleSelection: boolean;\r\n}\r\nexport class ToggleSingleFilter implements IToggleSingleFilter {\r\n constructor(\r\n public filterName: string,\r\n public value: string,\r\n public singleSelection: boolean,\r\n ) { }\r\n}\r\n\r\nexport interface IChangeManyFilterItems {\r\n filterName: string;\r\n values: string[];\r\n isCustom?: boolean;\r\n}\r\nexport class ChangeManyFilterItems implements IChangeManyFilterItems {\r\n constructor(\r\n public filterName: string,\r\n public values: string[],\r\n public isCustom: boolean\r\n ) { }\r\n}\r\n\r\n\r\nexport interface IShortListItem {\r\n id: number;\r\n type: string;\r\n cc: string;\r\n modelsId: number;\r\n}\r\nexport class ShortListItem implements IShortListItem {\r\n constructor(\r\n public id: number,\r\n public type: string,\r\n public cc: string,\r\n public modelsId: number\r\n ) { }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n//import { SharedModule } from '@app/shared/shared.module';\r\n\r\nimport { SearchDetailsComponent } from './components/search-details/search-details.component';\r\nimport { SearchGanttComponent } from './components/search-gantt/search-gantt.component';\r\nimport { SearchFiltersComponent } from './components/search-filters/search-filters.component';\r\nimport { SinceFiltersComponent } from './components/since-filters/since-filters.component';\r\nimport { SearchViewsComponent } from './components/search-views/search-views.component';\r\nimport { DerivativesSearchComponent } from './components/derivatives-search/derivatives-search.component';\r\nimport { DerivativeSearchContainerComponent } from './views/derivative-search-container.component';\r\nimport { IntroducedContainerComponent } from './views/introduced-container.component';\r\nimport { SimilarVehicleComponent } from './views/similar-vehicle.component';\r\nimport { DetailsComponent } from './components/details/details.component'; \r\nimport { DetailsSinceComponent } from './components/details-since/details-since.component'; \r\nimport { SimilarComponent } from './components/similar/similar.component';\r\nimport { LinkedComponent } from './components/linked/linked.component';\r\n\r\nimport { CbTriStateComponent } from './components/cb-tri-state/cb-tri-state.component';\r\n\r\nimport { SearchFilterService } from './service/search-filter.service';\r\nimport { SearchConverterService } from './service/search-converter.service';\r\nimport { SimilarVehicleService } from './service/similar-vehicle.service';\r\n\r\n// Third Party\r\nimport { LoadingModule } from 'ngx-loading';\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatButtonModule } from '@angular/material/button'; \r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { GanttAllModule } from '@syncfusion/ej2-angular-gantt';\r\nimport { TabModule } from '@syncfusion/ej2-angular-navigations';\r\nimport { GridAllModule } from '@syncfusion/ej2-angular-grids';\r\nimport { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns';\r\n\r\n@NgModule({\r\n declarations: [\r\n DerivativeSearchContainerComponent,\r\n IntroducedContainerComponent,\r\n SearchDetailsComponent, SearchGanttComponent,\r\n SearchFiltersComponent,\r\n SinceFiltersComponent,\r\n SearchViewsComponent,\r\n DerivativesSearchComponent,\r\n CbTriStateComponent,\r\n SimilarVehicleComponent,\r\n DetailsComponent,\r\n DetailsSinceComponent,\r\n SimilarComponent,\r\n LinkedComponent\r\n ],\r\n imports: [\r\n CommonModule, FormsModule, ReactiveFormsModule, RouterModule, // SharedModule,\r\n LoadingModule,\r\n TranslateModule,\r\n PopoverModule.forRoot(), PaginationModule.forRoot(),\r\n ScrollingModule,\r\n MatButtonModule, MatButtonToggleModule, MatTooltipModule, MatDatepickerModule, MatInputModule, MatSelectModule,\r\n GanttAllModule, TabModule, GridAllModule, DropDownListModule\r\n ],\r\n providers: [\r\n SearchFilterService,// keep it local\r\n SearchConverterService,\r\n SimilarVehicleService,// keep it local\r\n ],\r\n exports: [// only nexts are public\r\n DerivativeSearchContainerComponent, \r\n IntroducedContainerComponent,\r\n SimilarVehicleComponent\r\n ]\r\n})\r\nexport class VehicleSearchModule {\r\n constructor(private translate: TranslateService) {\r\n //translate.get('HELLO', { value: 'world' }).subscribe((res: string) => {\r\n // console.log('Translate VehicleSearchModule', res);\r\n //});\r\n }\r\n}\r\n","// ====================================================\r\n// More Templates: https://www.ebenmonney.com/templates\r\n// Email: support@ebenmonney.com\r\n// ====================================================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild, NavigationExtras, CanLoad, Route } from '@angular/router';\r\nimport { LoginService } from '../login.service';\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild, CanLoad {\r\n constructor(private authService: LoginService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n\r\n let url: string = state.url;\r\n return this.checkLogin(url);\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n\r\n let url = `/${route.path}`;\r\n return this.checkLogin(url);\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n\r\n if (this.authService.isLoggedIn) {\r\n return true;\r\n }\r\n\r\n this.authService.lastRequestedUrl = url;//ToDo V should be improved if we want to work like that\r\n //this.authService.loginRedirectUrl = url;\r\n //this.router.navigate(['/login']);\r\n this.router.navigate(['/']);\r\n\r\n return false;\r\n }\r\n}\r\n","import { settingsServiceFactory } from './settings';\n//import { AngularStickyThingsModule } from '@w11k/angular-sticky-things';\nimport { _window } from './shared/services/window.token';\nimport { StickyHeaderDirective } from './shared/layout/header/sticky-header.directive';\nconst DIRECTIVES = [StickyHeaderDirective, StickyHeaderDirective];\nconst ɵ0 = settingsServiceFactory, ɵ1 = _window;\nexport class AppModule {\n}\nexport { ɵ0, ɵ1 };\n","// Angular\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\n\r\n// App - Common\r\nimport { AppComponent } from './app.component';\r\nimport { HeaderComponent } from './shared/layout/header/header.component';\r\nimport { FooterComponent } from './shared/layout/footer/footer.component';\r\nimport { Settings, SettingsService, settingsServiceFactory } from './settings';\r\nimport { LocalStoreManager } from './shared/services/local-store-manager.service';\r\nimport { AppRoutingModule } from './routing/app-routing.module';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { AuthModule } from './core/auth';\r\nimport { CoreModule } from './core/core.module';\r\nimport { CountryFlagComponent } from './shared/components/country-flag/country-flag.component';\r\nimport { ReportFilterModule } from './report-filters/report-filters.module';\r\nimport { SharedModule } from './shared/shared.module';\r\n\r\n// App - Specific\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\n\r\n// Third Party\r\nimport { TranslatesModule } from './modules/translate/translates.module'\r\nimport { BootstrapModule } from './modules/bootstrap/bootstrap.module'\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { LoadingModule, ANIMATION_TYPES } from 'ngx-loading';\r\n//import { AngularStickyThingsModule } from '@w11k/angular-sticky-things';\r\n\r\nimport { WindowRef, _window } from './shared/services/window.token';\r\n\r\nimport { StickyHeaderDirective } from './shared/layout/header/sticky-header.directive';\r\nimport { DecimalPipe } from '@angular/common';\r\n\r\nimport { DerivativeSearchService } from './core/data/derivative-search.service';\r\nimport { DerivativeSearchToken, SimilarSearchToken } from 'vehicle-search';\r\n\r\nconst DIRECTIVES = [StickyHeaderDirective, StickyHeaderDirective];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n HomeComponent,\r\n SidebarComponent,\r\n //GroupByPipe,\r\n ...DIRECTIVES,\r\n CountryFlagComponent,\r\n ],\r\n\r\n imports: [\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n BrowserModule,\r\n CoreModule,\r\n SharedModule,\r\n HttpClientModule, // import HttpClientModule after BrowserModule\r\n LoadingModule.forRoot({\r\n fullScreenBackdrop: true,\r\n animationType: ANIMATION_TYPES.circle,\r\n primaryColour: '#e56c0c',\r\n\r\n backdropBorderRadius: '4px'\r\n }),\r\n ToastrModule.forRoot(),\r\n AuthModule.forRoot(),\r\n TranslatesModule,\r\n BootstrapModule, ReportFilterModule\r\n //AngularStickyThingsModule,\r\n ],\r\n\r\n //every provider registered within an NgModule will be accessible in the entire application.\r\n //a provider registered in an application component is available only on that component and all its children.\r\n providers: [\r\n //https://juristr.com/blog/2018/01/ng-app-runtime-config/\r\n { provide: APP_INITIALIZER, useFactory: settingsServiceFactory, deps: [SettingsService, LocalStoreManager, Settings, HttpClient], multi: true },\r\n Settings,\r\n { provide: WindowRef, useFactory: _window },\r\n { provide: DerivativeSearchToken, useClass: DerivativeSearchService/*, deps: [HttpClient, LoginService]*/ },\r\n { provide: SimilarSearchToken, useExisting: DerivativeSearchService },\r\n DecimalPipe\r\n ],\r\n\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, HostListener } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { Observable, merge } from 'rxjs';\r\nimport { tap, filter, map, switchMap } from 'rxjs/operators';\r\nimport { debugToConsole } from './shared/dev/debug-operator';\r\n\r\nimport { Direction } from './shared/layout/header/sticky-header.directive';\r\n\r\n// Third Party\r\nimport { TranslateModule, TranslateService, TranslatePipe, TranslateDirective } from '@ngx-translate/core';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n isSideBarOpen: boolean = true;\r\n onSibarOpenEvent = (args: boolean) => {\r\n this.isSideBarOpen = args;\r\n }\r\n\r\n isTopMost: boolean = false;\r\n directionHandler$ = (direction$: Observable) =>\r\n direction$.pipe(\r\n //debugToConsole(\"direction$:\"),\r\n tap((event) => {\r\n this.isTopMost = event === Direction.Down;\r\n }),\r\n )\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title,\r\n private translateService: TranslateService\r\n ) {\r\n //Note; translate Service required minimum settings! \r\n translateService.addLangs(['en'/*, 'ru'*/]);\r\n translateService.setDefaultLang('en');\r\n\r\n // this language will be used as a fallback when a translation isn't found in the current language\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n translateService.use('en');//http://localhost:4200/assets/i18n/en.json\r\n\r\n //translate.get('HELLO', { value: 'world' }).subscribe((res: string) => {\r\n // console.log(res);\r\n // //=> 'hello world'\r\n //});\r\n\r\n // Change page title\r\n const onNavigationEnd = this.router.events.pipe(filter(event => event instanceof NavigationEnd));\r\n merge(this.translateService.onLangChange, onNavigationEnd)\r\n .pipe(\r\n map(() => {\r\n let route = this.activatedRoute;\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n //console.log(\"route.outlet - \", route.outlet);\r\n //console.log(\"route.url - \", route.toString());\r\n\r\n return route;\r\n }),\r\n //filter(route => route.outlet === 'primary'),\r\n switchMap(route => route.data),\r\n )\r\n .subscribe(event => {\r\n //console.log(\"NavigationEnd: event - \", event);\r\n\r\n const title = event.title;\r\n if (title) {\r\n this.titleService.setTitle(this.translateService.instant(title));\r\n }\r\n });\r\n\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { LoginService } from '@app/core/auth';\r\n\r\n@Component({\r\n //selector: 'lud-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class HomeComponent implements OnInit, OnDestroy {\r\n static route = '';\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private readonly loginService: LoginService,\r\n private readonly router: Router,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.subscriptions.push(\r\n this.loginService.userProfile$\r\n .subscribe(userProfile => {\r\n if (userProfile && this.router.url === '/') {\r\n this.router.navigate(['/dashboard']);\r\n }\r\n })\r\n );\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"./home.component.scss.ngstyle\";\nimport * as i1 from \"@angular/core\";\nimport * as i2 from \"@ngx-translate/core\";\nimport * as i3 from \"./home.component\";\nimport * as i4 from \"../core/auth/login.service\";\nimport * as i5 from \"@angular/router\";\nvar styles_HomeComponent = [i0.styles];\nvar RenderType_HomeComponent = i1.ɵcrt({ encapsulation: 2, styles: styles_HomeComponent, data: {} });\nexport { RenderType_HomeComponent as RenderType_HomeComponent };\nexport function View_HomeComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 3, \"div\", [[\"class\", \"welcome-strip\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 2, \"h2\", [], null, null, null, null, null)), (_l()(), i1.ɵted(2, null, [\"\", \"\"])), i1.ɵpid(131072, i2.TranslatePipe, [i2.TranslateService, i1.ChangeDetectorRef]), (_l()(), i1.ɵeld(4, 0, null, null, 1, \"div\", [[\"class\", \"no-nav-back_old\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(5, 0, null, null, 0, \"div\", [[\"class\", \"col-xs-12 noPad\"]], null, null, null, null, null))], null, function (_ck, _v) { var currVal_0 = i1.ɵunv(_v, 2, 0, i1.ɵnov(_v, 3).transform(\"App.Name.ResidualValueTracker\")); _ck(_v, 2, 0, currVal_0); }); }\nexport function View_HomeComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, \"ng-component\", [], null, null, null, View_HomeComponent_0, RenderType_HomeComponent)), i1.ɵdid(1, 245760, null, 0, i3.HomeComponent, [i4.LoginService, i5.Router], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar HomeComponentNgFactory = i1.ɵccf(\"ng-component\", i3.HomeComponent, View_HomeComponent_Host_0, {}, {}, []);\nexport { HomeComponentNgFactory as HomeComponentNgFactory };\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nvar styles = [\"\"];\nexport { styles as styles };\n","
\r\n

{{ 'App.Name.ResidualValueTracker' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./no-access.component\";\nvar styles_NoAccessComponent = [];\nvar RenderType_NoAccessComponent = i0.ɵcrt({ encapsulation: 2, styles: styles_NoAccessComponent, data: {} });\nexport { RenderType_NoAccessComponent as RenderType_NoAccessComponent };\nexport function View_NoAccessComponent_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 2, \"div\", [[\"class\", \"welcome-strip\"]], null, null, null, null, null)), (_l()(), i0.ɵeld(1, 0, null, null, 1, \"h2\", [], null, null, null, null, null)), (_l()(), i0.ɵted(-1, null, [\"You are not authorised to use this product.\"]))], null, null); }\nexport function View_NoAccessComponent_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"no-access\", [], null, null, null, View_NoAccessComponent_0, RenderType_NoAccessComponent)), i0.ɵdid(1, 49152, null, 0, i1.NoAccessComponent, [], null, null)], null, null); }\nvar NoAccessComponentNgFactory = i0.ɵccf(\"no-access\", i1.NoAccessComponent, View_NoAccessComponent_Host_0, {}, {}, []);\nexport { NoAccessComponentNgFactory as NoAccessComponentNgFactory };\n","

You are not authorised to use this product.

","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"./header.component.scss.ngstyle\";\nimport * as i1 from \"@angular/core\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"ngx-bootstrap/dropdown\";\nimport * as i4 from \"ngx-bootstrap/component-loader\";\nimport * as i5 from \"@angular/animations\";\nimport * as i6 from \"./header.component\";\nimport * as i7 from \"../../../core/auth/login.service\";\nimport * as i8 from \"../../../settings/settings.service\";\nvar styles_HeaderComponent = [i0.styles];\nvar RenderType_HeaderComponent = i1.ɵcrt({ encapsulation: 2, styles: styles_HeaderComponent, data: {} });\nexport { RenderType_HeaderComponent as RenderType_HeaderComponent };\nfunction View_HeaderComponent_3(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, \"a\", [[\"class\", \"pointer\"]], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.login() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵted(-1, null, [\"Sign In\"]))], null, null); }\nfunction View_HeaderComponent_4(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, \"a\", [[\"class\", \"pointer\"]], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.logout() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵted(-1, null, [\"Sign Out\"]))], null, null); }\nfunction View_HeaderComponent_2(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 4, \"ul\", [[\"class\", \"dropdown-menu dropdown-arrow-right\"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_3)), i1.ɵdid(2, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_4)), i1.ɵdid(4, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = !_co.isLoggedIn; _ck(_v, 2, 0, currVal_0); var currVal_1 = _co.isLoggedIn; _ck(_v, 4, 0, currVal_1); }, null); }\nfunction View_HeaderComponent_1(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 8, \"ul\", [[\"class\", \"nav navbar-nav navbar-right navbar-toggle_old visible-xs\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 16777216, null, null, 7, \"li\", [[\"class\", \"dropdown\"], [\"dropdown\", \"\"]], [[2, \"dropup\", null], [2, \"open\", null], [2, \"show\", null]], null, null, null, null)), i1.ɵprd(512, null, i3.BsDropdownState, i3.BsDropdownState, []), i1.ɵdid(3, 212992, null, 0, i3.BsDropdownDirective, [i1.ElementRef, i1.Renderer2, i1.ViewContainerRef, i4.ComponentLoaderFactory, i3.BsDropdownState, i3.BsDropdownConfig, i5.AnimationBuilder], null, null), (_l()(), i1.ɵeld(4, 0, null, null, 2, \"a\", [[\"aria-expanded\", \"false\"], [\"aria-haspopup\", \"true\"], [\"class\", \"dropdown-toggle\"], [\"data-toggle\", \"dropdown\"], [\"dropdownToggle\", \"\"], [\"role\", \"button\"]], [[1, \"aria-haspopup\", 0], [1, \"disabled\", 0], [1, \"aria-expanded\", 0]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 5).onClick() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(5, 147456, null, 0, i3.BsDropdownToggleDirective, [i1.ChangeDetectorRef, i3.BsDropdownDirective, i1.ElementRef, i1.Renderer2, i3.BsDropdownState], null, null), (_l()(), i1.ɵeld(6, 0, null, null, 0, \"img\", [[\"aria-hidden\", \"true\"], [\"src\", \"//bootstrap.cap-hpi.com/v2.0.0/img/user.png\"], [\"width\", \"24\"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_2)), i1.ɵdid(8, 16384, null, 0, i3.BsDropdownMenuDirective, [i3.BsDropdownState, i1.ViewContainerRef, i1.TemplateRef], null, null)], function (_ck, _v) { _ck(_v, 3, 0); }, function (_ck, _v) { var currVal_0 = i1.ɵnov(_v, 3).dropup; var currVal_1 = i1.ɵnov(_v, 3).isOpen; var currVal_2 = (i1.ɵnov(_v, 3).isOpen && i1.ɵnov(_v, 3).isBs4); _ck(_v, 1, 0, currVal_0, currVal_1, currVal_2); var currVal_3 = true; var currVal_4 = i1.ɵnov(_v, 5).isDisabled; var currVal_5 = i1.ɵnov(_v, 5).isOpen; _ck(_v, 4, 0, currVal_3, currVal_4, currVal_5); }); }\nfunction View_HeaderComponent_5(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, \"div\", [[\"class\", \"visible-xs\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, \"div\", [[\"class\", \"text-primary\"], [\"style\", \"padding: 10px; background-color: #000\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"residual value tracker\"]))], null, null); }\nfunction View_HeaderComponent_8(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, \"a\", [[\"class\", \"pointer\"]], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.login() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵted(-1, null, [\"LogIn\"]))], null, null); }\nfunction View_HeaderComponent_9(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, \"a\", [[\"class\", \"pointer\"]], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.logout() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵted(-1, null, [\"LogOut\"]))], null, null); }\nfunction View_HeaderComponent_7(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 4, \"ul\", [[\"class\", \"dropdown-menu dropdown-arrow-right\"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_8)), i1.ɵdid(2, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_9)), i1.ɵdid(4, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = !_co.isLoggedIn; _ck(_v, 2, 0, currVal_0); var currVal_1 = _co.isLoggedIn; _ck(_v, 4, 0, currVal_1); }, null); }\nfunction View_HeaderComponent_6(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 8, \"ul\", [[\"class\", \"nav navbar-nav navbar-right hidden-xs\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 16777216, null, null, 7, \"li\", [[\"class\", \"dropdown\"], [\"dropdown\", \"\"]], [[2, \"dropup\", null], [2, \"open\", null], [2, \"show\", null]], null, null, null, null)), i1.ɵprd(512, null, i3.BsDropdownState, i3.BsDropdownState, []), i1.ɵdid(3, 212992, null, 0, i3.BsDropdownDirective, [i1.ElementRef, i1.Renderer2, i1.ViewContainerRef, i4.ComponentLoaderFactory, i3.BsDropdownState, i3.BsDropdownConfig, i5.AnimationBuilder], null, null), (_l()(), i1.ɵeld(4, 0, null, null, 2, \"a\", [[\"aria-expanded\", \"false\"], [\"aria-haspopup\", \"true\"], [\"class\", \"dropdown-toggle\"], [\"data-toggle\", \"dropdown\"], [\"dropdownToggle\", \"\"], [\"role\", \"button\"]], [[1, \"aria-haspopup\", 0], [1, \"disabled\", 0], [1, \"aria-expanded\", 0]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 5).onClick() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(5, 147456, null, 0, i3.BsDropdownToggleDirective, [i1.ChangeDetectorRef, i3.BsDropdownDirective, i1.ElementRef, i1.Renderer2, i3.BsDropdownState], null, null), (_l()(), i1.ɵeld(6, 0, null, null, 0, \"img\", [[\"aria-hidden\", \"true\"], [\"src\", \"//bootstrap.cap-hpi.com/v2.0.0/img/user.png\"], [\"width\", \"24\"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_7)), i1.ɵdid(8, 16384, null, 0, i3.BsDropdownMenuDirective, [i3.BsDropdownState, i1.ViewContainerRef, i1.TemplateRef], null, null)], function (_ck, _v) { _ck(_v, 3, 0); }, function (_ck, _v) { var currVal_0 = i1.ɵnov(_v, 3).dropup; var currVal_1 = i1.ɵnov(_v, 3).isOpen; var currVal_2 = (i1.ɵnov(_v, 3).isOpen && i1.ɵnov(_v, 3).isBs4); _ck(_v, 1, 0, currVal_0, currVal_1, currVal_2); var currVal_3 = true; var currVal_4 = i1.ɵnov(_v, 5).isDisabled; var currVal_5 = i1.ɵnov(_v, 5).isOpen; _ck(_v, 4, 0, currVal_3, currVal_4, currVal_5); }); }\nexport function View_HeaderComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 23, \"header\", [[\"class\", \"page-header\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 22, \"nav\", [[\"class\", \"navbar\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 21, \"div\", [[\"class\", \"container-fluid\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(3, 0, null, null, 6, \"h1\", [[\"class\", \"brand\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(4, 0, null, null, 0, \"img\", [[\"src\", \"/assets/logo.png\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(5, 0, null, null, 1, \"span\", [[\"class\", \"sr-only\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"cap hpi\"])), (_l()(), i1.ɵeld(7, 0, null, null, 2, \"span\", [[\"class\", \"title-text\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(8, 0, null, null, 1, \"span\", [[\"class\", \"visible-md visible-lg\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"residual value tracker\"])), (_l()(), i1.ɵeld(10, 0, null, null, 9, \"div\", [[\"class\", \"navbar-header\"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_1)), i1.ɵdid(12, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵeld(13, 0, null, null, 6, \"button\", [[\"class\", \"navbar-toggle\"], [\"type\", \"button\"]], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = ((_co.isCollapsed = !_co.isCollapsed) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵprd(512, null, i2.ɵNgClassImpl, i2.ɵNgClassR2Impl, [i1.IterableDiffers, i1.KeyValueDiffers, i1.ElementRef, i1.Renderer2]), i1.ɵdid(15, 278528, null, 0, i2.NgClass, [i2.ɵNgClassImpl], { klass: [0, \"klass\"], ngClass: [1, \"ngClass\"] }, null), i1.ɵpod(16, { \"navbar-toggle--opened\": 0 }), (_l()(), i1.ɵeld(17, 0, null, null, 0, \"span\", [[\"class\", \"icon-bar\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(18, 0, null, null, 0, \"span\", [[\"class\", \"icon-bar\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(19, 0, null, null, 0, \"span\", [[\"class\", \"icon-bar\"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_5)), i1.ɵdid(21, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_HeaderComponent_6)), i1.ɵdid(23, 16384, null, 0, i2.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵeld(24, 0, null, null, 3, \"div\", [[\"class\", \"black-overlay\"]], null, null, null, null, null)), i1.ɵprd(512, null, i2.ɵNgClassImpl, i2.ɵNgClassR2Impl, [i1.IterableDiffers, i1.KeyValueDiffers, i1.ElementRef, i1.Renderer2]), i1.ɵdid(26, 278528, null, 0, i2.NgClass, [i2.ɵNgClassImpl], { klass: [0, \"klass\"], ngClass: [1, \"ngClass\"] }, null), i1.ɵpod(27, { \"black-overlay--opened\": 0 })], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.useIdentityServer; _ck(_v, 12, 0, currVal_0); var currVal_1 = \"navbar-toggle\"; var currVal_2 = _ck(_v, 16, 0, _co.isCollapsed); _ck(_v, 15, 0, currVal_1, currVal_2); var currVal_3 = _co.isCollapsed; _ck(_v, 21, 0, currVal_3); var currVal_4 = _co.useIdentityServer; _ck(_v, 23, 0, currVal_4); var currVal_5 = \"black-overlay\"; var currVal_6 = _ck(_v, 27, 0, _co.isCollapsed); _ck(_v, 26, 0, currVal_5, currVal_6); }, null); }\nexport function View_HeaderComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, \"lud-header\", [], null, null, null, View_HeaderComponent_0, RenderType_HeaderComponent)), i1.ɵdid(1, 114688, null, 0, i6.HeaderComponent, [i7.LoginService, i8.SettingsService], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar HeaderComponentNgFactory = i1.ɵccf(\"lud-header\", i6.HeaderComponent, View_HeaderComponent_Host_0, {}, {}, []);\nexport { HeaderComponentNgFactory as HeaderComponentNgFactory };\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nvar styles = [\".page-header{opacity:1;-ms-transform:translateY(0);transform:translateY(0);transition:transform ease .5s,opacity ease .5s}.page-header .brand{margin-top:10px}.page-header .brand img{width:200px;padding-top:5px}.is-inactive{opacity:0;-ms-transform:translateY(-100%);transform:translateY(-100%)}\"];\nexport { styles as styles };\n","\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n","import { Routes } from '@angular/router';\nimport { HomeComponent } from '../home/home.component';\nimport { NoAccessComponent, PageNotFoundComponent } from '../shared';\nimport { AuthGuard, HasAccessGuard } from '../core';\nconst ɵ0 = { title: \"PageTitle.Home\" }, ɵ1 = () => import(\"./../pages/dashboard/dashboard.module.ngfactory\").then(m => m.DashboardModuleNgFactory), ɵ2 = { title: \"PageTitle.Dashboard\", preload: true }, ɵ3 = () => import(\"./../pages/baskets/baskets.module.ngfactory\").then(m => m.BasketsModuleNgFactory), ɵ4 = { title: \"PageTitle.Baskets\", preload: true }, ɵ5 = () => import(\"./../pages/vehicles/vehicles.module.ngfactory\").then(m => m.VehiclesModuleNgFactory), ɵ6 = { title: \"PageTitle.FindVehicle\", preload: true }, ɵ7 = () => import(\"./../pages/related/related.module.ngfactory\").then(m => m.RelatedModuleNgFactory), ɵ8 = { title: \"PageTitle.FindVehicle\", preload: true }, ɵ9 = () => import(\"./../pages/reports/reports.module.ngfactory\").then(m => m.ReportsModuleNgFactory), ɵ10 = { title: \"PageTitle.Reports\", preload: true }, ɵ11 = () => import(\"./../pages/admin/admin.module.ngfactory\").then(m => m.AdminModuleNgFactory), ɵ12 = { title: \"PageTitle.Admin\", preload: false }, ɵ13 = () => import(\"./../pages/charts/charts.module.ngfactory\").then(m => m.ChartsModuleNgFactory), ɵ14 = { title: \"PageTitle.Charts\", preload: true }, ɵ15 = () => import(\"./../pages/privacynotice/privacynotice.module.ngfactory\").then(m => m.PrivacyNoticeModuleNgFactory), ɵ16 = { title: \"Pagetitle.privacyNotice\", preload: true }, ɵ17 = { title: \"PageTitle.PageNotFound\" };\nconst appRoutes = [\n { path: HomeComponent.route, component: HomeComponent, pathMatch: 'full', data: ɵ0 },\n //{ path: '', redirectTo: HomeComponent.route, pathMatch: 'full' },//not use, because PageNotFound\n //Lazy Loading Reports Modules\n //Note: keep path in sync with sidebar\n // keep loadChildren in sync with module's file location\n {\n path: 'dashboard', loadChildren: ɵ1,\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: ɵ2\n },\n {\n path: 'baskets', loadChildren: ɵ3,\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: ɵ4\n },\n {\n path: 'find-vehicles', loadChildren: ɵ5,\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: ɵ6\n },\n {\n path: 'related', loadChildren: ɵ7,\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: ɵ8\n },\n {\n path: 'reports', loadChildren: ɵ9,\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: ɵ10\n },\n {\n path: 'admin', loadChildren: ɵ11,\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard], canActivateChild: [AuthGuard], data: ɵ12\n },\n {\n path: 'charts', loadChildren: ɵ13, data: ɵ14\n },\n //{ path: 'unauthorised', component: UnauthorisedComponent },\n { path: NoAccessComponent.route, component: NoAccessComponent },\n { path: 'privacyNotice',\n loadChildren: ɵ15, data: ɵ16\n },\n //Note: keep it last ( no default view )\n { path: PageNotFoundComponent.route /* '**' */, component: PageNotFoundComponent, data: ɵ17 },\n];\nexport class AppRoutingModule {\n}\nexport const routableComponents = [\n HomeComponent,\n];\nexport { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7, ɵ8, ɵ9, ɵ10, ɵ11, ɵ12, ɵ13, ɵ14, ɵ15, ɵ16, ɵ17 };\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { HomeComponent } from '../home/home.component';\r\nimport { NoAccessComponent, PageNotFoundComponent } from '../shared';\r\n\r\nimport { AuthGuard, MustBeAdminGuardService, MustBeLoggedInGuardService, HasAccessGuard, CustomPreloader } from '../core';\r\n\r\nconst appRoutes: Routes = [\r\n { path: HomeComponent.route, component: HomeComponent, pathMatch: 'full', data: { title: \"PageTitle.Home\" } },\r\n //{ path: '', redirectTo: HomeComponent.route, pathMatch: 'full' },//not use, because PageNotFound\r\n\r\n //Lazy Loading Reports Modules\r\n //Note: keep path in sync with sidebar\r\n // keep loadChildren in sync with module's file location\r\n {\r\n path: 'dashboard', loadChildren: () => import('../pages/dashboard/dashboard.module').then(m => m.DashboardModule),\r\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: { title: \"PageTitle.Dashboard\", preload: true }\r\n },\r\n {\r\n path: 'baskets', loadChildren: () => import('../pages/baskets/baskets.module').then(m => m.BasketsModule),\r\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: { title: \"PageTitle.Baskets\", preload: true }\r\n },\r\n {\r\n path: 'find-vehicles', loadChildren: () => import('../pages/vehicles/vehicles.module').then(m => m.VehiclesModule),\r\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: { title: \"PageTitle.FindVehicle\", preload: true }\r\n },\r\n {\r\n path: 'related', loadChildren: () => import('../pages/related/related.module').then(m => m.RelatedModule),\r\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: { title: \"PageTitle.FindVehicle\", preload: true }\r\n },\r\n {\r\n path: 'reports', loadChildren: () => import('../pages/reports/reports.module').then(m => m.ReportsModule),\r\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard, HasAccessGuard], canActivateChild: [AuthGuard], data: { title: \"PageTitle.Reports\", preload: true }\r\n },\r\n {\r\n path: 'admin', loadChildren: () => import('../pages/admin/admin.module').then(m => m.AdminModule),\r\n /*canLoad: [AuthGuard, HasAccessGuard],*/ canActivate: [AuthGuard], canActivateChild: [AuthGuard], data: { title: \"PageTitle.Admin\", preload: false }\r\n },\r\n\r\n { // hidden for test purposes\r\n path: 'charts', loadChildren: () => import('../pages/charts/charts.module').then(m => m.ChartsModule), data: { title: \"PageTitle.Charts\", preload: true }\r\n },\r\n\r\n //{ path: 'unauthorised', component: UnauthorisedComponent },\r\n { path: NoAccessComponent.route, component: NoAccessComponent },\r\n\r\n { path: 'privacyNotice', \r\n loadChildren: () => import('../pages/privacynotice/privacynotice.module').then(m => m.PrivacyNoticeModule), data: { title: \"Pagetitle.privacyNotice\", preload: true }\r\n },\r\n\r\n //Note: keep it last ( no default view )\r\n { path: PageNotFoundComponent.route/* '**' */, component: PageNotFoundComponent, data: { title: \"PageTitle.PageNotFound\" } },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule,\r\n RouterModule.forRoot(appRoutes, {\r\n preloadingStrategy: CustomPreloader,\r\n //onSameUrlNavigation: 'reload'\r\n //relativeLinkResolution: 'corrected'\r\n })\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class AppRoutingModule { }\r\n\r\nexport const routableComponents = [\r\n HomeComponent,\r\n //Lazy Loaded\r\n];\r\n","import { Component, OnInit, Output, OnDestroy, EventEmitter } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { debugToConsole } from '../shared/dev/debug-operator';\r\n\r\nimport { LoginService, Profile } from '../core/auth';\r\n\r\nimport { Settings, SettingsService } from '../settings';\r\nimport { UserService } from '../core/data/user.service';\r\nimport { FileSaverService } from '../core/data/file-saver.service';\r\n\r\nimport { Direction } from '../shared/layout/header/sticky-header.directive';\r\nimport { FilterModel } from '../models';\r\n\r\nimport { routableComponents } from '../routing/app-routing.module';\r\n\r\n@Component({\r\n selector: 'lud-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class SidebarComponent implements OnInit, OnDestroy {\r\n isDevDebug: boolean;\r\n\r\n routableComponents = routableComponents;\r\n\r\n private subscription: Subscription;\r\n useIdentityServer: boolean;\r\n\r\n // private isAuthorizedSubscription: Subscription = new Subscription();\r\n // public isAuthorized: boolean = false;\r\n public isDevTest: boolean;\r\n public isAdmin$: Observable;\r\n\r\n // hidden feature\r\n debugData: any;\r\n\r\n isOpen = true;\r\n @Output() onSibarOpenEvent = new EventEmitter();\r\n\r\n isTopMost = false;\r\n directionHandler$ = (direction$: Observable) =>\r\n direction$.pipe(\r\n // debugToConsole(\"direction$:\"),\r\n tap((event) => {\r\n this.isTopMost = event === Direction.Down;\r\n }),\r\n )\r\n\r\n onPageYOffsetEvent = (args: any) => {\r\n if (this.isDevDebug) {\r\n this.debugData = args;\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly loginService: LoginService,\r\n private readonly userService: UserService,\r\n private readonly fileSaverService: FileSaverService,\r\n private settingsService: SettingsService,\r\n private route: ActivatedRoute\r\n ) {\r\n const settings = settingsService.get();\r\n this.useIdentityServer = settings.useIdentityServer;\r\n this.isDevTest = settings.showDevMenu;\r\n }\r\n\r\n ngOnInit() {\r\n this.isAdmin$ = this.userService.isAdmin; // requestIsAdmin();\r\n\r\n // this.subscription = this.loginService.userProfile$\r\n // //.debug(\"Loading userProfile from sidebar\")\r\n // .subscribe(userProfile => {\r\n //\r\n // if (userProfile) {\r\n // this.isAdmin$ = this.userService.IsAdmin;//requestIsAdmin();\r\n // }\r\n // });\r\n\r\n this.subscription = this.route.queryParams.subscribe(params => {\r\n this.isDevDebug = params['isDevDebug'];\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n public login() {\r\n this.loginService.login();\r\n }\r\n\r\n public logout() {\r\n this.loginService.logout();\r\n }\r\n\r\n public get isLoggedIn() {\r\n return this.loginService.isLoggedIn;\r\n }\r\n\r\n downloadTest() {\r\n const filterModel = FilterModel.empty();\r\n const nowDateValue = new Date();\r\n const minRangeDate = new Date();\r\n minRangeDate.setMonth(minRangeDate.getMonth() - 12);\r\n\r\n filterModel.subFleetId = this.settingsService.subFleetId;\r\n filterModel.dateStart = nowDateValue;\r\n filterModel.dateEnd = minRangeDate;\r\n\r\n //this.fileSaverService.downloadFile('testReportName', filterModel);\r\n //\r\n // this.fileSaverService.downloadFileWithAuth('sampleReportName', filterModel).subscribe(\r\n // (response) => {\r\n // console.log('OK');\r\n //\r\n // //const blob = new Blob([response], { type: 'text/csv' });\r\n // //const url = window.URL.createObjectURL(blob);\r\n // //window.open(url);\r\n //\r\n // //const fileName = this.fileSaverService.getFilenameFromResponse(response);\r\n // //FileSaver.saveAs(response.blob(), fileName);\r\n // },\r\n // (error) => console.log(error)\r\n // );\r\n }\r\n}\r\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"./sidebar.component.scss.shim.ngstyle\";\nimport * as i1 from \"@angular/core\";\nimport * as i2 from \"@angular/router\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"./sidebar.component\";\nimport * as i5 from \"../core/auth/login.service\";\nimport * as i6 from \"../core/data/user.service\";\nimport * as i7 from \"../core/data/file-saver.service\";\nimport * as i8 from \"../settings/settings.service\";\nvar styles_SidebarComponent = [i0.styles];\nvar RenderType_SidebarComponent = i1.ɵcrt({ encapsulation: 0, styles: styles_SidebarComponent, data: {} });\nexport { RenderType_SidebarComponent as RenderType_SidebarComponent };\nfunction View_SidebarComponent_1(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 33, null, null, null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 10, \"li\", [], null, null, null, null, null)), i1.ɵdid(2, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 3, { links: 1 }), i1.ɵqud(603979776, 4, { linksWithHrefs: 1 }), i1.ɵpad(5, 1), (_l()(), i1.ɵeld(6, 0, null, null, 5, \"a\", [[\"title\", \"Find Vehicle\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 7).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(7, 671744, [[4, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(8, 1), (_l()(), i1.ɵeld(9, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-fw fa-search\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(10, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Find Vehicle\"])), (_l()(), i1.ɵeld(12, 0, null, null, 10, \"li\", [], null, null, null, null, null)), i1.ɵdid(13, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 5, { links: 1 }), i1.ɵqud(603979776, 6, { linksWithHrefs: 1 }), i1.ɵpad(16, 1), (_l()(), i1.ɵeld(17, 0, null, null, 5, \"a\", [[\"title\", \"Baskets\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 18).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(18, 671744, [[6, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(19, 1), (_l()(), i1.ɵeld(20, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-fw fa-layer-group\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(21, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Baskets\"])), (_l()(), i1.ɵeld(23, 0, null, null, 10, \"li\", [], null, null, null, null, null)), i1.ɵdid(24, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 7, { links: 1 }), i1.ɵqud(603979776, 8, { linksWithHrefs: 1 }), i1.ɵpad(27, 1), (_l()(), i1.ɵeld(28, 0, null, null, 5, \"a\", [[\"title\", \"Reports\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 29).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(29, 671744, [[8, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(30, 1), (_l()(), i1.ɵeld(31, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-fw fa-clipboard-list\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(32, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Reports\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 5, 0, \"active\"); _ck(_v, 2, 0, currVal_0); var currVal_3 = _ck(_v, 8, 0, \"/find-vehicles\"); _ck(_v, 7, 0, currVal_3); var currVal_4 = _ck(_v, 16, 0, \"active\"); _ck(_v, 13, 0, currVal_4); var currVal_7 = _ck(_v, 19, 0, \"/baskets/basket-list\"); _ck(_v, 18, 0, currVal_7); var currVal_8 = _ck(_v, 27, 0, \"active\"); _ck(_v, 24, 0, currVal_8); var currVal_11 = _ck(_v, 30, 0, \"/reports\"); _ck(_v, 29, 0, currVal_11); }, function (_ck, _v) { var currVal_1 = i1.ɵnov(_v, 7).target; var currVal_2 = i1.ɵnov(_v, 7).href; _ck(_v, 6, 0, currVal_1, currVal_2); var currVal_5 = i1.ɵnov(_v, 18).target; var currVal_6 = i1.ɵnov(_v, 18).href; _ck(_v, 17, 0, currVal_5, currVal_6); var currVal_9 = i1.ɵnov(_v, 29).target; var currVal_10 = i1.ɵnov(_v, 29).href; _ck(_v, 28, 0, currVal_9, currVal_10); }); }\nfunction View_SidebarComponent_2(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 11, null, null, null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 10, \"li\", [[\"class\", \"sidebar-new-section\"]], null, null, null, null, null)), i1.ɵdid(2, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 9, { links: 1 }), i1.ɵqud(603979776, 10, { linksWithHrefs: 1 }), i1.ɵpad(5, 1), (_l()(), i1.ɵeld(6, 0, null, null, 5, \"a\", [[\"title\", \"Admin Menu\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 7).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(7, 671744, [[10, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(8, 1), (_l()(), i1.ɵeld(9, 0, null, null, 0, \"i\", [[\"class\", \"fas fa-user-cog\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(10, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Admin Menu\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 5, 0, \"active\"); _ck(_v, 2, 0, currVal_0); var currVal_3 = _ck(_v, 8, 0, \"/admin\"); _ck(_v, 7, 0, currVal_3); }, function (_ck, _v) { var currVal_1 = i1.ɵnov(_v, 7).target; var currVal_2 = i1.ɵnov(_v, 7).href; _ck(_v, 6, 0, currVal_1, currVal_2); }); }\nfunction View_SidebarComponent_3(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 43, null, null, null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 10, \"li\", [[\"class\", \"sidebar-new-section\"]], null, null, null, null, null)), i1.ɵdid(2, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 11, { links: 1 }), i1.ɵqud(603979776, 12, { linksWithHrefs: 1 }), i1.ɵpad(5, 1), (_l()(), i1.ɵeld(6, 0, null, null, 5, \"a\", [[\"title\", \"Restricted\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 7).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(7, 671744, [[12, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(8, 1), (_l()(), i1.ɵeld(9, 0, null, null, 0, \"i\", [[\"class\", \"fa fa-fw fa-plus-circle\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(10, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Restricted\"])), (_l()(), i1.ɵeld(12, 0, null, null, 4, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(13, 0, null, null, 3, \"a\", [[\"href\", \"https://bootstrap.cap-hpi.com/v3\"], [\"rel\", \"noopener\"], [\"target\", \"_blank\"], [\"title\", \"cap hpi bootstrap V3 Template\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(14, 0, null, null, 0, \"i\", [[\"class\", \"fa fa-fw fa-list\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(15, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"bs Template\"])), (_l()(), i1.ɵeld(17, 0, null, null, 4, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(18, 0, null, null, 3, \"a\", [[\"href\", \"https://bootstrap.cap-hpi.com/v3/default/Demo/LayoutComplete\"], [\"rel\", \"noopener\"], [\"target\", \"_blank\"], [\"title\", \"cap hpi bootstrap V3 Demo\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(19, 0, null, null, 0, \"i\", [[\"class\", \"fa fa-fw fa-list\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(20, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Demo\"])), (_l()(), i1.ɵeld(22, 0, null, null, 10, \"li\", [], null, null, null, null, null)), i1.ɵdid(23, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 13, { links: 1 }), i1.ɵqud(603979776, 14, { linksWithHrefs: 1 }), i1.ɵpad(26, 1), (_l()(), i1.ɵeld(27, 0, null, null, 5, \"a\", [[\"title\", \"Sample page\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 28).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(28, 671744, [[14, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(29, 1), (_l()(), i1.ɵeld(30, 0, null, null, 0, \"i\", [[\"class\", \"fa fa-fw fa-home\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(31, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Sample page\"])), (_l()(), i1.ɵeld(33, 0, null, null, 10, \"li\", [], null, null, null, null, null)), i1.ɵdid(34, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 15, { links: 1 }), i1.ɵqud(603979776, 16, { linksWithHrefs: 1 }), i1.ɵpad(37, 1), (_l()(), i1.ɵeld(38, 0, null, null, 5, \"a\", [[\"title\", \"Highcharts\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 39).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(39, 671744, [[16, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(40, 1), (_l()(), i1.ɵeld(41, 0, null, null, 0, \"i\", [[\"class\", \"fa fa-fw fa-home\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(42, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Highcharts\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 5, 0, \"active\"); _ck(_v, 2, 0, currVal_0); var currVal_3 = _ck(_v, 8, 0, \"/fetch-data\"); _ck(_v, 7, 0, currVal_3); var currVal_4 = _ck(_v, 26, 0, \"active\"); _ck(_v, 23, 0, currVal_4); var currVal_7 = _ck(_v, 29, 0, \"/sample-page\"); _ck(_v, 28, 0, currVal_7); var currVal_8 = _ck(_v, 37, 0, \"active\"); _ck(_v, 34, 0, currVal_8); var currVal_11 = _ck(_v, 40, 0, \"/highcharts\"); _ck(_v, 39, 0, currVal_11); }, function (_ck, _v) { var currVal_1 = i1.ɵnov(_v, 7).target; var currVal_2 = i1.ɵnov(_v, 7).href; _ck(_v, 6, 0, currVal_1, currVal_2); var currVal_5 = i1.ɵnov(_v, 28).target; var currVal_6 = i1.ɵnov(_v, 28).href; _ck(_v, 27, 0, currVal_5, currVal_6); var currVal_9 = i1.ɵnov(_v, 39).target; var currVal_10 = i1.ɵnov(_v, 39).href; _ck(_v, 38, 0, currVal_9, currVal_10); }); }\nfunction View_SidebarComponent_4(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 4, \"li\", [[\"class\", \"sidebar-new-section\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 3, \"a\", [], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.downloadTest() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 0, \"i\", [[\"class\", \"fas fa-download\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(3, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"download\"]))], null, null); }\nfunction View_SidebarComponent_5(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 3, \"li\", [[\"class\", \"sidebar-new-section\"], [\"style\", \"color:yellow;line-height: 1;\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 2, \"div\", [], null, null, null, null, null)), (_l()(), i1.ɵted(2, null, [\"\", \"\"])), i1.ɵpid(0, i3.JsonPipe, [])], null, function (_ck, _v) { var _co = _v.component; var currVal_0 = i1.ɵunv(_v, 2, 0, i1.ɵnov(_v, 3).transform(_co.debugData)); _ck(_v, 2, 0, currVal_0); }); }\nfunction View_SidebarComponent_6(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 10, \"li\", [[\"class\", \"sidebar-new-section\"]], null, null, null, null, null)), i1.ɵdid(1, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 17, { links: 1 }), i1.ɵqud(603979776, 18, { linksWithHrefs: 1 }), i1.ɵpad(4, 1), (_l()(), i1.ɵeld(5, 0, null, null, 5, \"a\", [[\"title\", \"Settings\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 6).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(6, 671744, [[18, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(7, 1), (_l()(), i1.ɵeld(8, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-cog\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(9, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Settings\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 4, 0, \"active\"); _ck(_v, 1, 0, currVal_0); var currVal_3 = _ck(_v, 7, 0, \"/admin\"); _ck(_v, 6, 0, currVal_3); }, function (_ck, _v) { var currVal_1 = i1.ɵnov(_v, 6).target; var currVal_2 = i1.ɵnov(_v, 6).href; _ck(_v, 5, 0, currVal_1, currVal_2); }); }\nfunction View_SidebarComponent_7(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 8, \"li\", [], null, null, null, null, null)), i1.ɵdid(1, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 19, { links: 1 }), i1.ɵqud(603979776, 20, { linksWithHrefs: 1 }), i1.ɵpad(4, 1), (_l()(), i1.ɵeld(5, 0, null, null, 3, \"a\", [], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.login() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵeld(6, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-sign-in\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(7, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Sign In\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 4, 0, \"active\"); _ck(_v, 1, 0, currVal_0); }, null); }\nfunction View_SidebarComponent_8(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 10, \"li\", [], null, null, null, null, null)), i1.ɵdid(1, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 21, { links: 1 }), i1.ɵqud(603979776, 22, { linksWithHrefs: 1 }), i1.ɵpad(4, 1), (_l()(), i1.ɵeld(5, 0, null, null, 5, \"a\", [], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 6).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(6, 671744, [[22, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(7, 1), (_l()(), i1.ɵeld(8, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-file-alt\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(9, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Privacy Notice\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 4, 0, \"active\"); _ck(_v, 1, 0, currVal_0); var currVal_3 = _ck(_v, 7, 0, \"/privacyNotice\"); _ck(_v, 6, 0, currVal_3); }, function (_ck, _v) { var currVal_1 = i1.ɵnov(_v, 6).target; var currVal_2 = i1.ɵnov(_v, 6).href; _ck(_v, 5, 0, currVal_1, currVal_2); }); }\nfunction View_SidebarComponent_9(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 8, \"li\", [], null, null, null, null, null)), i1.ɵdid(1, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActive: [0, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 23, { links: 1 }), i1.ɵqud(603979776, 24, { linksWithHrefs: 1 }), i1.ɵpad(4, 1), (_l()(), i1.ɵeld(5, 0, null, null, 3, \"a\", [], null, [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co.logout() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i1.ɵeld(6, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-sign-out\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(7, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Sign Out\"]))], function (_ck, _v) { var currVal_0 = _ck(_v, 4, 0, \"active\"); _ck(_v, 1, 0, currVal_0); }, null); }\nexport function View_SidebarComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 39, \"nav\", [[\"class\", \"sidebar-view\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 23, \"ul\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 11, \"li\", [], null, null, null, null, null)), i1.ɵdid(3, 1720320, null, 2, i2.RouterLinkActive, [i2.Router, i1.ElementRef, i1.Renderer2, [2, i2.RouterLink], [2, i2.RouterLinkWithHref]], { routerLinkActiveOptions: [0, \"routerLinkActiveOptions\"], routerLinkActive: [1, \"routerLinkActive\"] }, null), i1.ɵqud(603979776, 1, { links: 1 }), i1.ɵqud(603979776, 2, { linksWithHrefs: 1 }), i1.ɵpod(6, { exact: 0 }), i1.ɵpad(7, 1), (_l()(), i1.ɵeld(8, 0, null, null, 5, \"a\", [[\"title\", \"Home\"]], [[1, \"target\", 0], [8, \"href\", 4]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; if ((\"click\" === en)) {\n var pd_0 = (i1.ɵnov(_v, 9).onClick($event.button, $event.ctrlKey, $event.metaKey, $event.shiftKey) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i1.ɵdid(9, 671744, [[2, 4]], 0, i2.RouterLinkWithHref, [i2.Router, i2.ActivatedRoute, i3.LocationStrategy], { routerLink: [0, \"routerLink\"] }, null), i1.ɵpad(10, 1), (_l()(), i1.ɵeld(11, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-fw fa-home\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(12, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Home\"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_1)), i1.ɵdid(15, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 2, null, View_SidebarComponent_2)), i1.ɵdid(17, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), i1.ɵpid(131072, i3.AsyncPipe, [i1.ChangeDetectorRef]), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_3)), i1.ɵdid(20, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_4)), i1.ɵdid(22, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_5)), i1.ɵdid(24, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵeld(25, 0, null, null, 14, \"div\", [[\"class\", \"sidebar-bottom\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(26, 0, null, null, 13, \"ul\", [], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_6)), i1.ɵdid(28, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵeld(29, 0, null, null, 4, \"li\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(30, 0, null, null, 3, \"a\", [[\"href\", \"https://cap-hpi-valuations.zendesk.com/hc/en-us/categories/360000875338-Residual-Value-Tracker\"], [\"target\", \"_blank\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(31, 0, null, null, 0, \"i\", [[\"class\", \"fal fa-question\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(32, 0, null, null, 1, \"span\", [[\"class\", \"sidebar-link-text\"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, [\"Help & FAQs\"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_7)), i1.ɵdid(35, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_8)), i1.ɵdid(37, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_SidebarComponent_9)), i1.ɵdid(39, 16384, null, 0, i3.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, \"ngIf\"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = _ck(_v, 6, 0, false); var currVal_1 = _ck(_v, 7, 0, \"active\"); _ck(_v, 3, 0, currVal_0, currVal_1); var currVal_4 = _ck(_v, 10, 0, \"/dashboard\"); _ck(_v, 9, 0, currVal_4); var currVal_5 = _co.isLoggedIn; _ck(_v, 15, 0, currVal_5); var currVal_6 = (_co.isLoggedIn && i1.ɵunv(_v, 17, 0, i1.ɵnov(_v, 18).transform(_co.isAdmin$))); _ck(_v, 17, 0, currVal_6); var currVal_7 = (_co.isLoggedIn && _co.isDevTest); _ck(_v, 20, 0, currVal_7); var currVal_8 = _co.isDevDebug; _ck(_v, 22, 0, currVal_8); var currVal_9 = (_co.isDevDebug && _co.debugData); _ck(_v, 24, 0, currVal_9); var currVal_10 = _co.isLoggedIn; _ck(_v, 28, 0, currVal_10); var currVal_11 = (!_co.isLoggedIn && _co.useIdentityServer); _ck(_v, 35, 0, currVal_11); var currVal_12 = _co.isLoggedIn; _ck(_v, 37, 0, currVal_12); var currVal_13 = (_co.isLoggedIn && _co.useIdentityServer); _ck(_v, 39, 0, currVal_13); }, function (_ck, _v) { var currVal_2 = i1.ɵnov(_v, 9).target; var currVal_3 = i1.ɵnov(_v, 9).href; _ck(_v, 8, 0, currVal_2, currVal_3); }); }\nexport function View_SidebarComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, \"lud-sidebar\", [], null, null, null, View_SidebarComponent_0, RenderType_SidebarComponent)), i1.ɵdid(1, 245760, null, 0, i4.SidebarComponent, [i5.LoginService, i6.UserService, i7.FileSaverService, i8.SettingsService, i2.ActivatedRoute], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar SidebarComponentNgFactory = i1.ɵccf(\"lud-sidebar\", i4.SidebarComponent, View_SidebarComponent_Host_0, {}, { onSibarOpenEvent: \"onSibarOpenEvent\" }, []);\nexport { SidebarComponentNgFactory as SidebarComponentNgFactory };\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nvar styles = [\"\"];\nexport { styles as styles };\n","\r\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"./app.component.scss.shim.ngstyle\";\nimport * as i1 from \"@angular/core\";\nimport * as i2 from \"./shared/layout/header/header.component.ngfactory\";\nimport * as i3 from \"./shared/layout/header/header.component\";\nimport * as i4 from \"./core/auth/login.service\";\nimport * as i5 from \"./settings/settings.service\";\nimport * as i6 from \"./sidebar/sidebar.component.ngfactory\";\nimport * as i7 from \"./sidebar/sidebar.component\";\nimport * as i8 from \"./core/data/user.service\";\nimport * as i9 from \"./core/data/file-saver.service\";\nimport * as i10 from \"@angular/router\";\nimport * as i11 from \"./app.component\";\nimport * as i12 from \"@angular/platform-browser\";\nimport * as i13 from \"@ngx-translate/core\";\nvar styles_AppComponent = [i0.styles];\nvar RenderType_AppComponent = i1.ɵcrt({ encapsulation: 0, styles: styles_AppComponent, data: {} });\nexport { RenderType_AppComponent as RenderType_AppComponent };\nexport function View_AppComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 9, \"div\", [[\"class\", \"app page-wrapper\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 1, \"lud-header\", [], null, null, null, i2.View_HeaderComponent_0, i2.RenderType_HeaderComponent)), i1.ɵdid(2, 114688, null, 0, i3.HeaderComponent, [i4.LoginService, i5.SettingsService], null, null), (_l()(), i1.ɵeld(3, 0, null, null, 1, \"lud-sidebar\", [[\"class\", \"sidebar\"]], null, null, null, i6.View_SidebarComponent_0, i6.RenderType_SidebarComponent)), i1.ɵdid(4, 245760, null, 0, i7.SidebarComponent, [i4.LoginService, i8.UserService, i9.FileSaverService, i5.SettingsService, i10.ActivatedRoute], null, null), (_l()(), i1.ɵeld(5, 0, null, null, 4, \"main\", [], null, null, null, null, null)), (_l()(), i1.ɵeld(6, 0, null, null, 3, \"div\", [[\"class\", \"container\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(7, 0, null, null, 2, \"div\", [[\"class\", \"row\"]], null, null, null, null, null)), (_l()(), i1.ɵeld(8, 16777216, null, null, 1, \"router-outlet\", [], null, null, null, null, null)), i1.ɵdid(9, 212992, null, 0, i10.RouterOutlet, [i10.ChildrenOutletContexts, i1.ViewContainerRef, i1.ComponentFactoryResolver, [8, null], i1.ChangeDetectorRef], null, null)], function (_ck, _v) { _ck(_v, 2, 0); _ck(_v, 4, 0); _ck(_v, 9, 0); }, null); }\nexport function View_AppComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, \"app-root\", [], null, null, null, View_AppComponent_0, RenderType_AppComponent)), i1.ɵdid(1, 49152, null, 0, i11.AppComponent, [i10.Router, i10.ActivatedRoute, i12.Title, i13.TranslateService], null, null)], null, null); }\nvar AppComponentNgFactory = i1.ɵccf(\"app-root\", i11.AppComponent, View_AppComponent_Host_0, {}, {}, []);\nexport { AppComponentNgFactory as AppComponentNgFactory };\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nvar styles = [\"@media (max-width:767px){.body-content[_ngcontent-%COMP%]{padding-top:50px}}\"];\nexport { styles as styles };\n","
\r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { makeStateKey, StateKey, TransferState } from '@angular/platform-browser';\r\n//import { ServerModule, ServerTransferStateModule, BrowserTransferStateModule } from '@angular/platform-server';\r\n\r\n// https://stackoverflow.com/questions/50992232/ngx-translate-not-showing-any-text-in-lazy-loaded-module\r\nimport { TranslateModule, MissingTranslationHandler, MissingTranslationHandlerParams, TranslateLoader, TranslateModuleConfig, TranslateService } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n//import { Observable, from, of as observableOf } from 'rxjs';\r\n\r\n//import * as contentEn from '../../assets/i18n/en.json';\r\n//import * as contentRo from './ro.json';\r\n\r\nconst RESOURCE_MISSING_PREFIX = \"![ \";\r\nconst RESOURCE_MISSING_SUFFIX = \" ]\";\r\n\r\n//const TRANSLATIONS = {\r\n// en: contentEn,\r\n// //ro: contentRo\r\n//};\r\n\r\n//export class TranslateMyLoader implements TranslateLoader {\r\n// constructor() {}\r\n//\r\n// getTranslation(lang: string): Observable {\r\n// //return observableOf(TRANSLATIONS[lang].default);\r\n// return from(import(`../../assets/i18n/${lang}.json`));// Error: Can't resolve '../assets/i18n' in 'C:\\repos\\rv-tracker-app\\RV.Tracker.Web\\ClientApp\\src\\app\\translate'\r\n// }\r\n//}\r\n\r\n// https://andremonteiro.pt/ngx-translate-angular-universal-ssr/\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n //return new TranslateMyLoader();\r\n //const zipUtil = import(`../../assets/i18n/en.json`)\r\n // .then(function (value) {\r\n // if (value) {\r\n // }\r\n // });\r\n\r\n //return new TranslateHttpLoader(http);//assets/i18n/en.json\r\n return new TranslateHttpLoader(http, '/assets/i18n/', '.json?q=20210417');\r\n //return new TranslateHttpLoader(this.http).getTranslation(lang);\r\n //return new TranslateHttpLoader(http, '/l10n/', '.json');//http://localhost:4200/l10n/en.json\r\n}\r\n//export class WebpackTranslateLoader implements TranslateLoader {\r\n// getTranslation(lang: string): Observable {\r\n// //return observableOf(TRANSLATIONS[lang].default);\r\n// return from(import(`../../assets/i18n/${lang}.json`));// Error: Can't resolve '../assets/i18n' in 'C:\\repos\\rv-tracker-app\\RV.Tracker.Web\\ClientApp\\src\\app\\translate'\r\n// }\r\n//}\r\n\r\nexport class RvMissingTranslationHandler implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams): string {\r\n if (console && console.warn)\r\n console.warn('MissingTranslationHandler', params);\r\n\r\n var key = '';\r\n if (params.key) {\r\n var innerKeys = params.key.split('.');\r\n if (innerKeys.length) {\r\n key = innerKeys[innerKeys.length - 1];//last section is most user friendly\r\n }\r\n }\r\n\r\n return RESOURCE_MISSING_PREFIX + (key || params.key) + RESOURCE_MISSING_SUFFIX;\r\n }\r\n}\r\nexport const TRANSLATE_MODULE_CONFIG: TranslateModuleConfig = {\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (HttpLoaderFactory),\r\n deps: [HttpClient]\r\n\r\n //useFactory: (TranslateMyLoader),\r\n //deps: [HttpClient]\r\n\r\n //useFactory: WebpackTranslateLoader\r\n },\r\n missingTranslationHandler: { provide: MissingTranslationHandler, useClass: RvMissingTranslationHandler },\r\n};\r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModule.forRoot(TRANSLATE_MODULE_CONFIG),\r\n ],\r\n exports: [\r\n //TranslateModule\r\n ],\r\n})\r\nexport class TranslatesModule {\r\n //Import TranslatesModule in the root AppModule only. Never import TranslatesModule in any other module.\r\n constructor(@Optional() @SkipSelf() parentModule: TranslatesModule) {\r\n if (parentModule) {\r\n throw new Error('TranslatesModule has already been loaded. You should only import TranslatesModule in the AppModule only.');\r\n }\r\n }}\r\n","import { HttpClient } from '@angular/common/http';\n//import { ServerModule, ServerTransferStateModule, BrowserTransferStateModule } from '@angular/platform-server';\n// https://stackoverflow.com/questions/50992232/ngx-translate-not-showing-any-text-in-lazy-loaded-module\nimport { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateLoader, TranslateModuleConfig } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\n//import { Observable, from, of as observableOf } from 'rxjs';\n//import * as contentEn from '../../assets/i18n/en.json';\n//import * as contentRo from './ro.json';\nconst RESOURCE_MISSING_PREFIX = \"![ \";\nconst RESOURCE_MISSING_SUFFIX = \" ]\";\n//const TRANSLATIONS = {\n// en: contentEn,\n// //ro: contentRo\n//};\n//export class TranslateMyLoader implements TranslateLoader {\n// constructor() {}\n//\n// getTranslation(lang: string): Observable {\n// //return observableOf(TRANSLATIONS[lang].default);\n// return from(import(`../../assets/i18n/${lang}.json`));// Error: Can't resolve '../assets/i18n' in 'C:\\repos\\rv-tracker-app\\RV.Tracker.Web\\ClientApp\\src\\app\\translate'\n// }\n//}\n// https://andremonteiro.pt/ngx-translate-angular-universal-ssr/\nexport function HttpLoaderFactory(http) {\n //return new TranslateMyLoader();\n //const zipUtil = import(`../../assets/i18n/en.json`)\n // .then(function (value) {\n // if (value) {\n // }\n // });\n //return new TranslateHttpLoader(http);//assets/i18n/en.json\n return new TranslateHttpLoader(http, '/assets/i18n/', '.json?q=20210417');\n //return new TranslateHttpLoader(this.http).getTranslation(lang);\n //return new TranslateHttpLoader(http, '/l10n/', '.json');//http://localhost:4200/l10n/en.json\n}\n//export class WebpackTranslateLoader implements TranslateLoader {\n// getTranslation(lang: string): Observable {\n// //return observableOf(TRANSLATIONS[lang].default);\n// return from(import(`../../assets/i18n/${lang}.json`));// Error: Can't resolve '../assets/i18n' in 'C:\\repos\\rv-tracker-app\\RV.Tracker.Web\\ClientApp\\src\\app\\translate'\n// }\n//}\nexport class RvMissingTranslationHandler {\n handle(params) {\n if (console && console.warn)\n console.warn('MissingTranslationHandler', params);\n var key = '';\n if (params.key) {\n var innerKeys = params.key.split('.');\n if (innerKeys.length) {\n key = innerKeys[innerKeys.length - 1]; //last section is most user friendly\n }\n }\n return RESOURCE_MISSING_PREFIX + (key || params.key) + RESOURCE_MISSING_SUFFIX;\n }\n}\nconst ɵ0 = (HttpLoaderFactory);\nexport const TRANSLATE_MODULE_CONFIG = {\n loader: {\n provide: TranslateLoader,\n useFactory: ɵ0,\n deps: [HttpClient]\n //useFactory: (TranslateMyLoader),\n //deps: [HttpClient]\n //useFactory: WebpackTranslateLoader\n },\n missingTranslationHandler: { provide: MissingTranslationHandler, useClass: RvMissingTranslationHandler },\n};\nexport class TranslatesModule {\n //Import TranslatesModule in the root AppModule only. Never import TranslatesModule in any other module.\n constructor(parentModule) {\n if (parentModule) {\n throw new Error('TranslatesModule has already been loaded. You should only import TranslatesModule in the AppModule only.');\n }\n }\n}\nexport { ɵ0 };\n","import { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { SharedModule } from '@app/shared/shared.module';\r\n\r\nimport { EditReportComponent } from './edit-report/edit-report.component';\r\nimport { SettingsFilterComponent } from './settings-filter/settings-filter.component';\r\n\r\n// Third Party\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { /*BsDatepickerModule, */BsDropdownModule/*, TooltipModule, AccordionModule, ModalModule, TabsModule */} from 'ngx-bootstrap/dropdown';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n BsDatepickerModule, BsDropdownModule\r\n ],\r\n declarations: [\r\n EditReportComponent,\r\n SettingsFilterComponent,\r\n ],\r\n exports: [\r\n EditReportComponent,\r\n SettingsFilterComponent,\r\n ]\r\n})\r\nexport class ReportFilterModule { }\r\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./app.module\";\nimport * as i2 from \"./app.component\";\nimport * as i3 from \"../../node_modules/@angular/router/router.ngfactory\";\nimport * as i4 from \"./home/home.component.ngfactory\";\nimport * as i5 from \"./shared/components/no-access/no-access.component.ngfactory\";\nimport * as i6 from \"./shared/components/page-not-found/page-not-found.component.ngfactory\";\nimport * as i7 from \"../../node_modules/@angular/material/dialog/typings/index.ngfactory\";\nimport * as i8 from \"../../node_modules/@angular/material/tooltip/typings/index.ngfactory\";\nimport * as i9 from \"../../node_modules/@angular/material/datepicker/typings/index.ngfactory\";\nimport * as i10 from \"../../node_modules/ngx-toastr/ngx-toastr.ngfactory\";\nimport * as i11 from \"../../node_modules/ngx-bootstrap/popover/ngx-bootstrap-popover.ngfactory\";\nimport * as i12 from \"../../node_modules/ngx-bootstrap/dropdown/ngx-bootstrap-dropdown.ngfactory\";\nimport * as i13 from \"../../node_modules/ngx-bootstrap/datepicker/ngx-bootstrap-datepicker.ngfactory\";\nimport * as i14 from \"./app.component.ngfactory\";\nimport * as i15 from \"@angular/router\";\nimport * as i16 from \"./core/preload/custom-preloader\";\nimport * as i17 from \"@angular/common\";\nimport * as i18 from \"@angular/platform-browser\";\nimport * as i19 from \"@angular/material/core\";\nimport * as i20 from \"@angular/animations/browser\";\nimport * as i21 from \"@angular/platform-browser/animations\";\nimport * as i22 from \"@angular/animations\";\nimport * as i23 from \"angular-oauth2-oidc\";\nimport * as i24 from \"@angular/common/http\";\nimport * as i25 from \"./core/auth/login.service\";\nimport * as i26 from \"./settings/settings.service\";\nimport * as i27 from \"./shared/services/local-store-manager.service\";\nimport * as i28 from \"./core/data/user.service\";\nimport * as i29 from \"./core/data/file-saver.service\";\nimport * as i30 from \"ngx-toastr\";\nimport * as i31 from \"./core/utils/utils.objects\";\nimport * as i32 from \"./core/data/base/cache.interceptor\";\nimport * as i33 from \"./core/data/base/http.interceptor\";\nimport * as i34 from \"./core/data/base/cache-request.service\";\nimport * as i35 from \"@angular/forms\";\nimport * as i36 from \"@angular/cdk/overlay\";\nimport * as i37 from \"@angular/cdk/bidi\";\nimport * as i38 from \"@angular/material/dialog\";\nimport * as i39 from \"@angular/cdk/observers\";\nimport * as i40 from \"@angular/material/select\";\nimport * as i41 from \"@angular/material/sort\";\nimport * as i42 from \"@angular/material/tooltip\";\nimport * as i43 from \"@angular/material/datepicker\";\nimport * as i44 from \"@angular/material-moment-adapter\";\nimport * as i45 from \"ngx-loading\";\nimport * as i46 from \"./core/auth/guards/auth-guard.service\";\nimport * as i47 from \"./core/auth/guards/must-be-logged-in-guard.service\";\nimport * as i48 from \"./core/auth/guards/must-be-admin-guard.service\";\nimport * as i49 from \"./core/auth/guards/has-access.guard\";\nimport * as i50 from \"ngx-bootstrap/popover\";\nimport * as i51 from \"ngx-bootstrap/positioning\";\nimport * as i52 from \"ngx-bootstrap/component-loader\";\nimport * as i53 from \"ngx-bootstrap/pagination\";\nimport * as i54 from \"ngx-bootstrap/dropdown\";\nimport * as i55 from \"ngx-bootstrap/tabs\";\nimport * as i56 from \"./shared/services/window.token\";\nimport * as i57 from \"../../projects/vehicle-search/src/lib/service/iderivative-search.service\";\nimport * as i58 from \"./core/data/derivative-search.service\";\nimport * as i59 from \"./report-filters/service/report-filter.service\";\nimport * as i60 from \"../../projects/vehicle-search/src/lib/service/isimilar-search.service\";\nimport * as i61 from \"./core/error-handler/toast-error-handler\";\nimport * as i62 from \"./settings/settings.model\";\nimport * as i63 from \"./home/home.component\";\nimport * as i64 from \"./routing/app-routing.module\";\nimport * as i65 from \"./shared/components/no-access/no-access.component\";\nimport * as i66 from \"./shared/components/page-not-found/page-not-found.component\";\nimport * as i67 from \"./core/core.module\";\nimport * as i68 from \"@ngx-translate/core\";\nimport * as i69 from \"@angular/cdk/platform\";\nimport * as i70 from \"@angular/material/button\";\nimport * as i71 from \"@angular/material/button-toggle\";\nimport * as i72 from \"@angular/cdk/portal\";\nimport * as i73 from \"@angular/cdk/scrolling\";\nimport * as i74 from \"@angular/material/icon\";\nimport * as i75 from \"@angular/cdk/text-field\";\nimport * as i76 from \"@angular/material/form-field\";\nimport * as i77 from \"@angular/material/input\";\nimport * as i78 from \"@angular/material/progress-spinner\";\nimport * as i79 from \"@angular/cdk/table\";\nimport * as i80 from \"@angular/material/table\";\nimport * as i81 from \"@angular/cdk/a11y\";\nimport * as i82 from \"./modules/material/material.module\";\nimport * as i83 from \"./modules/translate/translates.module\";\nimport * as i84 from \"./shared/shared.module\";\nimport * as i85 from \"./core/auth/auth.module\";\nimport * as i86 from \"./modules/bootstrap/bootstrap.module\";\nimport * as i87 from \"ngx-bootstrap/datepicker\";\nimport * as i88 from \"./report-filters/report-filters.module\";\nvar AppModuleNgFactory = i0.ɵcmf(i1.AppModule, [i2.AppComponent], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i3.ɵangular_packages_router_router_lNgFactory, i4.HomeComponentNgFactory, i5.NoAccessComponentNgFactory, i6.PageNotFoundComponentNgFactory, i7.MatDialogContainerNgFactory, i8.TooltipComponentNgFactory, i9.MatDatepickerContentNgFactory, i9.MatCalendarHeaderNgFactory, i10.ToastNgFactory, i11.PopoverContainerComponentNgFactory, i12.BsDropdownContainerComponentNgFactory, i13.BsDatepickerContainerComponentNgFactory, i13.BsDaterangepickerContainerComponentNgFactory, i13.BsDatepickerInlineContainerComponentNgFactory, i13.BsDaterangepickerInlineContainerComponentNgFactory, i14.AppComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(5120, i15.ActivatedRoute, i15.ɵangular_packages_router_router_g, [i15.Router]), i0.ɵmpd(6144, i15.PreloadingStrategy, null, [i16.CustomPreloader]), i0.ɵmpd(135680, i15.RouterPreloader, i15.RouterPreloader, [i15.Router, i0.NgModuleFactoryLoader, i0.Compiler, i0.Injector, i15.PreloadingStrategy]), i0.ɵmpd(4608, i15.NoPreloading, i15.NoPreloading, []), i0.ɵmpd(4608, i15.PreloadAllModules, i15.PreloadAllModules, []), i0.ɵmpd(5120, i15.ɵangular_packages_router_router_o, i15.ɵangular_packages_router_router_c, [i15.Router, i17.ViewportScroller, i15.ROUTER_CONFIGURATION]), i0.ɵmpd(5120, i15.ROUTER_INITIALIZER, i15.ɵangular_packages_router_router_j, [i15.ɵangular_packages_router_router_h]), i0.ɵmpd(5120, i0.APP_BOOTSTRAP_LISTENER, function (p0_0) { return [p0_0]; }, [i15.ROUTER_INITIALIZER]), i0.ɵmpd(5120, i0.LOCALE_ID, i0.ɵangular_packages_core_core_p, [[3, i0.LOCALE_ID]]), i0.ɵmpd(4608, i17.NgLocalization, i17.NgLocaleLocalization, [i0.LOCALE_ID, [2, i17.ɵangular_packages_common_common_a]]), i0.ɵmpd(5120, i0.ɵangular_packages_core_core_ba, i0.ɵangular_packages_core_core_r, [i0.NgZone]), i0.ɵmpd(5120, i0.APP_ID, i0.ɵangular_packages_core_core_f, []), i0.ɵmpd(5120, i0.IterableDiffers, i0.ɵangular_packages_core_core_n, []), i0.ɵmpd(5120, i0.KeyValueDiffers, i0.ɵangular_packages_core_core_o, []), i0.ɵmpd(4608, i18.DomSanitizer, i18.ɵDomSanitizerImpl, [i17.DOCUMENT]), i0.ɵmpd(6144, i0.Sanitizer, null, [i18.DomSanitizer]), i0.ɵmpd(4608, i18.HAMMER_GESTURE_CONFIG, i19.GestureConfig, [[2, i19.MAT_HAMMER_OPTIONS], [2, i19.MatCommonModule]]), i0.ɵmpd(5120, i18.EVENT_MANAGER_PLUGINS, function (p0_0, p0_1, p0_2, p1_0, p2_0, p2_1, p2_2, p2_3) { return [new i18.ɵDomEventsPlugin(p0_0, p0_1, p0_2), new i18.ɵKeyEventsPlugin(p1_0), new i18.ɵHammerGesturesPlugin(p2_0, p2_1, p2_2, p2_3)]; }, [i17.DOCUMENT, i0.NgZone, i0.PLATFORM_ID, i17.DOCUMENT, i17.DOCUMENT, i18.HAMMER_GESTURE_CONFIG, i0.ɵConsole, [2, i18.HAMMER_LOADER]]), i0.ɵmpd(4608, i18.EventManager, i18.EventManager, [i18.EVENT_MANAGER_PLUGINS, i0.NgZone]), i0.ɵmpd(135680, i18.ɵDomSharedStylesHost, i18.ɵDomSharedStylesHost, [i17.DOCUMENT]), i0.ɵmpd(4608, i18.ɵDomRendererFactory2, i18.ɵDomRendererFactory2, [i18.EventManager, i18.ɵDomSharedStylesHost, i0.APP_ID]), i0.ɵmpd(5120, i20.AnimationDriver, i21.ɵangular_packages_platform_browser_animations_animations_a, []), i0.ɵmpd(5120, i20.ɵAnimationStyleNormalizer, i21.ɵangular_packages_platform_browser_animations_animations_b, []), i0.ɵmpd(4608, i20.ɵAnimationEngine, i21.ɵInjectableAnimationEngine, [i17.DOCUMENT, i20.AnimationDriver, i20.ɵAnimationStyleNormalizer]), i0.ɵmpd(5120, i0.RendererFactory2, i21.ɵangular_packages_platform_browser_animations_animations_c, [i18.ɵDomRendererFactory2, i20.ɵAnimationEngine, i0.NgZone]), i0.ɵmpd(6144, i18.ɵSharedStylesHost, null, [i18.ɵDomSharedStylesHost]), i0.ɵmpd(4608, i0.Testability, i0.Testability, [i0.NgZone]), i0.ɵmpd(4608, i22.AnimationBuilder, i21.ɵBrowserAnimationBuilder, [i0.RendererFactory2, i17.DOCUMENT]), i0.ɵmpd(5120, i23.OAuthStorage, i23.ɵc, []), i0.ɵmpd(4608, i23.ValidationHandler, i23.NullValidationHandler, []), i0.ɵmpd(4608, i23.UrlHelperService, i23.UrlHelperService, []), i0.ɵmpd(5120, i23.OAuthLogger, i23.ɵb, []), i0.ɵmpd(4608, i23.ɵa, i23.JwksValidationHandler, []), i0.ɵmpd(135680, i23.OAuthService, i23.OAuthService, [i0.NgZone, i24.HttpClient, [2, i23.OAuthStorage], [2, i23.ValidationHandler], [2, i23.AuthConfig], i23.UrlHelperService, i23.OAuthLogger, [2, i23.ɵa]]), i0.ɵmpd(4608, i25.LoginService, i25.LoginService, [i23.OAuthService, i26.SettingsService, i15.Router, i27.LocalStoreManager]), i0.ɵmpd(135680, i28.UserService, i28.UserService, [i24.HttpClient, i25.LoginService, i26.SettingsService]), i0.ɵmpd(135680, i29.FileSaverService, i29.FileSaverService, [i24.HttpClient, i25.LoginService, i26.SettingsService, i30.ToastrService]), i0.ɵmpd(4608, i31.UtilsObjects, i31.UtilsObjects, []), i0.ɵmpd(4608, i24.HttpXsrfTokenExtractor, i24.ɵangular_packages_common_http_http_g, [i17.DOCUMENT, i0.PLATFORM_ID, i24.ɵangular_packages_common_http_http_e]), i0.ɵmpd(4608, i24.ɵangular_packages_common_http_http_h, i24.ɵangular_packages_common_http_http_h, [i24.HttpXsrfTokenExtractor, i24.ɵangular_packages_common_http_http_f]), i0.ɵmpd(4608, i23.OAuthResourceServerErrorHandler, i23.OAuthNoopResourceServerErrorHandler, []), i0.ɵmpd(5120, i24.HTTP_INTERCEPTORS, function (p0_0, p1_0, p2_0, p3_0, p3_1, p3_2, p3_3) { return [new i32.CacheInterceptor(p0_0), new i33.ApplicationHttpInterceptor(p1_0), p2_0, new i23.DefaultOAuthInterceptor(p3_0, p3_1, p3_2, p3_3)]; }, [i34.CacheRequestService, i0.Injector, i24.ɵangular_packages_common_http_http_h, i23.OAuthStorage, i23.OAuthService, i23.OAuthResourceServerErrorHandler, [2, i23.OAuthModuleConfig]]), i0.ɵmpd(4608, i35.ɵangular_packages_forms_forms_o, i35.ɵangular_packages_forms_forms_o, []), i0.ɵmpd(4608, i35.FormBuilder, i35.FormBuilder, []), i0.ɵmpd(4608, i36.Overlay, i36.Overlay, [i36.ScrollStrategyOptions, i36.OverlayContainer, i0.ComponentFactoryResolver, i36.OverlayPositionBuilder, i36.OverlayKeyboardDispatcher, i0.Injector, i0.NgZone, i17.DOCUMENT, i37.Directionality, [2, i17.Location]]), i0.ɵmpd(5120, i36.ɵc, i36.ɵd, [i36.Overlay]), i0.ɵmpd(5120, i38.MAT_DIALOG_SCROLL_STRATEGY, i38.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, [i36.Overlay]), i0.ɵmpd(135680, i38.MatDialog, i38.MatDialog, [i36.Overlay, i0.Injector, [2, i17.Location], [2, i38.MAT_DIALOG_DEFAULT_OPTIONS], i38.MAT_DIALOG_SCROLL_STRATEGY, [3, i38.MatDialog], i36.OverlayContainer]), i0.ɵmpd(4608, i39.MutationObserverFactory, i39.MutationObserverFactory, []), i0.ɵmpd(4608, i19.ErrorStateMatcher, i19.ErrorStateMatcher, []), i0.ɵmpd(5120, i40.MAT_SELECT_SCROLL_STRATEGY, i40.MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, [i36.Overlay]), i0.ɵmpd(5120, i41.MatSortHeaderIntl, i41.MAT_SORT_HEADER_INTL_PROVIDER_FACTORY, [[3, i41.MatSortHeaderIntl]]), i0.ɵmpd(5120, i42.MAT_TOOLTIP_SCROLL_STRATEGY, i42.MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, [i36.Overlay]), i0.ɵmpd(4608, i43.MatDatepickerIntl, i43.MatDatepickerIntl, []), i0.ɵmpd(5120, i43.MAT_DATEPICKER_SCROLL_STRATEGY, i43.MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY, [i36.Overlay]), i0.ɵmpd(4608, i19.DateAdapter, i44.MomentDateAdapter, [i19.MAT_DATE_LOCALE, i44.MAT_MOMENT_DATE_ADAPTER_OPTIONS]), i0.ɵmpd(4608, i45.ɵc, i45.ɵc, [[2, \"loadingConfig\"]]), i0.ɵmpd(4608, i46.AuthGuard, i46.AuthGuard, [i25.LoginService, i15.Router]), i0.ɵmpd(4608, i47.MustBeLoggedInGuardService, i47.MustBeLoggedInGuardService, [i25.LoginService]), i0.ɵmpd(4608, i48.MustBeAdminGuardService, i48.MustBeAdminGuardService, [i25.LoginService, i28.UserService, i15.Router]), i0.ɵmpd(4608, i49.HasAccessGuard, i49.HasAccessGuard, [i25.LoginService, i28.UserService, i26.SettingsService, i15.Router]), i0.ɵmpd(4608, i50.PopoverConfig, i50.PopoverConfig, []), i0.ɵmpd(4608, i51.PositioningService, i51.PositioningService, [i0.NgZone, i0.RendererFactory2, i0.PLATFORM_ID]), i0.ɵmpd(4608, i52.ComponentLoaderFactory, i52.ComponentLoaderFactory, [i0.ComponentFactoryResolver, i0.NgZone, i0.Injector, i51.PositioningService, i0.ApplicationRef]), i0.ɵmpd(4608, i53.PaginationConfig, i53.PaginationConfig, []), i0.ɵmpd(4608, i54.BsDropdownState, i54.BsDropdownState, []), i0.ɵmpd(4608, i55.TabsetConfig, i55.TabsetConfig, []), i0.ɵmpd(5120, i56.WindowRef, i1.ɵ1, []), i0.ɵmpd(4608, i57.DerivativeSearchToken, i58.DerivativeSearchService, [i24.HttpClient, i25.LoginService, i59.ReportFilterService]), i0.ɵmpd(6144, i60.SimilarSearchToken, null, [i58.DerivativeSearchService]), i0.ɵmpd(4608, i17.DecimalPipe, i17.DecimalPipe, [i0.LOCALE_ID]), i0.ɵmpd(1024, i15.ɵangular_packages_router_router_a, i15.ɵangular_packages_router_router_e, [[3, i15.Router]]), i0.ɵmpd(512, i0.ErrorHandler, i61.ToastErrorHandler, [i0.Injector]), i0.ɵmpd(512, i15.ɵangular_packages_router_router_h, i15.ɵangular_packages_router_router_h, [i0.Injector]), i0.ɵmpd(1024, i0.NgProbeToken, function () { return [i15.ɵangular_packages_router_router_b()]; }, []), i0.ɵmpd(512, i62.Settings, i62.Settings, []), i0.ɵmpd(512, i24.ɵangular_packages_common_http_http_d, i24.ɵangular_packages_common_http_http_d, []), i0.ɵmpd(2048, i24.XhrFactory, null, [i24.ɵangular_packages_common_http_http_d]), i0.ɵmpd(512, i24.HttpXhrBackend, i24.HttpXhrBackend, [i24.XhrFactory]), i0.ɵmpd(2048, i24.HttpBackend, null, [i24.HttpXhrBackend]), i0.ɵmpd(512, i24.HttpHandler, i24.ɵHttpInterceptingHandler, [i24.HttpBackend, i0.Injector]), i0.ɵmpd(512, i24.HttpClient, i24.HttpClient, [i24.HttpHandler]), i0.ɵmpd(1024, i0.APP_INITIALIZER, function (p0_0, p1_0, p2_0, p2_1, p2_2, p2_3) { return [i15.ɵangular_packages_router_router_i(p0_0), i18.ɵangular_packages_platform_browser_platform_browser_j(p1_0), i1.ɵ0(p2_0, p2_1, p2_2, p2_3)]; }, [i15.ɵangular_packages_router_router_h, [2, i0.NgProbeToken], i26.SettingsService, i27.LocalStoreManager, i62.Settings, i24.HttpClient]), i0.ɵmpd(512, i0.ApplicationInitStatus, i0.ApplicationInitStatus, [[2, i0.APP_INITIALIZER]]), i0.ɵmpd(131584, i0.ApplicationRef, i0.ApplicationRef, [i0.NgZone, i0.ɵConsole, i0.Injector, i0.ErrorHandler, i0.ComponentFactoryResolver, i0.ApplicationInitStatus]), i0.ɵmpd(512, i15.UrlSerializer, i15.DefaultUrlSerializer, []), i0.ɵmpd(512, i15.ChildrenOutletContexts, i15.ChildrenOutletContexts, []), i0.ɵmpd(256, i15.ROUTER_CONFIGURATION, { preloadingStrategy: i16.CustomPreloader }, []), i0.ɵmpd(1024, i17.LocationStrategy, i15.ɵangular_packages_router_router_d, [i17.PlatformLocation, [2, i17.APP_BASE_HREF], i15.ROUTER_CONFIGURATION]), i0.ɵmpd(512, i17.Location, i17.Location, [i17.LocationStrategy, i17.PlatformLocation]), i0.ɵmpd(512, i0.Compiler, i0.Compiler, []), i0.ɵmpd(512, i0.NgModuleFactoryLoader, i0.SystemJsNgModuleLoader, [i0.Compiler, [2, i0.SystemJsNgModuleLoaderConfig]]), i0.ɵmpd(1024, i15.ROUTES, function () { return [[{ path: \"\", component: i63.HomeComponent, pathMatch: \"full\", data: i64.ɵ0 }, { path: \"dashboard\", loadChildren: i64.ɵ1, canActivate: [i46.AuthGuard, i49.HasAccessGuard], canActivateChild: [i46.AuthGuard], data: i64.ɵ2 }, { path: \"baskets\", loadChildren: i64.ɵ3, canActivate: [i46.AuthGuard, i49.HasAccessGuard], canActivateChild: [i46.AuthGuard], data: i64.ɵ4 }, { path: \"find-vehicles\", loadChildren: i64.ɵ5, canActivate: [i46.AuthGuard, i49.HasAccessGuard], canActivateChild: [i46.AuthGuard], data: i64.ɵ6 }, { path: \"related\", loadChildren: i64.ɵ7, canActivate: [i46.AuthGuard, i49.HasAccessGuard], canActivateChild: [i46.AuthGuard], data: i64.ɵ8 }, { path: \"reports\", loadChildren: i64.ɵ9, canActivate: [i46.AuthGuard, i49.HasAccessGuard], canActivateChild: [i46.AuthGuard], data: i64.ɵ10 }, { path: \"admin\", loadChildren: i64.ɵ11, canActivate: [i46.AuthGuard], canActivateChild: [i46.AuthGuard], data: i64.ɵ12 }, { path: \"charts\", loadChildren: i64.ɵ13, data: i64.ɵ14 }, { path: \"noaccess\", component: i65.NoAccessComponent }, { path: \"privacyNotice\", loadChildren: i64.ɵ15, data: i64.ɵ16 }, { path: \"**\", component: i66.PageNotFoundComponent, data: i64.ɵ17 }]]; }, []), i0.ɵmpd(1024, i15.Router, i15.ɵangular_packages_router_router_f, [i0.ApplicationRef, i15.UrlSerializer, i15.ChildrenOutletContexts, i17.Location, i0.Injector, i0.NgModuleFactoryLoader, i0.Compiler, i15.ROUTES, i15.ROUTER_CONFIGURATION, [2, i15.UrlHandlingStrategy], [2, i15.RouteReuseStrategy]]), i0.ɵmpd(1073742336, i15.RouterModule, i15.RouterModule, [[2, i15.ɵangular_packages_router_router_a], [2, i15.Router]]), i0.ɵmpd(1073742336, i64.AppRoutingModule, i64.AppRoutingModule, []), i0.ɵmpd(1073742336, i17.CommonModule, i17.CommonModule, []), i0.ɵmpd(1073742336, i0.ApplicationModule, i0.ApplicationModule, [i0.ApplicationRef]), i0.ɵmpd(1073742336, i18.BrowserModule, i18.BrowserModule, [[3, i18.BrowserModule]]), i0.ɵmpd(1073742336, i21.BrowserAnimationsModule, i21.BrowserAnimationsModule, []), i0.ɵmpd(1073742336, i67.CoreModule, i67.CoreModule, [[3, i67.CoreModule]]), i0.ɵmpd(1073742336, i35.ɵangular_packages_forms_forms_d, i35.ɵangular_packages_forms_forms_d, []), i0.ɵmpd(1073742336, i35.FormsModule, i35.FormsModule, []), i0.ɵmpd(1073742336, i35.ReactiveFormsModule, i35.ReactiveFormsModule, []), i0.ɵmpd(1073742336, i68.TranslateModule, i68.TranslateModule, []), i0.ɵmpd(1073742336, i37.BidiModule, i37.BidiModule, []), i0.ɵmpd(1073742336, i19.MatCommonModule, i19.MatCommonModule, [[2, i19.MATERIAL_SANITY_CHECKS], [2, i18.HAMMER_LOADER]]), i0.ɵmpd(1073742336, i69.PlatformModule, i69.PlatformModule, []), i0.ɵmpd(1073742336, i19.MatRippleModule, i19.MatRippleModule, []), i0.ɵmpd(1073742336, i70.MatButtonModule, i70.MatButtonModule, []), i0.ɵmpd(1073742336, i71.MatButtonToggleModule, i71.MatButtonToggleModule, []), i0.ɵmpd(1073742336, i72.PortalModule, i72.PortalModule, []), i0.ɵmpd(1073742336, i73.ScrollingModule, i73.ScrollingModule, []), i0.ɵmpd(1073742336, i36.OverlayModule, i36.OverlayModule, []), i0.ɵmpd(1073742336, i38.MatDialogModule, i38.MatDialogModule, []), i0.ɵmpd(1073742336, i74.MatIconModule, i74.MatIconModule, []), i0.ɵmpd(1073742336, i75.TextFieldModule, i75.TextFieldModule, []), i0.ɵmpd(1073742336, i39.ObserversModule, i39.ObserversModule, []), i0.ɵmpd(1073742336, i76.MatFormFieldModule, i76.MatFormFieldModule, []), i0.ɵmpd(1073742336, i77.MatInputModule, i77.MatInputModule, []), i0.ɵmpd(1073742336, i78.MatProgressSpinnerModule, i78.MatProgressSpinnerModule, []), i0.ɵmpd(1073742336, i19.MatPseudoCheckboxModule, i19.MatPseudoCheckboxModule, []), i0.ɵmpd(1073742336, i19.MatOptionModule, i19.MatOptionModule, []), i0.ɵmpd(1073742336, i40.MatSelectModule, i40.MatSelectModule, []), i0.ɵmpd(1073742336, i41.MatSortModule, i41.MatSortModule, []), i0.ɵmpd(1073742336, i79.CdkTableModule, i79.CdkTableModule, []), i0.ɵmpd(1073742336, i80.MatTableModule, i80.MatTableModule, []), i0.ɵmpd(1073742336, i81.A11yModule, i81.A11yModule, []), i0.ɵmpd(1073742336, i42.MatTooltipModule, i42.MatTooltipModule, []), i0.ɵmpd(1073742336, i43.MatDatepickerModule, i43.MatDatepickerModule, []), i0.ɵmpd(1073742336, i44.MomentDateModule, i44.MomentDateModule, []), i0.ɵmpd(1073742336, i44.MatMomentDateModule, i44.MatMomentDateModule, []), i0.ɵmpd(1073742336, i82.MaterialModule, i82.MaterialModule, []), i0.ɵmpd(512, i68.TranslateStore, i68.TranslateStore, []), i0.ɵmpd(1024, i68.TranslateLoader, i83.ɵ0, [i24.HttpClient]), i0.ɵmpd(512, i68.TranslateCompiler, i68.TranslateFakeCompiler, []), i0.ɵmpd(512, i68.TranslateParser, i68.TranslateDefaultParser, []), i0.ɵmpd(512, i68.MissingTranslationHandler, i83.RvMissingTranslationHandler, []), i0.ɵmpd(256, i68.USE_DEFAULT_LANG, undefined, []), i0.ɵmpd(256, i68.USE_STORE, undefined, []), i0.ɵmpd(512, i68.TranslateService, i68.TranslateService, [i68.TranslateStore, i68.TranslateLoader, i68.TranslateCompiler, i68.TranslateParser, i68.MissingTranslationHandler, i68.USE_DEFAULT_LANG, i68.USE_STORE]), i0.ɵmpd(1073742336, i84.SharedModule, i84.SharedModule, [i68.TranslateService]), i0.ɵmpd(1073742336, i24.HttpClientXsrfModule, i24.HttpClientXsrfModule, []), i0.ɵmpd(1073742336, i24.HttpClientModule, i24.HttpClientModule, []), i0.ɵmpd(1073742336, i45.LoadingModule, i45.LoadingModule, []), i0.ɵmpd(1073742336, i30.ToastrModule, i30.ToastrModule, []), i0.ɵmpd(1073742336, i23.OAuthModule, i23.OAuthModule, []), i0.ɵmpd(1073742336, i85.AuthModule, i85.AuthModule, [[3, i85.AuthModule]]), i0.ɵmpd(1073742336, i83.TranslatesModule, i83.TranslatesModule, [[3, i83.TranslatesModule]]), i0.ɵmpd(1073742336, i50.PopoverModule, i50.PopoverModule, []), i0.ɵmpd(1073742336, i53.PaginationModule, i53.PaginationModule, []), i0.ɵmpd(1073742336, i54.BsDropdownModule, i54.BsDropdownModule, []), i0.ɵmpd(1073742336, i55.TabsModule, i55.TabsModule, []), i0.ɵmpd(1073742336, i86.BootstrapModule, i86.BootstrapModule, []), i0.ɵmpd(1073742336, i87.BsDatepickerModule, i87.BsDatepickerModule, []), i0.ɵmpd(1073742336, i88.ReportFilterModule, i88.ReportFilterModule, []), i0.ɵmpd(1073742336, i1.AppModule, i1.AppModule, []), i0.ɵmpd(256, i0.ɵAPP_ROOT, true, []), i0.ɵmpd(256, i21.ANIMATION_MODULE_TYPE, \"BrowserAnimations\", []), i0.ɵmpd(256, i24.ɵangular_packages_common_http_http_e, \"XSRF-TOKEN\", []), i0.ɵmpd(256, i24.ɵangular_packages_common_http_http_f, \"X-XSRF-TOKEN\", []), i0.ɵmpd(256, i23.OAuthModuleConfig, null, []), i0.ɵmpd(256, i19.MAT_DATE_FORMATS, i82.MY_FORMATS, []), i0.ɵmpd(256, \"loadingConfig\", { fullScreenBackdrop: true, animationType: \"sk-circle\", primaryColour: \"#e56c0c\", backdropBorderRadius: \"4px\" }, []), i0.ɵmpd(256, i54.BsDropdownConfig, { autoClose: true, insideClick: false }, []), i0.ɵmpd(256, i30.TOAST_CONFIG, { default: i30.DefaultGlobalConfig, config: {} }, [])]); });\nexport { AppModuleNgFactory as AppModuleNgFactory };\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from '@env/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { LoginService } from '../login.service';\r\nimport { UserService } from '../../data/user.service';\r\n\r\n@Injectable()\r\nexport class MustBeAdminGuardService implements CanActivate {\r\n\r\n constructor(\r\n private loginService: LoginService,\r\n private userService: UserService,\r\n private router: Router\r\n ) {\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\r\n return new Promise((resolve, reject) => {\r\n this.userService.isAdmin//.requestIsAdmin()\r\n .subscribe((isAdmin) => {\r\n resolve(isAdmin);\r\n });\r\n });\r\n }\r\n\r\n //canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\r\n // return new Promise((resolve, reject) => {\r\n // this.loginService.checkIsAdmin().then(response => {\r\n // if (response !== true) {\r\n // //this.router.navigate(['/error', 'unauthorized']);//Todo V\r\n // this.router.navigate(['/', 'unauthorized']);\r\n // }\r\n //\r\n // resolve(response);\r\n // });\r\n // });\r\n //}\r\n}\r\n"]}