{"version":3,"file":"main.ce9a43ec308cf0ce.js","mappings":"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AGdiB,KACAhJ,KACAiJ,MACDxS,QAAA,CAnCCmK,GACAsI,KACAC,KACAhT,KACAiT,KAGAC,MAAaxU,YAAS,SA+Bb6T,CAAS,gCC9GlBrqB,IAAYyc,eACdwO,SAGFC,OAAyBC,gBAAgBd,IACtCe,MAAMC,GAAOnP,QAAQhB,MAAMmQ,IAE9BC,mBAAmBtrB,IAAY0c,oCCrB/B,IAAArT,EAAA,CACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,kBACA,qBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,cACA,iBACA,aACA,gBACA,cACA,iBACA,cACA,mBACA,sBACA,iBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,mBACA,sBACA,aACA,gBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,oBAIA,SAAAkiB,EAAArB,GACA,IAAAlkB,EAAAwlB,EAAAtB,GACA,OAAAnI,EAAA/b,EACA,CACA,SAAAwlB,EAAAtB,GACA,IAAAnI,EAAA0J,EAAApiB,EAAA6gB,GAAA,CACA,IAAAlI,EAAA,IAAAtd,MAAA,uBAAAwlB,EAAA,KACA,MAAAlI,EAAAzG,KAAA,mBACAyG,CACA,CACA,OAAA3Y,EAAA6gB,EACA,CACAqB,EAAAG,KAAA,WACA,OAAAxf,OAAAwf,KAAAriB,EACA,EACAkiB,EAAAI,QAAAH,EACAI,EAAAC,QAAAN,EACAA,EAAAvlB,GAAA","names":["isIE","window","navigator","userAgent","indexOf","msalConfig","auth","clientId","redirectUri","environment","authRedirectUri","postLogoutRedirectUri","authPostLogoutRedirectUri","cache","cacheLocation","BrowserCacheLocation","LocalStorage","storeAuthStateInCookie","system","loggerOptions","logLevel","LogLevel","Verbose","piiLoggingEnabled","protectedResources","datexApplicationApi","endpoint","datexApplicationApiUrl","scopes","azureResourceManagerApi","msGraphApi","azureDevOpsApi","integrationHubConfigurationApi","integrationHubConfigApiUrl","integrationHubConfigurationApiScopes","integrationHubApi","integrationHubApiUrl","integrationHubApiScopes","legacyConnectorConfigurationApi","legacyConnectorsConfigApiUrl","legacyConnectorsConfigApiScopes","integrationHubLoggingApiUrl","integrationHubLoggingApiScopes","footPrintAdaptorApi","footPrintAdaptorApiUrl","footPrintAdaptorApiScopes","shopifyAdaptorApi","shopifyAdaptorApiUrl","shopifyAdaptorApiScopes","wooCommerceAdaptorApi","wooCommerceAdaptorApiUrl","wooCommerceAdaptorApiScopes","bigCommerceAdaptorApi","bigCommerceAdaptorApiUrl","bigCommerceAdaptorApiScopes","datexAlertRecommndedSolutionApi","datexAlertRecommndedSolutionApiUrl","datexAlertRecommndedSolutionApiScopes","kustoQueryApi","kustoQueryApiUrl","kustoQueryApiScopes","datexAlertApi","datexAlertApiUrl","datexAlertApiScopes","copilotApi","copilotApiUrl","copilotApiScopes","icmApi","icmApiUrl","icmApiScopes","canViewStudio","_ref","_asyncToGenerator","authService","inject","AuthorizationService","router","Router","datexErrorService","DatexErrorService","firstValueFrom","hasStudioAccess","add","Error","createUrlTree","apply","this","arguments","ApplicationContextService","constructor","_applicationIdObservable","ReplaySubject","_applicationDefinitionIdObservable","_applicationObservable","_applicationSettingsObservable","currentOrganization$","BehaviorSubject","applicationIdObservable","pipe","distinctUntilChanged","applicationDefinitionIdObservable","applicationObservable","applicationSettingsObservable","applicationDefinitionId","_applicationDefinition","id","_applicationDefinitionId","value","next","applicationDefinition","cloneDeep","applicationId","_application","_applicationId","application","setApplication","notifyChanges","applicationSettings","_applicationSettings","modulesApplicationSettingsMap","_modulesApplicationSettingsMap","getSetting","settingName","moduleReferenceName","mapping","find","item","name","referenceName","setting","mappedName","factory","ɵfac","providedIn","ApplicationStatusEnum","Draft","Inactive","Active","WorkspaceHistory","WorkspaceActive","RoleTypeEnum","Role","DataAccessGroup","BuildDetails","buildStatus","result","camelCaseToHumanReadable","status","duration","finishTime","Date","getTime","startTime","moment","humanize","input","snakeCase","split","map","i","capitalize","join","EMarketPlaceAppType","WavelengthApp","FootPrintApi","TaskSchedulerApi","DATEX_APP_API_URL","InjectionToken","OrganizationsService","http","apiUrl","endpointUrl","getAll","get","getByTenant","tenantId","create","org","post","update","put","delete","i0","i1","EnvironmentsService","organizationId","getSchedulerForEnvironment","env","isNameUnique","MarketPlaceApplicationsService","getInstallableApplicationsForOrganization","getInstallableFootprintWorkflows","getPublic","getApplicationVersions","getFootprintWorkflowsVersions","createApplicationVersion","version","deleteApplicationVersion","versionId","getFootprintWorkflowsDataExists","getFootprintWorkflowsData","getBuildInformation","res","Object","assign","EnvironmentComponentDefinitionsService","environmentId","getAllComponents","environmentComponentDefinitionId","addVersion","marketPlaceApplicationVersionId","deploy","componentId","isUrlUnique","url","componentDefinitionId","EnvironmentComponentsService","getActives","isValid","getSettings","updateSettings","instance","EnvironmentComponentRoleService","getEnvironmentComponentRole","roleId","getEnvironmentComponentRoles","addRoles","roles","x","removeRole","getOperationRoles","operationId","getEnvironmentComponentRoleAssignments","getAssignedOperationsForRole","addOperationsAssignmentsForRole","operations","removeOperationRoleAssignment","UsersService","users","user","GroupsService","groups","group","IntegratorsService","integrators","integrator","ApplicationDefinitionService","applicationTypeIds","endsWith","app","clone","deleteFootprint","applicationTypeId","skipAppDefId","isNil","isIdentifierUnique","identifier","isOwner","deleteOldArchives","provision","ApplicationDefinitionOrganizationService","applicationDefinitionOrganization","AddonsService","ApplicationService","applicationContextService","preview","getEditableAndPublishedBranches","getApplicationList","getAllForOrganizations","getAllModules","getPublished","getShell","getLocalization","getConfigId","type","publish","publishingDescription","convertToDraft","validate","isReferenced","referencedFrom","i2","OrganizationTasksService","getScheduledTasks","EnvironmentComponentTasksService","getScheduledTask","tasks","y","getTaskHistory","skip","take","filterText","task","runTask","deleteTask","activateTask","deactivateTask","cancelRun","taskName","runId","BaseOrganizationRoleService","getValue","controller","getAssignedUsers","getAssignedGroups","getAssignedIntegrators","getAssignedApplications","assignUsers","role","unassignUser","assignment","userId","assignGroups","unassignGroup","groupId","assignIntegrators","unassignIntegrator","integratorId","__decorate","__param","Inject","OrganizationRoleService","super","OrganizationDataAccessGroupService","ApplicationRoleService","getApplicationRole","getApplicationRoles","getOperations","getOperation","createOperation","operation","updateOperation","deleteOperation","getApplicationRoleAssignments","addOperationRoleAssignment","addOperationRoleAssignments","organizationRoleId","ApplicationReferenceService","getAllDirectReferences","getAllIndirectReferences","getReferenceList","getReference","createDirectReference","deleteDirectReference","ids","patch","updateReferenceSettings","settings","upgrade","ApplicationTypeNom","values","getName","web","componentModule","api","portal","applicationGroup","componentModuleGroup","RoleTypeNom","roleTypeId","dataAccessGroup","MarketPlaceAppTypeNom","wavelength","footprintApi","taskSchedulerApi","wavelengthGroup","footprintApiGroup","taskSchedulerApiGroup","ImageViewerModule","forRoot","config","ngModule","providers","provide","useValue","CommonModule","RequestsInterceptor","intercept","request","includes","wavelengthAccountConnectorUrl","ediURL","btoa","unescape","encodeURIComponent","urlWithParams","modifiedReq","handle","momentDateAdapterConfig","useUtc","ngxMomentDateAdapterConfig","SharedModule","MAT_MOMENT_DATE_ADAPTER_OPTIONS","NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS","HTTP_INTERCEPTORS","useClass","multi","imports","containerBackgroundColor","allowFullscreen","btnIcons","fullscreen","zoomOut","zoomIn","rotateCounterClockwise","rotateClockwise","btnShow","CodemirrorModule","AngularSignaturePadModule","FormsModule","HttpClientModule","LoadingBarHttpClientModule","DragDropModule","MatCardModule","MatDialogModule","MatButtonModule","MatButtonToggleModule","MatInputModule","MatMenuModule","MatSelectModule","MatSlideToggleModule","MatTabsModule","MatFormFieldModule","MatAutocompleteModule","MatSnackBarModule","MatTooltipModule","MatChipsModule","MatIconModule","MatCheckboxModule","MatRadioModule","MatProgressBarModule","MatDatepickerModule","MatListModule","MatMomentDateModule","MatProgressSpinnerModule","MatExpansionModule","MatTableModule","CdkTableModule","NgxMatDatetimePickerModule","NgxMatTimepickerModule","NgxMatMomentModule","ReactiveFormsModule","DatexErrorInfo","error","rawError","HttpErrorResponse","initFromHttpError","initFromError","code","message","stack","detail","httpErrorResponse","innerError","has","errorPayload","innererror","JSON","stringify","console","warn","title","hasErrors","errors","push","clear","production","mesciusLicenseKey","ediLogicAppTriggerUrl","authtok","ediPublic","ediPrivate","datexDefaultAlertMessageTemplate","_c0","_c1","app_r6","_r8","$implicit","ctx_r7","onClick","description","ApplicationsComponent_ng_container_7_mat_card_1_Template","ctx_r2","applications","ApplicationsComponent","environmentComponentsService","loading","ngOnInit","subscribe","data","getIsDevelopment","location","href","websiteUrl","selectors","decls","vars","consts","template","rf","ctx","ApplicationsComponent_a_1_Template","ApplicationsComponent_a_2_Template","ApplicationsComponent_ng_container_7_Template","ApplicationsComponent_ng_template_8_Template","_r3","JsonformatterDirective","elRef","ngOnChanges","json","formatter","JSONFormatter","nativeElement","hasChildNodes","removeChild","lastChild","appendChild","render","openAtDepth","expand","Infinity","inputs","features","ctx_r0","errorSvc","err_r7","ErrorComponent_ng_container_13_div_1_Template","err_r9","ErrorComponent_div_20_div_1_div_5_Template","ErrorComponent_div_20_div_1_Template","ctx_r5","ErrorComponent","toggleErrorDetails","navigate","clearErrors","ErrorComponent_div_11_Template","ErrorComponent_div_12_Template","ErrorComponent_ng_container_13_Template","ErrorComponent_i_18_Template","ErrorComponent_i_19_Template","ErrorComponent_div_20_Template","length","routes","path","redirectTo","pathMatch","component","canActivate","MsalGuard","loadChildren","Promise","all","__webpack_require__","e","then","bind","m","ManagementModule","StudioModule","MsalRedirectComponent","AppRoutingModule","RouterModule","useHash","initialNavigation","_r6","onLoginClicked","AppComponent_ng_template_1_div_0_Template","AppComponent_ng_template_1_div_1_Template","authenticating","AppComponent","msalGuardConfig","msalBroadcastService","titleService","isLoggedIn","_destroying$","Subject","setAppTitle","events","filter","event","NavigationEnd","takeUntil","inProgress$","InteractionStatus","None","setIsLoggedIn","getAllAccounts","getActiveAccount","setActiveAccount","log","isEmail","email","test","setTitle","loginRedirect","ngOnDestroy","undefined","complete","MSAL_GUARD_CONFIG","i3","i4","AppComponent_ng_container_0_Template","AppComponent_ng_template_1_Template","_r1","msg_r4","ErrorDialogComponent_ng_container_8_div_1_Template","ctx_r1","messageList","_r10","ctx_r9","toggleMessageListDetails","ErrorDialogComponent_div_9_div_1_i_3_Template","ErrorDialogComponent_div_9_div_1_i_4_Template","messageListDetailsSectionTitle","ctx_r14","messageListDetailsJSON","i_r13","ErrorDialogComponent_div_9_div_2_div_1_div_3_Template","detail_r12","ErrorDialogComponent_div_9_div_2_div_1_Template","ctx_r6","messageListDetails","ErrorDialogComponent_div_9_div_1_Template","ErrorDialogComponent_div_9_div_2_Template","hasMessageDetails","ErrorDialogComponent","dialogRef","forEach","d","addMessageListDetails","addMessage","isEmpty","parse","onCloseClicked","close","MAT_DIALOG_DATA","ErrorDialogComponent_div_7_Template","ErrorDialogComponent_ng_container_8_Template","ErrorDialogComponent_div_9_Template","DatexErrorHandler","ErrorHandler","injector","errorDialogId","processingChangeDetectionError","handleError","promise","rejection","isMSALError","isAbortError","errorInfo","ngZone","NgZone","dialog","MatDialog","isChangeDetectionError","run","closeAll","navigateByUrl","setTimeout","errorDialogRef","openDialogs","t","componentInstance","modalConfig","panelClass","backdropClass","open","TypeError","DOMException","MSALInstanceFactory","PublicClientApplication","MSALGuardConfigFactory","interactionType","InteractionType","Redirect","MSALInterceptorConfigFactory","protectedResourceMap","Map","set","Popup","authRequest","msalService","httpReq","req","authority","account","AppModule","bootstrap","MsalInterceptor","MSAL_INSTANCE","useFactory","MSAL_INTERCEPTOR_CONFIG","MsalService","MsalBroadcastService","BrowserModule","BrowserAnimationsModule","MsalModule","ToastrModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","err","Core","webpackContext","webpackContextResolve","o","keys","resolve","module","exports"],"sourceRoot":"webpack:///","sources":["./projects/datexapplication/src/app/auth-config.ts","./projects/datexapplication/src/app/common/guards/studio-access.guard.ts","./projects/datexapplication/src/app/common/services/application-context.service.ts","./projects/datexapplication/src/app/common/services/application.do.ts","./projects/datexapplication/src/app/common/services/application.service.ts","./projects/datexapplication/src/app/common/image-viewer/image-viewer.module.ts","./projects/datexapplication/src/app/interceptors/requests.interceptor.ts","./projects/datexapplication/src/app/common/shared.module.ts","./projects/datexapplication/src/app/error/datex-error-info.ts","./projects/datexapplication/src/app/error/datex-error-service.ts","./projects/datexapplication/src/environments/environment.prod.ts","./projects/datexapplication/src/app/applications/applications.component.html","./projects/datexapplication/src/app/applications/applications.component.ts","./projects/datexapplication/src/app/common/directives/jsonformatter.directive.ts","./projects/datexapplication/src/app/error/error.component.html","./projects/datexapplication/src/app/error/error.component.ts","./projects/datexapplication/src/app/app-routing.module.ts","./projects/datexapplication/src/app/app.component.html","./projects/datexapplication/src/app/app.component.ts","./projects/datexapplication/src/app/error/error-dialog.component.html","./projects/datexapplication/src/app/error/error-dialog.component.ts","./projects/datexapplication/src/app/error/datex-error-handler.ts","./projects/datexapplication/src/app/app.module.ts","./projects/datexapplication/src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["/**\n * This file contains authentication parameters. Contents of this file\n * is roughly the same across other MSAL.js libraries. These parameters\n * are used to initialize Angular and MSAL Angular configurations in\n * in app.module.ts file.\n */\n\nimport { BrowserCacheLocation, Configuration, LogLevel } from '@azure/msal-browser';\nimport { environment } from './../environments/environment';\n\nconst isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\n\n/**\n * Configuration object to be passed to MSAL instance on creation.\n * For a full list of MSAL.js configuration parameters, visit:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md\n */\nexport const msalConfig: Configuration = {\n auth: {\n // the App ID representing the management studio app in Azure App Registration\n clientId: 'd42c106a-7dd1-4369-8057-30ace92e43d3',\n // the URL Azure AD will use to send the token back\n redirectUri: environment.authRedirectUri,\n postLogoutRedirectUri: environment.authPostLogoutRedirectUri\n },\n cache: {\n // Configures cache location. 'sessionStorage' is more secure, but 'localStorage' gives you SSO between tabs.\n cacheLocation: BrowserCacheLocation.LocalStorage,\n // Set this to 'true' if you are having issues on IE11 or Edge\n storeAuthStateInCookie: isIE\n },\n system: {\n loggerOptions: {\n logLevel: LogLevel.Verbose,\n piiLoggingEnabled: false\n }\n }\n};\n\n/**\n * Add here the endpoints and scopes when obtaining an access token for protected web APIs. For more information, see:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\n */\nexport const protectedResources = {\n datexApplicationApi: {\n endpoint: environment.datexApplicationApiUrl,\n // .default is like saying all scope defined by the app registration\n // static scopes\n scopes: ['api://bcf89c41-81cc-49ef-b771-ed5ec9e1e5e4/.default'],\n },\n azureResourceManagerApi: {\n endpoint: 'https://management.azure.com/',\n scopes: ['https://management.azure.com/.default']\n },\n msGraphApi: {\n endpoint: 'https://graph.microsoft.com/',\n scopes: ['https://graph.microsoft.com/Group.Read.All', 'https://graph.microsoft.com/User.Read', 'https://graph.microsoft.com/User.ReadBasic.All', 'https://graph.microsoft.com/Application.Read.All']\n },\n azureDevOpsApi: {\n endpoint: 'https://dev.azure.com/',\n scopes: ['https://app.vssps.visualstudio.com/vso.work']\n },\n integrationHubConfigurationApi: {\n endpoint: environment.integrationHubConfigApiUrl,\n scopes: environment.integrationHubConfigurationApiScopes\n },\n integrationHubApi: {\n endpoint: environment.integrationHubApiUrl,\n scopes: environment.integrationHubApiScopes\n },\n legacyConnectorConfigurationApi: {\n endpoint: environment.legacyConnectorsConfigApiUrl,\n scopes: environment.legacyConnectorsConfigApiScopes\n },\n integrationHubLoggingApiUrl: {\n endpoint: environment.integrationHubLoggingApiUrl,\n scopes: environment.integrationHubLoggingApiScopes\n },\n footPrintAdaptorApi: {\n endpoint: environment.footPrintAdaptorApiUrl,\n scopes: environment.footPrintAdaptorApiScopes\n },\n shopifyAdaptorApi: {\n endpoint: environment.shopifyAdaptorApiUrl,\n scopes: environment.shopifyAdaptorApiScopes\n },\n wooCommerceAdaptorApi: {\n endpoint: environment.wooCommerceAdaptorApiUrl,\n scopes: environment.wooCommerceAdaptorApiScopes\n },\n bigCommerceAdaptorApi: {\n endpoint: environment.bigCommerceAdaptorApiUrl,\n scopes: environment.bigCommerceAdaptorApiScopes\n },\n datexAlertRecommndedSolutionApi: {\n endpoint: environment.datexAlertRecommndedSolutionApiUrl,\n scopes: environment.datexAlertRecommndedSolutionApiScopes\n },\n kustoQueryApi: {\n endpoint: environment.kustoQueryApiUrl,\n scopes: environment.kustoQueryApiScopes\n },\n datexAlertApi: {\n endpoint: environment.datexAlertApiUrl,\n scopes: environment.datexAlertApiScopes\n },\n copilotApi: {\n endpoint: environment.copilotApiUrl,\n scopes: environment.copilotApiScopes\n },\n icmApi: {\n endpoint: environment.icmApiUrl,\n scopes: environment.icmApiScopes\n }\n};\n","import { CanActivateFn, Router } from \"@angular/router\";\nimport { inject } from \"@angular/core\";\nimport { AuthorizationService } from \"../services/application.service\";\nimport { DatexErrorService } from \"../../error/datex-error-service\";\nimport { firstValueFrom } from \"rxjs\";\n\nexport const canViewStudio: CanActivateFn =\n async () => {\n const authService = inject(AuthorizationService);\n const router = inject(Router);\n const datexErrorService = inject(DatexErrorService);\n\n const hasStudioAccess = await firstValueFrom(authService.hasStudioAccess());\n if (!hasStudioAccess) {\n const errorMesssage = `You do not have permission.`;\n datexErrorService.add(new Error(errorMesssage));\n return router.createUrlTree([\"/\", \"error\"]);\n }\n }\n","import { Injectable } from '@angular/core';\nimport { Application, ApplicationDefinition, Organization } from './application.do';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, ReplaySubject, distinctUntilChanged } from 'rxjs';\nimport { ApplicationSettingVo, ModuleApplicationSettingMap } from './application-setting.do';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationContextService {\n private _applicationDefinitionId: number;\n private _applicationDefinition: ApplicationDefinition;\n private _applicationId: number;\n private _application: Application;\n private _applicationSettings: ApplicationSettingVo[];\n private _modulesApplicationSettingsMap: ModuleApplicationSettingMap[];\n private _applicationIdObservable = new ReplaySubject(1);\n private _applicationDefinitionIdObservable = new ReplaySubject(1);\n private _applicationObservable = new ReplaySubject(1);\n private _applicationSettingsObservable = new ReplaySubject(1);\n\n public currentOrganization$ = new BehaviorSubject(null);\n public applicationIdObservable = this._applicationIdObservable.pipe(distinctUntilChanged());\n public applicationDefinitionIdObservable = this._applicationDefinitionIdObservable.pipe(distinctUntilChanged());\n public applicationObservable = this._applicationObservable.pipe(distinctUntilChanged());\n public applicationSettingsObservable = this._applicationSettingsObservable.pipe(distinctUntilChanged());\n\n get applicationDefinitionId() {\n return this._applicationDefinition ? this._applicationDefinition.id : this._applicationDefinitionId;\n }\n\n set applicationDefinitionId(value: number) {\n this._applicationDefinitionId = value;\n this._applicationDefinitionIdObservable.next(value);\n }\n\n get applicationDefinition(): ApplicationDefinition {\n return cloneDeep(this._applicationDefinition);\n }\n set applicationDefinition(value: ApplicationDefinition) {\n this._applicationDefinition = value;\n this._applicationDefinitionIdObservable.next(value?.id);\n }\n\n get applicationId() {\n return this._application ? this._application.id : this._applicationId;\n }\n\n set applicationId(value: number) {\n this._applicationId = value;\n this._applicationIdObservable.next(value);\n }\n\n get application() {\n return cloneDeep(this._application);\n }\n set application(value: Application) {\n this.setApplication(value, true);\n }\n\n setApplication(value: Application, notifyChanges: boolean) {\n this._application = value;\n this.applicationId = value?.id;\n if (notifyChanges) {\n this._applicationObservable.next(value);\n }\n }\n\n get applicationSettings() {\n return cloneDeep(this._applicationSettings);\n }\n set applicationSettings(value: ApplicationSettingVo[]) {\n this._applicationSettings = value;\n this._applicationSettingsObservable.next(value);\n }\n\n\n get modulesApplicationSettingsMap() {\n return cloneDeep(this._modulesApplicationSettingsMap);\n }\n set modulesApplicationSettingsMap(value: ModuleApplicationSettingMap[]) {\n this._modulesApplicationSettingsMap = value;\n }\n\n getSetting(settingName: string, moduleReferenceName: string): ApplicationSettingVo {\n if (moduleReferenceName) {\n const mapping = this._modulesApplicationSettingsMap.find(item =>\n item.name === settingName &&\n item.referenceName === moduleReferenceName);\n const setting = this._applicationSettings.find(item => item.name === mapping.mappedName);\n return cloneDeep(setting);\n } else {\n const setting = this._applicationSettings.find(item => item.name === settingName);\n return cloneDeep(setting);\n }\n }\n}\n","import { ITenant } from '../../management/services/azure-resource-manager.service';\nimport { IScheduledTask } from '../../management/models/ecommerce/scheduled-task';\nimport { ConfigurationModificationTypeEnum, EDesignerConfigType, IDesignerValidationError } from '../designer-config-service/designer-config.service';\nimport { ApplicationReferenceSetting } from './application-setting.do';\nimport * as moment from 'moment';\nimport { capitalize, snakeCase } from 'lodash-es';\n\nexport class ApplicationDefinition {\n id: number;\n name: string;\n description?: string;\n applicationTypeId: number;\n applicationType?: ApplicationType;\n organizationId: number;\n organization?: Organization;\n uniqueIdentifier: string;\n azAppRegClientApplicationId?: string;\n azAppRegBackendApplicationId?: string;\n azAppRegBackendApplicationSecret?: string;\n azAppRegBackendTestApplicationId?: string;\n azAppRegBackendTestApplicationSecret?: string;\n applications?: Application[];\n}\n\nexport class CloneApplicationDefinitionRequest {\n name: string;\n description?: string;\n organizationId: number;\n uniqueIdentifier: string;\n}\n\nexport class ApplicationDefinitionOrganization {\n organizationId?: number;\n applicationDefinitionId: number;\n applicationDefinition?: ApplicationDefinition;\n}\n\nexport class Addon {\n applicationDefinitionId: number;\n organizationId: number;\n name: string;\n tenantId: string;\n createdDate: string;\n included: boolean;\n tenant?: ITenant;\n}\n\nexport class ApplicationStatus {\n id: number;\n name: string;\n}\n\nexport enum ApplicationStatusEnum {\n Draft = 1,\n Inactive = 2,\n Active = 3,\n WorkspaceHistory = 4,\n WorkspaceActive = 5\n}\n\nexport class Application {\n id: number;\n referenceName: string;\n applicationDefinitionId: number;\n applicationStatusId: number;\n applicationDefinition?: ApplicationDefinition;\n applicationStatus?: ApplicationStatus;\n description: string;\n createdDate: string;\n modifiedDate: string;\n commitTitle?: string;\n commitDescription?: string;\n commitDate?: string;\n userId?: number;\n author?: User;\n}\n\nexport class ApplicationListDto {\n id: number;\n versionName?: string;\n releaseNotes?: string;\n releaseDate?: string;\n}\n\nexport class ApplicationType {\n id: number;\n name: string;\n}\n\nexport class LockedAsset {\n applicationId: number;\n lockedBy: User;\n}\n\nexport class Locks {\n configs: LockedConfiguration[];\n replacements: LockedAsset;\n settingsAndReferences: LockedAsset;\n operationsAndRoles: LockedAsset;\n}\n\nexport class LockedConfiguration {\n id: number;\n applicationDefinitionId: number;\n applicationId: number;\n referenceName: string;\n lockedBy: User;\n modifiedDate: string;\n}\n\nexport class UpstreamChanges {\n configs: ConfigurationChanges[];\n hasReplacements: boolean;\n hasSettings: boolean;\n hasOperations: boolean;\n hasReferences: boolean;\n hasRoles?: boolean;\n applicationId: number;\n baseApplicationId: number;\n applicationDefinitionId: number;\n}\n\nexport class ReplacementsChanges {\n hasChanges: boolean;\n baseApplicationId?: number;\n}\n\nexport class SettingsAndReferencesChanges {\n hasChanges: boolean;\n baseApplicationId?: number;\n}\n\nexport class OperationsAndRolesChanges {\n hasChanges: boolean;\n baseApplicationId?: number;\n}\n\nexport class CommitChanges {\n configs: ConfigurationChanges[];\n replacements: ReplacementsChanges;\n settingsAndReferences: SettingsAndReferencesChanges;\n operationsAndRoles: OperationsAndRolesChanges;\n}\n\nexport class CommitDetails {\n transferredUncommittedChanges: boolean;\n newBranchId?: number;\n}\n\nexport class Commit {\n title: string;\n description: string;\n configs: string[];\n includeReplacements: boolean;\n includeSettingsAndReferences: boolean;\n includeOperationsAndRoles: boolean;\n}\n\nexport class Pull {\n configs: string[];\n pullReplacements: boolean;\n pullSettingsAndReferences: boolean;\n pullOperationsAndRoles: boolean;\n}\n\nexport class ConfigurationChanges {\n id: number;\n baseConfigId: number;\n referenceName: string;\n configurationTypeId: EDesignerConfigType;\n modificationTypeId: ConfigurationModificationTypeEnum;\n applicationId: number;\n baseApplicationId: number;\n}\n\nexport class ApplicationHistoryItem {\n commitTitle: string;\n commitMessage: string;\n commitDate: string;\n author: User;\n applicationId: number;\n applicationDefinitionId: number;\n}\n\nexport class ConfigurationHistoryItem extends ApplicationHistoryItem {\n configId: number;\n modificationTypeId: ConfigurationModificationTypeEnum;\n configType: EDesignerConfigType;\n}\n\nexport class ReplacementsHistoryItem extends ApplicationHistoryItem { }\nexport class SettingsAndReferencesHistoryItem extends ApplicationHistoryItem { }\nexport class OperationsAndRolesHistoryItem extends ApplicationHistoryItem { }\n\nexport class RoleType {\n id: number;\n name: string;\n}\n\nexport enum RoleTypeEnum {\n Role = 1,\n DataAccessGroup = 2\n}\n\nexport class OrganizationRole {\n id: number;\n organizationId: number;\n referenceName: string;\n description: string;\n organization: Organization;\n roleTypeId: RoleTypeEnum;\n}\n\nexport class OrganizationRoleUser {\n roleId: number;\n userId: number;\n displayName: string;\n userPrincipalName: string;\n}\n\nexport class OrganizationRoleGroup {\n roleId: number;\n groupId: number;\n name: string;\n}\n\nexport class OrganizationRoleIntegrator {\n roleId: number;\n integratorId: number;\n name: string;\n}\n\nexport class OrganizationRoleApplication {\n roleId: number;\n applicationId: number;\n application: Application;\n}\n\nexport class ApplicationRole {\n organizationRoleId: number;\n applicationId: number;\n organizationRole: OrganizationRole;\n}\n\nexport class ApplicationOperation {\n id: number;\n name: string;\n applicationId: number;\n description: string;\n isAuthorizable: boolean;\n referenceName?: string;\n}\n\nexport class ApplicationOperationRoleAssignment {\n organizationRoleId: number;\n applicationId: number;\n applicationOperationId: number;\n operationName: string;\n operationDescription: string;\n operationAppId: number;\n operationAppRefName: string;\n roleName: string;\n roleDescription: string;\n}\n\nexport class ApplicationReference {\n applicationId: number;\n moduleApplicationId: number;\n\n application?: Application;\n moduleApplication?: Application;\n applicationReferenceSettings?: ApplicationReferenceSetting[];\n}\n\nexport class ApplicationReferenceListDto {\n referenceName: string;\n description: string;\n versionName?: string;\n isDirect: boolean;\n moduleApplicationId: number;\n applicationStatusId: number;\n applicationDefinitionName: string;\n createdDate: Date;\n}\n\n\nexport class BuildDetails {\n id: number;\n buildNumber: string;\n status: string;\n result: string;\n url: string;\n startTime: string;\n finishTime: string;\n\n get buildStatus(): string {\n let result = this.camelCaseToHumanReadable(this.status);\n if (this.result) {\n result += ` (${this.camelCaseToHumanReadable(this.result)})`;\n }\n return result;\n }\n\n get duration(): string {\n const finishTime = this.finishTime\n ? new Date(this.finishTime)\n : new Date();\n const duration = finishTime.getTime() - new Date(this.startTime).getTime();\n const momentDuration = moment.duration(duration);\n return momentDuration.humanize();\n }\n\n private camelCaseToHumanReadable(input: string): string {\n return snakeCase(input).split('_').map(i => capitalize(i)).join(' ');\n }\n}\n\nexport class Organization {\n id: number;\n tenantId: string;\n description: string;\n name: string;\n externalEntraId: boolean;\n externalEntraIdDomainName: string;\n devOpsOrganization: string;\n}\n\nexport enum TaskConcurrencyStrategy {\n AllowConcurrentRun = 1,\n NoConcurrencyQueueWaiting = 2,\n NoConcurrencyRemoveWaiting = 3\n}\n\nexport interface IWavelengthScheduledTask extends IScheduledTask {\n id: string;\n applicationId: number;\n functionName: string;\n inputParameter: object;\n lastRunOn: Date;\n concurrencyStrategyId: TaskConcurrencyStrategy;\n}\n\nexport class User {\n id: number;\n organizationId: number;\n displayName: string;\n userPrincipalName: string;\n externalId: string;\n}\n\nexport class Group {\n id: number;\n organizationId: number;\n name: string;\n externalId: string;\n}\n\nexport class Integrator {\n id: number;\n organizationId: number;\n name: string;\n externalId: string;\n}\n\nexport enum EMarketPlaceAppType {\n WavelengthApp = 1,\n FootPrintApi = 2,\n TaskSchedulerApi = 3\n}\n\nexport class MarketPlaceAppType {\n id: number;\n name: string;\n}\n\nexport class MarketPlaceApplication {\n id: number;\n marketPlaceApplicationTypeId: number;\n uniqueIdentifier: string;\n applicationDefinitionId: number;\n name: string;\n description: string;\n organizationId: number;\n organizationName: string;\n createdDate: Date;\n modifiedDate: Date;\n}\n\nexport class MarketPlaceApplicationVersion {\n id: number;\n buildId?: number;\n marketPlaceApplicationId: number;\n releaseDate: string;\n releaseNotes: string;\n versionCode: string;\n versionName: string;\n containerImageUrl: string;\n applicationId?: number;\n createdDate: Date;\n modifiedDate: Date;\n}\n\nexport class Environment {\n id: number;\n organizationId: number;\n name: string;\n description: string;\n}\n\nexport class ActiveEnvironmentComponent {\n id: number;\n environment: string;\n environmentId: number;\n name: string;\n description: string;\n version: string;\n websiteUrl: string;\n applicationId: number;\n applicationDefinitionId: number;\n}\n\nexport class EnvironmentComponent {\n id: number;\n environmentId: number;\n organizationId: number;\n marketPlaceApplicationVersionId: number;\n marketPlaceApplicationId: number;\n marketPlaceAppTypeId: number;\n marketPlaceAppOrganizationId: number;\n name: string;\n description: string;\n applicationId: number;\n versionName: string;\n createdDate: Date;\n isActive: boolean;\n}\n\nexport class EnvironmentComponentValidation {\n isValid: boolean;\n areSettingsValid: boolean;\n areAzureResourcesSet: boolean;\n isImagePresent: boolean;\n areTasksValid: boolean;\n validationErrors: IDesignerValidationError[];\n}\n\nexport type InputParams = Map;\n\nexport class EnvironmentTaskScheduler {\n hasSchedulerRunning: boolean;\n schedulerUrl: string;\n environmentId: number;\n}\n\nexport class EnvironmentComponentTask {\n environmentComponentDefinitionId: number;\n environmentComponentId: number;\n environmentId: number;\n name: string;\n applicationName: string;\n moduleName: string;\n functionName: string;\n inParams: { [key: string]: any };\n cronExpression: string;\n isActive: boolean;\n isValid: boolean;\n isApplicationSource: boolean;\n concurrency: number;\n userId: string;\n createdAt: string;\n nextOccurrenceOn: Date;\n lastRunOn: Date;\n lastRunState: string;\n}\n\nexport class TaskList {\n tasks: EnvironmentComponentTask[];\n totalCount: number;\n}\n\nexport class UnifiedTaskList extends TaskList {\n environments: Environment[];\n taskSchedulers: EnvironmentTaskScheduler[];\n applicationDefinitions: ApplicationDefinition[];\n}\n\nexport class TaskHistoryPage {\n totalCount: number;\n historyRecords: TaskHistoryDetail[];\n}\n\nexport class TaskProgress {\n min: number;\n max: number;\n current: number;\n}\n\nexport class TaskHistoryDetail {\n runId: string;\n status: string;\n progress?: number;\n createdAt: Date;\n inParams: object;\n reason: string;\n errorDetails: string;\n outParams: object;\n duration: number;\n}\n\nexport class ModifyEnvironmentComponentDefinitionDto {\n id?: number;\n environmentId: number;\n marketPlaceApplicationVersionId?: number;\n marketPlaceApplicationId?: number;\n azSubscriptionId: string;\n azResourceGroup: string;\n azContainerApp: string;\n websiteUrl: string;\n azContainerAppJob?: string;\n azServiceBusNamespace?: string;\n azServiceBusQueue?: string;\n azServiceBusReplyNamespace?: string;\n azServiceBusReplyQueue?: string;\n}\n\nexport class EnvironmentComponentDefinition {\n id: number;\n environmentId: number;\n environmentName?: string;\n organizationId?: number;\n defaultEnvironmentComponentId?: number;\n marketPlaceApplicationVersionId?: number;\n marketPlaceApplicationId?: number;\n marketPlaceAppTypeId: number;\n applicationTypeId?: number;\n name?: string;\n description?: string;\n releaseDate?: Date;\n releaseNotes?: string;\n azSubscriptionId?: string;\n azResourceGroup?: string;\n azContainerApp?: string;\n websiteUrl?: string;\n versionName?: string;\n azAppRegBackendApplicationId?: string;\n tenantId?: string;\n azContainerAppJob?: string;\n azServiceBusNamespace?: string;\n azServiceBusQueue?: string;\n azServiceBusReplyNamespace?: string;\n azServiceBusReplyQueue?: string;\n}\n\nexport class EnvironmentComponentRole {\n organizationRoleId: number;\n environmentComponentId: number;\n organizationRole: OrganizationRole;\n}\n\nexport class EnvironmentComponentOperationRoleAssignment {\n organizationRoleId: number;\n environmentComponentId: number;\n applicationOperationId: number;\n operationName: string;\n operationDescription: string;\n operationAppId: number;\n operationAppRefName: string;\n roleName: string;\n roleDescription: string;\n}\n\nexport class EnvironmentComponentSettingValue {\n environmentComponentId: number;\n applicationSettingId: number;\n settingTypeId: number;\n apiConnectionId?: number;\n apiConnectionTypeId?: number;\n valueJson?: unknown;\n name: string;\n valueTypeId: number;\n}\n\nexport interface FootprintWorkflowsBlobsDataDto {\n bundle: string;\n info: string;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport {\n Application,\n ApplicationType,\n ApplicationDefinition,\n ApplicationReference,\n Addon,\n ApplicationDefinitionOrganization,\n Organization,\n User,\n Group,\n Integrator,\n OrganizationRole,\n OrganizationRoleUser,\n OrganizationRoleGroup,\n OrganizationRoleIntegrator,\n OrganizationRoleApplication,\n ApplicationRole,\n ApplicationOperation,\n ApplicationOperationRoleAssignment,\n Environment,\n EnvironmentComponent,\n ActiveEnvironmentComponent,\n EnvironmentComponentRole,\n EnvironmentComponentOperationRoleAssignment,\n MarketPlaceApplication,\n MarketPlaceApplicationVersion,\n EnvironmentComponentSettingValue,\n MarketPlaceAppType,\n ModifyEnvironmentComponentDefinitionDto,\n EnvironmentComponentDefinition,\n RoleType,\n EnvironmentComponentValidation,\n EnvironmentComponentTask,\n EnvironmentTaskScheduler,\n TaskHistoryPage,\n ApplicationReferenceListDto,\n ApplicationListDto,\n FootprintWorkflowsBlobsDataDto,\n CloneApplicationDefinitionRequest,\n TaskList,\n BuildDetails,\n UnifiedTaskList\n} from './application.do';\n\nimport { isNil } from 'lodash-es';\nimport { ApplicationContextService } from './application-context.service';\nimport { Configuration, EDesignerConfigType, IDesignerValidationError } from '../designer-config-service/designer-config.service';\nimport { IShellDesignerConfig } from '../designer-config-service/shell/shell-designer-config';\nimport { ILocalizationDesignerConfig } from '../designer-config-service/localization/localization-designer-config';\n\nexport const DATEX_APP_API_URL = new InjectionToken('DATEX_APP_API_URL');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrganizationsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}organizations`;\n }\n\n getAll(): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n getByTenant(tenantId: string): Observable {\n const url = `${this.endpointUrl}/tenant/${tenantId}`;\n return this.http.get(url);\n }\n\n create(org: Organization): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, org);\n }\n\n update(org: Organization): Observable {\n const url = `${this.endpointUrl}/${org.id}`;\n return this.http.put(url, org);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthorizationService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}authorization`;\n }\n\n hasStudioAccess(): Observable {\n const url = `${this.endpointUrl}/hasStudioAccess`;\n return this.http.get(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvironmentsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}environments`;\n }\n\n getAll(organizationId: number): Observable {\n const url = `${this.endpointUrl}?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n getSchedulerForEnvironment(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/schedulerinfo`;\n return this.http.get(url);\n }\n\n create(env: Environment): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, env);\n }\n\n update(env: Environment): Observable {\n const url = `${this.endpointUrl}/${env.id}`;\n return this.http.put(url, env);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n\n isNameUnique(name: string, organizationId: number): Observable {\n const url = `${this.endpointUrl}/isnameunique?name=${name}&organizationId=${organizationId}`;\n return this.http.post(url, null);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MarketPlaceApplicationsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}marketplaceapplications`;\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n getInstallableApplicationsForOrganization(organizationId: number): Observable {\n const url = `${this.endpointUrl}/installable?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n getInstallableFootprintWorkflows(organizationId: number): Observable {\n const url = `${this.endpointUrl}/installablefootprintworkflows?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n getPublic(): Observable {\n const url = `${this.endpointUrl}/public`;\n return this.http.get(url);\n }\n\n getApplicationVersions(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/versions`;\n return this.http.get(url);\n }\n\n getFootprintWorkflowsVersions(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/footprintworkflowsversions`;\n return this.http.get(url);\n }\n\n // temporairy for the scheduler for now\n createApplicationVersion(id: number, version: { releaseNotes: string, versionCode: string, versionName: string, containerImageUrl: string }) {\n const url = `${this.endpointUrl}/${id}/versions`;\n return this.http.post(url, version);\n }\n deleteApplicationVersion(id: number, versionId: number) {\n const url = `${this.endpointUrl}/${id}/versions/${versionId}`;\n return this.http.delete(url);\n }\n\n getFootprintWorkflowsDataExists(id: number, versionId: number): Observable {\n const url = `${this.endpointUrl}/${id}/versions/${versionId}/footprintworkflowsdataexists`;\n return this.http.get(url);\n }\n\n getFootprintWorkflowsData(id: number, versionId: number): Observable {\n const url = `${this.endpointUrl}/${id}/versions/${versionId}/footprintworkflowsdata`;\n return this.http.get(url);\n }\n\n getBuildInformation(id: number, versionId: number): Observable {\n const url = `${this.endpointUrl}/${id}/versions/${versionId}/buildinfo`;\n return this.http.get(url)\n .pipe(map(res => res ? Object.assign(new BuildDetails(), res as BuildDetails) : null));\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvironmentComponentDefinitionsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}environmentcomponentdefinitions`;\n }\n\n getAll(environmentId: number): Observable {\n const url = `${this.endpointUrl}?environmentId=${environmentId}`;\n return this.http.get(url);\n }\n\n getAllComponents(environmentComponentDefinitionId: number): Observable {\n const url = `${this.endpointUrl}/${environmentComponentDefinitionId}/components`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n create(env: ModifyEnvironmentComponentDefinitionDto): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, env);\n }\n\n addVersion(id: number, marketPlaceApplicationVersionId: number): Observable {\n const url = `${this.endpointUrl}/${id}/addVersion/${marketPlaceApplicationVersionId}`;\n return this.http.post(url, null);\n }\n\n update(env: ModifyEnvironmentComponentDefinitionDto): Observable {\n const url = `${this.endpointUrl}/${env.id}`;\n return this.http.put(url, env);\n }\n\n deploy(id: number, componentId: number): Observable {\n const url = `${this.endpointUrl}/${id}/deploycomponent/${componentId}`;\n return this.http.put(url, null);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n\n isUrlUnique(url: string, environmentId: number, componentDefinitionId?: number): Observable {\n return this.http.post(`${this.endpointUrl}/isurlunique?url=${url}&environmentId=${environmentId}` + (componentDefinitionId ? `&componentDefinitionId=${componentDefinitionId}` : ''), null);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvironmentComponentsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}environmentcomponents`;\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n getActives(): Observable {\n const url = `${this.endpointUrl}/active`;\n return this.http.get(url);\n }\n\n isValid(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/isValid`;\n return this.http.get(url);\n }\n // create(env: EnvironmentComponent): Observable {\n // const url = `${this.endpointUrl}`;\n // return this.http.post(url, env);\n // }\n\n // update(env: EnvironmentComponent): Observable {\n // const url = `${this.endpointUrl}/${env.id}`;\n // return this.http.put(url, env);\n // }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n\n getSettings(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/settings`;\n return this.http.get(url);\n }\n\n updateSettings(id: number, instance: EnvironmentComponentSettingValue[]): Observable {\n const url = `${this.endpointUrl}/${id}/settings`;\n return this.http.put(url, instance);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvironmentComponentRoleService {\n\n protected get endpointUrl(): string {\n return `${this.apiUrl}environmentcomponents`;\n }\n\n constructor(\n private http: HttpClient,\n @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n }\n\n getEnvironmentComponentRole(componentId: number, roleId): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/roles/${roleId}`);\n }\n\n getEnvironmentComponentRoles(componentId: number): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/roles`);\n }\n\n addRoles(componentId: number, roles: OrganizationRole[]): Observable {\n const url = `${this.endpointUrl}/${componentId}/roles`;\n return this.http.post(url, roles.map(x => x.id));\n }\n\n removeRole(componentId: number, roleId: number): Observable {\n const url = `${this.endpointUrl}/${componentId}/role/${roleId}`;\n return this.http.delete(url);\n }\n\n getOperationRoles(componentId: number, operationId: number): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/operations/${operationId}/roles`);\n }\n\n getEnvironmentComponentRoleAssignments(componentId: number): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/roleassignments`);\n }\n\n getAssignedOperationsForRole(componentId: number, roleId: number): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/roles/${roleId}/operations`);\n }\n\n addOperationsAssignmentsForRole(componentId: number, roleId: number, operations: ApplicationOperation[]): Observable {\n const url = `${this.endpointUrl}/${componentId}/roles/${roleId}/operations`;\n return this.http.post(url, operations.map(x => x.id));\n }\n\n removeOperationRoleAssignment(componentId: number, operationId: number, roleId: number): Observable {\n const url = `${this.endpointUrl}/${componentId}/operations/${operationId}/roles/${roleId}`;\n return this.http.delete(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UsersService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}users`;\n }\n\n getAll(organizationId: number): Observable {\n const url = `${this.endpointUrl}?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n create(users: User[]): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, users);\n }\n\n update(user: User): Observable {\n const url = `${this.endpointUrl}/${user.id}`;\n return this.http.put(url, user);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}groups`;\n }\n\n getAll(organizationId: number): Observable {\n const url = `${this.endpointUrl}?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n create(groups: Group[]): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, groups);\n }\n\n update(group: Group): Observable {\n const url = `${this.endpointUrl}/${group.id}`;\n return this.http.put(url, group);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegratorsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}integrators`;\n }\n\n getAll(organizationId: number): Observable {\n const url = `${this.endpointUrl}?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n create(integrators: Integrator[]): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, integrators);\n }\n\n update(integrator: Integrator): Observable {\n const url = `${this.endpointUrl}/${integrator.id}`;\n return this.http.put(url, integrator);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationDefinitionService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}applicationdefinitions`;\n }\n\n getAll(applicationTypeIds?: number[], organizationId?: number): Observable {\n let url = `${this.endpointUrl}?`;\n if (applicationTypeIds) {\n for (const id of applicationTypeIds) {\n url += `&applicationTypeIds=${id}`;\n }\n }\n if (organizationId) {\n url += `${url.endsWith('?') ? '' : '&'}organizationId=${organizationId}`;\n }\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n create(app: ApplicationDefinition): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, app);\n }\n\n update(app: ApplicationDefinition): Observable {\n const url = `${this.endpointUrl}/${app.id}`;\n return this.http.put(url, app);\n }\n\n clone(id: number, app: CloneApplicationDefinitionRequest): Observable {\n const url = `${this.endpointUrl}/${id}/clone`;\n return this.http.post(url, app);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n\n deleteFootprint(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/footprint`;\n return this.http.delete(url);\n }\n\n isNameUnique(applicationTypeId: number, name: string, skipAppDefId?: number, organizationId?: number): Observable {\n let url = `${this.endpointUrl}/isnameunique?applicationTypeId=${applicationTypeId}&name=${name}`;\n\n if (isNil(skipAppDefId) === false) {\n url += `&skipapplicationdefinitionid=${skipAppDefId}`;\n }\n\n if (isNil(organizationId) === false) {\n url += `&organizationId=${organizationId}`;\n }\n\n return this.http.post(url, null);\n }\n\n isIdentifierUnique(identifier: string, skipAppDefId?: number): Observable {\n let url = `${this.endpointUrl}/isidentifierunique?identifier=${identifier}`;\n if (isNil(skipAppDefId) === false) {\n url += `&skipapplicationdefinitionid=${skipAppDefId}`;\n }\n return this.http.post(url, null);\n }\n\n isOwner(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/isowner`;\n return this.http.get(url);\n }\n\n deleteOldArchives(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/deleteoldarchives`;\n return this.http.post(url, null);\n }\n\n provision(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/provision`;\n return this.http.post(url, null);\n }\n}\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationDefinitionOrganizationService {\n protected endpointUrl: string;\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}applicationdefinitionorganizations`;\n }\n\n create(applicationDefinitionOrganization: ApplicationDefinitionOrganization): Observable {\n const url = `${this.endpointUrl}`;\n return this.http.post(url, applicationDefinitionOrganization);\n }\n\n delete(applicationDefinitionId: number, organizationId: number): Observable {\n const url = `${this.endpointUrl}/applicationdefinition/${applicationDefinitionId}/organization/${organizationId}`;\n return this.http.delete(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AddonsService {\n protected endpointUrl: string;\n\n constructor(private http: HttpClient, @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}addons`;\n }\n\n getAll(applicationTypeId: number, organizationId?: number): Observable {\n const url = `${this.endpointUrl}?applicationTypeId=${applicationTypeId}&organizationId=${organizationId}`;\n return this.http.get(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationService {\n protected endpointUrl: string;\n\n constructor(\n private http: HttpClient,\n private applicationContextService: ApplicationContextService,\n @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n this.endpointUrl = `${this.apiUrl}applications`;\n }\n\n preview(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/preview`;\n return this.http.get(url);\n }\n\n getAll(): Observable {\n const url = `${this.endpointUrl}?applicationdefinitionid=${this.applicationContextService.applicationDefinitionId}`;\n return this.http.get(url);\n }\n\n getEditableAndPublishedBranches(): Observable {\n const url = `${this.endpointUrl}/GetEditableAndPublishedBranches?applicationdefinitionid=${this.applicationContextService.applicationDefinitionId}`;\n return this.http.get(url);\n }\n\n getApplicationList(): Observable {\n const url = `${this.endpointUrl}/GetApplicationList?applicationdefinitionid=${this.applicationContextService.applicationDefinitionId}`;\n return this.http.get(url);\n }\n\n getAllForOrganizations(organizationId: number): Observable {\n const url = `${this.endpointUrl}/GetApplicationsForOrganization?organizationId=${organizationId}`;\n return this.http.get(url);\n }\n\n getAllModules(applicationTypeId: number, id: number): Observable {\n const url = `${this.endpointUrl}/modules?applicationTypeId=${applicationTypeId}&applicationId=${id}`;\n return this.http.get(url);\n }\n\n getPublished(): Observable {\n const url = `${this.endpointUrl}/published`;\n return this.http.get(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n getShell(id: number): Observable> {\n const url = `${this.endpointUrl}/${id}/shell`;\n return this.http.get>(url);\n }\n\n getLocalization(id: number): Observable> {\n const url = `${this.endpointUrl}/${id}/localization`;\n return this.http.get>(url);\n }\n\n getConfigId(id: number, type: EDesignerConfigType): Observable {\n const url = `${this.endpointUrl}/${id}/${type}/configId`;\n return this.http.get(url);\n }\n\n publish(id: number, publishingDescription: string, version: string): Observable {\n const url = `${this.endpointUrl}/${id}/publish?releaseNotes=${publishingDescription}&version=${version}`;\n return this.http.post(url, null);\n }\n\n convertToDraft(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/converttodraft`;\n return this.http.post(url, null);\n }\n\n delete(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.delete(url);\n }\n\n validate(id: number): Observable {\n return this.http.post(`${this.endpointUrl}/${id}/validate`, null);\n }\n\n isReferenced(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/isreferenced`;\n return this.http.get(url);\n }\n\n referencedFrom(id: number): Observable {\n const url = `${this.endpointUrl}/${id}/referencedfrom`;\n return this.http.get(url);\n }\n}\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrganizationTasksService {\n protected get endpointUrl(): string {\n return `${this.apiUrl}organizations`;\n }\n\n constructor(\n private http: HttpClient,\n @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n }\n\n getScheduledTasks(organizationId: number): Observable {\n const url = `${this.endpointUrl}/${organizationId}/schedules`;\n return this.http.get(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvironmentComponentTasksService {\n protected get endpointUrl(): string {\n return `${this.apiUrl}environmentComponents`;\n }\n\n constructor(\n private http: HttpClient,\n @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n }\n\n getScheduledTasks(componentId: number): Observable {\n const url = `${this.endpointUrl}/${componentId}/scheduledtasks?WithExecutionDetails=true`;\n return this.http.get(url);\n }\n\n getScheduledTask(componentId: number, name: string): Observable {\n return this.getScheduledTasks(componentId)\n .pipe(map(x => x.tasks.find(y => y.name === name)));\n }\n\n getTaskHistory(componentId: number, name: string, skip: number, take: number, filterText: string): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/scheduledtasks/history?name=${name}&skip=${skip}&take=${take}&filterText=${filterText ?? ''}`);\n }\n\n create(componentId: number, task: EnvironmentComponentTask): Observable {\n return this.http.post(`${this.endpointUrl}/${componentId}/scheduledtasks`, task);\n }\n\n update(componentId: number, task: EnvironmentComponentTask): Observable {\n return this.http.put(`${this.endpointUrl}/${componentId}/scheduledtasks?name=${task.name}`, task);\n }\n\n runTask(componentId: number, name: string): Observable {\n return this.http.post(`${this.endpointUrl}/${componentId}/scheduledtasks/runtask?name=${name}`, null);\n }\n\n deleteTask(componentId: number, name: string): Observable {\n return this.http.delete(`${this.endpointUrl}/${componentId}/scheduledtasks?name=${name}`);\n }\n\n activateTask(componentId: number, name: string): Observable {\n return this.http.post(`${this.endpointUrl}/${componentId}/scheduledtasks/activatetask?name=${name}`, null);\n }\n\n deactivateTask(componentId: number, name: string): Observable {\n return this.http.post(`${this.endpointUrl}/${componentId}/scheduledtasks/deactivatetask?name=${name}`, null);\n }\n\n cancelRun(componentId: number, taskName: string, runId: string): Observable {\n return this.http.post(`${this.endpointUrl}/${componentId}/scheduledtasks/cancelrun?name=${taskName}&runId=${runId}`, null);\n }\n\n isNameUnique(componentId: number, name: string): Observable {\n return this.http.get(`${this.endpointUrl}/${componentId}/scheduledtasks/isnameunique?name=${name}`);\n }\n}\n\nclass BaseOrganizationRoleService {\n\n protected get endpointUrl(): string {\n return `${this.apiUrl}organizations/${this.applicationContextService.currentOrganization$.getValue()?.id}/${this.controller}`;\n }\n\n constructor(\n private http: HttpClient,\n private applicationContextService: ApplicationContextService,\n @Inject(DATEX_APP_API_URL) private apiUrl: string,\n private controller: string) {\n }\n\n getAll(): Observable {\n return this.http.get(this.endpointUrl);\n }\n\n getAssignedUsers(roleId): Observable {\n return this.http.get(`${this.endpointUrl}/${roleId}/users`);\n }\n\n getAssignedGroups(roleId): Observable {\n return this.http.get(`${this.endpointUrl}/${roleId}/groups`);\n }\n\n getAssignedIntegrators(roleId): Observable {\n return this.http.get(`${this.endpointUrl}/${roleId}/integrators`);\n }\n\n\n getAssignedApplications(roleId): Observable {\n return this.http.get(`${this.endpointUrl}/${roleId}/applications`);\n }\n\n assignUsers(role: OrganizationRole, users: User[]): Observable {\n const url = `${this.endpointUrl}/${role.id}/users`;\n return this.http.post(url, users.map(x => x.id));\n }\n\n unassignUser(assignment: OrganizationRoleUser): Observable {\n const url = `${this.endpointUrl}/${assignment.roleId}/users/${assignment.userId}`;\n return this.http.delete(url);\n }\n\n assignGroups(role: OrganizationRole, groups: Group[]): Observable {\n const url = `${this.endpointUrl}/${role.id}/groups`;\n return this.http.post(url, groups.map(x => x.id));\n }\n\n unassignGroup(assignment: OrganizationRoleGroup): Observable {\n const url = `${this.endpointUrl}/${assignment.roleId}/groups/${assignment.groupId}`;\n return this.http.delete(url);\n }\n\n assignIntegrators(role: OrganizationRole, integrators: Integrator[]): Observable {\n const url = `${this.endpointUrl}/${role.id}/integrators`;\n return this.http.post(url, integrators.map(x => x.id));\n }\n\n unassignIntegrator(assignment: OrganizationRoleIntegrator): Observable {\n const url = `${this.endpointUrl}/${assignment.roleId}/integrators/${assignment.integratorId}`;\n return this.http.delete(url);\n }\n\n get(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n create(role: OrganizationRole): Observable {\n return this.http.post(this.endpointUrl, role);\n }\n\n update(role: OrganizationRole): Observable {\n const url = `${this.endpointUrl}/${role.id}`;\n return this.http.put(url, role);\n }\n\n delete(role: OrganizationRole): Observable {\n const url = `${this.endpointUrl}/${role.id}`;\n return this.http.delete(url);\n }\n}\n\nexport interface IOrganizationRoleService {\n getAll(): Observable;\n getAssignedUsers(roleId): Observable;\n getAssignedGroups(roleId): Observable;\n getAssignedIntegrators(roleId): Observable;\n getAssignedApplications(roleId): Observable;\n assignUsers(role: OrganizationRole, users: User[]): Observable;\n unassignUser(assignment: OrganizationRoleUser): Observable;\n assignGroups(role: OrganizationRole, groups: Group[]): Observable;\n unassignGroup(assignment: OrganizationRoleGroup): Observable;\n assignIntegrators(role: OrganizationRole, integrators: Integrator[]): Observable;\n unassignIntegrator(assignment: OrganizationRoleIntegrator): Observable;\n get(id: number): Observable;\n create(role: OrganizationRole): Observable;\n update(role: OrganizationRole): Observable;\n delete(role: OrganizationRole): Observable;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrganizationRoleService extends BaseOrganizationRoleService implements IOrganizationRoleService {\n constructor(\n http: HttpClient,\n applicationContextService: ApplicationContextService,\n @Inject(DATEX_APP_API_URL) apiUrl: string) {\n super(http, applicationContextService, apiUrl, 'roles');\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrganizationDataAccessGroupService extends BaseOrganizationRoleService implements IOrganizationRoleService {\n constructor(\n http: HttpClient,\n applicationContextService: ApplicationContextService,\n @Inject(DATEX_APP_API_URL) apiUrl: string) {\n super(http, applicationContextService, apiUrl, 'OrganizationDataAccessGroups');\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationRoleService {\n\n protected get endpointUrl(): string {\n return `${this.apiUrl}applications/${this.applicationContextService.applicationId}`;\n }\n\n constructor(\n private http: HttpClient,\n private applicationContextService: ApplicationContextService,\n @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n }\n\n getApplicationRole(roleId): Observable {\n return this.http.get(`${this.endpointUrl}/roles/${roleId}`);\n }\n\n getApplicationRoles(applicationId?: number): Observable {\n const endpoint = applicationId\n ? `${this.apiUrl}applications/${applicationId}`\n : this.endpointUrl;\n return this.http.get(`${endpoint}/roles`);\n }\n\n addRoles(roles: OrganizationRole[]): Observable {\n const url = `${this.endpointUrl}/roles`;\n return this.http.post(url, roles.map(x => x.id));\n }\n\n removeRole(roleId: number): Observable {\n const url = `${this.endpointUrl}/role/${roleId}`;\n return this.http.delete(url);\n }\n\n getOperations(applicationId?: number): Observable {\n const endpoint = applicationId\n ? `${this.apiUrl}applications/${applicationId}`\n : this.endpointUrl;\n return this.http.get(`${endpoint}/operations`);\n }\n\n getOperation(operationId: number): Observable {\n return this.http.get(`${this.endpointUrl}/operations/${operationId}`);\n }\n\n createOperation(operation: ApplicationOperation): Observable {\n return this.http.post(`${this.endpointUrl}/operations`, operation);\n }\n\n updateOperation(operation: ApplicationOperation): Observable {\n return this.http.put(`${this.endpointUrl}/operations/${operation.id}`, operation);\n }\n\n deleteOperation(operationId: number): Observable {\n return this.http.delete(`${this.endpointUrl}/operations/${operationId}`);\n }\n\n getOperationRoles(operationId: number, applicationId?: number): Observable {\n const endpoint = applicationId\n ? `${this.apiUrl}applications/${applicationId}`\n : this.endpointUrl;\n return this.http.get(`${endpoint}/operations/${operationId}/roles`);\n }\n\n getApplicationRoleAssignments(applicationId?: number): Observable {\n const endpoint = applicationId\n ? `${this.apiUrl}applications/${applicationId}`\n : this.endpointUrl;\n return this.http.get(`${endpoint}/roleassignments`);\n }\n\n getAssignedOperationsForRole(roleId: number): Observable {\n return this.http.get(`${this.endpointUrl}/roles/${roleId}/operations`);\n }\n\n addOperationRoleAssignment(operationId: number, roleId: number): Observable {\n const url = `${this.endpointUrl}/operations/${operationId}/roles/${roleId}`;\n return this.http.post(url, null);\n }\n\n addOperationRoleAssignments(operationId: number, roles: ApplicationRole[]): Observable {\n const url = `${this.endpointUrl}/operations/${operationId}/roles`;\n return this.http.post(url, roles.map(x => x.organizationRoleId));\n }\n\n removeOperationRoleAssignment(operationId: number, roleId: number): Observable {\n const url = `${this.endpointUrl}/operations/${operationId}/roles/${roleId}`;\n return this.http.delete(url);\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationReferenceService {\n\n protected get endpointUrl(): string {\n return `${this.apiUrl}applications/${this.applicationContextService.applicationId}/references`;\n }\n\n constructor(\n private http: HttpClient,\n private applicationContextService: ApplicationContextService,\n @Inject(DATEX_APP_API_URL) private apiUrl: string) {\n }\n\n getAllDirectReferences(applicationId?: number): Observable {\n const endpoint = applicationId\n ? `${this.apiUrl}applications/${applicationId}/references`\n : this.endpointUrl;\n return this.http.get(`${endpoint}/directReferences`);\n }\n\n getAllIndirectReferences(): Observable {\n return this.http.get(`${this.endpointUrl}/indirectReferences`);\n }\n\n getReferenceList(): Observable {\n return this.http.get(`${this.endpointUrl}/referenceList`);\n }\n\n getReference(id: number): Observable {\n const url = `${this.endpointUrl}/${id}`;\n return this.http.get(url);\n }\n\n createDirectReference(instance: ApplicationReference): Observable {\n return this.http.post(this.endpointUrl, instance);\n }\n\n deleteDirectReference(ids: Array): Observable {\n const url = `${this.endpointUrl}/delete`;\n return this.http.patch(url, ids);\n }\n\n updateReferenceSettings(id: number, settings: Array): Observable {\n const url = `${this.endpointUrl}/${id}/settings`;\n return this.http.patch(url, settings);\n }\n\n upgrade(): Observable {\n const url = `${this.endpointUrl}/upgrade`;\n return this.http.post(url, null);\n }\n}\n\nexport class ApplicationTypeNom {\n\n static values: ApplicationType[] = [\n {\n id: 1,\n name: 'Web Application'\n },\n {\n id: 2,\n name: 'Mobile Application'\n },\n {\n id: 3,\n name: 'Component package'\n },\n {\n id: 6,\n name: 'API Application'\n },\n {\n id: 7,\n name: 'Portal Application'\n }\n ];\n\n public static get(): ApplicationType[] {\n return this.values;\n }\n\n public static getName(applicationTypeId: number): string {\n return this.values.find(item => item.id === applicationTypeId)?.name;\n }\n\n public static web(): ApplicationType {\n return this.values[0];\n }\n\n public static componentModule(): ApplicationType {\n return this.values[2];\n }\n\n public static api(): ApplicationType {\n return this.values[3];\n }\n\n public static portal(): ApplicationType {\n return this.values[4];\n }\n\n public static applicationGroup(): number {\n return 1;\n }\n\n public static componentModuleGroup(): number {\n return 2;\n }\n}\n\nexport class RoleTypeNom {\n\n static values: RoleType[] = [\n {\n id: 1,\n name: 'Role'\n },\n {\n id: 2,\n name: 'Data access group'\n }\n ];\n\n public static getName(roleTypeId: number): string {\n return this.values.find(item => item.id === roleTypeId)?.name;\n }\n\n public static role(): RoleType {\n return this.values[0];\n }\n\n public static dataAccessGroup(): RoleType {\n return this.values[1];\n }\n}\n\nexport class MarketPlaceAppTypeNom {\n static values: MarketPlaceAppType[] = [\n {\n id: 1,\n name: 'Wavelength Application'\n },\n {\n id: 2,\n name: 'Footprint Api'\n },\n {\n id: 3,\n name: 'Wavelength Core'\n }\n ];\n\n public static get(): MarketPlaceAppType[] {\n return this.values;\n }\n\n public static getName(applicationTypeId: number): string {\n return this.values.find(item => item.id === applicationTypeId)?.name;\n }\n\n public static wavelength(): MarketPlaceAppType {\n return this.values[0];\n }\n\n public static footprintApi(): MarketPlaceAppType {\n return this.values[1];\n }\n\n public static taskSchedulerApi(): MarketPlaceAppType {\n return this.values[2];\n }\n\n public static wavelengthGroup(): number {\n return 1;\n }\n\n public static footprintApiGroup(): number {\n return 2;\n }\n\n public static taskSchedulerApiGroup(): number {\n return 3;\n }\n}\n\n\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImageViewerComponent } from './image-viewer.component';\nimport { ImageViewerConfig } from './image-viewer-config.model';\nimport { ToggleFullscreenDirective } from './fullscreen.directive';\n\n\n// copy code from \n// https://www.npmjs.com/package/ngx-image-viewer\n// old library not maintained anymore and couldn't compile\n// with ng16 update. Complaining about ModuleWithProviders\n// https://angular.io/guide/migration-module-with-providers\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n ImageViewerComponent,\n ToggleFullscreenDirective\n ],\n exports: [\n ImageViewerComponent,\n ToggleFullscreenDirective\n ]\n})\nexport class ImageViewerModule {\n static forRoot(config?: ImageViewerConfig): ModuleWithProviders {\n return {\n ngModule: ImageViewerModule,\n providers: [{ provide: 'config', useValue: config }]\n };\n }\n}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { environment } from 'projects/datexapplication/src/environments/environment';\nimport { Observable } from 'rxjs';\nimport { DATEX_APP_API_URL } from '../common/services/application.service';\n\n@Injectable()\nexport class RequestsInterceptor implements HttpInterceptor {\n\n constructor(\n @Inject(DATEX_APP_API_URL) private apiUrl: string\n ) {\n }\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (request.url.includes(environment.wavelengthAccountConnectorUrl)) {\n\n const ediURL = btoa(unescape(encodeURIComponent(request.urlWithParams)));\n\n const modifiedReq = request.clone({\n url: `${this.apiUrl}EDIRelay?url=${ediURL}`\n });\n\n return next.handle(modifiedReq);\n }\n\n return next.handle(request);\n }\n}\n","\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog';\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\nimport { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu';\nimport { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';\nimport { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle';\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\nimport { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\nimport { MatLegacySnackBarModule as MatSnackBarModule } from '@angular/material/legacy-snack-bar';\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\nimport { MatLegacyChipsModule as MatChipsModule } from '@angular/material/legacy-chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';\nimport { MatLegacyRadioModule as MatRadioModule } from '@angular/material/legacy-radio';\nimport { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatLegacyListModule as MatListModule } from '@angular/material/legacy-list';\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\nimport { MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateAdapterOptions } from '@angular/material-moment-adapter';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatLegacyTableModule as MatTableModule } from '@angular/material/legacy-table';\n\n//// Third party\nimport { NgxMatDatetimePickerModule, NgxMatTimepickerModule } from '@angular-material-components/datetime-picker';\nimport {\n NgxMatMomentModule,\n NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS,\n NgxMatMomentDateAdapterOptions\n} from '@angular-material-components/moment-adapter';\n\nimport { MessageDialogComponent } from './message-dialog/message-dialog.component';\nimport { ValidationErrorsComponent } from './validation-errors/validation-errors.component';\nimport { DesignerValidationErrorsComponent } from '../common/designer-validation-errors/designer-validation-errors.component';\nimport { FormFieldShellComponent } from './form-field-shell/form-field-shell.component';\nimport { ValueControlComponent } from './value-control/value-control.component';\nimport { NumberboxComponent } from './numberbox/numberbox.component';\nimport { DateboxComponent } from './datebox/datebox.component';\nimport { TimeboxComponent } from './timebox/timebox.component';\nimport { ValidNameValidatorDirective } from './directives/valid-name.directive';\nimport { JsonformatterDirective } from './directives/jsonformatter.directive';\nimport { FillPipe } from './directives/fill.pipe';\nimport { OverlayComponent } from './overlay/overlay.component';\nimport { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { LoadingBarHttpClientModule } from '@ngx-loading-bar/http-client';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card';\nimport { DATEX_APP_API_URL } from './services/application.service';\nimport { environment } from '../../environments/environment';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { GridComponent } from './grid/grid.component';\nimport { MonacoEditorComponent } from './monaco-editor/monaco-editor.component';\nimport { CronTimePickerComponent } from './cron-time-picker/cron-time-picker.component';\nimport { CronEditorComponent } from './cron-editor/cron-editor.component';\nimport { ApiConnectionControlComponent } from './api-connection-control/api-connection-control.component';\nimport { CronPipe } from './directives/cron.pipe';\nimport { ConfirmStringDialogComponent } from './confirm-string-dialog/confirm-string-dialog.component';\nimport { AutoFocusDirective } from '../common/directives/autofocus.directive';\nimport { InputFieldsComponent } from './input-fields/input-fields.component';\nimport { CodeInputComponent } from './code-editor/code-input/code-input.component';\nimport { ExprInputComponent } from './code-editor/expr-input/expr-input.component';\n\nimport { AngularSignaturePadModule } from '@almothafar/angular-signature-pad';\nimport { CodemirrorModule } from '@ctrl/ngx-codemirror';\nimport { ImageViewerModule } from './image-viewer/image-viewer.module';\nimport { DateFormatPipe } from './directives/date-format.pipe';\nimport { TimePeriodPipe } from './directives/time-period.pipe';\nimport { CopilotAnalysisComponent } from './code-editor/copilot-analysis/copilot-analysis.component';\nimport { OperationSelectFormComponent } from './operation-select-form/operation-select-form.component';\nimport { RoleSelectFormComponent } from './role-select-form/role-select-form.component';\nimport { RequestsInterceptor } from '../interceptors/requests.interceptor';\nimport { UniqueSettingNameValidatorDirective } from '../studio/common/directives/unique-setting-name.directive';\nimport { ForbiddenNameValidatorDirective } from './directives/forbidden-name.directive';\nimport { ValidEmailValidatorDirective } from './directives/valid-email';\nimport { DesignerInformationComponent } from './designer-information/designer-information.component';\n\nconst momentDateAdapterConfig: MatMomentDateAdapterOptions = {\n useUtc: true\n};\n\nconst ngxMomentDateAdapterConfig: NgxMatMomentDateAdapterOptions = {\n useUtc: true\n};\n\n@NgModule({\n imports: [\n ImageViewerModule.forRoot({\n containerBackgroundColor: '#fff',\n allowFullscreen: true,\n btnIcons: {\n fullscreen: 'icon icon-ic_fluent_full_screen_maximize_20_regular',\n zoomOut: 'icon icon-ic_fluent_subtract_20_regular',\n zoomIn: 'icon icon-ic_fluent_add_20_regular',\n rotateCounterClockwise: 'icon icon-ic_fluent_arrow_rotate_counterclockwise_20_regular',\n rotateClockwise: 'icon icon-ic_fluent_arrow_rotate_clockwise_20_regular'\n },\n btnShow: {\n zoomIn: true,\n zoomOut: true,\n rotateClockwise: true,\n rotateCounterClockwise: true\n }\n }\n ),\n CodemirrorModule,\n AngularSignaturePadModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n LoadingBarHttpClientModule,\n\n DragDropModule,\n MatCardModule,\n MatDialogModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatInputModule,\n MatMenuModule,\n MatSelectModule,\n MatSlideToggleModule,\n MatTabsModule,\n MatFormFieldModule,\n MatAutocompleteModule,\n MatSnackBarModule,\n MatTooltipModule,\n MatChipsModule,\n MatIconModule,\n MatCheckboxModule,\n MatRadioModule,\n MatProgressBarModule,\n MatDatepickerModule,\n MatListModule,\n MatMomentDateModule,\n MatProgressSpinnerModule,\n MatExpansionModule,\n MatTableModule,\n\n CdkTableModule,\n\n NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatMomentModule,\n ReactiveFormsModule,\n ],\n declarations: [\n MessageDialogComponent,\n ConfirmStringDialogComponent,\n DesignerValidationErrorsComponent,\n DesignerInformationComponent,\n ValidationErrorsComponent,\n FormFieldShellComponent,\n ValueControlComponent,\n ApiConnectionControlComponent,\n NumberboxComponent,\n DateboxComponent,\n TimeboxComponent,\n ValidNameValidatorDirective,\n ValidEmailValidatorDirective,\n ForbiddenNameValidatorDirective,\n UniqueSettingNameValidatorDirective,\n JsonformatterDirective,\n FillPipe,\n CronPipe,\n DateFormatPipe,\n TimePeriodPipe,\n OverlayComponent,\n GridComponent,\n MonacoEditorComponent,\n CronEditorComponent,\n CronTimePickerComponent,\n InputFieldsComponent,\n AutoFocusDirective,\n ExprInputComponent,\n CodeInputComponent,\n CopilotAnalysisComponent,\n OperationSelectFormComponent,\n RoleSelectFormComponent\n ],\n providers: [\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: momentDateAdapterConfig },\n { provide: NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: ngxMomentDateAdapterConfig },\n { provide: DATEX_APP_API_URL, useValue: environment.datexApplicationApiUrl },\n { provide: HTTP_INTERCEPTORS, useClass: RequestsInterceptor, multi: true },\n ],\n exports: [\n // Re-exporting modules so when other modules import the sharedmodule\n // they have access to those module as well\n // https://angular.io/guide/sharing-ngmodules\n ImageViewerModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n CodemirrorModule,\n AngularSignaturePadModule,\n\n LoadingBarHttpClientModule,\n\n DragDropModule,\n MatCardModule,\n MatDialogModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatInputModule,\n MatMenuModule,\n MatSelectModule,\n MatSlideToggleModule,\n MatTabsModule,\n MatFormFieldModule,\n MatAutocompleteModule,\n MatSnackBarModule,\n MatTooltipModule,\n MatChipsModule,\n MatIconModule,\n MatCheckboxModule,\n MatRadioModule,\n MatProgressBarModule,\n MatDatepickerModule,\n MatListModule,\n MatMomentDateModule,\n MatProgressSpinnerModule,\n MatExpansionModule,\n MatTableModule,\n\n CdkTableModule,\n\n NgxMatDatetimePickerModule,\n NgxMatTimepickerModule,\n NgxMatMomentModule,\n\n MessageDialogComponent,\n ConfirmStringDialogComponent,\n ValidationErrorsComponent,\n DesignerValidationErrorsComponent,\n DesignerInformationComponent,\n FormFieldShellComponent,\n ValueControlComponent,\n ApiConnectionControlComponent,\n NumberboxComponent,\n DateboxComponent,\n TimeboxComponent,\n ValidNameValidatorDirective,\n ValidEmailValidatorDirective,\n ForbiddenNameValidatorDirective,\n UniqueSettingNameValidatorDirective,\n JsonformatterDirective,\n FillPipe,\n CronPipe,\n DateFormatPipe,\n TimePeriodPipe,\n OverlayComponent,\n GridComponent,\n MonacoEditorComponent,\n InputFieldsComponent,\n ReactiveFormsModule,\n CronEditorComponent,\n CronTimePickerComponent,\n AutoFocusDirective,\n ExprInputComponent,\n CodeInputComponent,\n OperationSelectFormComponent,\n RoleSelectFormComponent\n ]\n})\nexport class SharedModule { }\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { has } from 'lodash-es';\n\nexport class DatexErrorInfo {\n rawError: Error | HttpErrorResponse;\n\n code: string;\n message: string;\n innerError: unknown;\n detail: string;\n\n constructor(error: Error | HttpErrorResponse) {\n this.rawError = error;\n\n if (error instanceof HttpErrorResponse) {\n this.initFromHttpError(error);\n } else if (error instanceof Error) {\n this.initFromError(error);\n }\n }\n\n private initFromError(error: Error) {\n this.code = error.name;\n this.message = error.message;\n if (error.stack) {\n this.detail = error.stack;\n }\n }\n\n private initFromHttpError(httpErrorResponse: HttpErrorResponse) {\n this.code = httpErrorResponse.name;\n this.message = httpErrorResponse.message;\n const error = httpErrorResponse.error;\n this.innerError = error;\n\n if (error) {\n // Is the error object an error object coming from the API?\n if (has(error, 'error') && has(error.error, 'code') && has(error.error, 'message')) {\n const errorPayload = error.error;\n this.code = errorPayload.code;\n this.message = errorPayload.message;\n\n // the details comes from the innererror\n if (has(errorPayload, 'innererror')) {\n this.innerError = errorPayload.innererror;\n try {\n this.detail = JSON.stringify(errorPayload.innererror);\n } catch {\n console.warn('unable to json stringify innererror object inside HttpErrorResponse.error');\n }\n }\n } else {\n if (has(error, 'message')) {\n this.message = error.message;\n } else if (has(error, 'title')) {\n // assume it is a Problem Details JSON https://datatracker.ietf.org/doc/html/rfc7807\n this.message = error.title;\n }\n try {\n this.detail = JSON.stringify(error);\n } catch {\n console.warn('unable to json stringify error object inside HttpErrorResponse');\n }\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DatexErrorInfo } from './datex-error-info';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DatexErrorService {\n public errors: DatexErrorInfo[];\n public hasErrors = false;\n\n constructor() {\n this.errors = [];\n }\n\n public add(error: Error | HttpErrorResponse) {\n this.hasErrors = true;\n this.errors.push(new DatexErrorInfo(error));\n }\n\n public clear() {\n this.hasErrors = false;\n this.errors = [];\n }\n}\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`.\n\nexport const environment = {\n production: true,\n authRedirectUri: '/',\n authPostLogoutRedirectUri: '/',\n datexApplicationApiUrl: '/api/',\n integrationHubConfigApiUrl: 'https://datexintegrationhub-configurationapi-prod.azurewebsites.net/configapi/',\n integrationHubConfigurationApiScopes: ['api://6fd69ce1-e9ca-4107-b5aa-3c9c7b08b137/.default'],\n legacyConnectorsConfigApiUrl: 'https://datex-file-watcher-configuration-api-prod.azurewebsites.net/',\n legacyConnectorsConfigApiScopes: ['api://542d189e-dd86-4316-a36a-77a779d17741/.default'],\n integrationHubApiUrl: 'https://api.datexintegrationhub.com/api/',\n integrationHubApiScopes: ['api://e577ba0d-6a9d-4e94-8a14-97f6b649dcd4/.default'],\n integrationHubLoggingApiUrl: 'https://datexintegrationhub-logging-api-prod.azurewebsites.net/hubapi/',\n integrationHubLoggingApiScopes: ['api://f86dfd87-958e-40ef-a5ec-0c90a79f3e96/.default'],\n datexAlertApiUrl: 'https://datex-alert-services-prod.azurewebsites.net/odata/',\n datexAlertApiScopes: ['api://95fda1ae-e7b7-4b30-9f73-a4a6ac3835c8/.default'],\n datexAlertRecommndedSolutionApiUrl: 'https://ca-alerts-suggestion-api.gentleflower-459ce483.eastus.azurecontainerapps.io/',\n datexAlertRecommndedSolutionApiScopes: ['api://6a655f5f-071d-45af-9264-e64ed357235a/.default'],\n kustoQueryApiUrl: 'https://ca-integrationhub-kustoquery-api.salmonflower-9c1fbcb8.eastus.azurecontainerapps.io/',\n kustoQueryApiScopes: ['api://b6ca991d-958f-4474-87bd-ee0e78f613e5/.default'],\n footPrintAdaptorApiUrl: 'https://datexintegrationhub-footprint-prod.azurewebsites.net/api/',\n footPrintAdaptorApiScopes: ['api://54e03cb6-6605-40d5-bcae-fe5eec98681e/.default'],\n shopifyAdaptorApiUrl: 'https://datexintegrationhub-shopify-prod.azurewebsites.net/api/',\n shopifyAdaptorApiScopes: ['api://54e03cb6-6605-40d5-bcae-fe5eec98681e/.default'],\n wooCommerceAdaptorApiUrl: 'https://datexintegrationhub-woocommerce-prod.azurewebsites.net/api/',\n wooCommerceAdaptorApiScopes: ['api://54e03cb6-6605-40d5-bcae-fe5eec98681e/.default'],\n bigCommerceAdaptorApiUrl: 'https://datexintegrationhub-bigcommerce-prod.azurewebsites.net/api/',\n bigCommerceAdaptorApiScopes: ['api://54e03cb6-6605-40d5-bcae-fe5eec98681e/.default'],\n mesciusLicenseKey: '*.wavelength.host,232864259645381#B14TeF5RIp4MypGOpdlYCFnUtZlMZhkRwJUd5E4Z5wUY4hTR8FDSZdmeqhTSXNXM5YGR6FWM6YzVJdTS0JUaslEbWhFb5czdt5EaFdHckRVQ5RFRH3yM73yLXhGeMpWeFZ4ZShmdIFGVrYWMDNWS6hHdVl7S7U5Z5skdqF4UxpkRxE4NChGa5o5L5U4bBpkMQlzZrR4Q9ETdZBlb8l4d0hncSF4YQlWMtJkdhlWRrYTNplWcylleRZXRwlWTWxWcQxWelh6VMhEcatEMHNDdIFFb65WUXFUOMJkYLJWQZJDOCR7QaZTVQFEUmljSnBFWiojITJCLiQTNwQUN4kjNiojIIJCLzgTO9QjMyYzM0IicfJye35XX3JiVMtkTiojIDJCLiUjVgMlS4J7bwVmUlZXa4NWQiojIOJyebpjIkJHUiwiIxATNyITMggjMwEDNyAjMiojI4J7QiwiI4N7bo9Ca4dmblxWZ6F6duoiI0IyctRkIsICelRXYEJiOiEmTDJCLiEDOzUDN6kTNyQjN8IzMyIiOiQWSiwSfdtlOicGbmJCLlNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPRp5U7UUW4Q6QhlUMKJVaI5Ee9lDVh5kS4UXRPh7T6I4LwVXSrZDa4ZVbLZWNnV6aUxGU8gzSrVXWIhzVC56c7AzbjhjWHNTNBVDTuVmYKpFOTR5crJldUBHSXJUZSZ7QEdzUI5zNKx',\n ediLogicAppTriggerUrl: 'https://as2.datexintegrationhub.com',\n wavelengthAccountConnectorUrl: 'https://wavelength-connector-edi-prod.eastus.cloudapp.azure.com/',\n authtok: 'gJxjmNebq3g0M9XIEcXHa2PiODl8roVO',\n copilotApiUrl: 'https://copilot.wavelength.host/api/codecopilot/analyze/',\n copilotApiScopes: ['api://b24fc21e-e3f5-48c1-9769-77ed844e7b66/.default'],\n icmApiUrl: 'https://icm.wavelength.host/odata/',\n icmApiScopes: ['api://ad5d6ff0-895d-4d96-aa09-62ddc99c68de/.default'],\n ediPublic: 'https://as2.footprint.host/AS2Ingress',\n ediPrivate: 'https://wavelength-edi-prod.eastus.cloudapp.azure.com/AS2Ingress',\n datexDefaultAlertMessageTemplate: 'https://datexintegrationhubprod.blob.core.windows.net/datex-alert-services/html-email-templates/IntegrationHubDefault.html'\n};\n","
\n Management\n New Management\n
\n
\n

Deployed applications

\n
\n \n \n [{{app.environment}}] {{ app.name }}\n Version: {{app.version}}\n {{app.description}}\n \n \n \n \n \n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActiveEnvironmentComponent } from '../common/services/application.do';\nimport { EnvironmentComponentsService } from '../common/services/application.service';\nimport { environment } from '../../environments/environment';\n\n@Component({\n selector: 'app-applications',\n templateUrl: './applications.component.html',\n styleUrls: ['./applications.component.scss']\n})\nexport class ApplicationsComponent implements OnInit {\n\n applications: ActiveEnvironmentComponent[];\n loading = false;\n\n constructor(private environmentComponentsService: EnvironmentComponentsService) { }\n\n ngOnInit(): void {\n this.loading = true;\n this.environmentComponentsService.getActives().subscribe(data => {\n this.applications = data;\n this.loading = false;\n });\n }\n\n getIsDevelopment() {\n return environment.production === false;\n }\n\n onClick(app: ActiveEnvironmentComponent) {\n window.location.href = app.websiteUrl;\n }\n}\n","import { Directive, Input, ElementRef, OnChanges } from '@angular/core';\nimport JSONFormatter from 'json-formatter-js';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'json-formatter'\n})\nexport class JsonformatterDirective implements OnChanges {\n\n @Input() json: unknown;\n @Input() expand: boolean;\n\n constructor(private elRef: ElementRef) { }\n\n ngOnChanges(): void {\n if (this.json) {\n const formatter = new JSONFormatter(this.json);\n while (this.elRef.nativeElement.hasChildNodes()) {\n this.elRef.nativeElement.removeChild(this.elRef.nativeElement.lastChild);\n }\n this.elRef.nativeElement.appendChild(formatter.render());\n if (this.expand) {\n formatter.openAtDepth(Infinity);\n } else {\n formatter.openAtDepth(0);\n }\n }\n }\n\n}\n","
\n
\n \n
\n
\n
\n
\n
\n

{{title}}

\n
\n
\n
\n
{{errorSvc.errors[0].message}}
\n\n
The following errors occurred:
\n\n \n
\n {{ err.message }}\n
\n
\n\n
\n\n
Technical details\n
\n \n \n
\n
\n\n
\n
\n
{{ err.message }}
\n
{{ err.message }}
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DatexErrorService } from './datex-error-service';\n\n@Component({\n selector: 'datex-engine-error',\n templateUrl: './error.component.html'\n})\nexport class ErrorComponent implements OnInit {\n title = 'Application error';\n\n toggleErrorDetails = false;\n\n constructor(\n private router: Router,\n public errorSvc: DatexErrorService) { }\n\n ngOnInit() {\n if (!this.errorSvc.hasErrors) {\n this.router.navigate(['']);\n }\n }\n\n clearErrors() {\n this.errorSvc.clear();\n this.router.navigate(['']);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { MsalGuard, MsalRedirectComponent } from '@azure/msal-angular';\nimport { ApplicationsComponent } from './applications/applications.component';\nimport { ErrorComponent } from './error/error.component';\nimport { canViewStudio } from './common/guards/studio-access.guard';\n\nconst routes: Routes = [\n {\n path: '', redirectTo: 'home', pathMatch: 'full'\n },\n {\n path: 'home', component: ApplicationsComponent, canActivate: [MsalGuard]\n },\n {\n path: 'management',\n loadChildren: () => import('./management/management.module').then(m => m.ManagementModule),\n canActivate: [MsalGuard]\n },\n {\n path: 'studio',\n loadChildren: () => import('./studio/studio.module').then(m => m.StudioModule),\n canActivate: [MsalGuard, canViewStudio]\n },\n { path: 'error', component: ErrorComponent },\n {\n /**\n * Needed for login on page load for PathLocationStrategy.\n * See FAQ for details:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/FAQ.md\n */\n path: 'auth',\n component: MsalRedirectComponent\n }\n];\n\n//const isIframe = window !== window.parent && !window.opener;\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n // enableTracing: true,\n useHash: false,\n // Don't perform initial navigation in iframes\n // initialNavigation: !isIframe ? 'enabledBlocking' : 'disabled'\n initialNavigation: 'enabledBlocking'\n })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n\n","\n \n\n\n
\n \n
\n
\n
AUTHENTICATING \n
\n
\n
","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MsalBroadcastService, MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\nimport { InteractionStatus } from '@azure/msal-browser';\nimport { Title } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { Location } from '@angular/common';\nimport { isNil } from 'lodash-es';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit, OnDestroy {\n\n isLoggedIn = false;\n authenticating = false;\n private readonly _destroying$ = new Subject();\n\n constructor(\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\n private authService: MsalService,\n private msalBroadcastService: MsalBroadcastService,\n private router: Router,\n private location: Location,\n private titleService: Title\n ) { }\n\n ngOnInit(): void {\n /**\n * You can subscribe to MSAL events as shown below. For more info,\n * visit: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/events.md\n */\n\n this.setAppTitle();\n\n this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.setAppTitle();\n });\n\n this.msalBroadcastService.inProgress$\n .pipe(\n filter((status: InteractionStatus) => status === InteractionStatus.None),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.authenticating = false;\n this.setIsLoggedIn();\n });\n\n this.msalBroadcastService.inProgress$\n .pipe(\n filter((status: InteractionStatus) => status !== InteractionStatus.None),\n takeUntil(this._destroying$)\n )\n .subscribe(() => {\n this.authenticating = true;\n });\n }\n\n setIsLoggedIn() {\n this.isLoggedIn = this.authService.instance.getAllAccounts().length > 0;\n if (this.isLoggedIn) {\n // if no current active account, default it to first\n if (isNil(this.authService.instance.getActiveAccount())) {\n this.authService.instance.setActiveAccount(this.authService.instance.getAllAccounts()[0]);\n }\n\n console.log('url', this.location.path());\n if (!this.location.path()) {\n this.router.navigate(['home']);\n }\n }\n }\n\n private isEmail(email: string) {\n const regex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return regex.test(email);\n }\n\n setAppTitle() {\n const currentPath = this.location.path();\n if (currentPath.includes('studio')) {\n this.titleService.setTitle('Datex Studio');\n } else {\n this.titleService.setTitle('Datex Manager');\n }\n }\n\n onLoginClicked() {\n this.authService.loginRedirect();\n }\n\n // unsubscribe to events when component is destroyed\n ngOnDestroy(): void {\n this._destroying$.next(undefined);\n this._destroying$.complete();\n }\n\n}\n","
\n
\n

{{data.title}}

\n
\n
\n
\n\n
\n
{{data.message}}
\n\n \n
\n {{ msg }}\n
\n
\n\n
\n
\n {{data.messageListDetailsSectionTitle}}\n
\n \n \n
\n
\n\n
\n
\n
{{ detail.message }}
\n \n
\n Error:\n \n
\n
\n
\n
\n\n
\n\n
\n
\n
\n \n
\n
","import {\n Component,\n Inject\n} from '@angular/core';\n\nimport {\n MatLegacyDialogRef as MatDialogRef,\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA\n} from '@angular/material/legacy-dialog';\n\nimport { isNil, isEmpty } from 'lodash-es';\n\nexport interface IErrorDialogComponentData {\n title: string;\n message: string;\n messageList: string[];\n messageListDetailsSectionTitle: string;\n messageListDetails: { message: string; detail: string; }[];\n}\n@Component({\n selector: 'app-error-dialog',\n templateUrl: './error-dialog.component.html'\n})\nexport class ErrorDialogComponent {\n\n toggleMessageListDetails = false;\n messageListDetails: { message: string, detail: string }[] = [];\n messageListDetailsJSON: unknown[] = [];\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: IErrorDialogComponentData) {\n\n this.messageListDetailsJSON = [];\n data.messageListDetails?.forEach(d => this.addMessageListDetails(d));\n\n }\n\n addMessage(message: string, detail: string) {\n if (this.messageListDetails?.length === 1) {\n this.data.message = 'The following errors occurred:';\n this.data.messageList = [this.messageListDetails[0]?.message];\n }\n this.data?.messageList.push(message);\n this.addMessageListDetails({ message, detail });\n }\n\n addMessageListDetails(detail: { message: string, detail: string }) {\n this.messageListDetails.push(detail);\n if (isNil(detail.detail) === false && isEmpty(detail.detail) === false) {\n try {\n const json = JSON.parse(detail.detail);\n this.messageListDetailsJSON.push(json);\n } catch {\n // unable to parse it, put the string directly\n this.messageListDetailsJSON.push(detail.detail);\n }\n }\n }\n\n hasMessageDetails() {\n return this.messageListDetails && this.messageListDetails.length > 0;\n }\n\n onCloseClicked() {\n this.dialogRef.close();\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector, NgZone } from '@angular/core';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogConfig as MatDialogConfig, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { Router } from '@angular/router';\nimport { ErrorDialogComponent, IErrorDialogComponentData } from './error-dialog.component';\nimport { DatexErrorInfo } from './datex-error-info';\nimport { DatexErrorService } from './datex-error-service';\n\n@Injectable()\nexport class DatexErrorHandler extends ErrorHandler {\n private readonly errorDialogId = 'BA6DF506-CC7F-495E-B5D2-25AE879187E9';\n private processingChangeDetectionError = false;\n\n constructor(protected injector: Injector) {\n super();\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n override handleError(error: any) {\n // call base handleError which will log in the console\n super.handleError(error);\n try {\n // try to unwrap the error, because zone.js wraps (by default) uncaught promise errors, see \n // https://github.com/angular/angular/issues/27840\n if (error.promise && error.rejection) {\n error = error.rejection;\n }\n if (!error) {\n return;\n }\n\n if (this.isMSALError(error) || this.isAbortError(error)) {\n // swallow - do nothing, MSAL will handle 401/403 responses\n } else {\n const errorInfo = new DatexErrorInfo(error);\n\n // we need the NgZone to run inside it, because this method (handleError of ErrorHandler)\n // is usually called within a zone.runOutsideAngular\n const ngZone = this.injector.get(NgZone);\n const router = this.injector.get(Router);\n const dialog = this.injector.get(MatDialog);\n\n if (this.isChangeDetectionError(error)) {\n if (this.processingChangeDetectionError) {\n return;\n }\n this.processingChangeDetectionError = true;\n const errorsService = this.injector.get(DatexErrorService);\n errorsService.add(error);\n ngZone.run(() => {\n // force close all dialogs, since they can be the source of the error\n dialog.closeAll();\n router.navigateByUrl('/error');\n });\n setTimeout(() => {\n this.processingChangeDetectionError = false;\n }, 100);\n } else {\n // try and find an existing error dialog\n let errorDialogRef: MatDialogRef;\n if (dialog.openDialogs && dialog.openDialogs.length) {\n errorDialogRef = dialog.openDialogs.find(t => t.id === this.errorDialogId);\n // if componentInstance is null, the dialog has been closed already\n if (errorDialogRef && !errorDialogRef.componentInstance) {\n ngZone.run(() => {\n // just to be sure\n errorDialogRef.close();\n });\n errorDialogRef = null;\n }\n }\n\n if (errorDialogRef) {\n ngZone.run(() => {\n errorDialogRef.componentInstance.addMessage(errorInfo?.message, errorInfo?.detail);\n });\n } else {\n const modalConfig: MatDialogConfig = {\n id: this.errorDialogId,\n panelClass: 'popup-message',\n backdropClass: 'datex-backdrop',\n data: {\n title: 'General error',\n message: errorInfo.message,\n messageList: null,\n messageListDetailsSectionTitle: 'Technical details',\n messageListDetails: [{ message: errorInfo?.message, detail: errorInfo?.detail }]\n } as IErrorDialogComponentData\n };\n ngZone.run(() => {\n dialog.open(ErrorDialogComponent, modalConfig);\n });\n }\n }\n }\n } catch (e) {\n this.processingChangeDetectionError = false;\n console.error('Error while handling error inside ErrorsHandler:');\n console.error(e);\n }\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n isChangeDetectionError(error: any) {\n // SOME errors that happen during CD can cause an infinite error loop if we try to do anything\n // with the UI (because another CD cycle will start)\n // hence we want to specially handle those, but currently there isn't a good way to distinguish such errors, see:\n // https://github.com/angular/angular/issues/17010 , https://github.com/angular/angular/issues/38933\n return error instanceof TypeError;\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n isAbortError(error: any) {\n return error instanceof DOMException && error.name === 'AbortError';\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n isMSALError(error: any) {\n return error instanceof HttpErrorResponse && (error.status === 401 || error.status === 403);\n }\n}\n","import { ErrorHandler, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport {\n IPublicClientApplication,\n PublicClientApplication,\n InteractionType\n} from '@azure/msal-browser';\n\nimport {\n MsalGuard,\n MsalBroadcastService,\n MsalModule,\n MsalService,\n MSAL_GUARD_CONFIG,\n MSAL_INSTANCE,\n MsalGuardConfiguration,\n MsalRedirectComponent,\n MsalInterceptorConfiguration,\n MsalInterceptor,\n MSAL_INTERCEPTOR_CONFIG\n} from '@azure/msal-angular';\n\nimport { msalConfig, protectedResources } from './auth-config';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { ApplicationsComponent } from './applications/applications.component';\n\nimport { SharedModule } from './common/shared.module';\nimport { DatexErrorHandler } from './error/datex-error-handler';\nimport { ErrorComponent } from './error/error.component';\nimport { ErrorDialogComponent } from './error/error-dialog.component';\n\nimport { ToastrModule } from 'ngx-toastr';\n\n/**\n * Here we pass the configuration parameters to create an MSAL instance.\n * For more info, visit:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/configuration.md\n */\nexport function MSALInstanceFactory(): IPublicClientApplication {\n return new PublicClientApplication(msalConfig);\n}\n\n/**\n * Set your default interaction type for MSALGuard here. If you have any\n * additional scopes you want the user to consent upon login, add them here as well.\n */\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\n return {\n interactionType: InteractionType.Redirect\n };\n}\n\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\n const protectedResourceMap = new Map>();\n\n protectedResourceMap.set(protectedResources.datexApplicationApi.endpoint, protectedResources.datexApplicationApi.scopes);\n\n return {\n interactionType: InteractionType.Popup,\n protectedResourceMap,\n // this is to be able to set the authority dynamically based on the account tenant\n // In a B2B use case, the user can be a guest user in another AAD. In that case,\n // we want the authority to be the other tenant AAD. So we authenticate against\n // the other tenant and not the home tenant\n authRequest: (msalService, httpReq, req) => {\n return {\n ...req,\n // authority is where to request token from\n authority: `https://login.microsoftonline.com/${req.account?.tenantId ?? 'organizations'}`\n };\n }\n };\n}\n@NgModule({\n declarations: [\n AppComponent,\n ApplicationsComponent,\n ErrorComponent,\n ErrorDialogComponent\n ],\n imports: [\n AppRoutingModule,\n BrowserModule,\n BrowserAnimationsModule,\n SharedModule,\n MsalModule,\n\n\n ToastrModule.forRoot(),\n ],\n providers: [\n {\n provide: ErrorHandler,\n useClass: DatexErrorHandler\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MsalInterceptor,\n multi: true\n },\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALInstanceFactory\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALGuardConfigFactory\n },\n {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useFactory: MSALInterceptorConfigFactory\n },\n\n MsalService,\n MsalGuard,\n MsalBroadcastService\n ],\n bootstrap: [AppComponent, MsalRedirectComponent]\n})\nexport class AppModule {\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { Core } from '@mescius/activereportsjs';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nimport 'codemirror/lib/codemirror';\nimport 'codemirror/mode/xml/xml';\nimport 'codemirror/mode/javascript/javascript';\n// for future reference addons can be added for more functions for example lint, \n// although some of them require extra packages to be installed or else you will get an error\n// example: import 'codemirror/addon/lint/lint';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n\nCore.setLicenseKey(environment.mesciusLicenseKey);\n","var map = {\n\t\"./af\": 35528,\n\t\"./af.js\": 35528,\n\t\"./ar\": 1036,\n\t\"./ar-dz\": 17579,\n\t\"./ar-dz.js\": 17579,\n\t\"./ar-kw\": 69588,\n\t\"./ar-kw.js\": 69588,\n\t\"./ar-ly\": 11650,\n\t\"./ar-ly.js\": 11650,\n\t\"./ar-ma\": 93258,\n\t\"./ar-ma.js\": 93258,\n\t\"./ar-sa\": 54085,\n\t\"./ar-sa.js\": 54085,\n\t\"./ar-tn\": 90287,\n\t\"./ar-tn.js\": 90287,\n\t\"./ar.js\": 1036,\n\t\"./az\": 89757,\n\t\"./az.js\": 89757,\n\t\"./be\": 59620,\n\t\"./be.js\": 59620,\n\t\"./bg\": 31139,\n\t\"./bg.js\": 31139,\n\t\"./bm\": 4042,\n\t\"./bm.js\": 4042,\n\t\"./bn\": 19641,\n\t\"./bn-bd\": 19126,\n\t\"./bn-bd.js\": 19126,\n\t\"./bn.js\": 19641,\n\t\"./bo\": 494,\n\t\"./bo.js\": 494,\n\t\"./br\": 20934,\n\t\"./br.js\": 20934,\n\t\"./bs\": 26274,\n\t\"./bs.js\": 26274,\n\t\"./ca\": 45831,\n\t\"./ca.js\": 45831,\n\t\"./cs\": 92354,\n\t\"./cs.js\": 92354,\n\t\"./cv\": 79692,\n\t\"./cv.js\": 79692,\n\t\"./cy\": 58774,\n\t\"./cy.js\": 58774,\n\t\"./da\": 38955,\n\t\"./da.js\": 38955,\n\t\"./de\": 21557,\n\t\"./de-at\": 24954,\n\t\"./de-at.js\": 24954,\n\t\"./de-ch\": 81881,\n\t\"./de-ch.js\": 81881,\n\t\"./de.js\": 21557,\n\t\"./dv\": 16475,\n\t\"./dv.js\": 16475,\n\t\"./el\": 38877,\n\t\"./el.js\": 38877,\n\t\"./en-au\": 70454,\n\t\"./en-au.js\": 70454,\n\t\"./en-ca\": 67356,\n\t\"./en-ca.js\": 67356,\n\t\"./en-gb\": 10456,\n\t\"./en-gb.js\": 10456,\n\t\"./en-ie\": 28789,\n\t\"./en-ie.js\": 28789,\n\t\"./en-il\": 85471,\n\t\"./en-il.js\": 85471,\n\t\"./en-in\": 39664,\n\t\"./en-in.js\": 39664,\n\t\"./en-nz\": 97672,\n\t\"./en-nz.js\": 97672,\n\t\"./en-sg\": 80805,\n\t\"./en-sg.js\": 80805,\n\t\"./eo\": 87390,\n\t\"./eo.js\": 87390,\n\t\"./es\": 1564,\n\t\"./es-do\": 51473,\n\t\"./es-do.js\": 51473,\n\t\"./es-mx\": 92089,\n\t\"./es-mx.js\": 92089,\n\t\"./es-us\": 84156,\n\t\"./es-us.js\": 84156,\n\t\"./es.js\": 1564,\n\t\"./et\": 6513,\n\t\"./et.js\": 6513,\n\t\"./eu\": 7856,\n\t\"./eu.js\": 7856,\n\t\"./fa\": 2378,\n\t\"./fa.js\": 2378,\n\t\"./fi\": 22687,\n\t\"./fi.js\": 22687,\n\t\"./fil\": 80032,\n\t\"./fil.js\": 80032,\n\t\"./fo\": 46845,\n\t\"./fo.js\": 46845,\n\t\"./fr\": 8875,\n\t\"./fr-ca\": 56425,\n\t\"./fr-ca.js\": 56425,\n\t\"./fr-ch\": 41746,\n\t\"./fr-ch.js\": 41746,\n\t\"./fr.js\": 8875,\n\t\"./fy\": 67037,\n\t\"./fy.js\": 67037,\n\t\"./ga\": 11217,\n\t\"./ga.js\": 11217,\n\t\"./gd\": 37010,\n\t\"./gd.js\": 37010,\n\t\"./gl\": 51931,\n\t\"./gl.js\": 51931,\n\t\"./gom-deva\": 64488,\n\t\"./gom-deva.js\": 64488,\n\t\"./gom-latn\": 8032,\n\t\"./gom-latn.js\": 8032,\n\t\"./gu\": 34984,\n\t\"./gu.js\": 34984,\n\t\"./he\": 69090,\n\t\"./he.js\": 69090,\n\t\"./hi\": 42085,\n\t\"./hi.js\": 42085,\n\t\"./hr\": 38787,\n\t\"./hr.js\": 38787,\n\t\"./hu\": 2901,\n\t\"./hu.js\": 2901,\n\t\"./hy-am\": 59819,\n\t\"./hy-am.js\": 59819,\n\t\"./id\": 44074,\n\t\"./id.js\": 44074,\n\t\"./is\": 70715,\n\t\"./is.js\": 70715,\n\t\"./it\": 31746,\n\t\"./it-ch\": 77040,\n\t\"./it-ch.js\": 77040,\n\t\"./it.js\": 31746,\n\t\"./ja\": 3180,\n\t\"./ja.js\": 3180,\n\t\"./jv\": 34346,\n\t\"./jv.js\": 34346,\n\t\"./ka\": 65538,\n\t\"./ka.js\": 65538,\n\t\"./kk\": 79772,\n\t\"./kk.js\": 79772,\n\t\"./km\": 87905,\n\t\"./km.js\": 87905,\n\t\"./kn\": 79125,\n\t\"./kn.js\": 79125,\n\t\"./ko\": 69140,\n\t\"./ko.js\": 69140,\n\t\"./ku\": 2354,\n\t\"./ku.js\": 2354,\n\t\"./ky\": 63768,\n\t\"./ky.js\": 63768,\n\t\"./lb\": 14016,\n\t\"./lb.js\": 14016,\n\t\"./lo\": 83169,\n\t\"./lo.js\": 83169,\n\t\"./lt\": 62353,\n\t\"./lt.js\": 62353,\n\t\"./lv\": 83243,\n\t\"./lv.js\": 83243,\n\t\"./me\": 52338,\n\t\"./me.js\": 52338,\n\t\"./mi\": 35555,\n\t\"./mi.js\": 35555,\n\t\"./mk\": 85794,\n\t\"./mk.js\": 85794,\n\t\"./ml\": 53151,\n\t\"./ml.js\": 53151,\n\t\"./mn\": 46458,\n\t\"./mn.js\": 46458,\n\t\"./mr\": 69165,\n\t\"./mr.js\": 69165,\n\t\"./ms\": 8680,\n\t\"./ms-my\": 87477,\n\t\"./ms-my.js\": 87477,\n\t\"./ms.js\": 8680,\n\t\"./mt\": 79684,\n\t\"./mt.js\": 79684,\n\t\"./my\": 40285,\n\t\"./my.js\": 40285,\n\t\"./nb\": 45922,\n\t\"./nb.js\": 45922,\n\t\"./ne\": 29040,\n\t\"./ne.js\": 29040,\n\t\"./nl\": 5066,\n\t\"./nl-be\": 74460,\n\t\"./nl-be.js\": 74460,\n\t\"./nl.js\": 5066,\n\t\"./nn\": 53693,\n\t\"./nn.js\": 53693,\n\t\"./oc-lnc\": 88676,\n\t\"./oc-lnc.js\": 88676,\n\t\"./pa-in\": 92341,\n\t\"./pa-in.js\": 92341,\n\t\"./pl\": 57416,\n\t\"./pl.js\": 57416,\n\t\"./pt\": 84344,\n\t\"./pt-br\": 30113,\n\t\"./pt-br.js\": 30113,\n\t\"./pt.js\": 84344,\n\t\"./ro\": 72643,\n\t\"./ro.js\": 72643,\n\t\"./ru\": 61305,\n\t\"./ru.js\": 61305,\n\t\"./sd\": 96095,\n\t\"./sd.js\": 96095,\n\t\"./se\": 74486,\n\t\"./se.js\": 74486,\n\t\"./si\": 58742,\n\t\"./si.js\": 58742,\n\t\"./sk\": 96722,\n\t\"./sk.js\": 96722,\n\t\"./sl\": 3345,\n\t\"./sl.js\": 3345,\n\t\"./sq\": 52416,\n\t\"./sq.js\": 52416,\n\t\"./sr\": 39450,\n\t\"./sr-cyrl\": 50501,\n\t\"./sr-cyrl.js\": 50501,\n\t\"./sr.js\": 39450,\n\t\"./ss\": 32222,\n\t\"./ss.js\": 32222,\n\t\"./sv\": 9454,\n\t\"./sv.js\": 9454,\n\t\"./sw\": 19638,\n\t\"./sw.js\": 19638,\n\t\"./ta\": 96494,\n\t\"./ta.js\": 96494,\n\t\"./te\": 94435,\n\t\"./te.js\": 94435,\n\t\"./tet\": 25003,\n\t\"./tet.js\": 25003,\n\t\"./tg\": 13706,\n\t\"./tg.js\": 13706,\n\t\"./th\": 16025,\n\t\"./th.js\": 16025,\n\t\"./tk\": 59780,\n\t\"./tk.js\": 59780,\n\t\"./tl-ph\": 22068,\n\t\"./tl-ph.js\": 22068,\n\t\"./tlh\": 39167,\n\t\"./tlh.js\": 39167,\n\t\"./tr\": 32494,\n\t\"./tr.js\": 32494,\n\t\"./tzl\": 58707,\n\t\"./tzl.js\": 58707,\n\t\"./tzm\": 91296,\n\t\"./tzm-latn\": 34532,\n\t\"./tzm-latn.js\": 34532,\n\t\"./tzm.js\": 91296,\n\t\"./ug-cn\": 12086,\n\t\"./ug-cn.js\": 12086,\n\t\"./uk\": 85069,\n\t\"./uk.js\": 85069,\n\t\"./ur\": 29304,\n\t\"./ur.js\": 29304,\n\t\"./uz\": 95115,\n\t\"./uz-latn\": 97609,\n\t\"./uz-latn.js\": 97609,\n\t\"./uz.js\": 95115,\n\t\"./vi\": 34802,\n\t\"./vi.js\": 34802,\n\t\"./x-pseudo\": 65605,\n\t\"./x-pseudo.js\": 65605,\n\t\"./yo\": 88456,\n\t\"./yo.js\": 88456,\n\t\"./zh-cn\": 23272,\n\t\"./zh-cn.js\": 23272,\n\t\"./zh-hk\": 9402,\n\t\"./zh-hk.js\": 9402,\n\t\"./zh-mo\": 48101,\n\t\"./zh-mo.js\": 48101,\n\t\"./zh-tw\": 40262,\n\t\"./zh-tw.js\": 40262\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"x_google_ignoreList":[24]}