{ "version": 3, "sources": ["src/app/shared/services/grafana-dashboard.service.ts"], "sourcesContent": ["/**\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 { Store } from '@ngrx/store';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n filter,\n first,\n map,\n} from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { AppState } from '../data/state/app.state.model';\nimport { IGrafanaDashboard, IGrafanaDashboards } from '../models';\nimport { LoggerService } from './logger.service';\nimport { UserSubscriptionService } from './user-subscriptions.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GrafanaDashboardService {\n readonly #baseUrl: string;\n\n readonly dashboardCRUDUrl = `tools/dashboards`;\n dashboardList$ = this.store\n .select((state) => state.subscription.grafanaDashboards)\n .pipe(\n filter((data) => !!data.loaded),\n map((data) => data.list)\n );\n\n needDoubleTryLoadingIframe$ = new BehaviorSubject(true);\n constructor(\n private httpClient: HttpClient,\n private logger: LoggerService,\n private store: Store,\n private userSubscriptionService: UserSubscriptionService\n ) {\n this.#baseUrl = env.API_URL;\n this.logger.log('ViewService.constructor: baseUrl = ', this.#baseUrl);\n\n // when subscription changes - mark grafana to try double loading iframe to prevent login/blank screen appearance\n this.userSubscriptionService.activeSubscription$\n .pipe(distinctUntilChanged((prev, curr) => prev?.id === curr?.id))\n .subscribe(() => this.needDoubleTryLoadingIframe$.next(true));\n }\n\n findAll() {\n const url = `${this.#baseUrl}/${this.dashboardCRUDUrl}`;\n return this.httpClient.get(url).pipe(first());\n }\n\n createDashboard({ data }: { data: { label: string } }) {\n const url = `${this.#baseUrl}/${this.dashboardCRUDUrl}`;\n return this.httpClient.post(url, data).pipe(first());\n }\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;AAgBA;AAkBM,IAAO,2BAAP,MAAO,yBAAuB;EAYlC,YACU,YACA,QACA,OACA,yBAAgD;AAfjD;AAYC,SAAA,aAAA;AACA,SAAA,SAAA;AACA,SAAA,QAAA;AACA,SAAA,0BAAA;AAbD,SAAA,mBAAmB;AAC5B,SAAA,iBAAiB,KAAK,MACnB,OAAO,CAAC,UAAU,MAAM,aAAa,iBAAiB,EACtD,KACC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,MAAM,GAC9B,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;AAG5B,SAAA,8BAA8B,IAAI,gBAAyB,IAAI;AAO7D,uBAAK,UAAW,IAAI;AACpB,SAAK,OAAO,IAAI,uCAAuC,mBAAK,SAAQ;AAGpE,SAAK,wBAAwB,oBAC1B,KAAK,qBAAqB,CAAC,MAAM,SAAS,MAAM,OAAO,MAAM,EAAE,CAAC,EAChE,UAAU,MAAM,KAAK,4BAA4B,KAAK,IAAI,CAAC;EAChE;EAEA,UAAO;AACL,UAAM,MAAM,GAAG,mBAAK,SAAQ,IAAI,KAAK,gBAAgB;AACrD,WAAO,KAAK,WAAW,IAAwB,GAAG,EAAE,KAAK,MAAK,CAAE;EAClE;EAEA,gBAAgB,EAAE,KAAI,GAA+B;AACnD,UAAM,MAAM,GAAG,mBAAK,SAAQ,IAAI,KAAK,gBAAgB;AACrD,WAAO,KAAK,WAAW,KAAwB,KAAK,IAAI,EAAE,KAAK,MAAK,CAAE;EACxE;;AAlCS;;mBADE,0BAAuB,mBAAA,UAAA,GAAA,mBAAA,aAAA,GAAA,mBAAA,KAAA,GAAA,mBAAA,uBAAA,CAAA;AAAA;4FAAvB,0BAAuB,SAAvB,yBAAuB,WAAA,YAFtB,OAAM,CAAA;AAEd,IAAO,0BAAP;", "names": [] }