From d6bbe578e049aac82fb125f005c7e523ef087248 Mon Sep 17 00:00:00 2001 From: Ruben Bimberg <ruben.bimberg@mni.thm.de> Date: Tue, 10 Aug 2021 14:49:58 +0200 Subject: [PATCH] Implement unified mat spinner [Ticket: #219] --- .../room-creator-page.component.html | 4 +- .../room-creator-page.component.scss | 4 ++ .../room-moderator-page.component.html | 3 +- .../room-moderator-page.component.scss | 35 ++++++----- .../room-participant-page.component.html | 2 +- .../room-participant-page.component.scss | 25 ++++---- .../create-comment.component.html | 7 ++- .../create-comment.component.scss | 10 +-- .../spacy-dialog/spacy-dialog.component.html | 2 +- .../spacy-dialog/spacy-dialog.component.scss | 48 ++++++++++++--- .../topic-cloud-administration.component.html | 23 ++++--- .../topic-cloud-administration.component.scss | 4 ++ .../comment-answer.component.html | 8 ++- .../comment-answer.component.scss | 6 ++ .../comment-list/comment-list.component.html | 35 +++++++---- .../comment-list/comment-list.component.scss | 6 +- .../dialog-action-buttons.component.html | 7 ++- .../dialog-action-buttons.component.scss | 5 ++ .../mat-spinner-overlay.component.html | 18 ++++++ .../mat-spinner-overlay.component.scss | 27 ++++++++ .../mat-spinner-overlay.component.spec.ts | 26 ++++++++ .../mat-spinner-overlay.component.ts | 61 +++++++++++++++++++ .../question-wall.component.html | 28 ++++++--- .../question-wall.component.scss | 9 ++- .../question-wall/question-wall.component.ts | 2 + .../shared/quiz-now/quiz-now.component.html | 9 ++- .../shared/quiz-now/quiz-now.component.scss | 4 ++ .../shared/quiz-now/quiz-now.component.ts | 11 ++-- .../shared/room-list/room-list.component.html | 12 ++-- .../shared/room-list/room-list.component.scss | 4 ++ src/app/components/shared/shared.module.ts | 7 ++- .../tag-cloud-pop-up.component.ts | 4 +- .../shared/tag-cloud/tag-cloud.component.html | 15 +++-- .../shared/tag-cloud/tag-cloud.component.scss | 8 +-- 34 files changed, 372 insertions(+), 107 deletions(-) create mode 100644 src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html create mode 100644 src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss create mode 100644 src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.spec.ts create mode 100644 src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.html b/src/app/components/creator/room-creator-page/room-creator-page.component.html index 7e675f2bf..a2cc0ba24 100644 --- a/src/app/components/creator/room-creator-page/room-creator-page.component.html +++ b/src/app/components/creator/room-creator-page/room-creator-page.component.html @@ -4,9 +4,7 @@ fxFill> <div fxLayout="row" fxLayoutAlign="center"> - <mat-progress-spinner *ngIf="isLoading" - color="primary" - mode="indeterminate"></mat-progress-spinner> + <app-mat-spinner-overlay *ngIf="isLoading" overlay="true" useCustomCSSColor="true"></app-mat-spinner-overlay> <mat-card *ngIf="room"> <div fxLayout="row"> <span class="corner-icons"></span> diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.scss b/src/app/components/creator/room-creator-page/room-creator-page.component.scss index ea240d770..f587e7ace 100644 --- a/src/app/components/creator/room-creator-page/room-creator-page.component.scss +++ b/src/app/components/creator/room-creator-page/room-creator-page.component.scss @@ -147,3 +147,7 @@ markdown { background: var(--secondary); color: var(--on-secondary); } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html index 46f1e6eee..532703093 100644 --- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html +++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html @@ -4,8 +4,7 @@ fxFill> <div fxLayout="row" fxLayoutAlign="center"> - <mat-progress-spinner *ngIf="isLoading" - mode="indeterminate"></mat-progress-spinner> + <app-mat-spinner-overlay *ngIf="isLoading" overlay="true" useCustomCSSColor="true"></app-mat-spinner-overlay> <mat-card *ngIf="room"> <div fxLayout="row"> <span class="fill-remaining-space"></span> diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss index a6ed51d24..9729f8db6 100644 --- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss +++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss @@ -5,7 +5,7 @@ mat-card { max-width: 800px; min-height: 350px; max-height: 700px; - background-color: var(--surface)!important; + background-color: var(--surface) !important; } mat-card-content > :first-child { @@ -19,8 +19,9 @@ mat-card-content > :first-child { .mat-icon-button { width: 60%; // 100% height: 75%; - color: var(--primary)!important; + color: var(--primary) !important; transition: all 0.3s; + &:hover { transform: scale(1.2) } @@ -51,24 +52,24 @@ mat-card-content > :first-child { line-height: 100%!important; }*/ -.main-icon{ +.main-icon { font-size: 80px; height: 80px; width: 80px; - line-height: 100%!important; + line-height: 100% !important; } .smallerIcon { font-size: 55px; height: 55px; width: 55px; - line-height: 100%!important; + line-height: 100% !important; } .room-short-id { font-size: larger; font-weight: bold; - color: var(--on-surface)!important; + color: var(--on-surface) !important; margin: 5% 5% 0 0; } @@ -81,33 +82,33 @@ mat-grid-list { } h1 { - font-size: large; - color: var(--on-surface)!important; - } + font-size: large; + color: var(--on-surface) !important; +} p { - color: var(--on-surface)!important; + color: var(--on-surface) !important; } h2 { font-size: larger; - color: var(--on-surface)!important; + color: var(--on-surface) !important; } mat-card-header { min-height: 80px; - height: 10%!important; + height: 10% !important; } mat-card-title { height: 40%; min-width: 200px; - color: var(--on-surface)!important; + color: var(--on-surface) !important; } mat-card-subtitle { height: 30%; - color: var(--on-surface)!important; + color: var(--on-surface) !important; } mat-grid-tile { @@ -116,7 +117,7 @@ mat-grid-tile { } mat-expansion-panel { - background-color: var(--surface)!important; + background-color: var(--surface) !important; min-width: 200px; hyphens: auto; } @@ -150,3 +151,7 @@ markdown { color: var(--on-surface); margin: 0 3% 0 3% !important; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.html b/src/app/components/participant/room-participant-page/room-participant-page.component.html index 67ffe857d..e67dc5758 100644 --- a/src/app/components/participant/room-participant-page/room-participant-page.component.html +++ b/src/app/components/participant/room-participant-page/room-participant-page.component.html @@ -1,6 +1,6 @@ <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill> <div fxLayout="row" fxLayoutAlign="center"> - <mat-progress-spinner *ngIf="isLoading" mode="indeterminate"></mat-progress-spinner> + <app-mat-spinner-overlay *ngIf="isLoading" overlay="true" useCustomCSSColor="true"></app-mat-spinner-overlay> <mat-card *ngIf="room"> <div fxLayout="row"> <span class="fill-remaining-space"></span> diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.scss b/src/app/components/participant/room-participant-page/room-participant-page.component.scss index 7e01c67a3..29022f841 100644 --- a/src/app/components/participant/room-participant-page/room-participant-page.component.scss +++ b/src/app/components/participant/room-participant-page/room-participant-page.component.scss @@ -4,10 +4,10 @@ mat-card { width: 100%; max-width: 800px; min-height: 350px; - background-color: var(--surface)!important; + background-color: var(--surface) !important; } -mat-card-content>:first-child { +mat-card-content > :first-child { margin-top: 5%; } @@ -16,14 +16,14 @@ mat-card-content>:first-child { height: 75%; margin-bottom: 3%; border-radius: 0; - color: var(--primary)!important; + color: var(--primary) !important; } .main-icon { font-size: 80px; height: 80px; width: 80px; - line-height: 100%!important; + line-height: 100% !important; } .desktop { @@ -42,30 +42,29 @@ button { } - h3 { margin: 5% 0 5% 0; - color: var(--on-surface)!important; + color: var(--on-surface) !important; } mat-card-header { - min-height: 80px!important; - height: 12%!important; + min-height: 80px !important; + height: 12% !important; } mat-card-title { height: 40%; min-width: 200px; - color: var(--on-surface)!important; + color: var(--on-surface) !important; } mat-card-subtitle { height: 20%; - color: var(-on--surface)!important; + color: var(-on--surface) !important; } mat-expansion-panel { - background-color: var(--surface)!important; + background-color: var(--surface) !important; min-width: 200px; hyphens: auto; } @@ -104,3 +103,7 @@ markdown { color: var(--on-surface); margin: 0 3% 0 3% !important; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html index 9665db287..aeb369475 100644 --- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html +++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html @@ -124,8 +124,11 @@ (click)="grammarChecker.grammarCheck(commentBody)"> {{ 'comment-page.grammar-check' | translate}} <mat-icon *ngIf="grammarChecker.isSpellchecking" - style="margin: 0;"> - <mat-spinner diameter="20"></mat-spinner> + class="spinner-container"> + <app-mat-spinner-overlay diameter="20" + strokeWidth="2" + [useCustomCSSColor]="true"> + </app-mat-spinner-overlay> </mat-icon> </button> </ars-col> diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss b/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss index 49db67e66..4882ec336 100644 --- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss +++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.scss @@ -134,10 +134,6 @@ mat-hint { overflow-x: hidden !important; } -::ng-deep .mat-spinner circle { - stroke: var(--on-primary); -} - .lang-confidence { color: var(--on-cancel); background-color: var(--cancel); @@ -200,6 +196,12 @@ mat-hint { display: none; } +.spinner-container { + font-size: 14px; + margin-right: 7px; + margin-top: -2px; +} + /* Suggestion classes from Languagetool */ diff --git a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html index cf04bef1a..627a3b4fc 100644 --- a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html +++ b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html @@ -24,7 +24,7 @@ </span> <ars-row class="list-container"> <div fxLayout="row" fxLayoutAlign="center center" fxFill> - <mat-progress-spinner *ngIf="isLoading" mode="indeterminate"></mat-progress-spinner> + <app-mat-spinner-overlay *ngIf="isLoading" useCustomCSSColor="true"></app-mat-spinner-overlay> </div> <mat-list dense class="keywords-list"> <mat-list-item *ngFor="let keyword of keywords; let odd = odd; let even = even; let i = index" diff --git a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss index 81cd32b18..8777cc69a 100644 --- a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss +++ b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss @@ -2,6 +2,7 @@ font-size: 13px; height: 40px !important; } + .keywords-list { max-height: 340px; flex-grow: 1; @@ -9,11 +10,13 @@ overflow: auto; padding-top: 0 !important; } + .first-keyword { border-top: 1px solid var(--surface); box-sizing: border-box; } -.keywords-even, .keywords-alternate { + +.keywords-even, .keywords-alternate { background-color: var(--dialog); border-bottom: 1px solid var(--surface); border-top-left-radius: 5px; @@ -22,33 +25,41 @@ border-right: 1px solid var(--primary); box-sizing: border-box; } + .keyword-selected { background: var(--surface); box-shadow: inset -2px 0 0 1px var(--primary); } + .keyword-span { color: var(--on-surface) !important; opacity: 1 !important; } + ::ng-deep .mat-checkbox-checked .mat-checkbox-background { background: var(--primary) !important; } + .mat-checkbox-frame { color: var(--secondary); } -:focus{ + +:focus { outline: none; outline-offset: 8px; } + .lang-selection { vertical-align: middle; margin-right: 0; } -.select-all-label{ + +.select-all-label { padding-left: 15px; cursor: pointer; } -.manual-input{ + +.manual-input { background-color: transparent; border: 1px solid var(--on-dialog); padding: 5px; @@ -56,59 +67,78 @@ color: var(--on-dialog); width: 100% } -.manual-input-title{ + +.manual-input-title { margin-top: 15px; } -.select-list{ + +.select-list { width: calc(100% - 24px); } + .keywords-actions { white-space: nowrap; padding-left: 5px; margin-left: auto; color: var(--on-surface); } -.lang-btn{ + +.lang-btn { width: 100%; } + .keywords-actions-selected { color: var(--on-surface); } -.isEditing{ + +.isEditing { background: var(--primary); height: 22px; border-radius: 5px; color: var(--on-primary); - border: 1px solid var( --on-primary); + border: 1px solid var(--on-primary); } + .edit-accept { color: var(--on-surface); } + .select-all-section { vertical-align: middle; padding-top: 20px; padding-bottom: 20px; } + .select-all-label { padding-left: 15px; } + .select-all-icon { float: left; padding-left: 16px; } + .select-all-checkbox { float: right; padding-right: 3px; } + .mat-select { padding-left: 14px; } + ::ng-deep .mat-select-panel { background: var(--dialog); } + .mat-option.mat-active { color: var(--primary); } + .mat-option { color: var(--on-surface); } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html index 058ba5937..5e2ad2451 100644 --- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html +++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html @@ -1,6 +1,6 @@ <mat-dialog-content> <div fxLayout="row" fxLayoutAlign="center center" fxFill> - <mat-progress-spinner *ngIf="isLoading" mode="indeterminate"></mat-progress-spinner> + <app-mat-spinner-overlay *ngIf="isLoading" [useCustomCSSColor]="true"></app-mat-spinner-overlay> </div> <div *ngIf="!isLoading"> <mat-accordion hideToggle> @@ -367,7 +367,8 @@ </mat-menu> - <mat-tab-group [selectedIndex]="selectedTabIndex" (selectedIndexChange)="changeTabIndex()" animationDuration="0ms" mat-stretch-tabs mat-align-tabs="center"> + <mat-tab-group [selectedIndex]="selectedTabIndex" (selectedIndexChange)="changeTabIndex()" animationDuration="0ms" + mat-stretch-tabs mat-align-tabs="center"> <mat-tab label="{{'topic-cloud-dialog.keywords' | translate}}"> <mat-card class="color-surface" *ngIf="(keywords.size === 0 || (searchMode && filteredKeywords.length === 0))&&!isLoading"> @@ -409,7 +410,8 @@ </button> <button class="margin-right" mat-icon-button style="align-self:flex-end;" (click)="openConfirmDialog('delete-message','delete',keyword)"> - <mat-icon class="red" matTooltip="{{'topic-cloud-dialog.delete' | translate}}">delete_sweep</mat-icon> + <mat-icon class="red" matTooltip="{{'topic-cloud-dialog.delete' | translate}}">delete_sweep + </mat-icon> </button> </div> @@ -443,7 +445,7 @@ matTooltip="{{'topic-cloud-dialog.blacklist-is'+(blacklistIsActive?'':'-not')+'-active' | translate}}">Blacklist</label> </ng-template> <mat-card class="color-surface" - *ngIf="(blacklistKeywords.length === 0 || (searchMode && filteredKeywords.length === 0))&&!isLoading"> + *ngIf="(blacklistKeywords.length === 0 || (searchMode && filteredKeywords.length === 0))&&!isLoading"> <p class="color-on-surface" fxLayoutAlign="center"> {{'topic-cloud-dialog.no-keywords-note' | translate}} </p> @@ -451,8 +453,8 @@ <mat-accordion> <div *ngFor="let keyword of (searchMode ? filteredKeywords : blacklistKeywords); let i = index"> <mat-expansion-panel class="color-surface" (opened)="panelOpenState = true" - (closed)="panelOpenState = edit = false" [attr.data-index]="i" - matTooltip="{{'topic-cloud-dialog.'+(keyword.keywordType === 2?'Keyword-from-both':(keyword.keywordType === 0?'keyword-from-spacy':'keyword-from-questioner')) | translate}}"> + (closed)="panelOpenState = edit = false" [attr.data-index]="i" + matTooltip="{{'topic-cloud-dialog.'+(keyword.keywordType === 2?'Keyword-from-both':(keyword.keywordType === 0?'keyword-from-spacy':'keyword-from-questioner')) | translate}}"> <mat-expansion-panel-header class="color-surface"> <mat-panel-title> {{keyword.keyword}} @@ -464,8 +466,10 @@ </mat-expansion-panel-header> <div *ngFor="let question of keyword.comments"> - <app-topic-dialog-comment [question]="question.body" [keyword]="keyword.keyword" [maxShowedCharachters]="140" - [profanityFilter]="profanityFilter" [languageSpecific]="censorLanguageSpecificCheck" + <app-topic-dialog-comment [question]="question.body" [keyword]="keyword.keyword" + [maxShowedCharachters]="140" + [profanityFilter]="profanityFilter" + [languageSpecific]="censorLanguageSpecificCheck" [partialWords]="censorPartialWordsCheck" [language]="question.language"></app-topic-dialog-comment> </div> @@ -478,7 +482,8 @@ </button> <button class="margin-right" mat-icon-button style="align-self:flex-end;" (click)="openConfirmDialog('delete-message','delete',keyword)"> - <mat-icon class="red" matTooltip="{{'topic-cloud-dialog.delete' | translate}}">delete_sweep</mat-icon> + <mat-icon class="red" matTooltip="{{'topic-cloud-dialog.delete' | translate}}">delete_sweep + </mat-icon> </button> </div> diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss index 86c644ce6..de118a9b8 100644 --- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss +++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss @@ -181,3 +181,7 @@ mat-dialog-content { color: black; width: 100%; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/comment-answer/comment-answer.component.html b/src/app/components/shared/comment-answer/comment-answer.component.html index 635e3eee0..96993bcf2 100644 --- a/src/app/components/shared/comment-answer/comment-answer.component.html +++ b/src/app/components/shared/comment-answer/comment-answer.component.html @@ -93,8 +93,12 @@ (click)="grammarChecker.grammarCheck(commentBody)" class="spell-button"> {{ 'comment-page.grammar-check' | translate}} - <mat-icon *ngIf="grammarChecker.isSpellchecking" style="margin: 0;"> - <mat-spinner diameter="20"></mat-spinner> + <mat-icon *ngIf="grammarChecker.isSpellchecking" + class="spinner-container"> + <app-mat-spinner-overlay diameter="20" + strokeWidth="2" + [useCustomCSSColor]="true"> + </app-mat-spinner-overlay> </mat-icon> </button> </ars-col> diff --git a/src/app/components/shared/comment-answer/comment-answer.component.scss b/src/app/components/shared/comment-answer/comment-answer.component.scss index 9229ee94d..5af943e0a 100644 --- a/src/app/components/shared/comment-answer/comment-answer.component.scss +++ b/src/app/components/shared/comment-answer/comment-answer.component.scss @@ -115,6 +115,12 @@ mat-icon { display: none; } +.spinner-container { + font-size: 14px; + margin-right: 7px; + margin-top: -6px; +} + /* Suggestion classes from Languagetool */ diff --git a/src/app/components/shared/comment-list/comment-list.component.html b/src/app/components/shared/comment-list/comment-list.component.html index acd1731dd..23286baa3 100644 --- a/src/app/components/shared/comment-list/comment-list.component.html +++ b/src/app/components/shared/comment-list/comment-list.component.html @@ -154,7 +154,8 @@ <mat-icon class="star" [ngClass]="{favorite: 'favorite-icon'}[currentFilter]">grade </mat-icon> - <span [ngClass]="{favorite: 'favorite-icon'}[currentFilter]">{{ 'comment-list.filter-favorite' | translate }}</span> + <span + [ngClass]="{favorite: 'favorite-icon'}[currentFilter]">{{ 'comment-list.filter-favorite' | translate }}</span> </button> <button mat-menu-item @@ -163,7 +164,8 @@ <mat-icon class="bookmark" [ngClass]="{bookmark: 'bookmark-icon'}[currentFilter]">bookmark </mat-icon> - <span [ngClass]="{bookmark: 'bookmark-icon'}[currentFilter]">{{ 'comment-list.filter-bookmark' | translate }}</span> + <span + [ngClass]="{bookmark: 'bookmark-icon'}[currentFilter]">{{ 'comment-list.filter-bookmark' | translate }}</span> </button> <button mat-menu-item @@ -173,7 +175,8 @@ <mat-icon class="answer" [ngClass]="{answer: 'answered-icon'}[currentFilter]">comment </mat-icon> - <span [ngClass]="{answer: 'answered-icon'}[currentFilter]">{{ 'comment-list.filter-answered' | translate }}</span> + <span + [ngClass]="{answer: 'answered-icon'}[currentFilter]">{{ 'comment-list.filter-answered' | translate }}</span> </button> <button mat-menu-item @@ -183,7 +186,8 @@ <mat-icon class="unanswered" [ngClass]="{unanswered: 'unanswered-icon'}[currentFilter]">comment </mat-icon> - <span [ngClass]="{unanswered: 'unanswered-icon'}[currentFilter]">{{ 'comment-list.filter-unanswered' | translate }}</span> + <span + [ngClass]="{unanswered: 'unanswered-icon'}[currentFilter]">{{ 'comment-list.filter-unanswered' | translate }}</span> </button> <button mat-menu-item @@ -201,7 +205,8 @@ <mat-icon class="lecturer" [ngClass]="{lecturer: 'lecturer-icon'}[currentFilter]">school </mat-icon> - <span [ngClass]="{lecturer: 'lecturer-icon'}[currentFilter]">{{ 'comment-list.filter-lecturer' | translate }}</span> + <span + [ngClass]="{lecturer: 'lecturer-icon'}[currentFilter]">{{ 'comment-list.filter-lecturer' | translate }}</span> </button> <button mat-menu-item @@ -210,7 +215,8 @@ <mat-icon class="moderator" [ngClass]="{moderator: 'moderator-icon'}[currentFilter]">gavel </mat-icon> - <span [ngClass]="{moderator: 'moderator-icon'}[currentFilter]">{{ 'comment-list.filter-moderator' | translate }}</span> + <span + [ngClass]="{moderator: 'moderator-icon'}[currentFilter]">{{ 'comment-list.filter-moderator' | translate }}</span> </button> @@ -244,6 +250,11 @@ <mat-icon>add</mat-icon> </button> +<app-mat-spinner-overlay *ngIf="isLoading" + overlay="true" + [useCustomCSSColor]="true"> +</app-mat-spinner-overlay> + <div *ngIf="!isLoading"> <app-comment *ngFor="let current of hideCommentsList ? filteredComments : commentsFilteredByTime" [comment]="current" @@ -262,10 +273,11 @@ <app-active-user *ngIf="room" [room]="this.room"></app-active-user> <!-- No Questions Present --> -<div *ngIf="comments && (commentsFilteredByTime.length < 1 && period === 'time-all' || comments.length === 0) && !isLoading" - fxLayout="row" - fxLayoutAlign="center center" - class="no-comments"> +<div + *ngIf="comments && (commentsFilteredByTime.length < 1 && period === 'time-all' || comments.length === 0) && !isLoading" + fxLayout="row" + fxLayoutAlign="center center" + class="no-comments"> <p class="oldtypo-p">{{ 'comment-page.no-comments' | translate }}</p> </div> @@ -274,7 +286,8 @@ fxLayout="row" fxLayoutAlign="center center" class="no-comments"> - <p class="oldtypo-p">{{ (search ? 'comment-page.no-comments-with-search' : 'comment-page.no-comments-with-filter') | translate }}</p> + <p + class="oldtypo-p">{{ (search ? 'comment-page.no-comments-with-search' : 'comment-page.no-comments-with-filter') | translate }}</p> </div> <!--Hidden Div's for a11y-Descriptions--> diff --git a/src/app/components/shared/comment-list/comment-list.component.scss b/src/app/components/shared/comment-list/comment-list.component.scss index a669b2f1b..109b80571 100644 --- a/src/app/components/shared/comment-list/comment-list.component.scss +++ b/src/app/components/shared/comment-list/comment-list.component.scss @@ -255,6 +255,10 @@ h3 { opacity: 1.0 !important; } -h1{ +h1 { color: red; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html index fc72dc98d..76a2bf7d8 100644 --- a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html +++ b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html @@ -18,8 +18,11 @@ <mat-icon *ngIf="buttonIcon" style="margin-right: 5px;">{{buttonIcon}}</mat-icon> {{ buttonsLabelSection + '.' + confirmButtonLabel | translate}} - <mat-icon *ngIf="showLoadingCycle"> - <mat-spinner diameter="20"></mat-spinner> + <mat-icon *ngIf="showLoadingCycle" class="spinner-container"> + <app-mat-spinner-overlay diameter="20" + strokeWidth="2" + [useCustomCSSColor]="true"> + </app-mat-spinner-overlay> </mat-icon> </button> <button diff --git a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss index f05bfaa7f..2a364a363 100644 --- a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss +++ b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss @@ -26,3 +26,8 @@ background: var(--secondary); color: var(--on-secondary); } + +.spinner-container { + font-size: 14px; + margin-top: -2px; +} diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html new file mode 100644 index 000000000..161e84155 --- /dev/null +++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html @@ -0,0 +1,18 @@ +<ng-container *ngIf="overlay;else progressSpinner"> + <div class="overlay"> + <div class="center"> + <ng-template [ngTemplateOutlet]="progressSpinner"></ng-template> + </div> + </div> +</ng-container> +<ng-template #progressSpinner> + <mat-progress-spinner + #containerRef + [ngClass]="{'inline-spinner': !overlay}" + [diameter]="diameter" + [mode]="mode" + [color]="color" + [strokeWidth]="strokeWidth" + [value]="value"> + </mat-progress-spinner> +</ng-template> diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss new file mode 100644 index 000000000..0437c8816 --- /dev/null +++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss @@ -0,0 +1,27 @@ +.center { + position: absolute; + top: 50%; + left: 50%; +} + +mat-progress-spinner { + -moz-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); +} + +.overlay { + height: 100vh; + width: 100%; + background-color: rgba(0, 0, 0, 0.286); + z-index: 10; + top: 0; + left: 0; + position: fixed; +} + +mat-progress-spinner.inline-spinner { + display: inline; + margin-left: 0.25em; + top: 0.115em; +} diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.spec.ts b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.spec.ts new file mode 100644 index 000000000..e984205b8 --- /dev/null +++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.spec.ts @@ -0,0 +1,26 @@ +/*import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MatSpinnerOverlayComponent } from './mat-spinner-overlay.component'; + +describe('MatSpinnerOverlayComponent', () => { + let component: MatSpinnerOverlayComponent; + let fixture: ComponentFixture<MatSpinnerOverlayComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MatSpinnerOverlayComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MatSpinnerOverlayComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); + */ diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts new file mode 100644 index 000000000..fccc0f9a2 --- /dev/null +++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts @@ -0,0 +1,61 @@ +import { + AfterViewInit, + Component, + ElementRef, + Input, + OnInit, + Renderer2, + RendererStyleFlags2, + ViewChild +} from '@angular/core'; +import { ProgressSpinnerMode } from '@angular/material/progress-spinner'; +import { ThemePalette } from '@angular/material/core'; + +@Component({ + selector: 'app-mat-spinner-overlay', + templateUrl: './mat-spinner-overlay.component.html', + styleUrls: ['./mat-spinner-overlay.component.scss'] +}) +export class MatSpinnerOverlayComponent implements OnInit, AfterViewInit { + + @ViewChild('containerRef') containerRef: ElementRef; + @Input() value = 100; + @Input() diameter = 100; + @Input() mode: ProgressSpinnerMode = 'indeterminate'; + @Input() strokeWidth = 10; + @Input() overlay = false; + @Input() color: ThemePalette = 'primary'; + /** + * Overrides diameter and strokeWidth settings, only possible if overlay is false + */ + @Input() parentFontContainer: HTMLElement = null; + @Input() useCustomCSSColor = false; + + constructor(private element: ElementRef<HTMLElement>, + private renderer2: Renderer2) { + } + + ngOnInit(): void { + if (this.parentFontContainer && !this.overlay) { + const elem = this.renderer2.createElement('canvas'); + const ctx = elem.getContext('2d'); + const style = window.getComputedStyle(this.parentFontContainer); + ctx.font = style.font; + const metric = ctx.measureText(this.parentFontContainer.innerText); + this.diameter = Math.abs(metric.fontBoundingBoxAscent) + Math.abs(metric.actualBoundingBoxDescent); + this.strokeWidth = this.diameter / 10; + } + } + + ngAfterViewInit() { + const svg = this.element.nativeElement.getElementsByTagName('svg'); + if (svg.length < 1) { + return; + } + this.renderer2.setStyle(svg[0], 'position', 'static'); + if (this.useCustomCSSColor && svg[0].firstElementChild) { + this.renderer2.setStyle(svg[0].firstElementChild, 'stroke', 'currentColor', RendererStyleFlags2.Important); + } + } + +} diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.html b/src/app/components/shared/questionwall/question-wall/question-wall.component.html index 5a6249b9c..5c780b45a 100644 --- a/src/app/components/shared/questionwall/question-wall/question-wall.component.html +++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.html @@ -1,3 +1,7 @@ +<app-mat-spinner-overlay *ngIf="isLoading" + [overlay]="true" + [useCustomCSSColor]="true"> +</app-mat-spinner-overlay> <ars-screen ars-flex-box class="questionwall-screen"> <ars-row [height]="50" class="questionwall-header"> <ars-style-btn-material *ngIf="room" style="width:100%;height:100%;" ars-flex-box> @@ -17,9 +21,12 @@ <ars-fill></ars-fill> <ars-col ars-btn-wrp [xp]="16" [extra]="true"> <mat-menu #sortMenu> - <button mat-menu-item (click)="sortTime(true)" aria-labelledby="sort-lbl-new">{{'question-wall.sort-new' | translate}}</button> - <button mat-menu-item (click)="sortTime()" aria-labelledby="sort-lbl-old">{{'question-wall.sort-old' | translate}}</button> - <button mat-menu-item (click)="sortScore(true)" aria-labelledby="sort-lbl-rating">{{'question-wall.sort-score' | translate}}</button> + <button mat-menu-item (click)="sortTime(true)" + aria-labelledby="sort-lbl-new">{{'question-wall.sort-new' | translate}}</button> + <button mat-menu-item (click)="sortTime()" + aria-labelledby="sort-lbl-old">{{'question-wall.sort-old' | translate}}</button> + <button mat-menu-item (click)="sortScore(true)" + aria-labelledby="sort-lbl-rating">{{'question-wall.sort-score' | translate}}</button> </mat-menu> <mat-menu #filterMenu> <button mat-menu-item (click)="filterFavorites()" aria-labelledby="filter-lbl-favorites" class="selection"> @@ -119,7 +126,8 @@ </ars-row> <ars-row> <ars-row class="bound" style="padding:16px 32px 16px 32px;box-sizing:border-box;max-width:100%;"> - <markdown [ngStyle]="{'font-size':fontSize+'%'}" class="questionwall-present-markdown" class="images" katex emoji lineNumbers lineHighlight + <markdown [ngStyle]="{'font-size':fontSize+'%'}" class="questionwall-present-markdown" class="images" + katex emoji lineNumbers lineHighlight [data]="commentFocus.comment.body"></markdown> </ars-row> </ars-row> @@ -214,11 +222,12 @@ style="box-sizing:border-box;padding:16px;cursor:pointer"> <ars-col class="questionwall-comment-meta"> <i class="questionwall-icon">person_pin_circle</i> - <p (click)="filterUser(comment);" class="questionwall-comment-user" matRipple>{{comment.comment.userNumber}}</p> + <p (click)="filterUser(comment);" class="questionwall-comment-user" + matRipple>{{comment.comment.userNumber}}</p> <p class="questionwall-comment-timestamp">{{comment.timeAgo}}</p> </ars-col> <ars-col> - <p class="questionwall-comment-notification">{{comment.old?'':'NEW'}}</p> + <p class="questionwall-comment-notification">{{comment.old ? '' : 'NEW'}}</p> </ars-col> </ars-row> <ars-row @@ -226,7 +235,7 @@ style="box-sizing:border-box;padding:0 16px;cursor:pointer"> <p class="questionwall-comment-body"> <markdown class="images" katex emoji lineNumbers lineHighlight - [data]="comment.comment.body"></markdown> + [data]="comment.comment.body"></markdown> </p> </ars-row> <ars-row [height]="50"> @@ -241,7 +250,7 @@ </button> </ars-col> <ars-fill (click)="focusComment(comment)" style="cursor:pointer"></ars-fill> - <ars-col ars-btn-wrp [xp]="16" [extra]="true"*ngIf="comment.comment.tag"> + <ars-col ars-btn-wrp [xp]="16" [extra]="true" *ngIf="comment.comment.tag"> <button ars-btn (click)="filterTag(comment.comment.tag);" matRipple> <mat-icon class="icon-svg" svgIcon="comment_tag"></mat-icon> <p>{{comment.comment.tag}}</p> @@ -274,7 +283,8 @@ <p>{{'question-wall.filter-user-count' | translate}}</p> </button> <button ars-btn mat-ripple *ngFor="let user of userList" (click)="applyUserMap(user[1])"> - <p>{{user[1]}}</p><p>{{user[0]}}</p> + <p>{{user[1]}}</p> + <p>{{user[0]}}</p> </button> </ars-row> </ars-style-btn-material> diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.scss b/src/app/components/shared/questionwall/question-wall/question-wall.component.scss index bbeedf4ba..e435ea894 100644 --- a/src/app/components/shared/questionwall/question-wall/question-wall.component.scss +++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.scss @@ -300,11 +300,16 @@ font-weight: bold; } -.selection:focus{ +.selection:focus { background-color: black !important; } -h2{ + +h2 { color: red; font-weight: normal !important; padding-top: 10px !important; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.ts b/src/app/components/shared/questionwall/question-wall/question-wall.component.ts index cc87e03cb..4506a8b84 100644 --- a/src/app/components/shared/questionwall/question-wall/question-wall.component.ts +++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.ts @@ -50,6 +50,7 @@ export class QuestionWallComponent implements OnInit, AfterViewInit, OnDestroy { fontSize = 180; periodsList = Object.values(Period); period: Period = Period.all; + isLoading = true; constructor( private authenticationService: AuthenticationService, @@ -92,6 +93,7 @@ export class QuestionWallComponent implements OnInit, AfterViewInit, OnDestroy { return; } e.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime()); + this.isLoading = false; e.forEach(c => { this.roomDataService.checkProfanity(c); const comment = new QuestionWallComment(c, true); diff --git a/src/app/components/shared/quiz-now/quiz-now.component.html b/src/app/components/shared/quiz-now/quiz-now.component.html index 5d780e06a..0b24598d6 100644 --- a/src/app/components/shared/quiz-now/quiz-now.component.html +++ b/src/app/components/shared/quiz-now/quiz-now.component.html @@ -1,3 +1,10 @@ +<app-mat-spinner-overlay *ngIf="isLoading" + overlay="true" + useCustomCSSColor="true"> +</app-mat-spinner-overlay> <div class="container"> - <iframe class="responsive-iframe" [src]="urlSafe"></iframe> + <iframe class="responsive-iframe" [src]="urlSafe" + (load)="isLoading = false" + (error)="isLoading = false"> + </iframe> </div> diff --git a/src/app/components/shared/quiz-now/quiz-now.component.scss b/src/app/components/shared/quiz-now/quiz-now.component.scss index c4785b368..7c334602e 100644 --- a/src/app/components/shared/quiz-now/quiz-now.component.scss +++ b/src/app/components/shared/quiz-now/quiz-now.component.scss @@ -16,3 +16,7 @@ iframe { width: 100%; height: 100%; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/quiz-now/quiz-now.component.ts b/src/app/components/shared/quiz-now/quiz-now.component.ts index 2c7fc356d..69c95063f 100644 --- a/src/app/components/shared/quiz-now/quiz-now.component.ts +++ b/src/app/components/shared/quiz-now/quiz-now.component.ts @@ -1,16 +1,19 @@ -import {Component, OnInit} from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; + @Component({ selector: 'app-quiz-now', templateUrl: './quiz-now.component.html', styleUrls: ['./quiz-now.component.scss'] }) -export class QuizNowComponent { +export class QuizNowComponent implements OnInit { urlSafe: SafeResourceUrl; + isLoading = true; - constructor(public sanitizer: DomSanitizer) { } + constructor(public sanitizer: DomSanitizer) { + } ngOnInit() { - this.urlSafe= this.sanitizer.bypassSecurityTrustResourceUrl("https://staging.antworte.jetzt/"); + this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl('https://staging.antworte.jetzt/'); } } diff --git a/src/app/components/shared/room-list/room-list.component.html b/src/app/components/shared/room-list/room-list.component.html index 6e897e485..9740726c0 100644 --- a/src/app/components/shared/room-list/room-list.component.html +++ b/src/app/components/shared/room-list/room-list.component.html @@ -1,6 +1,7 @@ <div *ngIf="isLoading" fxLayout="column" fxLayoutAlign="center" fxFill> <div fxLayout="row" fxLayoutAlign="center"> - <mat-progress-spinner color="primary" mode="indeterminate" diameter="80"></mat-progress-spinner> + <app-mat-spinner-overlay [useCustomCSSColor]="true" diameter="80" strokeWidth="8"> + </app-mat-spinner-overlay> </div> </div> @@ -32,7 +33,8 @@ </th> <td mat-cell class="clickable" *matCellDef="let room" (click)="setCurrentRoom(room.shortId)" routerLink="/{{ roleToString((room.role)) }}/room/{{ room.shortId }}"> - <span matBadge="{{room.commentCount > 0 ? room.commentCount : null}}" matBadgePosition="before" matBadgeSize="small" matBadgeOverlap="false"> + <span matBadge="{{room.commentCount > 0 ? room.commentCount : null}}" matBadgePosition="before" + matBadgeSize="small" matBadgeOverlap="false"> »{{room.name}}« </span> </td> @@ -97,9 +99,9 @@ <div class="visually-hidden"> <div id="{{ 'joinButtonLabel' + room.shortId | translate }}"> {{ 'room-list.join-message-template' | translate:{ - session: room.name, - id: room.shortId, - role: ( 'room-list.' + roleToString((room.role)) + '-role' | translate ) + session: room.name, + id: room.shortId, + role: ('room-list.' + roleToString((room.role)) + '-role' | translate) } }} </div> </div> diff --git a/src/app/components/shared/room-list/room-list.component.scss b/src/app/components/shared/room-list/room-list.component.scss index a5c5f7d85..2d9123091 100644 --- a/src/app/components/shared/room-list/room-list.component.scss +++ b/src/app/components/shared/room-list/room-list.component.scss @@ -100,3 +100,7 @@ th, tr { .warn { color: var(--red) !important; } + +app-mat-spinner-overlay { + color: var(--primary); +} diff --git a/src/app/components/shared/shared.module.ts b/src/app/components/shared/shared.module.ts index 188b7d977..32920359b 100644 --- a/src/app/components/shared/shared.module.ts +++ b/src/app/components/shared/shared.module.ts @@ -42,6 +42,7 @@ import { DragDropModule } from '@angular/cdk/drag-drop'; import { ActiveUserComponent } from './overlay/active-user/active-user.component'; import { AutofocusDirective } from '../../directives/autofocus.directive'; import { TagCloudComponent } from './tag-cloud/tag-cloud.component'; +import { MatSpinnerOverlayComponent } from './mat-spinner-overlay/mat-spinner-overlay.component'; @NgModule({ imports: [ @@ -89,7 +90,8 @@ import { TagCloudComponent } from './tag-cloud/tag-cloud.component'; TagCloudPopUpComponent, ActiveUserComponent, WorkerDialogComponent, - AutofocusDirective + AutofocusDirective, + MatSpinnerOverlayComponent ], exports: [ RoomJoinComponent, @@ -107,7 +109,8 @@ import { TagCloudComponent } from './tag-cloud/tag-cloud.component'; UserBonusTokenComponent, CloudConfigurationComponent, TagCloudPopUpComponent, - ActiveUserComponent + ActiveUserComponent, + MatSpinnerOverlayComponent ] }) export class SharedModule { diff --git a/src/app/components/shared/tag-cloud/tag-cloud-pop-up/tag-cloud-pop-up.component.ts b/src/app/components/shared/tag-cloud/tag-cloud-pop-up/tag-cloud-pop-up.component.ts index 14b4e30c6..41bebb11d 100644 --- a/src/app/components/shared/tag-cloud/tag-cloud-pop-up/tag-cloud-pop-up.component.ts +++ b/src/app/components/shared/tag-cloud/tag-cloud-pop-up/tag-cloud-pop-up.component.ts @@ -33,8 +33,8 @@ export class TagCloudPopUpComponent implements OnInit, AfterViewInit { selectedLang: Language = 'en-US'; spellingData: string[] = []; isBlacklistActive = true; - private _popupHoverTimer: number; - private _popupCloseTimer: number; + private _popupHoverTimer; + private _popupCloseTimer; private _hasLeft = true; constructor(private langService: LanguageService, diff --git a/src/app/components/shared/tag-cloud/tag-cloud.component.html b/src/app/components/shared/tag-cloud/tag-cloud.component.html index ffa4b111d..903f22131 100644 --- a/src/app/components/shared/tag-cloud/tag-cloud.component.html +++ b/src/app/components/shared/tag-cloud/tag-cloud.component.html @@ -1,7 +1,11 @@ <link rel="preconnect" href="https://fonts.gstatic.com"> -<link href="https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Dancing+Script&family=Indie+Flower&family=Permanent+Marker&display=swap" rel="stylesheet"> +<link + href="https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Dancing+Script&family=Indie+Flower&family=Permanent+Marker&display=swap" + rel="stylesheet"> <ars-screen ars-flex-box> - <h1 *ngIf="user && user.role > 0 && question" class="tag-cloud-brainstorming-question mat-display-1">{{question}}</h1> + <h1 *ngIf="user && user.role > 0 && question" class="tag-cloud-brainstorming-question mat-display-1"> + {{question}} + </h1> <mat-drawer-container class="spacyTagCloudContainer"> <mat-drawer [(opened)]="configurationOpen" position="end" mode="over"> <app-cloud-configuration [parent]="this"></app-cloud-configuration> @@ -9,9 +13,10 @@ <mat-drawer-content> <ars-fill ars-flex-box> <app-tag-cloud-pop-up></app-tag-cloud-pop-up> - <div [ngClass]="{'hidden': !isLoading}" fxLayout="row" fxLayoutAlign="center center" fxFill> - <mat-progress-spinner *ngIf="isLoading" mode="indeterminate"></mat-progress-spinner> - </div> + <app-mat-spinner-overlay *ngIf="isLoading" + overlay="true" + [useCustomCSSColor]="true"> + </app-mat-spinner-overlay> <angular-tag-cloud id="tagCloudComponent" class="spacyTagCloud" diff --git a/src/app/components/shared/tag-cloud/tag-cloud.component.scss b/src/app/components/shared/tag-cloud/tag-cloud.component.scss index 0c5024ba7..342b41d25 100644 --- a/src/app/components/shared/tag-cloud/tag-cloud.component.scss +++ b/src/app/components/shared/tag-cloud/tag-cloud.component.scss @@ -33,10 +33,6 @@ mat-drawer-content { display: none !important; } -::ng-deep mat-progress-spinner circle { - stroke: var(--on-background) !important; -} - app-tag-cloud-pop-up { width: max-content; height: max-content; @@ -73,3 +69,7 @@ app-tag-cloud-pop-up { font-family: var(--tag-cloud-font-family, 'Dancing Script'); font-size: 50px; } + +app-mat-spinner-overlay { + color: var(--primary); +} -- GitLab