{"version":3,"sources":["node_modules/@auth0/angular-jwt/fesm2020/auth0-angular-jwt.mjs","node_modules/@ngrx/store-devtools/fesm2022/ngrx-store-devtools.mjs","node_modules/deepmerge-ts/dist/node/index.mjs","node_modules/ngx-translate-multi-http-loader/fesm2022/ngx-translate-multi-http-loader.mjs","src/app/components/toast/toast-message.component.ts","src/app/components/toast/toast-message.component.html","src/app/shared/data/state/subscription.state.model.ts","src/app/app.component.ts","src/app/app.component.html","src/app/app.initializer.ts","src/app/pages/error/subscription-access-denied/subscription-access-denied.component.ts","src/app/pages/error/subscription-access-denied/subscription-access-denied.component.html","src/app/pages/error/generic-error-page/generic-error-page.types.ts","src/app/pages/error/system-down-error-page/system-down-error-page.component.ts","src/app/shared/misc/terms/terms.component.ts","src/app/shared/misc/terms/terms.component.html","src/app/dashboard/layout/main-content/main-content.component.ts","src/app/dashboard/layout/main-content/main-content.component.html","src/app/pages/join-demo/join-demo.component.ts","src/app/pages/join-demo/join-demo.component.html","src/app/pages/navigation/application-id/application-id.page.ts","src/app/pages/navigation/application-id/application-id.page.html","src/app/pages/navigation/subscription-id/subscription-id.page.ts","src/app/pages/navigation/subscription-id/subscription-id.page.html","src/app/app.routes.ts","src/app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/number/number.component.ts","src/app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/number/number.component.html","src/app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/radio/radio.component.ts","src/app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/radio/radio.component.html","src/app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/textfield/textfield.component.ts","src/app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/textfield/textfield.component.html","src/app/dashboard/integrations/custom/addl/state/subscription/subscription.effects.ts","src/app/dashboard/integrations/custom/addl/shared/services/handle-error.service.ts","src/app/dashboard/integrations/custom/addl/shared/interceptors/http/http-response.interceptor.ts","src/app/interceptors/http/blob.interceptor.ts","src/app/interceptors/http/request-header.interceptor.ts","src/app/interceptors/http/response-code.interceptor.ts","src/app/interceptors/http/index.ts","src/app/shared/data/effects/app.effects.ts","src/app/shared/data/effects/co-pilot.effects.ts","src/app/shared/services/application-metadata.service.ts","src/app/shared/services/maintenance.service.ts","src/app/shared/data/effects/context.effects.ts","src/app/shared/data/effects/interface.effects.ts","src/app/shared/services/subscription.service.ts","src/app/shared/services/view.service.ts","src/app/shared/services/catalogue.service.ts","src/app/shared/services/credentials.service.ts","src/app/shared/data/effects/subscription.effects.ts","src/app/shared/data/effects/user.effects.ts","src/app/dashboard/integrations/custom/addl/state/subscription/subscription.reducer.ts","src/app/shared/data/reducers/co-pilot.reducer.ts","src/app/shared/data/reducers/context.reducer.ts","src/app/shared/data/reducers/interface.reducer.ts","src/app/shared/data/reducers/subscription.reducer.ts","src/app/shared/data/reducers/user.reducer.ts","src/app/shared/data/reducers/index.ts","src/app/shared/services/custom-oauth2-storage.service.ts","src/main.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { defer, of } from 'rxjs';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nconst JWT_OPTIONS = new InjectionToken('JWT_OPTIONS');\n\n/* eslint-disable no-bitwise */\nlet JwtHelperService = /*#__PURE__*/(() => {\n class JwtHelperService {\n constructor(config = null) {\n this.tokenGetter = config && config.tokenGetter || function () {};\n }\n urlBase64Decode(str) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n {\n break;\n }\n case 2:\n {\n output += '==';\n break;\n }\n case 3:\n {\n output += '=';\n break;\n }\n default:\n {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n // credits for decoder goes to https://github.com/atk\n b64decode(str) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n str = String(str).replace(/=+$/, '');\n if (str.length % 4 === 1) {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n for (\n // initialize result and counters\n let bc = 0, bs, buffer, idx = 0;\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n b64DecodeUnicode(str) {\n return decodeURIComponent(Array.prototype.map.call(this.b64decode(str), c => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n }\n decodeToken(token = this.tokenGetter()) {\n if (token instanceof Promise) {\n return token.then(t => this._decodeToken(t));\n }\n return this._decodeToken(token);\n }\n _decodeToken(token) {\n if (!token || token === '') {\n return null;\n }\n const parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error(`The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.`);\n }\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n return JSON.parse(decoded);\n }\n getTokenExpirationDate(token = this.tokenGetter()) {\n if (token instanceof Promise) {\n return token.then(t => this._getTokenExpirationDate(t));\n }\n return this._getTokenExpirationDate(token);\n }\n _getTokenExpirationDate(token) {\n let decoded;\n decoded = this.decodeToken(token);\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date;\n }\n isTokenExpired(token = this.tokenGetter(), offsetSeconds) {\n if (token instanceof Promise) {\n return token.then(t => this._isTokenExpired(t, offsetSeconds));\n }\n return this._isTokenExpired(token, offsetSeconds);\n }\n _isTokenExpired(token, offsetSeconds) {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n if (date === null) {\n return false;\n }\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n getAuthScheme(authScheme, request) {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n return authScheme;\n }\n }\n JwtHelperService.ɵfac = function JwtHelperService_Factory(t) {\n return new (t || JwtHelperService)(i0.ɵɵinject(JWT_OPTIONS));\n };\n JwtHelperService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: JwtHelperService,\n factory: JwtHelperService.ɵfac\n });\n return JwtHelperService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst fromPromiseOrValue = input => {\n if (input instanceof Promise) {\n return defer(() => input);\n }\n return of(input);\n};\nlet JwtInterceptor = /*#__PURE__*/(() => {\n class JwtInterceptor {\n constructor(config, jwtHelper, document) {\n this.jwtHelper = jwtHelper;\n this.document = document;\n this.standardPorts = ['80', '443'];\n this.tokenGetter = config.tokenGetter;\n this.headerName = config.headerName || 'Authorization';\n this.authScheme = config.authScheme || config.authScheme === '' ? config.authScheme : 'Bearer ';\n this.allowedDomains = config.allowedDomains || [];\n this.disallowedRoutes = config.disallowedRoutes || [];\n this.throwNoTokenError = config.throwNoTokenError || false;\n this.skipWhenExpired = config.skipWhenExpired;\n }\n isAllowedDomain(request) {\n const requestUrl = new URL(request.url, this.document.location.origin);\n // If the host equals the current window origin,\n // the domain is allowed by default\n if (requestUrl.host === this.document.location.host) {\n return true;\n }\n // If not the current domain, check the allowed list\n const hostName = `${requestUrl.hostname}${requestUrl.port && !this.standardPorts.includes(requestUrl.port) ? ':' + requestUrl.port : ''}`;\n return this.allowedDomains.findIndex(domain => typeof domain === 'string' ? domain === hostName : domain instanceof RegExp ? domain.test(hostName) : false) > -1;\n }\n isDisallowedRoute(request) {\n const requestedUrl = new URL(request.url, this.document.location.origin);\n return this.disallowedRoutes.findIndex(route => {\n if (typeof route === 'string') {\n const parsedRoute = new URL(route, this.document.location.origin);\n return parsedRoute.hostname === requestedUrl.hostname && parsedRoute.pathname === requestedUrl.pathname;\n }\n if (route instanceof RegExp) {\n return route.test(request.url);\n }\n return false;\n }) > -1;\n }\n handleInterception(token, request, next) {\n const authScheme = this.jwtHelper.getAuthScheme(this.authScheme, request);\n if (!token && this.throwNoTokenError) {\n throw new Error('Could not get token from tokenGetter function.');\n }\n let tokenIsExpired = of(false);\n if (this.skipWhenExpired) {\n tokenIsExpired = token ? fromPromiseOrValue(this.jwtHelper.isTokenExpired(token)) : of(true);\n }\n if (token) {\n return tokenIsExpired.pipe(map(isExpired => isExpired && this.skipWhenExpired ? request.clone() : request.clone({\n setHeaders: {\n [this.headerName]: `${authScheme}${token}`\n }\n })), mergeMap(innerRequest => next.handle(innerRequest)));\n }\n return next.handle(request);\n }\n intercept(request, next) {\n if (!this.isAllowedDomain(request) || this.isDisallowedRoute(request)) {\n return next.handle(request);\n }\n const token = this.tokenGetter(request);\n return fromPromiseOrValue(token).pipe(mergeMap(asyncToken => {\n return this.handleInterception(asyncToken, request, next);\n }));\n }\n }\n JwtInterceptor.ɵfac = function JwtInterceptor_Factory(t) {\n return new (t || JwtInterceptor)(i0.ɵɵinject(JWT_OPTIONS), i0.ɵɵinject(JwtHelperService), i0.ɵɵinject(DOCUMENT));\n };\n JwtInterceptor.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: JwtInterceptor,\n factory: JwtInterceptor.ɵfac\n });\n return JwtInterceptor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet JwtModule = /*#__PURE__*/(() => {\n class JwtModule {\n constructor(parentModule) {\n if (parentModule) {\n throw new Error(`JwtModule is already loaded. It should only be imported in your application's main module.`);\n }\n }\n static forRoot(options) {\n return {\n ngModule: JwtModule,\n providers: [{\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true\n }, options.jwtOptionsProvider || {\n provide: JWT_OPTIONS,\n useValue: options.config\n }, JwtHelperService]\n };\n }\n }\n JwtModule.ɵfac = function JwtModule_Factory(t) {\n return new (t || JwtModule)(i0.ɵɵinject(JwtModule, 12));\n };\n JwtModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: JwtModule\n });\n JwtModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return JwtModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of angular-jwt\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { JWT_OPTIONS, JwtHelperService, JwtInterceptor, JwtModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, NgZone, inject, Injectable, Inject, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport * as i2 from '@ngrx/store';\nimport { ActionsSubject, UPDATE, INIT, INITIAL_STATE, StateObservable, ReducerManagerDispatcher } from '@ngrx/store';\nimport { EMPTY, Observable, of, queueScheduler, merge, ReplaySubject } from 'rxjs';\nimport { share, filter, map, timeout, debounceTime, catchError, take, concatMap, takeUntil, switchMap, observeOn, skip, withLatestFrom, scan } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\nconst PERFORM_ACTION = 'PERFORM_ACTION';\nconst REFRESH = 'REFRESH';\nconst RESET = 'RESET';\nconst ROLLBACK = 'ROLLBACK';\nconst COMMIT = 'COMMIT';\nconst SWEEP = 'SWEEP';\nconst TOGGLE_ACTION = 'TOGGLE_ACTION';\nconst SET_ACTIONS_ACTIVE = 'SET_ACTIONS_ACTIVE';\nconst JUMP_TO_STATE = 'JUMP_TO_STATE';\nconst JUMP_TO_ACTION = 'JUMP_TO_ACTION';\nconst IMPORT_STATE = 'IMPORT_STATE';\nconst LOCK_CHANGES = 'LOCK_CHANGES';\nconst PAUSE_RECORDING = 'PAUSE_RECORDING';\nclass PerformAction {\n constructor(action, timestamp) {\n this.action = action;\n this.timestamp = timestamp;\n this.type = PERFORM_ACTION;\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n }\n}\nclass Refresh {\n constructor() {\n this.type = REFRESH;\n }\n}\nclass Reset {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = RESET;\n }\n}\nclass Rollback {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = ROLLBACK;\n }\n}\nclass Commit {\n constructor(timestamp) {\n this.timestamp = timestamp;\n this.type = COMMIT;\n }\n}\nclass Sweep {\n constructor() {\n this.type = SWEEP;\n }\n}\nclass ToggleAction {\n constructor(id) {\n this.id = id;\n this.type = TOGGLE_ACTION;\n }\n}\nclass SetActionsActive {\n constructor(start, end, active = true) {\n this.start = start;\n this.end = end;\n this.active = active;\n this.type = SET_ACTIONS_ACTIVE;\n }\n}\nclass JumpToState {\n constructor(index) {\n this.index = index;\n this.type = JUMP_TO_STATE;\n }\n}\nclass JumpToAction {\n constructor(actionId) {\n this.actionId = actionId;\n this.type = JUMP_TO_ACTION;\n }\n}\nclass ImportState {\n constructor(nextLiftedState) {\n this.nextLiftedState = nextLiftedState;\n this.type = IMPORT_STATE;\n }\n}\nclass LockChanges {\n constructor(status) {\n this.status = status;\n this.type = LOCK_CHANGES;\n }\n}\nclass PauseRecording {\n constructor(status) {\n this.status = status;\n this.type = PAUSE_RECORDING;\n }\n}\n\n/**\n * Chrome extension documentation\n * @see https://github.com/reduxjs/redux-devtools/blob/main/extension/docs/API/Arguments.md\n * Firefox extension documentation\n * @see https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md\n */\nclass StoreDevtoolsConfig {\n constructor() {\n /**\n * Maximum allowed actions to be stored in the history tree (default: `false`)\n */\n this.maxAge = false;\n }\n}\nconst STORE_DEVTOOLS_CONFIG = new InjectionToken('@ngrx/store-devtools Options');\n/**\n * Used to provide a `StoreDevtoolsConfig` for the store-devtools.\n */\nconst INITIAL_OPTIONS = new InjectionToken('@ngrx/store-devtools Initial Config');\nfunction noMonitor() {\n return null;\n}\nconst DEFAULT_NAME = 'NgRx Store DevTools';\nfunction createConfig(optionsInput) {\n const DEFAULT_OPTIONS = {\n maxAge: false,\n monitor: noMonitor,\n actionSanitizer: undefined,\n stateSanitizer: undefined,\n name: DEFAULT_NAME,\n serialize: false,\n logOnly: false,\n autoPause: false,\n trace: false,\n traceLimit: 75,\n // Add all features explicitly. This prevent buggy behavior for\n // options like \"lock\" which might otherwise not show up.\n features: {\n pause: true,\n lock: true,\n persist: true,\n export: true,\n import: 'custom',\n jump: true,\n skip: true,\n reorder: true,\n dispatch: true,\n test: true // Generate tests for the selected actions\n },\n\n connectInZone: false\n };\n const options = typeof optionsInput === 'function' ? optionsInput() : optionsInput;\n const logOnly = options.logOnly ? {\n pause: true,\n export: true,\n test: true\n } : false;\n const features = options.features || logOnly || DEFAULT_OPTIONS.features;\n if (features.import === true) {\n features.import = 'custom';\n }\n const config = Object.assign({}, DEFAULT_OPTIONS, {\n features\n }, options);\n if (config.maxAge && config.maxAge < 2) {\n throw new Error(`Devtools 'maxAge' cannot be less than 2, got ${config.maxAge}`);\n }\n return config;\n}\nfunction difference(first, second) {\n return first.filter(item => second.indexOf(item) < 0);\n}\n/**\n * Provides an app's view into the state of the lifted store.\n */\nfunction unliftState(liftedState) {\n const {\n computedStates,\n currentStateIndex\n } = liftedState;\n // At start up NgRx dispatches init actions,\n // When these init actions are being filtered out by the predicate or safe/block list options\n // we don't have a complete computed states yet.\n // At this point it could happen that we're out of bounds, when this happens we fall back to the last known state\n if (currentStateIndex >= computedStates.length) {\n const {\n state\n } = computedStates[computedStates.length - 1];\n return state;\n }\n const {\n state\n } = computedStates[currentStateIndex];\n return state;\n}\nfunction unliftAction(liftedState) {\n return liftedState.actionsById[liftedState.nextActionId - 1];\n}\n/**\n * Lifts an app's action into an action on the lifted store.\n */\nfunction liftAction(action) {\n return new PerformAction(action, +Date.now());\n}\n/**\n * Sanitizes given actions with given function.\n */\nfunction sanitizeActions(actionSanitizer, actions) {\n return Object.keys(actions).reduce((sanitizedActions, actionIdx) => {\n const idx = Number(actionIdx);\n sanitizedActions[idx] = sanitizeAction(actionSanitizer, actions[idx], idx);\n return sanitizedActions;\n }, {});\n}\n/**\n * Sanitizes given action with given function.\n */\nfunction sanitizeAction(actionSanitizer, action, actionIdx) {\n return {\n ...action,\n action: actionSanitizer(action.action, actionIdx)\n };\n}\n/**\n * Sanitizes given states with given function.\n */\nfunction sanitizeStates(stateSanitizer, states) {\n return states.map((computedState, idx) => ({\n state: sanitizeState(stateSanitizer, computedState.state, idx),\n error: computedState.error\n }));\n}\n/**\n * Sanitizes given state with given function.\n */\nfunction sanitizeState(stateSanitizer, state, stateIdx) {\n return stateSanitizer(state, stateIdx);\n}\n/**\n * Read the config and tell if actions should be filtered\n */\nfunction shouldFilterActions(config) {\n return config.predicate || config.actionsSafelist || config.actionsBlocklist;\n}\n/**\n * Return a full filtered lifted state\n */\nfunction filterLiftedState(liftedState, predicate, safelist, blocklist) {\n const filteredStagedActionIds = [];\n const filteredActionsById = {};\n const filteredComputedStates = [];\n liftedState.stagedActionIds.forEach((id, idx) => {\n const liftedAction = liftedState.actionsById[id];\n if (!liftedAction) return;\n if (idx && isActionFiltered(liftedState.computedStates[idx], liftedAction, predicate, safelist, blocklist)) {\n return;\n }\n filteredActionsById[id] = liftedAction;\n filteredStagedActionIds.push(id);\n filteredComputedStates.push(liftedState.computedStates[idx]);\n });\n return {\n ...liftedState,\n stagedActionIds: filteredStagedActionIds,\n actionsById: filteredActionsById,\n computedStates: filteredComputedStates\n };\n}\n/**\n * Return true is the action should be ignored\n */\nfunction isActionFiltered(state, action, predicate, safelist, blockedlist) {\n const predicateMatch = predicate && !predicate(state, action.action);\n const safelistMatch = safelist && !action.action.type.match(safelist.map(s => escapeRegExp(s)).join('|'));\n const blocklistMatch = blockedlist && action.action.type.match(blockedlist.map(s => escapeRegExp(s)).join('|'));\n return predicateMatch || safelistMatch || blocklistMatch;\n}\n/**\n * Return string with escaped RegExp special characters\n * https://stackoverflow.com/a/6969486/1337347\n */\nfunction escapeRegExp(s) {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nfunction injectZoneConfig(connectInZone) {\n const ngZone = connectInZone ? inject(NgZone) : null;\n return {\n ngZone,\n connectInZone\n };\n}\nlet DevtoolsDispatcher = /*#__PURE__*/(() => {\n class DevtoolsDispatcher extends ActionsSubject {\n /** @nocollapse */static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵDevtoolsDispatcher_BaseFactory;\n return function DevtoolsDispatcher_Factory(t) {\n return (ɵDevtoolsDispatcher_BaseFactory || (ɵDevtoolsDispatcher_BaseFactory = i0.ɵɵgetInheritedFactory(DevtoolsDispatcher)))(t || DevtoolsDispatcher);\n };\n })();\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DevtoolsDispatcher,\n factory: DevtoolsDispatcher.ɵfac\n });\n }\n }\n return DevtoolsDispatcher;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst ExtensionActionTypes = {\n START: 'START',\n DISPATCH: 'DISPATCH',\n STOP: 'STOP',\n ACTION: 'ACTION'\n};\nconst REDUX_DEVTOOLS_EXTENSION = new InjectionToken('@ngrx/store-devtools Redux Devtools Extension');\nlet DevtoolsExtension = /*#__PURE__*/(() => {\n class DevtoolsExtension {\n constructor(devtoolsExtension, config, dispatcher) {\n this.config = config;\n this.dispatcher = dispatcher;\n this.zoneConfig = injectZoneConfig(this.config.connectInZone);\n this.devtoolsExtension = devtoolsExtension;\n this.createActionStreams();\n }\n notify(action, state) {\n if (!this.devtoolsExtension) {\n return;\n }\n // Check to see if the action requires a full update of the liftedState.\n // If it is a simple action generated by the user's app and the recording\n // is not locked/paused, only send the action and the current state (fast).\n //\n // A full liftedState update (slow: serializes the entire liftedState) is\n // only required when:\n // a) redux-devtools-extension fires the @@Init action (ignored by\n // @ngrx/store-devtools)\n // b) an action is generated by an @ngrx module (e.g. @ngrx/effects/init\n // or @ngrx/store/update-reducers)\n // c) the state has been recomputed due to time-traveling\n // d) any action that is not a PerformAction to err on the side of\n // caution.\n if (action.type === PERFORM_ACTION) {\n if (state.isLocked || state.isPaused) {\n return;\n }\n const currentState = unliftState(state);\n if (shouldFilterActions(this.config) && isActionFiltered(currentState, action, this.config.predicate, this.config.actionsSafelist, this.config.actionsBlocklist)) {\n return;\n }\n const sanitizedState = this.config.stateSanitizer ? sanitizeState(this.config.stateSanitizer, currentState, state.currentStateIndex) : currentState;\n const sanitizedAction = this.config.actionSanitizer ? sanitizeAction(this.config.actionSanitizer, action, state.nextActionId) : action;\n this.sendToReduxDevtools(() => this.extensionConnection.send(sanitizedAction, sanitizedState));\n } else {\n // Requires full state update\n const sanitizedLiftedState = {\n ...state,\n stagedActionIds: state.stagedActionIds,\n actionsById: this.config.actionSanitizer ? sanitizeActions(this.config.actionSanitizer, state.actionsById) : state.actionsById,\n computedStates: this.config.stateSanitizer ? sanitizeStates(this.config.stateSanitizer, state.computedStates) : state.computedStates\n };\n this.sendToReduxDevtools(() => this.devtoolsExtension.send(null, sanitizedLiftedState, this.getExtensionConfig(this.config)));\n }\n }\n createChangesObservable() {\n if (!this.devtoolsExtension) {\n return EMPTY;\n }\n return new Observable(subscriber => {\n const connection = this.zoneConfig.connectInZone ?\n // To reduce change detection cycles, we need to run the `connect` method\n // outside of the Angular zone. The `connect` method adds a `message`\n // event listener to communicate with an extension using `window.postMessage`\n // and handle message events.\n this.zoneConfig.ngZone.runOutsideAngular(() => this.devtoolsExtension.connect(this.getExtensionConfig(this.config))) : this.devtoolsExtension.connect(this.getExtensionConfig(this.config));\n this.extensionConnection = connection;\n connection.init();\n connection.subscribe(change => subscriber.next(change));\n return connection.unsubscribe;\n });\n }\n createActionStreams() {\n // Listens to all changes\n const changes$ = this.createChangesObservable().pipe(share());\n // Listen for the start action\n const start$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.START));\n // Listen for the stop action\n const stop$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.STOP));\n // Listen for lifted actions\n const liftedActions$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.DISPATCH), map(change => this.unwrapAction(change.payload)), concatMap(action => {\n if (action.type === IMPORT_STATE) {\n // State imports may happen in two situations:\n // 1. Explicitly by user\n // 2. User activated the \"persist state accross reloads\" option\n // and now the state is imported during reload.\n // Because of option 2, we need to give possible\n // lazy loaded reducers time to instantiate.\n // As soon as there is no UPDATE action within 1 second,\n // it is assumed that all reducers are loaded.\n return this.dispatcher.pipe(filter(action => action.type === UPDATE), timeout(1000), debounceTime(1000), map(() => action), catchError(() => of(action)), take(1));\n } else {\n return of(action);\n }\n }));\n // Listen for unlifted actions\n const actions$ = changes$.pipe(filter(change => change.type === ExtensionActionTypes.ACTION), map(change => this.unwrapAction(change.payload)));\n const actionsUntilStop$ = actions$.pipe(takeUntil(stop$));\n const liftedUntilStop$ = liftedActions$.pipe(takeUntil(stop$));\n this.start$ = start$.pipe(takeUntil(stop$));\n // Only take the action sources between the start/stop events\n this.actions$ = this.start$.pipe(switchMap(() => actionsUntilStop$));\n this.liftedActions$ = this.start$.pipe(switchMap(() => liftedUntilStop$));\n }\n unwrapAction(action) {\n return typeof action === 'string' ? eval(`(${action})`) : action;\n }\n getExtensionConfig(config) {\n const extensionOptions = {\n name: config.name,\n features: config.features,\n serialize: config.serialize,\n autoPause: config.autoPause ?? false,\n trace: config.trace ?? false,\n traceLimit: config.traceLimit ?? 75\n // The action/state sanitizers are not added to the config\n // because sanitation is done in this class already.\n // It is done before sending it to the devtools extension for consistency:\n // - If we call extensionConnection.send(...),\n // the extension would call the sanitizers.\n // - If we call devtoolsExtension.send(...) (aka full state update),\n // the extension would NOT call the sanitizers, so we have to do it ourselves.\n };\n\n if (config.maxAge !== false /* support === 0 */) {\n extensionOptions.maxAge = config.maxAge;\n }\n return extensionOptions;\n }\n sendToReduxDevtools(send) {\n try {\n send();\n } catch (err) {\n console.warn('@ngrx/store-devtools: something went wrong inside the redux devtools', err);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function DevtoolsExtension_Factory(t) {\n return new (t || DevtoolsExtension)(i0.ɵɵinject(REDUX_DEVTOOLS_EXTENSION), i0.ɵɵinject(STORE_DEVTOOLS_CONFIG), i0.ɵɵinject(DevtoolsDispatcher));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DevtoolsExtension,\n factory: DevtoolsExtension.ɵfac\n });\n }\n }\n return DevtoolsExtension;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst INIT_ACTION = {\n type: INIT\n};\nconst RECOMPUTE = '@ngrx/store-devtools/recompute';\nconst RECOMPUTE_ACTION = {\n type: RECOMPUTE\n};\n/**\n * Computes the next entry in the log by applying an action.\n */\nfunction computeNextEntry(reducer, action, state, error, errorHandler) {\n if (error) {\n return {\n state,\n error: 'Interrupted by an error up the chain'\n };\n }\n let nextState = state;\n let nextError;\n try {\n nextState = reducer(state, action);\n } catch (err) {\n nextError = err.toString();\n errorHandler.handleError(err);\n }\n return {\n state: nextState,\n error: nextError\n };\n}\n/**\n * Runs the reducer on invalidated actions to get a fresh computation log.\n */\nfunction recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused) {\n // Optimization: exit early and return the same reference\n // if we know nothing could have changed.\n if (minInvalidatedStateIndex >= computedStates.length && computedStates.length === stagedActionIds.length) {\n return computedStates;\n }\n const nextComputedStates = computedStates.slice(0, minInvalidatedStateIndex);\n // If the recording is paused, recompute all states up until the pause state,\n // else recompute all states.\n const lastIncludedActionId = stagedActionIds.length - (isPaused ? 1 : 0);\n for (let i = minInvalidatedStateIndex; i < lastIncludedActionId; i++) {\n const actionId = stagedActionIds[i];\n const action = actionsById[actionId].action;\n const previousEntry = nextComputedStates[i - 1];\n const previousState = previousEntry ? previousEntry.state : committedState;\n const previousError = previousEntry ? previousEntry.error : undefined;\n const shouldSkip = skippedActionIds.indexOf(actionId) > -1;\n const entry = shouldSkip ? previousEntry : computeNextEntry(reducer, action, previousState, previousError, errorHandler);\n nextComputedStates.push(entry);\n }\n // If the recording is paused, the last state will not be recomputed,\n // because it's essentially not part of the state history.\n if (isPaused) {\n nextComputedStates.push(computedStates[computedStates.length - 1]);\n }\n return nextComputedStates;\n}\nfunction liftInitialState(initialCommittedState, monitorReducer) {\n return {\n monitorState: monitorReducer(undefined, {}),\n nextActionId: 1,\n actionsById: {\n 0: liftAction(INIT_ACTION)\n },\n stagedActionIds: [0],\n skippedActionIds: [],\n committedState: initialCommittedState,\n currentStateIndex: 0,\n computedStates: [],\n isLocked: false,\n isPaused: false\n };\n}\n/**\n * Creates a history state reducer from an app's reducer.\n */\nfunction liftReducerWith(initialCommittedState, initialLiftedState, errorHandler, monitorReducer, options = {}) {\n /**\n * Manages how the history actions modify the history state.\n */\n return reducer => (liftedState, liftedAction) => {\n let {\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused\n } = liftedState || initialLiftedState;\n if (!liftedState) {\n // Prevent mutating initialLiftedState\n actionsById = Object.create(actionsById);\n }\n function commitExcessActions(n) {\n // Auto-commits n-number of excess actions.\n let excess = n;\n let idsToDelete = stagedActionIds.slice(1, excess + 1);\n for (let i = 0; i < idsToDelete.length; i++) {\n if (computedStates[i + 1].error) {\n // Stop if error is found. Commit actions up to error.\n excess = i;\n idsToDelete = stagedActionIds.slice(1, excess + 1);\n break;\n } else {\n delete actionsById[idsToDelete[i]];\n }\n }\n skippedActionIds = skippedActionIds.filter(id => idsToDelete.indexOf(id) === -1);\n stagedActionIds = [0, ...stagedActionIds.slice(excess + 1)];\n committedState = computedStates[excess].state;\n computedStates = computedStates.slice(excess);\n currentStateIndex = currentStateIndex > excess ? currentStateIndex - excess : 0;\n }\n function commitChanges() {\n // Consider the last committed state the new starting point.\n // Squash any staged actions into a single committed state.\n actionsById = {\n 0: liftAction(INIT_ACTION)\n };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = computedStates[currentStateIndex].state;\n currentStateIndex = 0;\n computedStates = [];\n }\n // By default, aggressively recompute every state whatever happens.\n // This has O(n) performance, so we'll override this to a sensible\n // value whenever we feel like we don't have to recompute the states.\n let minInvalidatedStateIndex = 0;\n switch (liftedAction.type) {\n case LOCK_CHANGES:\n {\n isLocked = liftedAction.status;\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case PAUSE_RECORDING:\n {\n isPaused = liftedAction.status;\n if (isPaused) {\n // Add a pause action to signal the devtools-user the recording is paused.\n // The corresponding state will be overwritten on each update to always contain\n // the latest state (see Actions.PERFORM_ACTION).\n stagedActionIds = [...stagedActionIds, nextActionId];\n actionsById[nextActionId] = new PerformAction({\n type: '@ngrx/devtools/pause'\n }, +Date.now());\n nextActionId++;\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n computedStates = computedStates.concat(computedStates[computedStates.length - 1]);\n if (currentStateIndex === stagedActionIds.length - 2) {\n currentStateIndex++;\n }\n minInvalidatedStateIndex = Infinity;\n } else {\n commitChanges();\n }\n break;\n }\n case RESET:\n {\n // Get back to the state the store was created with.\n actionsById = {\n 0: liftAction(INIT_ACTION)\n };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n committedState = initialCommittedState;\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case COMMIT:\n {\n commitChanges();\n break;\n }\n case ROLLBACK:\n {\n // Forget about any staged actions.\n // Start again from the last committed state.\n actionsById = {\n 0: liftAction(INIT_ACTION)\n };\n nextActionId = 1;\n stagedActionIds = [0];\n skippedActionIds = [];\n currentStateIndex = 0;\n computedStates = [];\n break;\n }\n case TOGGLE_ACTION:\n {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n const {\n id: actionId\n } = liftedAction;\n const index = skippedActionIds.indexOf(actionId);\n if (index === -1) {\n skippedActionIds = [actionId, ...skippedActionIds];\n } else {\n skippedActionIds = skippedActionIds.filter(id => id !== actionId);\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(actionId);\n break;\n }\n case SET_ACTIONS_ACTIVE:\n {\n // Toggle whether an action with given ID is skipped.\n // Being skipped means it is a no-op during the computation.\n const {\n start,\n end,\n active\n } = liftedAction;\n const actionIds = [];\n for (let i = start; i < end; i++) actionIds.push(i);\n if (active) {\n skippedActionIds = difference(skippedActionIds, actionIds);\n } else {\n skippedActionIds = [...skippedActionIds, ...actionIds];\n }\n // Optimization: we know history before this action hasn't changed\n minInvalidatedStateIndex = stagedActionIds.indexOf(start);\n break;\n }\n case JUMP_TO_STATE:\n {\n // Without recomputing anything, move the pointer that tell us\n // which state is considered the current one. Useful for sliders.\n currentStateIndex = liftedAction.index;\n // Optimization: we know the history has not changed.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case JUMP_TO_ACTION:\n {\n // Jumps to a corresponding state to a specific action.\n // Useful when filtering actions.\n const index = stagedActionIds.indexOf(liftedAction.actionId);\n if (index !== -1) currentStateIndex = index;\n minInvalidatedStateIndex = Infinity;\n break;\n }\n case SWEEP:\n {\n // Forget any actions that are currently being skipped.\n stagedActionIds = difference(stagedActionIds, skippedActionIds);\n skippedActionIds = [];\n currentStateIndex = Math.min(currentStateIndex, stagedActionIds.length - 1);\n break;\n }\n case PERFORM_ACTION:\n {\n // Ignore action and return state as is if recording is locked\n if (isLocked) {\n return liftedState || initialLiftedState;\n }\n if (isPaused || liftedState && isActionFiltered(liftedState.computedStates[currentStateIndex], liftedAction, options.predicate, options.actionsSafelist, options.actionsBlocklist)) {\n // If recording is paused or if the action should be ignored, overwrite the last state\n // (corresponds to the pause action) and keep everything else as is.\n // This way, the app gets the new current state while the devtools\n // do not record another action.\n const lastState = computedStates[computedStates.length - 1];\n computedStates = [...computedStates.slice(0, -1), computeNextEntry(reducer, liftedAction.action, lastState.state, lastState.error, errorHandler)];\n minInvalidatedStateIndex = Infinity;\n break;\n }\n // Auto-commit as new actions come in.\n if (options.maxAge && stagedActionIds.length === options.maxAge) {\n commitExcessActions(1);\n }\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n const actionId = nextActionId++;\n // Mutation! This is the hottest path, and we optimize on purpose.\n // It is safe because we set a new key in a cache dictionary.\n actionsById[actionId] = liftedAction;\n stagedActionIds = [...stagedActionIds, actionId];\n // Optimization: we know that only the new action needs computing.\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n break;\n }\n case IMPORT_STATE:\n {\n // Completely replace everything.\n ({\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused\n } = liftedAction.nextLiftedState);\n break;\n }\n case INIT:\n {\n // Always recompute states on hot reload and init.\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n case UPDATE:\n {\n const stateHasErrors = computedStates.filter(state => state.error).length > 0;\n if (stateHasErrors) {\n // Recompute all states\n minInvalidatedStateIndex = 0;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n // States must be recomputed before committing excess.\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n commitExcessActions(stagedActionIds.length - options.maxAge);\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n } else {\n // If not paused/locked, add a new action to signal devtools-user\n // that there was a reducer update.\n if (!isPaused && !isLocked) {\n if (currentStateIndex === stagedActionIds.length - 1) {\n currentStateIndex++;\n }\n // Add a new action to only recompute state\n const actionId = nextActionId++;\n actionsById[actionId] = new PerformAction(liftedAction, +Date.now());\n stagedActionIds = [...stagedActionIds, actionId];\n minInvalidatedStateIndex = stagedActionIds.length - 1;\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n }\n // Recompute state history with latest reducer and update action\n computedStates = computedStates.map(cmp => ({\n ...cmp,\n state: reducer(cmp.state, RECOMPUTE_ACTION)\n }));\n currentStateIndex = stagedActionIds.length - 1;\n if (options.maxAge && stagedActionIds.length > options.maxAge) {\n commitExcessActions(stagedActionIds.length - options.maxAge);\n }\n // Avoid double computation.\n minInvalidatedStateIndex = Infinity;\n }\n break;\n }\n default:\n {\n // If the action is not recognized, it's a monitor action.\n // Optimization: a monitor action can't change history.\n minInvalidatedStateIndex = Infinity;\n break;\n }\n }\n computedStates = recomputeStates(computedStates, minInvalidatedStateIndex, reducer, committedState, actionsById, stagedActionIds, skippedActionIds, errorHandler, isPaused);\n monitorState = monitorReducer(monitorState, liftedAction);\n return {\n monitorState,\n actionsById,\n nextActionId,\n stagedActionIds,\n skippedActionIds,\n committedState,\n currentStateIndex,\n computedStates,\n isLocked,\n isPaused\n };\n };\n}\nlet StoreDevtools = /*#__PURE__*/(() => {\n class StoreDevtools {\n constructor(dispatcher, actions$, reducers$, extension, scannedActions, errorHandler, initialState, config) {\n const liftedInitialState = liftInitialState(initialState, config.monitor);\n const liftReducer = liftReducerWith(initialState, liftedInitialState, errorHandler, config.monitor, config);\n const liftedAction$ = merge(merge(actions$.asObservable().pipe(skip(1)), extension.actions$).pipe(map(liftAction)), dispatcher, extension.liftedActions$).pipe(observeOn(queueScheduler));\n const liftedReducer$ = reducers$.pipe(map(liftReducer));\n const zoneConfig = injectZoneConfig(config.connectInZone);\n const liftedStateSubject = new ReplaySubject(1);\n this.liftedStateSubscription = liftedAction$.pipe(withLatestFrom(liftedReducer$),\n // The extension would post messages back outside of the Angular zone\n // because we call `connect()` wrapped with `runOutsideAngular`. We run change\n // detection only once at the end after all the required asynchronous tasks have\n // been processed (for instance, `setInterval` scheduled by the `timeout` operator).\n // We have to re-enter the Angular zone before the `scan` since it runs the reducer\n // which must be run within the Angular zone.\n emitInZone(zoneConfig), scan(({\n state: liftedState\n }, [action, reducer]) => {\n let reducedLiftedState = reducer(liftedState, action);\n // On full state update\n // If we have actions filters, we must filter completely our lifted state to be sync with the extension\n if (action.type !== PERFORM_ACTION && shouldFilterActions(config)) {\n reducedLiftedState = filterLiftedState(reducedLiftedState, config.predicate, config.actionsSafelist, config.actionsBlocklist);\n }\n // Extension should be sent the sanitized lifted state\n extension.notify(action, reducedLiftedState);\n return {\n state: reducedLiftedState,\n action\n };\n }, {\n state: liftedInitialState,\n action: null\n })).subscribe(({\n state,\n action\n }) => {\n liftedStateSubject.next(state);\n if (action.type === PERFORM_ACTION) {\n const unliftedAction = action.action;\n scannedActions.next(unliftedAction);\n }\n });\n this.extensionStartSubscription = extension.start$.pipe(emitInZone(zoneConfig)).subscribe(() => {\n this.refresh();\n });\n const liftedState$ = liftedStateSubject.asObservable();\n const state$ = liftedState$.pipe(map(unliftState));\n Object.defineProperty(state$, 'state', {\n value: toSignal(state$, {\n manualCleanup: true,\n requireSync: true\n })\n });\n this.dispatcher = dispatcher;\n this.liftedState = liftedState$;\n this.state = state$;\n }\n ngOnDestroy() {\n // Even though the store devtools plugin is recommended to be\n // used only in development mode, it can still cause a memory leak\n // in microfrontend applications that are being created and destroyed\n // multiple times during development. This results in excessive memory\n // consumption, as it prevents entire apps from being garbage collected.\n this.liftedStateSubscription.unsubscribe();\n this.extensionStartSubscription.unsubscribe();\n }\n dispatch(action) {\n this.dispatcher.next(action);\n }\n next(action) {\n this.dispatcher.next(action);\n }\n error(error) {}\n complete() {}\n performAction(action) {\n this.dispatch(new PerformAction(action, +Date.now()));\n }\n refresh() {\n this.dispatch(new Refresh());\n }\n reset() {\n this.dispatch(new Reset(+Date.now()));\n }\n rollback() {\n this.dispatch(new Rollback(+Date.now()));\n }\n commit() {\n this.dispatch(new Commit(+Date.now()));\n }\n sweep() {\n this.dispatch(new Sweep());\n }\n toggleAction(id) {\n this.dispatch(new ToggleAction(id));\n }\n jumpToAction(actionId) {\n this.dispatch(new JumpToAction(actionId));\n }\n jumpToState(index) {\n this.dispatch(new JumpToState(index));\n }\n importState(nextLiftedState) {\n this.dispatch(new ImportState(nextLiftedState));\n }\n lockChanges(status) {\n this.dispatch(new LockChanges(status));\n }\n pauseRecording(status) {\n this.dispatch(new PauseRecording(status));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreDevtools_Factory(t) {\n return new (t || StoreDevtools)(i0.ɵɵinject(DevtoolsDispatcher), i0.ɵɵinject(i2.ActionsSubject), i0.ɵɵinject(i2.ReducerObservable), i0.ɵɵinject(DevtoolsExtension), i0.ɵɵinject(i2.ScannedActionsSubject), i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(INITIAL_STATE), i0.ɵɵinject(STORE_DEVTOOLS_CONFIG));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StoreDevtools,\n factory: StoreDevtools.ɵfac\n });\n }\n }\n return StoreDevtools;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * If the devtools extension is connected out of the Angular zone,\n * this operator will emit all events within the zone.\n */\nfunction emitInZone({\n ngZone,\n connectInZone\n}) {\n return source => connectInZone ? new Observable(subscriber => source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: error => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete())\n })) : source;\n}\nconst IS_EXTENSION_OR_MONITOR_PRESENT = new InjectionToken('@ngrx/store-devtools Is Devtools Extension or Monitor Present');\nfunction createIsExtensionOrMonitorPresent(extension, config) {\n return Boolean(extension) || config.monitor !== noMonitor;\n}\nfunction createReduxDevtoolsExtension() {\n const extensionKey = '__REDUX_DEVTOOLS_EXTENSION__';\n if (typeof window === 'object' && typeof window[extensionKey] !== 'undefined') {\n return window[extensionKey];\n } else {\n return null;\n }\n}\n/**\n * Provides developer tools and instrumentation for `Store`.\n *\n * @usageNotes\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideStoreDevtools({\n * maxAge: 25,\n * logOnly: !isDevMode(),\n * }),\n * ],\n * });\n * ```\n */\nfunction provideStoreDevtools(options = {}) {\n return makeEnvironmentProviders([DevtoolsExtension, DevtoolsDispatcher, StoreDevtools, {\n provide: INITIAL_OPTIONS,\n useValue: options\n }, {\n provide: IS_EXTENSION_OR_MONITOR_PRESENT,\n deps: [REDUX_DEVTOOLS_EXTENSION, STORE_DEVTOOLS_CONFIG],\n useFactory: createIsExtensionOrMonitorPresent\n }, {\n provide: REDUX_DEVTOOLS_EXTENSION,\n useFactory: createReduxDevtoolsExtension\n }, {\n provide: STORE_DEVTOOLS_CONFIG,\n deps: [INITIAL_OPTIONS],\n useFactory: createConfig\n }, {\n provide: StateObservable,\n deps: [StoreDevtools],\n useFactory: createStateObservable\n }, {\n provide: ReducerManagerDispatcher,\n useExisting: DevtoolsDispatcher\n }]);\n}\nfunction createStateObservable(devtools) {\n return devtools.state;\n}\nlet StoreDevtoolsModule = /*#__PURE__*/(() => {\n class StoreDevtoolsModule {\n static instrument(options = {}) {\n return {\n ngModule: StoreDevtoolsModule,\n providers: [provideStoreDevtools(options)]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function StoreDevtoolsModule_Factory(t) {\n return new (t || StoreDevtoolsModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StoreDevtoolsModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return StoreDevtoolsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INITIAL_OPTIONS, RECOMPUTE, REDUX_DEVTOOLS_EXTENSION, StoreDevtools, StoreDevtoolsConfig, StoreDevtoolsModule, provideStoreDevtools };\n","/**\n * Special values that tell deepmerge to perform a certain action.\n */\nconst actions = {\n defaultMerge: Symbol(\"deepmerge-ts: default merge\"),\n skip: Symbol(\"deepmerge-ts: skip\")\n};\n/**\n * Special values that tell deepmergeInto to perform a certain action.\n */\nconst actionsInto = {\n defaultMerge: actions.defaultMerge\n};\n\n/**\n * The default function to update meta data.\n */\nfunction defaultMetaDataUpdater(previousMeta, metaMeta) {\n return metaMeta;\n}\n\n/**\n * Get the type of the given object.\n *\n * @param object - The object to get the type of.\n * @returns The type of the given object.\n */\nfunction getObjectType(object) {\n if (typeof object !== \"object\" || object === null) {\n return 0 /* ObjectType.NOT */;\n }\n\n if (Array.isArray(object)) {\n return 2 /* ObjectType.ARRAY */;\n }\n\n if (isRecord(object)) {\n return 1 /* ObjectType.RECORD */;\n }\n\n if (object instanceof Set) {\n return 3 /* ObjectType.SET */;\n }\n\n if (object instanceof Map) {\n return 4 /* ObjectType.MAP */;\n }\n\n return 5 /* ObjectType.OTHER */;\n}\n/**\n * Get the keys of the given objects including symbol keys.\n *\n * Note: Only keys to enumerable properties are returned.\n *\n * @param objects - An array of objects to get the keys of.\n * @returns A set containing all the keys of all the given objects.\n */\nfunction getKeys(objects) {\n const keys = new Set();\n /* eslint-disable functional/no-loop-statements, functional/no-expression-statements -- using a loop here is more efficient. */\n for (const object of objects) {\n for (const key of [...Object.keys(object), ...Object.getOwnPropertySymbols(object)]) {\n keys.add(key);\n }\n }\n /* eslint-enable functional/no-loop-statements, functional/no-expression-statements */\n return keys;\n}\n/**\n * Does the given object have the given property.\n *\n * @param object - The object to test.\n * @param property - The property to test.\n * @returns Whether the object has the property.\n */\nfunction objectHasProperty(object, property) {\n return typeof object === \"object\" && Object.prototype.propertyIsEnumerable.call(object, property);\n}\n/**\n * Get an iterable object that iterates over the given iterables.\n */\nfunction getIterableOfIterables(iterables) {\n return {\n // eslint-disable-next-line functional/functional-parameters\n *[Symbol.iterator]() {\n // eslint-disable-next-line functional/no-loop-statements\n for (const iterable of iterables) {\n // eslint-disable-next-line functional/no-loop-statements\n for (const value of iterable) {\n yield value;\n }\n }\n }\n };\n}\nconst validRecordToStringValues = new Set([\"[object Object]\", \"[object Module]\"]);\n/**\n * Does the given object appear to be a record.\n */\nfunction isRecord(value) {\n // All records are objects.\n if (!validRecordToStringValues.has(Object.prototype.toString.call(value))) {\n return false;\n }\n const {\n constructor\n } = value;\n // If has modified constructor.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (constructor === undefined) {\n return true;\n }\n // eslint-disable-next-line prefer-destructuring\n const prototype = constructor.prototype;\n // If has modified prototype.\n if (prototype === null || typeof prototype !== \"object\" || !validRecordToStringValues.has(Object.prototype.toString.call(prototype))) {\n return false;\n }\n // If constructor does not have an Object-specific method.\n // eslint-disable-next-line sonarjs/prefer-single-boolean-return, no-prototype-builtins\n if (!prototype.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n // Most likely a record.\n return true;\n}\n\n/**\n * The default strategy to merge records.\n *\n * @param values - The records.\n */\nfunction mergeRecords$2(values, utils, meta) {\n const result = {};\n /* eslint-disable functional/no-loop-statements, functional/no-conditional-statements, functional/no-expression-statements, functional/immutable-data -- using imperative code here is more performant. */\n for (const key of getKeys(values)) {\n const propValues = [];\n for (const value of values) {\n if (objectHasProperty(value, key)) {\n propValues.push(value[key]);\n }\n }\n if (propValues.length === 0) {\n continue;\n }\n const updatedMeta = utils.metaDataUpdater(meta, {\n key,\n parents: values\n });\n const propertyResult = mergeUnknowns(propValues, utils, updatedMeta);\n if (propertyResult === actions.skip) {\n continue;\n }\n if (key === \"__proto__\") {\n Object.defineProperty(result, key, {\n value: propertyResult,\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n result[key] = propertyResult;\n }\n }\n /* eslint-enable functional/no-loop-statements, functional/no-conditional-statements, functional/no-expression-statements, functional/immutable-data */\n return result;\n}\n/**\n * The default strategy to merge arrays.\n *\n * @param values - The arrays.\n */\nfunction mergeArrays$2(values) {\n return values.flat();\n}\n/**\n * The default strategy to merge sets.\n *\n * @param values - The sets.\n */\nfunction mergeSets$2(values) {\n return new Set(getIterableOfIterables(values));\n}\n/**\n * The default strategy to merge maps.\n *\n * @param values - The maps.\n */\nfunction mergeMaps$2(values) {\n return new Map(getIterableOfIterables(values));\n}\n/**\n * Get the last value in the given array.\n */\nfunction mergeOthers$2(values) {\n return values.at(-1);\n}\nvar defaultMergeFunctions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mergeArrays: mergeArrays$2,\n mergeMaps: mergeMaps$2,\n mergeOthers: mergeOthers$2,\n mergeRecords: mergeRecords$2,\n mergeSets: mergeSets$2\n});\n\n/**\n * Deeply merge objects.\n *\n * @param objects - The objects to merge.\n */\nfunction deepmerge(\n// eslint-disable-next-line functional/functional-parameters\n...objects) {\n return deepmergeCustom({})(...objects);\n}\nfunction deepmergeCustom(options, rootMetaData) {\n const utils = getUtils(options, customizedDeepmerge);\n /**\n * The customized deepmerge function.\n */\n function customizedDeepmerge(\n // eslint-disable-next-line functional/functional-parameters\n ...objects) {\n return mergeUnknowns(objects, utils, rootMetaData);\n }\n return customizedDeepmerge;\n}\n/**\n * The the utils that are available to the merge functions.\n *\n * @param options - The options the user specified\n */\nfunction getUtils(options, customizedDeepmerge) {\n return {\n defaultMergeFunctions,\n mergeFunctions: {\n ...defaultMergeFunctions,\n ...Object.fromEntries(Object.entries(options).filter(([key, option]) => Object.hasOwn(defaultMergeFunctions, key)).map(([key, option]) => option === false ? [key, mergeOthers$2] : [key, option]))\n },\n metaDataUpdater: options.metaDataUpdater ?? defaultMetaDataUpdater,\n deepmerge: customizedDeepmerge,\n useImplicitDefaultMerging: options.enableImplicitDefaultMerging ?? false,\n actions\n };\n}\n/**\n * Merge unknown things.\n *\n * @param values - The values.\n */\nfunction mergeUnknowns(values, utils, meta) {\n if (values.length === 0) {\n return undefined;\n }\n if (values.length === 1) {\n return mergeOthers$1(values, utils, meta);\n }\n const type = getObjectType(values[0]);\n /* eslint-disable functional/no-loop-statements, functional/no-conditional-statements -- using imperative code here is more performant. */\n if (type !== 0 /* ObjectType.NOT */ && type !== 5 /* ObjectType.OTHER */) {\n for (let m_index = 1; m_index < values.length; m_index++) {\n if (getObjectType(values[m_index]) === type) {\n continue;\n }\n return mergeOthers$1(values, utils, meta);\n }\n }\n /* eslint-enable functional/no-loop-statements, functional/no-conditional-statements */\n switch (type) {\n case 1 /* ObjectType.RECORD */:\n {\n return mergeRecords$1(values, utils, meta);\n }\n case 2 /* ObjectType.ARRAY */:\n {\n return mergeArrays$1(values, utils, meta);\n }\n case 3 /* ObjectType.SET */:\n {\n return mergeSets$1(values, utils, meta);\n }\n case 4 /* ObjectType.MAP */:\n {\n return mergeMaps$1(values, utils, meta);\n }\n default:\n {\n return mergeOthers$1(values, utils, meta);\n }\n }\n}\n/**\n * Merge records.\n *\n * @param values - The records.\n */\nfunction mergeRecords$1(values, utils, meta) {\n const result = utils.mergeFunctions.mergeRecords(values, utils, meta);\n if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === undefined && utils.mergeFunctions.mergeRecords !== utils.defaultMergeFunctions.mergeRecords) {\n return utils.defaultMergeFunctions.mergeRecords(values, utils, meta);\n }\n return result;\n}\n/**\n * Merge arrays.\n *\n * @param values - The arrays.\n */\nfunction mergeArrays$1(values, utils, meta) {\n const result = utils.mergeFunctions.mergeArrays(values, utils, meta);\n if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === undefined && utils.mergeFunctions.mergeArrays !== utils.defaultMergeFunctions.mergeArrays) {\n return utils.defaultMergeFunctions.mergeArrays(values);\n }\n return result;\n}\n/**\n * Merge sets.\n *\n * @param values - The sets.\n */\nfunction mergeSets$1(values, utils, meta) {\n const result = utils.mergeFunctions.mergeSets(values, utils, meta);\n if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === undefined && utils.mergeFunctions.mergeSets !== utils.defaultMergeFunctions.mergeSets) {\n return utils.defaultMergeFunctions.mergeSets(values);\n }\n return result;\n}\n/**\n * Merge maps.\n *\n * @param values - The maps.\n */\nfunction mergeMaps$1(values, utils, meta) {\n const result = utils.mergeFunctions.mergeMaps(values, utils, meta);\n if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === undefined && utils.mergeFunctions.mergeMaps !== utils.defaultMergeFunctions.mergeMaps) {\n return utils.defaultMergeFunctions.mergeMaps(values);\n }\n return result;\n}\n/**\n * Merge other things.\n *\n * @param values - The other things.\n */\nfunction mergeOthers$1(values, utils, meta) {\n const result = utils.mergeFunctions.mergeOthers(values, utils, meta);\n if (result === actions.defaultMerge || utils.useImplicitDefaultMerging && result === undefined && utils.mergeFunctions.mergeOthers !== utils.defaultMergeFunctions.mergeOthers) {\n return utils.defaultMergeFunctions.mergeOthers(values);\n }\n return result;\n}\n\n/**\n * The default strategy to merge records into a target record.\n *\n * @param m_target - The result will be mutated into this record\n * @param values - The records (including the target's value if there is one).\n */\nfunction mergeRecords(m_target, values, utils, meta) {\n for (const key of getKeys(values)) {\n const propValues = [];\n for (const value of values) {\n if (objectHasProperty(value, key)) {\n propValues.push(value[key]);\n }\n }\n if (propValues.length === 0) {\n continue;\n }\n const updatedMeta = utils.metaDataUpdater(meta, {\n key,\n parents: values\n });\n const propertyTarget = {\n value: propValues[0]\n };\n mergeUnknownsInto(propertyTarget, propValues, utils, updatedMeta);\n if (key === \"__proto__\") {\n Object.defineProperty(m_target, key, {\n value: propertyTarget.value,\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n m_target.value[key] = propertyTarget.value;\n }\n }\n}\n/**\n * The default strategy to merge arrays into a target array.\n *\n * @param m_target - The result will be mutated into this array\n * @param values - The arrays (including the target's value if there is one).\n */\nfunction mergeArrays(m_target, values) {\n m_target.value.push(...values.slice(1).flat());\n}\n/**\n * The default strategy to merge sets into a target set.\n *\n * @param m_target - The result will be mutated into this set\n * @param values - The sets (including the target's value if there is one).\n */\nfunction mergeSets(m_target, values) {\n for (const value of getIterableOfIterables(values.slice(1))) {\n m_target.value.add(value);\n }\n}\n/**\n * The default strategy to merge maps into a target map.\n *\n * @param m_target - The result will be mutated into this map\n * @param values - The maps (including the target's value if there is one).\n */\nfunction mergeMaps(m_target, values) {\n for (const [key, value] of getIterableOfIterables(values.slice(1))) {\n m_target.value.set(key, value);\n }\n}\n/**\n * Set the target to the last value.\n */\nfunction mergeOthers(m_target, values) {\n m_target.value = values.at(-1);\n}\nvar defaultMergeIntoFunctions = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mergeArrays: mergeArrays,\n mergeMaps: mergeMaps,\n mergeOthers: mergeOthers,\n mergeRecords: mergeRecords,\n mergeSets: mergeSets\n});\nfunction deepmergeInto(target, ...objects) {\n return void deepmergeIntoCustom({})(target, ...objects);\n}\nfunction deepmergeIntoCustom(options, rootMetaData) {\n const utils = getIntoUtils(options, customizedDeepmergeInto);\n /**\n * The customized deepmerge function.\n */\n function customizedDeepmergeInto(target, ...objects) {\n mergeUnknownsInto({\n value: target\n }, [target, ...objects], utils, rootMetaData);\n }\n return customizedDeepmergeInto;\n}\n/**\n * The the utils that are available to the merge functions.\n *\n * @param options - The options the user specified\n */\nfunction getIntoUtils(options, customizedDeepmergeInto) {\n return {\n defaultMergeFunctions: defaultMergeIntoFunctions,\n mergeFunctions: {\n ...defaultMergeIntoFunctions,\n ...Object.fromEntries(Object.entries(options).filter(([key, option]) => Object.hasOwn(defaultMergeIntoFunctions, key)).map(([key, option]) => option === false ? [key, mergeOthers] : [key, option]))\n },\n metaDataUpdater: options.metaDataUpdater ?? defaultMetaDataUpdater,\n deepmergeInto: customizedDeepmergeInto,\n actions: actionsInto\n };\n}\n/**\n * Merge unknown things into a target.\n *\n * @param m_target - The target to merge into.\n * @param values - The values.\n */\nfunction mergeUnknownsInto(m_target, values, utils, meta\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n) {\n if (values.length === 0) {\n return;\n }\n if (values.length === 1) {\n return void mergeOthersInto(m_target, values, utils, meta);\n }\n const type = getObjectType(m_target.value);\n if (type !== 0 /* ObjectType.NOT */ && type !== 5 /* ObjectType.OTHER */) {\n for (let m_index = 1; m_index < values.length; m_index++) {\n if (getObjectType(values[m_index]) === type) {\n continue;\n }\n return void mergeOthersInto(m_target, values, utils, meta);\n }\n }\n switch (type) {\n case 1 /* ObjectType.RECORD */:\n {\n return void mergeRecordsInto(m_target, values, utils, meta);\n }\n case 2 /* ObjectType.ARRAY */:\n {\n return void mergeArraysInto(m_target, values, utils, meta);\n }\n case 3 /* ObjectType.SET */:\n {\n return void mergeSetsInto(m_target, values, utils, meta);\n }\n case 4 /* ObjectType.MAP */:\n {\n return void mergeMapsInto(m_target, values, utils, meta);\n }\n default:\n {\n return void mergeOthersInto(m_target, values, utils, meta);\n }\n }\n}\n/**\n * Merge records into a target record.\n *\n * @param m_target - The target to merge into.\n * @param values - The records.\n */\nfunction mergeRecordsInto(m_target, values, utils, meta) {\n const action = utils.mergeFunctions.mergeRecords(m_target, values, utils, meta);\n if (action === actionsInto.defaultMerge) {\n utils.defaultMergeFunctions.mergeRecords(m_target, values, utils, meta);\n }\n}\n/**\n * Merge arrays into a target array.\n *\n * @param m_target - The target to merge into.\n * @param values - The arrays.\n */\nfunction mergeArraysInto(m_target, values, utils, meta) {\n const action = utils.mergeFunctions.mergeArrays(m_target, values, utils, meta);\n if (action === actionsInto.defaultMerge) {\n utils.defaultMergeFunctions.mergeArrays(m_target, values);\n }\n}\n/**\n * Merge sets into a target set.\n *\n * @param m_target - The target to merge into.\n * @param values - The sets.\n */\nfunction mergeSetsInto(m_target, values, utils, meta) {\n const action = utils.mergeFunctions.mergeSets(m_target, values, utils, meta);\n if (action === actionsInto.defaultMerge) {\n utils.defaultMergeFunctions.mergeSets(m_target, values);\n }\n}\n/**\n * Merge maps into a target map.\n *\n * @param m_target - The target to merge into.\n * @param values - The maps.\n */\nfunction mergeMapsInto(m_target, values, utils, meta) {\n const action = utils.mergeFunctions.mergeMaps(m_target, values, utils, meta);\n if (action === actionsInto.defaultMerge) {\n utils.defaultMergeFunctions.mergeMaps(m_target, values);\n }\n}\n/**\n * Merge other things into a target.\n *\n * @param m_target - The target to merge into.\n * @param values - The other things.\n */\nfunction mergeOthersInto(m_target, values, utils, meta) {\n const action = utils.mergeFunctions.mergeOthers(m_target, values, utils, meta);\n if (action === actionsInto.defaultMerge || m_target.value === actionsInto.defaultMerge) {\n utils.defaultMergeFunctions.mergeOthers(m_target, values);\n }\n}\nexport { deepmerge, deepmergeCustom, deepmergeInto, deepmergeIntoCustom, getKeys, getObjectType, objectHasProperty };","import { HttpClient } from '@angular/common/http';\nimport { deepmerge } from 'deepmerge-ts';\nimport { of, forkJoin } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nclass MultiTranslateHttpLoader {\n constructor(_handler, _resourcesPrefix) {\n this._handler = _handler;\n this._resourcesPrefix = _resourcesPrefix;\n }\n getTranslation(lang) {\n const requests = this._resourcesPrefix.map(resource => {\n let path;\n if (resource.prefix) path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;else path = `${resource}${lang}.json`;\n return new HttpClient(this._handler).get(path).pipe(catchError(res => {\n if (!resource.optional) {\n console.group();\n console.error('Something went wrong for the following translation file:', path);\n console.error(res);\n console.groupEnd();\n }\n return of({});\n }));\n });\n return forkJoin(requests).pipe(map(response => deepmerge(...response)));\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MultiTranslateHttpLoader };\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport {\n AsyncPipe,\n NgFor,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n} from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ToastMessageInfo, ToastType } from './toast-message.model';\nimport {\n ToastMessageExtended,\n ToastMessageService,\n} from './toast-message.service';\n\n@Component({\n standalone: true,\n selector: 'sdui-toast-notification',\n templateUrl: 'toast-message.component.html',\n styleUrls: ['./toast-message.component.scss'],\n imports: [NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, AsyncPipe],\n})\nexport class ToastMessageComponent implements OnInit {\n @Input() position: string = 'toast-top-right';\n\n notifications: Array = [];\n constructor(private toastMessageService: ToastMessageService) {}\n\n ngOnInit() {\n this.toastMessageService.notifications$.subscribe((notifications) => {\n this.notifications = notifications.slice();\n });\n }\n removeNotification(notification: ToastMessageExtended) {\n this.notifications = this.notifications.filter(\n (n) => n.id !== notification.id\n );\n }\n /**\n * Set css class for Alert -- Called from alert component\n */\n cssClass(notification: ToastMessageInfo) {\n switch (notification.type) {\n case ToastType.Success:\n return 'toast-success';\n case ToastType.Error:\n return 'toast-error';\n case ToastType.Info:\n return 'toast-info';\n case ToastType.Warning:\n return 'toast-warning';\n }\n }\n\n notificationsTrackByFn(index: number, item: ToastMessageExtended) {\n return item.id;\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ item.message }}\n \n \n \n \n \n \n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { IGrafanaDashboards } from '../../models';\nimport { ICatalogue } from '../../models/catalogue.model';\nimport { Credential } from '../../models/credential.model';\nimport { MaintenanceMessage } from '../../models/maintenance.model';\nimport { AppSubscription } from '../../models/subscription.model';\nimport { User } from '../../models/user.model';\nimport { View } from '../../models/view.model';\nimport { AppState } from './app.state.model';\n\nexport interface SubscriptionState {\n subscriptionLoaded: boolean;\n subscription: AppSubscription;\n viewsLoaded: boolean;\n views: View[];\n usersLoaded: boolean;\n users: User[];\n servicesLoaded: boolean;\n services: ICatalogue[];\n credentialsLoaded: boolean;\n credentials: Credential[];\n maintenanceLoaded: boolean;\n maintenanceMsg?: MaintenanceMessage;\n maintenanceSeen: boolean;\n insightProjectsFetcherQuery: string;\n grafanaDashboards: {\n loaded: boolean;\n list: IGrafanaDashboards;\n };\n}\n\nconst dataToLoad = (state: AppState) => [\n state.user.subscriptionsLoaded,\n state.user.profileLoaded,\n state.subscription.subscriptionLoaded,\n state.subscription.viewsLoaded,\n];\n\nexport const subscriptionLoadProgress = (state: AppState) =>\n (dataToLoad(state).filter(Boolean).length / dataToLoad(state).length) * 100;\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { combineLatest, firstValueFrom, map, Observable } from 'rxjs';\nimport { hideLoadingOnPages } from './app.const';\nimport {\n LoadingIndicatorComponent,\n LoadingIndicatorService,\n} from './components';\nimport { ToastMessageComponent } from './components/toast/toast-message.component';\nimport { AppState } from './shared/data/state/app.state.model';\nimport { subscriptionLoadProgress } from './shared/data/state/subscription.state.model';\nimport { SafePipe } from './shared/pipes';\nimport { AuthService } from './shared/services/auth.service';\n\n@Component({\n standalone: true,\n selector: 'app-root',\n templateUrl: './app.component.html',\n imports: [\n RouterOutlet,\n ToastMessageComponent,\n SafePipe,\n NgIf,\n AsyncPipe,\n LoadingIndicatorComponent,\n ],\n})\nexport class AppComponent implements OnInit {\n private hideLoadingOnPages = hideLoadingOnPages.map((p) => `/${p}`);\n private subscriptionLoadProgress$: Observable = this.store$.select(\n subscriptionLoadProgress\n );\n\n private _loadingInProgress$ = combineLatest([\n this.authService.currentUserInfo$,\n this.subscriptionLoadProgress$,\n ]).pipe(\n map(([currentUser, progress]) => {\n return (\n !!(currentUser.profileLoaded && currentUser.profile.id) &&\n progress !== 100 &&\n !this.hideLoadingOnPages.find((p) => location.pathname.includes(p))\n );\n })\n );\n\n constructor(\n private authService: AuthService,\n private store$: Store,\n public loadingIndicatorService: LoadingIndicatorService,\n private translateService: TranslateService\n ) {}\n ngOnInit(): void {\n this._loadingInProgress$.subscribe(async (show) => {\n const message = await firstValueFrom(\n this.translateService.get('loading.subscriptionChange')\n );\n this.loadingIndicatorService.changeConfig({ show, message });\n });\n }\n}\n","\n\n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AuthService } from './shared/services/auth.service';\n\nexport function initializeAppFactory(\n authService: AuthService\n): () => Promise {\n return () => {\n return authService.redirectToPageBasedOnLoginState();\n };\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule, I18nSelectPipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { UpdateInterfaceTitle } from 'src/app/shared/data/actions/interface.actions';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { PublicAppConfig } from 'src/app/shared/models/public-app-config.model';\nimport { AppSubscription } from 'src/app/shared/models/subscription.model';\nimport { ViewMenuItem } from 'src/app/shared/models/view.model';\n\nimport { HeaderComponent } from '../../../dashboard/layout/dashboard-header/dashboard-header.component';\nimport { PublicFooterComponent } from '../../../global/layout/public-footer/public-footer.component';\nimport { MenuService } from '../../../shared/services/menu.service';\n\n@Component({\n standalone: true,\n selector: 'app-subscription-access-denied',\n templateUrl: './subscription-access-denied.component.html',\n styleUrls: ['./subscription-access-denied.component.scss'],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n I18nSelectPipe,\n HeaderComponent,\n PublicFooterComponent,\n ],\n})\nexport class SubscriptionAccessDeniedPageComponent {\n @Input() errorMessage?: string | null;\n @Output() closeErrorNotification = new EventEmitter();\n\n selectedLanguage$: Observable = this.store$.select(\n (state) => state.interface.language\n );\n\n subscription$: Observable = this.store$.select(\n (state) => state.subscription.subscription\n );\n\n subscriptions$: Observable = this.store$.select(\n (state) => state.user.subscriptions\n );\n\n appConfig$: Observable = this.store$.select(\n (state) => state.context.publicAppConfig\n );\n\n menuItems$: Observable = this.store$.select(\n (state) => state.subscription.views[0]?.menuitems\n );\n\n constructor(\n private store$: Store,\n public menuService: MenuService\n ) {}\n\n ngOnInit(): void {\n this.store$.dispatch(\n new UpdateInterfaceTitle({ en: 'Active Subscription', de: 'Startseite' })\n );\n }\n}\n","\n\n \n \n \n \n \n You don't have access to subscription. \n\n \n Below are the list of subscriptions you have access to.\n

\n\n Please request access.\n \n \n \n \n \n \n \n \n
\n \n {{ item.name }}\n
\n \n \n \n {{\n selectedLanguage$\n | async\n | i18nSelect: item?.appConfiguration?.description!\n }}\n \n \n \n
\n \n \n \n \n {{ 'interface.requestAccess' | translate }}\n \n \n \n \n \n \n\n\n","export enum GenericErrorType {\n SYSTEM_DOWN = 'systemDown',\n PAGE_ACCESS_ERROR = 'pageAccessError',\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ErrorComponent } from '../../../components';\nimport { GenericErrorType } from '../generic-error-page/generic-error-page.types';\n\n@Component({\n selector: 'app-system-down-error-page',\n standalone: true,\n imports: [CommonModule, TranslateModule, ErrorComponent],\n template: ``,\n})\nexport class SystemDownErrorPageComponent {\n GenericErrorType = GenericErrorType;\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { ContainerDialogComponent } from '../../../components';\nimport { AppState } from '../../../shared/data/state/app.state.model';\nimport { PublicAppConfig } from '../../models/public-app-config.model';\nimport { User } from '../../models/user.model';\n\n@Component({\n standalone: true,\n selector: 'app-terms',\n templateUrl: './terms.component.html',\n styleUrls: ['./terms.component.scss'],\n imports: [TranslateModule, NgClass, AsyncPipe, ContainerDialogComponent],\n})\nexport class TermsComponent {\n selectedLanguage$: Observable = this.store$.select(\n (state) => state.interface.language\n );\n isAccepted: boolean = false;\n\n profile$: Observable = this.store$.select(\n (state) => state.user.profile\n );\n\n content$: Observable = this.store$.select(\n (state) => state.context.publicAppConfig\n );\n\n constructor(private store$: Store) {}\n\n toggleTermsOfUse = () => (this.isAccepted = !this.isAccepted);\n\n acceptTermsOfUse() {\n this.store$.dispatch({ type: '[User] Accept terms' });\n }\n}\n","\n \n

\n {{\n 'common.termsOfUseDescription' | translate\n }}\n

\n \n \n \n

\n {{ 'common.termsOfUseAgreement' | translate }}\n {{ 'common.termsOfUse' | translate }}\n {{ 'common.haveRead' | translate }}\n {{ 'common.dataProtection' | translate }}. *\n

\n \n \n \n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, NgClass, NgIf } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Router, RouterOutlet } from '@angular/router';\nimport { Store } from '@ngrx/store';\n\nimport { Observable } from 'rxjs';\nimport { BannerDisplayManagerComponent } from '../../../components/banner-display-manager/banner-display-manager.component';\nimport { SystemBannerComponent } from '../../../components/system-banner/system-banner.component';\nimport { AppState } from '../../../shared/data/state/app.state.model';\nimport { TermsComponent } from '../../../shared/misc/terms/terms.component';\nimport { AppSubscription, User } from '../../../shared/models';\nimport { IotInsightService } from '../../integrations/insights/iot-insight.service';\n\nimport { PublicFooterComponent } from '../../../global/layout/public-footer/public-footer.component';\nimport { HeaderComponent } from '../dashboard-header/dashboard-header.component';\nimport { SidebarComponent } from '../sidebar/sidebar.component';\n@Component({\n standalone: true,\n selector: 'app-main-content-container',\n templateUrl: './main-content.component.html',\n styleUrls: ['./main-content.component.scss'],\n imports: [\n SidebarComponent,\n HeaderComponent,\n PublicFooterComponent,\n RouterOutlet,\n TermsComponent,\n AsyncPipe,\n NgClass,\n NgIf,\n SystemBannerComponent,\n BannerDisplayManagerComponent,\n ],\n})\nexport class MainContentContainerComponent {\n profile$: Observable = this.store$.select(\n (state) => state.user.profile\n );\n\n subscriptions$: Observable = this.store$.select(\n (state) => state.user.subscriptions\n );\n\n constructor(\n private store$: Store,\n public router: Router,\n public iotInsightService: IotInsightService\n ) {}\n}\n","\n\n \n \n \n \n \n\n\n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { MainContentContainerComponent } from '../../dashboard/layout/main-content/main-content.component';\nimport { RedeemInvitationCodeComponent } from '../../shared/misc/redeem-code/redeem-code.component';\nimport { JoinDemoService } from './join-demo.service';\n@Component({\n selector: 'app-join-demo',\n standalone: true,\n imports: [\n CommonModule,\n AsyncPipe,\n TranslateModule,\n RedeemInvitationCodeComponent,\n MainContentContainerComponent,\n ],\n templateUrl: './join-demo.component.html',\n styleUrls: ['./join-demo.component.scss'],\n})\nexport class JoinDemoComponent {\n subscriptionId$: Observable = this.store$.select(\n (state) => state.context.subscriptionId\n );\n showRedeemModal$ = new BehaviorSubject(false);\n\n constructor(\n private store$: Store,\n private joinDemoService: JoinDemoService\n ) {}\n\n async joinSandbox() {\n this.joinDemoService.createEvaluationSubscription();\n }\n}\n","\n

\n {{ 'pages.welcome.welcomeToSd' | translate }}\n

\n
\n

\n {{\n 'pages.welcome.noSubscription' | translate\n }}{{ 'pages.welcome.noSubscriptionHelp' | translate }}\n

\n
\n

\n {{ 'pages.welcome.intro1' | translate }}\n {{\n 'pages.welcome.kpiDashboards' | translate\n }}{{ 'pages.welcome.intro2' | translate\n }}{{\n 'pages.welcome.insightsProjects' | translate\n }}{{ 'pages.welcome.intro3' | translate\n }}{{\n 'pages.welcome.customComponents' | translate\n }}{{ 'pages.welcome.intro4' | translate }}\n

\n \n
\n \n \n \n \n \n {{ 'pages.welcome.createFreeSubscriptionBox.title' | translate }}\n \n \n {{ 'pages.welcome.createFreeSubscriptionBox.subtitle' | translate }}\n \n \n {{\n 'pages.welcome.createFreeSubscriptionBox.description' | translate\n }}\n

\n\n \n \n {{\n 'pages.welcome.createFreeSubscriptionBox.confirmButton.text'\n | translate\n }}\n \n \n \n \n \n \n \n
\n \n {{ 'redeem.homeRedeemTitle' | translate }}\n \n \n {{ 'redeem.subTitle' | translate }}\n \n \n {{ 'redeem.description' | translate }}\n

\n \n \n {{ 'redeem.homeRedeemTitle' | translate }}\n \n
\n \n \n \n \n \n
\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AuthService } from 'src/app/shared/services/auth.service';\n@Component({\n standalone: true,\n selector: 'app-application-id-page',\n templateUrl: './application-id.page.html',\n imports: [CommonModule, RouterModule, TranslateModule],\n})\nexport class ApplicationIdComponent implements OnInit {\n constructor(private authService: AuthService) {}\n\n ngOnInit(): void {\n this.logoutUserIfCurrentLoginNotSupported();\n }\n logoutUserIfCurrentLoginNotSupported() {\n this.authService.idpList.subscribe((list: string[]) => {\n if (\n list?.includes &&\n this.authService.getCurrentLoginType() &&\n !list.includes(this.authService.getCurrentLoginType())\n ) {\n this.authService.logout();\n }\n });\n }\n}\n","\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { CoPilotComponent } from '../../../components';\nimport { MainContentContainerComponent } from '../../../dashboard/layout/main-content/main-content.component';\nimport { CopilotService } from '../../../shared/services/copilot.service';\n\n@Component({\n standalone: true,\n selector: 'app-subscription-id-page',\n templateUrl: './subscription-id.page.html',\n imports: [\n RouterOutlet,\n MainContentContainerComponent,\n CoPilotComponent,\n NgIf,\n AsyncPipe,\n ],\n})\nexport class SubscriptionIdPageComponent {\n constructor(public copilotService: CopilotService) {}\n}\n","\n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { ActivatedRouteSnapshot, Routes } from '@angular/router';\nimport { shortUrls } from './app-urls';\nimport { GenericErrorPageComponent } from './pages/error/generic-error-page/generic-error-page.component';\nimport { SubscriptionAccessDeniedPageComponent } from './pages/error/subscription-access-denied/subscription-access-denied.component';\nimport { SystemDownErrorPageComponent } from './pages/error/system-down-error-page/system-down-error-page.component';\nimport { JoinDemoComponent } from './pages/join-demo/join-demo.component';\nimport { ApplicationIdComponent } from './pages/navigation/application-id/application-id.page';\nimport { SubscriptionIdPageComponent } from './pages/navigation/subscription-id/subscription-id.page';\nimport { ViewIdComponent } from './pages/navigation/view-id/view-id.page';\nimport {\n applicationIdValidatorGuard,\n joinDemoGuard,\n subscriptionValidatorGuard,\n validAccessTokenGuard,\n viewValidatorGuard,\n} from './shared/guards';\nimport { validRoleGuard } from './shared/guards/role';\nimport { UserRole } from './shared/models';\n\nexport const appRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: shortUrls.defaultApplication,\n },\n {\n path: shortUrls.visitorWelcome,\n loadComponent: () => JoinDemoComponent,\n canActivate: [validAccessTokenGuard, joinDemoGuard],\n },\n {\n path: shortUrls.genericError,\n loadComponent: () => GenericErrorPageComponent,\n canActivate: [validAccessTokenGuard],\n },\n {\n path: shortUrls.systemDown,\n loadComponent: () => SystemDownErrorPageComponent,\n },\n {\n path: shortUrls.subscriptionAccessDenied,\n loadComponent: () => SubscriptionAccessDeniedPageComponent,\n canActivate: [validAccessTokenGuard],\n },\n {\n path: ':applicationId',\n /**\n * Create a common function that at any point can do couple of things:\n *\n * Everything missing after UI can automatically be\n * constructed for default landing. This allows UI discovery.\n * Construct fully qualified url and let it point to error page.\n */\n loadComponent: () => ApplicationIdComponent,\n canActivate: [applicationIdValidatorGuard], // user may not have signed in thus we only load application config here\n children: [\n {\n path: shortUrls.auth,\n loadChildren: () => import('./auth/auth.routes'),\n },\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () => SubscriptionIdPageComponent,\n canActivate: [validAccessTokenGuard, subscriptionValidatorGuard],\n },\n {\n path: ':subscriptionId',\n loadComponent: () => SubscriptionIdPageComponent,\n canActivate: [validAccessTokenGuard, subscriptionValidatorGuard],\n children: [\n {\n path: shortUrls.admin,\n canActivate: [\n validAccessTokenGuard,\n (activatedRouteSnapshot: ActivatedRouteSnapshot) =>\n validRoleGuard({\n activatedRouteSnapshot,\n requiredRoles: [UserRole.Admin],\n }),\n ],\n loadChildren: () =>\n import(\n './pages/navigation/subscription-admin/subscription-admin.routes'\n ),\n },\n {\n path: '',\n pathMatch: 'full',\n loadComponent: () => ViewIdComponent,\n canActivate: [validAccessTokenGuard, viewValidatorGuard],\n },\n\n {\n path: ':viewId',\n loadChildren: () =>\n import('./pages/navigation/view-id/view-id.page.routes'),\n canActivate: [validAccessTokenGuard, viewValidatorGuard],\n },\n ],\n },\n ],\n },\n];\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\n\n/**\n * Number field for the dynamic forms\n */\n@Component({\n selector: 'app-addl-number',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule],\n templateUrl: './number.component.html',\n styleUrls: ['../styles.scss', '../../../../shared/ddaap-styles.scss'],\n})\nexport class NumberComponent extends FieldType implements OnInit, OnDestroy {\n // Helper\n private subscriptions = new Subscription();\n\n // View\n activeTillDisplayOrder = 1;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n /**\n * On initialization subscribes to the activeTillDisplayOrder$ variable to control when the field should be displayed.\n */\n ngOnInit(): void {\n this.subscriptions.add(\n this.dynamicFormService.activeTillDisplayOrder$.subscribe((value) => {\n this.activeTillDisplayOrder = value;\n if (value <= this.field.props!['displayOrder']) {\n this.control.reset(null); //reset later content of the form if a value above the current one is changed\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get control(): FormControl {\n return this.formControl as FormControl;\n }\n\n get max() {\n return this.field.props?.max;\n }\n\n get min() {\n return this.field.props?.min;\n }\n\n decreaseNumber(): void {\n this.control.markAsDirty();\n let currentValue = this.control.value;\n this.control.setValue(\n typeof currentValue === 'number' ? currentValue - 1 : 1\n );\n }\n\n increaseNumber(): void {\n this.control.markAsDirty();\n let currentValue = this.control.value;\n this.control.setValue(\n typeof currentValue === 'number' ? currentValue + 1 : 1\n );\n }\n\n onInfoTextIconClick() {\n this.dynamicFormService.showInfoText(\n this.field.props!['infoTextKey'],\n this.field.props!['heading']\n );\n }\n\n /**\n * Validates whether the input is a digit.\n * Returns false otherwise.\n * The method is used to prevent entering any non-digit values in the numerical field.\n * @param input\n */\n validateNumericalInput(input: string) {\n // Check length to allow navigation keys (arrow keys, delete, backspace)\n if (input.length == 1) {\n const regex = /[0-9]/;\n return regex.test(input);\n }\n return true;\n }\n}\n","\n \n \n \n {{ to['heading'] }}\n = to['displayOrder']\n \"\n elTestId=\"f_ppYd-m5id_5KT5xth7i\"\n type=\"button\"\n style=\"vertical-align: middle\"\n class=\"a-button a-button--integrated -without-label\"\n (click)=\"onInfoTextIconClick()\"\n >\n \n \n \n \n \n = to['displayOrder']\"\n elTestId=\"YE3TLwvGVhlIl2OSQIrd2\"\n class=\"body col-md-12\"\n >\n
\n \n

\n {{ to['description'] }}\n

\n
\n \n \n {{ to.label }}\n \n \n \n \n \n \n \n \n \n \n \n {{ to['extensionText'] }}\n \n \n \n \n \n
\n {{ props['validationMinimumMessage'] }}\n {{min}}.\n
\n \n \n \n
\n {{ props['validationMaximumMessage'] }}\n {{ max }}.\n
\n \n \n \n
\n {{\n 'ddaap.messages.INVALID_FIELD_NUMBER_POSITIVE_INT' | translate\n }}\n
\n \n \n \n
\n {{ props['validationDependencyMessage'] }}\n
\n \n
\n \n \n \n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subscription, tap } from 'rxjs';\nimport { CONSTANTS } from '../../../constants';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\n\n/**\n * Radio component used for the dynamic forms\n */\n@Component({\n selector: 'app-addl-radio',\n standalone: true,\n imports: [\n CommonModule,\n MatGridListModule,\n ReactiveFormsModule,\n TranslateModule,\n AsyncPipe,\n ],\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['../styles.scss', '../../../../shared/ddaap-styles.scss'],\n})\nexport class RadioComponent extends FieldType implements OnInit, OnDestroy {\n // Helper\n radioConstants = CONSTANTS.FORM.LAYOUT.RADIO;\n private subscriptions = new Subscription();\n\n // View\n activeTillDisplayOrder = 1;\n radiosPerRow = this.radioConstants.NUMBER_OF_BUTTONS_FULLSIZE;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private dynamicFormService: DynamicFormService\n ) {\n super();\n }\n\n /**\n * On initialization subscribes to the activeTillDisplayOrder$ variable to control when the field should be displayed.\n * Subscribes to fieldInfoTextIsShownFor$ to reorder the radio buttons, when the info text is shown.\n */\n ngOnInit() {\n this.subscriptions.add(\n this.dynamicFormService.activeTillDisplayOrder$.subscribe((value) => {\n this.activeTillDisplayOrder = value;\n if (value <= this.field.props!['displayOrder']) {\n this.control.reset(null); //reset later content of the form if a value above the current one is changed\n }\n this.changeDetectorRef.detectChanges();\n })\n );\n\n this.subscriptions.add(\n this.dynamicFormService.fieldInfoTextIsShownFor$\n .pipe(\n tap((value) => {\n if (value.infoTextKey) {\n this.radiosPerRow = this.radioConstants.NUMBER_OF_BUTTONS_REDUCED;\n } else {\n this.radiosPerRow =\n this.radioConstants.NUMBER_OF_BUTTONS_FULLSIZE;\n }\n this.changeDetectorRef.detectChanges();\n })\n )\n .subscribe()\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get fieldKey() {\n return this.field.key;\n }\n\n get control() {\n return this.formControl as FormControl;\n }\n\n onInfoTextIconClick() {\n this.dynamicFormService.showInfoText(\n this.field.props!['infoTextKey'],\n this.field.props!['heading']\n );\n }\n\n onChangeResetFormBellow() {\n this.dynamicFormService.activeTillDisplayOrder$.next(\n this.field.props!['displayOrder']\n );\n console.log(this.activeTillDisplayOrder);\n }\n}\n","\n \n \n \n {{ to['heading'] }}\n = to['displayOrder']\n \"\n elTestId=\"38J61cIeNfRkwsXriD17o\"\n type=\"button\"\n style=\"vertical-align: middle\"\n class=\"a-button a-button--integrated -without-label\"\n (click)=\"onInfoTextIconClick()\"\n >\n \n \n \n \n \n = to['displayOrder']\"\n elTestId=\"-KBIE8Es5eEG_kQGRDB5I\"\n class=\"body col-md-12\"\n >\n
\n \n

\n {{ to['description'] }}\n

\n
\n
\n \n \n \n \n \n \n\n {{ option.value.label }}\n
\n \n \n \n \n \n \n \n \n {{ to['extensionText'] }}\n \n \n \n \n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../../services/dynamic-form.service';\n\n/**\n * Text field component used in the dynamic forms\n */\n@Component({\n selector: 'app-addl-textfield',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule],\n templateUrl: './textfield.component.html',\n styleUrls: ['./textfield.component.scss', '../styles.scss', '../../../../shared/ddaap-styles.scss'],\n})\nexport class TextfieldComponent extends FieldType implements OnInit, OnDestroy {\n // Helper\n private subscriptions = new Subscription();\n public maxLength: number | undefined = 0;\n\n\n // View\n activeTillDisplayOrder = 1;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n\n /**\n * On initialization subscribes to the activeTillDisplayOrder$ variable to control when the field should be displayed.\n */\n ngOnInit(): void {\n this.maxLength = this.field.props!['maxLength']\n this.subscriptions.add(\n this.dynamicFormService.activeTillDisplayOrder$.subscribe((value) => {\n this.activeTillDisplayOrder = value;\n })\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get control() {\n return this.formControl as FormControl;\n }\n\n onInfoTextIconClick() {\n this.dynamicFormService.showInfoText(\n this.field.props!['infoTextKey'],\n this.field.props!['heading']\n );\n }\n\n /**\n * Validates whether the input length exceeds the maximum length.\n * If that is the case, restricts typing of additional characters\n * @param input keydown event value\n */\n validateLength(input: string): boolean {\n // Check keydown value length to allow navigation keys (arrow keys, delete, backspace)\n if (input.length > 1) {\n return true;\n }\n\n if (this.control.value?.length >= this.maxLength!) {\n return false;\n }\n return true;\n }\n}\n","\n \n \n \n \n {{ to['heading'] }}\n = to['displayOrder']\n \"\n elTestId=\"v_0nKH9Eqzf3UbWFbUG5N\"\n type=\"button\"\n style=\"vertical-align: middle\"\n class=\"a-button a-button--integrated -without-label\"\n (click)=\"onInfoTextIconClick()\"\n >\n \n \n \n \n \n \n = to['displayOrder']\"\n elTestId=\"x6MonpveMDcyzkjBj_O4a\"\n class=\"body col-md-12\"\n >\n
\n \n

\n {{ to['description'] }}\n

\n
\n \n \n {{this.control.value?.length || 0}}/{{this.maxLength}}\n \n \n \n \n \n {{ to['extensionText'] }}\n \n \n \n \n \n
\n {{ props['validationPatternMessage'] }}\n
\n \n \n \n \n
\n {{ props['validationDependencyMessage'] }}\n
\n \n
\n \n \n \n
\n {{ 'ddaap.messages.DRIVER_NAME_ALREADY_EXISTS' | translate }}\n
\n \n
\n \n \n \n \n {{ 'ddaap.messages.INVALID_FIELD' | translate }}\n \n \n \n
\n \n \n \n\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { map, switchMap } from 'rxjs/operators';\n\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { CONSTANTS } from '../../shared/constants';\nimport { SubscriptionDetail } from '../../shared/models/subscriptionView.model';\nimport * as SubscriptionActions from './subscription.actions';\n\n@Injectable()\nexport class AddlSubscriptionEffects {\n #baseUrlConfigurator: string = '';\n\n fetchSubscription = createEffect(() =>\n this.actions$.pipe(\n ofType(SubscriptionActions.FETCH_SUBSCRIPTION),\n switchMap(() => {\n return this.http.get(this.#baseUrlConfigurator);\n }),\n map((subscription) => {\n return new SubscriptionActions.SetSubscription(subscription);\n })\n )\n );\n\n constructor(\n private actions$: Actions,\n private http: HttpClient,\n private store$: Store\n ) {\n this.store$\n .select(\n (state) =>\n state.subscription.subscription.appConfiguration.customConfig?.API\n ?.baseUrl\n )\n .subscribe(\n (data) =>\n (this.#baseUrlConfigurator =\n data + CONSTANTS.API.SUBSCRIPTION_DETAILS.API_BASE_PATH)\n );\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\n\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ErrorComponent } from '../notifications/error/error.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HandleErrorService {\n constructor(private modalService: NgbModal) {}\n\n /**\n * Handles the given error by opening a modal with the error message\n * @param err\n */\n handleError(err: HttpErrorResponse) {\n const { status } = err;\n const modalRef = this.modalService.open(ErrorComponent, {\n animation: false,\n backdrop: 'static',\n });\n let errorMessage;\n if (status !== 401) {\n if (err.error?.errorMessage) {\n errorMessage = err.error.errorMessage;\n } else if (typeof err.error === 'string') {\n errorMessage = JSON.parse(err.error).errorMessage;\n } else {\n errorMessage = 'UNKNOWN_ERROR';\n }\n } else {\n errorMessage = '401';\n modalRef.componentInstance.doRedirectOnClose = true;\n }\n modalRef.componentInstance.errorMessage = errorMessage;\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { catchError, firstValueFrom, map, Observable, throwError } from 'rxjs';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { HandleErrorService } from '../../services/handle-error.service';\n\n/**\n * Intercepts responses and handles errors with the HandleErrorService\n * @param request HttpRequest\n * @param next HttpHandlerFn\n */\nexport const httpResponseInterceptor: HttpInterceptorFn = (\n request: HttpRequest,\n next: HttpHandlerFn\n): Observable> => {\n const errorHandlerService = inject(HandleErrorService);\n const storeAppState = inject(Store);\n\n return next(request).pipe(\n map((event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n // Call different service to react to http codes\n }\n return event;\n }),\n catchError((err: HttpErrorResponse) => {\n (async () => {\n const needHandleError = (\n Object.values(\n (await firstValueFrom(\n storeAppState.select(\n (state) =>\n state.subscription.subscription.appConfiguration.customConfig\n ?.API\n )\n )) || {}\n ) as Array\n ).find((u) => request.url.startsWith(u));\n if (needHandleError) {\n errorHandlerService.handleError(err);\n }\n })();\n return throwError(() => err);\n })\n );\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpErrorResponse, HttpInterceptorFn } from '@angular/common/http';\nimport { catchError, throwError } from 'rxjs';\n\nexport const blobRequestInterceptor: HttpInterceptorFn = (req, next) => {\n return next(req).pipe(\n catchError((err) => {\n if (\n err instanceof HttpErrorResponse &&\n err.error instanceof Blob &&\n err.error.type === 'application/json'\n ) {\n return new Promise((resolve, reject) => {\n let reader = new FileReader();\n reader.onload = (e: Event) => {\n try {\n const errmsg = JSON.parse((e.target).result);\n reject(\n new HttpErrorResponse({\n error: errmsg,\n headers: err.headers,\n status: err.status,\n statusText: err.statusText,\n url: err.url || '',\n })\n );\n } catch (_) {\n reject(err);\n }\n };\n reader.onerror = (_) => {\n reject(err);\n };\n reader.readAsText(err.error);\n });\n }\n return throwError(() => err);\n })\n );\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport {\n HttpEvent,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom, Observable } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { AppState } from '../../shared/data/state/app.state.model';\n\nexport const requestHeaderInterceptor: HttpInterceptorFn = (\n req: HttpRequest,\n next: HttpHandlerFn\n): Observable> => {\n const store = inject(Store) as Store;\n\n const modifyRequest = async (): Promise> => {\n const activeSub = await firstValueFrom(\n store.select((state) => state.context.subscriptionId)\n );\n\n if (activeSub && !req.url.includes(env.AUTH_URL)) {\n return req.clone({\n headers: req.headers.set('X-SD-SUBSCRIPTION', activeSub),\n });\n }\n return req;\n };\n\n return new Observable>((observer) => {\n modifyRequest().then((modifiedRequest) => {\n next(modifiedRequest).subscribe({\n next: (event: HttpEvent) => observer.next(event),\n error: (error: any) => observer.error(error),\n complete: () => observer.complete(),\n });\n });\n });\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport {\n HttpErrorResponse,\n HttpEvent,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { catchError, map, Observable, throwError } from 'rxjs';\nimport { ToastMessageService } from 'src/app/components/toast/toast-message.service';\nimport { env } from '../../../environments/environment';\nimport { GLOBAL_API_ERROR_MESSAGE_HANDLING_HEADER_KEY } from '../../app.const';\nimport { AuthService } from '../../shared/services/auth.service';\nimport { QuotaNotifierService } from '../../shared/services/quota-notifier.service';\nimport { RoutingService } from '../../shared/services/routing.service';\n\nexport const responseCodeInterceptor: HttpInterceptorFn = (\n req: HttpRequest,\n next: HttpHandlerFn\n): Observable> => {\n const quotaNotifierService = inject(QuotaNotifierService);\n const toastMessageService = inject(ToastMessageService);\n const translateService = inject(TranslateService);\n const authService = inject(AuthService);\n const routingService = inject(RoutingService);\n return next(req).pipe(\n map((event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n // Call different service to react to http codes\n }\n return event;\n }),\n catchError((errorEvent: HttpErrorResponse) => {\n /* In cases where custom applications are used, they might make calls to their own backend servers,\n which may not adhere to the Service Design principles of always sending a message when an API fails.\n To ensure that we don't interfere or display error messages for these APIs, and to allow the end consumer \n to handle such situations themselves, we intentionally do not set the 'errorMessageShownGlobally' flag to true.\n */\n if (\n req.headers.get(GLOBAL_API_ERROR_MESSAGE_HANDLING_HEADER_KEY) ===\n 'false' ||\n !req.url.startsWith(env.API_URL)\n ) {\n return throwError(() => ({ ...errorEvent, errorMessageShownGlobally: false }));\n }\n\n const { status, error } = errorEvent;\n\n let errorMessageShownGlobally = false;\n if (status === 401) {\n errorMessageShownGlobally = true;\n authService.redirectToPageBasedOnLoginState();\n return throwError(() => ({ ...errorEvent, errorMessageShownGlobally }));\n } else if (status === 429) {\n errorMessageShownGlobally = true;\n quotaNotifierService.notify(error);\n } else if (status >= 400 && status < 500) {\n errorMessageShownGlobally = true;\n toastMessageService.showError(\n error.error || error.errorMessage || error.message\n );\n } else if (status >= 500 || status < 600) {\n routingService.loadSystemDownPage();\n errorMessageShownGlobally = true;\n } else {\n const message = translateService.instant(\n 'error.messages.500x'\n ) as string;\n\n errorMessageShownGlobally = true;\n toastMessageService.showError(message);\n }\n return throwError(() => ({ ...errorEvent, errorMessageShownGlobally }));\n })\n );\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpInterceptorFn } from '@angular/common/http';\nimport { httpResponseInterceptor } from 'src/app/dashboard/integrations/custom/addl/shared/interceptors/http/http-response.interceptor';\nimport { blobRequestInterceptor } from './blob.interceptor';\nimport { requestHeaderInterceptor } from './request-header.interceptor';\nimport { responseCodeInterceptor } from './response-code.interceptor';\n\nexport const httpInterceptors: HttpInterceptorFn[] = [\n blobRequestInterceptor,\n requestHeaderInterceptor,\n responseCodeInterceptor,\n httpResponseInterceptor,\n];\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { Actions } from '@ngrx/effects';\n\n@Injectable()\nexport class AppEffects {\n constructor(private actions$: Actions) {}\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { catchError, first, map, of, switchMap, withLatestFrom } from 'rxjs';\nimport { env } from '../../../../environments/environment';\nimport {\n ASK_ASSISTANT,\n ASSISTANT_RESPONDED,\n} from '../actions/co-pilot.actions';\nimport { AppState } from '../state/app.state.model';\nimport {\n ICoPilotMessage,\n ICoPilotMessages,\n} from '../state/co-pilot.state.model';\n\n@Injectable()\nexport class CoPilotEffects {\n askAssistant$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ASK_ASSISTANT),\n withLatestFrom(\n this.store$.select((store) => store.coPilot.conversation.data.messages)\n ),\n switchMap(([_, messages]) => {\n const apiUrl = `${env.API_URL}/copilot/chats`;\n return this.http.put(apiUrl, messages).pipe(\n first(),\n map((data: ICoPilotMessages) => ({\n type: ASSISTANT_RESPONDED,\n payload: { messages: data, totalMessages: data.length },\n })),\n catchError((response) => {\n if (env.environment === 'copilot-local') {\n \n const assistantResponse: ICoPilotMessage = {\n content: !!response?.error?.message? response.error.message:`Failed to fetch the proper response for the prompt. Please check your input and try again.`,\n role: 'assistant',\n };\n return of({\n type: ASSISTANT_RESPONDED,\n payload: {\n messages: [...messages, assistantResponse],\n totalMessages: messages.length + 1,\n },\n });\n }\n return of({\n type: '[Assistant] Error finding answer',\n });\n })\n );\n })\n )\n );\n constructor(\n private actions$: Actions,\n private store$: Store,\n private http: HttpClient\n ) {}\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first, map } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { PublicAppConfig } from '../models';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationMetadataService {\n readonly #baseUrl: string;\n\n constructor(private logger: LoggerService, private httpClient: HttpClient) {\n this.#baseUrl = env.API_PUBLIC_URL;\n this.logger.log(\n 'PublicService.constructor: baseUrl = ',\n `${this.#baseUrl}`\n );\n }\n\n findById(id: string | undefined) {\n this.logger.debug('PublicService.findById: id = ', id);\n\n const url = `${this.#baseUrl}/apps/${id}`;\n this.logger.debug('PublicService.findById: url = ', url);\n\n return this.httpClient.get(url).pipe(\n first(),\n map((restResult) => restResult)\n );\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { MaintenanceMessage } from '../models/maintenance.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MaintenanceService {\n readonly #baseUrl: string;\n\n constructor(private logger: LoggerService, private httpClient: HttpClient) {\n this.#baseUrl = env.API_PUBLIC_URL;\n this.logger.log(\n 'MaintenanceService.constructor: baseUrl = ',\n `${this.#baseUrl}`\n );\n }\n\n /**\n * @description find global system information for maintenance banner\n * @returns a FindError or MaintenanceMessage object\n */\n findSystemInfo() {\n this.logger.log(\n 'MaintenanceService.findSystemInfo: ',\n `${this.#baseUrl}/systeminfo`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/systeminfo`)\n .pipe(first());\n }\n\n #toMaintenanceMessage(item: any): MaintenanceMessage {\n return {\n message: {\n en: item.message.en,\n de: item.message.de,\n },\n type: item.type,\n active: item.active,\n };\n }\n\n updateMaintenanceInfo(message: MaintenanceMessage) {\n this.logger.debug('MaintenanceService.update: message=', message);\n const url = `${env.API_URL}/system/info`;\n\n this.logger.debug('MaintenanceService.update: messageDto=', message);\n return this.httpClient.put(url, message, { observe: 'body' }).pipe(first());\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { catchError, map, mergeMap, of, tap, withLatestFrom } from 'rxjs';\nimport { ApplicationMetadataService } from '../../services/application-metadata.service';\nimport { MaintenanceService } from '../../services/maintenance.service';\nimport { RoutingService } from '../../services/routing.service';\nimport {\n LoadSystemMaintenanceInfo,\n LOAD_PUBLIC_APP_CONFIG,\n LOAD_SYSTEM_MAINTENANCE_INFO,\n SetLandingContent,\n SetSystemMaintenanceInfo,\n UPDATE_SYSTEM_MAINTENANCE_INFO,\n} from '../actions/context.actions';\nimport { AppState } from '../state/app.state.model';\n\n@Injectable()\nexport class ContextEffects {\n loadPublicAppConfig$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_PUBLIC_APP_CONFIG),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.applicationMetadataService\n .findById(state.context.applicationId)\n .pipe(\n map((userProfile) => ({\n type: '[Landing API] Successfully loaded landing content',\n payload: userProfile,\n })),\n tap((result) => {\n this.store$.dispatch(new SetLandingContent(result.payload));\n }),\n catchError((_) => {\n this.routingService.loadDefaultApplication();\n return of({\n type: '[Landing API] Error loading landing content',\n });\n })\n )\n )\n )\n );\n\n loadSystemMaintenanceInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_SYSTEM_MAINTENANCE_INFO),\n mergeMap((action) =>\n this.maintenanceService.findSystemInfo().pipe(\n map((msg) => ({\n type: '[Maintenance API] Successfully loaded maintenance info',\n payload: msg,\n })),\n tap((result) => {\n this.store$.dispatch(new SetSystemMaintenanceInfo(result.payload));\n }),\n catchError(() =>\n of({\n type: '[Maintenance API] Error loading maintenance info',\n })\n )\n )\n )\n )\n );\n\n updateSystemMaintenanceInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(UPDATE_SYSTEM_MAINTENANCE_INFO),\n mergeMap((action) =>\n this.maintenanceService.updateMaintenanceInfo(action.payload).pipe(\n map((systemMaintenanceInfo) => ({\n type: '[Maintenance API] Successfully updated system maintenance info',\n payload: systemMaintenanceInfo,\n })),\n tap(() => this.store$.dispatch(new LoadSystemMaintenanceInfo())),\n catchError(() =>\n of({\n type: '[Maintenance API] Error updating system maintenance info',\n })\n )\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private store$: Store,\n private applicationMetadataService: ApplicationMetadataService,\n private maintenanceService: MaintenanceService,\n private routingService: RoutingService\n ) {}\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { map, tap, withLatestFrom } from 'rxjs';\nimport {\n SetHeaderTitle,\n SetLanguage,\n UPDATE_INTERFACE_TITLE,\n UPDATE_LANGUAGE,\n} from '../actions/interface.actions';\nimport { AppState } from '../state/app.state.model';\n\n@Injectable()\nexport class InterfaceEffects {\n updateInterfaceTitle$ = createEffect(() =>\n this.actions$.pipe(\n ofType(UPDATE_INTERFACE_TITLE),\n withLatestFrom(this.store$),\n tap(([action, state]) => {\n const routeTitle =\n state.interface.language === 'en'\n ? action.payload.en\n : action.payload.de;\n\n if (state.subscription.subscription.name) {\n const appTitle = state.subscription.subscription.name;\n const title = appTitle + ' — ' + routeTitle;\n\n this.titleService.setTitle(title);\n this.store$.dispatch(new SetHeaderTitle(title));\n } else {\n this.store$.dispatch(new SetHeaderTitle(routeTitle));\n }\n }),\n map(() => ({ type: '[Interface] Successfully updated title' }))\n )\n );\n\n updateLanguage$ = createEffect(() =>\n this.actions$.pipe(\n ofType(UPDATE_LANGUAGE),\n tap((action) => {\n const lang = action.payload;\n this.translateService.use(lang);\n this.store$.dispatch(new SetLanguage(lang));\n }),\n map(() => ({ type: '[Interface] Successfully updated language' }))\n )\n );\n\n constructor(\n private actions$: Actions,\n private store$: Store,\n private titleService: Title,\n private translateService: TranslateService\n ) {}\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first, map } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { MaintenanceMessage } from '../models/maintenance.model';\nimport {\n AppSubscription,\n SubscriptionRoles,\n} from '../models/subscription.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SubscriptionService {\n readonly #baseUrl: string;\n\n constructor(private httpClient: HttpClient, private logger: LoggerService) {\n this.#baseUrl = env.API_URL;\n this.logger.log(\n 'SubscriptionService.constructor: baseUrl = ',\n `${this.#baseUrl}`\n );\n }\n\n /**\n * @description find all subscriptions for the currently authenticated user\n * @returns a FindError or array of Subscription objects\n */\n findAll() {\n this.logger.log(\n 'SubscriptionService.findAll: ',\n `${this.#baseUrl}/subscriptions`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/subscriptions`)\n .pipe(first());\n }\n\n findRolesById(id: string | undefined) {\n this.logger.debug('SubscriptionService.findRolesById: id = ', id);\n\n const url = `${this.#baseUrl}/subscriptions/roles`;\n this.logger.debug('SubscriptionService.findRolesById: url = ', url);\n\n return this.httpClient.get(url).pipe(first());\n }\n\n /**\n * @description find global system information for maintenance banner\n * @returns a FindError or MaintenanceMessage object\n */\n findMaintenanceInfo(id: string) {\n this.logger.log(\n 'SubscriptionService.findMaintenanceInfo: ',\n `${this.#baseUrl}/subscriptions/systeminfo`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/subscriptions/systeminfo`)\n .pipe(first());\n }\n\n updateMaintenanceInfo(id: string, message: MaintenanceMessage) {\n this.logger.debug('SubscriptionService.update: message=', message);\n const url = `${this.#baseUrl}/subscriptions/systeminfo`;\n\n this.logger.debug('SubscriptionService.update: messageDto=', message);\n return this.httpClient.put(url, message, { observe: 'body' }).pipe(\n first(),\n map((_) => message)\n );\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first, map } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { View } from '../models/view.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewService {\n readonly #baseUrl: string;\n\n constructor(private httpClient: HttpClient, private logger: LoggerService) {\n this.#baseUrl = env.API_URL;\n this.logger.log('ViewService.constructor: baseUrl = ', this.#baseUrl);\n }\n\n /**\n * @description find all views for a given subscription\n * @returns a FindError or array of View objects\n */\n findAll(subId: string) {\n this.logger.log(\n 'ViewService.findAll: ',\n `${this.#baseUrl}/subscriptions/views`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/subscriptions/views`)\n .pipe(first());\n }\n\n createView(subId: string, message: any) {\n this.logger.debug('ViewService.createView: message=', message);\n const url = `${this.#baseUrl}/subscriptions/views`;\n\n this.logger.debug('ViewService.createView: messageDto=', message);\n return this.httpClient.put(url, message, { observe: 'body' }).pipe(first());\n }\n\n updateViews(subId: string, existingViews: View[], changedView: View) {\n this.logger.debug('ViewService.updateViews: user=', changedView);\n const url = `${this.#baseUrl}/subscriptions/views`;\n\n const updatedViewArray = existingViews.map((view) => {\n if (view.id === changedView.id) {\n return changedView;\n }\n return view;\n });\n\n this.logger.debug('ViewService.updateViews: userDto=', changedView);\n return this.httpClient.put(url, updatedViewArray, { observe: 'body' }).pipe(\n first(),\n map((_) => changedView)\n );\n }\n\n deleteView(subId: string, viewId: string) {\n this.logger.debug('ViewService.deleteView: message=', viewId);\n const url = `${this.#baseUrl}/subscriptions/views/${viewId}`;\n\n this.logger.debug('ViewService.deleteView: messageDto=', viewId);\n return this.httpClient.delete(url).pipe(\n first(),\n map((_) => viewId)\n );\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { ICatalogue, ICatalogueList } from '../models/catalogue.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ServicesDataService {\n constructor(private httpClient: HttpClient, private logger: LoggerService) {}\n\n getServices() {\n let url = `${env.API_URL}/subscriptions/external-services`;\n return this.httpClient.get(url).pipe(first());\n }\n\n updateServices(list: ICatalogueList) {\n let url = `${env.API_URL}/subscriptions/external-services`;\n return this.httpClient.put(url, list).pipe(first());\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { Credential } from '../models/credential.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CredentialService {\n readonly #baseUrl: string;\n\n constructor(private httpClient: HttpClient, private logger: LoggerService) {\n this.#baseUrl = env.API_CONNECTOR_URL;\n }\n\n /**\n * @description find all subscriptions for the currently authenticated user\n * @returns a FindError or array of Subscription objects\n */\n findAll() {\n this.logger.log(\n 'CredentialService.findAll: ',\n `${this.#baseUrl}/credentials`\n );\n\n const url = `${this.#baseUrl}/credentials`;\n return this.httpClient.get(url).pipe(first());\n }\n\n createAPIKey(message: any) {\n this.logger.debug('CredentialService.createAPIKey: message=', message);\n const url = `${this.#baseUrl}/credentials`;\n\n this.logger.debug('CredentialService.createAPIKey: messageDto=', message);\n return this.httpClient.put(url, message, { observe: 'body' }).pipe(first());\n }\n\n deleteAPIKey(message: any) {\n this.logger.debug('CredentialService.deleteAPIKey: message=', message);\n const url = `${this.#baseUrl}/credentials`;\n\n this.logger.debug('CredentialService.deleteAPIKey: messageDto=', message);\n return this.httpClient.delete(url, { body: message }).pipe(first());\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n catchError,\n firstValueFrom,\n map,\n mergeMap,\n of,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\nimport { ToastMessageService } from '../../../components/toast/toast-message.service';\nimport { ServicesDataService } from '../../services/catalogue.service';\nimport { CredentialService } from '../../services/credentials.service';\nimport { GrafanaDashboardService } from '../../services/grafana-dashboard.service';\nimport { SubscriptionService } from '../../services/subscription.service';\nimport { UserSubscriptionService } from '../../services/user-subscriptions.service';\nimport { UserService } from '../../services/user.service';\nimport { ViewService } from '../../services/view.service';\nimport { SetView } from '../actions/context.actions';\nimport {\n CREATE_CREDENTIAL,\n CREATE_VIEW,\n DELETE_CREDENTIAL,\n DELETE_VIEW,\n EDIT_USER_ROLES,\n LoadCredentials,\n LoadMaintenanceInfo,\n LoadServiceCatalogue,\n LoadUsers,\n LoadViews,\n LOAD_CREDENTIALS,\n LOAD_GRAFANA_DASHBOARDS,\n LOAD_MAINTENANCE_INFO,\n LOAD_SERVICE_CATALOGUE,\n LOAD_SUBSCRIPTION,\n LOAD_USERS,\n LOAD_VIEWS,\n SERVICE_CATALOGUE_UPDATED,\n SetCredentials,\n SetGrafanaDashboardsLoaded,\n SetMaintenanceInfo,\n SetServiceCatalogue,\n SetSubscription,\n SetSubscriptionLoaded,\n SetUsers,\n SetViews,\n SetViewsLoaded,\n SET_GRAFANA_DASHBOARDS,\n UPDATE_MAINTENANCE_INFO,\n UPDATE_SERVICE_CATALOGUE,\n UPDATE_VIEWS,\n} from '../actions/subscription.actions';\nimport { LoadInvitations } from '../actions/user.actions';\nimport { AppState } from '../state/app.state.model';\n\n@Injectable()\nexport class SubscriptionEffects {\n loadSubscription$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_SUBSCRIPTION),\n switchMap((_) => {\n return this.userSubscriptionService.activeSubscription$.pipe(\n tap(() => {\n this.store$.dispatch(new SetSubscriptionLoaded(false));\n }),\n map((activeSubscription) => {\n this.store$.dispatch(new SetSubscription(activeSubscription));\n this.store$.dispatch(new SetSubscriptionLoaded(true));\n return {\n type: '[Subscription API] Successfully loaded subscription',\n payload: true,\n };\n })\n );\n })\n )\n );\n\n loadViews$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_VIEWS),\n withLatestFrom(this.store$),\n mergeMap(([_, state]) => {\n this.store$.dispatch(new SetViewsLoaded(false));\n return this.viewService.findAll(state.context.subscriptionId).pipe(\n map((views) => ({\n type: '[Subscription API] Successfully loaded views',\n payload: views,\n })),\n tap(async (result) => {\n this.store$.dispatch(new SetViews(result.payload));\n this.store$.dispatch(new SetViewsLoaded(true));\n\n let activeView = await firstValueFrom(\n this.store$.select((store) => store.context.view)\n );\n\n // Select first view for user by default\n if (!activeView?.id) {\n activeView = (\n await firstValueFrom(this.userSubscriptionService.views$)\n )[0];\n }\n const views = await firstValueFrom(\n this.userSubscriptionService.views$\n );\n this.store$.dispatch(\n new SetView(views.find((v) => v.id === activeView.id))\n );\n }),\n catchError(() =>\n of({\n type: '[Subscription API] Error loading views',\n })\n )\n );\n })\n )\n );\n\n createView$ = createEffect(() =>\n this.actions$.pipe(\n ofType(CREATE_VIEW),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.viewService\n .createView(state.context.subscriptionId, [\n action.payload,\n ...state.subscription.views,\n ])\n .pipe(\n map((response) => ({\n type: '[Subscription API] Successfully created view',\n payload: response,\n })),\n tap(() => this.store$.dispatch(new LoadViews())),\n catchError(() =>\n of({\n type: '[Subscription API] Error creating view',\n })\n )\n )\n )\n )\n );\n\n updateViews$ = createEffect(() =>\n this.actions$.pipe(\n ofType(UPDATE_VIEWS),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.viewService\n .updateViews(\n state.context.subscriptionId,\n state.subscription.views,\n action.payload\n )\n .pipe(\n map((response) => ({\n type: '[Subscription API] Successfully updated views',\n payload: response,\n })),\n tap(() => this.store$.dispatch(new LoadViews())),\n catchError(() =>\n of({\n type: '[Subscription API] Error updating views',\n })\n )\n )\n )\n )\n );\n\n deleteView$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DELETE_VIEW),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.viewService\n .deleteView(state.context.subscriptionId, action.payload)\n .pipe(\n map((response) => ({\n type: '[Subscription API] Successfully deleted view',\n payload: response,\n })),\n tap(() => this.store$.dispatch(new LoadViews())),\n catchError(() =>\n of({\n type: '[Subscription API] Error deleting view',\n })\n )\n )\n )\n )\n );\n\n loadUsers$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_USERS),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.userService.findAllUsers(state.context.subscriptionId).pipe(\n map((users) => ({\n type: '[Subscription API] Successfully loaded users',\n payload: users,\n })),\n tap((result) => {\n this.store$.dispatch(new SetUsers(result.payload));\n }),\n catchError(() =>\n of({\n type: '[Subscription API] Error loading users',\n })\n )\n )\n )\n )\n );\n\n loadServiceCatalogueItems$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_SERVICE_CATALOGUE),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.catalogService.getServices().pipe(\n map((services) => ({\n type: '[Services API] Successfully loaded services',\n payload: services,\n })),\n tap((result) => {\n this.store$.dispatch(new SetServiceCatalogue(result.payload));\n }),\n catchError(() =>\n of({\n type: '[Services API] Error loading users',\n })\n )\n )\n )\n )\n );\n\n updateServiceCatalogueItems$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(UPDATE_SERVICE_CATALOGUE),\n withLatestFrom(\n this.store$.select((state) => state.subscription.services)\n ),\n switchMap(([action, _]) =>\n this.catalogService.updateServices(action.payload).pipe(\n map(() => {\n const message = this.translateService.instant(\n 'error.messages.updatingCatalogueSuccess'\n );\n this.toastMessageService.showSuccess(message);\n return {\n type: SERVICE_CATALOGUE_UPDATED,\n };\n }),\n\n catchError(() => {\n this.store$.dispatch(new LoadServiceCatalogue());\n return of({\n type: `Error - ${UPDATE_SERVICE_CATALOGUE}`,\n });\n })\n )\n )\n );\n });\n\n loadCredentials$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_CREDENTIALS),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.credentialService.findAll().pipe(\n map((services) => ({\n type: '[Credentials API] Successfully loaded credentials',\n payload: services,\n })),\n tap((result) => {\n this.store$.dispatch(new SetCredentials(result.payload));\n }),\n catchError(() =>\n of({\n type: '[Credentials API] Error loading credentials',\n })\n )\n )\n )\n )\n );\n\n createCredential$ = createEffect(() =>\n this.actions$.pipe(\n ofType(CREATE_CREDENTIAL),\n mergeMap((action) =>\n this.credentialService.createAPIKey(action.payload).pipe(\n map((response) => ({\n type: '[Subscription API] Successfully created credential',\n payload: response,\n })),\n tap(() => this.store$.dispatch(new LoadCredentials())),\n catchError(() =>\n of({\n type: '[Subscription API] Error creating credential',\n })\n )\n )\n )\n )\n );\n\n deleteCredential$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DELETE_CREDENTIAL),\n mergeMap((action) =>\n this.credentialService\n .deleteAPIKey({\n systemId: action.payload.systemId,\n secret: action.payload.secret,\n })\n .pipe(\n map((response) => ({\n type: '[Subscription API] Successfully deleted credential',\n payload: response,\n })),\n tap(() => this.store$.dispatch(new LoadCredentials())),\n catchError(() =>\n of({\n type: '[Subscription API] Error deleting credential',\n })\n )\n )\n )\n )\n );\n\n loadMaintenanceInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_MAINTENANCE_INFO),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.subscriptionService\n .findMaintenanceInfo(state.context.subscriptionId)\n .pipe(\n map((maintenanceInfo) => ({\n type: '[Subscription API] Successfully loaded maintenance info',\n payload: maintenanceInfo,\n })),\n tap((result) => {\n this.store$.dispatch(new SetMaintenanceInfo(result.payload));\n }),\n catchError(() =>\n of({\n type: '[Subscription API] Error loading maintenance info',\n })\n )\n )\n )\n )\n );\n\n updateMaintenanceInfo$ = createEffect(() =>\n this.actions$.pipe(\n ofType(UPDATE_MAINTENANCE_INFO),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.subscriptionService\n .updateMaintenanceInfo(state.context.subscriptionId, action.payload)\n .pipe(\n map((maintenanceInfo) => ({\n type: '[Subscription API] Successfully updated maintenance info',\n payload: maintenanceInfo,\n })),\n tap(() => this.store$.dispatch(new LoadMaintenanceInfo())),\n catchError(() =>\n of({\n type: '[Subscription API] Error updating maintenance info',\n })\n )\n )\n )\n )\n );\n\n loadGrafanaDashboards$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(LOAD_GRAFANA_DASHBOARDS),\n switchMap((_) => {\n this.store$.dispatch(new SetGrafanaDashboardsLoaded(false));\n return this.grafanaDashboardService.findAll().pipe(\n map((dashboards) => {\n this.store$.dispatch(new SetGrafanaDashboardsLoaded(true));\n return {\n type: SET_GRAFANA_DASHBOARDS,\n payload: dashboards,\n };\n }),\n catchError(() =>\n of({\n type: '[Grafana dashboard api] Error loading dashboards',\n })\n )\n );\n })\n );\n });\n\n editUserRoles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(EDIT_USER_ROLES),\n switchMap((action) =>\n this.userService.editUserRoles(action.payload).pipe(\n tap((_) => {\n this.store$.dispatch(new LoadInvitations());\n this.store$.dispatch(new LoadUsers());\n }),\n map((user) => {\n const message = this.translateService.instant(\n 'api.success.userRolesEdited'\n );\n this.toastMessageService.showSuccess(message);\n return {\n type: `[User] User's role edited- ${user.id}`,\n payload: user,\n };\n }),\n catchError(() => of({ type: '[User API] Error editing user roles' }))\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private subscriptionService: SubscriptionService,\n private userService: UserService,\n private viewService: ViewService,\n private catalogService: ServicesDataService,\n private credentialService: CredentialService,\n private store$: Store,\n private userSubscriptionService: UserSubscriptionService,\n private grafanaDashboardService: GrafanaDashboardService,\n private toastMessageService: ToastMessageService,\n private translateService: TranslateService\n ) {}\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { TranslateService } from '@ngx-translate/core';\nimport { catchError, map, mergeMap, of, tap, withLatestFrom } from 'rxjs';\nimport { env } from '../../../../environments/environment';\nimport { ToastMessageService } from '../../../components/toast/toast-message.service';\nimport { UserRole } from '../../models/enums/roles';\nimport { AuthService } from '../../services/auth.service';\nimport { SubscriptionService } from '../../services/subscription.service';\nimport { UniversalFilterService } from '../../services/universal-filter.service';\nimport { UserService } from '../../services/user.service';\nimport { RoleHierarchyService } from '../../util';\nimport { UpdateLanguage } from '../actions/interface.actions';\nimport { LoadUsers } from '../actions/subscription.actions';\nimport {\n ACCEPT_TERMS,\n CREATE_INVITE,\n DECODE_ACCESS_TOKEN_FOR_USER_INFO,\n DELETE_USER,\n LoadInvitations,\n LoadProfile,\n LOAD_INVITATIONS,\n LOAD_PROFILE,\n LOAD_SELECTED_SUBSCRIPTION_ROLES,\n LOAD_SUBSCRIPTIONS,\n LOAD_UNIVERSAL_FILTERS,\n SetInvitations,\n SetProfile,\n SetProfileLoaded,\n SetRoles,\n SetRolesExtracted,\n SetSelectedSubscriptionRoles,\n SetSubscriptions,\n SetSubscriptionsLoaded,\n SetUniversalFilters,\n} from '../actions/user.actions';\nimport { AppState } from '../state/app.state.model';\n@Injectable()\nexport class UserEffects {\n loadProfile$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_PROFILE),\n mergeMap(() => {\n this.store$.dispatch(new SetProfileLoaded(false));\n return this.userService.findUserProfile().pipe(\n map((userProfile) => ({\n type: '[User API] Successfully loaded profile',\n payload: userProfile,\n })),\n tap((result) => {\n this.store$.dispatch(new SetProfile(result.payload));\n this.store$.dispatch(new SetProfileLoaded(true));\n }),\n catchError(() => of({ type: '[User API] Error loading profile' }))\n );\n })\n )\n );\n\n extractRoles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DECODE_ACCESS_TOKEN_FOR_USER_INFO),\n withLatestFrom(this.store$),\n map(([action, state]) => {\n this.store$.dispatch(new SetRolesExtracted(false));\n const token = this.authService.getAccessToken();\n const decodedToken = this.jwt.decodeToken(token);\n\n // Get realm roles such as SD_SYSTEM_OWNER etc.\n const userRoles: Array = decodedToken.realm_access.roles;\n\n // Get client roles such as SD_USER, SD_OWNER, etc. and any custom roles\n const activatedSubscriptionId = state.context.subscriptionId;\n\n userRoles.push(\n ...(decodedToken.resource_access[activatedSubscriptionId]?.roles ||\n [])\n );\n\n const effectiveUserRoles = new RoleHierarchyService().getEffectiveRoles(\n userRoles\n );\n const userLocale = decodedToken.locale;\n this.store$.dispatch(\n new UpdateLanguage(userLocale || env.DEFAULT_APPLICATION)\n );\n this.store$.dispatch(new SetRoles(effectiveUserRoles));\n this.store$.dispatch(new SetRolesExtracted(true));\n }),\n map(() => ({ type: '[User] Successfully extracted roles' }))\n )\n );\n\n loadSubscriptions$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_SUBSCRIPTIONS),\n mergeMap(() => {\n this.store$.dispatch(new SetSubscriptionsLoaded(false));\n return this.subscriptionService.findAll().pipe(\n map((subscriptions) => ({\n type: '[User API] Successfully loaded subscriptions',\n payload: subscriptions,\n })),\n tap((result) => {\n this.store$.dispatch(new SetSubscriptions(result.payload));\n this.store$.dispatch(new SetSubscriptionsLoaded(true));\n }),\n catchError(() =>\n of({ type: '[User API] Error loading subscriptions' })\n )\n );\n })\n )\n );\n\n loadUniversalFilters$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_UNIVERSAL_FILTERS),\n mergeMap(() => {\n return this.filterService.getAllFilters().pipe(\n map((filters) => ({\n type: '[Universal Filter API] Successfully loaded filters',\n payload: filters,\n })),\n tap((result) => {\n this.store$.dispatch(new SetUniversalFilters(result.payload));\n }),\n catchError(() =>\n of({\n type: '[Universal Filter API] Error loading filters',\n })\n )\n );\n })\n )\n );\n\n loadSelectedSubscriptionRoles$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_SELECTED_SUBSCRIPTION_ROLES),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) => {\n return this.subscriptionService\n .findRolesById(state.context.subscriptionId)\n .pipe(\n map((roles) => {\n return {\n type: '[user] Successfully loaded selected subscription roles',\n payload: roles,\n };\n }),\n tap((result: any) => {\n this.store$.dispatch(\n new SetSelectedSubscriptionRoles(result.payload)\n );\n }),\n catchError(() =>\n of({\n type: '[User] Error loading selected subscription roles',\n })\n )\n );\n })\n )\n );\n\n acceptTerms$ = createEffect(() =>\n this.actions$.pipe(\n ofType(ACCEPT_TERMS),\n withLatestFrom(this.store$),\n mergeMap(([action, state]) =>\n this.userService\n .update({\n ...state.user.profile,\n hasAcceptedTermsAndConditions: true,\n })\n .pipe(\n map((filters) => ({\n type: '[User API] Successfully accepted terms',\n payload: filters,\n })),\n tap(() => {\n this.store$.dispatch(new LoadProfile());\n }),\n catchError(() =>\n of({\n type: '[User API] Error accepting terms',\n })\n )\n )\n )\n )\n );\n\n createInvite$ = createEffect(() =>\n this.actions$.pipe(\n ofType(CREATE_INVITE),\n withLatestFrom(this.store$),\n mergeMap(([action]) =>\n this.userService.createInvite(action.payload).pipe(\n map((filters) => ({\n type: '[User API] Successfully invited user',\n payload: filters,\n })),\n tap(() => {\n this.toastMessageService.showSuccess(\n this.translateService.instant('common.userInvited')\n );\n this.store$.dispatch(new LoadUsers());\n }),\n catchError(() =>\n of({\n type: '[User API] Error inviting user',\n })\n )\n )\n )\n )\n );\n\n loadAllInvites$ = createEffect(() =>\n this.actions$.pipe(\n ofType(LOAD_INVITATIONS),\n withLatestFrom(this.store$),\n mergeMap(() =>\n this.userService.fetchAllInvites().pipe(\n map((invitations) => ({\n type: '[User API] Successfully loaded invitations',\n payload: invitations,\n })),\n tap((result) => {\n this.store$.dispatch(new SetInvitations(result.payload));\n }),\n catchError(() => of({ type: '[User API] Error loading invitations' }))\n )\n )\n )\n );\n\n deleteUser$ = createEffect(() =>\n this.actions$.pipe(\n ofType(DELETE_USER),\n withLatestFrom(this.store$),\n mergeMap(([action]) =>\n this.userService.deleteUser(action.payload).pipe(\n map((invitations) => ({\n type: '[User API] Successfully deleted user invitations',\n payload: invitations,\n })),\n tap((_) => {\n this.toastMessageService.showSuccess(\n this.translateService.instant('common.deletedUser')\n );\n this.store$.dispatch(new LoadInvitations());\n }),\n catchError(() =>\n of({ type: '[User API] Error deleting user invitations' })\n )\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private userService: UserService,\n private subscriptionService: SubscriptionService,\n private filterService: UniversalFilterService,\n private authService: AuthService,\n private jwt: JwtHelperService,\n private store$: Store,\n private toastMessageService: ToastMessageService,\n private translateService: TranslateService\n ) {}\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport * as SubscriptionActions from './subscription.actions';\nimport { AddlSubscriptionState } from './subscription.state.model';\n\nconst initialState: AddlSubscriptionState = {\n subscription: null,\n};\n\nexport function addlSubscriptionReducer(\n state = initialState,\n action: SubscriptionActions.SubscriptionActions\n) {\n if (action.type === SubscriptionActions.SET_SUBSCRIPTION) {\n return {\n ...state,\n subscription: action.payload,\n };\n } else {\n return state;\n }\n}\n","import {\n ASK_ASSISTANT,\n ASSISTANT_RESPONDED,\n CLEAR_CHAT,\n IAssistantActions,\n SET_CHAT_WINDOW_VISIBILITY,\n} from '../actions/co-pilot.actions';\nimport {\n ICoPilotConversation,\n ICoPilotMessages,\n ICoPilotState,\n} from '../state/co-pilot.state.model';\n\nconst defaultState: ICoPilotState = {\n conversation: {\n data: {\n messages: [],\n totalMessages: 0,\n },\n status: 'loaded',\n windowOpened: false,\n },\n};\n\nconst newState = (state: ICoPilotState, newData: Partial) => {\n return Object.assign({}, state, newData);\n};\n\nexport function coPilotReducer(\n state: ICoPilotState = defaultState,\n action: IAssistantActions\n) {\n switch (action.type) {\n case ASK_ASSISTANT: {\n const newMessages = [\n ...state.conversation.data.messages,\n action.payload,\n ] as ICoPilotMessages;\n return newState(state, {\n conversation: {\n ...state.conversation,\n data: { messages: newMessages, totalMessages: newMessages.length },\n status: 'loading',\n },\n });\n }\n case ASSISTANT_RESPONDED:\n return newState(state, {\n conversation: {\n ...state.conversation,\n data: action.payload as ICoPilotConversation,\n status: 'loaded',\n },\n });\n case CLEAR_CHAT:\n return newState(state, {\n conversation: {\n ...state.conversation,\n data: { totalMessages: 0, messages: [] } as ICoPilotConversation,\n status: 'loaded',\n },\n });\n case SET_CHAT_WINDOW_VISIBILITY:\n return newState(state, {\n conversation: {\n ...state.conversation,\n windowOpened: action.payload as boolean,\n },\n });\n\n default:\n return state;\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { PublicAppConfig } from '../../models/public-app-config.model';\nimport { View, ViewMenuItem } from '../../models/view.model';\nimport {\n AllContextActions,\n RESET_CONTEXT,\n SET_APPLICATION_ID,\n SET_LANDING_CONTENT,\n SET_LANDING_CONTENT_LOADED,\n SET_PAGE,\n SET_SUBSCRIPTION_ID,\n SET_SYSTEM_MAINTENANCE_INFO,\n SET_SYSTEM_MAINTENANCE_INFO_LOADED,\n SET_SYSTEM_MAINTENANCE_INFO_SEEN,\n SET_VIEW,\n} from '../actions/context.actions';\nimport { ContextState } from '../state/context.state.model';\n\ntype Action = AllContextActions;\n\nconst defaultState: ContextState = {\n applicationId: '',\n subscriptionId: '',\n view: {} as View,\n page: {} as ViewMenuItem,\n publicAppConfig: {} as PublicAppConfig,\n publicAppConfigLoaded: false,\n systemMaintenanceMsgLoaded: false,\n systemMaintenanceSeen: false,\n};\n\nconst newState = (state: ContextState, newData: Partial) => {\n return Object.assign({}, state, newData);\n};\n\nexport function contextReducer(\n state: ContextState = defaultState,\n action: Action\n) {\n switch (action.type) {\n case SET_APPLICATION_ID:\n return newState(state, { applicationId: action.payload });\n case SET_SUBSCRIPTION_ID:\n return newState(state, { subscriptionId: action.payload });\n case SET_VIEW:\n return newState(state, { view: action.payload });\n case SET_PAGE:\n return newState(state, { page: action.payload });\n case SET_LANDING_CONTENT:\n return newState(state, {\n publicAppConfig: action.payload,\n publicAppConfigLoaded: true,\n });\n case SET_LANDING_CONTENT_LOADED:\n return newState(state, { publicAppConfigLoaded: action.payload });\n case SET_SYSTEM_MAINTENANCE_INFO:\n return newState(state, {\n systemMaintenanceMsg: action.payload,\n systemMaintenanceMsgLoaded: true,\n });\n case SET_SYSTEM_MAINTENANCE_INFO_LOADED:\n return newState(state, {\n systemMaintenanceMsgLoaded: action.payload,\n });\n case SET_SYSTEM_MAINTENANCE_INFO_SEEN:\n return newState(state, {\n systemMaintenanceSeen: action.payload,\n });\n case RESET_CONTEXT:\n return newState(state, defaultState);\n default:\n return state;\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { env } from 'src/environments/environment';\nimport {\n AllInterfaceActions,\n SET_HEADER_TITLE,\n SET_LANGUAGE,\n SET_NEXT_SUBSCRIPTION,\n SHOW_GLOBAL_MAINTENANCE_MODAL,\n SHOW_SWITCH_MODAL,\n SHOW_TNC_MODAL,\n} from '../actions/interface.actions';\nimport { InterfaceState, Language } from '../state/interface.state.model';\n\ntype Action = AllInterfaceActions;\n\nconst defaultState: InterfaceState = {\n language: env.DEFAULT_LANGUAGE,\n title: 'Bosch Digital Service Dashboard',\n showSwitchModal: false,\n nextSubscription: undefined,\n showTncModal: false,\n showGlobalMaintenanceModal: false,\n};\n\nconst newState = (state: InterfaceState, newData: Partial) => {\n return Object.assign({}, state, newData);\n};\n\nexport function interfaceReducer(\n state: InterfaceState = defaultState,\n action: Action\n) {\n switch (action.type) {\n case SET_LANGUAGE:\n return newState(state, { language: action.payload });\n case SET_HEADER_TITLE:\n return newState(state, { title: action.payload });\n case SHOW_SWITCH_MODAL:\n return newState(state, { showSwitchModal: action.payload });\n case SET_NEXT_SUBSCRIPTION:\n return newState(state, { nextSubscription: action.payload });\n case SHOW_TNC_MODAL:\n return newState(state, { showTncModal: action.payload });\n case SHOW_GLOBAL_MAINTENANCE_MODAL:\n return newState(state, {\n showGlobalMaintenanceModal: action.payload,\n });\n default:\n return state;\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport {\n AllSubscriptionActions,\n RESET_SUBSCRIPTION,\n SET_CREDENTIALS,\n SET_CREDENTIALS_LOADED,\n SET_GRAFANA_DASHBOARDS,\n SET_GRAFANA_DASHBOARDS_LOADED,\n SET_INSIGHTS_PROJECTS_FETCHER_QUERY,\n SET_MAINTENANCE_INFO,\n SET_MAINTENANCE_INFO_LOADED,\n SET_MAINTENANCE_INFO_SEEN,\n SET_SERVICE_CATALOGUE,\n SET_SERVICE_CATALOGUE_LOADED,\n SET_SUBSCRIPTION,\n SET_SUBSCRIPTION_LOADED,\n SET_USERS,\n SET_USERS_LOADED,\n SET_VIEWS,\n SET_VIEWS_LOADED,\n} from '../actions/subscription.actions';\nimport { SubscriptionState } from '../state/subscription.state.model';\n\ntype Action = AllSubscriptionActions;\n\nconst defaultState: SubscriptionState = {\n subscriptionLoaded: false,\n subscription: {\n id: '',\n name: '',\n createdOn: '',\n expiresOn: '',\n status: '',\n appConfiguration: {\n id: '',\n name: '',\n createdOn: '',\n description: {\n en: '',\n de: '',\n },\n owningEntity: '',\n supportEmail: '',\n logoUrl: '',\n imageUrl: '',\n links: [],\n welcomePageTemplate: '',\n landingPageTemplate: '',\n views: [],\n externalServices: [],\n customConfig: '',\n externalRoleMgmtEnabled: false,\n copilotEnabled: false,\n pricePlan: '',\n },\n },\n viewsLoaded: false,\n views: [],\n usersLoaded: false,\n users: [],\n servicesLoaded: false,\n services: [],\n credentialsLoaded: false,\n credentials: [],\n maintenanceSeen: false,\n maintenanceLoaded: false,\n insightProjectsFetcherQuery: '',\n grafanaDashboards: {\n loaded: false,\n list: [],\n },\n};\n\nconst newState = (\n state: SubscriptionState,\n newData: Partial\n) => {\n return { ...state, ...newData };\n};\n\nexport function subscriptionReducer(\n state: SubscriptionState = defaultState,\n action: Action\n) {\n const update = (path: string) => {\n return setProperty(state, path, action.payload);\n };\n switch (action.type) {\n case SET_SUBSCRIPTION_LOADED:\n return newState(state, { subscriptionLoaded: action.payload });\n case SET_SUBSCRIPTION:\n return newState(state, {\n subscription: action.payload,\n });\n case SET_VIEWS_LOADED:\n return newState(state, { viewsLoaded: action.payload });\n case SET_VIEWS:\n return newState(state, { views: action.payload });\n case SET_USERS_LOADED:\n return newState(state, { usersLoaded: action.payload });\n case SET_USERS:\n return newState(state, { users: action.payload, usersLoaded: true });\n case SET_SERVICE_CATALOGUE_LOADED:\n return newState(state, { servicesLoaded: action.payload });\n case SET_SERVICE_CATALOGUE:\n return newState(state, {\n services: action.payload,\n servicesLoaded: true,\n });\n case SET_CREDENTIALS_LOADED:\n return newState(state, { credentialsLoaded: action.payload });\n case SET_CREDENTIALS:\n return newState(state, {\n credentials: action.payload,\n credentialsLoaded: true,\n });\n case SET_MAINTENANCE_INFO:\n return newState(state, {\n maintenanceMsg: action.payload,\n maintenanceLoaded: true,\n });\n case SET_MAINTENANCE_INFO_LOADED:\n return newState(state, { maintenanceLoaded: action.payload });\n case SET_MAINTENANCE_INFO_SEEN:\n return newState(state, { maintenanceSeen: action.payload });\n case RESET_SUBSCRIPTION:\n return newState(state, defaultState);\n case SET_INSIGHTS_PROJECTS_FETCHER_QUERY:\n return newState(state, { insightProjectsFetcherQuery: action.payload });\n\n case SET_GRAFANA_DASHBOARDS:\n return update('grafanaDashboards.list');\n case SET_GRAFANA_DASHBOARDS_LOADED:\n return update('grafanaDashboards.loaded');\n default:\n return state;\n }\n}\n\nconst setProperty = (obj: T, path: string, value: any): T => {\n const [head, ...rest] = path.split('.');\n\n return {\n ...obj,\n [head]: rest.length\n ? setProperty((obj as any)[head], rest.join('.'), value)\n : value,\n };\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { IdentityProvider, UserStatus } from '../../models';\nimport {\n AllUserActions,\n RESET_USER,\n SET_AVAILABLE_INSIGHT_PROJECTS,\n SET_AVAILABLE_INSIGHT_PROJECTS_LOADED,\n SET_GLOBAL_FILTER_SELECTED_PROJECTS,\n SET_GLOBAL_FILTER_SELECTED_PROJECTS_LOADED,\n SET_INVITE,\n SET_PROFILE,\n SET_PROFILE_LOADED,\n SET_ROLES,\n SET_ROLES_EXTRACTED,\n SET_SELECTED_SUBSCRIPTION_ROLES_LOADED,\n SET_SUBSCRIPTIONS,\n SET_SUBSCRIPTIONS_LOADED,\n SET_UNIVERSAL_FILTERS,\n} from '../actions/user.actions';\nimport { UserState } from '../state/user.state.model';\n\ntype Action = AllUserActions;\n\nconst defaultState: UserState = {\n profileLoaded: false,\n profile: {\n id: '',\n email: '',\n firstName: '',\n lastName: '',\n lastModified: '',\n displayname: '',\n hasAcceptedTermsAndConditions: false,\n roles: [],\n status: UserStatus.ACTIVE,\n technicalUser: false,\n identityProvider: IdentityProvider.Bosch,\n },\n subscriptionsLoaded: false,\n subscriptions: [],\n roles: [],\n universalFiltersLoaded: false,\n universalFilters: [],\n availableInsightProjectsLoaded: false,\n availableInsightProjects: {},\n globalFilterSelectedProjectsLoaded: false,\n globalFilterSelectedProjects: [],\n selectedSubscriptionsRoles: [],\n allInvitations: [],\n rolesExtracted: false,\n};\n\nconst newState = (state: UserState, newData: Partial) => {\n return Object.assign({}, state, newData);\n};\n\nexport function userReducer(state: UserState = defaultState, action: Action) {\n switch (action.type) {\n case SET_PROFILE_LOADED:\n return newState(state, { profileLoaded: action.payload });\n case SET_PROFILE:\n return newState(state, { profile: action.payload });\n case SET_SUBSCRIPTIONS_LOADED:\n return newState(state, { subscriptionsLoaded: action.payload });\n case SET_SUBSCRIPTIONS:\n return newState(state, {\n subscriptions: action.payload,\n });\n\n case SET_UNIVERSAL_FILTERS:\n return newState(state, {\n universalFilters: action.payload,\n universalFiltersLoaded: true,\n });\n case SET_AVAILABLE_INSIGHT_PROJECTS_LOADED:\n return newState(state, {\n availableInsightProjectsLoaded: action.payload,\n });\n case SET_AVAILABLE_INSIGHT_PROJECTS:\n return newState(state, { availableInsightProjects: action.payload });\n case SET_GLOBAL_FILTER_SELECTED_PROJECTS_LOADED:\n return newState(state, {\n globalFilterSelectedProjectsLoaded: action.payload,\n });\n case SET_GLOBAL_FILTER_SELECTED_PROJECTS:\n return newState(state, { globalFilterSelectedProjects: action.payload });\n case SET_ROLES:\n return newState(state, { roles: action.payload });\n case SET_ROLES_EXTRACTED:\n return newState(state, { rolesExtracted: action.payload });\n case RESET_USER:\n return newState(state, defaultState);\n case SET_SELECTED_SUBSCRIPTION_ROLES_LOADED:\n return newState(state, {\n selectedSubscriptionsRoles: action.payload,\n });\n case SET_INVITE:\n return newState(state, {\n allInvitations: action.payload,\n });\n default:\n return state;\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { ActionReducerMap } from '@ngrx/store';\nimport * as addlSubscriptionReducer from '../../../dashboard/integrations/custom/addl/state/subscription/subscription.reducer';\nimport { coPilotReducer } from './co-pilot.reducer';\nimport { contextReducer } from './context.reducer';\nimport { interfaceReducer } from './interface.reducer';\nimport { subscriptionReducer } from './subscription.reducer';\nimport { userReducer } from './user.reducer';\n\nexport interface State {}\n\nexport const reducers: ActionReducerMap = {\n user: userReducer,\n subscription: subscriptionReducer,\n context: contextReducer,\n interface: interfaceReducer,\n coPilot: coPilotReducer,\n addl: addlSubscriptionReducer.addlSubscriptionReducer,\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { OAuthStorage } from 'angular-oauth2-oidc';\n\n@Injectable()\nexport class CustomOAuthStorage implements OAuthStorage {\n private memoryStorage: { [key: string]: string } = {};\n private persistentStorage = localStorage;\n private getStorage(key: string) {\n if (\n [\n 'access_token_stored_at',\n 'id_token_stored_at',\n 'id_token_expires_at',\n 'id_token_claims_obj',\n 'granted_scopes',\n 'refresh_token',\n ].includes(key)\n ) {\n return this.memoryStorage;\n }\n return this.persistentStorage;\n }\n\n getItem(key: string): string {\n return this.getStorage(key)[key];\n }\n\n setItem(key: string, value: string): void {\n this.getStorage(key)[key] = value;\n }\n\n removeItem(key: string): void {\n delete this.getStorage(key)[key];\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport {\n HttpBackend,\n provideHttpClient,\n withInterceptors,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport {\n APP_INITIALIZER,\n enableProdMode,\n importProvidersFrom,\n} from '@angular/core';\nimport { bootstrapApplication, BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { provideRouter } from '@angular/router';\nimport { JwtHelperService, JWT_OPTIONS } from '@auth0/angular-jwt';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideStore } from '@ngrx/store';\nimport { provideStoreDevtools } from '@ngrx/store-devtools';\nimport { FormlyBootstrapModule } from '@ngx-formly/bootstrap';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport {\n NullValidationHandler,\n OAuthStorage,\n provideOAuthClient,\n} from 'angular-oauth2-oidc';\nimport { MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';\nimport { AppComponent } from './app/app.component';\nimport { initializeAppFactory } from './app/app.initializer';\nimport { appRoutes } from './app/app.routes';\nimport { NumberComponent } from './app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/number/number.component';\nimport { RadioComponent } from './app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/radio/radio.component';\nimport { TextfieldComponent } from './app/dashboard/integrations/custom/addl/shared/dynamic-form/fields/textfield/textfield.component';\nimport { AddlSubscriptionEffects } from './app/dashboard/integrations/custom/addl/state/subscription/subscription.effects';\nimport { httpInterceptors } from './app/interceptors';\nimport { AppEffects } from './app/shared/data/effects/app.effects';\nimport { CoPilotEffects } from './app/shared/data/effects/co-pilot.effects';\nimport { ContextEffects } from './app/shared/data/effects/context.effects';\nimport { InterfaceEffects } from './app/shared/data/effects/interface.effects';\nimport { SubscriptionEffects } from './app/shared/data/effects/subscription.effects';\nimport { UserEffects } from './app/shared/data/effects/user.effects';\nimport { reducers } from './app/shared/data/reducers';\nimport { AuthService } from './app/shared/services/auth.service';\nimport { CustomOAuthStorage } from './app/shared/services/custom-oauth2-storage.service';\nimport { env } from './environments/environment';\n\nif (env.production) {\n enableProdMode();\n}\n\nbootstrapApplication(AppComponent, {\n providers: [\n importProvidersFrom(BrowserModule),\n provideRouter(appRoutes),\n importProvidersFrom(BrowserAnimationsModule),\n provideHttpClient(\n withInterceptorsFromDi(),\n withInterceptors(httpInterceptors)\n ),\n {\n provide: APP_INITIALIZER,\n useFactory: initializeAppFactory,\n deps: [AuthService],\n multi: true,\n },\n provideStore(reducers),\n provideStoreDevtools({ maxAge: 30 }),\n provideEffects([\n AppEffects,\n UserEffects,\n SubscriptionEffects,\n ContextEffects,\n InterfaceEffects,\n CoPilotEffects,\n AddlSubscriptionEffects,\n ]),\n importProvidersFrom(\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: createTranslateLoader,\n deps: [HttpBackend],\n },\n defaultLanguage: env.DEFAULT_LANGUAGE,\n })\n ),\n provideOAuthClient(\n {\n resourceServer: {\n sendAccessToken: true,\n },\n },\n NullValidationHandler\n ),\n { provide: OAuthStorage, useClass: CustomOAuthStorage },\n JwtHelperService,\n { provide: JWT_OPTIONS, useValue: JWT_OPTIONS },\n importProvidersFrom(\n FormlyModule.forRoot({\n types: [\n {\n name: 'app-addl-textfield',\n component: TextfieldComponent,\n },\n {\n name: 'app-addl-number',\n component: NumberComponent,\n },\n {\n name: 'app-addl-radio',\n component: RadioComponent,\n },\n ],\n }),\n FormlyBootstrapModule\n ),\n ],\n}).catch((error) => {\n console.error(error);\n console.warn(\n 'There was a problem bootstrapping the Service Dashboard application.'\n );\n});\n\nexport function createTranslateLoader(http: HttpBackend) {\n return new MultiTranslateHttpLoader(http, [\n { prefix: './assets/i18n/', suffix: '.json?v=' + new Date().getTime() },\n ]);\n}\n"],"mappings":"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","names":["JwtHelperService","action","first","state","actions","DevtoolsDispatcher","DevtoolsExtension","action","action","initialState","DevtoolsExtension","StoreDevtools","DevtoolsExtension","StoreDevtoolsModule","i0","ɵɵelementContainerStart","ɵɵelement","ɵɵelementContainerEnd","ɵɵadvance","ɵɵproperty","item_r1","message","ɵɵsanitizeHtml","ɵɵtext","ɵɵtextInterpolate1","ɵɵelementStart","ɵɵtemplate","ToastMessageComponent_div_0_ng_container_3_Template","ToastMessageComponent_div_0_ng_container_4_Template","ToastMessageComponent_div_0_ng_container_5_Template","ToastMessageComponent_div_0_ng_container_6_Template","ToastMessageComponent_div_0_ng_container_7_Template","ɵɵelementEnd","ToastMessageComponent_div_0_ng_container_9_Template","ToastMessageComponent_div_0_ng_template_10_Template","ɵɵtemplateRefExtractor","ɵɵlistener","ToastMessageComponent_div_0_Template_div_click_12_listener","restoredCtx","ɵɵrestoreView","_r13","$implicit","ctx_r12","ɵɵnextContext","ɵɵresetView","removeNotification","ɵɵclassMapInterpolate1","ctx_r0","position","cssClass","messageIsHTML","_r9","ToastMessageComponent","constructor","toastMessageService","notifications","ngOnInit","notifications$","subscribe","slice","notification","filter","n","id","type","ToastType","Success","Error","Info","Warning","notificationsTrackByFn","index","item","ɵɵdirectiveInject","ToastMessageService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","ToastMessageComponent_Template","rf","ctx","ToastMessageComponent_div_0_Template","NgFor","NgIf","NgSwitch","NgSwitchCase","NgSwitchDefault","styles","dataToLoad","state","user","subscriptionsLoaded","profileLoaded","subscription","subscriptionLoaded","viewsLoaded","subscriptionLoadProgress","filter","Boolean","length","AppComponent","constructor","authService","store$","loadingIndicatorService","translateService","hideLoadingOnPages","map","p","subscriptionLoadProgress$","select","subscriptionLoadProgress","_loadingInProgress$","combineLatest","currentUserInfo$","pipe","currentUser","progress","profileLoaded","profile","id","find","location","pathname","includes","ngOnInit","subscribe","show","message","firstValueFrom","get","changeConfig","ɵɵdirectiveInject","AuthService","Store","LoadingIndicatorService","TranslateService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","template","AppComponent_Template","rf","ctx","i0","ɵɵelement","RouterOutlet","ToastMessageComponent","LoadingIndicatorComponent","encapsulation","initializeAppFactory","authService","redirectToPageBasedOnLoginState","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵelementContainerEnd","ɵɵadvance","ɵɵproperty","item_r7","appConfiguration","id","ɵɵtextInterpolate1","name","ɵɵpropertyInterpolate","ɵɵpipeBind2","ɵɵpipeBind1","ctx_r6","selectedLanguage$","description","ɵɵtemplate","SubscriptionAccessDeniedPageComponent_div_14_ng_container_1_Template","ctx_r3","subscriptions$","SubscriptionAccessDeniedPageComponent","constructor","store$","menuService","closeErrorNotification","EventEmitter","select","state","interface","language","subscription$","subscription","user","subscriptions","appConfig$","context","publicAppConfig","menuItems$","views","menuitems","ngOnInit","dispatch","UpdateInterfaceTitle","en","de","ɵɵdirectiveInject","Store","MenuService","selectors","inputs","errorMessage","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","SubscriptionAccessDeniedPageComponent_Template","rf","ctx","ɵɵelement","SubscriptionAccessDeniedPageComponent_p_8_Template","SubscriptionAccessDeniedPageComponent_ng_template_10_Template","ɵɵtemplateRefExtractor","SubscriptionAccessDeniedPageComponent_div_14_Template","SubscriptionAccessDeniedPageComponent_ng_template_16_Template","tmp_0_0","length","_r2","tmp_2_0","ɵɵpureFunction0","_c0","_c1","tmp_3_0","_r5","CommonModule","NgForOf","NgIf","NgStyle","AsyncPipe","I18nSelectPipe","RouterModule","RouterLink","TranslateModule","TranslatePipe","HeaderComponent","PublicFooterComponent","styles","GenericErrorType","SystemDownErrorPageComponent","constructor","GenericErrorType","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","SystemDownErrorPageComponent_Template","rf","ctx","i0","ɵɵelement","ɵɵproperty","ɵɵpipeBind1","CommonModule","TranslateModule","TranslatePipe","ErrorComponent","encapsulation","TermsComponent","constructor","store$","selectedLanguage$","select","state","interface","language","isAccepted","profile$","user","profile","content$","context","publicAppConfig","toggleTermsOfUse","acceptTermsOfUse","dispatch","type","ɵɵdirectiveInject","Store","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","TermsComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵlistener","TermsComponent_Template_app_container_dialog_confirmed_0_listener","ɵɵtext","ɵɵelementEnd","TermsComponent_Template_input_change_10_listener","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","ɵɵtextInterpolate1","tmp_7_0","legalInfo","termsOfUseUrl","ɵɵsanitizeUrl","tmp_10_0","dataProtectionNoticeUrl","TranslateModule","TranslatePipe","AsyncPipe","ContainerDialogComponent","styles","i0","ɵɵelement","MainContentContainerComponent","constructor","store$","router","iotInsightService","profile$","select","state","user","profile","subscriptions$","subscriptions","ɵɵdirectiveInject","Store","Router","IotInsightService","selectors","standalone","features","ɵɵStandaloneFeature","ngContentSelectors","_c1","decls","vars","consts","template","MainContentContainerComponent_Template","rf","ctx","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵtemplate","MainContentContainerComponent_app_terms_7_Template","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c0","ɵɵpipeBind1","actionTypeIsInsight$","tmp_3_0","hasAcceptedTermsAndConditions","length","HeaderComponent","PublicFooterComponent","TermsComponent","AsyncPipe","NgClass","NgIf","BannerDisplayManagerComponent","styles","i0","ɵɵelementStart","ɵɵlistener","JoinDemoComponent_app_redeem_code_72_Template_app_redeem_code_close_0_listener","ɵɵrestoreView","_r2","ctx_r1","ɵɵnextContext","ɵɵresetView","showRedeemModal$","next","ɵɵelementEnd","JoinDemoComponent","constructor","store$","joinDemoService","subscriptionId$","select","state","context","subscriptionId","BehaviorSubject","joinSandbox","createEvaluationSubscription","ɵɵdirectiveInject","Store","JoinDemoService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","JoinDemoComponent_Template","rf","ctx","ɵɵtext","ɵɵelement","JoinDemoComponent_Template_button_click_46_listener","JoinDemoComponent_Template_button_click_66_listener","ɵɵtemplate","JoinDemoComponent_app_redeem_code_72_Template","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtextInterpolate","ɵɵpropertyInterpolate","ɵɵproperty","CommonModule","NgIf","AsyncPipe","TranslateModule","TranslatePipe","RedeemInvitationCodeComponent","MainContentContainerComponent","styles","ApplicationIdComponent","constructor","authService","ngOnInit","logoutUserIfCurrentLoginNotSupported","idpList","subscribe","list","includes","getCurrentLoginType","logout","ɵɵdirectiveInject","AuthService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","template","ApplicationIdComponent_Template","rf","ctx","i0","ɵɵelement","CommonModule","RouterModule","RouterOutlet","TranslateModule","encapsulation","i0","ɵɵelement","SubscriptionIdPageComponent","constructor","copilotService","ɵɵdirectiveInject","CopilotService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","SubscriptionIdPageComponent_Template","rf","ctx","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","SubscriptionIdPageComponent_app_co_pilot_2_Template","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","featureEnabled","RouterOutlet","MainContentContainerComponent","CoPilotComponent","NgIf","AsyncPipe","encapsulation","appRoutes","path","pathMatch","redirectTo","shortUrls","defaultApplication","visitorWelcome","loadComponent","JoinDemoComponent","canActivate","validAccessTokenGuard","joinDemoGuard","genericError","GenericErrorPageComponent","systemDown","SystemDownErrorPageComponent","subscriptionAccessDenied","SubscriptionAccessDeniedPageComponent","ApplicationIdComponent","applicationIdValidatorGuard","children","auth","loadChildren","SubscriptionIdPageComponent","subscriptionValidatorGuard","admin","activatedRouteSnapshot","validRoleGuard","requiredRoles","UserRole","Admin","ViewIdComponent","viewValidatorGuard","i0","ɵɵelementStart","ɵɵlistener","NumberComponent_button_5_Template_button_click_0_listener","ɵɵrestoreView","_r3","ctx_r2","ɵɵnextContext","ɵɵresetView","onInfoTextIconClick","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵtext","ɵɵtextInterpolate1","ctx_r4","to","ɵɵtextInterpolate2","ctx_r6","props","min","ctx_r7","max","ctx_r9","ɵɵelementContainerStart","ɵɵtemplate","NumberComponent_div_6_ng_container_15_div_1_Template","NumberComponent_div_6_ng_container_15_div_2_Template","NumberComponent_div_6_ng_container_15_div_3_Template","NumberComponent_div_6_ng_container_15_div_4_Template","ɵɵelementContainerEnd","ɵɵproperty","ctx_r5","control","errors","NumberComponent_div_6_Template_input_keydown_9_listener","$event","_r11","ctx_r10","validateNumericalInput","key","NumberComponent_div_6_Template_button_click_10_listener","ctx_r12","decreaseNumber","NumberComponent_div_6_Template_button_click_12_listener","ctx_r13","increaseNumber","NumberComponent_div_6_div_14_Template","NumberComponent_div_6_ng_container_15_Template","ctx_r1","id","ɵɵtextInterpolate","label","invalid","dirty","NumberComponent","FieldType","constructor","dynamicFormService","subscriptions","Subscription","activeTillDisplayOrder","ngOnInit","add","activeTillDisplayOrder$","subscribe","value","field","reset","ngOnDestroy","unsubscribe","formControl","markAsDirty","currentValue","setValue","showInfoText","input","length","regex","test","ɵɵdirectiveInject","DynamicFormService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","NumberComponent_Template","rf","ctx","NumberComponent_button_5_Template","NumberComponent_div_6_Template","ɵɵpureFunction1","_c0","CommonModule","NgClass","NgIf","ReactiveFormsModule","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","styles","i0","ɵɵelementStart","ɵɵlistener","RadioComponent_button_5_Template_button_click_0_listener","ɵɵrestoreView","_r3","ctx_r2","ɵɵnextContext","ɵɵresetView","onInfoTextIconClick","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵtext","ɵɵproperty","ctx_r4","fieldKey","option_r6","value","control","id","ɵɵtextInterpolate","label","ɵɵtextInterpolate1","ctx_r5","to","ɵɵelementContainerStart","ɵɵtemplate","RadioComponent_div_6_mat_grid_tile_8_Template","ɵɵelementContainerEnd","RadioComponent_div_6_div_10_Template","ctx_r1","radiosPerRow","RadioComponent","FieldType","constructor","changeDetectorRef","dynamicFormService","radioConstants","CONSTANTS","FORM","LAYOUT","RADIO","subscriptions","Subscription","activeTillDisplayOrder","NUMBER_OF_BUTTONS_FULLSIZE","ngOnInit","add","activeTillDisplayOrder$","subscribe","field","props","reset","detectChanges","fieldInfoTextIsShownFor$","pipe","tap","infoTextKey","NUMBER_OF_BUTTONS_REDUCED","ngOnDestroy","unsubscribe","key","formControl","showInfoText","onChangeResetFormBellow","next","console","log","ɵɵdirectiveInject","ChangeDetectorRef","DynamicFormService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","RadioComponent_Template","rf","ctx","RadioComponent_button_5_Template","RadioComponent_div_6_Template","ɵɵpureFunction1","_c0","CommonModule","NgClass","NgForOf","NgIf","KeyValuePipe","MatGridListModule","MatGridList","MatGridTile","ReactiveFormsModule","DefaultValueAccessor","RadioControlValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","styles","changeDetection","i0","ɵɵelementStart","ɵɵlistener","TextfieldComponent_button_6_Template_button_click_0_listener","ɵɵrestoreView","_r3","ctx_r2","ɵɵnextContext","ɵɵresetView","onInfoTextIconClick","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵtext","ɵɵtextInterpolate1","ctx_r4","to","ctx_r6","props","ctx_r13","ɵɵtemplate","TextfieldComponent_div_7_ng_container_11_ng_template_2_div_0_Template","ɵɵproperty","ctx_r7","control","errors","_r10","TextfieldComponent_div_7_ng_container_11_ng_template_4_div_0_Template","ctx_r9","_r12","ɵɵelementContainerStart","TextfieldComponent_div_7_ng_container_11_div_1_Template","TextfieldComponent_div_7_ng_container_11_ng_template_2_Template","ɵɵtemplateRefExtractor","TextfieldComponent_div_7_ng_container_11_ng_template_4_Template","TextfieldComponent_div_7_ng_container_11_ng_template_6_Template","ɵɵelementContainerEnd","ctx_r5","_r8","TextfieldComponent_div_7_Template_input_keydown_9_listener","$event","_r16","ctx_r15","validateLength","key","TextfieldComponent_div_7_div_10_Template","TextfieldComponent_div_7_ng_container_11_Template","ctx_r1","id","ɵɵtextInterpolate2","value","length","maxLength","invalid","dirty","TextfieldComponent","FieldType","constructor","dynamicFormService","subscriptions","Subscription","activeTillDisplayOrder","ngOnInit","field","add","activeTillDisplayOrder$","subscribe","ngOnDestroy","unsubscribe","formControl","showInfoText","input","ɵɵdirectiveInject","DynamicFormService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","TextfieldComponent_Template","rf","ctx","TextfieldComponent_button_6_Template","TextfieldComponent_div_7_Template","ɵɵpureFunction1","_c0","CommonModule","NgClass","NgIf","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","styles","AddlSubscriptionEffects","constructor","actions$","http","store$","fetchSubscription","createEffect","pipe","ofType","FETCH_SUBSCRIPTION","switchMap","get","map","subscription","SetSubscription","select","state","appConfiguration","customConfig","API","baseUrl","subscribe","data","CONSTANTS","SUBSCRIPTION_DETAILS","API_BASE_PATH","ɵɵinject","Actions","HttpClient","Store","factory","ɵfac","HandleErrorService","constructor","modalService","handleError","err","status","modalRef","open","ErrorComponent","animation","backdrop","errorMessage","error","JSON","parse","componentInstance","doRedirectOnClose","ɵɵinject","NgbModal","factory","ɵfac","providedIn","httpResponseInterceptor","request","next","errorHandlerService","inject","HandleErrorService","storeAppState","Store","pipe","map","event","HttpResponse","catchError","err","needHandleError","Object","values","firstValueFrom","select","state","subscription","appConfiguration","customConfig","API","find","u","url","startsWith","handleError","throwError","blobRequestInterceptor","req","next","pipe","catchError","err","HttpErrorResponse","error","Blob","type","Promise","resolve","reject","reader","FileReader","onload","e","errmsg","JSON","parse","target","result","headers","status","statusText","url","_","onerror","readAsText","throwError","requestHeaderInterceptor","req","next","store","inject","Store","modifyRequest","activeSub","firstValueFrom","select","state","context","subscriptionId","url","includes","env","AUTH_URL","clone","headers","set","Observable","observer","then","modifiedRequest","subscribe","event","error","complete","responseCodeInterceptor","req","next","quotaNotifierService","inject","QuotaNotifierService","toastMessageService","ToastMessageService","translateService","TranslateService","authService","AuthService","routingService","RoutingService","pipe","map","event","HttpResponse","catchError","errorEvent","headers","get","GLOBAL_API_ERROR_MESSAGE_HANDLING_HEADER_KEY","url","startsWith","env","API_URL","throwError","errorMessageShownGlobally","status","error","redirectToPageBasedOnLoginState","notify","showError","errorMessage","message","loadSystemDownPage","instant","httpInterceptors","blobRequestInterceptor","requestHeaderInterceptor","responseCodeInterceptor","httpResponseInterceptor","AppEffects","constructor","actions$","ɵɵinject","Actions","factory","ɵfac","CoPilotEffects","constructor","actions$","store$","http","askAssistant$","createEffect","pipe","ofType","ASK_ASSISTANT","withLatestFrom","select","store","coPilot","conversation","data","messages","switchMap","_","apiUrl","env","API_URL","put","first","map","type","ASSISTANT_RESPONDED","payload","totalMessages","length","catchError","response","environment","assistantResponse","content","error","message","role","of","ɵɵinject","Actions","Store","HttpClient","factory","ɵfac","ApplicationMetadataService","constructor","logger","httpClient","env","API_PUBLIC_URL","log","findById","id","debug","url","get","pipe","first","map","restResult","ɵɵinject","LoggerService","HttpClient","factory","ɵfac","providedIn","MaintenanceService","constructor","logger","httpClient","env","API_PUBLIC_URL","log","findSystemInfo","get","pipe","first","updateMaintenanceInfo","message","debug","url","API_URL","put","observe","#toMaintenanceMessage","item","en","de","type","active","ɵɵinject","LoggerService","HttpClient","factory","ɵfac","providedIn","ContextEffects","constructor","actions$","store$","applicationMetadataService","maintenanceService","routingService","loadPublicAppConfig$","createEffect","pipe","ofType","LOAD_PUBLIC_APP_CONFIG","withLatestFrom","mergeMap","action","state","findById","context","applicationId","map","userProfile","type","payload","tap","result","dispatch","SetLandingContent","catchError","_","loadDefaultApplication","of","loadSystemMaintenanceInfo$","LOAD_SYSTEM_MAINTENANCE_INFO","findSystemInfo","msg","SetSystemMaintenanceInfo","updateSystemMaintenanceInfo$","UPDATE_SYSTEM_MAINTENANCE_INFO","updateMaintenanceInfo","systemMaintenanceInfo","LoadSystemMaintenanceInfo","ɵɵinject","Actions","Store","ApplicationMetadataService","MaintenanceService","RoutingService","factory","ɵfac","InterfaceEffects","constructor","actions$","store$","titleService","translateService","updateInterfaceTitle$","createEffect","pipe","ofType","UPDATE_INTERFACE_TITLE","withLatestFrom","tap","action","state","routeTitle","interface","language","payload","en","de","subscription","name","appTitle","title","setTitle","dispatch","SetHeaderTitle","map","type","updateLanguage$","UPDATE_LANGUAGE","lang","use","SetLanguage","ɵɵinject","Actions","Store","Title","TranslateService","factory","ɵfac","SubscriptionService","constructor","httpClient","logger","env","API_URL","log","findAll","get","pipe","first","findRolesById","id","debug","url","findMaintenanceInfo","updateMaintenanceInfo","message","put","observe","map","_","ɵɵinject","HttpClient","LoggerService","factory","ɵfac","providedIn","ViewService","constructor","httpClient","logger","env","API_URL","log","findAll","subId","get","pipe","first","createView","message","debug","url","put","observe","updateViews","existingViews","changedView","updatedViewArray","map","view","id","_","deleteView","viewId","delete","ɵɵinject","HttpClient","LoggerService","factory","ɵfac","providedIn","ServicesDataService","constructor","httpClient","logger","getServices","url","env","API_URL","get","pipe","first","updateServices","list","put","ɵɵinject","HttpClient","LoggerService","factory","ɵfac","providedIn","CredentialService","constructor","httpClient","logger","env","API_CONNECTOR_URL","findAll","log","url","get","pipe","first","createAPIKey","message","debug","put","observe","deleteAPIKey","delete","body","ɵɵinject","HttpClient","LoggerService","factory","ɵfac","providedIn","SubscriptionEffects","constructor","actions$","subscriptionService","userService","viewService","catalogService","credentialService","store$","userSubscriptionService","grafanaDashboardService","toastMessageService","translateService","loadSubscription$","createEffect","pipe","ofType","LOAD_SUBSCRIPTION","switchMap","_","activeSubscription$","tap","dispatch","SetSubscriptionLoaded","map","activeSubscription","SetSubscription","type","payload","loadViews$","LOAD_VIEWS","withLatestFrom","mergeMap","state","SetViewsLoaded","findAll","context","subscriptionId","views","result","SetViews","activeView","firstValueFrom","select","store","view","id","views$","SetView","find","v","catchError","of","createView$","CREATE_VIEW","action","createView","subscription","response","LoadViews","updateViews$","UPDATE_VIEWS","updateViews","deleteView$","DELETE_VIEW","deleteView","loadUsers$","LOAD_USERS","findAllUsers","users","SetUsers","loadServiceCatalogueItems$","LOAD_SERVICE_CATALOGUE","getServices","services","SetServiceCatalogue","updateServiceCatalogueItems$","UPDATE_SERVICE_CATALOGUE","updateServices","message","instant","showSuccess","SERVICE_CATALOGUE_UPDATED","LoadServiceCatalogue","loadCredentials$","LOAD_CREDENTIALS","SetCredentials","createCredential$","CREATE_CREDENTIAL","createAPIKey","LoadCredentials","deleteCredential$","DELETE_CREDENTIAL","deleteAPIKey","systemId","secret","loadMaintenanceInfo$","LOAD_MAINTENANCE_INFO","findMaintenanceInfo","maintenanceInfo","SetMaintenanceInfo","updateMaintenanceInfo$","UPDATE_MAINTENANCE_INFO","updateMaintenanceInfo","LoadMaintenanceInfo","loadGrafanaDashboards$","LOAD_GRAFANA_DASHBOARDS","SetGrafanaDashboardsLoaded","dashboards","SET_GRAFANA_DASHBOARDS","editUserRoles$","EDIT_USER_ROLES","editUserRoles","LoadInvitations","LoadUsers","user","ɵɵinject","Actions","SubscriptionService","UserService","ViewService","ServicesDataService","CredentialService","Store","UserSubscriptionService","GrafanaDashboardService","ToastMessageService","TranslateService","factory","ɵfac","UserEffects","constructor","actions$","userService","subscriptionService","filterService","authService","jwt","store$","toastMessageService","translateService","loadProfile$","createEffect","pipe","ofType","LOAD_PROFILE","mergeMap","dispatch","SetProfileLoaded","findUserProfile","map","userProfile","type","payload","tap","result","SetProfile","catchError","of","extractRoles$","DECODE_ACCESS_TOKEN_FOR_USER_INFO","withLatestFrom","action","state","SetRolesExtracted","token","getAccessToken","decodedToken","decodeToken","userRoles","realm_access","roles","activatedSubscriptionId","context","subscriptionId","push","resource_access","effectiveUserRoles","RoleHierarchyService","getEffectiveRoles","userLocale","locale","UpdateLanguage","env","DEFAULT_APPLICATION","SetRoles","loadSubscriptions$","LOAD_SUBSCRIPTIONS","SetSubscriptionsLoaded","findAll","subscriptions","SetSubscriptions","loadUniversalFilters$","LOAD_UNIVERSAL_FILTERS","getAllFilters","filters","SetUniversalFilters","loadSelectedSubscriptionRoles$","LOAD_SELECTED_SUBSCRIPTION_ROLES","findRolesById","SetSelectedSubscriptionRoles","acceptTerms$","ACCEPT_TERMS","update","user","profile","hasAcceptedTermsAndConditions","LoadProfile","createInvite$","CREATE_INVITE","createInvite","showSuccess","instant","LoadUsers","loadAllInvites$","LOAD_INVITATIONS","fetchAllInvites","invitations","SetInvitations","deleteUser$","DELETE_USER","deleteUser","_","LoadInvitations","ɵɵinject","Actions","UserService","SubscriptionService","UniversalFilterService","AuthService","JwtHelperService","Store","ToastMessageService","TranslateService","factory","ɵfac","initialState","subscription","addlSubscriptionReducer","state","action","type","SET_SUBSCRIPTION","payload","defaultState","conversation","data","messages","totalMessages","status","windowOpened","newState","state","newData","Object","assign","coPilotReducer","action","type","ASK_ASSISTANT","newMessages","payload","length","ASSISTANT_RESPONDED","CLEAR_CHAT","SET_CHAT_WINDOW_VISIBILITY","defaultState","applicationId","subscriptionId","view","page","publicAppConfig","publicAppConfigLoaded","systemMaintenanceMsgLoaded","systemMaintenanceSeen","newState","state","newData","Object","assign","contextReducer","action","type","SET_APPLICATION_ID","payload","SET_SUBSCRIPTION_ID","SET_VIEW","SET_PAGE","SET_LANDING_CONTENT","SET_LANDING_CONTENT_LOADED","SET_SYSTEM_MAINTENANCE_INFO","systemMaintenanceMsg","SET_SYSTEM_MAINTENANCE_INFO_LOADED","SET_SYSTEM_MAINTENANCE_INFO_SEEN","RESET_CONTEXT","defaultState","language","env","DEFAULT_LANGUAGE","title","showSwitchModal","nextSubscription","undefined","showTncModal","showGlobalMaintenanceModal","newState","state","newData","Object","assign","interfaceReducer","action","type","SET_LANGUAGE","payload","SET_HEADER_TITLE","SHOW_SWITCH_MODAL","SET_NEXT_SUBSCRIPTION","SHOW_TNC_MODAL","SHOW_GLOBAL_MAINTENANCE_MODAL","defaultState","subscriptionLoaded","subscription","id","name","createdOn","expiresOn","status","appConfiguration","description","en","de","owningEntity","supportEmail","logoUrl","imageUrl","links","welcomePageTemplate","landingPageTemplate","views","externalServices","customConfig","externalRoleMgmtEnabled","copilotEnabled","pricePlan","viewsLoaded","usersLoaded","users","servicesLoaded","services","credentialsLoaded","credentials","maintenanceSeen","maintenanceLoaded","insightProjectsFetcherQuery","grafanaDashboards","loaded","list","newState","state","newData","subscriptionReducer","action","update","path","setProperty","payload","type","SET_SUBSCRIPTION_LOADED","SET_SUBSCRIPTION","SET_VIEWS_LOADED","SET_VIEWS","SET_USERS_LOADED","SET_USERS","SET_SERVICE_CATALOGUE_LOADED","SET_SERVICE_CATALOGUE","SET_CREDENTIALS_LOADED","SET_CREDENTIALS","SET_MAINTENANCE_INFO","maintenanceMsg","SET_MAINTENANCE_INFO_LOADED","SET_MAINTENANCE_INFO_SEEN","RESET_SUBSCRIPTION","SET_INSIGHTS_PROJECTS_FETCHER_QUERY","SET_GRAFANA_DASHBOARDS","SET_GRAFANA_DASHBOARDS_LOADED","obj","value","head","rest","split","length","join","defaultState","profileLoaded","profile","id","email","firstName","lastName","lastModified","displayname","hasAcceptedTermsAndConditions","roles","status","UserStatus","ACTIVE","technicalUser","identityProvider","IdentityProvider","Bosch","subscriptionsLoaded","subscriptions","universalFiltersLoaded","universalFilters","availableInsightProjectsLoaded","availableInsightProjects","globalFilterSelectedProjectsLoaded","globalFilterSelectedProjects","selectedSubscriptionsRoles","allInvitations","rolesExtracted","newState","state","newData","Object","assign","userReducer","action","type","SET_PROFILE_LOADED","payload","SET_PROFILE","SET_SUBSCRIPTIONS_LOADED","SET_SUBSCRIPTIONS","SET_UNIVERSAL_FILTERS","SET_AVAILABLE_INSIGHT_PROJECTS_LOADED","SET_AVAILABLE_INSIGHT_PROJECTS","SET_GLOBAL_FILTER_SELECTED_PROJECTS_LOADED","SET_GLOBAL_FILTER_SELECTED_PROJECTS","SET_ROLES","SET_ROLES_EXTRACTED","RESET_USER","SET_SELECTED_SUBSCRIPTION_ROLES_LOADED","SET_INVITE","reducers","user","userReducer","subscription","subscriptionReducer","context","contextReducer","interface","interfaceReducer","coPilot","coPilotReducer","addl","addlSubscriptionReducer","CustomOAuthStorage","constructor","memoryStorage","persistentStorage","localStorage","getStorage","key","includes","getItem","setItem","value","removeItem","factory","ɵfac","env","production","enableProdMode","bootstrapApplication","AppComponent","providers","importProvidersFrom","BrowserModule","provideRouter","appRoutes","BrowserAnimationsModule","provideHttpClient","withInterceptorsFromDi","withInterceptors","httpInterceptors","provide","APP_INITIALIZER","useFactory","initializeAppFactory","deps","AuthService","multi","provideStore","reducers","provideStoreDevtools","maxAge","provideEffects","AppEffects","UserEffects","SubscriptionEffects","ContextEffects","InterfaceEffects","CoPilotEffects","AddlSubscriptionEffects","TranslateModule","forRoot","loader","TranslateLoader","createTranslateLoader","HttpBackend","defaultLanguage","DEFAULT_LANGUAGE","provideOAuthClient","resourceServer","sendAccessToken","NullValidationHandler","OAuthStorage","useClass","CustomOAuthStorage","JwtHelperService","JWT_OPTIONS","useValue","FormlyModule","types","name","component","TextfieldComponent","NumberComponent","RadioComponent","FormlyBootstrapModule","catch","error","console","warn","http","MultiTranslateHttpLoader","prefix","suffix","Date","getTime"],"x_google_ignoreList":[0,1,2,3]}