{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app-skin.service.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.const.ts","webpack:///src/app/app.module.ts","webpack:///src/app/auth/auth.service.ts","webpack:///src/app/config/app-config.default.ts","webpack:///src/app/config/app-config.service.ts","webpack:///src/app/config/domains-skin.const.ts","webpack:///src/app/errors/api-error.interceptor.ts","webpack:///src/app/errors/dummy-error-helper.service.ts","webpack:///src/app/errors/sentry-error-handler.service.ts","webpack:///src/app/errors/sentry-scope-helper.service.ts","webpack:///src/app/errors/studio-error-handler.service.ts","webpack:///src/app/errors/studio-errors.model.ts","webpack:///src/app/landing/landing.component.ts","webpack:///src/app/landing/landing.component.html","webpack:///src/app/lang/lang-validator.guard.ts","webpack:///src/app/lang/lang.resolver.ts","webpack:///src/app/lang/lang.service.ts","webpack:///src/app/lang/missing-translation.service.ts","webpack:///src/app/lang/transloco-root.module.ts","webpack:///src/app/shared/api/api-http-params.encoder.ts","webpack:///src/app/shared/api/index.ts","webpack:///src/app/shared/api/studio-api-error.model.ts","webpack:///src/app/shared/api/studio-api.service.ts","webpack:///src/app/shared/api/studio3-api.utils.ts","webpack:///src/app/shared/components/address/address.component.ts","webpack:///src/app/shared/components/address/address.component.html","webpack:///src/app/shared/components/api-error/api-error.component.ts","webpack:///src/app/shared/components/api-error/api-error.component.html","webpack:///src/app/shared/components/basic-message/basic-message.component.ts","webpack:///src/app/shared/components/basic-message/basic-message.component.html","webpack:///src/app/shared/components/empty/empty.component.ts","webpack:///src/app/shared/components/landing-container/landing-container.component.ts","webpack:///src/app/shared/components/landing-container/landing-container.component.html","webpack:///src/app/shared/components/list/list.component.ts","webpack:///src/app/shared/components/list/list.component.html","webpack:///src/app/shared/components/loading/loading.component.ts","webpack:///src/app/shared/components/modal-route/modal-route.component.ts","webpack:///src/app/shared/components/pagination/pagination.component.ts","webpack:///src/app/shared/components/pagination/pagination.component.html","webpack:///src/app/shared/components/period-selector/period-selector.component.ts","webpack:///src/app/shared/components/period-selector/period-selector.component.html","webpack:///src/app/shared/components/psswd-input/psswd-input.component.ts","webpack:///src/app/shared/components/psswd-input/psswd-input.component.html","webpack:///src/app/shared/components/smart-select/smart-select.component.ts","webpack:///src/app/shared/components/smart-select/smart-select.component.html","webpack:///src/app/shared/components/timezone-selector/timezone-selector.component.ts","webpack:///src/app/shared/components/timezone-selector/timezone-selector.component.html","webpack:///src/app/shared/directives/disable-delay.directive.ts","webpack:///src/app/shared/directives/input-password.directive.ts","webpack:///src/app/shared/directives/responsive-tabs.directive.ts","webpack:///src/app/shared/directives/smart-link.directive.ts","webpack:///src/app/shared/forms/error/error.component.ts","webpack:///src/app/shared/forms/form-control-validate/form-control-validate.directive.ts","webpack:///src/app/shared/forms/form-control-validate/form-group-error/form-group-error.component.ts","webpack:///src/app/shared/forms/form-control-validate/form-group-error/form-group-error.component.html","webpack:///src/app/shared/forms/form-control-validate/form-group/form-group.component.ts","webpack:///src/app/shared/forms/form-control-validate/form-group/form-group.interface.ts","webpack:///src/app/shared/forms/forms.const.ts","webpack:///src/app/shared/forms/forms.module.ts","webpack:///src/app/shared/guards/authenticated.guard.ts","webpack:///src/app/shared/guards/maintenance.guard.ts","webpack:///src/app/shared/modals/modal-confirm/modal-confirm.component.ts","webpack:///src/app/shared/modals/modal-confirm/modal-confirm.component.html","webpack:///src/app/shared/pipes/domain.pipe.ts","webpack:///src/app/shared/pipes/duration.pipe.ts","webpack:///src/app/shared/pipes/encode-uri.pipe.ts","webpack:///src/app/shared/pipes/phone-number.pipe.ts","webpack:///src/app/shared/pipes/phone-or-ext.pipe.ts","webpack:///src/app/shared/services/auth.interceptor.ts","webpack:///src/app/shared/services/maintenance.interceptor.ts","webpack:///src/app/shared/services/title.service.ts","webpack:///src/app/shared/shared.const.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/shared/state/auth/auth.actions.ts","webpack:///src/app/shared/state/auth/auth.state.ts","webpack:///src/app/shared/state/core/core.actions.ts","webpack:///src/app/shared/state/core/core.state.ts","webpack:///src/app/shared/state/period/period.actions.ts","webpack:///src/app/shared/state/period/period.state.ts","webpack:///src/app/shared/state/tabs-bus/tabs-bus.actions.ts","webpack:///src/app/shared/state/tabs-bus/tabs-bus.state.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","routes","path","loadChildren","m","MaintenanceModule","canActivate","canActivateChild","data","is_maintenance","NotifSidebarModule","outlet","pathMatch","component","lang","IndigoAuthModule","children","PrivateModule","basic_msg","title","msg","container_class","icon","AppRoutingModule","forRoot","paramsInheritanceStrategy","onSameUrlNavigation","relativeLinkResolution","scrollPositionRestoration","imports","elId","AppSkinService","config","document","_theme$","switchTheme","newTheme","themes","indexOf","getDefaultTheme","theme","next","realTheme","substitution","loadStyle","getAppVersion","styleName","head","getElementsByTagName","themeLink","getElementById","href","style","createElement","rel","appendChild","switchFavicon","favicon","domainConfig","setAttribute","asObservable","theme$","pipe","t","name","footer","ubity","status_page","ubityDomains","providedIn","Document","AppComponent","transloco","skinService","oidcConfigService","appConfig","authService","router","isFr","today","Date","isReady$","r","subscribe","withConfig","getOIDC","isAuthenticated$","events","event","gtag","production","page_path","urlAfterRedirects","setUpAnalytics","setLang","langChanges$","l","getActiveLang","selector","templateUrl","styleUrls","ROUTE_ACCOUNT_PLACEHOLDER","ROUTE_ACCOUNT_ALL","ROUTE_ACCOUNT_UNASSIGNED","BANNED_ACCOUNT_CODES","initializerConfigFn","loadAppConfig","configureAuth","toPromise","AppModule","eventService","registerForEvents","notification","type","ConfigLoaded","provide","useFactory","multi","deps","useClass","init","langToLocaleMapping","en","fr","animationType","circle","primaryColour","secondaryColour","backdropBackgroundColour","developmentMode","selectorOptions","suppressErrors","injectContainerState","key","storage","disabled","declarations","providers","bootstrap","prototype","toString","_this","map","eKey","encoder","encodeKey","values","get","length","value","encodeValue","join","IndigoAuthService","oidcSecurityService","location","store","authenticated$","checkingWhoAmi","checkAuth","authenticated","whoAmI$","dispatch","state","Boolean","url","niceUrl","prepareExternalUrl","startsWith","localStorage","setItem","removeItem","newRoute","getItem","undefined","postLoginUrl","setPostoginUrl","authorize","customParams","acr_values","ui_locales","userData$","a","selectSnapshot","getUser","getWhoAmI","whoamiAnswer","DEFAULT_INDIGO_CONFIG","oidc","client_id","signupSigninPolicy","tenantName","response_type","auto_userinfo","header_prefix","scope","well_known_endpoint","CONFIG_FILE_URL","CONFIG_API_ERROR","AppConfigService","http","ready","api_uri","endsWith","substr","version","debug","environment","conf","oidcConf","stsServer","authWellknownEndpoint","redirectUrl","window","origin","postLogoutRedirectUri","clientId","responseType","logLevel","None","Warn","triggerAuthorizationResultEvent","disableIatOffsetValidation","autoUserinfo","Debug","experimental_modules","landing","UbityDomain","items","fr_staging","en_staging","label","site_uri","help_uri","voice_uri","maintenance_uri","case_requests_uri","refer","uri","copyright","UbityIndigo","DomainConfigs","ApiErrorInterceptor","baseUri","getApiUri","request","handle","error","DummyErrorHelperService","sentryDsn","SentryErrorHandlerService","injector","sentryReady","postponedEvents","ready$","loading","langService","getDebug","initSentry","dsn","integrations","TryCatch","XMLHttpRequest","release","getEnvironment","shift","context","lang$","setTag","ngOriginalError","originalError","ErrorEvent","message","status","isSilent","console","extractedError","extractError","tags","api_error","error_data","loadAll","eventId","push","SentryScopeHelperService","errorHandler","setup","select","user","setUser","String","email","getCurrentAccountCode","ac","StudioErrorHandlerService","SilentError","LandingComponent","pageTitle$","currentTitle$","cfg","getLandingConfig","LangValidatorGuard","route","newLang","params","valid","langs","getBestLang","parseUrl","validateLang","firstChild","createUrlTree","LangResolver","LangService","missingTranslationHandler","getAvailableLangs","loadedScopes","_scopes","currentLang","getMisses","miss","otherLang","handleError","events$","payload","langName","enSuffix","getDefaultLang","navigator","languages","fromBrowser","find","nl","setActiveLang","authState","auth","preferences","fromStorage","getLangFromBrowser","scopes$","MissingTranslationService","misses","lastIndexOf","activeLang","TranslocoHttpLoader","idx","replace","TranslocoRootModule","useValue","availableLangs","defaultLang","reRenderOnLangChange","prodMode","fallbackLang","missingHandler","useFallbackTranslation","flatten","aot","StudioHttpParamEncoder","encodeURIComponent","decodeURIComponent","FIX_ERROR","Studio3ApiError","warn","Studio3ApiUnknownError","response","StudioApiService","options","_getUrl","body","post","put","patch","getApiErrorFromHTTP","cleanListResponseQuery","q","newQ","_order","resource","queryToParams","query","Object","forEach","k","Array","isArray","append","AddressComponent","icons","danger","warning","info","success","ApiErrorComponent","cd","dismissible","specialStatuses","specialPrefix","startsWithPrefix","fields","onClose","show","field","prop","f","filter","changes$","detectChanges","changes","setupError","errorKey","prefix","newP","p","cleanedError","val","emit","changeDetection","OnPush","BasicMessageComponent","activatedRoute","config$","d","EmptyComponent","template","styles","LandingContainerComponent","isRoute","findIndex","navigateByUrl","brandClick","ListComponent","fb","breakpointsObserver","_limit","_offset","count","pagination","display","columns","batchSizes","queryChanged","headerPrefix","maxPages","form","group","ColumnMode","realColumns","x","setColumns","currentValue","patchValue","emitEvent","c","newC","sortable","flexGrow","defaultClass","classType","oldFn","genericFn","translate","newOffset","page","itemsPerPage","offset","newOrder","sorts","dir","LoadingComponent","ModalRouteComponent","modalService","exit","openModal","onHide","closed","unsubscribe","modalRef","hide","lastChild","routerState","snapshot","root","modal","i18nscope","s","doOpen","modalConfig","initialState","navigate","outlets","relativeTo","$event","PaginationComponent","limit","boundaryLinks","directionLinks","maxSize","responsive","maxSizeSM","maxSizeMD","maxSizeLG","maxSizeXL","responsiveSize","offsetChanged","totalPages","pages","observe","xl","lg","md","bp","matches","breakpoints","Math","max","ceil","startPage","endPage","size","floor","i","preventDefault","PeriodSelectorComponent","periods","customRange","getCustomRange","selectedPeriod$","getSelectedPeriod","showRangeSelector","getSelected","selected","dropdown","range","setHours","start","end","PsswdInputComponent","showPassword","setupInput","input","toggle","SmartSelectComponent","placeholder","clearable","markFirst","multiple","selectOnTab","editableSearchTerm","i18nSuffix$","getLangSuffix$","selectClear","selectSearch","selectChange","onChange","onTouched","source","setupSource","results$","labelProp","labelProperty","idProp","idProperty","typeahead","loading$","labelPropi18n","addressProp","obj","fn","isDisabled","useExisting","setValue","TimezoneSelectorComponent","inputClass","tz","tzCode","defaultTz","Intl","DateTimeFormat","resolvedOptions","timeZone","sort","b","getTimezone","DisabledDelayDirective","disabledByDelay","defaultDelay","lastUpdated","setupTimeout","clearTimeout","isNaN","diff","now","timeout","InputPasswordDirective","SCROLL_OFFSET_FRACTION","MARGIN","CONTINUOUS_SCROLLING_TIMEOUT_INTERVAL","REFRESH_INTERVAL","ARROW_MARGIN","ResponsiveTabsDirective","el","renderer","padding","margin","listSize","hostSize","height","leftPos","direction","wwidth$","hscroll$","showLeftArrow","showRightArrow","listeners","target","innerWidth","responsiveTabs","list","checkListSize","listener","container","scroller","addClass","nativeElement","querySelector","arrowLeft","arrowRight","insertBefore","listen","scrollLeft","scrollBy","createContainer","checkSize","wwidth","isScrollable","scrollRight","querySelectorAll","item","clientWidth","clientHeight","setStyle","Important","parentElement","setLeftPos","min","fraction","maxLeft","side","SmartLinkWithHrefDirective","locationStrategy","subscription","updateTargetUrlAndHref","button","ctrlKey","metaKey","shiftKey","smartLink","extras","skipLocationChange","attrBoolValue","replaceUrl","urlTree","serializeUrl","preserve","queryParams","fragment","preserveQueryParams","queryParamsHandling","preserveFragment","ErrorComponent","parentF","errorMessages","controls","_controls","errorClass","showAll","withName","messages","getMessages","setupControls","controlNames","extractNamesFromGroup","control","fc","n","isDirtyAndTouched","validationDisabled","errors","controlName","theKey","some","dirty","touched","viewProviders","controlPath","parent","FormControlValidateDirective","showValid","invalid","formControlName","formDirective","getControl","FormGroupErrorComponent","formGroup","FormGroupComponent","elRef","names","FormControlNames","vars","textContent","trim","descendants","FormGroupComponentParent","DEFAULT_ERRORS","reduce","StudioFormsModule","AuthenticatedGuard","isFullyAuthenticated$","isAuthorized","parentRoute","cleanTree","isAuthenticated","MaintenanceGuard","inMaintenance","isInMaintenance","nextId","ModalConfirmComponent","showCheckbox","showAlert","checkboxText","alertText","alertType","alertIcon","cancelText","confirmText","confirmClass","confirmed","action","confirm","DomainPipe","DurationPipe","h","remains","retval","EncodeUriPipe","encodeURI","PhoneNumberPipe","parsed","country","format","countryCallingCode","formated","PhoneOrExtPipe","mainNumber","isPossible","ext","insecureEndpoints","AuthInterceptor","oidcSecurityServices","getAuthPrefix","log","token1","getIdToken","token","getToken","authenticatedReq","clone","headers","set","MaintenanceInterceptor","TitleService","domainConf","sections","sections$","currentTitle","getTitle","domainConfig$","selectTranslate","domainName","common","setTitle","BOOTSTRAP_BREAKPOINTS","xs","sm","MAX_WIDTH_BREAKPOINTS","MIN_WIDTH_BREAKPOINTS","DISCREET_LOADING_CFG","SharedModule","WhoAmi","Logout","LoggedIn","LoggedOut","AuthUpdated","UpdatedProfile","UpdatedProfileFro","AUTH_FRESHNESS","defaultState","account_codes","permissions","lastUpdate","AuthState","api","zone","ctx","pseudoUser","newState","cleanWhoAmIResponse","patchState","accounts","first_name","last_name","run","tk","domains","cancelUncompleted","defaults","cleanUser","u","default_account","master_accountcode","cleanPrefs","prefs","ret","JSON","parse","accounts_count","SetAccount","SetMenu","AddAccount","RemoveAccount","AccountsUpdated","GetAccount","StartMaintenance","StopMaintenance","FORBID_DELAY","accountcode","menu","accounts_retrieved","forbidden_accountcodes","CoreState","getState","st","static_hack","account","decommissioned","domain_name","flags","is_domain","newAccounts","newAccouncodes","newAccountsMap","newAccountsRetrieved","splice","currentUrl","setState","current","maintenance_last_check","maintenance","cleanAccount","PRESET_PERIODS","SelectPeriod","SetCustomPeriod","SetPeriodTimezone","BuildPeriods","_last_update","PeriodState","custom","timezone","buildPeriods","newPeriods","yesterday","period","TabsMessage","TabsMessageReceived","CHANNEL_ID","TabsBusStateModel","TabsBusState","actions$","sendPayload","__proto__","constructor","bootstrapModule","err"],"mappings":"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","file":"main-es5.js","sourcesContent":["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 = \"./$$_lazy_route_resource lazy recursive\";","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n// import { PERMISSIONS } from './config/permissions.const';\nimport { LandingComponent } from './landing/landing.component';\nimport { LangValidatorGuard } from './lang/lang-validator.guard';\nimport { LangResolver } from './lang/lang.resolver';\nimport { BasicMessageComponent } from './shared/components/basic-message/basic-message.component';\nimport { AuthenticatedGuard } from './shared/guards/authenticated.guard';\nimport { MaintenanceGuard } from './shared/guards/maintenance.guard';\nimport { PermsGuard } from './shared/guards/perms.guard';\n\nconst routes: Routes = [\n {\n path: 'maintenance',\n loadChildren: () => import('./maintenance/maintenance.module').then(m => m.MaintenanceModule),\n canActivate: [MaintenanceGuard],\n canActivateChild: [MaintenanceGuard],\n data: {\n is_maintenance: true\n }\n },\n // {\n // path: 'client-info',\n // loadChildren: () => import('./private/client-info/client-info.module').then(m => m.ClientInfoModule),\n // canActivateChild: [PermsGuard, MaintenanceGuard],\n // outlet: 'modal',\n // data: {\n // permissions: PERMISSIONS.client_info_window_view\n // }\n // },\n {\n path: 'notifications',\n loadChildren: () => import('./private/notif-sidebar/notif-sidebar.module').then(m => m.NotifSidebarModule),\n canActivateChild: [AuthenticatedGuard, MaintenanceGuard],\n outlet: 'modal',\n },\n {\n path: '',\n // redirectTo: 'fr/login',\n pathMatch: 'full',\n component: LandingComponent,\n resolve: {\n lang: LangResolver\n },\n // canActivate: [AnonymousGuard]\n // canActivate: [LangSelectorGuard],\n // component: EmptyComponent\n },\n {\n path: '',\n loadChildren: () => import('./auth/auth.module').then(m => m.IndigoAuthModule),\n },\n {\n path: ':lang',\n canActivate: [LangValidatorGuard],\n canActivateChild: [LangValidatorGuard],\n children: [\n // {\n // path: 'signout',\n // canActivate: [SignoutGuard],\n // component: EmptyComponent\n // },\n // {\n // path: '',\n // loadChildren: () => import('./auth/auth.module').then(m => m.IndigoAuthModule),\n // },\n {\n path: 'app',\n loadChildren: () => import('./private/private.module').then(m => m.PrivateModule),\n canActivateChild: [AuthenticatedGuard, MaintenanceGuard],\n }\n ]\n },\n {\n path: '**',\n component: BasicMessageComponent,\n data: {\n basic_msg: {\n title: 'not-found.title',\n msg: 'not-found.msg',\n container_class: 'alert alert-warning',\n icon: 'fas fa-exclamation-circle pull-right'\n }\n }\n // redirectTo: 'account/' + ROUTE_ACCOUNT_PLACEHOLDER,\n // pathMatch: 'full'\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n paramsInheritanceStrategy: 'always',\n onSameUrlNavigation: 'reload',\n relativeLinkResolution: 'corrected',\n scrollPositionRestoration: 'enabled',\n // enableTracing: !environment.production\n })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AppConfigService } from './config/app-config.service';\nimport { IDomainConfig } from './config/domains-skin.model';\nimport { DomainConfigs } from './config/domains-skin.const';\n\nconst elId = 'studio-theme';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppSkinService {\n // FRO\n // static readonly themes = ['ubity', 'xittel', 'telox', 'telenet', 'cooptel', 'vocem', 'ordinacoeur', 'nanaimo', 'quebec'];\n\n static readonly themes = ['ubity'];\n\n // FRO\n // static readonly ubityDomains = ['ubity', 'nanaimo', 'quebec'];\n static readonly ubityDomains = ['ubity'];\n\n static readonly substitution = {\n ubity: 'indigo'\n };\n\n protected theme: string;\n\n constructor(\n protected config: AppConfigService,\n @Inject(DOCUMENT) private document: Document,\n ) {\n this.switchTheme();\n }\n\n\n\n // If it is needed to know the current theme eventually outside of the service\n // tslint:disable-next-line: variable-name\n protected _theme$ = new ReplaySubject();\n\n get theme$() {\n return this._theme$.asObservable();\n }\n\n get domainConfig$(): Observable {\n return this.theme$.pipe(\n map(t => this.domainConfig),\n );\n }\n\n get domainConfig(): IDomainConfig {\n // const realTheme = this.theme === 'default' ? this.config.getDefaultTheme() : this.theme;\n const realTheme = this.theme;\n return {\n name: realTheme, footer: [],\n // status_page: DomainConfigs.ubity.status_page,\n ...DomainConfigs[realTheme]\n };\n }\n\n get defaultStatusPage() { return DomainConfigs.ubity.status_page; }\n\n switchTheme(newTheme?: string) {\n if (!newTheme || newTheme === 'default' || AppSkinService.themes.indexOf(newTheme) === -1) {\n newTheme = this.config.getDefaultTheme();\n }\n\n if (newTheme !== this.theme) {\n\n this.theme = newTheme;\n this._theme$.next(newTheme);\n const realTheme = AppSkinService.substitution[newTheme] ? AppSkinService.substitution[newTheme] : newTheme;\n // const realTheme = newTheme === 'default' ? this.config.getDefaultTheme() : newTheme;\n\n this.loadStyle(`assets/themes/${realTheme}/theme.css?v=` + this.config.getAppVersion());\n }\n }\n\n\n protected loadStyle(styleName: string) {\n const head = this.document.getElementsByTagName('head')[0];\n\n const themeLink = this.document.getElementById(\n elId\n ) as HTMLLinkElement;\n if (themeLink) {\n themeLink.href = styleName;\n } else {\n const style = this.document.createElement('link');\n style.id = elId;\n style.rel = 'stylesheet';\n style.href = `${styleName}`;\n\n head.appendChild(style);\n }\n this.switchFavicon();\n }\n\n protected switchFavicon() {\n const favicon = this.domainConfig.favicon || 'favicon.ico';\n this.document.getElementById('appFavicon').setAttribute('href', favicon);\n\n\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, HostBinding, Inject, OnInit } from '@angular/core';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { OidcConfigService, OidcSecurityService } from 'angular-auth-oidc-client';\nimport { format, utcToZonedTime } from 'date-fns-tz';\nimport { filter, map, take } from 'rxjs/operators';\nimport { AppSkinService } from './app-skin.service';\nimport { IndigoAuthService } from './auth/auth.service';\nimport { AppConfigService } from './config/app-config.service';\nimport { TitleService } from './shared/services/title.service';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\n\ndeclare let gtag: Function;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n\n\n @HostBinding('class.lang-fr')\n isFr = false;\n\n today = new Date();\n constructor(\n @Inject(DOCUMENT) private document: any,\n private transloco: TranslocoService,\n public skinService: AppSkinService,\n protected title: TitleService,\n protected oidcConfigService: OidcConfigService,\n protected appConfig: AppConfigService,\n protected authService: IndigoAuthService,\n protected router: Router\n ){\n this.appConfig.isReady$.pipe(\n filter(r => r),\n // map(() => oidcConfigService.withConfig(appConfig.getOIDC())),\n take(1)\n ).subscribe(() => {\n oidcConfigService.withConfig(appConfig.getOIDC());\n this.authService.isAuthenticated$.subscribe();\n });\n this.authService.isAuthenticated$.subscribe();\n }\n\n setUpAnalytics() {\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n gtag('config', environment.production ? 'G-PKT9RBLQNT' : 'G-07K8113XBF',\n {\n page_path: event.urlAfterRedirects\n }\n );\n });\n }\n\n\n ngOnInit(){\n this.setUpAnalytics();\n this.setLang();\n this.transloco.langChanges$.subscribe(l => {\n this.setLang();\n });\n\n\n // // TODO Set title for each page\n // this.skinService.domainConfig$.subscribe((c) => {\n // this.title.setTitle(`${c.name} Control Panel`);\n // });\n }\n setLang() {\n this.isFr = this.transloco.getActiveLang() === 'fr';\n }\n\n}\n","\n\n","// Used as a placeholder for routes when we don't know yet to which account we should redirect\nexport const ROUTE_ACCOUNT_PLACEHOLDER = '__';\n// Sent by control2 when (All Customers) is selected\nexport const ROUTE_ACCOUNT_ALL = 'ALL';\n// Sent by control2 when (Unassigned)) is selected\nexport const ROUTE_ACCOUNT_UNASSIGNED = 'unassigned';\n\nexport const BANNED_ACCOUNT_CODES = [\n ROUTE_ACCOUNT_PLACEHOLDER,\n ROUTE_ACCOUNT_ALL,\n ROUTE_ACCOUNT_UNASSIGNED,\n // The following will cause an invalid route as accountcodes are used in URI\n '.',\n '..'\n];\n","import { HttpClientModule, HttpParams, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { TranslocoLocaleModule } from '@ngneat/transloco-locale';\nimport { NgxsReduxDevtoolsPluginModule } from '@ngxs/devtools-plugin';\nimport { NgxsStoragePluginModule, StorageOption } from '@ngxs/storage-plugin';\nimport { NgxsModule } from '@ngxs/store';\nimport { AuthModule, EventTypes, OidcConfigService, PublicEventsService } from 'angular-auth-oidc-client';\nimport { AlertModule } from 'ngx-bootstrap/alert';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\nimport { TabsModule } from 'ngx-bootstrap/tabs';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { ngxLoadingAnimationTypes, NgxLoadingModule } from 'ngx-loading';\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\nimport { NgxsResetPluginModule } from 'ngxs-reset-plugin';\nimport { filter, map, take } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AppConfigService } from './config/app-config.service';\nimport { ApiErrorInterceptor } from './errors/api-error.interceptor';\nimport { DummyErrorHelperService } from './errors/dummy-error-helper.service';\nimport { SentryErrorHandlerService } from './errors/sentry-error-handler.service';\nimport { SentryScopeHelperService } from './errors/sentry-scope-helper.service';\nimport { StudioErrorHandlerService } from './errors/studio-error-handler.service';\nimport { LandingComponent } from './landing/landing.component';\nimport { TranslocoRootModule } from './lang/transloco-root.module';\nimport { StudioFormsModule } from './shared/forms/forms.module';\nimport { AuthInterceptor } from './shared/services/auth.interceptor';\nimport { MaintenanceInterceptor } from './shared/services/maintenance.interceptor';\nimport { SharedModule } from './shared/shared.module';\nimport { AuthState } from './shared/state/auth/auth.state';\nimport { CoreState } from './shared/state/core/core.state';\n// import { FlashState } from './shared/state/flash/flash.state';\nimport { PeriodState } from './shared/state/period/period.state';\nimport { defineLocale } from 'ngx-bootstrap/chronos';\nimport { frLocale } from 'ngx-bootstrap/locale';\nimport { TabsBusState } from './shared/state/tabs-bus/tabs-bus.state';\n\ndefineLocale('fr', frLocale);\n\nconst initializerConfigFn = (appConfig: AppConfigService) => {\n return () => {\n return appConfig.loadAppConfig();\n };\n};\n\nfunction configureAuth(\n oidcConfigService: OidcConfigService,\n appConfig: AppConfigService, transloco: TranslocoService) {\n return () => {\n return appConfig.isReady$.pipe(\n filter(r => r),\n map(() => oidcConfigService.withConfig(appConfig.getOIDC())),\n take(1)\n ).toPromise();\n };\n}\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n LandingComponent\n ],\n imports: [\n SharedModule,\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n HttpClientModule,\n TranslocoRootModule,\n TranslocoLocaleModule.init({\n langToLocaleMapping: {\n en: 'en-CA',\n fr: 'fr-CA'\n }\n }),\n CollapseModule.forRoot(), // from ngx-bootstrap\n BsDropdownModule.forRoot(), // from ngx-bootstrap\n TooltipModule.forRoot(), // from ngx-bootstrap\n ModalModule.forRoot(), // from ngx-bootstrap\n AlertModule.forRoot(), // from ngx-bootstrap\n TabsModule.forRoot(), // from ngx-bootstrap\n ProgressbarModule.forRoot(), // from ngx-bootstrap\n PopoverModule.forRoot(), // from ngx-bootstrap\n StudioFormsModule, // from shared/forms\n VirtualScrollerModule, // from ngx-virtual-scroller\n SharedModule, // tons of shared\n CollapseModule.forRoot(), // from ngx-bootstrap\n BsDatepickerModule.forRoot(), // from ngx-bootstrap\n\n NgxLoadingModule.forRoot({\n animationType: ngxLoadingAnimationTypes.circle,\n primaryColour: '#fff',\n secondaryColour: 'rgba(255,255,255,0.2)',\n backdropBackgroundColour: 'rgba(37, 39, 56, 0.2)'\n }),\n\n // NGXS\n NgxsModule.forRoot([\n AuthState,\n CoreState,\n // FlashState,\n PeriodState,\n TabsBusState\n ], {\n developmentMode: !environment.production,\n selectorOptions: {\n suppressErrors: false,\n injectContainerState: false\n }\n }),\n // Storage should be the first ngxs plugin\n // DISABLE WHILE NOT IN PRODUCTION AND A LOT OF CHANGES ARE HAPPENING\n NgxsStoragePluginModule.forRoot({\n key: [\n // AuthState,\n // CoreState\n // PeriodState\n ],\n storage: StorageOption.SessionStorage\n }),\n NgxsResetPluginModule.forRoot(),\n // ReduxDevTools should be last ngxs plugin\n NgxsReduxDevtoolsPluginModule.forRoot({\n disabled: environment.production\n }),\n\n AuthModule.forRoot({\n // storage:\n })\n ],\n providers: [\n // va executer en tout premier\n {\n provide: APP_INITIALIZER,\n useFactory: initializerConfigFn,\n multi: true,\n deps: [AppConfigService],\n },\n\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ApiErrorInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: MaintenanceInterceptor, multi: true },\n\n // TODO: TEST HOW THIS INTERACTS WITH OIDC\n // {\n // provide: NGXS_PLUGINS,\n // useValue: tabsBusPlugin,\n // multi: true\n // },\n\n {\n provide: ErrorHandler,\n useClass: environment.production ? SentryErrorHandlerService : StudioErrorHandlerService,\n },\n {\n provide: 'ErrorHelper',\n useClass: environment.production ? SentryScopeHelperService : DummyErrorHelperService\n },\n OidcConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: configureAuth,\n deps: [OidcConfigService, AppConfigService, TranslocoService],\n multi: true,\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n constructor(private readonly eventService: PublicEventsService) {\n this.eventService\n .registerForEvents()\n .pipe(filter((notification) => notification.type === EventTypes.ConfigLoaded))\n .subscribe((config) => {\n // console.log('ConfigLoaded', config);\n });\n }\n}\n\n\n// Fix for http params as\n// https://github.com/angular/angular/issues/19071\nHttpParams.prototype.toString = function() {\n // tslint:disable-next-line: variable-name\n const _this = this;\n this.init();\n return this.keys()\n // tslint:disable-next-line: only-arrow-functions\n .map(function(key) {\n let eKey = _this.encoder.encodeKey(key);\n const values = _this.map.get(key);\n if (values.length > 1) {\n eKey += '[]';\n }\n // tslint:disable-next-line: only-arrow-functions\n return values.map(function(value) { return eKey + '=' + _this.encoder.encodeValue(value); })\n .join('&');\n })\n .join('&');\n};\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\nimport { of, ReplaySubject } from 'rxjs';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { WhoAmi } from '../shared/state/auth/auth.actions';\nimport { AuthState } from '../shared/state/auth/auth.state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IndigoAuthService {\n\n protected authenticated$ = new ReplaySubject();\n\n get isAuthenticated$() {\n return this.authenticated$.asObservable().pipe(\n );\n }\n get isAnonymous$() {\n return this.authenticated$.asObservable().pipe(\n map(a => !a));\n }\n\n checkingWhoAmi = false;\n protected whoAmI$;\n\n get isFullyAuthenticated$() {\n // Used in authenticated.guard since state is no longer stored\n return this.isAuthenticated$.pipe(\n switchMap((authenticated) => {\n if (!authenticated) {\n return of(authenticated);\n }\n // If i'm authenticated then\n if (this.store.selectSnapshot(AuthState.getUser)) {\n return of(authenticated);\n } else {\n return this.getWhoAmI().pipe(\n catchError(e => {\n return of(false);\n }),\n map((whoamiAnswer) => {\n return whoamiAnswer;\n })\n );\n }\n })\n );\n }\n constructor(\n protected oidcSecurityService: OidcSecurityService,\n private location: Location,\n protected store: Store\n ) {\n this.oidcSecurityService.checkAuth().subscribe((authenticated) => {\n this.authenticated$.next(authenticated);\n });\n }\n\n\n protected getWhoAmI() {\n if (!this.checkingWhoAmi) {\n this.checkingWhoAmi = true;\n this.whoAmI$ = new ReplaySubject();\n this.store.dispatch(new WhoAmi()).pipe(\n catchError(e => {\n this.checkingWhoAmi = false;\n this.whoAmI$.next(false);\n return of(null);\n })\n ).subscribe((state) => {\n this.checkingWhoAmi = false;\n this.whoAmI$.next(Boolean(state));\n });\n }\n return this.whoAmI$;\n }\n setPostoginUrl(url: string) {\n const niceUrl = this.location.prepareExternalUrl(url);\n if (!niceUrl.startsWith('/login') && !niceUrl.startsWith('/logout')) {\n localStorage.setItem('postLogin', niceUrl);\n } else {\n localStorage.removeItem('postLogin');\n }\n }\n\n getPostLoginUrl() {\n let newRoute = localStorage.getItem('postLogin');\n if (newRoute) {\n localStorage.removeItem('postLogin');\n if (newRoute.startsWith('/login') || newRoute.startsWith('/logout')) {\n newRoute = undefined;\n }\n }\n if (!newRoute) {\n newRoute = '/__/app/account';\n }\n return newRoute;\n }\n\n authorize(postLoginUrl: string, lang: string) {\n if (postLoginUrl) {\n this.setPostoginUrl(postLoginUrl);\n }\n // console.log(\"Languge is: \", lang);\n return this.oidcSecurityService.authorize({\n // urlHandler,\n customParams: {\n acr_values: 'Multi_Factor Single_Factor',\n ui_locales: lang,\n }\n });\n }\n\n getUserData$() {\n return this.oidcSecurityService.userData$;\n }\n}\n","import { IIndigoConfig } from './app-config.model';\n\nexport const DEFAULT_INDIGO_CONFIG: Partial = {\n theme: 'ubity',\n oidc: {\n url: 'gocob2c.onmicrosoft.com/9a28ed30-7a37-4753-a113-b65651b58633/v2.0/',\n client_id: 'b4ede085-e0cc-42f7-abf4-1ac28afd8681', // indigo_ng_app\n signupSigninPolicy: 'B2C_1_sign_in',\n tenantName: 'gocob2c',\n response_type: 'code', // Soufiane avait code id_token ...authorization code AND id token\n auto_userinfo: false,\n header_prefix: \"Bearer-az2\",\n scope: 'https://gocob2c.onmicrosoft.com/b4ede085-e0cc-42f7-abf4-1ac28afd8681/access_as_user openid profile', // indigo_ng_app\n well_known_endpoint: 'https://gocob2c.b2clogin.com/gocob2c.onmicrosoft.com/B2C_1_sign_in/v2.0/.well-known/openid-configuration',\n }\n};\n\n// production\n\n// export const DEFAULT_INDIGO_CONFIG: Partial = {\n// theme: 'ubity',\n// oidc: {\n// url: 'gocob2c.onmicrosoft.com/9a28ed30-7a37-4753-a113-b65651b58633/v2.0/',\n// client_id: 'b4ede085-e0cc-42f7-abf4-1ac28afd8681', // indigo_ng_app\n// signupSigninPolicy: 'B2C_1_sign_in',\n// tenantName: 'gocob2c',\n// response_type: 'code', // Soufiane avait code id_token ...authorization code AND id token\n// auto_userinfo: false,\n// header_prefix: \"Bearer-az2\",\n// scope: 'https://gocob2c.onmicrosoft.com/b4ede085-e0cc-42f7-abf4-1ac28afd8681/access_as_user openid profile', // indigo_ng_app\n// well_known_endpoint: 'https://gocob2c.b2clogin.com/gocob2c.onmicrosoft.com/B2C_1_sign_in/v2.0/.well-known/openid-configuration',\n// }\n// };\n\n// Production\n\n// - oidc.url (tenant ID) \n\n// https://gocob2c.onmicrosoft.com/9a28ed30-7a37-4753-a113-b65651b58633 \n\n// - oidc.client_id \n\n// f340a38c-1191-4395-ba0f-61105b1e6175 \n\n// - oidc.signupSigninPolicy\t \n\n// B2C_1_sign_in \n\n// - oidc.tenantName \n\n// gocob2c \n\n// - oidc.scope \n\n// https://gocob2c.onmicrosoft.com/f340a38c-1191-4395-ba0f-61105b1e6175/access_as_user \n\n// - oidc.well_known_endpoint \n\n// https://gocob2c.b2clogin.com/gocob2c.onmicrosoft.com/B2C_1_sign_in/v2.0/.well-known/openid-configuration \n\n\n\n\n\n// staging\n\n// export const DEFAULT_INDIGO_CONFIG: Partial = {\n// theme: 'ubity',\n// oidc: {\n// url: 'https://gocob2cdev.b2clogin.com/8f70c1ad-9357-4fe5-9a60-2df469edebc2/v2.0/',\n// client_id: '9c726916-7efd-4e6c-9d9f-727c29859192', // indigo_ng_app\n// signupSigninPolicy: 'B2C_1_sign_in',\n// tenantName: 'GoCoB2CDEV',\n// response_type: 'code', // Soufiane avait code id_token ...authorization code AND id token\n// auto_userinfo: false,\n// header_prefix: \"Bearer-az2\",\n// scope: 'https://GoCoB2CDEV.onmicrosoft.com/9c726916-7efd-4e6c-9d9f-727c29859192/access_as_user openid profile', // indigo_ng_app\n// well_known_endpoint: 'https://GoCoB2CDEV.b2clogin.com/GoCoB2CDEV.onmicrosoft.com/b2c_1_sign_in/v2.0/.well-known/openid-configuration',\n// }\n// };\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ReplaySubject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { IIndigoConfig, IIndigoLandingConfig } from './app-config.model';\nimport { OpenIdConfiguration, LogLevel } from 'angular-auth-oidc-client';\nimport { merge } from 'lodash';\nimport { DEFAULT_INDIGO_CONFIG } from './app-config.default';\n\nexport const CONFIG_FILE_URL = 'assets/config/config.json';\nexport const CONFIG_API_ERROR = 'Missing api_uri in dynamic config';\n@Injectable({\n providedIn: 'root'\n})\nexport class AppConfigService {\n protected appConfig: IIndigoConfig;\n protected readonly ready = new ReplaySubject();\n\n constructor(private http: HttpClient) {\n this.ready.next(false);\n }\n\n loadAppConfig() {\n return this.http\n .get(CONFIG_FILE_URL)\n .toPromise()\n .then((data: IIndigoConfig) => {\n this.appConfig = merge(DEFAULT_INDIGO_CONFIG, data);\n if (!this.appConfig.api_uri) {\n throw new Error(CONFIG_API_ERROR);\n }\n if (this.appConfig.api_uri.endsWith('/')) {\n this.appConfig.api_uri = this.appConfig.api_uri.substr(0, this.appConfig.api_uri.length - 1);\n }\n this.ready.next(true);\n });\n }\n\n get isReady$() { return this.ready.asObservable(); }\n getDefaultTheme() {\n return this.appConfig ? this.appConfig.theme : DEFAULT_INDIGO_CONFIG.theme;\n }\n\n getAppVersion() {\n return environment.version;\n }\n\n getDebug() {\n return this.appConfig.debug || !environment.production;\n }\n\n getProdMode() {\n return environment.production;\n }\n\n getEnvironment() {\n return this.appConfig ? this.appConfig.environment : undefined;\n }\n\n getApiUri() {\n return this.appConfig.api_uri;\n }\n\n getAppConfig(): IIndigoConfig {\n return this.appConfig;\n }\n getOIDCConf() {\n return this.appConfig.oidc;\n }\n\n getAuthPrefix() {\n return this.appConfig.oidc.header_prefix;\n }\n getOIDC(): OpenIdConfiguration {\n const conf = this.appConfig.oidc;\n // console.log(\"CONF: \", conf);\n const oidcConf: OpenIdConfiguration = {\n stsServer: conf.url,\n authWellknownEndpoint: conf.well_known_endpoint,\n redirectUrl: window.location.origin + '/login',\n postLogoutRedirectUri: window.location.origin + '/',\n clientId: conf.client_id,\n scope: conf.scope || 'openid',\n responseType: conf.response_type, // was 'code',\n logLevel: (environment.production ? LogLevel.None : LogLevel.Warn),\n storage: localStorage,\n triggerAuthorizationResultEvent: true,\n disableIatOffsetValidation: true,\n autoUserinfo: false, // was false\n };\n if (conf.well_known_endpoint) {\n oidcConf.authWellknownEndpoint = conf.well_known_endpoint;\n }\n switch (null) {// a valider\n case LogLevel.None:\n case 'None':\n oidcConf.logLevel = LogLevel.None;\n break;\n case LogLevel.Error:\n case 'Error':\n oidcConf.logLevel = LogLevel.Error;\n break;\n case LogLevel.Warn:\n case 'Warn':\n oidcConf.logLevel = LogLevel.Warn;\n break;\n case LogLevel.Debug:\n case 'Debug':\n oidcConf.logLevel = LogLevel.Debug;\n break;\n }\n\n return oidcConf;\n }\n\n\n\n getExperimentalModules(): string[] {\n return this.appConfig.experimental_modules || [];\n }\n\n getLandingConfig(): IIndigoLandingConfig {\n return this.appConfig.landing;\n }\n\n\n}\n","import { IDomainConfig } from './domains-skin.model';\nimport { ShowNotifs } from '../private/states/notifs/notif.actions';\n\nconst UbityDomain: IDomainConfig = {\n name: 'GoCo', favicon: 'assets/themes/ubity/favicon.ico',\n footer: [\n\n\n // {\n // title: { fr: 'Assistance tĂ©lĂ©phonique', en: 'Helpline' },\n // items: [\n // {\n // type: 'phone', number: '877-439-4626',\n // label: { fr: 'NUMÉRO SANS FRAIS', en: 'CALL US - TOLL FREE' }\n // }\n // ]\n // },\n\n // Was removed lot's of code starting here\n\n\n // {\n // title: { fr: 'Assistance', en: 'Support' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'https://support.ubity.com/tech/', en: 'https://support.ubity.com/tech/en/' },\n // label: { fr: 'Centre d\\'aide', en: 'Help center' }\n // },\n // {\n // action: new ShowNotifs('updates'),\n // label: { fr: 'Mise Ă  jour rĂ©centes', en: 'Recent updates' }\n // },\n // ]\n // }\n // ]\n // },\n\n\n // 1\n {\n title: { fr: 'Ă€ propos de nous', en: 'About us' },\n items: [\n {\n type: 'menu',\n items: [\n {\n url: {\n fr: 'https://www.goco.ca/fr/', en: 'https://goco.ca',\n fr_staging: 'https://www.goco.ca/fr/', en_staging: 'https://goco.ca',\n },\n label: { fr: 'Goco.ca', en: 'Goco.ca' }\n },\n // {\n // // url: { fr: 'https://www.ubity.com/fr/carri%C3%A8res', en: 'https://www.ubity.com/careers' },\n // label: { fr: 'Mise-Ă -jour rĂ©cente', en: 'Recent updates' }\n // },\n {\n url: {\n fr: 'https://www.goco.ca/fr/carrieres/', en: 'https://www.goco.ca/careers/',\n fr_staging: 'https://www.goco.ca/fr/carrieres/', en_staging: 'https://www.goco.ca/careers/',\n },\n label: { fr: 'Carrières', en: 'Careers' }\n }\n ]\n }\n ]\n },\n\n// 2\n{\n title: { fr: 'Assistance', en: 'Support' },\n items: [\n {\n type: 'menu',\n items: [\n {\n url: {\n fr: 'https://goco.service-now.com/csm',\n en: 'https://goco.service-now.com/csm',\n fr_staging: 'https://goco.service-now.com/csm',\n en_staging: 'https://goco.service-now.com/csm',\n },\n label: { fr: \"Portail du service client\", en: 'Customer care portal' }\n },\n {\n url: {\n fr: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n en: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n fr_staging: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n en_staging: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n },\n label: { fr: 'Mes cas et requĂªtes', en: 'My cases & requests' }\n }\n ]\n }\n ]\n},\n\n// 3\n{\n title: { fr: 'Assistance tĂ©lĂ©phonique', en: 'Helpline' },\n items: [\n {\n type: 'menu',\n items: [\n {\n // url: { fr: '', en: '' },\n label: { fr: '+1 877 439 4626', en: '+1 877 439 4626' }\n }\n ]\n }\n ]\n},\n\n// 4\n{\n title: { fr: 'Contactez-nous', en: 'Contact' },\n items: [\n {\n type: 'menu',\n items: [\n {\n url: {\n fr: 'mailto:soutien-donnees@goco.ca', en: 'mailto:data-support@goco.ca',\n fr_staging: 'mailto:soutien-donnees@goco.ca', en_staging: 'mailto:data-support@goco.ca',\n },\n label: { fr: 'soutien-donnees@goco.ca', en: 'data-support@goco.ca' }\n },\n {\n url: {\n fr: 'mailto:soutien-voix@goco.ca', en: 'mailto:voice-support@goco.ca',\n fr_staging: 'mailto:soutien-voix@goco.ca', en_staging: 'mailto:voice-support@goco.ca',\n },\n label: { fr: 'soutien-voix@goco.ca', en: 'voice-support@goco.ca' }\n }\n ]\n }\n ]\n},\n\n\n\n\n // {\n // title: { fr: 'Parrainez une entreprise', en: 'Refer a business' },\n // items: [\n // {\n // type: 'refer', url: '/refer-a-business', img: 'assets/themes/indigo/speaker_sm.svg',\n // label: { fr: 'RĂ©fĂ©rez une entreprise Ă  GoCo
et recevez 500 $', en: 'Refer a business to GoCo
and receive 500 $' }\n // }\n // ]\n // }\n\n\n\n\n\n\n // to there\n\n\n ],\n site_uri: {\n fr: 'https://my.goco.ca/fr/app/account/__/dashboard', en: '// https://my.goco.ca/en/app/account/__/dashboard'\n },\n help_uri: {\n fr: 'https://goco.service-now.com/csm', en: 'https://goco.service-now.com/csm',\n fr_staging: 'https://goco.service-now.com/csm', en_staging: 'https://goco.service-now.com/csm'\n },\n // voice_uri: { // Introduced in Dec 2021 by Fro\n // fr: 'https://goco.myossbss.com/customers/sp-summary/?ljs=fr', en: 'https://goco.myossbss.com/',\n // fr_staging: 'https://beta-goco.myossbss.com/social/login/azureb2c/', en_staging: 'https://beta-goco.myossbss.com/social/login/azureb2c/'\n // },\n // voice_uri: { // Introduced in Dec 2021 by Fro\n // fr: 'https://goco.myossbss.com/social/login/azureb2c/', en: 'https://goco.myossbss.com/social/login/azureb2c/',\n // fr_staging: 'https://beta-goco.myossbss.com/social/login/azureb2c/', en_staging: 'https://beta-goco.myossbss.com/social/login/azureb2c/'\n // },\n\n voice_uri: { // Introduced in May 10th 2022 by Fro\n fr: 'https://voice.goco.ca/social/login/azureb2c/', en: 'https://voice.goco.ca/social/login/azureb2c/',\n fr_staging: 'https://voice.goco.ca/social/login/azureb2c/', en_staging: 'https://voice.goco.ca/social/login/azureb2c/'\n },\n\n maintenance_uri: {\n fr: 'https://goco.service-now.com/csm?id=services_status', en: 'https://goco.service-now.com/csm?id=services_status'\n },\n case_requests_uri: {\n fr: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n en: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n fr_staging: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n en_staging: 'https://goco.service-now.com/csm?id=csm_my_lists&table=sn_customerservice_case&view=csp&target_page_id=csm_ticket&filter=null&sel=all',\n },\n status_page: 'z92x1bh5z7c4',\n // maintenance_endpoint: 'https://z92x1bh5z7c4.statuspage.io/api/v2/scheduled-maintenances/upcoming.json',\n // status_uri: 'https://z92x1bh5z7c4.statuspage.io/api/v2/status.json',\n refer: {\n uri: '/refer-a-business',\n label: {\n en: 'Refer a business to GoCo and receive 500$',\n fr: 'RĂ©fĂ©rez une entreprise Ă  GoCo et recevez 500$'\n }\n },\n copyright: {\n fr: 'GoCo Technologie, S.E.C',\n en: 'GoCo Technology LP'\n }\n};\n\nconst UbityIndigo: IDomainConfig = {\n ...UbityDomain,\n favicon: 'assets/themes/indigo/favicon_io/favicon.ico',\n};\n\nexport const DomainConfigs: { [theme: string]: IDomainConfig } = {\n // cooptel: {\n // name: 'Cooptel', favicon: 'assets/themes/cooptel/favicon.ico',\n // footer: [\n // {\n // title: { fr: 'Services', en: 'Services' },\n // items: [\n // {\n // type: 'menu', items: [\n // {\n // url: { fr: 'https://www.cooptel.ca/', en: 'https://www.cooptel.ca/' },\n // label: { fr: 'RĂ©sidentiel', en: 'Residential services' }\n // },\n // {\n // url: { fr: 'https://www.cooptel.ca/', en: 'https://www.cooptel.ca/commercial/' },\n // label: { fr: 'Affaires', en: 'Business services' }\n // },\n // {\n // url: { fr: 'https://www.cooptel.ca/', en: 'https://secure.coopmail.coop/' },\n // label: { fr: 'CoopMail', en: 'CoopMail' }\n // }\n // ]\n // }\n // ]\n // },\n // {\n // title: { fr: 'Ă€ propos', en: 'About' },\n // items: [\n // {\n // type: 'menu', items: [\n // {\n // url: { fr: 'https://www.cooptel.ca/contact/', en: 'https://www.cooptel.ca/contact/' },\n // label: { fr: 'Contactez-nous', en: 'Contact us' }\n // }\n // ]\n // }\n // ]\n // }\n // ]\n // },\n\n\n\n ubity: UbityIndigo,\n // namaio: UbityIndigo,\n // quebec: UbityIndigo,\n // xittel: {\n // name: 'Maskatel', favicon: 'assets/themes/xittel/favicon.ico',\n // footer: [\n // {\n // title: { fr: 'Support technique', en: 'Helpline' },\n // items: [\n // {\n // type: 'phone', number: '877-627-5283',\n // label: { fr: 'NUMÉRO SANS FRAIS', en: 'CALL US - TOLL FREE' }\n // },\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'https://maskatel.ca/services-residentiels/nous-joindre/', en: 'https://maskatel.ca/services-residentiels/nous-joindre/' },\n // label: { fr: 'Voir nos coordonnĂ©es complètes', en: 'See our full details' }\n // }\n // ]\n // }\n // ]\n // },\n // {\n // title: { fr: 'Maskatel', en: 'Maskatel' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'https://maskatel.ca/services-residentiels/internet/', en: 'https://maskatel.ca/en/residential-services/internet/' },\n // label: { fr: 'RĂ©sidentiel', en: 'Residential' }\n // },\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/', en: 'https://maskatel.ca/en/business-solutions/' },\n // label: { fr: 'Affaires', en: 'Business' }\n // },\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/termes-et-conditions/', en: 'https://maskatel.ca/en/business-solutions/terms-and-conditions/' },\n // label: { fr: 'Termes et conditions', en: 'Terms and conditions' }\n // }\n // ]\n // }\n // ]\n // },\n // {\n // title: { fr: 'Services Ă©voluĂ©s d\\'affaires', en: 'Enhanced business solutions' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/services-evolues/', en: 'https://maskatel.ca/en/business-solutions/enhanced-services/' },\n // label: { fr: 'Service de colocation', en: 'Colocation service' }\n // },\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/services-evolues/', en: 'https://maskatel.ca/en/business-solutions/enhanced-services/' },\n // label: { fr: 'Extension de rĂ©seau local', en: 'Extension of the local network' }\n // },\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/services-evolues/', en: 'https://maskatel.ca/en/business-solutions/enhanced-services/' },\n // label: { fr: 'Solution infonuagique', en: 'Cloud-based solutions' }\n // }\n // ]\n // }\n // ]\n // },\n // {\n // title: { fr: '', en: '' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/services-evolues/', en: 'https://maskatel.ca/en/business-solutions/enhanced-services/' },\n // label: { fr: 'Lien de relĂªve sans-fil', en: 'Wireless link' }\n // },\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/services-evolues/', en: 'https://maskatel.ca/en/business-solutions/enhanced-services/' },\n // label: { fr: 'Internet dĂ©diĂ© sur fibre', en: 'Dedicated Fibre Optic' }\n // },\n // {\n // url: { fr: 'https://maskatel.ca/services-affaires/nous-joindre/#contact', en: 'https://maskatel.ca/en/business-solutions/contact-us/#contact' },\n // label: { fr: 'Solutions sur mesure', en: 'Tailored solutions and personalized support' }\n // }\n // ]\n // }\n // ]\n // }\n // ]\n // },\n\n\n\n\n // telox: {\n // name: 'TelOX',\n // footer: [\n // {\n // title: { fr: 'Soutien TelOX', en: 'TelOX support' },\n // items: [\n // {\n // type: 'phone', number: '514-666-4357',\n // label: { fr: 'NUMÉRO SANS FRAIS', en: 'CALL US - TOLL FREE' }\n // }\n // ]\n // },\n // {\n // title: { fr: 'Nous contacter', en: 'Contact us' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'mailto:support@helpox.com', en: 'mailto:support@helpox.com' },\n // label: { fr: 'support@helpox.com', en: 'support@helpox.com' }\n // }\n // ]\n // }\n // ]\n // }\n // ]\n // },\n\n\n\n\n // telenet: {\n // name: 'Telenet', favicon: 'assets/themes/telenet/favicon.ico',\n // footer: [\n // {\n // title: { fr: 'Liens rapides', en: 'Quick links' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'http://www.telenetinfo.com/telenet/services/support-technique', en: 'http://www.telenetinfo.com/telenet/services/support-technique' },\n // label: { fr: 'Support technique', en: 'Technical Support' }\n // },\n // {\n // url: { fr: 'https://exchange.telenetinfo.com/owa/auth/', en: 'https://exchange.telenetinfo.com/owa/auth/' },\n // label: { fr: 'Zone employĂ©s', en: 'Employee Zone' }\n // },\n // {\n // url: { fr: 'https://exchange.telenetinfo.net/owa/auth/logon.aspx?replaceCurrent=1&url=https%%3a%%2f%%2fexchange.telenetinfo.net%%2fowa', en: 'https://exchange.telenetinfo.net/owa/auth/logon.aspx?replaceCurrent=1&url=https%%3a%%2f%%2fexchange.telenetinfo.net%%2fowa' },\n // label: { fr: 'Exchange clients', en: 'Exchange clients' }\n // }\n // ]\n // }\n // ]\n // },\n // {\n // title: { fr: 'Ă€ propos', en: 'About' },\n // items: [\n // {\n // type: 'menu',\n // items: [\n // {\n // url: { fr: 'http://www.telenetinfo.com/telenet/info/nos-certifications', en: 'http://www.telenetinfo.com/telenet/info/nos-certifications' },\n // label: { fr: 'Nos certifications', en: 'Our certifications' }\n // },\n // {\n // url: { fr: 'http://www.telenetinfo.com/telenet/info/a-propos', en: 'http://www.telenetinfo.com/telenet/info/a-propos' },\n // label: { fr: 'Ă€ propos', en: 'About' }\n // }\n // ]\n // }\n // ]\n // },\n // {\n // title: { fr: 'Partenaires technologiques', en: 'Technology partners' },\n // items: [\n // {\n // type: 'partners',\n // imgs: [\n // { src: 'assets/themes/telenet/logo_footer-01.svg', style: 'height: 25px;' },\n // { src: 'assets/themes/telenet/logo_footer-02.svg', style: 'height: 25px;' },\n // { src: 'assets/themes/telenet/logo_footer-03.svg', style: 'height: 15px;' },\n // { src: 'assets/themes/telenet/logo_footer-04.svg', style: 'height:12px; margin-top: 2px;' },\n // { src: 'assets/themes/telenet/logo_footer-05.svg', style: 'height: 20px; margin-top: 2px;' },\n // ],\n // all_label: { fr: 'Voir tous les partenaires', en: 'See all partners' },\n // all_url: { fr: 'http://www.telenetinfo.com/telenet/info/partenaires', en: 'http://www.telenetinfo.com/telenet/info/partenaires' },\n // }\n // ]\n // }\n // ]\n // },\n\n\n\n\n // vocem: {\n // name: 'Decibel', favicon: 'assets/themes/vocem/favicon.ico',\n // footer: [\n // {\n // title: { fr: 'Support technique', en: 'Helpline' },\n // items: [\n // {\n // type: 'phone', number: '844-922-1822',\n // label: { fr: 'NUMÉRO SANS FRAIS', en: 'CALL US - TOLL FREE' }\n // }\n // ]\n // },\n // {\n // title: { fr: 'Nous contacter', en: 'Contact us' },\n // items: [\n // {\n // type: 'menu', items: [\n // {\n // label: { fr: 'ventes@vocem.biz', en: 'ventes@vocem.biz' },\n // url: { fr: 'mailto:ventes@vocem.biz', en: 'mailto:ventes@vocem.biz' }\n // }\n // ]\n\n // }\n // ]\n // }\n // ]\n // },\n\n\n\n // ordinacoeur: {\n // name: 'Ordinacoeur', favicon: 'assets/themes/ordinacoeur/favicon.ico',\n // footer: [\n // {\n // title: { fr: 'Support technique', en: 'Helpline' },\n // items: [\n // {\n // type: 'phone', number: '514-861-2344',\n // label: { fr: 'NUMÉRO SANS FRAIS', en: 'CALL US - TOLL FREE' }\n // },\n // {\n // type: 'menu', items: [\n // {\n // label: { fr: 'Voir nos coordonnĂ©es complètes', en: 'See our full details' },\n // url: { fr: 'http://ordinacoeurrt.ca/nous-joindre/', en: 'http://ordinacoeurrt.ca/nous-joindre/' }\n // }\n // ]\n\n // }\n // ]\n // },\n // {\n // title: { fr: 'Heures d\\'ouverture', en: 'Business hours' },\n // items: [\n // {\n // type: 'menu', items: [\n // { label: { fr: 'Lundi au jeudi : 8h Ă  17 h', en: 'Monday to Thursday: 8 am to 5 pm' } },\n // { label: { fr: 'Vendredi : 8 h Ă  15 h', en: 'Friday: 8 am to 3 pm' } }\n // ]\n\n // }\n // ]\n // },\n // {\n // title: { fr: 'Nous contacter', en: 'Contact us' },\n // items: [\n // {\n // type: 'menu', items: [\n // {\n // label: { fr: 'info@ort360.ca', en: 'info@ort360.ca' },\n // url: { fr: 'mailto:info@ort360.ca', en: 'mailto:info@ort360.ca' }\n // }\n // ]\n\n // }\n // ]\n // }\n // ]\n // }\n\n\n};\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AppConfigService } from '../config/app-config.service';\nimport { Studio3ApiError } from '../shared/api';\nimport { catchError, filter, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiErrorInterceptor implements HttpInterceptor {\n baseUri;\n ready = false;\n constructor(\n public config: AppConfigService\n ) {\n this.config.isReady$.pipe(\n filter(r => r),\n tap((r) => { this.ready = r; this.baseUri = this.config.getApiUri(); }),\n take(1)\n ).subscribe();\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (this.ready && request.url.startsWith(this.baseUri)) {\n return next.handle(request).pipe(\n catchError(error => {\n if (error instanceof Studio3ApiError) {\n throw error;\n }\n throw new Studio3ApiError(error);\n })\n );\n }\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DummyErrorHelperService {\n\n constructor() { }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { CATCH_ERROR_VAR } from '@angular/compiler/src/output/output_ast';\nimport { ErrorHandler, forwardRef, Inject, Injectable, Injector } from '@angular/core';\nimport * as Sentry from '@sentry/browser';\nimport { ReplaySubject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { AppConfigService } from '../config/app-config.service';\nimport { LangService } from '../lang/lang.service';\nimport { Studio3ApiError, Studio3ApiUnknownError } from '../shared/api';\n\n\nconst sentryDsn = 'https://7c3a7a63950f49228fda6cd23a4c1797@o423479.ingest.sentry.io/5353786';\n\n\n@Injectable()\nexport class SentryErrorHandlerService implements ErrorHandler {\n debug = !environment.production;\n sentryReady = false;\n postponedEvents: any[] = [];\n ready$ = new ReplaySubject();\n loading = false;\n constructor(\n private injector: Injector\n // @Inject(forwardRef(() => AppConfigService)) protected appConfig: AppConfigService,\n\n // @Inject(forwardRef(() => LangService)) protected langService: LangService\n ) {\n // this.appConfig.isReady$.pipe(\n // filter(r => r),\n // take(1)\n // ).subscribe(() => {\n // this.debug = this.appConfig.getDebug();\n // this.initSentry();\n // });\n }\n\n loadAll(){\n this.loading = true;\n try {\n const appConfig = this.injector.get(AppConfigService);\n const langService = this.injector.get(LangService);\n appConfig.isReady$.pipe(\n filter(r => r),\n take(1)\n ).subscribe(() => {\n this.debug = appConfig.getDebug();\n this.initSentry(appConfig, langService);\n this.loading = false;\n });\n } catch (e){\n this.loading = false;\n }\n }\n\n\n\n initSentry(appConfig: AppConfigService, langService: LangService) {\n if (this.sentryReady) {\n return;\n }\n\n\n\n Sentry.init({\n dsn: sentryDsn,\n // TryCatch has to be configured to disable XMLHttpRequest wrapping, as we are going to handle\n // http module exceptions manually in Angular's ErrorHandler and we don't want it to capture the same error twice.\n // Please note that TryCatch configuration requires at least @sentry/browser v5.16.0.\n integrations: [new Sentry.Integrations.TryCatch({\n XMLHttpRequest: false,\n })],\n\n release: 'studio3-ng@' + appConfig.getAppVersion(),\n environment: appConfig.getEnvironment()\n });\n\n this.sentryReady = true;\n\n\n\n\n while (this.postponedEvents.length) {\n const event = this.postponedEvents.shift();\n Sentry.captureException(event.error, event.context);\n }\n\n this.ready$.next(true);\n\n\n langService.lang$.subscribe(l => {\n Sentry.configureScope((scope) => {\n scope.setTag('lang', l);\n });\n });\n }\n\n extractError(error) {\n // Try to unwrap zone.js error.\n // https://github.com/angular/angular/blob/master/packages/core/src/util/errors.ts\n if (error && error.ngOriginalError) {\n error = error.ngOriginalError;\n }\n\n // // Studio3ApiError\n // if (error instanceof Studio3ApiError){\n // return error;\n // }\n if (error && error.originalError) {\n error = error.originalError;\n }\n // We can handle messages and Error objects directly.\n if (typeof error === 'string' || error instanceof Error) {\n return error;\n }\n\n // If it's http module error, extract as much information from it as we can.\n if (error instanceof HttpErrorResponse) {\n // The `error` property of http exception can be either an `Error` object, which we can use directly...\n if (error.error instanceof Error) {\n return error.error;\n }\n\n // ... or an`ErrorEvent`, which can provide us with the message but no stack...\n if (error.error instanceof ErrorEvent) {\n return error.error.message;\n }\n\n // ...or the request body itself, which we can use as a message instead.\n if (typeof error.error === 'string') {\n return `Server returned code ${error.status} with body \"${error.error}\"`;\n }\n\n // If we don't have any detailed information, fallback to the request message itself.\n return error.message;\n }\n\n // Skip if there's no error, and let user decide what to do with it.\n return null;\n }\n\n\n\n handleError(error: any) {\n if (error && error.isSilent) {\n\n if (this.debug) {\n console.error('A Silent ERROR Occured (will not be thrown in production)!', error);\n throw error;\n }\n return;\n }\n\n\n\n const extractedError = this.extractError(error) || 'Handled unknown error';\n const context: any = { tags: {}, context: {} };\n if (error instanceof Studio3ApiError) {\n context.tags.api_error = error.error;\n context.context.error_data = error.data;\n }\n if (error instanceof Studio3ApiUnknownError){\n\n }\n if (!this.sentryReady && !this.loading) {\n this.loadAll();\n }\n if (this.sentryReady) {\n\n const eventId = Sentry.captureException(extractedError, context);\n } else {\n this.postponedEvents.push({\n error: extractedError, context,\n });\n }\n\n\n\n console.error('An error occured', error, extractedError);\n\n // Make sure to rethrow the error so Angular can pick it up\n // throw error;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SentryErrorHandlerService } from './sentry-error-handler.service';\nimport { filter, take } from 'rxjs/operators';\nimport * as Sentry from '@sentry/browser';\nimport { Store } from '@ngxs/store';\nimport { AuthState } from '../shared/state/auth/auth.state';\nimport { CoreState } from '../shared/state/core/core.state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SentryScopeHelperService {\n\n constructor(\n protected errorHandler: SentryErrorHandlerService,\n protected store: Store,\n ) {\n this.errorHandler.ready$.pipe(\n filter(r => r),\n take(1)\n ).subscribe(() => {\n this.setup();\n });\n // console.log('SentryScopeHelperService');\n }\n\n setup() {\n this.store.select(AuthState.getUser).subscribe(user => {\n Sentry.configureScope((scope) => {\n if (user && user.id) {\n scope.setUser({ id: String(user.id), email: user.email });\n } else {\n scope.setUser({});\n }\n\n });\n });\n\n this.store.select(CoreState.getCurrentAccountCode).subscribe(ac => {\n Sentry.configureScope((scope) => {\n scope.setTag('accountcode', ac);\n });\n });\n }\n}\n","import { Injectable, ErrorHandler } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { AppConfigService } from '../config/app-config.service';\nimport { filter, take } from 'rxjs/operators';\n\n@Injectable()\nexport class StudioErrorHandlerService implements ErrorHandler {\n debug = !environment.production;\n constructor(protected appConfig: AppConfigService){\n this.appConfig.isReady$.pipe(\n filter(r => r),\n take(1)\n ).subscribe(() => {\n this.debug = this.appConfig.getDebug();\n });\n }\n handleError(error: any) {\n if (error && error.isSilent ){\n\n if (this.debug){\n console.error('A Silent ERROR Occured (will not be thrown in production)!', error);\n throw error;\n }\n return ;\n }\n\n console.error('An error occured', error);\n\n // Make sure to rethrow the error so Angular can pick it up\n throw error;\n }\n}\n","export interface ISilentError {\n isSilent?: boolean;\n}\nexport class SilentError extends Error implements ISilentError{\n readonly isSilent = true;\n constructor(message?: string) {\n super(message);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { OnDestroyMixin, untilComponentDestroyed } from '@w11k/ngx-componentdestroyed';\nimport { IndigoAuthService } from '../auth/auth.service';\nimport { IIndigoLandingConfig } from '../config/app-config.model';\nimport { AppConfigService } from '../config/app-config.service';\nimport { LangService } from '../lang/lang.service';\nimport { TitleService } from '../shared/services/title.service';\n\n/*\n\nWhen opening the page you get a big \"Goco Control Panel\" sign in dialog box.\n\n*/\n\n\n@Component({\n selector: 'app-landing',\n templateUrl: './landing.component.html',\n styleUrls: ['./landing.component.scss'],\n\n})\nexport class LandingComponent extends OnDestroyMixin implements OnInit {\n\n pageTitle$ = this.title.currentTitle$;\n cfg: IIndigoLandingConfig = this.appConfig.getLandingConfig();\n lang = this.langService.lang;\n\n constructor(\n public title: TitleService,\n protected authService: IndigoAuthService,\n protected appConfig: AppConfigService,\n protected langService: LangService\n ) {\n super();\n this.langService.lang$.pipe(\n untilComponentDestroyed(this)\n ).subscribe(l => {\n this.lang = l;\n });\n }\n\n ngOnInit(): void {\n // 9/9/21 Fro - auto sign in\n // changed again on Sept 16th to play with languages urls\n\n this.authService.authorize(null, this.lang);\n }\n\n login(){\n // is associated with sign in button\n this.authService.authorize(null, this.lang);\n }\n\n}\n","\n\n \n\n
\n\n

{{cfg.subtitle[lang]}}

\n\n \n
\n\n \n\n
\n
\n","import { Injectable } from '@angular/core';\nimport { CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router, CanActivate } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { LangService } from './lang.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LangValidatorGuard implements CanActivateChild, CanActivate {\n\n\n constructor(\n protected router: Router,\n protected langService: LangService\n ) {\n }\n\n\n validateLang(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n let newLang = route.params.lang;\n const valid = this.langService.langs.indexOf(newLang) > -1 ? true : false;\n if (!valid) {\n newLang = this.langService.getBestLang();\n this.langService.setLang(newLang);\n return this.router.parseUrl('/' + newLang + state.url.substr(route.params.lang.length + 1));\n }\n if (this.langService.lang !== newLang) {\n this.langService.setLang(newLang);\n }\n return true;\n }\n canActivateChild(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.validateLang(next, state);\n }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\n if (next.firstChild) {\n return true;\n }\n return this.router.createUrlTree(['/']);\n }\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { LangService } from './lang.service';\n\n@Injectable({providedIn: 'root'})\nexport class LangResolver implements Resolve {\n constructor(private langService: LangService){\n\n }\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): string | Observable | Promise {\n const lang = this.langService.getBestLang();\n this.langService.setLang(lang);\n return lang;\n }\n\n}\n","import { ErrorHandler, Inject, Injectable } from '@angular/core';\nimport { TranslocoService, TRANSLOCO_MISSING_HANDLER } from '@ngneat/transloco';\nimport { Store } from '@ngxs/store';\nimport { combineLatest, ReplaySubject } from 'rxjs';\nimport { filter, map, tap } from 'rxjs/operators';\nimport { AuthState } from '../shared/state/auth/auth.state';\nimport { MissingTranslationService } from './missing-translation.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LangService {\n\n readonly langs: string[] = (this.transloco.getAvailableLangs() as {\n id: string;\n label: string;\n }[])\n .map(l => l.id);\n\n protected loadedScopes: {\n [lang: string]: string[]\n } = {};\n\n // tslint:disable-next-line: variable-name\n protected _scopes = new ReplaySubject<{\n [lang: string]: string[]\n }>();\n\n protected currentLang = new ReplaySubject();\n\n loading = false;\n\n get lang(): string { return this.transloco.getActiveLang(); }\n\n get scopes$() { return this._scopes.asObservable(); }\n\n get changes$() {\n return combineLatest([\n this.scopes$,\n this.lang$\n ]);\n }\n constructor(\n public transloco: TranslocoService,\n protected store: Store,\n @Inject(TRANSLOCO_MISSING_HANDLER) protected missingTranslationHandler: MissingTranslationService,\n protected errorHandler: ErrorHandler\n ) {\n this.currentLang.next(this.transloco.getActiveLang());\n\n \n this.missingTranslationHandler.getMisses().pipe(\n // tap((miss) => console.log(' -- missing translation', miss, this.loadedScopes)),\n \n filter((miss) => {\n // Don't handle error when scopes are loading\n if (this.loadedScopes[miss.lang]){\n const otherLang = miss.lang === 'fr' ? 'en' : 'fr';\n return !this.loadedScopes[otherLang] || this.loadedScopes[miss.lang].length === this.loadedScopes[otherLang].length;\n }\n return false;\n })\n ).subscribe(miss => {\n try {\n this.errorHandler.handleError(new Error(`Missing Translation ${miss.key} (${miss.lang})`));\n } catch (e) {\n\n }\n\n });\n\n this._scopes.next(this.loadedScopes);\n this.transloco.langChanges$.subscribe(l => {\n this.currentLang.next(l);\n });\n this.transloco.events$.pipe(\n filter(e => e.type === 'translationLoadSuccess'),\n map(e => e.payload)\n )\n .subscribe((payload) => {\n if (!this.loadedScopes[payload.langName]) {\n this.loadedScopes[payload.langName] = [];\n }\n this.loadedScopes[payload.langName].push(payload.scope);\n this._scopes.next(this.loadedScopes);\n this.currentLang.next(this.transloco.getActiveLang());\n });\n }\n\n get lang$() { return this.currentLang.asObservable(); }\n\n getLangSuffix$(enSuffix = '') {\n return this.currentLang.asObservable().pipe(\n map(l => l === 'fr' ? '_fr' : enSuffix)\n );\n }\n\n getLangFromBrowser() {\n let newLang = this.transloco.getDefaultLang();\n if (navigator && navigator.languages && navigator.languages.length) {\n const fromBrowser = navigator.languages.find(l => {\n const nl = l.substr(0, 2);\n if (this.langs.indexOf(nl) > -1) {\n newLang = nl;\n return true;\n }\n });\n }\n return newLang;\n }\n\n setLang(lang: string) {\n this.transloco.setActiveLang(lang);\n localStorage.setItem('indigo_lang', lang);\n }\n\n getBestLang() {\n let lang: string; // this.store.selectSnapshot(AuthState.getUserLang);\n\n // TODO check if we have a user and send to default account\n const authState = this.store.selectSnapshot((state) => state.auth || {});\n\n if (authState.user && authState.preferences.lang) {\n lang = authState.preferences.lang;\n } else {\n const fromStorage = localStorage.getItem('indigo_lang');\n if (this.langs.indexOf(fromStorage) > -1) {\n lang = fromStorage;\n }\n }\n if (!lang) {\n lang = this.getLangFromBrowser();\n }\n return lang;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HashMap, TranslocoMissingHandler, TranslocoMissingHandlerData } from '@ngneat/transloco';\nimport { ReplaySubject, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MissingTranslationService implements TranslocoMissingHandler{\n\n protected misses = new Subject<{key: string, lang: string}>();\n constructor(\n // protected errorHandler: ErrorHandler\n ) {\n }\n\n handle(key: string, data: TranslocoMissingHandlerData, params?: HashMap) {\n if (key.startsWith('country.') || key.startsWith('province.')){\n return key.substr(key.lastIndexOf('.') + 1);\n }\n if (key.startsWith('error.')){\n return key.substr('error.'.length);\n }\n this.misses.next({\n key, lang: data.activeLang\n });\n // this.errorHandler.handleError(new Error(`Missing Translation ${key}`));\n\n return key;\n }\n\n getMisses(){\n return this.misses.asObservable();\n }\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n TRANSLOCO_LOADER,\n Translation,\n TranslocoLoader,\n TRANSLOCO_CONFIG,\n translocoConfig,\n TranslocoModule, TRANSLOCO_MISSING_HANDLER, TRANSLOCO_LOADING_TEMPLATE\n} from '@ngneat/transloco';\nimport { Injectable, NgModule } from '@angular/core';\nimport { environment } from '../../environments/environment';\nimport { TranslocoLocaleModule } from '@ngneat/transloco-locale';\nimport { MissingTranslationService } from './missing-translation.service';\n\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoHttpLoader implements TranslocoLoader {\n constructor(private http: HttpClient) { }\n\n getTranslation(lang: string) {\n const idx = lang.indexOf('/');\n let path = lang;\n let scope = '';\n if (idx > -1){\n scope = lang.substr(0, idx);\n path = lang.replace('/', `/${scope}-`);\n }\n return this.http.get(`assets/i18n/${path}.json?v=${environment.version}`);\n }\n}\n\n@NgModule({\n exports: [TranslocoModule],\n imports: [\n TranslocoLocaleModule.init({\n // langToLocaleMapping: {\n // en: 'en-CA',\n // fr: 'fr-CA'\n // }\n })\n ],\n providers: [\n {\n provide: TRANSLOCO_CONFIG,\n useValue: translocoConfig({\n availableLangs: [\n { id: 'en', label: 'English' },\n { id: 'fr', label: 'français' }\n ],\n defaultLang: 'en',\n // Remove this option if your application doesn't support changing language in runtime.\n reRenderOnLangChange: true,\n prodMode: environment.production,\n fallbackLang: 'en',\n missingHandler: {\n // It will use the first language set in the `fallbackLang` property\n useFallbackTranslation: false // If true when lang is FR both lang files will be fetched\n },\n flatten: {\n aot: environment.production\n }\n\n })\n },\n { provide: TRANSLOCO_LOADER, useClass: TranslocoHttpLoader },\n { provide: TRANSLOCO_MISSING_HANDLER, useClass: MissingTranslationService }\n ],\n declarations: []\n})\nexport class TranslocoRootModule { }\n","import { HttpParameterCodec } from '@angular/common/http';\nexport class StudioHttpParamEncoder implements HttpParameterCodec {\n encodeKey(key: string): string {\n return encodeURIComponent(key);\n }\n encodeValue(value: string): string {\n return encodeURIComponent(value);\n }\n decodeKey(key: string): string {\n return decodeURIComponent(key);\n }\n decodeValue(value: string): string {\n return decodeURIComponent(value);\n }\n}\n","export * from './api-http-params.encoder';\nexport * from './studio-api.service';\nexport * from './studio-api-error.model';\nexport * from './studio3-api.utils';\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ISilentError } from 'src/app/errors/studio-errors.model';\n\nexport interface IStudioErrorData {\n prop?: string | string[];\n val?: any;\n msg?: string;\n}\n\nexport interface IStudio3ApiError {\n status: number;\n data?: IStudioErrorData;\n error: string;\n}\n\nconst FIX_ERROR = {\n enum: 'validation.enum'\n};\n\n\n// Treat Studio3 Api Error from HttpErrorReponse\nexport class Studio3ApiError implements IStudio3ApiError, ISilentError {\n status: number;\n data: IStudioErrorData;\n error = 'api.unknown';\n\n constructor(public originalError?: Error | any, public isSilent = false) {\n console.warn('Original Error is ', originalError);\n if (originalError && originalError instanceof HttpErrorResponse) {\n this.status = originalError.status;\n if (originalError.error){\n if (typeof originalError.error === 'object'){\n if (originalError.error.error){\n // console.log(' --- Error shoud be ', originalError.error.error, this.error);\n this.error = originalError.error.error || 'api.unknown';\n }\n this.data = originalError.error.error_data;\n // console.log(' --- Error is now ', originalError.error.error, this.error);\n } else {\n console.error('Unknown error type', originalError);\n }\n }\n }\n switch (this.status){\n case 0:\n this.error = 'api.unreachable';\n break;\n case 500:\n case 401:\n case 403:\n this.error = `api.${String(this.status)}`;\n }\n\n if (!this.error){\n this.error = 'api.unknown';\n }\n\n if (FIX_ERROR[this.error]){\n this.error = FIX_ERROR[this.error];\n }\n\n }\n\n static getApiError(originalError: Error, isSilent = false){\n if (originalError instanceof Studio3ApiError){\n return originalError;\n }\n return new Studio3ApiError(originalError, isSilent);\n }\n\n\n}\n\nexport interface IStudioUnknownErrorData extends IStudioErrorData{\n request?: { url?: string, method?: string, query?: any, body?: any};\n response: any;\n}\n// Treat unexpected data returned by api without Http Error Code\nexport class Studio3ApiUnknownError extends Studio3ApiError {\n data: IStudioUnknownErrorData;\n constructor(response: any, request?: { url?: string, method?: string, query?: any, body?: any}){\n super(new Error('Studio3UnknownError'));\n\n this.data = {request, response};\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { AppConfigService } from 'src/app/config/app-config.service';\nimport { filter, tap, take } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StudioApiService {\n\n baseUri;\n ready = false;\n constructor(\n protected http: HttpClient,\n public config: AppConfigService,\n ) {\n\n this.config.isReady$.pipe(\n filter(r => r),\n tap((r) => { this.ready = r; this.baseUri = this.config.getApiUri(); }),\n take(1)\n ).subscribe();\n }\n\n\n _getUrl(uri: string, version?: string) {\n return this.baseUri + (uri.startsWith('/') ? uri : '/' + uri);\n }\n\n get(uri: string, options?: {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n observe?: 'body';\n params?: HttpParams | {\n [param: string]: string | string[];\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }) {\n return this.http.get(\n this._getUrl(uri),\n options\n );\n }\n\n post(uri: string, body: any | null, options?: {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n observe?: 'body';\n params?: HttpParams | {\n [param: string]: string | string[];\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }) {\n return this.http.post(\n this._getUrl(uri),\n body, options\n );\n }\n\n put(uri: string, body: any, options?: {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n observe: 'body';\n responseType?: 'json';\n withCredentials?: boolean;\n }) {\n return this.http.put(\n this._getUrl(uri),\n body,\n options\n );\n }\n\n patch(uri: string, body: any, options?: {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n observe: 'events';\n params?: HttpParams | {\n [param: string]: string | string[];\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }) {\n return this.http.patch(\n this._getUrl(uri),\n body,\n options,\n );\n }\n\n\n delete(uri: string, options?: {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n observe: 'events';\n params?: HttpParams | {\n [param: string]: string | string[];\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n }) {\n return this.http.delete(\n this._getUrl(uri),\n options\n );\n }\n\n}\n","import { HttpErrorResponse, HttpParams } from '@angular/common/http';\nimport { IGenericQuery } from '../models';\nimport { StudioHttpParamEncoder } from './api-http-params.encoder';\n\nexport interface StudioError {\n code: number;\n body: any;\n msg: string;\n}\n\nexport function getApiErrorFromHTTP(error: Error): string{\n\n let msg = 'api.unknown';\n if (error instanceof HttpErrorResponse){\n switch (error.status){\n case 0:\n msg = 'api.unreachable';\n case 500:\n msg = 'api.500';\n case 401:\n }\n }\n return msg;\n}\n\nexport function cleanListResponseQuery(q: IGenericQuery): IGenericQuery{\n const newQ = {...q};\n // console.warn('Query is ', q, q._order );\n if (q){\n\n if (q._order && !q._order.startsWith('-') && !q._order.startsWith('+')){\n newQ._order = `+${q._order}`;\n }\n }\n\n delete (newQ as any).resource;\n\n // console.warn('CLEANED QUERY', q, newQ, newQ._order );\n return newQ;\n}\n\nexport function queryToParams(query: IGenericQuery): HttpParams {\n let params = new HttpParams({\n encoder: new StudioHttpParamEncoder()\n });\n if (query) {\n Object.keys(query).forEach(k => {\n if (k !== 'ressource' && k !== 'resource'\n && query[k] !== null && query[k] !== undefined\n && query[k] !== '') {\n if (!Array.isArray(query[k]) || query[k].length) {\n // params = params.append(k, encodeURIComponent(query[k]));\n params = params.append(k, query[k]);\n }\n\n }\n });\n }\n\n return params;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TRANSLOCO_SCOPE } from '@ngneat/transloco';\nimport { IAddress } from '../../models';\n\n@Component({\n selector: 'app-address',\n templateUrl: './address.component.html',\n styleUrls: ['./address.component.scss'],\n providers: [\n { provide: TRANSLOCO_SCOPE, useValue: 'country', multi: true },\n { provide: TRANSLOCO_SCOPE, useValue: 'province', multi: true }\n ]\n})\nexport class AddressComponent implements OnInit {\n\n @Input() address: IAddress;\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
{{address.address1}}
\n
{{address.address2}}
\n
\n {{address.city}}\n {{\n 'province.'+address.country+'.'+address.province | transloco\n }}\n {{address.postalcode | uppercase}}\n
\n
{{'country.'+address.country | transloco}}
\n
","import { Component, OnInit, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef, ChangeDetectionStrategy, HostBinding } from '@angular/core';\nimport { Studio3ApiError } from '../../api';\nimport { LangService } from 'src/app/lang/lang.service';\nimport { OnDestroyMixin, componentDestroyed } from '@w11k/ngx-componentdestroyed';\nimport { takeUntil } from 'rxjs/operators';\n\nconst icons = {\n danger: 'fa fa-exclamation-triangle',\n warning: 'fa fa-exclamation-triangle',\n info: 'fa fa-info-circle',\n success: 'fa fa-check'\n};\n@Component({\n selector: 'goco-studio-error',\n templateUrl: './api-error.component.html',\n styleUrls: ['./api-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ApiErrorComponent extends OnDestroyMixin implements OnInit, OnChanges {\n\n\n get icon() { return icons[this.type]; }\n\n constructor(\n protected langService: LangService,\n protected cd: ChangeDetectorRef\n ) {\n super();\n\n }\n\n @Input() errorClass: string;\n @Input() error: Studio3ApiError;\n @Input() dismissible = false;\n @Input() type: 'danger' | 'warning' | 'info' | 'success' = 'danger';\n\n @Input() specialStatuses: { [status: number]: string } = {};\n\n @Input() specialPrefix: { [error: string]: string } = {};\n\n @Input() startsWithPrefix: { [error: string]: string } = {};\n\n @Input() fields: { [field: string]: string } = {};\n\n // tslint:disable-next-line: no-output-on-prefix\n @Output() onClose = new EventEmitter();\n\n errorKey: string;\n\n show = true;\n\n getData(t: (x: string, v?: any) => any) {\n let field = '';\n if (this.error.data && this.error.data.prop) {\n if (Array.isArray(this.error.data.prop)) {\n field = this.error.data.prop.map(f => this.fields[f] ? t(this.fields[f]) : null).filter(f => f).join(', ');\n } else {\n field = t(this.fields[this.error.data.prop]);\n }\n }\n return {\n ...this.error.data,\n field\n };\n }\n\n ngOnInit(): void {\n this.langService.changes$.pipe(\n takeUntil(componentDestroyed(this))\n ).subscribe(() => {\n this.cd.detectChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.error) {\n this.show = true;\n this.setupError();\n }\n }\n\n setupError() {\n if (!this.error) {\n this.errorKey = null;\n return;\n }\n if (this.specialStatuses && this.specialStatuses[this.error.status]) {\n this.errorKey = this.specialStatuses[this.error.status];\n } else {\n let prefix = 'error.';\n if (this.specialPrefix && this.specialPrefix[this.error.error]) {\n prefix = this.specialPrefix[this.error.error];\n } else if (this.startsWithPrefix) {\n const newP = Object.keys(this.startsWithPrefix).find(p => this.error.error.startsWith(p));\n if (newP) {\n prefix = newP;\n }\n }\n let cleanedError = this.error.error;\n switch (this.error.error) {\n case 'validation.format':\n cleanedError = this.error.error + '.' + this.error.data.val;\n break;\n }\n this.errorKey = prefix + cleanedError;\n }\n\n }\n\n dismiss() {\n this.show = false;\n this.onClose.emit();\n }\n}\n","\n \n
\n \n
\n \n \n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport interface BasicMessageConfig {\n title?: string;\n msg?: string;\n transVars?: {};\n container_class?: string;\n title_class?: string;\n icon?: string;\n msg_class?: string;\n}\n\n@Component({\n selector: 'app-basic-message',\n templateUrl: './basic-message.component.html',\n styleUrls: ['./basic-message.component.scss']\n})\nexport class BasicMessageComponent implements OnInit {\n\n config$: Observable;\n constructor(\n protected activatedRoute: ActivatedRoute\n ) { }\n\n\n ngOnInit(): void {\n this.config$ = this.activatedRoute.data.pipe(\n map(d => d.basic_msg || {})\n );\n }\n\n}\n","\n \n
\n

\n \n \n

\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-empty',\n template: ``,\n styles: [\n ]\n})\nexport class EmptyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LangService } from 'src/app/lang/lang.service';\n\n@Component({\n selector: 'goco-landing-container',\n templateUrl: './landing-container.component.html',\n styleUrls: ['./landing-container.component.scss']\n})\nexport class LandingContainerComponent implements OnInit {\n\n @Input() title: string;\n constructor(\n public langService: LangService,\n protected router: Router\n ) { }\n\n ngOnInit(): void {\n }\n\n switchLang(lang: string) {\n const isRoute = this.langService.langs.findIndex((l) => {\n return this.router.url.startsWith(`/${l}/`);\n }) > -1;\n if (isRoute){\n this.router.navigateByUrl('/' + lang + this.router.url.substr(3));\n } else {\n this.langService.setLang(lang);\n }\n\n }\n\n brandClick() {\n // TODO: Go to vendor website\n }\n}\n","
\n \n
\n\n
\n

{{title}}

\n \n\n \n
\n \n\n \n
\n \n {{lang.label}}\n \n
\n
","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { ColumnMode, TableColumn } from '@swimlane/ngx-datatable';\nimport { componentDestroyed, OnDestroyMixin } from '@w11k/ngx-componentdestroyed';\nimport { combineLatest } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { IGenericQuery } from '../../models';\n\n\nexport interface StudioTableColumn extends TableColumn {\n label?: string;\n class?: string | ((data: any) => string | any);\n}\n\n@Component({\n selector: 'app-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent extends OnDestroyMixin implements OnInit, OnChanges, AfterViewInit {\n\n @Input() header: string;\n @Input() query: IGenericQuery = {\n _limit: 25,\n _offset: 0\n };\n @Input() count = 0;\n @Input() loading = false;\n @Input() items: any[];\n\n @Input() pagination = true;\n\n @Input() display: 'table' | 'custom' = 'table';\n @Input() customEmpty: TemplateRef;\n\n @Input() columns: StudioTableColumn[] = [];\n\n @Input() batchSizes = [10, 25, 50, 100];\n\n @Output() queryChanged = new EventEmitter();\n\n @Input() headerPrefix = '';\n\n @Input() trackByProp: string;\n\n get pageNum() { return (this.query._offset / this.query._limit) + 1; }\n\n\n maxPages = 5;\n form = this.fb.group({\n });\n\n ColumnMode = ColumnMode;\n\n realColumns: TableColumn[] = [];\n\n @ViewChild('hdrTpl', { static: false }) hdrTpl: TemplateRef;\n\n\n get currentSort() {\n return this.query && this.query._order ?\n [{\n prop: this.query._order.substr(1),\n dir: this.query._order.substr(0, 1) === '-' ? 'desc' : 'asc'\n }] : undefined;\n }\n\n constructor(\n protected fb: FormBuilder,\n protected breakpointsObserver: BreakpointObserver,\n protected transloco: TranslocoService\n\n ) { super(); }\n\n ngOnInit(): void {\n\n combineLatest([\n this.transloco.events$.pipe(\n filter(e => e.type === 'translationLoadSuccess')\n ),\n this.transloco.langChanges$\n ]).pipe(\n takeUntil(componentDestroyed(this))\n ).subscribe((x) => {\n // console.info('Lang ', x);\n this.setColumns();\n if (this.items) {\n this.items = [...this.items];\n }\n\n });\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes.query && changes.query.currentValue && !this.loading) {\n this.form.patchValue(changes.query.currentValue, {\n emitEvent: false\n });\n }\n if (changes.columns) {\n this.setColumns();\n }\n }\n\n ngAfterViewInit() {\n this.setColumns();\n }\n\n protected setColumns() {\n this.realColumns = this.columns.map((c: StudioTableColumn) => {\n const newC: TableColumn = {\n sortable: true,\n flexGrow: 1,\n ...c\n };\n\n const defaultClass = `col-${newC.prop}`;\n const classType = typeof c.class;\n\n ['headerClass', 'cellClass'].forEach(p => {\n if (newC[p]) {\n if (typeof newC[p] === 'function') {\n const oldFn = newC[p];\n if (c.class) {\n if (typeof c.class === 'function') {\n const genericFn = c.class;\n newC[p] = (data: any) => genericFn(data) + ` ${defaultClass} ` + oldFn(data);\n } else {\n newC[p] = (data: any) => oldFn(data) + ` ${defaultClass} ${c.class}`;\n }\n } else {\n newC[p] = (data: any) => `${defaultClass} ` + oldFn(data);\n }\n\n } else if (typeof newC[p] === 'string') {\n if (c.class) {\n if (typeof c.class === 'function') {\n const genericFn = c.class;\n newC[p] = (data: any) => genericFn(data) + ` ${defaultClass} ${newC[p]}`;\n } else {\n newC[p] = `${defaultClass} ${c.class} ${newC[p]}`;\n }\n } else {\n newC[p] = `${defaultClass} ${newC[p]}`;\n }\n }\n } else {\n if (c.class) {\n if (typeof c.class === 'function') {\n const genericFn = c.class;\n newC[p] = (data: any) => genericFn(data) + ` ${defaultClass}`;\n } else {\n newC[p] = `${defaultClass} ${c.class}`;\n }\n } else {\n newC[p] = defaultClass;\n }\n }\n });\n\n newC.name = this.transloco.translate(c.name ? c.name : this.headerPrefix + c.prop);\n\n\n // if (!c.name && !c.headerTemplate) {\n // newC.headerTemplate = this.hdrTpl;\n // }\n // console.log('column is ', newC, 'from', c);\n return newC;\n });\n }\n\n changeLimit(l: number) {\n\n const newOffset = this.query._offset - (this.query._offset % l);\n\n // console.log('NEW offset', newOffset);\n this.queryChanged.emit({ ...this.query, _limit: l, _offset: newOffset });\n }\n\n pageChanged(event: { page: number, itemsPerPage: number }) {\n const newOffset = (event.page - 1) * event.itemsPerPage;\n if (newOffset !== this.query._offset) {\n // console.warn('PAGE CHANGED', event, this.query._offset, this.query._limit, newOffset);\n this.queryChanged.emit({ ...this.query, _offset: newOffset });\n }\n\n\n }\n\n offsetChanged(offset: number) {\n this.queryChanged.emit({ ...this.query, _offset: offset });\n }\n\n onSort(event: { sorts, column, newValue, oldValue }) {\n\n const newOrder = (event.sorts[0].dir === 'asc' ? '+' : '-') + event.sorts[0].prop;\n // console.log('SORT EVENT', event, 'was', this.query._order, 'will be', newOrder);\n if (newOrder !== this.query._order) {\n this.queryChanged.emit({ ...this.query, _order: newOrder });\n }\n }\n\n\n}\n","\n
\n

{{header}} ({{count}})

\n\n \n \n
\n\n \n\n \n\n
\n
\n \n \n
\n\n \n \n
\n\n \n \n\n\n
\n \n \n \n\n \n \n\n \n \n \n \n
\n {{t('list.emptyMessage')}}
\n
\n \n
\n
\n\n
\n \n \n
\n\n\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class LoadingComponent implements OnInit {\n\n constructor(\n activatedRoute: ActivatedRoute\n ) { }\n\n ngOnInit(): void {\n\n }\n\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { merge, Subject, Subscription } from 'rxjs';\nimport { filter, take, takeUntil, delay } from 'rxjs/operators';\nimport { LangService } from 'src/app/lang/lang.service';\nimport { OnDestroyMixin, componentDestroyed } from '@w11k/ngx-componentdestroyed';\n\n\nexport interface ModalRouteConfig extends ModalOptions {\n component: string;\n i18nscope?: string;\n outlet?: string;\n}\n@Component({\n selector: 'app-modal-route',\n template: '',\n styles: []\n})\nexport class ModalRouteComponent extends OnDestroyMixin implements OnInit, OnDestroy {\n\n modalRef: BsModalRef;\n onHide: Subscription;\n exit = new Subject();\n loading = true;\n\n\n constructor(\n protected modalService: BsModalService,\n private route: ActivatedRoute,\n private router: Router,\n private langService: LangService\n ) {\n super();\n }\n\n ngOnInit(): void {\n // console.log('Open modal First time', this.route.snapshot.toString(), this.router.url, this.route.snapshot);\n\n this.openModal();\n\n this.router.events.pipe(\n takeUntil(merge(componentDestroyed(this), this.exit)),\n filter(e => e instanceof NavigationEnd)\n ).subscribe((e) => {\n\n\n if (this.onHide && !this.onHide.closed) {\n this.onHide.unsubscribe();\n // console.log('Closed sub');\n }\n if (this.modalRef) {\n this.modalRef.hide();\n // console.log('Modal hidden');\n }\n\n let lastChild = this.router.routerState.snapshot.root;\n while (lastChild.firstChild) {\n lastChild = lastChild.firstChild;\n }\n // console.log('Router event', e, lastChild);\n\n\n if (lastChild.component === ModalRouteComponent) {\n // console.log('Open modal', this.route.snapshot.toString(), this.router.url);\n this.openModal();\n } else {\n delete this.modalRef;\n }\n });\n\n }\n\n\n openModal() {\n\n const options: ModalRouteConfig = this.route.snapshot.data.modal;\n if (options.i18nscope) {\n // Wait for transloco scope to be loaded\n this.loading = true;\n this.langService.scopes$.pipe(\n filter(s => s[this.langService.lang] && s[this.langService.lang].indexOf(options.i18nscope) > -1),\n take(1),\n delay(0),\n ).subscribe(() => {\n\n this.doOpen(options);\n this.loading = false;\n });\n\n } else {\n this.doOpen(options);\n this.loading = false;\n }\n }\n\n doOpen(options: ModalRouteConfig) {\n const modalConfig: any = { ...options};\n delete modalConfig.component;\n delete modalConfig.i18nscope;\n delete modalConfig.outlet;\n if (!modalConfig.initialState){\n modalConfig.initialState = {};\n }\n modalConfig.initialState.route = this.route;\n this.modalRef = this.modalService.show(options.component, modalConfig);\n this.onHide = this.modalService.onHide.subscribe((data) => {\n\n\n\n this.exit.next(true);\n if (options.outlet){\n this.router.navigate([{outlets: { [options.outlet]: null}}]);\n } else {\n this.router.navigate(['..'], { relativeTo: this.route });\n }\n\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n // console.warn('OnDestroy');\n if (this.onHide && !this.onHide.closed) {\n // console.warn('OnDestroy Unsubscribe');\n this.onHide.unsubscribe();\n }\n if (this.modalRef) {\n // console.warn('OnDestroy hide');\n this.modalRef.hide();\n }\n\n }\n\n\n\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { componentDestroyed, OnDestroyMixin } from '@w11k/ngx-componentdestroyed';\nimport { takeUntil } from 'rxjs/operators';\nimport { MIN_WIDTH_BREAKPOINTS } from '../../shared.const';\n\n\n@Component({\n selector: 'app-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss']\n})\nexport class PaginationComponent extends OnDestroyMixin implements OnInit, OnChanges {\n\n @Input() count = 0;\n @Input() offset = 0;\n @Input() limit = 50;\n\n @Input() boundaryLinks = true;\n @Input() directionLinks = true;\n\n @Input() disabled = false;\n\n @Input() maxSize = 3;\n\n @Input() responsive = true;\n\n @Input() maxSizeSM = 5;\n @Input() maxSizeMD = 5;\n @Input() maxSizeLG = 9;\n @Input() maxSizeXL = 11;\n\n protected responsiveSize = this.maxSize;\n\n @Output() offsetChanged = new EventEmitter();\n\n page = 0;\n totalPages = 1;\n\n\n pages: number[] = [];\n\n\n\n constructor(\n protected breakpointsObserver: BreakpointObserver,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.breakpointsObserver.observe([\n MIN_WIDTH_BREAKPOINTS.xl,\n MIN_WIDTH_BREAKPOINTS.lg,\n MIN_WIDTH_BREAKPOINTS.md,\n // MIN_WIDTH_BREAKPOINTS.sm\n ]).pipe(\n takeUntil(componentDestroyed(this))\n ).subscribe(bp => {\n if (!bp.matches){\n this.responsiveSize = this.maxSize;\n } else if (bp.breakpoints[MIN_WIDTH_BREAKPOINTS.xl]){\n this.responsiveSize = this.maxSizeXL;\n } else if (bp.breakpoints[MIN_WIDTH_BREAKPOINTS.lg]){\n this.responsiveSize = this.maxSizeLG;\n } else if (bp.breakpoints[MIN_WIDTH_BREAKPOINTS.md]){\n this.responsiveSize = this.maxSizeMD;\n }\n // else if (bp.breakpoints[MIN_WIDTH_BREAKPOINTS.sm]){\n // this.responsiveSize = this.maxSizeSM;\n // }\n if (this.responsive){\n this.setup();\n }\n });\n this.setup();\n }\n\n ngOnChanges() {\n this.setup();\n\n }\n\n setup() {\n this.totalPages = Math.max(Math.ceil(this.count / this.limit), 1);\n this.page = this.offset / this.limit;\n let startPage = 0;\n let endPage = this.totalPages;\n\n\n const size = this.responsive ? this.responsiveSize : this.maxSize;\n if (size < this.totalPages) {\n startPage = Math.max(this.page - Math.floor(size / 2), 0);\n endPage = startPage + size;\n\n // Adjust if limit is exceeded\n if (endPage > this.totalPages) {\n endPage = this.totalPages;\n startPage = endPage - size;\n }\n }\n\n // console.log('PAGES ARE', {\n // count: this.count,\n // limit: this.limit,\n // offset: this.offset\n // }, startPage, endPage, this.totalPages, this.page, this.pages, size);\n const p = [];\n\n for (let i = startPage; i < endPage; i++){\n p.push(i);\n }\n this.pages = p;\n }\n\n noPrevious() { return this.page === 0; }\n noNext() { return this.page === this.totalPages - 1; }\n selectPage(page: number, event?: Event){\n if (event) {\n event.preventDefault();\n }\n\n this.offsetChanged.emit(page * this.limit);\n // console.log('SELECT PAGE', page);\n }\n\n\n\n\n\n\n}\n","","import { Component, HostBinding, OnInit, ViewChild } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { OnDestroyMixin, untilComponentDestroyed } from '@w11k/ngx-componentdestroyed';\nimport { format } from 'date-fns';\nimport { BsDaterangepickerDirective } from 'ngx-bootstrap/datepicker';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport {PRESET_PERIODS, SelectPeriod, SetCustomPeriod} from '../../state/period/period.actions';\nimport { PeriodState } from '../../state/period/period.state';\n\n\n@Component({\n selector: 'app-period-selector',\n templateUrl: './period-selector.component.html',\n styleUrls: ['./period-selector.component.scss']\n})\nexport class PeriodSelectorComponent extends OnDestroyMixin implements OnInit {\n\n readonly periods = PRESET_PERIODS;\n\n selected: string;\n customRange: any = this.store.selectSnapshot(PeriodState.getCustomRange);\n selectedPeriod$ = this.store.select(PeriodState.getSelectedPeriod);\n\n // @HostBinding('class.edit-custom')\n showRangeSelector = false;\n\n @ViewChild('dropdown', {static: false}) dropdown: BsDropdownDirective;\n constructor(\n protected store: Store\n ) {\n super();\n this.store.select(PeriodState.getSelected).pipe(\n untilComponentDestroyed(this)\n ).subscribe(l => {\n this.selected = l;\n // if (l !== 'custom'){\n // const currentPeriod = this.store.selectSnapshot(PeriodState.getSelectedPeriod);\n // this.customRange = `${format(currentPeriod.start, 'yyyy-MM-dd')} - ${format(currentPeriod.end, 'yyyy-MM-dd')}`;\n // }\n\n });\n }\n\n ngOnInit(): void {\n\n }\n\n selectPeriod(label: string){\n this.store.dispatch(new SelectPeriod(label));\n this.showRangeSelector = false;\n if (this.dropdown){\n this.dropdown.hide();\n }\n\n }\n\n editCustom(){\n this.showRangeSelector = true;\n\n\n // dp.show();\n }\n\n onRangeChange(range: [Date, Date]){\n\n if (this.showRangeSelector && range && range[0] && range[1]){\n \n range[0].setHours(0, 0, 0);\n range[1].setHours(23, 59, 59);\n this.store.dispatch(new SetCustomPeriod({\n start: range[0],\n end: range[1]\n }));\n this.dropdown.hide();\n this.showRangeSelector = false;\n this.customRange = range;\n }\n }\n}\n","\n
\n \n \n
\n \n \n \n\n
\n\n\n
\n\n
","import { AfterContentInit, AfterViewInit, Component, ContentChild, Input, OnInit, OnChanges } from '@angular/core';\nimport { InputPasswordDirective } from '../../directives/input-password.directive';\n@Component({\n selector: 'app-psswd-input',\n templateUrl: './psswd-input.component.html',\n styleUrls: ['./psswd-input.component.scss']\n})\nexport class PsswdInputComponent implements OnInit, AfterContentInit, OnChanges {\n\n @Input() showPassword = false;\n\n @ContentChild(InputPasswordDirective) input: InputPasswordDirective;\n constructor() { }\n\n ngOnInit(): void {\n\n }\n\n ngOnChanges(): void {\n\n this.setupInput();\n }\n ngAfterContentInit() {\n // console.log('After content init');\n this.setupInput();\n }\n\n\n toggle() {\n this.showPassword = !this.showPassword;\n this.setupInput();\n }\n\n setupInput() {\n // console.log('setup input', this.input);\n if (this.input) {\n this.input.showPassword = this.showPassword;\n }\n }\n\n\n\n}\n","
\n \n \n \n \n
\n","import { Component, EventEmitter, forwardRef, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { Observable, of, Subject } from 'rxjs';\nimport { LangService } from 'src/app/lang/lang.service';\n\nexport interface SmartSelectorService {\n results$: Observable;\n typeahead: Subject;\n loading$: Observable;\n idProperty?: string;\n labelProperty?: string;\n labelPropi18n?: boolean;\n // labelTmp?: string;\n // optionTmp?: string;\n addressProp?: string;\n}\n@Component({\n selector: 'app-smart-select',\n templateUrl: './smart-select.component.html',\n styleUrls: ['./smart-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartSelectComponent),\n multi: true\n }\n ]\n})\nexport class SmartSelectComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\n\n\n\n @Input() placeholder = '';\n @Input() clearable = true;\n @Input() markFirst = false;\n @Input() multiple = false;\n @Input() selectOnTab = true;\n @Input() editableSearchTerm = false;\n @Input() source: SmartSelectorService;\n @Input() isOpen: boolean;\n @Input() loadingText: string;\n @Input() clearAllText: string;\n disabled = false;\n\n value: string | number;\n\n results$: Observable;\n labelProp: string;\n idProp: string;\n typeahead: Subject;\n loading$: Observable;\n\n labelPropi18n: boolean;\n i18nSuffix$: Observable = this.langService.getLangSuffix$();\n\n\n addressProp: string;\n\n @Output() selectClear = new EventEmitter();\n @Output() selectSearch = new EventEmitter();\n @Output() selectChange = new EventEmitter();\n\n\n @ViewChild(NgSelectComponent, {static: true}) select: NgSelectComponent;\n constructor(\n public langService: LangService\n ) {\n\n }\n\n onChange = (val: any) => {};\n onTouched = () => {};\n\n\n ngOnInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.source){\n this.setupSource();\n }\n }\n\n setupSource(){\n if (this.source){\n this.results$ = this.source.results$;\n this.labelProp = this.source.labelProperty;\n this.idProp = this.source.idProperty;\n this.typeahead = this.source.typeahead;\n this.loading$ = this.source.loading$;\n this.labelPropi18n = this.source.labelPropi18n;\n this.addressProp = this.source.addressProp;\n\n } else {\n this.results$ = of(null);\n this.labelProp = null;\n this.idProp = null;\n this.typeahead = null;\n this.loading$ = of(null);\n this.labelPropi18n = null;\n this.addressProp = null;\n }\n\n\n }\n\n ngOnDestroy(): void {\n\n }\n\n writeValue(obj: string | number): void {\n this.value = obj;\n }\n registerOnChange(fn) { this.onChange = fn; }\n registerOnTouched(fn) { this.onTouched = fn; }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setValue(value: string) {\n this.value = value;\n this.onChange(this.value);\n }\n\n}\n","\n\n\n \n \n \n\n \n \n \n\n\n\n\n \n \n \n \n \n {{item[labelProp+suffix] || item[idProp]}} \n \n \n {{item[labelProp]}}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { OnDestroyMixin, untilComponentDestroyed } from '@w11k/ngx-componentdestroyed';\nimport { until } from 'protractor';\nimport timezones from 'timezones-list';\nimport { SetPeriodTimezone } from '../../state/period/period.actions';\nimport { PeriodState } from '../../state/period/period.state';\n\ninterface ITimezone {\n label: string;\n tzCode: string;\n name: string;\n utc: string;\n group: string;\n}\n\n@Component({\n selector: 'app-timezone-selector',\n templateUrl: './timezone-selector.component.html',\n styleUrls: ['./timezone-selector.component.scss']\n})\nexport class TimezoneSelectorComponent extends OnDestroyMixin implements OnInit {\n\n @Input() inputClass = 'form-control';\n selected: string;\n readonly items: ITimezone[] = timezones.map(tz =>\n ({ ...tz, group: tz.tzCode.substr(0, tz.tzCode.indexOf('/')) }));\n\n defaultTz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n constructor(\n protected store: Store\n ) {\n super();\n this.items.sort((a, b) => {\n if (a.name > b.name){\n return 1;\n } else if (a.name < b.name) {\n return -1;\n }\n return 0;\n });\n\n }\n\n ngOnInit(): void {\n this.store.select(PeriodState.getTimezone).pipe(\n untilComponentDestroyed(this)\n ).subscribe(t=> this.selected = t);\n }\n\n setValue(value: string){\n this.selected = value;\n this.store.dispatch(new SetPeriodTimezone(value));\n }\n\n}\n","\n \n {{item.tzCode}}\n \n","import { Directive, HostBinding, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { Subscription, timer } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDisabledDelay]'\n})\nexport class DisabledDelayDirective implements OnChanges, OnDestroy{\n\n timeout: Subscription;\n disabledByDelay = false;\n @Input() disabled = false;\n @Input() defaultDelay = 10000;\n // tslint:disable-next-line: no-input-rename\n @Input('appDisabledDelay') lastUpdated: number;\n @HostBinding('attr.disabled')\n get isDisabled( ) {\n return this.disabled || this.disabledByDelay ? 'disabled' : undefined;\n }\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges){\n if (changes.lastUpdated || changes.defaultDelay){\n this.setupTimeout();\n }\n }\n setupTimeout(){\n this.clearTimeout();\n if (!isNaN(this.lastUpdated) && !isNaN(this.defaultDelay)){\n const diff = Date.now() - this.lastUpdated;\n if (diff < this.defaultDelay){\n this.disabledByDelay = true;\n this.timeout = timer(this.defaultDelay - diff).pipe(\n take(1)\n ).subscribe(() => {\n this.disabledByDelay = false;\n });\n return;\n }\n }\n this.disabledByDelay = false;\n }\n clearTimeout(){\n if (this.timeout && !this.timeout.closed){\n this.timeout.unsubscribe();\n }\n }\n ngOnDestroy(){\n this.clearTimeout();\n }\n\n}\n","import { Directive, Input, OnChanges, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[appInputPassword]'\n})\nexport class InputPasswordDirective {\n\n @Input() showPassword = false;\n\n @HostBinding('attr.type')\n get type() {\n return this.showPassword ? 'text' : 'password';\n }\n constructor() { }\n\n\n\n\n}\n","import {\n AfterViewInit, Directive, ElementRef, HostBinding,\n HostListener, Input, OnChanges, OnInit, Renderer2, RendererStyleFlags2, SimpleChanges, OnDestroy\n} from '@angular/core';\nimport { componentDestroyed, OnDestroyMixin } from '@w11k/ngx-componentdestroyed';\nimport { EMPTY, interval, Subject, combineLatest, ReplaySubject } from 'rxjs';\nimport { debounceTime, switchMap, takeUntil, tap } from 'rxjs/operators';\n\n// TODO ADD LEFT AND RIGHT ARROWS WITH NAVIGATION?\n\nconst SCROLL_OFFSET_FRACTION = 6;\nconst MARGIN = 64;\nconst CONTINUOUS_SCROLLING_TIMEOUT_INTERVAL = 50;\nconst REFRESH_INTERVAL = 800;\nconst ARROW_MARGIN = 24;\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[responsiveTabs]'\n})\nexport class ResponsiveTabsDirective extends OnDestroyMixin implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n\n\n padding = 0;\n\n margin = 4;\n\n listSize = 0;\n hostSize = 0;\n\n height = 0;\n leftPos = 0;\n\n list;\n scroller;\n\n @Input() responsiveTabs: any;\n\n direction = new Subject<'left' | 'right' | null>();\n\n protected wwidth$ = new ReplaySubject();\n\n protected hscroll$ = new ReplaySubject();\n\n @HostBinding('class.responsive-tabs')\n get isScrollable() { return this.listSize > this.hostSize - this.padding; }\n\n @HostBinding('class.show-left-arrow')\n showLeftArrow = false;\n\n @HostBinding('class.show-right-arrow')\n showRightArrow = false;\n\n listeners = [];\n\n get fraction() { return this.hostSize / SCROLL_OFFSET_FRACTION; }\n get maxLeft() { return this.hostSize - this.listSize - MARGIN / 2; }\n\n\n @HostListener('window:resize', ['$event'])\n onResize(event) {\n this.wwidth$.next(event.target.innerWidth);\n }\n\n constructor(\n protected el: ElementRef,\n protected renderer: Renderer2\n ) {\n super();\n\n }\n\n ngOnInit() {\n this.hscroll$.next(0);\n this.wwidth$.next(window.innerWidth);\n }\n ngOnChanges(changes: SimpleChanges) {\n if (changes.responsiveTabs) {\n if (this.list) {\n this.checkListSize();\n }\n\n }\n }\n\n\n ngOnDestroy(){\n super.ngOnDestroy();\n // Destroy events listeners\n this.listeners.forEach(listener => listener());\n }\n\n createContainer() {\n const container = this.renderer.createElement('div');\n this.scroller = this.renderer.createElement('div');\n this.renderer.addClass(container, 'tabs-container');\n this.renderer.addClass(this.scroller, 'tabs-scroller');\n this.list = this.el.nativeElement.querySelector('ul.nav-tabs');\n\n const arrowLeft = this.renderer.createElement('div');\n const arrowRight = this.renderer.createElement('div');\n this.renderer.addClass(arrowLeft, 'tabs-arrow');\n this.renderer.addClass(arrowRight, 'tabs-arrow');\n this.renderer.addClass(arrowLeft, 'tabs-arrow-left');\n this.renderer.addClass(arrowRight, 'tabs-arrow-right');\n\n this.renderer.addClass(arrowLeft, 'fa');\n this.renderer.addClass(arrowRight, 'fa');\n\n this.renderer.addClass(arrowLeft, 'fa-caret-left');\n this.renderer.addClass(arrowRight, 'fa-caret-right');\n\n // // this.renderer.insertBefore(this.el.nativeElement, arrowLeft, this.list);\n // // this.renderer.insertBefore(this.el.nativeElement, arrowRight, this.list);\n\n // // this.renderer.insertBefore(this.el.nativeElement, container, arrowRight);\n this.renderer.insertBefore(this.el.nativeElement, container, this.list);\n this.renderer.appendChild(container, arrowLeft);\n this.renderer.appendChild(container, this.scroller);\n this.renderer.appendChild(this.scroller, this.list);\n this.renderer.appendChild(container, arrowRight);\n\n this.listeners.push(this.renderer.listen(this.scroller, 'scroll', (event) => {\n this.leftPos = event.target.scrollLeft;\n this.hscroll$.next(event.target.scrollLeft);\n }));\n\n this.listeners.push(this.renderer.listen(arrowLeft, 'click', (event) => {\n // console.log('CLICK LEFT');\n this.scroller.scrollBy(-(this.hostSize / SCROLL_OFFSET_FRACTION), 0);\n // this.startScroll('left', event);\n }));\n this.listeners.push(this.renderer.listen(arrowRight, 'click', (event) => {\n // console.log('CLICK RIGHT');\n this.scroller.scrollBy((this.hostSize / SCROLL_OFFSET_FRACTION), 0);\n // this.startScroll('right', event);\n }));\n\n }\n\n ngAfterViewInit() {\n // console.log('AFTER VIEW INIT', this.viewContainer);\n this.createContainer();\n\n\n Promise.resolve(null).then(() => {\n this.checkListSize();\n });\n\n combineLatest([\n this.wwidth$.pipe(\n debounceTime(300),\n tap(() => this.checkSize()),\n ),\n this.hscroll$.pipe(\n // tap(scroll => console.log('SCROLL IS ', scroll)),\n debounceTime(100),\n )\n ]).pipe(\n takeUntil(componentDestroyed(this)),\n // tap(([wwidth, scrollLeft]) => console.log('WIDTH', wwidth, scrollLeft))\n ).subscribe(([wwidth, scrollLeft]) => {\n if (this.isScrollable){\n this.showLeftArrow = scrollLeft > 0;\n this.showRightArrow = this.hostSize + scrollLeft + ARROW_MARGIN < this.listSize;\n\n }\n\n });\n\n this.direction.pipe(\n takeUntil(componentDestroyed(this)),\n switchMap((direction) => {\n if (direction) {\n if (direction === 'left') {\n this.scrollLeft();\n } else if (direction === 'right') {\n this.scrollRight();\n }\n return interval(CONTINUOUS_SCROLLING_TIMEOUT_INTERVAL).pipe(\n tap(() => {\n if (direction === 'left') {\n this.scrollLeft();\n } else if (direction === 'right') {\n this.scrollRight();\n }\n })\n );\n } else {\n return EMPTY;\n }\n\n })\n ).subscribe(direction => {\n\n });\n }\n\n\n protected checkListSize() {\n\n const items: NodeList = this.list.querySelectorAll('li');\n let size = 0;\n\n items.forEach((item: any, key) => {\n size += item.clientWidth;\n if (key === 0) {\n this.height = item.clientHeight;\n }\n // console.log('Size is now', size, item.clientWidth, item.clientLeft);\n });\n this.listSize = size + items.length * this.margin;\n // console.log('Check list size', size, items);\n this.renderer.setStyle(this.list, 'min-width', `${this.listSize}px`, RendererStyleFlags2.Important);\n this.renderer.setStyle(this.list, 'height', `${this.height}px`);\n // this.renderer.setStyle(this.el.nativeElement.querySelector('.arrow.left'), 'height', `${this.height}px`);\n // this.renderer.setStyle(this.el.nativeElement.querySelector('.arrow.right'), 'height', `${this.height}px`);\n this.checkSize();\n // this.safetyCheck();\n }\n\n protected checkSize() {\n Promise.resolve(null).then(() => {\n let el = this.el.nativeElement;\n while (el.clientWidth === 0 && el.parentElement) {\n el = el.parentElement;\n }\n this.hostSize = el.clientWidth;\n if (!this.isScrollable) {\n this.setLeftPos(0);\n this.direction.next(null);\n }\n\n // console.log('Checked size', this.hostSize, this.el.nativeElement);\n });\n\n }\n\n setLeftPos(value: number) {\n this.leftPos = value;\n // this.renderer.setStyle(this.scroller, 'left', `${this.leftPos}px`);\n }\n\n scrollLeft() {\n // console.log('SCROLL LEFT');\n if (this.isScrollable && this.leftPos < MARGIN) {\n this.setLeftPos(Math.min(0, this.leftPos + this.fraction));\n } else {\n this.direction.next(null);\n }\n }\n scrollRight() {\n // console.log('SCROLL RIGHT');\n if (this.isScrollable && this.leftPos > this.maxLeft) {\n this.setLeftPos(Math.max(this.maxLeft, this.leftPos - (this.hostSize / SCROLL_OFFSET_FRACTION)));\n } else {\n this.direction.next(null);\n }\n\n }\n\n startScroll(side: 'left' | 'right', event) {\n this.direction.next(side);\n }\n\n stopScroll(side: 'left' | 'right', event) {\n this.direction.next(null);\n }\n\n}\n","import { Directive, HostBinding, Input, isDevMode, HostListener, OnDestroy, OnInit, OnChanges } from '@angular/core';\nimport { QueryParamsHandling, Router, ActivatedRoute, NavigationEnd, UrlTree, Event } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { LocationStrategy } from '@angular/common';\n\n@Directive({\n selector: 'a[smartLink], area[smartLink]'\n})\nexport class SmartLinkWithHrefDirective implements OnDestroy, OnChanges {\n\n // TODO(issue/24571): remove '!'.\n @HostBinding('attr.target') @Input() target!: string;\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#queryParams NavigationExtras#queryParams}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n // TODO(issue/24571): remove '!'.\n @Input() queryParams!: { [k: string]: any };\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#fragment NavigationExtras#fragment}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n // TODO(issue/24571): remove '!'.\n @Input() fragment!: string;\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#queryParamsHandling NavigationExtras#queryParamsHandling}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n // TODO(issue/24571): remove '!'.\n @Input() queryParamsHandling!: QueryParamsHandling;\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#preserveFragment NavigationExtras#preserveFragment}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n // TODO(issue/24571): remove '!'.\n @Input() preserveFragment!: boolean;\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#skipLocationChange NavigationExtras#skipLocationChange}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n // TODO(issue/24571): remove '!'.\n @Input() skipLocationChange!: boolean;\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#replaceUrl NavigationExtras#replaceUrl}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n // TODO(issue/24571): remove '!'.\n @Input() replaceUrl!: boolean;\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the `NavigationExtras`.\n * @see {@link NavigationExtras#state NavigationExtras#state}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n @Input() state?: { [k: string]: any };\n @Input() protected smartLink: { url?: string, route?: any[] };\n protected subscription: Subscription;\n // TODO(issue/24571): remove '!'.\n protected preserve!: boolean;\n\n // the url displayed on the anchor element.\n // TODO(issue/24571): remove '!'.\n @HostBinding() href!: string;\n\n constructor(\n private router: Router, private route: ActivatedRoute,\n private locationStrategy: LocationStrategy) {\n this.subscription = router.events.subscribe((s: Event) => {\n if (s instanceof NavigationEnd) {\n this.updateTargetUrlAndHref();\n }\n });\n }\n\n\n\n /**\n * @deprecated As of Angular v4.0 use `queryParamsHandling` instead.\n */\n @Input()\n set preserveQueryParams(value: boolean) {\n if (isDevMode() && (console as any) && (console.warn as any)) {\n console.warn('preserveQueryParams is deprecated, use queryParamsHandling instead.');\n }\n this.preserve = value;\n }\n\n ngOnChanges(changes: {}): any {\n this.updateTargetUrlAndHref();\n }\n ngOnDestroy(): any {\n this.subscription.unsubscribe();\n }\n\n @HostListener('click', ['$event.button', '$event.ctrlKey', '$event.metaKey', '$event.shiftKey'])\n onClick(button: number, ctrlKey: boolean, metaKey: boolean, shiftKey: boolean): boolean {\n if (button !== 0 || ctrlKey || metaKey || shiftKey) {\n return true;\n }\n\n if (typeof this.target === 'string' && this.target !== '_self') {\n return true;\n }\n if (!this.smartLink.route && this.smartLink.url) {\n return true;\n }\n\n if (this.smartLink.route) {\n const extras = {\n skipLocationChange: attrBoolValue(this.skipLocationChange),\n replaceUrl: attrBoolValue(this.replaceUrl),\n state: this.state\n };\n this.router.navigateByUrl(this.urlTree, extras);\n }\n return false;\n }\n\n private updateTargetUrlAndHref(): void {\n if (this.smartLink.route) {\n this.href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree));\n } else if (this.smartLink.url) {\n this.href = this.smartLink.url;\n }\n }\n\n get urlTree(): UrlTree {\n return this.router.createUrlTree(this.smartLink.route, {\n relativeTo: this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n preserveQueryParams: attrBoolValue(this.preserve),\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n }\n\n}\n\n\nfunction attrBoolValue(s: any): boolean {\n return s === '' || !!s;\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { AbstractControl, ControlContainer, FormGroup, FormGroupDirective } from '@angular/forms';\n\n@Component({\n selector: 'goco-errors',\n template: `\n \n \n \n`,\n styleUrls: ['./error.component.css'],\n viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }]\n})\nexport class ErrorComponent implements OnInit, OnChanges, OnDestroy {\n\n\n @Input() controlNames: string[];\n // tslint:disable-next-line: no-input-rename\n @Input('bsfErrors')\n errorMessages: {\n [validator: string]: string\n } = {};\n controls: { [name: string]: AbstractControl } = {};\n // tslint:disable-next-line: variable-name\n _controls: AbstractControl[] = [];\n\n @Input() errorClass = '';\n\n\n @Input() showAll = false;\n @Input() withName = false;\n\n constructor(private parentF: FormGroupDirective) {\n\n }\n public messages = () => this.getMessages();\n\n ngOnInit() {\n this.setupControls();\n }\n ngOnDestroy() {\n\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes.controlNames) {\n this.setupControls();\n }\n\n }\n\n setupControls() {\n this.controls = {};\n if (this.controlNames) {\n this.controlNames.forEach(name => {\n this.extractNamesFromGroup(this.parentF.control.get(name), name);\n });\n } else {\n this.controls[''] = this.parentF.control;\n Object.keys(this.parentF.form.controls).forEach(name => {\n this.extractNamesFromGroup(this.parentF.control.get(name), name);\n });\n }\n this._controls = Object.values(this.controls);\n }\n\n private extractNamesFromGroup(fc: AbstractControl, name: string) {\n if (fc instanceof FormGroup) {\n Object.keys(fc.controls).forEach((n) => {\n this.extractNamesFromGroup(fc.get(n), 'name.' + n);\n });\n } else {\n this.controls[name] = fc;\n }\n return this.controls;\n\n }\n\n\n get hasErrors() {\n return !this.validationDisabled && this._controls.some(c => !c.valid && c.dirty && c.touched);\n }\n get isDirtyAndTouched(): boolean {\n return this._controls.some(c => c.dirty && c.touched);\n }\n\n get validationDisabled(): boolean {\n return this._controls.filter(c => !c.disabled).length === 0;\n }\n\n private getMessages(): string[] {\n\n const messages = [];\n\n if (!this.isDirtyAndTouched || this.validationDisabled) {\n return messages;\n }\n\n\n Object.keys(this.controls).filter(\n (c, i) =>\n !this.controls[c].valid &&\n !!this.controls[c].errors\n ).forEach(controlName => {\n if (!this.showAll && messages.length) {\n return;\n }\n Object.keys(this.controls[controlName].errors).forEach(key => {\n const theKey = this.withName && controlName ? controlName + '.' + key : key;\n const error = this.errorMessages[theKey] ;\n if (!error) {\n return;\n }\n\n\n if (messages.indexOf(error) === -1) {\n messages.push(error);\n }\n\n });\n });\n return messages;\n }\n\n}\n","import { Directive, Host, HostBinding, Inject, Input, Optional, SkipSelf } from '@angular/core';\nimport { ControlContainer, FormControl } from '@angular/forms';\n\n\nexport function controlPath(name: string, parent: ControlContainer): string[] {\n // tslint:disable-next-line:no-non-null-assertion\n return [...parent.path!, name];\n}\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '.form-control,.form-check-input,.custom-control-input,.custom-select'\n})\nexport class FormControlValidateDirective {\n @Input()\n formControlName: string;\n @Input()\n formControl: string;\n\n @Input()\n showValid: false;\n\n @HostBinding('class.is-valid')\n get validClass() {\n if (!this.control || !this.showValid) {\n return false;\n }\n return (\n this.control.valid &&\n (this.control.touched || this.control.dirty)\n );\n }\n\n @HostBinding('class.is-invalid')\n get invalidClass() {\n if (!this.control) {\n return false;\n }\n return (\n this.control.invalid &&\n this.control.touched &&\n this.control.dirty\n );\n }\n\n get path() {\n return controlPath(this.formControlName, this.parent);\n }\n\n get control(): FormControl {\n return this.formDirective && this.formDirective.getControl(this);\n }\n\n get formDirective(): any {\n return this.parent ? this.parent.formDirective : null;\n }\n\n\n constructor(\n // this value might be null, but we union type it as such until\n // this issue is resolved: https://github.com/angular/angular/issues/25544\n @Optional()\n @Host()\n @SkipSelf()\n private parent: ControlContainer\n ) {\n\n }\n}\n","import { Component, OnInit, Optional } from '@angular/core';\n\nimport { FormGroupComponentParent} from '../form-group/form-group.interface';\n\n@Component({\n selector: 'goco-form-group-error',\n templateUrl: './form-group-error.component.html',\n styleUrls: ['./form-group-error.component.scss'],\n\n})\nexport class FormGroupErrorComponent implements OnInit {\n\n constructor(\n @Optional() public formGroup: FormGroupComponentParent) { }\n\n ngOnInit(): void {\n }\n\n}\n","\n \n \n","import { AfterContentInit, Component, ContentChildren, ElementRef, HostBinding, Input, OnInit, QueryList, forwardRef } from '@angular/core';\nimport { FormControlName } from '@angular/forms';\nimport { DEFAULT_ERRORS } from '../../forms.const';\nimport { FormGroupErrorComponent } from '../form-group-error/form-group-error.component';\nimport { IFormGroupComponent, FormGroupComponentParent } from './form-group.interface';\n@Component({\n // tslint:disable:component-selector\n selector: '.form-group',\n template: `\n \n \n \n \n \n `,\n styles: ['small {display: block;}'],\n providers: [{ provide: FormGroupComponentParent, useExisting: forwardRef(() => FormGroupComponent) }]\n})\nexport class FormGroupComponent implements IFormGroupComponent, OnInit, AfterContentInit {\n\n @ContentChildren(FormControlName, { descendants: true, })\n FormControlNames: QueryList;\n\n @ContentChildren(FormGroupErrorComponent, { descendants: true, })\n FormGroupErrorComponents: QueryList;\n\n\n // tslint:disable-next-line: no-input-rename\n @Input('formErrors')\n errorMessages: {\n [validator: string]: string\n } = {};\n\n @Input()\n validationDisabled = false;\n\n // @HostBinding('class.required')\n // get isRequired(){\n // return this.FormControlNames.some(c => c.control.\n // }\n\n @HostBinding('class.has-error')\n get hasErrors() {\n return (\n !this.validationDisabled &&\n\n this.FormControlNames.some(c => !c.valid && c.dirty && c.touched)\n );\n }\n\n @HostBinding('class.has-success')\n get hasSuccess() {\n return (\n !this.validationDisabled &&\n !this.FormControlNames.some(c => !c.valid) &&\n this.FormControlNames.some(c => c.dirty && c.touched)\n\n );\n }\n\n\n\n public messages = () => this.getMessages();\n\n constructor(\n private elRef: ElementRef,\n ) { }\n\n ngAfterContentInit() {\n }\n\n ngOnInit() {\n }\n\n get label() {\n const label = this.elRef.nativeElement.querySelector('label');\n return label && label.textContent ? label.textContent.trim() : '';\n }\n\n get isDirtyAndTouched(): boolean {\n return this.FormControlNames.some(c => c.dirty && c.touched);\n }\n\n private getMessages(): { msg: string, vars: object }[] {\n const messages = [];\n if (!this.isDirtyAndTouched || this.validationDisabled) {\n return messages;\n }\n\n const names = this.FormControlNames.map(f => f.name);\n\n this.FormControlNames.filter(\n (c, i) =>\n !c.valid &&\n !!c.errors &&\n // filter out FormControlNames that share the same name - usually for radio buttons\n names.indexOf(c.name) === i\n ).forEach(control => {\n Object.keys(control.errors).forEach(key => {\n const error = this.errorMessages[key] || DEFAULT_ERRORS[key];\n if (!error) {\n return;\n }\n messages.push({ msg: error, vars: control.errors[key] });\n });\n });\n\n return messages;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface IFormGroupComponent {\n isDirtyAndTouched: boolean;\n hasErrors: boolean;\n messages: () => {msg: string, vars: object }[];\n}\nexport abstract class FormGroupComponentParent implements IFormGroupComponent {\n isDirtyAndTouched: boolean;\n hasErrors: boolean;\n messages: () => { msg: string; vars: object; }[];\n\n}\n","\nexport const DEFAULT_ERRORS = [\n 'required',\n 'minlength',\n 'maxlength',\n 'email',\n 'enum',\n 'tel',\n 'url',\n 'duplicate'\n].reduce((r, c) => {\n r[c] = 'error.form.' + c;\n\n return r;\n}, {});\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ErrorComponent } from './error/error.component';\nimport { FormControlValidateDirective } from './form-control-validate/form-control-validate.directive';\nimport { TranslocoModule } from '@ngneat/transloco';\nimport { FormGroupComponent } from './form-control-validate/form-group/form-group.component';\nimport { FormGroupErrorComponent } from './form-control-validate/form-group-error/form-group-error.component';\n\n@NgModule({\n declarations: [\n ErrorComponent, FormControlValidateDirective, FormGroupComponent, FormGroupErrorComponent,\n ],\n imports: [\n CommonModule,\n TranslocoModule\n ],\n exports: [ErrorComponent, FormControlValidateDirective, FormGroupComponent, FormGroupErrorComponent]\n})\nexport class StudioFormsModule { }\n","import { Injectable } from '@angular/core';\nimport { CanActivate, CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { Store } from '@ngxs/store';\nimport { AuthState } from '../state/auth/auth.state';\nimport { map } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\nimport { IndigoAuthService } from 'src/app/auth/auth.service';\nimport { LangService } from 'src/app/lang/lang.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticatedGuard implements CanActivate, CanActivateChild {\n lang = this.langService.lang;\n\n constructor(\n private store: Store,\n private router: Router,\n private location: Location,\n protected oidcSecurityService: OidcSecurityService,\n protected authService: IndigoAuthService,\n protected langService: LangService\n ) {\n this.langService.lang$.subscribe(l => {\n this.lang = l;\n });\n }\n isAuthenticated(route?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Observable {\n return this.authService.isFullyAuthenticated$.pipe(\n map((isAuthorized: boolean) => {\n if (isAuthorized) {\n return true;\n }\n let parentRoute = route;\n while (parentRoute.outlet === 'primary' && parentRoute.parent) {\n parentRoute = parentRoute.parent;\n }\n if (parentRoute.outlet !== 'primary') {\n // In a secondary outlet, just remove the outlet from the tree\n const cleanTree = this.router.parseUrl(state.url);\n delete cleanTree.root.children[parentRoute.outlet];\n return cleanTree;\n }\n this.authService.authorize(state.url, this.lang);\n\n return false;\n\n })\n );\n }\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.isAuthenticated(next, state);\n }\n canActivateChild(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.isAuthenticated(next, state);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { CoreState } from '../state/core/core.state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MaintenanceGuard implements CanActivate, CanActivateChild {\n\n constructor(\n protected store: Store,\n protected router: Router){\n\n }\n\n isInMaintenance(next: ActivatedRouteSnapshot){\n const inMaintenance = this.store.selectSnapshot(CoreState.isInMaintenance);\n if (next.data.is_maintenance){\n return inMaintenance || this.router.createUrlTree(['/']);\n }\n return !inMaintenance || this.router.createUrlTree(['/', 'maintenance']);\n }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.isInMaintenance(next);\n }\n canActivateChild(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.isInMaintenance(next);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Store } from '@ngxs/store';\nimport { TranslocoService } from '@ngneat/transloco';\n\nexport interface ModalConfirmConfig {\n title: string;\n description?: string;\n action: any;\n showCheckbox?: boolean;\n showAlert?: boolean;\n\n alertText?: string;\n alertType?: 'success' | 'info' | 'warning' | 'danger';\n alertIcon?: string;\n\n cancelText?: string;\n confirmText?: string;\n confirmClass?: string;\n}\n\nlet nextId = 0;\n@Component({\n selector: 'app-modal-confirm',\n templateUrl: './modal-confirm.component.html',\n styleUrls: ['./modal-confirm.component.scss']\n})\nexport class ModalConfirmComponent implements OnInit, ModalConfirmConfig {\n\n readonly id = `confirm-dialog-${nextId++}`;\n\n title: string;\n description: string;\n\n action: any;\n\n showCheckbox = false;\n showAlert = false;\n\n checkboxText = this.transloco.translate('confirm.checkbox');\n\n\n alertText = this.transloco.translate('confirm.irreversible');\n alertType: 'success' | 'info' | 'warning' | 'danger' = 'info';\n alertIcon = 'fas fa-exclamation-triangle';\n\n cancelText = this.transloco.translate('actions.cancel');\n confirmText = this.transloco.translate('actions.confirm');\n confirmClass = 'btn-brand';\n\n confirmed = false;\n\n constructor(\n public modalRef: BsModalRef,\n protected store: Store,\n protected transloco: TranslocoService) { }\n\n ngOnInit(): void {\n }\n\n confirm() {\n if (this.action) {\n this.store.dispatch(this.action);\n }\n this.modalRef.hide();\n }\n\n}\n","
\n
\n \n
\n
\n

\n \n \n \n \n\n
\n \n \n
\n
\n
\n \n\n \n
","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'domain'\n})\nexport class DomainPipe implements PipeTransform {\n\n transform(value: string): unknown {\n if (value && value.length){\n return `@${value}`;\n }\n return value;\n }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Injectable({providedIn: 'root'})\n@Pipe({\n name: 'duration'\n})\nexport class DurationPipe implements PipeTransform {\n\n transform(value: number): string {\n\n const h = Math.floor(value / 3600);\n let remains = value - h * 3600;\n const m = Math.floor( remains / 60);\n remains = Math.floor(remains - m * 60);\n\n let retval = '';\n\n if (h > 0){\n retval += ` ${h}h`;\n }\n if (m > 0){\n retval += ` ${m}m`;\n }\n\n if (remains > 0){\n retval += ` ${remains}s`;\n }\n\n return retval.trim();\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'encodeUri'\n})\nexport class EncodeUriPipe implements PipeTransform {\n\n transform(value: string, component: boolean = true): string {\n if (component){\n return encodeURIComponent(value);\n } else {\n return encodeURI(value);\n }\n\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CountryCode, NumberFormat, parsePhoneNumberFromString } from 'libphonenumber-js';\n@Pipe({\n name: 'phoneNumber'\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(value: string, options?: {\n country?: CountryCode,\n format?: NumberFormat\n }): string {\n\n try {\n const parsed = parsePhoneNumberFromString(value, options?.country || 'CA');\n if (parsed){\n const format = options?.format || (parsed.countryCallingCode === '1' ? 'NATIONAL' : 'INTERNATIONAL');\n const formated = parsed.format(format);\n return formated || value;\n }\n }catch (e) {\n console.warn('Parsing error', e);\n }\n\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport parsePhoneNumberFromString, { CountryCode, NumberFormat } from 'libphonenumber-js';\n\n@Pipe({\n name: 'phoneOrExt'\n})\nexport class PhoneOrExtPipe implements PipeTransform {\n\n transform(value: string, mainNumber: string, options?: {\n country?: CountryCode,\n format?: NumberFormat\n }): string {\n\n try {\n const parsed = parsePhoneNumberFromString(value, options?.country || 'CA');\n if (parsed && parsed.isPossible()) {\n const format = options?.format || (parsed.countryCallingCode === '1' ? 'NATIONAL' : 'INTERNATIONAL');\n const formated = parsed.format(format);\n return formated || value;\n }\n } catch (e) {\n\n }\n\n try {\n const parsed = parsePhoneNumberFromString(mainNumber, options?.country || 'CA');\n if (parsed) {\n parsed.ext = value;\n const format = options?.format || (parsed.countryCallingCode === '1' ? 'NATIONAL' : 'INTERNATIONAL');\n const formated = parsed.format(format);\n return formated || value;\n }\n } catch (e) {\n\n }\n\n return value;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n HttpErrorResponse\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AppConfigService } from 'src/app/config/app-config.service';\nimport { Store } from '@ngxs/store';\nimport { take, filter, tap, catchError } from 'rxjs/operators';\nimport { AuthState } from '../state/auth/auth.state';\nimport { Logout } from '../state/auth/auth.actions';\nimport { Studio3ApiError } from '../api';\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\n\nconst insecureEndpoints = ['/auth/login', '/auth/logout'];\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n baseUri;\n ready = false;\n prefix;\n constructor(\n public config: AppConfigService,\n public store: Store,\n protected oidcSecurityServices: OidcSecurityService\n ) {\n this.config.isReady$.pipe(\n filter(r => r),\n tap((r) => {\n this.ready = r;\n this.baseUri = this.config.getApiUri();\n this.prefix = this.config.getAuthPrefix();\n }),\n take(1)\n ).subscribe();\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (this.ready && request.url.startsWith(this.baseUri)\n && insecureEndpoints.findIndex(e => request.url.endsWith(e)) === -1\n // && request.headers.has('Access-Control-Allow-Credentials')\n ) {\n // const authToken = this.store.selectSnapshot(AuthState.token);\n console.log(\"Will ask for token\");\n const token1 = this.oidcSecurityServices.getIdToken();\n // console.log(\"ID Token:\", token1);\n const token = this.oidcSecurityServices.getToken();\n // console.log(\"Token:\", token);\n const authenticatedReq = request.clone({\n // headers: request.headers.set('Authorization', `authtkt ${authToken}`)\n headers: request.headers.set('Authorization', `${this.prefix} ${token}`)\n });\n return next.handle(authenticatedReq).pipe(\n catchError((error) => {\n // Disconnect\n if (error instanceof HttpErrorResponse && error.status === 401) {\n this.store.dispatch(new Logout());\n throw new Studio3ApiError(error, true);\n }\n throw error;\n\n }));\n }\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n HttpErrorResponse,\n HttpResponse\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AppConfigService } from 'src/app/config/app-config.service';\nimport { catchError, filter, take, tap } from 'rxjs/operators';\nimport { Store } from '@ngxs/store';\nimport { Studio3ApiError } from '../api';\nimport { StartMaintenance, StopMaintenance } from '../state/core/core.actions';\nimport { CoreState } from '../state/core/core.state';\n\n@Injectable()\nexport class MaintenanceInterceptor implements HttpInterceptor {\n\n baseUri;\n ready = false;\n constructor(\n public config: AppConfigService,\n public store: Store,\n ) {\n this.config.isReady$.pipe(\n filter(r => r),\n tap((r) => { this.ready = r; this.baseUri = this.config.getApiUri(); }),\n take(1)\n ).subscribe();\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (this.ready && request.url.startsWith(this.baseUri)) {\n return next.handle(request).pipe(\n catchError((e) => {\n if ((e instanceof Studio3ApiError && e.status === 503 && e.error === 'maintenance')\n || (e instanceof HttpErrorResponse && e.status === 503 && e.error && e.error.error === 'maintenance')) {\n this.store.dispatch(new StartMaintenance());\n }\n\n throw e;\n }),\n tap((data) => {\n if (data instanceof HttpResponse && data.status !== 503 && this.store.selectSnapshot(CoreState.isInMaintenance)) {\n this.store.dispatch(new StopMaintenance());\n }\n })\n );\n }\n return next.handle(request);\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { combineLatest, of, ReplaySubject } from 'rxjs';\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\nimport { AppSkinService } from 'src/app/app-skin.service';\nimport { IDomainConfig } from 'src/app/config/domains-skin.model';\n\n/*\n\n\n\n*/\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TitleService {\n\n domainConf: IDomainConfig = this.skinService.domainConfig;\n sections: string[] = [];\n lang = this.transloco.getActiveLang();\n sections$ = new ReplaySubject();\n\n protected currentTitle = new ReplaySubject();\n get currentTitle$() { return this.currentTitle.asObservable(); }\n\n constructor(\n protected title: Title,\n public skinService: AppSkinService,\n private transloco: TranslocoService,\n ) {\n this.currentTitle.next(this.title.getTitle());\n this.sections$.next([]);\n combineLatest([\n this.skinService.domainConfig$.pipe(map(c => c.name)),\n transloco.langChanges$.pipe(startWith(this.transloco.getActiveLang)),\n this.sections$.asObservable().pipe(\n // tap(s=> this.sections.change),\n switchMap(sections => sections.length ? combineLatest(\n sections.map(s => this.transloco.selectTranslate(s)\n .pipe(filter(t => t !== s)))) : of([]) )\n )\n ]).subscribe(([domainName, lang, sections]) => {\n\n const common = lang === 'fr' ? `Panneau de contrĂ´le ${domainName}` : `${domainName} Control Panel`;\n const t = sections.join(' | ')\n + (sections.length ? ' | ' : '')\n + common;\n this.currentTitle.next(t);\n this.title.setTitle(t);\n });\n\n // EMILE\n // this.skinService.domainConfig$.subscribe((c) => {\n // this.domainConf = c;\n // this._setTitle();\n // });\n // this.transloco.langChanges$.subscribe(l => {\n // this.lang = l;\n // this._setTitle();\n // });\n // this.transloco.events$\n }\n\n\n setSections(names: string[]= []){\n this.sections$.next(names);\n // this.sections = names;\n // this._setTitle();\n }\n\n protected _setTitle(){\n const t = this.sections.map(s => this.transloco.translate(s)).join(' | ')\n + (this.sections.length ? ' | ' : '')\n + `${this.domainConf.name} Control Panel`;\n this.currentTitle.next(t);\n this.title.setTitle(t);\n }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { ngxLoadingAnimationTypes } from 'ngx-loading';\n\nexport const BOOTSTRAP_BREAKPOINTS = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nexport const MAX_WIDTH_BREAKPOINTS = ['sm', 'md', 'lg', 'xl'].reduce((r, b) => {\n r[b] = '(max-width: ' + (BOOTSTRAP_BREAKPOINTS[b] - 1) + 'px)';\n return r;\n}, {}) as { sm: string, md: string, lg: string, xl: string};\nexport const MIN_WIDTH_BREAKPOINTS = ['sm', 'md', 'lg', 'xl'].reduce((r, b) => {\n r[b] = '(min-width: ' + (BOOTSTRAP_BREAKPOINTS[b]) + 'px)';\n // console.log('BP MIN', b , r);\n return r;\n}, {}) as { sm: string, md: string, lg: string, xl: string};\n\nexport const DISCREET_LOADING_CFG = {\n animationType: ngxLoadingAnimationTypes.circle,\n primaryColour: 'rgba(0,0,0,0.4)',\n secondaryColour: 'rgba(0,0,0,0.2)',\n backdropBackgroundColour: 'transparent'\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TranslocoModule } from '@ngneat/transloco';\nimport { TranslocoLocaleModule } from '@ngneat/transloco-locale';\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { AlertModule } from 'ngx-bootstrap/alert';\nimport { NgxLoadingModule } from 'ngx-loading';\nimport { AddressComponent } from './components/address/address.component';\nimport { ApiErrorComponent } from './components/api-error/api-error.component';\nimport { BasicMessageComponent } from './components/basic-message/basic-message.component';\nimport { EmptyComponent } from './components/empty/empty.component';\nimport { LandingContainerComponent } from './components/landing-container/landing-container.component';\nimport { ListComponent } from './components/list/list.component';\nimport { LoadingComponent } from './components/loading/loading.component';\nimport { ModalRouteComponent } from './components/modal-route/modal-route.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { PsswdInputComponent } from './components/psswd-input/psswd-input.component';\nimport { SmartSelectComponent } from './components/smart-select/smart-select.component';\nimport { DisabledDelayDirective } from './directives/disable-delay.directive';\nimport { InputPasswordDirective } from './directives/input-password.directive';\nimport { ResponsiveTabsDirective } from './directives/responsive-tabs.directive';\nimport { SmartLinkWithHrefDirective } from './directives/smart-link.directive';\nimport { StudioFormsModule } from './forms/forms.module';\nimport { ModalConfirmComponent } from './modals/modal-confirm/modal-confirm.component';\nimport { DomainPipe } from './pipes/domain.pipe';\nimport { EncodeUriPipe } from './pipes/encode-uri.pipe';\nimport { PhoneNumberPipe } from './pipes/phone-number.pipe';\nimport { PhoneOrExtPipe } from './pipes/phone-or-ext.pipe';\nimport { PeriodSelectorComponent } from './components/period-selector/period-selector.component';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { DurationPipe } from './pipes/duration.pipe';\nimport { TimezoneSelectorComponent } from './components/timezone-selector/timezone-selector.component';\n\n\n\n// TODO : Split shared module so that only eagerly needed stuff remains in it and put the rest in a lazyly shared module\n\n@NgModule({\n declarations: [\n EmptyComponent, PaginationComponent, ListComponent, InputPasswordDirective,\n PsswdInputComponent,\n SmartLinkWithHrefDirective,\n ModalConfirmComponent,\n ModalRouteComponent,\n EncodeUriPipe,\n SmartSelectComponent,\n LoadingComponent,\n BasicMessageComponent,\n ApiErrorComponent,\n ResponsiveTabsDirective,\n DisabledDelayDirective,\n DomainPipe,\n LandingContainerComponent,\n AddressComponent,\n PhoneNumberPipe,\n PhoneOrExtPipe,\n PeriodSelectorComponent,\n DurationPipe,\n TimezoneSelectorComponent,\n ],\n imports: [\n CommonModule,\n TranslocoModule,\n FormsModule,\n ReactiveFormsModule,\n NgxDatatableModule,\n NgxLoadingModule,\n AlertModule,\n NgSelectModule,\n StudioFormsModule,\n TranslocoLocaleModule,\n BsDropdownModule,\n BsDatepickerModule\n ],\n exports: [\n CommonModule,\n TranslocoModule,\n EmptyComponent,\n PaginationComponent,\n PsswdInputComponent,\n InputPasswordDirective,\n ListComponent,\n SmartLinkWithHrefDirective,\n ModalConfirmComponent,\n ModalRouteComponent,\n EncodeUriPipe,\n SmartSelectComponent,\n LoadingComponent,\n BasicMessageComponent,\n StudioFormsModule,\n ApiErrorComponent,\n ResponsiveTabsDirective,\n TranslocoLocaleModule,\n DisabledDelayDirective,\n DomainPipe,\n LandingContainerComponent,\n AddressComponent,\n PhoneNumberPipe,\n PhoneOrExtPipe,\n PeriodSelectorComponent,\n DurationPipe,\n TimezoneSelectorComponent\n ]\n})\nexport class SharedModule { }\n\n","import { IUser } from '../../models';\r\n\r\n\r\nexport class WhoAmi {\r\n static readonly type = '[Auth] WhoAmI';\r\n}\r\n\r\nexport class Logout {\r\n static readonly type = '[Auth] Logout';\r\n}\r\n\r\nexport class LoggedIn {\r\n static readonly type = '[Auth] LoggedIn';\r\n}\r\n\r\nexport class LoggedOut {\r\n static readonly type = '[Auth] LoggedOut';\r\n}\r\n\r\n\r\nexport class AuthUpdated {\r\n static readonly type = '[Auth] Updated';\r\n}\r\n\r\nexport class UpdatedProfile {\r\n static readonly type = '[Auth] Profile Updated';\r\n constructor(public payload: {user: IUser}){}\r\n}\r\n\r\nexport class UpdatedProfileFro{\r\n static readonly type = '[Auth] Profile Updated';\r\n constructor(public payload: {first_name: string, last_name: string, email: string}){}\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\r\n// import { catchError, map } from 'rxjs/operators';\r\nimport { LangService } from 'src/app/lang/lang.service';\r\nimport { IBasicUser, IDomain } from 'src/app/shared/models';\r\nimport { IStudio3ApiError, Studio3ApiError } from '../../api/studio-api-error.model';\r\nimport { StudioApiService } from '../../api/studio-api.service';\r\nimport { AddAccount } from '../core/core.actions';\r\nimport { TabsMessage } from '../tabs-bus/tabs-bus.actions';\r\nimport { AuthUpdated, LoggedIn, LoggedOut, Logout, WhoAmi, UpdatedProfileFro } from './auth.actions';\r\nimport { WhoAmIResponse } from './auth.model';\r\n\r\n// Age threshold in (ms) before we refresh whoami info\r\nexport const AUTH_FRESHNESS = 600000; // 10 minutes\r\n\r\n\r\nexport interface AuthStateModel {\r\n tk?: string;\r\n user?: IBasicUser;\r\n // accounts: {\r\n // [code: string]: IAccount\r\n // };\r\n accounts_count?: number;\r\n account_codes: string[];\r\n permissions: string[];\r\n preferences: { [pref: string]: any };\r\n lastUpdate: number;\r\n inlogin?: boolean;\r\n error?: IStudio3ApiError;\r\n domains?: IDomain[];\r\n}\r\n\r\nexport const defaultState: AuthStateModel = {\r\n account_codes: [],\r\n permissions: [],\r\n preferences: {},\r\n lastUpdate: 0\r\n};\r\n\r\n@State({\r\n name: 'auth',\r\n defaults: defaultState\r\n})\r\n@Injectable()\r\nexport class AuthState {\r\n\r\n constructor(\r\n protected api: StudioApiService,\r\n // protected cookieService: StudioCookieService,\r\n protected router: Router,\r\n protected zone: NgZone,\r\n protected lang: LangService\r\n ) {\r\n\r\n }\r\n\r\n @Selector()\r\n static getState(state: AuthStateModel): AuthStateModel {\r\n return state;\r\n }\r\n @Selector()\r\n static token(state: AuthStateModel) {\r\n return state.tk;\r\n }\r\n\r\n // @Selector()\r\n // static isAuthenticated(state: AuthStateModel): boolean {\r\n // return Boolean(state && state.tk);\r\n // }\r\n\r\n // @Selector()\r\n // static isAnonymous(state: AuthStateModel): boolean {\r\n // return Boolean(!state || !state.tk);\r\n // }\r\n\r\n @Selector()\r\n static getUser(state: AuthStateModel): IBasicUser {\r\n return state.user;\r\n }\r\n\r\n @Selector()\r\n static getAccountCodes(state: AuthStateModel): string[] {\r\n return state.account_codes || [];\r\n }\r\n\r\n @Selector()\r\n static getError(state: AuthStateModel): IStudio3ApiError {\r\n return state.error;\r\n }\r\n\r\n @Selector()\r\n static getPermissions(state: AuthStateModel): string[] {\r\n return state.permissions ? state.permissions : [];\r\n }\r\n\r\n @Selector()\r\n static getPermissionsAsObject(state: AuthStateModel): {\r\n [id: string]: boolean\r\n } {\r\n return state.permissions ? state.permissions.reduce((r, p) => ({ ...r, [p]: true }), {}) : {};\r\n }\r\n\r\n @Selector()\r\n static getPreferences(state: AuthStateModel): { [pref: string]: any } {\r\n return state.preferences ? state.preferences : {};\r\n }\r\n\r\n @Selector()\r\n static getDomains(state: AuthStateModel): IDomain[] {\r\n return state.domains ? state.domains : [];\r\n }\r\n\r\n @Selector()\r\n static getLastUpdate(state: AuthStateModel): number {\r\n return state.lastUpdate;\r\n }\r\n\r\n @Action(Logout)\r\n public logout(ctx: StateContext) {\r\n }\r\n\r\n @Action(WhoAmi, {\r\n cancelUncompleted: true\r\n })\r\n public whoami(ctx: StateContext) {\r\n\r\n // export interface WhoAmIResponse {\r\n // permissions: string[];\r\n // preferences: {};\r\n // accounts: IBasicAccount[];\r\n // accounts_count?: number;\r\n // user: IBasicUser;\r\n // domains?: IDomain[];\r\n // }\r\n \r\n const pseudoUser = {\r\n \"accounts\": [\r\n {\r\n \"accountcode\": \"AC-1000063\",\r\n \"decommissioned\": false,\r\n \"domain_name\": \"\",\r\n \"flags\": {},\r\n \"is_domain\": true,\r\n \"name\": \"GoCo\",\r\n \"tags\": [\r\n \"\"\r\n ]\r\n }\r\n ],\r\n \"accounts_count\": 1,\r\n \"domains\": [],\r\n \"permissions\": [],\r\n \"preferences\": {},\r\n \"user\": {\r\n \"default_account\": \"AA-1000000\",\r\n \"email\": \"indigo@goco.ca\",\r\n \"first_name\": \"Indigo\",\r\n \"id\": 1,\r\n \"last_name\": \"Indigo\"\r\n }\r\n }\r\n const newState = cleanWhoAmIResponse(pseudoUser);\r\n ctx.patchState(newState);\r\n return ctx.dispatch([\r\n new AddAccount(pseudoUser.accounts),\r\n new TabsMessage({\r\n state: 'auth',\r\n action: 'patch',\r\n data: newState\r\n })\r\n ]);\r\n }\r\n\r\n // Version prior to August 29th 2021\r\n\r\n // @Action(WhoAmi, {\r\n // cancelUncompleted: true\r\n // })\r\n // public whoami(ctx: StateContext) {\r\n // console.log('FRO who am ');\r\n // return this.api.get('/auth/whoami').pipe(\r\n // catchError(e => {\r\n // if (e instanceof Studio3ApiError) {\r\n // throw e;\r\n // }\r\n // ctx.dispatch(new Logout());\r\n // throw new Studio3ApiError(e);\r\n // }),\r\n // map((data: WhoAmIResponse) => {\r\n // // this.cookieService.setAuthCookie(ctx.getState().tk);\r\n\r\n // console.log(\"Fro WhoAmI data \", data);\r\n // const newState = cleanWhoAmIResponse(data);\r\n // ctx.patchState(newState);\r\n // ctx.dispatch([\r\n // new AddAccount(data.accounts),\r\n // new TabsMessage({\r\n // state: 'auth',\r\n // action: 'patch',\r\n // data: newState\r\n // })\r\n // ]);\r\n // })\r\n // );\r\n // }\r\n\r\n\r\n // @Action(UpdatedProfile)\r\n // public updatedProfile(ctx: StateContext, {payload}: UpdatedProfile){\r\n // ctx.patchState({\r\n // user: payload.user,\r\n // accounts_count: payload.user.accounts_count\r\n // })\r\n // }\r\n\r\n @Action(UpdatedProfileFro)\r\n public updatedProfileFro(ctx: StateContext, {payload}: UpdatedProfileFro){\r\n \r\n const pseudoUser = {\r\n \"accounts\": [\r\n {\r\n \"accountcode\": \"u01\",\r\n \"decommissioned\": false,\r\n \"domain_name\": \"\",\r\n \"flags\": {},\r\n \"is_domain\": true,\r\n \"name\": \"GoCo\",\r\n \"tags\": [\"\"]\r\n }\r\n ],\r\n \"accounts_count\": 1,\r\n \"domains\": [],\r\n \"permissions\": [],\r\n \"preferences\": {},\r\n \"user\": {\r\n \"default_account\": \"u01\",\r\n \"email\": payload.email,\r\n \"first_name\": payload.first_name,\r\n \"id\": 1,\r\n \"last_name\": payload.last_name\r\n }\r\n }\r\n const newState = cleanWhoAmIResponse(pseudoUser);\r\n ctx.patchState(newState);\r\n return ctx.dispatch([\r\n new AddAccount(pseudoUser.accounts),\r\n new TabsMessage({\r\n state: 'auth',\r\n action: 'patch',\r\n data: newState\r\n })\r\n ]);\r\n\r\n\r\n }\r\n\r\n\r\n @Action([LoggedIn, LoggedOut])\r\n public reloadRoutes(ctx: StateContext, action: LoggedIn | LoggedOut | AuthUpdated) {\r\n // const newState = JSON.parse(localStorage.getItem('auth'));\r\n\r\n // ctx.setState(newState);\r\n this.zone.run(() => {\r\n // const currentUrl = action instanceof LoggedOut this.router.url;\r\n Promise.resolve(null).then(() => {\r\n this.router.navigate(['/', this.lang.lang, 'app']);\r\n // console.warn(' -- GO FOR IT ', action);\r\n // this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n\r\nfunction cleanUser(u: IBasicUser): IBasicUser {\r\n if (!u.default_account && (u as any).master_accountcode) {\r\n u.default_account = (u as any).master_accountcode;\r\n delete (u as any).master_accountcode;\r\n }\r\n return u;\r\n}\r\n\r\n\r\nfunction cleanPrefs(prefs: { [pref: string]: any }): { [pref: string]: any } {\r\n return Object.keys(prefs).reduce((ret, p) => {\r\n\r\n try {\r\n ret[p] = JSON.parse(prefs[p]);\r\n } catch (e) {\r\n\r\n }\r\n\r\n return ret;\r\n }, prefs);\r\n}\r\n\r\n\r\nfunction cleanWhoAmIResponse(data: WhoAmIResponse): Partial {\r\n const state: Partial = {\r\n permissions: data.permissions,\r\n preferences: cleanPrefs(data.preferences),\r\n user: cleanUser(data.user),\r\n accounts_count: data.accounts_count,\r\n // accounts: data.accounts.reduce((ret, a) => {\r\n // ret[a.code] = cleanAccount(a);\r\n // return ret;\r\n // }, {}),\r\n lastUpdate: Date.now(),\r\n domains: data.domains || [],\r\n account_codes: ['u01'] // was probably\r\n };\r\n\r\n return state;\r\n\r\n}\r\n","import { IMenuItem } from '../../../private/layout/menu/menu-item.model';\r\nimport { IBasicAccount } from '../../models';\r\n\r\nexport class SetAccount {\r\n static readonly type = '[Core] Set Account';\r\n constructor(public payload: string) { }\r\n}\r\n\r\nexport class SetMenu {\r\n static readonly type = '[Core] Set Menu';\r\n constructor(public payload: IMenuItem[]) { }\r\n}\r\n\r\nexport class AddAccount {\r\n static readonly type = '[Core] Add Account';\r\n constructor(public payload: IBasicAccount | IBasicAccount[]) { }\r\n}\r\nexport class RemoveAccount {\r\n static readonly type = '[Core] Remove Account';\r\n constructor(public payload: IBasicAccount | IBasicAccount[]) { }\r\n}\r\n\r\nexport class AccountsUpdated {\r\n static readonly type = '[Core] Accounts Updated';\r\n}\r\n\r\nexport class GetAccount {\r\n static readonly type = '[Core] Get Account';\r\n constructor(public payload: { accountcode: string}) { }\r\n}\r\n\r\nexport class StartMaintenance {\r\n static readonly type = '[Core] Start Maintenance';\r\n}\r\n\r\nexport class StopMaintenance {\r\n static readonly type = '[Core] Stop Maintenance';\r\n}\r\n\r\n\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Action, Selector, State, StateContext, Store, NgxsAfterBootstrap } from '@ngxs/store';\r\nimport { BANNED_ACCOUNT_CODES } from 'src/app/app.const';\r\nimport { SilentError } from 'src/app/errors/studio-errors.model';\r\nimport { IMenuItem } from '../../../private/layout/menu/menu-item.model';\r\nimport { StudioApiService } from '../../api/studio-api.service';\r\nimport { IBasicAccount } from '../../models';\r\nimport { LoggedOut, Logout } from '../auth/auth.actions';\r\nimport { TabsMessage } from '../tabs-bus/tabs-bus.actions';\r\nimport { AccountsUpdated, AddAccount, GetAccount, RemoveAccount, SetAccount, SetMenu, StartMaintenance, StopMaintenance } from './core.actions';\r\n\r\nconst FORBID_DELAY = 20000;\r\nexport interface CoreStateModel {\r\n accountcode: string;\r\n menu: IMenuItem[];\r\n account_codes: string[];\r\n accounts: {\r\n [accountcode: string]: IBasicAccount\r\n };\r\n accounts_retrieved: {\r\n [accountcode: string]: number;\r\n };\r\n forbidden_accountcodes: string[];\r\n maintenance?: boolean;\r\n maintenance_last_check?: number;\r\n}\r\n\r\nconst defaults: CoreStateModel = {\r\n accountcode: null,\r\n menu: [],\r\n account_codes: [],\r\n accounts: {},\r\n accounts_retrieved: {},\r\n forbidden_accountcodes: []\r\n};\r\n\r\n@State({\r\n name: 'core',\r\n defaults\r\n})\r\n@Injectable()\r\nexport class CoreState implements NgxsAfterBootstrap {\r\n constructor(\r\n protected store: Store,\r\n protected router: Router,\r\n protected zone: NgZone,\r\n protected api: StudioApiService,\r\n // protected appSkin: AppSkinService\r\n ) { }\r\n\r\n @Selector()\r\n static getAccounts(state: CoreStateModel): { [accountcode: string]: IBasicAccount } {\r\n return state.accounts;\r\n }\r\n\r\n @Selector()\r\n static getAccountsArray(state: CoreStateModel): IBasicAccount[] {\r\n return state.account_codes.map(a => state.accounts[a]);\r\n }\r\n @Selector()\r\n static getAccountCodes(state: CoreStateModel): string[] {\r\n return state.account_codes;\r\n }\r\n\r\n @Selector()\r\n static getCurrentAccount(state: CoreStateModel): IBasicAccount {\r\n return state.accounts[state.accountcode];\r\n }\r\n @Selector()\r\n static getCurrentAccountCode(state: CoreStateModel): string {\r\n return state.accountcode;\r\n }\r\n\r\n @Selector()\r\n static getMenu(state: CoreStateModel): IMenuItem[] {\r\n return state.menu;\r\n }\r\n\r\n @Selector()\r\n static getForbiddenAccountCodes(state: CoreStateModel): string[] {\r\n return state.forbidden_accountcodes;\r\n }\r\n\r\n @Selector()\r\n static isInMaintenance(state: CoreStateModel): boolean {\r\n return state.maintenance;\r\n }\r\n\r\n @Selector()\r\n static getMaintenanceLastCheck(state: CoreStateModel): number {\r\n return state.maintenance_last_check;\r\n }\r\n\r\n @Action(SetAccount)\r\n setAccount(ctx: StateContext, { payload }: SetAccount) {\r\n if (ctx.getState().account_codes.indexOf(payload) > -1) {\r\n // this.appSkin.switchTheme(ctx.getState().accounts[payload].domain_name);\r\n return ctx.patchState({ accountcode: payload });\r\n }\r\n }\r\n\r\n @Action(SetMenu)\r\n setMenu(ctx: StateContext, { payload }: SetMenu) {\r\n return ctx.patchState({ menu: payload });\r\n }\r\n\r\n @Action(GetAccount)\r\n getAccount(ctx: StateContext, { payload }: GetAccount) {\r\n const st = ctx.getState();\r\n\r\n if (BANNED_ACCOUNT_CODES.indexOf(payload.accountcode) > -1) {\r\n throw new SilentError('BANNED ACCOUNT CODE');\r\n }\r\n // don't try to get account again if we tried less than 20 seconds ago\r\n if (st.forbidden_accountcodes.indexOf(payload.accountcode) > -1 &&\r\n Date.now() - st.accounts_retrieved[payload.accountcode] > FORBID_DELAY) {\r\n // console.error(payload, st);\r\n return Promise.resolve(null).then(() => {\r\n throw new Error(`Trying to get account ${payload.accountcode} multiple times`);\r\n });\r\n }\r\n\r\n // console.log(\"Investigating / account /\");\r\n const static_hack = { account: {\r\n accountcode: \"u01\",\r\n decommissioned: false,\r\n domain_name: \"Indigo\",\r\n flags: {},\r\n is_domain: false,\r\n name: \"Goco\",\r\n tags: [\"\"]}\r\n };\r\n ctx.dispatch(new AddAccount(static_hack.account));\r\n \r\n\r\n }\r\n\r\n @Action(AddAccount)\r\n addAccount(ctx: StateContext, { payload }: AddAccount) {\r\n // console.warn('ADD ACCOUNT action', payload);\r\n\r\n const newAccounts: IBasicAccount[] = Array.isArray(payload) ? payload : [payload];\r\n const newAccouncodes = [...ctx.getState().account_codes];\r\n const newAccountsMap = { ...ctx.getState().accounts };\r\n const newAccountsRetrieved = { ...ctx.getState().accounts_retrieved };\r\n const now = Date.now();\r\n // newAccounts.forEach(a => {\r\n // if (newAccouncodes.indexOf(a.accountcode) === -1) {\r\n // newAccouncodes.push(a.accountcode);\r\n // }\r\n // newAccountsMap[a.accountcode] = cleanAccount(a);\r\n // newAccountsRetrieved[a.accountcode] = now;\r\n // });\r\n // // console.log('ADD ACCOUNT', payload, newAccounts, newAccouncodes, newAccountsMap, newAccountsRetrieved);\r\n // newAccouncodes.sort((a, b) => {\r\n // return newAccountsMap[a].name.localeCompare(newAccountsMap[b].name);\r\n // });\r\n\r\n\r\n const newState = {\r\n account_codes: newAccouncodes,\r\n accounts: newAccountsMap,\r\n accounts_retrieved: newAccountsRetrieved\r\n };\r\n\r\n ctx.dispatch(new TabsMessage({\r\n state: 'core',\r\n action: 'patch',\r\n data: newState\r\n }));\r\n return ctx.patchState(newState);\r\n }\r\n\r\n @Action(RemoveAccount)\r\n removeAccount(ctx: StateContext, { payload }: RemoveAccount) {\r\n const newAccounts: IBasicAccount[] = Array.isArray(payload) ? payload : [payload];\r\n const newAccouncodes = [...ctx.getState().account_codes];\r\n const newAccountsMap = { ...ctx.getState().accounts };\r\n const newAccountsRetrieved = { ...ctx.getState().accounts_retrieved };\r\n newAccounts.forEach(a => {\r\n const idx = newAccouncodes.indexOf(a.accountcode);\r\n if (idx > -1) {\r\n newAccouncodes.splice(idx, 0);\r\n }\r\n delete newAccountsMap[a.accountcode];\r\n delete newAccountsRetrieved[a.accountcode];\r\n });\r\n const newState = {\r\n account_codes: newAccouncodes,\r\n accounts: newAccountsMap,\r\n accounts_retrieved: newAccountsRetrieved\r\n };\r\n ctx.patchState(newState);\r\n ctx.dispatch(new TabsMessage({\r\n state: 'core',\r\n action: 'patch',\r\n data: newState\r\n }));\r\n if (newAccouncodes.indexOf(ctx.getState().accountcode) === -1) {\r\n this.zone.run(() => {\r\n const currentUrl = this.router.url;\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([currentUrl]);\r\n });\r\n });\r\n }\r\n }\r\n\r\n @Action([Logout, LoggedOut])\r\n logout(ctx: StateContext) {\r\n return ctx.setState(defaults);\r\n }\r\n\r\n @Action(AccountsUpdated)\r\n accountsUpdated(ctx: StateContext) {\r\n const newState = JSON.parse(localStorage.getItem('core')) as CoreStateModel;\r\n if (newState) {\r\n ctx.patchState({\r\n accounts: newState.accounts,\r\n account_codes: newState.account_codes,\r\n accounts_retrieved: newState.accounts_retrieved\r\n });\r\n if (newState.account_codes.indexOf(ctx.getState().accountcode) === -1) {\r\n this.zone.run(() => {\r\n const currentUrl = this.router.url;\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([currentUrl]);\r\n });\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n ngxsAfterBootstrap(ctx: StateContext) {\r\n const current = ctx.getState().accountcode;\r\n if (current) {\r\n ctx.dispatch(new SetAccount(current));\r\n }\r\n\r\n }\r\n\r\n @Action(StartMaintenance)\r\n startMaintenance(ctx: StateContext) {\r\n ctx.patchState({\r\n maintenance_last_check: Date.now(),\r\n maintenance: true\r\n });\r\n this.zone.run(() => {\r\n this.router.navigate(['/', 'maintenance']);\r\n });\r\n }\r\n\r\n @Action(StopMaintenance)\r\n stopMaintenance(ctx: StateContext) {\r\n ctx.patchState({\r\n maintenance_last_check: undefined,\r\n maintenance: undefined\r\n });\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nfunction cleanAccount(a: IBasicAccount): IBasicAccount {\r\n return {\r\n ...a,\r\n name: a.name || '',\r\n tags: a.tags.map(t => t.trim()).filter(t => t)\r\n };\r\n}\r\n","export interface IPeriod {\r\n start: Date;\r\n end: Date;\r\n}\r\nexport const PRESET_PERIODS = [\r\n 'today', 'yesterday',\r\n 'this_week', 'last_week',\r\n 'this_month', 'last_month',\r\n 'last_7_days', 'last_30_days'\r\n];\r\n\r\nexport class SelectPeriod {\r\n static readonly type = '[Period] Select';\r\n constructor(public payload: string) { }\r\n}\r\n\r\nexport class SetCustomPeriod {\r\n static readonly type = '[Period] Custom';\r\n constructor(public payload: {start: Date, end: Date}) { }\r\n}\r\n\r\nexport class SetPeriodTimezone {\r\n static readonly type = '[Period] Timezone';\r\n constructor(public payload?: string){}\r\n}\r\n\r\n\r\n\r\nexport class BuildPeriods {\r\n static readonly type = '[Period] Build';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Action, NgxsAfterBootstrap, Selector, State, StateContext } from '@ngxs/store';\r\nimport { endOfMonth, endOfWeek, startOfMonth, startOfWeek, subDays, subMonths, subWeeks, toDate } from 'date-fns';\r\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\r\nimport { BuildPeriods, PRESET_PERIODS, SelectPeriod, SetCustomPeriod, SetPeriodTimezone } from './period.actions';\r\n\r\n\r\nexport interface PeriodStateModel {\r\n periods: {\r\n [label: string]: { start: Date, end: Date }\r\n };\r\n selected?: string;\r\n timezone?: string;\r\n _last_update: number;\r\n}\r\n\r\nconst defaults = {\r\n periods: {},\r\n _last_update: 0,\r\n selected: 'last_7_days'\r\n};\r\n\r\n@State({\r\n name: 'period',\r\n defaults\r\n})\r\n@Injectable()\r\nexport class PeriodState implements NgxsAfterBootstrap {\r\n\r\n\r\n @Selector()\r\n static getTimezone(state: PeriodStateModel) {\r\n return state.timezone;\r\n }\r\n\r\n @Selector()\r\n static getSelected(state: PeriodStateModel) {\r\n return state.selected;\r\n }\r\n\r\n @Selector()\r\n static getSelectedPeriod(state: PeriodStateModel) {\r\n return state.periods[state.selected];\r\n }\r\n\r\n @Selector()\r\n static getCustomRange(state: PeriodStateModel) {\r\n const custom = state.periods.custom;\r\n if (custom){\r\n return [custom.start, custom.end];\r\n }\r\n return '';\r\n }\r\n @Selector()\r\n static getSelectedPeriodForApi(state: PeriodStateModel) {\r\n if (state.selected !== 'custom' || !state.timezone) {\r\n return state.periods[state.selected];\r\n }\r\n const retval = state.periods[state.selected];\r\n return {\r\n start: zonedTimeToUtc(retval.start, state.timezone),\r\n end: zonedTimeToUtc(retval.end, state.timezone),\r\n };\r\n }\r\n\r\n @Selector()\r\n static getFullSelectedPeriod(state: PeriodStateModel) {\r\n return { selected: state.selected, period: state.periods[state.selected] };\r\n }\r\n\r\n @Action(SelectPeriod)\r\n selectPeriod(ctx: StateContext, { payload }: SelectPeriod) {\r\n ctx.patchState({\r\n selected: payload\r\n });\r\n }\r\n\r\n @Action(SetCustomPeriod)\r\n setCustom(ctx: StateContext, { payload }: SetCustomPeriod) {\r\n ctx.patchState({\r\n selected: 'custom',\r\n periods: {\r\n ...ctx.getState().periods,\r\n custom: payload\r\n }\r\n });\r\n }\r\n @Action(SetPeriodTimezone)\r\n setPeriodTimezone(ctx: StateContext, { payload }: SetPeriodTimezone) {\r\n ctx.patchState({\r\n timezone: payload,\r\n });\r\n if (ctx.getState().selected === 'custom') {\r\n ctx.patchState({\r\n periods: {\r\n ...ctx.getState().periods,\r\n custom: { ...ctx.getState().periods.custom }\r\n }\r\n });\r\n }\r\n this.buildPeriods(ctx);\r\n }\r\n ngxsAfterBootstrap(ctx?: StateContext): void {\r\n this.buildPeriods(ctx);\r\n }\r\n\r\n\r\n @Action(BuildPeriods)\r\n buildPeriods(ctx: StateContext) {\r\n\r\n let today = new Date();\r\n\r\n const tz = ctx.getState().timezone;\r\n\r\n if (tz) {\r\n today = utcToZonedTime(today, tz);\r\n }\r\n\r\n\r\n const newPeriods = PRESET_PERIODS.reduce((r, c) => {\r\n switch (c) {\r\n case 'today':\r\n r[c] = { start: toDate(today), end: today };\r\n break;\r\n case 'yesterday':\r\n const yesterday = subDays(today, 1);\r\n r[c] = { start: yesterday, end: toDate(yesterday) };\r\n break;\r\n case 'this_week':\r\n r[c] = { start: startOfWeek(today), end: endOfWeek(today) };\r\n break;\r\n case 'last_week':\r\n r[c] = { start: subWeeks(startOfWeek(today), 1), end: subWeeks(endOfWeek(today), 1) };\r\n break;\r\n case 'this_month':\r\n r[c] = { start: startOfMonth(today), end: endOfMonth(today) };\r\n break;\r\n case 'last_month':\r\n r[c] = { start: subMonths(startOfMonth(today), 1), end: subMonths(endOfMonth(today), 1) };\r\n break;\r\n case 'last_7_days':\r\n r[c] = { start: subDays(today, 7), end: today };\r\n break;\r\n case 'last_30_days':\r\n r[c] = { start: subDays(today, 30), end: today };\r\n break;\r\n }\r\n if (r[c]) {\r\n r[c].start.setHours(0, 0, 0);\r\n r[c].end.setHours(23, 59, 59);\r\n }\r\n return r;\r\n }, {});\r\n\r\n return ctx.patchState({\r\n periods: {\r\n // ...ctx.getState().periods,\r\n custom: ctx.getState().periods.custom || undefined,\r\n ...newPeriods\r\n },\r\n _last_update: Date.now()\r\n });\r\n }\r\n\r\n\r\n}\r\n","\r\nexport interface TabsMessagePayload {\r\n state: string;\r\n action: 'patch' | 'set';\r\n data: any;\r\n dispatch?: any;\r\n}\r\nexport class TabsMessage {\r\n static readonly type = '[TabsBus] Msg';\r\n constructor(public payload: TabsMessagePayload) { }\r\n}\r\n\r\nexport class TabsMessageReceived {\r\n static readonly type = '[TabsBus] Received';\r\n constructor(public payload: TabsMessagePayload) { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Action, Actions, State, StateContext, Store } from '@ngxs/store';\r\nimport * as sysend from 'sysend';\r\nimport { TabsMessage, TabsMessageReceived } from './tabs-bus.actions';\r\n\r\nconst CHANNEL_ID = 'studio-tab';\r\nexport class TabsBusStateModel { }\r\n\r\n\r\n@State({\r\n name: 'tabsBus',\r\n})\r\n@Injectable()\r\nexport class TabsBusState {\r\n\r\n constructor(\r\n protected actions$: Actions,\r\n protected store: Store,\r\n\r\n ) {\r\n sysend.on(CHANNEL_ID, (msg) => {\r\n // console.log('RECEIVED ', msg);\r\n if (msg) {\r\n this.store.dispatch(new TabsMessageReceived(msg));\r\n }\r\n\r\n });\r\n }\r\nT;\r\n\r\n @Action(TabsMessage)\r\n sendMessage({ getState, setState }: StateContext, { payload }: TabsMessage) {\r\n const sendPayload = {\r\n ...payload\r\n };\r\n if (sendPayload.dispatch) {\r\n sendPayload.dispatch = {\r\n ...sendPayload.dispatch,\r\n type: sendPayload.dispatch.__proto__.constructor.type,\r\n };\r\n }\r\n // console.log('BROADCAST ', sendPayload);\r\n sysend.broadcast(CHANNEL_ID, sendPayload);\r\n\r\n }\r\n\r\n @Action(TabsMessageReceived)\r\n messageReceived({ dispatch }: StateContext, { payload }: TabsMessageReceived) {\r\n if (payload.dispatch) {\r\n // console.log('DISPATCH', payload.dispatch);\r\n dispatch(payload.dispatch);\r\n }\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\nimport { version } from '../../package.json';\n\nexport const environment = {\n production: false,\n version\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"]}