diff --git a/prefixCSS.py b/prefixCSS.py index 7f24a9d76ec02069b0f37c924903c0d6854044af..16bc2ec73cd0bef0477df9d204a96042e554a355 100644 --- a/prefixCSS.py +++ b/prefixCSS.py @@ -348,7 +348,7 @@ class ParserCSS: if file.endswith(".scss") or file.endswith(".css") or file.endswith(".sass"): path = os.path.join(root, file) # skip ng select classes - if '@ng-select' in path: + if '@ng-select' in path or '-no-prefix.scss' in path: continue print('parsing', path) scss = self.parseCSS(path) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 2d4ab788c26cdec08b565e145ad951c7afc43755..aa1e694c31272e41773a8f7103c4ccceeb5fe6e1 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -44,6 +44,7 @@ import { GroupSelectionComponent } from './pages/explorer-page/group-selection/g import { FaSolidIconComponent } from './components/fa-solid-icon/fa-solid-icon.component'; import { FaIconsComponent } from './pages/explorer-page/fa-icons/fa-icons.component'; import { LoadingScreenComponent } from './components/loading-screen/loading-screen.component'; +import { PrivacyBannerComponent } from './components/privacy-banner/privacy-banner.component'; @NgModule({ @@ -78,6 +79,7 @@ import { LoadingScreenComponent } from './components/loading-screen/loading-scre FaSolidIconComponent, FaIconsComponent, LoadingScreenComponent, + PrivacyBannerComponent, ], imports: [ BrowserModule, diff --git a/src/app/components/analysis-panel/analysis-panel.component.scss b/src/app/components/analysis-panel/analysis-panel.component.scss index 1bd445957bbbee8e33eb3356b27c2340c6e4f7e4..e57f463245ac46b2e9353a176688758826873276 100644 --- a/src/app/components/analysis-panel/analysis-panel.component.scss +++ b/src/app/components/analysis-panel/analysis-panel.component.scss @@ -6,15 +6,6 @@ width: 100% !important; } -.fullscreen{ - position: fixed !important; - height: 100vh !important; - width: 100vw !important; - top: 0 !important; - left: 0 !important; - z-index: $fullscreen-z; -} - .tab-header-small { padding: 0 !important; } diff --git a/src/app/components/analysis-panel/analysis-panel.component.ts b/src/app/components/analysis-panel/analysis-panel.component.ts index be1a6a759bc1070a05241028a6b3e19d5cc1f877..e74a5f044539e671eb331d72ca280f664d3ee628 100644 --- a/src/app/components/analysis-panel/analysis-panel.component.ts +++ b/src/app/components/analysis-panel/analysis-panel.component.ts @@ -357,7 +357,7 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit } private async getTask(token: string): Promise<any> { - return await this.http.get(`${environment.backend}task/?token=${token}`).toPromise(); + return await this.http.get(`${this.netex.getBackend()}task/?token=${token}`).toPromise(); } close() { @@ -410,7 +410,7 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit } public downloadLink(view: string): string { - return `${environment.backend}task_result/?token=${this.token}&view=${view}&fmt=csv`; + return `${this.netex.getBackend()}task_result/?token=${this.token}&view=${view}&fmt=csv`; } /** diff --git a/src/app/components/network/network-menu-left/network-menu-left.component.html b/src/app/components/network/network-menu-left/network-menu-left.component.html index 45fb257e28eb8662990f9f64a6fd5561f489c0af..c44c0d93cb7349fc39aba6e80b873f2f0b5dd5c8 100644 --- a/src/app/components/network/network-menu-left/network-menu-left.component.html +++ b/src/app/components/network/network-menu-left/network-menu-left.component.html @@ -9,7 +9,7 @@ <a (click)="networkHandler.activeNetwork.toggleNetworkSidebar()" class="button is-small is-primary network-toolbar-toggle" - [ngClass]="{ rotated: !networkHandler.activeNetwork.networkSidebarOpen }" + [ngClass]="{ 'rotated': !networkHandler.activeNetwork.networkSidebarOpen }" > <app-fa-solid-icon icon="angle-left" diff --git a/src/app/components/network/network-menu/network-menu.component.html b/src/app/components/network/network-menu/network-menu.component.html index 13356069d854441de6f07d48b8a33238acfc61b8..46340a8c953abe46294122663217d06bf624948f 100644 --- a/src/app/components/network/network-menu/network-menu.component.html +++ b/src/app/components/network/network-menu/network-menu.component.html @@ -9,7 +9,7 @@ <a (click)="networkHandler.activeNetwork.toggleNetworkSidebar()" class="button is-small is-primary network-toolbar-toggle" - [ngClass]="{ rotated: networkHandler.activeNetwork.networkSidebarOpen }" + [ngClass]="{ 'rotated': networkHandler.activeNetwork.networkSidebarOpen }" > <app-fa-solid-icon icon="angle-left" diff --git a/src/app/components/network/network.component.scss b/src/app/components/network/network.component.scss index 8f2669e611836e4732a3a0544697b10c6d5b2ab2..e7d0a467d7e22c3f75314f74bc9942e3db1fffb0 100644 --- a/src/app/components/network/network.component.scss +++ b/src/app/components/network/network.component.scss @@ -13,12 +13,3 @@ .dropdown-menu{ z-index: $network-tissue-options-z !important; } - -.fullscreen{ - position: fixed !important; - height: 100vh !important; - width: 100vw !important; - top: 0 !important; - left: 0 !important; - z-index: $fullscreen-z; -} diff --git a/src/app/components/network/network.component.ts b/src/app/components/network/network.component.ts index 5487e3792dee68f51e054bb0c001d50e0fcbbc28..d2cde1f3d4de7e0e49efeb1ebed74a3a353df374 100644 --- a/src/app/components/network/network.component.ts +++ b/src/app/components/network/network.component.ts @@ -532,7 +532,6 @@ export class NetworkComponent implements OnInit { if (!node) { continue; } - console.log(node); const pos = this.networkHandler.activeNetwork.networkInternal.getPositions([node.id]); node.x = pos[node.id].x; node.y = pos[node.id].y; diff --git a/src/app/components/privacy-banner/privacy-banner.component.html b/src/app/components/privacy-banner/privacy-banner.component.html new file mode 100644 index 0000000000000000000000000000000000000000..f8de9fef2de708c1c9f7ebc477c2c9e1544b1c0a --- /dev/null +++ b/src/app/components/privacy-banner/privacy-banner.component.html @@ -0,0 +1,4 @@ +<div class="notification center" [class.disabled]="disabled" id="privacy-banner"> + <button class="delete" (click)="close()"></button> + All data will be processed at Drugst.One. <a target="_blank" href="https://drugst.one/doc#privacy_policy">More information</a> +</div> diff --git a/src/app/components/privacy-banner/privacy-banner.component.scss b/src/app/components/privacy-banner/privacy-banner.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..808cb86b3d854c6583954cf70d346c538c5440e5 --- /dev/null +++ b/src/app/components/privacy-banner/privacy-banner.component.scss @@ -0,0 +1,11 @@ +@import "src/stylesheets/variables"; + +#privacy-banner{ + position: absolute; + bottom: 0; + z-index: $privacy-banner-z; + width: 100%; + &.disabled { + display: none; + } +} diff --git a/src/app/components/privacy-banner/privacy-banner.component.spec.ts b/src/app/components/privacy-banner/privacy-banner.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..372616edcfbb050011066efa3443d7ed13296777 --- /dev/null +++ b/src/app/components/privacy-banner/privacy-banner.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PrivacyBannerComponent } from './privacy-banner.component'; + +describe('PrivacyBannerComponent', () => { + let component: PrivacyBannerComponent; + let fixture: ComponentFixture<PrivacyBannerComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PrivacyBannerComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PrivacyBannerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/privacy-banner/privacy-banner.component.ts b/src/app/components/privacy-banner/privacy-banner.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..9fd49fea129e5e9cd50e2a680add40eddf943c55 --- /dev/null +++ b/src/app/components/privacy-banner/privacy-banner.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-privacy-banner', + templateUrl: './privacy-banner.component.html', + styleUrls: ['./privacy-banner.component.scss'] +}) +export class PrivacyBannerComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + if (localStorage.getItem(this.privacyBannerCookieKey) === 'true') { + this.disable(); + }; + } + + public disabled = false; + private privacyBannerCookieKey = `drugstone-privacypolicy-${window.location.host}`; + + public close() { + this.saveCookie(); + this.disable(); + } + + public disable() { + this.disabled = true; + } + + private saveCookie() { + localStorage.setItem(this.privacyBannerCookieKey, 'true'); + } +} diff --git a/src/app/config.ts b/src/app/config.ts index 9fd9175a97f3cb5b36a212e131cf157f6d6026a1..6ec2ddea20f8c1db2e61da7712754dc00b154f12 100644 --- a/src/app/config.ts +++ b/src/app/config.ts @@ -40,6 +40,7 @@ export type InteractionDatabase = 'omnipath'; export interface IConfig { title: string; + backendUrl: string; legendUrl: string; legendClass: string; legendPos: 'left' | 'right'; @@ -135,6 +136,7 @@ connectorNodeGroup.groupName = 'Connector Nodes'; */ export const defaultConfig: IConfig = { title: 'Drugst.One', + backendUrl: '', legendUrl: '', legendClass: 'legend', legendPos: 'left', diff --git a/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts b/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts index e5f74c2e2bd10e0fab31cf4da841788eea252313..730bb1a9643056f96912a2e4a826d661e38a682e 100644 --- a/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts +++ b/src/app/dialogs/add-expressed-proteins/add-expressed-proteins.component.ts @@ -3,6 +3,7 @@ import {AnalysisService} from '../../services/analysis/analysis.service'; import {getWrapperFromNode, Node, Tissue, NodeAttributeMap} from '../../interfaces'; import {environment} from '../../../environments/environment'; import {HttpClient} from '@angular/common/http'; +import { NetexControllerService } from 'src/app/services/netex-controller/netex-controller.service'; @Component({ selector: 'app-add-expressed-proteins', @@ -29,7 +30,7 @@ export class AddExpressedProteinsComponent implements OnChanges { public addedCount: number | null = null; public loading = false; - constructor(private http: HttpClient, private analysis: AnalysisService) { + constructor(private http: HttpClient, private analysis: AnalysisService, private netex: NetexControllerService) { } ngOnChanges(changes: SimpleChanges): void { @@ -38,7 +39,7 @@ export class AddExpressedProteinsComponent implements OnChanges { public async addProteins() { this.loading = true; - const result = await this.http.post<any>(`${environment.backend}query_tissue_proteins/`, + const result = await this.http.post<any>(`${this.netex.getBackend()}query_tissue_proteins/`, {tissueId: this.selectedTissue.drugstoneId, threshold: this.threshold}).toPromise(); const items = []; for (const detail of result) { diff --git a/src/app/pages/explorer-page/explorer-page.component.html b/src/app/pages/explorer-page/explorer-page.component.html index be28e058b84729c77047ecf24d6eebfd739167c2..127fbc5b7c2af4747968c58fd75e93d7c79d6150 100644 --- a/src/app/pages/explorer-page/explorer-page.component.html +++ b/src/app/pages/explorer-page/explorer-page.component.html @@ -3,6 +3,7 @@ <div class="is-hidden-mobile fullheight" id="appContainer"> <app-fa-icons></app-fa-icons> <app-loading-screen></app-loading-screen> + <app-privacy-banner></app-privacy-banner> <app-license-agreement></app-license-agreement> <app-launch-analysis diff --git a/src/app/services/analysis/analysis.service.ts b/src/app/services/analysis/analysis.service.ts index 6e6bf2f4b738a78ce6fb909eec8284ac62572f68..38ff9a9053258d0fc7e6d358e9bcdd85d4a0be17 100644 --- a/src/app/services/analysis/analysis.service.ts +++ b/src/app/services/analysis/analysis.service.ts @@ -61,8 +61,8 @@ export class AnalysisService { private selections = new Map<string, Map<string, Wrapper>>(); public tokens: string[] = []; - private tokensCookieKey = `netex-tokens-${window.location.host}`; - private tokensFinishedCookieKey = `netex-finishedTokens-${window.location.host}`; + private tokensCookieKey = `drugstone-tokens-${window.location.host}`; + private tokensFinishedCookieKey = `drugstone-finishedTokens-${window.location.host}`; public finishedTokens: string[] = []; public tasks: Task[] = []; @@ -282,7 +282,7 @@ export class AnalysisService { }; - const resp = await this.http.post<any>(`${environment.backend}task/`, { + const resp = await this.http.post<any>(`${this.netex.getBackend()}task/`, { algorithm: algorithm, target: target, parameters: parameters, @@ -307,14 +307,14 @@ export class AnalysisService { }); return ''; } - const resp = await this.http.post<any>(`${environment.backend}task/`, { + const resp = await this.http.post<any>(`${this.netex.getBackend()}task/`, { algorithm, target, parameters, }).toPromise(); this.tokens.push(resp.token); - localStorage.setItem(`netex-tokens-${window.location.host}`, JSON.stringify(this.tokens)); + localStorage.setItem(`drugstone-tokens-${window.location.host}`, JSON.stringify(this.tokens)); this.startWatching(); this.toast.setNewToast({ diff --git a/src/app/services/netex-controller/netex-controller.service.ts b/src/app/services/netex-controller/netex-controller.service.ts index 1f4ec51413b8724eed0932550dcd5b01ff4fc15a..b818c3013032ae4db29b11f25ba679c7179bbefe 100644 --- a/src/app/services/netex-controller/netex-controller.service.ts +++ b/src/app/services/netex-controller/netex-controller.service.ts @@ -4,27 +4,35 @@ import {HttpClient, HttpParams} from '@angular/common/http'; import {Observable} from 'rxjs'; import {Tissue, Node, EdgeType, QuickAlgorithmType, AlgorithmType} from 'src/app/interfaces'; import {InteractionDrugProteinDB, InteractionProteinProteinDB} from 'src/app/config'; +import { DrugstoneConfigService } from '../drugstone-config/drugstone-config.service'; @Injectable({ providedIn: 'root' }) export class NetexControllerService { - constructor(private http: HttpClient) { + + constructor(private http: HttpClient, private drugstoneConfig: DrugstoneConfigService) { + } + + public getBackend() { + return this.drugstoneConfig.config.backendUrl || environment.backend; } public async getTasks(tokens): Promise<any> { + console.log(this.drugstoneConfig.config.backendUrl) + console.log(this.getBackend()) /** * returns promise of tasks status */ - return this.http.post<any>(`${environment.backend}tasks/`, {tokens: JSON.stringify(tokens)}).toPromise(); + return this.http.post<any>(`${this.getBackend()}tasks/`, {tokens: JSON.stringify(tokens)}).toPromise(); } public getTaskResult(token) { /** * returns promise of task result of COMPLETED task */ - return this.http.get<any>(`${environment.backend}task_result/?token=${token}`).toPromise(); + return this.http.get<any>(`${this.getBackend()}task_result/?token=${token}`).toPromise(); } public async mapNodes(nodes, identifier): Promise<any> { @@ -33,14 +41,14 @@ export class NetexControllerService { * Returns list of mapped nodes if node was found, otherwise original node to not lose information */ const payload = {nodes: nodes, identifier: identifier}; - return this.http.post(`${environment.backend}map_nodes/`, payload).toPromise(); + return this.http.post(`${this.getBackend()}map_nodes/`, payload).toPromise(); } public tissues(): Observable<any> { /** * Lists all available tissues with id and name */ - return this.http.get<Tissue[]>(`${environment.backend}tissues/`); + return this.http.get<Tissue[]>(`${this.getBackend()}tissues/`); } public digest_request(payload): Promise<any> { @@ -50,7 +58,7 @@ export class NetexControllerService { public maxTissueExpression(tissue: Tissue): Promise<any> { const params = new HttpParams() .set('tissue', tissue.drugstoneId); - return this.http.get(environment.backend + 'tissue_max_expression/', {params}).toPromise(); + return this.http.get(this.getBackend() + 'tissue_max_expression/', {params}).toPromise(); } public tissueExpressionGenes(tissue: Tissue, nodes: Node[]): Observable<any> { @@ -63,7 +71,7 @@ export class NetexControllerService { tissue: tissue.drugstoneId, proteins: JSON.stringify(genesBackendIds) } - return this.http.post(`${environment.backend}tissue_expression/`, payload); + return this.http.post(`${this.getBackend()}tissue_expression/`, payload); } public adjacentDisorders(nodes: Node[], nodeType: string, dataset: string, licenced: boolean): Observable<any> { @@ -73,7 +81,7 @@ export class NetexControllerService { } else if (nodeType === 'drugs') { params['drugs'] = nodes.map((node: Node) => node.drugId && node.drugstoneType === 'drug' ? node.drugstoneId.slice(2) : undefined).filter(id => id != null); } - return this.http.post<any>(`${environment.backend}adjacent_disorders/`, params); + return this.http.post<any>(`${this.getBackend()}adjacent_disorders/`, params); } public adjacentDrugs(pdiDataset: InteractionDrugProteinDB, licenced: boolean, nodes: Node[]): Observable<any> { @@ -87,7 +95,7 @@ export class NetexControllerService { proteins: genesBackendIds, licenced: licenced }; - return this.http.post<any>(`${environment.backend}adjacent_drugs/`, params); + return this.http.post<any>(`${this.getBackend()}adjacent_drugs/`, params); } public graphExport(graph_data: { edges: EdgeType[], nodes: Node[] }) { @@ -95,7 +103,7 @@ export class NetexControllerService { * Sends complete graph data to backend where it is written to graphml or json File. * The file is returned as download for the user. */ - return this.http.post(`${environment.backend}graph_export/`, graph_data, {responseType: 'text'}); + return this.http.post(`${this.getBackend()}graph_export/`, graph_data, {responseType: 'text'}); } public async fetchEdges(nodes: Node[], dataset: InteractionProteinProteinDB, licenced: boolean): Promise<any> { @@ -104,7 +112,7 @@ export class NetexControllerService { * Returns list of mapped nodes if node was found, otherwise original node to not lose information */ const payload = {nodes: nodes, dataset: dataset, licenced: licenced}; - return this.http.post(`${environment.backend}fetch_edges/`, payload).toPromise(); + return this.http.post(`${this.getBackend()}fetch_edges/`, payload).toPromise(); } @@ -112,6 +120,6 @@ export class NetexControllerService { /** * returns promise of task status */ - return this.http.get(`${environment.backend}get_license`).toPromise(); + return this.http.get(`${this.getBackend()}get_license`).toPromise(); } } diff --git a/src/index.html b/src/index.html index fa27760bfef0e93bec516b19df4d54a04d96c980..52ec8c03e828afa9ad86245edb5fe192103c1ae7 100644 --- a/src/index.html +++ b/src/index.html @@ -112,7 +112,7 @@ Export As Graphml Button<br> <drugst-one id="tatata" groups='{ "nodeGroups" : { "selectedNode": { "borderWidth": 3,"borderWidthSelected": 4,"color": { "border": "#ff1818","highlight": {"border": "#ff1818"}},"font": { "color": "#F8981","size": 14 }},"Protein":{"shape":"circle","groupName":"Protein","type":"Protein","color":"#172b4d","font":{"color":"#ffffff"}}}}' - config='{ "identifier":"symbol","title":"ROBUST output network", "taskDrugName": "Drug Search", "showLegendNodes": true, "showLegendEdges": true, "showSidebar": "left", "showOverview": true, "legendPos": "left", "legendClass": "legend", "showQuery": true, "showItemSelector": true,"showSimpleAnalysis": false,"showAdvAnalysis": true,"showSelection": true,"showTasks": true,"showNetworkMenu": "right","showLegend": true,"showNetworkMenuButtonExpression": true, "showNetworkMenuButtonScreenshot": true,"showNetworkMenuButtonExportGraphml": true,"showNetworkMenuButtonAdjacentDrugs": true,"showNetworkMenuButtonCenter": true,"showConnectGenes": false,"networkMenuButtonAdjacentDrugsLabel": "Drugs","showNetworkMenuButtonAdjacentDisordersProteins": true,"networkMenuButtonAdjacentDisordersProteinsLabel": "Disorders (protein)","showNetworkMenuButtonAdjacentDisordersDrugs": true,"networkMenuButtonAdjacentDisordersDrugsLabel": "Disorders (drug)","showNetworkMenuButtonAnimation": true,"networkMenuButtonAnimationLabel": "Animation", "autofillEdges": true, "physicsOn": false,"useNedrexLicenced": true,"selfReferences": false, "interactionDrugProtein": "NeDRex", "indicationDrugDisorder": "NeDRex","nodeShadow": true,"edgeShadow": true, "algorithms": {"drug": ["trustrank", "closeness", "degree", "proximity"], "drug-target": ["trustrank", "multisteiner", "keypathwayminer", "degree", "closeness", "betweenness"]}, "associatedProteinDisorder": "NeDRex", "expandNetworkMenu": true}' + config='{"identifier":"symbol","title":"ROBUST output network", "taskDrugName": "Drug Search", "showLegendNodes": true, "showLegendEdges": true, "showSidebar": "left", "showOverview": true, "legendPos": "left", "legendClass": "legend", "showQuery": true, "showItemSelector": true,"showSimpleAnalysis": false,"showAdvAnalysis": true,"showSelection": true,"showTasks": true,"showNetworkMenu": "right","showLegend": true,"showNetworkMenuButtonExpression": true, "showNetworkMenuButtonScreenshot": true,"showNetworkMenuButtonExportGraphml": true,"showNetworkMenuButtonAdjacentDrugs": true,"showNetworkMenuButtonCenter": true,"showConnectGenes": false,"networkMenuButtonAdjacentDrugsLabel": "Drugs","showNetworkMenuButtonAdjacentDisordersProteins": true,"networkMenuButtonAdjacentDisordersProteinsLabel": "Disorders (protein)","showNetworkMenuButtonAdjacentDisordersDrugs": true,"networkMenuButtonAdjacentDisordersDrugsLabel": "Disorders (drug)","showNetworkMenuButtonAnimation": true,"networkMenuButtonAnimationLabel": "Animation", "autofillEdges": true, "physicsOn": false,"useNedrexLicenced": true,"selfReferences": false, "interactionDrugProtein": "NeDRex", "indicationDrugDisorder": "NeDRex","nodeShadow": true,"edgeShadow": true, "algorithms": {"drug": ["trustrank", "closeness", "degree", "proximity"], "drug-target": ["trustrank", "multisteiner", "keypathwayminer", "degree", "closeness", "betweenness"]}, "associatedProteinDisorder": "NeDRex", "expandNetworkMenu": true}' network='{"nodes": [{"id":"PSEN1","group":"Protein","label":"PSEN1"},{"id":"PSEN2","group":"Protein","label":"PSEN2"},{"id":"APP","group":"Protein","label":"APP"},{"id":"APOE","group":"Protein","label":"APOE"},{"id":"RNF32","group":"Protein","label":"RNF32"},{"id":"STX5","group":"Protein","label":"STX5"},{"id":"TRAF3IP1","group":"Protein","label":"TRAF3IP1"},{"id":"PHB1","group":"Protein","label":"PHB1"},{"id":"MAPT","group":"Protein","label":"MAPT"},{"id":"ESR1","group":"Protein","label":"ESR1"},{"id":"IRF3","group":"Protein","label":"IRF3"},{"id":"DYNC1H1","group":"Protein","label":"DYNC1H1"},{"id":"CUL3","group":"Protein","label":"CUL3"},{"id":"HMGB1","group":"Protein","label":"HMGB1"},{"id":"DNAJC7","group":"Protein","label":"DNAJC7"},{"id":"NEFM","group":"Protein","label":"NEFM"},{"id":"DISC1","group":"Protein","label":"DISC1"},{"id":"PPP5C","group":"Protein","label":"PPP5C"},{"id":"CTNNB1","group":"Protein","label":"CTNNB1"},{"id":"KRAS","group":"Protein","label":"KRAS"}]}' ></drugst-one> diff --git a/src/stylesheets/styles-no-prefix.scss b/src/stylesheets/styles-no-prefix.scss new file mode 100644 index 0000000000000000000000000000000000000000..8f73e02d58090408a83056855a094e54b84c08b1 --- /dev/null +++ b/src/stylesheets/styles-no-prefix.scss @@ -0,0 +1,9 @@ +.fullscreen { + position: fixed !important; + height: 100vh !important; + width: 100vw !important; + top: 0 !important; + left: 0 !important; + z-index: $fullscreen-z; +} + diff --git a/src/stylesheets/styles.scss b/src/stylesheets/styles.scss index 24c5dd4a9dab6660aed1d85cb499ca42c85c8b93..0b0a7ba5c36968a00fdb9566ba272d77a4fd93c0 100644 --- a/src/stylesheets/styles.scss +++ b/src/stylesheets/styles.scss @@ -6,6 +6,9 @@ @import "variables"; #appWindow { + + @import "./styles-no-prefix.scss"; + font-family: var(--drgstn-font-family) !important; height: var(--drgstn-height, 500px) !important; display: block !important; diff --git a/src/stylesheets/variables.scss b/src/stylesheets/variables.scss index 42491fc5297350dbe7517b86ae06bb2280bade4d..ea332a83381d200b3dbb20df836ad98b54988dc5 100644 --- a/src/stylesheets/variables.scss +++ b/src/stylesheets/variables.scss @@ -63,7 +63,7 @@ $b-text-smaller-font-size: 12px; $text-normal-font-size: 12px; $text-small-font-size: 11px; -$toast-z: 100; +$privacy-banner-z: 100; $fullscreen-z: 2147483646; $toast-z: 2147483647;