diff --git a/package-lock.json b/package-lock.json index 3062b69a56e4db0ae0d05978b08402d5ebf2a733..6d87e8e6f50b2d9b3b8554b35dae3fe78475ecba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "normalize.css": "8.0.1", "patch-package": "6.4.7", "rxjs": "7.5.2", - "solidify-frontend": "3.0.12", + "solidify-frontend": "3.0.13", "tiff.js": "1.0.0", "tslib": "2.3.1", "videojs-wavesurfer": "3.8.0", @@ -19674,9 +19674,9 @@ } }, "node_modules/solidify-frontend": { - "version": "3.0.12", - "resolved": "https://nexus.unige.ch/repository/npm-all/solidify-frontend/-/solidify-frontend-3.0.12.tgz", - "integrity": "sha512-YbWDp06LSOlOLd/5q7KVHv9PbJY/OG4tieZP4kEBBMM8iIAif0vN76XPKnrS6JDvd9bmmmQpHpXNFMFYcUrrYQ==", + "version": "3.0.13", + "resolved": "https://nexus.unige.ch/repository/npm-all/solidify-frontend/-/solidify-frontend-3.0.13.tgz", + "integrity": "sha512-6/crKKjFB1wkg9gO/Qkb6gF1i4JTTDyQ9CN3g21UIeGz/xxWCuTTNUEbS6ySN8X7Ip33WbCffeKVt4SZ1lvshw==", "license": "GPL-2.0-or-later", "dependencies": { "tslib": "^2.3.0" @@ -35891,9 +35891,9 @@ } }, "solidify-frontend": { - "version": "3.0.12", - "resolved": "https://nexus.unige.ch/repository/npm-all/solidify-frontend/-/solidify-frontend-3.0.12.tgz", - "integrity": "sha512-YbWDp06LSOlOLd/5q7KVHv9PbJY/OG4tieZP4kEBBMM8iIAif0vN76XPKnrS6JDvd9bmmmQpHpXNFMFYcUrrYQ==", + "version": "3.0.13", + "resolved": "https://nexus.unige.ch/repository/npm-all/solidify-frontend/-/solidify-frontend-3.0.13.tgz", + "integrity": "sha512-6/crKKjFB1wkg9gO/Qkb6gF1i4JTTDyQ9CN3g21UIeGz/xxWCuTTNUEbS6ySN8X7Ip33WbCffeKVt4SZ1lvshw==", "requires": { "tslib": "^2.3.0" } diff --git a/package.json b/package.json index 8c3df3c073143fdf85528a2f55367e95b2e7a83a..091c9523d1fb434b4242493e7d7cceae2c8dd944 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "normalize.css": "8.0.1", "patch-package": "6.4.7", "rxjs": "7.5.2", - "solidify-frontend": "3.0.12", + "solidify-frontend": "3.0.13", "tiff.js": "1.0.0", "tslib": "2.3.1", "videojs-wavesurfer": "3.8.0", diff --git a/src/app/app.component.html b/src/app/app.component.html index 106c22a856cb139157bd8579621aa70ccfed9789..c25ffd933a537d9f07ef0df2f2cc6fd7d71e9245 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -26,8 +26,9 @@ (navigateChange)="navigate($event)" (searchChange)="search($event)" (themeChange)="themeChange($event)" + (darkModeChange)="darkThemeChange($event)" (userGuideOpen)="openUserGuideSidebar()" - [currentLanguage]="appLanguageObs | async" + [language]="appLanguageObs | async" [currentPath]="currentModule" [displayCart]="displayCart" [isHomePage]="isHomePage" @@ -38,6 +39,7 @@ [numberPendingRequestNotificationInbox]="numberPendingRequestNotificationInboxObs | async" [photoUser]="currentPhotoUserObs | async" [theme]="themeObs | async" + [darkMode]="darkModeObs | async" [userRoles]="userRolesObs | async" [user]="currentUserObs | async" > diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 3c31dd84fd76e41d579e5f7a2cff44a77b29f1cc..6c67a5d78c5cab1e7540ef76b1e058aaaf57bc9a 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -91,8 +91,18 @@ } } -:host-context(body[theme='olos']) { - .breadcrumb-banner-wrapper { - background-color: $background-grey; +@include isInDarkMode { + .app-wrapper { + .header { + .breadcrumb-banner-wrapper { + background-color: $dark-mode-toolbar; + } + } + } + + .spinner-general-wrapper { + > .spinner-background { + background-color: $dark-mode-background; + } } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a6371bbb9690922e73308433cf2a5dd16c63140c..6f4451a2987f2e83a5617a0d423efd72eb2e686e 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -99,6 +99,7 @@ import { HIGHLIGHT_OPTIONS, HighlightModule, } from "ngx-highlightjs"; +import {HighlightOptions} from "ngx-highlightjs/lib/highlight.model"; import { TourMatMenuModule, TourService, @@ -322,7 +323,8 @@ export const HttpLoaderFactory: (http: HttpClient) => HttpTranslateLoaderExtra = xml: () => import("highlight.js/lib/languages/xml"), json: () => import("highlight.js/lib/languages/json"), }, - }, + themePath: "assets/highlightjs", + } as HighlightOptions, }, ], bootstrap: [AppComponent], diff --git a/src/app/components/container/footer/footer.container.html b/src/app/components/container/footer/footer.container.html index 3b0ff9b9cb2393b54896b7d233b286c2ee2c9b07..77ce5234fb8420ec7398c60973019b6609e3905d 100644 --- a/src/app/components/container/footer/footer.container.html +++ b/src/app/components/container/footer/footer.container.html @@ -25,7 +25,7 @@ target="_blank" >University of Geneva</a> - <solidify-icon [iconName]="iconNameEnum.unigeBlack" + <solidify-icon [iconName]="(darkModeObs | async) ? iconNameEnum.unigeWhite : iconNameEnum.unigeBlack" class="size-20 unige" ></solidify-icon> </div> diff --git a/src/app/components/container/footer/footer.container.scss b/src/app/components/container/footer/footer.container.scss index 5621749a09e69435e9f16135b42a8fad952f2b76..c15f8fcdd7a12a713e721ba045520a7ada35dad1 100644 --- a/src/app/components/container/footer/footer.container.scss +++ b/src/app/components/container/footer/footer.container.scss @@ -14,7 +14,6 @@ $color-text: $grey; align-items: center; z-index: $z-index-footer; - .left, .right { display: grid; @@ -38,7 +37,6 @@ $color-text: $grey; //display: none; } } - } .copyrights { @@ -98,3 +96,22 @@ $color-text: $grey; } } + +@include isInDarkMode { + background-color: $dark-mode-toolbar; + color: $dark-mode-text-color; + + .copyrights { + a { + color: $dark-mode-text-color; + } + } + + .right { + .toc { + ::ng-deep .open-button { + color: $dark-mode-text-color; + } + } + } +} diff --git a/src/app/components/container/footer/footer.container.ts b/src/app/components/container/footer/footer.container.ts index e402da58e050519e2b97ad5a733582a3376f8a8d..fa7fe4db53101a57be7e2a7201196e3d6154bda2 100644 --- a/src/app/components/container/footer/footer.container.ts +++ b/src/app/components/container/footer/footer.container.ts @@ -28,6 +28,7 @@ import { Output, } from "@angular/core"; import {appActionNameSpace} from "@app/stores/app.action"; +import {AppState} from "@app/stores/app.state"; import {AppTocState} from "@app/stores/toc/app-toc.state"; import {Store} from "@ngxs/store"; import {SharedAbstractContainer} from "@shared/components/containers/shared-abstract/shared-abstract.container"; @@ -54,6 +55,7 @@ export class FooterContainer extends SharedAbstractContainer { integrationGuideObs: Observable<string> = MemoizedUtil.select(this._store, AppTocState, state => state.integrationGuide); apisObs: Observable<string> = MemoizedUtil.select(this._store, AppTocState, state => state.apis); userDocumentationObs: Observable<string> = MemoizedUtil.select(this._store, AppTocState, state => state.userDocumentation); + darkModeObs: Observable<boolean> = MemoizedUtil.select(this._store, AppState, state => state.darkMode); @Input() updateVersion: string | undefined; diff --git a/src/app/components/dialogs/privacy-policy-terms-of-use-approval/privacy-policy-terms-of-use-approval.dialog.html b/src/app/components/dialogs/privacy-policy-terms-of-use-approval/privacy-policy-terms-of-use-approval.dialog.html index 9af4abcc1751e7d8436f0dac3fc1df042b0da293..e3296990789b4fbacda003be94257a1195b84dd1 100644 --- a/src/app/components/dialogs/privacy-policy-terms-of-use-approval/privacy-policy-terms-of-use-approval.dialog.html +++ b/src/app/components/dialogs/privacy-policy-terms-of-use-approval/privacy-policy-terms-of-use-approval.dialog.html @@ -1,5 +1,5 @@ <solidify-base-action-dialog [titleToTranslate]="'app.privacy-policy-terms-of-use-approval.dialog.title' | translate" - solidifyFocusFirstElement + solidifyFocusFirstElement > <span>{{'app.privacy-policy-terms-of-use-approval.dialog.link' | translate}}</span> <form (ngSubmit)="onSubmit()" @@ -32,6 +32,7 @@ > <button [mat-dialog-close]="" mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/components/dialogs/user/user.dialog.html b/src/app/components/dialogs/user/user.dialog.html index 9792fcda99e86ef5cb99a99f15b5044fb3f28a49..e39e1a7e66631f7bbf07cac6190fc136489cda94 100644 --- a/src/app/components/dialogs/user/user.dialog.html +++ b/src/app/components/dialogs/user/user.dialog.html @@ -42,6 +42,7 @@ <div mat-dialog-actions> <button [mat-dialog-close]="" mat-button + color="primary" >{{labelTranslateEnum.close | translate}}</button> <button (click)="validate()" (onEnter)="validate()" diff --git a/src/app/components/dialogs/user/user.dialog.scss b/src/app/components/dialogs/user/user.dialog.scss index 6ac475e12b1280da68fe29dbb3052dc057d698c9..a5c48d9c5e9acff8f066dc49a8216762d43720ea 100644 --- a/src/app/components/dialogs/user/user.dialog.scss +++ b/src/app/components/dialogs/user/user.dialog.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { .dialog-body { @@ -34,3 +34,11 @@ } } } + +@include isInDarkMode { + .dialog-body { + .title { + border-bottom-color: $dark-mode-line; + } + } +} diff --git a/src/app/components/presentationals/main-toolbar/abstract-main-toolbar/abstract-main-toolbar.presentational.ts b/src/app/components/presentationals/main-toolbar/abstract-main-toolbar/abstract-main-toolbar.presentational.ts index e3e34e6f70b6817e7013dc8e8c24eca8dc430309..9c4957da158a73dcc8b25523e4319438f549b298 100644 --- a/src/app/components/presentationals/main-toolbar/abstract-main-toolbar/abstract-main-toolbar.presentational.ts +++ b/src/app/components/presentationals/main-toolbar/abstract-main-toolbar/abstract-main-toolbar.presentational.ts @@ -50,6 +50,7 @@ import { ObservableUtil, SOLIDIFY_CONSTANTS, } from "solidify-frontend"; +import LanguageEnum = Enums.Language.LanguageEnum; @Directive() export abstract class AbstractMainToolbarPresentational extends SharedAbstractPresentational { @@ -59,9 +60,6 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr @Input() currentPath: string; - @Input() - currentLanguage: Enums.Language.LanguageEnum; - @Input() user: User; @@ -84,10 +82,15 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr // Theme private readonly _themeBS: BehaviorSubject<ThemeEnum | undefined> = new BehaviorSubject<ThemeEnum | undefined>(undefined); - @Output("themeChange") readonly themeObs: Observable<ThemeEnum | undefined> = ObservableUtil.asObservable(this._themeBS); + // Dark mode + private readonly _darkModeBS: BehaviorSubject<boolean | undefined> = new BehaviorSubject<boolean | undefined>(undefined); + + @Output("darkModeChange") + readonly darkModeObs: Observable<boolean | undefined> = ObservableUtil.asObservable(this._darkModeBS); + isProduction: boolean = environment.production; isDemoMode: boolean = environment.isDemoMode; isOpen: boolean = false; @@ -109,15 +112,49 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr this._theme = theme; } + private get _language(): LanguageEnum | undefined { + return this._languageBS.getValue(); + } + + private set _language(value: LanguageEnum | undefined) { + this._languageBS.next(value); + } + + get language(): LanguageEnum | undefined { + return this._language; + } + + @Input() + set language(language: LanguageEnum | undefined) { + this._language = language; + } + + private get _darkMode(): boolean | undefined { + return this._darkModeBS.getValue(); + } + + private set _darkMode(value: boolean | undefined) { + this._darkModeBS.next(value); + } + + get darkMode(): boolean | undefined { + return this._darkMode; + } + + @Input() + set darkMode(darkMode: boolean | undefined) { + this._darkMode = darkMode; + } + // Navigate protected readonly _navigateBS: BehaviorSubject<string | undefined> = new BehaviorSubject<string | undefined>(undefined); @Output("navigateChange") readonly navigateObs: Observable<string | undefined> = ObservableUtil.asObservable(this._navigateBS); // Language - private readonly _languageBS: BehaviorSubject<Enums.Language.LanguageEnum | undefined> = new BehaviorSubject<Enums.Language.LanguageEnum | undefined>(undefined); + private readonly _languageBS: BehaviorSubject<LanguageEnum | undefined> = new BehaviorSubject<LanguageEnum | undefined>(undefined); @Output("languageChange") - readonly languageObs: Observable<Enums.Language.LanguageEnum | undefined> = ObservableUtil.asObservable(this._languageBS); + readonly languageObs: Observable<LanguageEnum | undefined> = ObservableUtil.asObservable(this._languageBS); // Logout private readonly _logoutBS: BehaviorSubject<void | undefined> = new BehaviorSubject<void | undefined>(undefined); @@ -222,10 +259,6 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr this._navigateBS.next(path); } - useLanguage(language: Enums.Language.LanguageEnum): void { - this._languageBS.next(language); - } - toggleMenu(): void { this.isOpen = !this.isOpen; } @@ -249,10 +282,6 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr logout(): void { this._logoutBS.next(); } - - navigateToInstitution(): void { - window.open(this.institutionUrl, "_blank"); - } } export interface MenuToolbar { diff --git a/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.html b/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.html index ad96fd74705dbd9f64245c27265355d04a761ede..615a5176189f252c9dbaa59691a9084722f3a72a 100644 --- a/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.html +++ b/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.html @@ -80,8 +80,7 @@ </solidify-icon> </button> - <solidify-language-selector (languageChange)="useLanguage($event)" - [currentLanguage]="currentLanguage" + <solidify-language-selector [(language)]="language" class="language-selector" > </solidify-language-selector> @@ -106,6 +105,7 @@ <dlcm-user-menu (logoutChange)="logout()" (userGuideOpen)="openUserGuide()" [(theme)]="theme" + [(darkMode)]="darkMode" [listMenuAdmin]="getListMenuAdmin()" [photoUser]="photoUser" [user]="user" diff --git a/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.scss b/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.scss index 4e857ee74b6084b9e921ad29df3c22a0b570a956..af279e03318a285f5ee4d5c1d2c7e10cf33692ae 100644 --- a/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.scss +++ b/src/app/components/presentationals/main-toolbar/main-toolbar-desktop-horizontal/main-toolbar-desktop-horizontal.presentational.scss @@ -1,16 +1,4 @@ -@import "src/sass/abstracts/abstracts"; - -:host-context(body[theme='dlcm']), :host-context(body[theme='olos']) { - .toolbar { - // Boilerplate for theming scss depending of environment conf - } -} - -:host-context(body[theme='olos']) { - .instance-logo { - filter: invert(100%); - } -} +@import "abstracts/abstracts"; :host { .toolbar { @@ -147,3 +135,16 @@ } } } + +@include isInDarkMode { + .toolbar { + background-color: $dark-mode-toolbar; + color: $dark-mode-text-color; + + .right-part { + .separator { + background-color: $dark-mode-line; + } + } + } +} diff --git a/src/app/components/presentationals/main-toolbar/main-toolbar-mobile/main-toolbar-mobile.presentational.html b/src/app/components/presentationals/main-toolbar/main-toolbar-mobile/main-toolbar-mobile.presentational.html index 910cbaa39333a0a311c8c31af908944030f45072..4b1539ad911ed4a5aba2d430e571c73d2723d53a 100644 --- a/src/app/components/presentationals/main-toolbar/main-toolbar-mobile/main-toolbar-mobile.presentational.html +++ b/src/app/components/presentationals/main-toolbar/main-toolbar-mobile/main-toolbar-mobile.presentational.html @@ -39,10 +39,7 @@ </ng-template> </li> <li class="language-selector-line"> - <solidify-language-selector (languageChange)="useLanguage($event)" - [currentLanguage]="currentLanguage" - > - </solidify-language-selector> + <solidify-language-selector [(language)]="language"></solidify-language-selector> </li> <ng-template [ngIfElse]="loggedOut" diff --git a/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.html b/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.html index 0c2aa7b4447559a9eb6ff1ce51f38dad9ef6bbba..026692a648e158e4f5fa3f81fdc8296f5eda147c 100644 --- a/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.html +++ b/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.html @@ -4,8 +4,9 @@ (navigateChange)="changeNavigate($event)" (searchChange)="search($event)" (themeChange)="changeTheme($event)" + (darkModeChange)="changeDarkMode($event)" (userGuideOpen)="openUserGuide()" - [currentLanguage]="currentLanguage" + [language]="language" [currentPath]="currentPath" [displayCart]="displayCart" [isHomePage]="isHomePage" @@ -16,6 +17,7 @@ [numberPendingRequestNotificationInbox]="numberPendingRequestNotificationInbox" [photoUser]="photoUser" [theme]="theme" + [darkMode]="darkMode" [userRoles]="userRoles" [user]="user" class="horizontal-toolbar" @@ -27,13 +29,15 @@ (logoutChange)="logout()" (navigateChange)="changeNavigate($event)" (themeChange)="changeTheme($event)" - [currentLanguage]="currentLanguage" + (darkModeChange)="changeDarkMode($event)" + [language]="language" [currentPath]="currentPath" [logged]="logged" [numberArchiveInCart]="numberArchiveInCart" [numberMyOrderReadyNew]="numberMyOrderReadyNew" [numberPendingRequestNotificationInbox]="numberPendingRequestNotificationInbox" [theme]="theme" + [darkMode]="darkMode" [userRoles]="userRoles" class="mobile-toolbar" > diff --git a/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.ts b/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.ts index 7b44b624e76f1a363eeb5393d9c1d867d7133dd3..374f2184671ea2f4bcdd2245c493258839a375f0 100644 --- a/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.ts +++ b/src/app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational.ts @@ -51,7 +51,7 @@ export class MainToolbarPresentational extends SharedAbstractPresentational { currentPath: string; @Input() - currentLanguage: Enums.Language.LanguageEnum; + language: Enums.Language.LanguageEnum; @Input() userRoles: Enums.UserApplicationRole.UserApplicationRoleEnum[]; @@ -74,6 +74,9 @@ export class MainToolbarPresentational extends SharedAbstractPresentational { @Input() theme: ThemeEnum; + @Input() + darkMode: boolean; + @Input() logo: string; @@ -87,6 +90,10 @@ export class MainToolbarPresentational extends SharedAbstractPresentational { @Output("themeChange") readonly themeObs: Observable<ThemeEnum | undefined> = ObservableUtil.asObservable(this._themeBS); + private readonly _darkModeBS: BehaviorSubject<boolean | undefined> = new BehaviorSubject<boolean | undefined>(undefined); + @Output("darkModeChange") + readonly darkModeObs: Observable<boolean | undefined> = ObservableUtil.asObservable(this._darkModeBS); + // Navigate private readonly _navigateBS: BehaviorSubject<string | undefined> = new BehaviorSubject<string | undefined>(undefined); @Output("navigateChange") @@ -123,6 +130,12 @@ export class MainToolbarPresentational extends SharedAbstractPresentational { } } + changeDarkMode(darkMode: boolean): void { + if (this._darkModeBS.value !== darkMode) { + this._darkModeBS.next(darkMode); + } + } + changeLanguage(language: Enums.Language.LanguageEnum): void { if (this._languageBS.value !== language) { this._languageBS.next(language); diff --git a/src/app/components/presentationals/user-menu/user-menu.presentational.html b/src/app/components/presentationals/user-menu/user-menu.presentational.html index 53710881f69030710b9a7bd22b8bb68386459a98..102eed51f19776296df4546d7b3d0b51e67eb5f6 100644 --- a/src/app/components/presentationals/user-menu/user-menu.presentational.html +++ b/src/app/components/presentationals/user-menu/user-menu.presentational.html @@ -67,12 +67,11 @@ </button> <button (click)="toggleDarkMode()" (onEnter)="toggleDarkMode()" - [disabled]="true" mat-menu-item solidifyShortCuts > - <solidify-icon [iconName]="iconNameEnum.darkMode"></solidify-icon> - <span>{{'app.module.darkMode' | translate}}</span> + <solidify-icon [iconName]="darkMode ? iconNameEnum.lightMode : iconNameEnum.darkMode"></solidify-icon> + <span>{{(darkMode ? labelTranslateEnum.lightMode : labelTranslateEnum.darkMode) | translate}}</span> </button> <button (click)="logout()" mat-menu-item diff --git a/src/app/components/presentationals/user-menu/user-menu.presentational.ts b/src/app/components/presentationals/user-menu/user-menu.presentational.ts index fd85d54501490ed5903aba3af973c1b4db66ca8e..5bdf873ffbd33b3038e96e144decd25f14e62637 100644 --- a/src/app/components/presentationals/user-menu/user-menu.presentational.ts +++ b/src/app/components/presentationals/user-menu/user-menu.presentational.ts @@ -80,6 +80,23 @@ export class UserMenuPresentational extends SharedAbstractPresentational { this._theme = theme; } + private get _darkMode(): boolean | undefined { + return this._darkModeChangeBS.getValue(); + } + + private set _darkMode(value: boolean | undefined) { + this._darkModeChangeBS.next(value); + } + + get darkMode(): boolean | undefined { + return this._darkMode; + } + + @Input() + set darkMode(darkMode: boolean | undefined) { + this._darkMode = darkMode; + } + @Input() listMenuAdmin: MenuToolbar[]; @@ -100,6 +117,10 @@ export class UserMenuPresentational extends SharedAbstractPresentational { @Output("themeChange") readonly themeChangeObs: Observable<ThemeEnum | undefined> = ObservableUtil.asObservable(this._themeChangeBS); + private readonly _darkModeChangeBS: BehaviorSubject<boolean | undefined> = new BehaviorSubject<boolean | undefined>(undefined); + @Output("darkModeChange") + readonly darkModeChangeObs: Observable<boolean | undefined> = ObservableUtil.asObservable(this._darkModeChangeBS); + constructor(private readonly _dialog: MatDialog) { super(); } @@ -130,6 +151,6 @@ export class UserMenuPresentational extends SharedAbstractPresentational { } toggleDarkMode(): void { - + this._darkModeChangeBS.next(!this._darkModeChangeBS.value); } } diff --git a/src/app/features/admin/language/components/dialogs/admin-language-create-edit/admin-language-create-edit.dialog.html b/src/app/features/admin/language/components/dialogs/admin-language-create-edit/admin-language-create-edit.dialog.html index fbea1a2b2d7d2528790f6d35898259704e4f797a..4ae5b145c5354aaa5c4b643cebb0f2e89f7270b3 100644 --- a/src/app/features/admin/language/components/dialogs/admin-language-create-edit/admin-language-create-edit.dialog.html +++ b/src/app/features/admin/language/components/dialogs/admin-language-create-edit/admin-language-create-edit.dialog.html @@ -14,6 +14,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" > {{KEY_CANCEL_BUTTON | translate}} </button> diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html index 4ec3c2cff15c3b53f785a4cc284e8d478bc31dd8..23e927e13f5b3f7ab11a6bc6f3900441d74bdd5a 100644 --- a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html +++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-detail-create-update/admin-organizational-unit-additional-fields-detail-create-update.dialog.html @@ -14,6 +14,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" > {{labelTranslateEnum.close | translate}} </button> diff --git a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html index ac82058f5538e0613ec035c63ee478af0da437aa..b2644e22027c990b93bd74320e2e83c25501f6ae 100644 --- a/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html +++ b/src/app/features/admin/organizational-unit/components/dialogs/admin-organizational-unit-additional-fields-rename/admin-organizational-unit-additional-fields-rename.dialog.html @@ -25,6 +25,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/admin/research-domain/components/dialogs/admin-research-domain-create-edit/admin-research-domain-create-edit.dialog.html b/src/app/features/admin/research-domain/components/dialogs/admin-research-domain-create-edit/admin-research-domain-create-edit.dialog.html index c8ab25b8875b51179132ce9e0ef7f191013a939a..52c9e68d6e30a6a59e4197ab455b5d63fd1718e1 100644 --- a/src/app/features/admin/research-domain/components/dialogs/admin-research-domain-create-edit/admin-research-domain-create-edit.dialog.html +++ b/src/app/features/admin/research-domain/components/dialogs/admin-research-domain-create-edit/admin-research-domain-create-edit.dialog.html @@ -15,6 +15,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" > {{KEY_CANCEL_BUTTON | translate}} </button> diff --git a/src/app/features/admin/user/components/dialogs/admin-user-edit-role-current-user/admin-user-edit-role-current-user.dialog.html b/src/app/features/admin/user/components/dialogs/admin-user-edit-role-current-user/admin-user-edit-role-current-user.dialog.html index a100ee17d794c03ba5f4e15e621878974d6c5caa..7fafe858db6b185bd943c7da17a8242e79af5f22 100644 --- a/src/app/features/admin/user/components/dialogs/admin-user-edit-role-current-user/admin-user-edit-role-current-user.dialog.html +++ b/src/app/features/admin/user/components/dialogs/admin-user-edit-role-current-user/admin-user-edit-role-current-user.dialog.html @@ -32,6 +32,7 @@ <button [mat-dialog-close]="" [solidifyFocusFirstElement]="true" mat-button + color="primary" >{{labelTranslateEnum.cancel | translate}}</button> <button (click)="confirm()" (onEnter)="confirm()" diff --git a/src/app/features/deposit/components/containers/deposit-file/deposit-file.container.scss b/src/app/features/deposit/components/containers/deposit-file/deposit-file.container.scss index a5bad7f6bdcc341283d3685d62b5b3dad0d82492..6ad277ba48454c4929e6a815e2101641cbbb0e94 100644 --- a/src/app/features/deposit/components/containers/deposit-file/deposit-file.container.scss +++ b/src/app/features/deposit/components/containers/deposit-file/deposit-file.container.scss @@ -1,5 +1,5 @@ @import "solidify-frontend/lib/components/routables/abstract-detail-edit-common/abstract-detail-edit-common.routable"; -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { padding: 0; @@ -79,3 +79,17 @@ } } } + +@include isInDarkMode { + .header { + .left-part { + .selector-file-view-mode { + a { + &:not(.is-active) { + color: $dark-mode-text-disabled; + } + } + } + } + } +} diff --git a/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.html b/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.html index 585257286ac77f333de35bce991c277400867a31..c7254dab59c7bdfb83ed8fc1f31c6de40f45bf23 100644 --- a/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.html @@ -1,11 +1,11 @@ <solidify-base-action-dialog [titleToTranslate]="'deposit.aip.modal.title.main' | translate"> <h2>{{'deposit.aip.modal.title.search' | translate }}</h2> <solidify-search-input (valueChange)="search($event)" - [appearance]="appearanceInputMaterial" - [labelToTranslate]="labelTranslateEnum.nameLabel" - [searchAutoFocus]="false" - [value]="searchObs | async" - class="search-bar" + [appearance]="appearanceInputMaterial" + [labelToTranslate]="labelTranslateEnum.nameLabel" + [searchAutoFocus]="false" + [value]="searchObs | async" + class="search-bar" > </solidify-search-input> @@ -39,6 +39,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.scss b/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.scss index 2edf8273ca6ca488089999763e6e99e99e2a0819..08ad6a78db3700e7e531c7f2e8b9dfc31ebc41cc 100644 --- a/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.scss +++ b/src/app/features/deposit/components/dialogs/deposit-aip-upload/deposit-aip-upload.dialog.scss @@ -1,19 +1,37 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; -li { - &.aip-item { - background-color: $extra-light-grey; - margin: 0; - padding: 8px 10px; - cursor: pointer; - } +:host { + li { + &.aip-item { + background-color: $extra-light-grey; + margin: 0; + padding: 8px 10px; + cursor: pointer; + } + + &:nth-child(odd) { + background-color: $extra-ultra-light-grey; + } - &:nth-child(odd) { - background-color: $extra-ultra-light-grey; + &.selected { + background-color: $primary-color; + color: $white; + } } +} + +@include isInDarkMode { + li { + &.aip-item { + background-color: $dark-mode-background; + } + + &:nth-child(odd) { + background-color: $dark-mode-toolbar; + } - &.selected { - background-color: $primary-color; - color: $white; + &.selected { + background-color: $primary-color; + } } } diff --git a/src/app/features/deposit/components/dialogs/deposit-file-change-data-category/deposit-file-change-data-category.dialog.html b/src/app/features/deposit/components/dialogs/deposit-file-change-data-category/deposit-file-change-data-category.dialog.html index 6458434fa84272b035805e50edb79c493467cca5..6603d30dcf34b8f37af579c4db8fff9fc744122a 100644 --- a/src/app/features/deposit/components/dialogs/deposit-file-change-data-category/deposit-file-change-data-category.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-file-change-data-category/deposit-file-change-data-category.dialog.html @@ -59,6 +59,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/deposit/components/dialogs/deposit-file-move/deposit-file-move.dialog.html b/src/app/features/deposit/components/dialogs/deposit-file-move/deposit-file-move.dialog.html index 0bd38cf077446dd9cabc8b0ac8ed3048e95e9396..96a6e7bb22b7e10de5eccc2dbdc5aec2e8b78ae1 100644 --- a/src/app/features/deposit/components/dialogs/deposit-file-move/deposit-file-move.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-file-move/deposit-file-move.dialog.html @@ -24,6 +24,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/deposit/components/dialogs/deposit-file-upload-archive/deposit-file-upload-archive.dialog.html b/src/app/features/deposit/components/dialogs/deposit-file-upload-archive/deposit-file-upload-archive.dialog.html index a5493637f0e315b39f52ca5decbff478b7ee39ba..6ee024e28c58eda7d4886ff9172967b3b19fc2c7 100644 --- a/src/app/features/deposit/components/dialogs/deposit-file-upload-archive/deposit-file-upload-archive.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-file-upload-archive/deposit-file-upload-archive.dialog.html @@ -115,6 +115,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.html b/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.html index 62cf736207c86a591833bb9ec68f38df2930d882..accff98f76139cc6a720031f5f552754e3a471a6 100644 --- a/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.html @@ -115,7 +115,8 @@ {{labelTranslateEnum.provideChecksums | translate}} </mat-checkbox> <div class="checksum-generated-indicator">{{labelTranslateEnum.checksums | translate}} : - <span *ngIf="formValidationHelper.getFormControl(formGroup, formDefinitionChecksum.checksumGeneratedIsLoadingCounter)?.value > 0; else noPending" + <span *ngIf="formValidationHelper.getFormControl(formGroup, formDefinitionChecksum.checksumGeneratedIsLoadingCounter)?.value > 0; else + noPending" class="calculating" > {{labelTranslateEnum.calculating | translate}} @@ -248,6 +249,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.scss b/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.scss index a98dac6d08fc8d5ea0d84e78557173476c00642a..911b298823711734f6d864d73f70634fffb3453c 100644 --- a/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.scss +++ b/src/app/features/deposit/components/dialogs/deposit-file-upload/deposit-file-upload.dialog.scss @@ -59,3 +59,15 @@ opacity: 1; } } + +@include isInDarkMode { + .expansion-panel { + .checksum-header-wrapper { + .checksum-generated-indicator { + .calculating { + background-color: $dark-mode-toolbar; + } + } + } + } +} diff --git a/src/app/features/deposit/components/dialogs/deposit-order-author/deposit-order-author.dialog.html b/src/app/features/deposit/components/dialogs/deposit-order-author/deposit-order-author.dialog.html index 12f7f0c97b84fa2ea377454c78f08334793fb4ee..abe74da23d2ee4baea2acc31204413d85e1e95e2 100644 --- a/src/app/features/deposit/components/dialogs/deposit-order-author/deposit-order-author.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-order-author/deposit-order-author.dialog.html @@ -33,6 +33,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" >{{labelTranslateEnum.close | translate}}</button> <button (click)="validate()" color="primary" diff --git a/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.html b/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.html index 8c35b2a2e94fd3be97b7b610ecfde01406fd78ae..05a354ba1f52ecc466c317d8e458a82bcc3122b0 100644 --- a/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.html @@ -52,6 +52,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" >{{labelTranslateEnum.close | translate}}</button> <button (click)="submit(selectedDepositPerson)" [disabled]="!selectedDepositPerson" diff --git a/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.scss b/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.scss index 0c6a2e1b202401e8f19e5bacc0a657f83dc4fe84..2c3a7ada758bed6eb2f55a4f138c023fce21a663 100644 --- a/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.scss +++ b/src/app/features/deposit/components/dialogs/deposit-person-alternative/deposit-person-alternative.dialog.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { ::ng-deep { @@ -63,4 +63,18 @@ } } +@include isInDarkMode { + ::ng-deep .mat-list-item { + &:nth-child(even) { + background-color: $dark-mode-toolbar; + } + + &:focus { + background-color: $dark-mode-menu-active; + } + &.is-active { + background-color: $primary-color; + } + } +} diff --git a/src/app/features/deposit/components/dialogs/deposit-person/deposit-person.dialog.html b/src/app/features/deposit/components/dialogs/deposit-person/deposit-person.dialog.html index 5c3b1f2d4691d594d73e1a0ab349416336fc1cbc..ee8e60a3c0df959df3f89470e6899f7a5981baab 100644 --- a/src/app/features/deposit/components/dialogs/deposit-person/deposit-person.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-person/deposit-person.dialog.html @@ -12,6 +12,7 @@ <button [mat-dialog-close]="" [solidifyAutoFocus]="true" mat-button + color="primary" >{{labelTranslateEnum.close | translate}}</button> <button (click)="formPresentational?.onSubmit()" [disabled]="!formPresentational?.form.valid || !formPresentational?.form.dirty || (isLoadingPersonObs | async)" diff --git a/src/app/features/deposit/components/dialogs/deposit-reject/deposit-reject.dialog.html b/src/app/features/deposit/components/dialogs/deposit-reject/deposit-reject.dialog.html index 1c61995118a1f7925207c3af2f30f065baede884..60bf7a4ea6aef66f46674b51cc36e9ca46695566 100644 --- a/src/app/features/deposit/components/dialogs/deposit-reject/deposit-reject.dialog.html +++ b/src/app/features/deposit/components/dialogs/deposit-reject/deposit-reject.dialog.html @@ -25,6 +25,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss index 904464be1a37389fa39b1ff2b123c60c3a98b88a..84e6ba0d2e91e0e34bd5a049709ab04c793240b1 100644 --- a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss +++ b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss @@ -2,9 +2,7 @@ @import "abstracts/abstracts"; :host { - form { - .header { display: grid; grid-template-columns: max-content max-content; @@ -15,7 +13,6 @@ } .org-unit { - font-size: 20px; padding-bottom: 18px; white-space: nowrap; @@ -105,3 +102,19 @@ } } } + +@include isInDarkMode { + form { + .header { + .org-unit { + .label { + color: $dark-mode-text-disabled; + } + + .name { + color: $dark-mode-text-color; + } + } + } + } +} diff --git a/src/app/features/deposit/components/routables/deposit-list/deposit-list.routable.scss b/src/app/features/deposit/components/routables/deposit-list/deposit-list.routable.scss index 72e109fd72b48254c3361195e940a01bbb61f4ac..e6d6639256cb1a5ebf2597d057cef75ef7b76966 100644 --- a/src/app/features/deposit/components/routables/deposit-list/deposit-list.routable.scss +++ b/src/app/features/deposit/components/routables/deposit-list/deposit-list.routable.scss @@ -1,7 +1,6 @@ @import "solidify-frontend/lib/components/routables/abstract-list/abstract-list.routable"; @import "abstracts/abstracts"; - :host { .toolbar-wrapper { display: flex; @@ -74,3 +73,23 @@ } } } + +@include isInDarkMode { + .toolbar-wrapper { + background-color: $dark-mode-background; + box-shadow: 0 0 0 $dark-mode-background, 0 -2px 0 $dark-mode-background; // avoid glitch when play with zooming on browser + + } + + .tab-header { + background-color: $dark-mode-background; + + ::ng-deep { + .mat-tab-labels { + .mat-tab-label { + color: $dark-mode-text-color; + } + } + } + } +} diff --git a/src/app/features/home/components/dialogs/archive-restricted-request-access/home-archive-restricted-request-access-dialog.component.html b/src/app/features/home/components/dialogs/archive-restricted-request-access/home-archive-restricted-request-access-dialog.component.html index 25819b3271f1825ec06c5cb6894be30f3b6103ff..866edc1edcb0642edb011a0bc4ae0a2b9518e785 100644 --- a/src/app/features/home/components/dialogs/archive-restricted-request-access/home-archive-restricted-request-access-dialog.component.html +++ b/src/app/features/home/components/dialogs/archive-restricted-request-access/home-archive-restricted-request-access-dialog.component.html @@ -25,6 +25,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/features/home/components/presentationals/home-archive-form/home-archive-detail.presentational.scss b/src/app/features/home/components/presentationals/home-archive-form/home-archive-detail.presentational.scss index 84467a113e7fdf2161b3ddfd01818d8261e35698..5de47af17e0bee434b6cd730656be474a7693790 100644 --- a/src/app/features/home/components/presentationals/home-archive-form/home-archive-detail.presentational.scss +++ b/src/app/features/home/components/presentationals/home-archive-form/home-archive-detail.presentational.scss @@ -184,7 +184,7 @@ $padding-bottom-desktop: 20px; line-height: 1.42857143; word-break: break-all; word-wrap: break-word; - background-color: #f5f5f5; + background-color: $white; border: 1px solid #ccc; border-radius: 4px; overflow-x: auto; @@ -243,3 +243,22 @@ $padding-bottom-desktop: 20px; padding-top: 20px; } } + + +@include isInDarkMode { + .shared-detail-presentation { + .image-wrapper { + border-color: $dark-mode-line; + } + + .title { + color: $dark-mode-text-color; + } + } + + .pre { + border-color: $dark-mode-line; + background-color: #0d1117; + } +} + diff --git a/src/app/features/home/components/presentationals/home-main-page-content/home-main-page-content.presentational.scss b/src/app/features/home/components/presentationals/home-main-page-content/home-main-page-content.presentational.scss index ebca9d8b8b6d2a363e52702a110438235625ce50..ba7b80cfd09784eb2b915666f51b72e3432957e9 100644 --- a/src/app/features/home/components/presentationals/home-main-page-content/home-main-page-content.presentational.scss +++ b/src/app/features/home/components/presentationals/home-main-page-content/home-main-page-content.presentational.scss @@ -5,10 +5,10 @@ grid-template-columns: 1fr max-content; grid-gap: 20px; background-color: $extra-ultra-light-grey; - border-radius: 2px; padding: 20px; align-items: center; max-height: 420px; + border-radius: 8px; .buttons { height: 100%; @@ -30,3 +30,7 @@ } } } + +@include isInDarkMode { + background-color: $dark-mode-toolbar; +} diff --git a/src/app/features/home/components/presentationals/home-partners/home-partners.presentational.scss b/src/app/features/home/components/presentationals/home-partners/home-partners.presentational.scss index cdcd99ed84ef2eb3ac10dfad4cf062456d01598f..17f04bac279df9a8d7b1fb1c2d9e8a275ec43a67 100644 --- a/src/app/features/home/components/presentationals/home-partners/home-partners.presentational.scss +++ b/src/app/features/home/components/presentationals/home-partners/home-partners.presentational.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { .title { @@ -73,3 +73,14 @@ } } } + +@include isInDarkMode { + .title { + border-bottom-color: $dark-mode-line; + } + + .list-logo-wrapper { + background-color: $white; + border-radius: 8px; + } +} diff --git a/src/app/features/home/components/presentationals/home-rss-wrapper/home-rss-wrapper.presentational.scss b/src/app/features/home/components/presentationals/home-rss-wrapper/home-rss-wrapper.presentational.scss index 0a265777058833a812faffdeb1def368289f3d97..5b48eaa1055f057e65009085a9f6af167d44f63f 100644 --- a/src/app/features/home/components/presentationals/home-rss-wrapper/home-rss-wrapper.presentational.scss +++ b/src/app/features/home/components/presentationals/home-rss-wrapper/home-rss-wrapper.presentational.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; .rss-wrapper { display: flex; diff --git a/src/app/features/home/components/presentationals/home-search-bar/home-search-bar.presentational.scss b/src/app/features/home/components/presentationals/home-search-bar/home-search-bar.presentational.scss index afee336b2bd3958063a1d9375b2e33efee1e4373..57360f8c677972424738af146e29cc60dd79587f 100644 --- a/src/app/features/home/components/presentationals/home-search-bar/home-search-bar.presentational.scss +++ b/src/app/features/home/components/presentationals/home-search-bar/home-search-bar.presentational.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { display: block; @@ -13,9 +13,12 @@ height: 35px; .input { + border: none; + background-color: transparent; padding-left: 20px; text-align: left; padding-top: 4px; + color: $text-color; } } } diff --git a/src/app/features/home/components/presentationals/home-search-facet/home-search-facet.presentational.scss b/src/app/features/home/components/presentationals/home-search-facet/home-search-facet.presentational.scss index 774e2c2ba8dbd346661be530f6ab28aa76d41323..595508e504d8d7c434ffcc258fc8862c3e010e06 100644 --- a/src/app/features/home/components/presentationals/home-search-facet/home-search-facet.presentational.scss +++ b/src/app/features/home/components/presentationals/home-search-facet/home-search-facet.presentational.scss @@ -105,3 +105,9 @@ $padding-left-right: 20px; } } + +@include isInDarkMode { + .panel { + background: $dark-mode-toolbar; + } +} diff --git a/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.scss b/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.scss index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9dab6e2be3cb760f9a68789dcb7f2fc8bfef9169 100644 --- a/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.scss +++ b/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.scss @@ -0,0 +1,2 @@ +@import "abstracts/abstracts"; + diff --git a/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.ts b/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.ts index 860eb789fef64eba791d3690b1d616f4d0b888cb..059d91fd22b5c4562f33c9fee74fe17470ab543e 100644 --- a/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.ts +++ b/src/app/features/home/components/presentationals/home-tweet-detail/home-twitter-widget.presentational.ts @@ -40,11 +40,17 @@ import { } from "@app/features/home/models/twitter-widget.model"; import {TwitterService} from "@app/features/home/services/twitter.service"; import {SharedAbstractPresentational} from "@app/shared/components/presentationals/shared-abstract/shared-abstract.presentational"; +import {AppState} from "@app/stores/app.state"; +import {Store} from "@ngxs/store"; import { catchError, + take, tap, } from "rxjs/operators"; -import {LoggingService} from "solidify-frontend"; +import { + LoggingService, + MemoizedUtil, +} from "solidify-frontend"; @Component({ selector: "dlcm-home-twitter-widget-presentational", @@ -75,12 +81,13 @@ export class HomeTwitterWidgetPresentational extends SharedAbstractPresentationa height: number | undefined; @Input() - chrome: TwitterChromeEnum[] = [TwitterChromeEnum.noborders]; + chrome: TwitterChromeEnum[] = [TwitterChromeEnum.noborders, TwitterChromeEnum.transparent]; constructor(private readonly _renderer: Renderer2, private readonly _element: ElementRef, private readonly _twitterService: TwitterService, private readonly _loggingService: LoggingService, + private readonly _store: Store, @Inject(WINDOW) private readonly _window: Window) { super(); } @@ -89,6 +96,7 @@ export class HomeTwitterWidgetPresentational extends SharedAbstractPresentationa // https://developer.twitter.com/en/docs/twitter-for-websites/javascript-api/guides/scripting-factory-functions this.subscribe(this._twitterService.loadScript(this._renderer) .pipe( + take(1), tap((twitterMetadata: TwitterMetadata) => { const nativeElement: Element = this._element.nativeElement; const dataSource: DataSource = { @@ -97,6 +105,7 @@ export class HomeTwitterWidgetPresentational extends SharedAbstractPresentationa userId: this.userId, }; const options: Options = { + theme: MemoizedUtil.selectSnapshot(this._store, AppState, state => state.darkMode) ? "dark" : undefined, tweetLimit: this.tweetLimit, height: this.height, chrome: this.chrome, @@ -104,11 +113,19 @@ export class HomeTwitterWidgetPresentational extends SharedAbstractPresentationa borderColor: this.borderColor, }; - twitterMetadata.widgets.createTimeline(dataSource, nativeElement, options) - .then((iframe: any) => {}) - .catch((message: string) => { - this._loggingService.logWarning("Twitter : Could not create widget", message); - }); + this.subscribe(MemoizedUtil.select(this._store, AppState, state => state.darkMode).pipe( + tap(enabled => { + const list: NodeList = this._element.nativeElement.querySelectorAll("iframe"); + list.forEach(node => { + this._element.nativeElement.removeChild(node); + }); + options.theme = enabled ? "dark" : undefined; + twitterMetadata.widgets.createTimeline(dataSource, nativeElement, options) + .then((iframe: any) => {}) + .catch((message: string) => { + this._loggingService.logWarning("Twitter : Could not create widget", message); + }); + }))); }), catchError((err: any) => { this._loggingService.logWarning("Twitter : Error loading twitter widget", err); diff --git a/src/app/features/home/components/presentationals/home-tweet-wrapper/home-tweeter-wrapper.presentational.ts b/src/app/features/home/components/presentationals/home-tweet-wrapper/home-tweeter-wrapper.presentational.ts index 84f5e90da3fb0971845bbf5ea9a44ae704156472..45a2c4134eabd251f30ea873842b8a8e11a184af 100644 --- a/src/app/features/home/components/presentationals/home-tweet-wrapper/home-tweeter-wrapper.presentational.ts +++ b/src/app/features/home/components/presentationals/home-tweet-wrapper/home-tweeter-wrapper.presentational.ts @@ -28,7 +28,7 @@ import { import {TwitterChromeEnum} from "@app/features/home/enums/twitter-chrome.enum"; import {TwitterSourceTypeEnum} from "@app/features/home/enums/twitter-source-type.enum"; import {SharedAbstractPresentational} from "@app/shared/components/presentationals/shared-abstract/shared-abstract.presentational"; -import {environment} from "../../../../../../environments/environment"; +import {environment} from "@environments/environment"; @Component({ selector: "dlcm-home-twitter-wrapper-presentational", @@ -40,5 +40,5 @@ export class HomeTwitterWrapperPresentational extends SharedAbstractPresentation readonly sourceType: string = TwitterSourceTypeEnum.profile; readonly screenName: string = environment.twitterAccount; readonly tweetLimit: number = environment.twitterTweetToDisplay; - readonly chrome: TwitterChromeEnum[] = [TwitterChromeEnum.noborders]; + readonly chrome: TwitterChromeEnum[] = [TwitterChromeEnum.noborders, TwitterChromeEnum.transparent]; } diff --git a/src/app/features/home/components/routables/home-page/home-page.routable.scss b/src/app/features/home/components/routables/home-page/home-page.routable.scss index 809777af941addfd8ace355af4a586418d4c9cb9..b0b71e43f94774d5ea880997460db2667344a0e7 100644 --- a/src/app/features/home/components/routables/home-page/home-page.routable.scss +++ b/src/app/features/home/components/routables/home-page/home-page.routable.scss @@ -117,9 +117,10 @@ @include content(); } -:host-context(body[theme='election']) { - .toolbar-size-guard, - .toolbar-wrapper { - height: 600px; +@include isInDarkMode { + .news-wrapper { + > .separator { + border-color: $dark-mode-line; + } } } diff --git a/src/app/features/home/models/twitter-widget.model.ts b/src/app/features/home/models/twitter-widget.model.ts index 668048792db05bca9ffaaa4785f5282fb0c4fb3d..16fe2d5206e65630adfc64f0119323caf1df770b 100644 --- a/src/app/features/home/models/twitter-widget.model.ts +++ b/src/app/features/home/models/twitter-widget.model.ts @@ -36,6 +36,7 @@ export class DataSource { export class Options { tweetLimit?: number; + theme?: string; height?: number; chrome?: TwitterChromeEnum[]; ariaPolite?: string; diff --git a/src/app/features/order/features/all-order/components/presentationals/all-order-form/order-all-order-form.presentational.scss b/src/app/features/order/features/all-order/components/presentationals/all-order-form/order-all-order-form.presentational.scss index 6ead70cb312b81a3d1a557d607e5210839c9e742..1c081bca258a568550eaf891cae3c719bce8af8a 100644 --- a/src/app/features/order/features/all-order/components/presentationals/all-order-form/order-all-order-form.presentational.scss +++ b/src/app/features/order/features/all-order/components/presentationals/all-order-form/order-all-order-form.presentational.scss @@ -1,2 +1,2 @@ @import "solidify-frontend/lib/components/presentationals/abstract-form/abstract-form.presentational"; -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; diff --git a/src/app/features/order/features/all-order/components/routables/all-order-detail-edit/order-all-order-detail-edit.routable.scss b/src/app/features/order/features/all-order/components/routables/all-order-detail-edit/order-all-order-detail-edit.routable.scss index a923ff10611f534601b845bdbc364444296aa729..b233b4b0f14bcb69f2f7c601ae291ff005857a1f 100644 --- a/src/app/features/order/features/all-order/components/routables/all-order-detail-edit/order-all-order-detail-edit.routable.scss +++ b/src/app/features/order/features/all-order/components/routables/all-order-detail-edit/order-all-order-detail-edit.routable.scss @@ -1,5 +1,5 @@ @import "solidify-frontend/lib/components/routables/abstract-detail-edit-common/abstract-detail-edit-common.routable"; -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { .wrapper { @@ -12,7 +12,6 @@ display: flex; flex-direction: column; align-items: center; - background-color: $white; h2 { margin: 0; diff --git a/src/app/features/order/features/my-order/components/presentationals/my-order/order-my-order.presentational.scss b/src/app/features/order/features/my-order/components/presentationals/my-order/order-my-order.presentational.scss index 8bd2e26402d69aaaa0ead1a3947deb68e8f1e0fd..71febb516721db38d28d2e872417cd928b8eb551 100644 --- a/src/app/features/order/features/my-order/components/presentationals/my-order/order-my-order.presentational.scss +++ b/src/app/features/order/features/my-order/components/presentationals/my-order/order-my-order.presentational.scss @@ -134,3 +134,9 @@ } } } + +@include isInDarkMode { + .archives { + border-right-color: $dark-mode-line; + } +} diff --git a/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-access/preservation-space-organizational-unit-request-access.dialog.html b/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-access/preservation-space-organizational-unit-request-access.dialog.html index 6127a20ccc91aa954c809214510d5b02c875a6f0..99c2e581b1fa7a64201a6bfdd29b7a1894c30bb0 100644 --- a/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-access/preservation-space-organizational-unit-request-access.dialog.html +++ b/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-access/preservation-space-organizational-unit-request-access.dialog.html @@ -46,6 +46,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="validate()" diff --git a/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-creation/preservation-space-organizational-unit-request-creation.dialog.html b/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-creation/preservation-space-organizational-unit-request-creation.dialog.html index 67688445fc9489879a41543764ae1ed31568e90c..b86d47f4f4113136ec9637ae514d1cef2533f754 100644 --- a/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-creation/preservation-space-organizational-unit-request-creation.dialog.html +++ b/src/app/features/preservation-space/organizational-unit/components/dialogs/organizational-unit-request-creation/preservation-space-organizational-unit-request-creation.dialog.html @@ -42,6 +42,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/icons.ts b/src/app/icons.ts index 2d17ea1a6d48a141bffd09fb097ebbdfec067cce..7cd66e51f93e80a260c7813db71abb91d718fb24 100644 --- a/src/app/icons.ts +++ b/src/app/icons.ts @@ -726,7 +726,12 @@ export const icons: IconInfos[] = [ { name: IconNameEnum.darkMode, lib: IconLibEnum.materialIcon, - icon: "brightness_medium", + icon: "bedtime", + }, + { + name: IconNameEnum.lightMode, + lib: IconLibEnum.materialIcon, + icon: "brightness_5", }, { name: IconNameEnum.creationDate, diff --git a/src/app/label-translate-solidify.ts b/src/app/label-translate-solidify.ts index da122e32b38b9bb6470d83ebbdc839473f4992a1..9229d8bedac9b8c708e3cb8296fbe7e042f516b9 100644 --- a/src/app/label-translate-solidify.ts +++ b/src/app/label-translate-solidify.ts @@ -164,6 +164,8 @@ export const labelTranslateSolidify: LabelTranslateInterface = { cookieConsentDownloadTokenTitle: MARK_AS_TRANSLATABLE("cookieConsentSidebar.downloadToken.title"), cookieConsentSidebarLanguageDescription: MARK_AS_TRANSLATABLE("cookieConsentSidebar.language.description"), cookieConsentSidebarLanguageTitle: MARK_AS_TRANSLATABLE("cookieConsentSidebar.language.title"), + cookieConsentSidebarDarkModeDescription: MARK_AS_TRANSLATABLE("cookieConsentSidebar.darkMode.description"), + cookieConsentSidebarDarkModeTitle: MARK_AS_TRANSLATABLE("cookieConsentSidebar.darkMode.title"), cookieConsentSidebarPersonalizeCookieDescription: MARK_AS_TRANSLATABLE("cookieConsentSidebar.personalizeCookie.description"), cookieConsentSidebarPersonalizeCookieTitle: MARK_AS_TRANSLATABLE("cookieConsentSidebar.personalizeCookie.title"), cookieConsentSidebarTitle: MARK_AS_TRANSLATABLE("cookieConsentSidebar.title"), diff --git a/src/app/shared/components/containers/shared-file-and-aip-information/shared-file-and-aip-information.container.scss b/src/app/shared/components/containers/shared-file-and-aip-information/shared-file-and-aip-information.container.scss index 1b5403d7205a46b6719da9f6c344d8f76d3f5bc3..804f7979b0307fd2d51d8c5e10a1e3ba40ecd6ca 100644 --- a/src/app/shared/components/containers/shared-file-and-aip-information/shared-file-and-aip-information.container.scss +++ b/src/app/shared/components/containers/shared-file-and-aip-information/shared-file-and-aip-information.container.scss @@ -162,3 +162,30 @@ } } + +@include isInDarkMode { + .container { + .visualization { + &.fullscreen { + background-color: $dark-mode-background; + } + } + + .informations { + .item-content { + .key { + color: $dark-mode-text-disabled; + } + } + } + + .no-preview { + border-color: $dark-mode-line; + + .package { + background: $white; + color: $black; + } + } + } +} diff --git a/src/app/shared/components/containers/shared-image-upload-wrapper/shared-image-upload-wrapper.container.scss b/src/app/shared/components/containers/shared-image-upload-wrapper/shared-image-upload-wrapper.container.scss index ad311d123dd79579b97e3924c03bae9b48653e14..70ddaa746648656c8371926f110a23e28c031504 100644 --- a/src/app/shared/components/containers/shared-image-upload-wrapper/shared-image-upload-wrapper.container.scss +++ b/src/app/shared/components/containers/shared-image-upload-wrapper/shared-image-upload-wrapper.container.scss @@ -40,3 +40,9 @@ $size-height: 300px; } } } + +@include isInDarkMode { + .wrapper-avatar { + border-color: $dark-mode-line; + } +} diff --git a/src/app/shared/components/containers/shared-table-person-orgunit-role/shared-table-person-orgunit-role.container.scss b/src/app/shared/components/containers/shared-table-person-orgunit-role/shared-table-person-orgunit-role.container.scss index 774110de493780925f0f15ed7d36d04b54b6f79a..65455ffeb99ea56b7b92089ebb4e511ac40a6267 100644 --- a/src/app/shared/components/containers/shared-table-person-orgunit-role/shared-table-person-orgunit-role.container.scss +++ b/src/app/shared/components/containers/shared-table-person-orgunit-role/shared-table-person-orgunit-role.container.scss @@ -12,7 +12,6 @@ table { width: 100%; border-spacing: 0; - padding-bottom: 10px; thead { background-color: $primary-color; @@ -61,9 +60,32 @@ } .no-item { - padding-top: 10px; + padding: 20px 10px; text-align: center; color: $light-grey; font-size: 16px; } } + +@include isInDarkMode { + :host(.disabled) { + .no-item { + color: $dark-mode-text-disabled; + } + } + + table { + tbody { + tr { + &:nth-child(odd) { + background-color: $dark-mode-toolbar; + } + } + } + } + + .no-item { + background-color: $dark-mode-toolbar; + color: $dark-mode-text-color; + } +} diff --git a/src/app/shared/components/containers/shared-userguide-sidebar/shared-userguide-sidebar.container.scss b/src/app/shared/components/containers/shared-userguide-sidebar/shared-userguide-sidebar.container.scss index f2d6b05a6a0759e8fc96a487d82c20f65148fd2c..af86c72a509d7c960d2592ff4c299ce5d94035e5 100644 --- a/src/app/shared/components/containers/shared-userguide-sidebar/shared-userguide-sidebar.container.scss +++ b/src/app/shared/components/containers/shared-userguide-sidebar/shared-userguide-sidebar.container.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { display: flex; @@ -8,7 +8,7 @@ top: 0; right: 0; width: 400px; - background: white; + background: $white; height: 100vh; z-index: $z-index-main-toolbar-userguide-sidebar; box-shadow: 0 8px 10px -4px #5858582e; @@ -83,3 +83,23 @@ :host(.hide) { display: none; } + +@include isInDarkMode { + .user-guide-sidebar { + background: $dark-mode-background; + + .list ::ng-deep { + ul { + li { + a { + color: $dark-mode-text-color; + + &:hover { + background-color: $dark-mode-menu-active; + } + } + } + } + } + } +} diff --git a/src/app/shared/components/dialogs/shared-upload-image/shared-upload-image.dialog.html b/src/app/shared/components/dialogs/shared-upload-image/shared-upload-image.dialog.html index 6358c89e46b60259df1d39f3758093182554e684..938b87d0cdc448b2ab384b647f8661b35fad98fb 100644 --- a/src/app/shared/components/dialogs/shared-upload-image/shared-upload-image.dialog.html +++ b/src/app/shared/components/dialogs/shared-upload-image/shared-upload-image.dialog.html @@ -28,6 +28,7 @@ > <button [mat-dialog-close]="" mat-button + color="primary" >{{labelTranslateEnum.cancel | translate}}</button> <button (click)="confirm()" [disabled]="(imageCropped | isNullOrUndefined)" diff --git a/src/app/shared/components/presentationals/shared-archive-tile/shared-archive-tile.presentational.scss b/src/app/shared/components/presentationals/shared-archive-tile/shared-archive-tile.presentational.scss index 18d0fcd613686090232230b64fa87bd055ac5bc0..c093a07586074e9098a901463aa2ff37c37052fa 100644 --- a/src/app/shared/components/presentationals/shared-archive-tile/shared-archive-tile.presentational.scss +++ b/src/app/shared/components/presentationals/shared-archive-tile/shared-archive-tile.presentational.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; $size-image: 125px; @@ -197,3 +197,7 @@ $size-image: 125px; } } } + +@include isInDarkMode { + border-color: $dark-mode-line; +} diff --git a/src/app/shared/components/presentationals/shared-checksum-item/shared-checksum-item.presentational.scss b/src/app/shared/components/presentationals/shared-checksum-item/shared-checksum-item.presentational.scss index 3b47ce8fbe550463f54a47e32aedc21b0b390f67..066e1e0db9dde0b5c8dcbeaf543f94ab952085e1 100644 --- a/src/app/shared/components/presentationals/shared-checksum-item/shared-checksum-item.presentational.scss +++ b/src/app/shared/components/presentationals/shared-checksum-item/shared-checksum-item.presentational.scss @@ -27,3 +27,10 @@ font-size: 10px; } } + +@include isInDarkMode { + .algo { + color: $white; + background-color: $dark-mode-toolbar; + } +} diff --git a/src/app/shared/components/presentationals/shared-folder-tree/shared-folder-tree.presentational.scss b/src/app/shared/components/presentationals/shared-folder-tree/shared-folder-tree.presentational.scss index b16031262914832b27e6cd518bf6943f0d3e7314..c064371c42be21372dcd5ea9cf05de1f1f6fa11e 100644 --- a/src/app/shared/components/presentationals/shared-folder-tree/shared-folder-tree.presentational.scss +++ b/src/app/shared/components/presentationals/shared-folder-tree/shared-folder-tree.presentational.scss @@ -1,4 +1,4 @@ -@import "src/sass/abstracts/abstracts"; +@import "abstracts/abstracts"; :host { $line-item-size: 30px; @@ -91,4 +91,20 @@ } } +@include isInDarkMode { + .file-tree { + background-color: transparent; + + .folder-node { + color: $dark-mode-text-color; + .mat-icon-button { + &[disabled="true"] { + ::ng-deep { + color: $dark-mode-text-disabled; + } + } + } + } + } +} diff --git a/src/app/shared/components/routables/shared-abstract-file-aip-detail/shared-abstract-file-aip-detail.routable.scss b/src/app/shared/components/routables/shared-abstract-file-aip-detail/shared-abstract-file-aip-detail.routable.scss index 53fcb0507e7da8964d14022757ba83b5729a2754..998dff9aa891479cde720ec20fdff239be2d2f09 100644 --- a/src/app/shared/components/routables/shared-abstract-file-aip-detail/shared-abstract-file-aip-detail.routable.scss +++ b/src/app/shared/components/routables/shared-abstract-file-aip-detail/shared-abstract-file-aip-detail.routable.scss @@ -7,7 +7,11 @@ left: 0; right: 0; z-index: $z-index-file-detail; - background-color: #ffffff; + background-color: $white; min-height: 300px; display: block; } + +@include isInDarkMode { + background-color: $dark-mode-background; +} diff --git a/src/app/shared/enums/icon-name.enum.ts b/src/app/shared/enums/icon-name.enum.ts index df1853a63fc03cbbaf53494f9e0dcd6baf611baf..5be3587b04b6496023092775e04fc53b61541f78 100644 --- a/src/app/shared/enums/icon-name.enum.ts +++ b/src/app/shared/enums/icon-name.enum.ts @@ -165,6 +165,7 @@ export class IconNameEnum extends IconNamePartialEnum { @PropertyName() static unigeWhite: string; @PropertyName() static theme: string; @PropertyName() static darkMode: string; + @PropertyName() static lightMode: string; @PropertyName() static creationDate: string; @PropertyName() static defaultValue: string; @PropertyName() static change: string; diff --git a/src/app/shared/enums/label-translate.enum.ts b/src/app/shared/enums/label-translate.enum.ts index 309630c2a290d6f6810f780ac0d65343acf2c7ef..e99926da8aa63acb31d444046aa029f699df5a3a 100644 --- a/src/app/shared/enums/label-translate.enum.ts +++ b/src/app/shared/enums/label-translate.enum.ts @@ -126,6 +126,8 @@ export class LabelTranslateEnum { static personalize: string = MARK_AS_TRANSLATABLE("general.button.personalize"); static deleteDeposit: string = MARK_AS_TRANSLATABLE("general.button.deleteDeposit"); static putInError: string = MARK_AS_TRANSLATABLE("general.button.putInError"); + static lightMode: string = MARK_AS_TRANSLATABLE("general.button.lightMode"); + static darkMode: string = MARK_AS_TRANSLATABLE("general.button.darkMode"); static home: string = MARK_AS_TRANSLATABLE("general.label.home"); static uploadAvatar: string = MARK_AS_TRANSLATABLE("general.label.uploadAvatar"); diff --git a/src/app/shared/features/aip/components/dialogs/aip-approve-disposal/shared-aip-approve-disposal.dialog.html b/src/app/shared/features/aip/components/dialogs/aip-approve-disposal/shared-aip-approve-disposal.dialog.html index 6b6d5e260d836ed78b871b288a7905c35e86a7d5..ebebe1fe3dac128ce7b132fa58520cbe3babd7b6 100644 --- a/src/app/shared/features/aip/components/dialogs/aip-approve-disposal/shared-aip-approve-disposal.dialog.html +++ b/src/app/shared/features/aip/components/dialogs/aip-approve-disposal/shared-aip-approve-disposal.dialog.html @@ -26,6 +26,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/shared/features/aip/components/dialogs/aip-extend-retention/shared-aip-extend-retention.dialog.html b/src/app/shared/features/aip/components/dialogs/aip-extend-retention/shared-aip-extend-retention.dialog.html index d0cd3a989fa52be996d38962b9e535afe114e48a..9bc2b7474d8dacbd246833d4e00a63e8c2f5f132 100644 --- a/src/app/shared/features/aip/components/dialogs/aip-extend-retention/shared-aip-extend-retention.dialog.html +++ b/src/app/shared/features/aip/components/dialogs/aip-extend-retention/shared-aip-extend-retention.dialog.html @@ -13,6 +13,7 @@ <button [mat-dialog-close]="" cdkFocusInitial mat-button + color="primary" >{{labelTranslateEnum.close | translate}} </button> <button (click)="onSubmit()" diff --git a/src/app/stores/app.state.ts b/src/app/stores/app.state.ts index 96566eb05b7b13584172b2952010926ce37bca0d..9fa13662642014a3bcc01e252809ce0a156edef5 100644 --- a/src/app/stores/app.state.ts +++ b/src/app/stores/app.state.ts @@ -101,6 +101,7 @@ import {LabelTranslateEnum} from "@shared/enums/label-translate.enum"; import {LocalStorageEnum} from "@shared/enums/local-storage.enum"; import {ShortDoi} from "@shared/models/short-doi.model"; import {Token} from "@shared/models/token.model"; +import {HighlightLoader} from "ngx-highlightjs"; import {Observable} from "rxjs"; import { catchError, @@ -183,6 +184,7 @@ export class AppState extends SolidifyAppState<AppStateModel> { protected readonly _apiService: ApiService, protected readonly _httpClient: HttpClient, protected readonly _notificationService: NotificationService, + protected readonly _hljsLoader: HighlightLoader, public readonly _dialog: MatDialog) { super(_store, _translate, @@ -214,7 +216,8 @@ export class AppState extends SolidifyAppState<AppStateModel> { forceLogin: false, loadModule: true, }, - environment); + environment, + _hljsLoader); } @Selector() diff --git a/src/assets/highlightjs/dark.css b/src/assets/highlightjs/dark.css new file mode 100644 index 0000000000000000000000000000000000000000..03b6da8bf4301dbc9853f46f9fe3362236f61a82 --- /dev/null +++ b/src/assets/highlightjs/dark.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub Dark + Description: Dark theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-dark + Current colors taken from GitHub's CSS +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c} \ No newline at end of file diff --git a/src/assets/highlightjs/light.css b/src/assets/highlightjs/light.css new file mode 100644 index 0000000000000000000000000000000000000000..275239a7aa96a8cfea155167b8ce57db3ab5f469 --- /dev/null +++ b/src/assets/highlightjs/light.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0} \ No newline at end of file diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 0be59a4999ea8addf80ea18e26dee6b0e3499cc8..218d0a7b9300e9ef3b028fd7083e1349077c3f91 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -505,8 +505,7 @@ "title": "{{name}}: Statusverlauf" }, "module": { - "cart": "Daten herunterladen", - "darkMode": "Dunkler Hintergrund" + "cart": "Daten herunterladen" }, "notFound": { "title": "Die angeforderte Ressource existiert nicht oder nicht mehr..." @@ -590,6 +589,10 @@ "description": "cookieConsentSidebar.cart.description", "title": "cookieConsentSidebar.cart.title" }, + "darkMode": { + "description": "cookieConsentSidebar.darkMode.description", + "title": "cookieConsentSidebar.darkMode.title" + }, "downloadToken": { "description": "cookieConsentSidebar.downloadToken.description", "title": "cookieConsentSidebar.downloadToken.title" @@ -1115,6 +1118,7 @@ "copyIdToClipboard": "ID in die Zwischenablage kopieren", "create": "Erstellen", "createDeposit": "Datenablage erstellen", + "darkMode": "general.button.darkMode", "decline": "Ablehnen", "deepChecksums": "Genaue Prüfsummen", "delete": "Löschen", @@ -1136,6 +1140,7 @@ "fullscreen": "Vollbild", "goToAip": "Weiter zu AIP", "init": "Initialisieren", + "lightMode": "general.button.lightMode", "login": "Anmeldung", "logout": "Abmeldung", "markAsDone": "Als erledigt markieren", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 875c8c4d51047ae02914d5e8ddfe1bb972efc368..88dc48e97938e09b4c43fde8ca5da3026e88e375 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -505,8 +505,7 @@ "title": "{{name}}: Status history" }, "module": { - "cart": "Download order", - "darkMode": "Dark mode" + "cart": "Download order" }, "notFound": { "title": "The requested resource does not exist or no longer exists..." @@ -590,6 +589,10 @@ "description": "Allows you to use the archive download order to group archive downloads", "title": "Archive download order" }, + "darkMode": { + "description": "Permet de sauvegarder le dernier mode de luminosité", + "title": "Brightness mode" + }, "downloadToken": { "description": "Allows you to download files", "title": "Download token" @@ -1115,6 +1118,7 @@ "copyIdToClipboard": "Copy ID to clipboard", "create": "Create", "createDeposit": "Create new deposit", + "darkMode": "Dark mode", "decline": "Decline", "deepChecksums": "Deep checksums", "delete": "Delete", @@ -1136,6 +1140,7 @@ "fullscreen": "Fullscreen", "goToAip": "Go to AIP", "init": "Init", + "lightMode": "Light mode", "login": "Login", "logout": "Logout", "markAsDone": "Mark as done", diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 83957bb630613ba57412031bf98e4de2aab64fc1..52aafa4fe3e44eb2329fef61590e6ad88f1e0c11 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -505,8 +505,7 @@ "title": "{{name}} : Historique des statuts" }, "module": { - "cart": "Demande de Téléchargement", - "darkMode": "Mode sombre" + "cart": "Demande de Téléchargement" }, "notFound": { "title": "La resource demandée n'existe pas ou plus..." @@ -590,6 +589,10 @@ "description": "Permet d'utiliser la demande de téléchargement d'archives pour grouper le téléchargement d'archives", "title": "Demande de téléchargement d'archives" }, + "darkMode": { + "description": "Permet de sauvegarder le dernier mode de luminosité", + "title": "Mode de luminosité" + }, "downloadToken": { "description": "Permet de pouvoir télécharger des fichiers", "title": "Jeton de téléchargement" @@ -599,8 +602,8 @@ "title": "Google Analytics" }, "language": { - "description": "Permet de sauvegarder votre language favorie pour charger le site dans la bonne langue lors de votre prochaine visite", - "title": "Langage favori" + "description": "Permet de sauvegarder votre language favori pour charger le site dans la bonne langue lors de votre prochaine visite", + "title": "Language favori" }, "multiSelectLastSelectionContributor": { "description": "Permet de proposer en premier les contributeurs que vous avez utilisés dernièrement", @@ -1115,6 +1118,7 @@ "copyIdToClipboard": "Copier l'identifiant dans le presse-papiers", "create": "Créer", "createDeposit": "Créer un nouveau dépôt", + "darkMode": "Mode sombre", "decline": "Décliner", "deepChecksums": "Profond checksums", "delete": "Supprimer", @@ -1136,6 +1140,7 @@ "fullscreen": "Plein écran", "goToAip": "Aller à l'AIP", "init": "Initialiser", + "lightMode": "Mode lumineux", "login": "Connexion", "logout": "Déconnexion", "markAsDone": "Marquer comme traité", diff --git a/src/assets/language-icons/de.svg b/src/assets/language-icons/de.svg deleted file mode 100644 index 61412de91ce7c45197b5d8c03b7dd927339f3a3f..0000000000000000000000000000000000000000 --- a/src/assets/language-icons/de.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16.88 10.05"><title>DE</title><path d="M10,9.69a5.62,5.62,0,0,1-.36,2.05,4.65,4.65,0,0,1-1,1.59,4.58,4.58,0,0,1-1.58,1,5.53,5.53,0,0,1-2,.37H1.19V4.66H5A5.33,5.33,0,0,1,7,5a4.58,4.58,0,0,1,1.58,1,4.65,4.65,0,0,1,1,1.59A5.62,5.62,0,0,1,10,9.69Zm-1.52,0a4.77,4.77,0,0,0-.25-1.61,3.37,3.37,0,0,0-.69-1.2,3,3,0,0,0-1.09-.75A3.69,3.69,0,0,0,5,5.87H2.69v7.64H5a3.69,3.69,0,0,0,1.44-.26A3,3,0,0,0,7.5,12.5a3.37,3.37,0,0,0,.69-1.2A4.73,4.73,0,0,0,8.44,9.69Z" transform="translate(-1.19 -4.66)"/><path d="M18.08,13.5v1.22H11.84V4.66h6.23V5.87H13.34V9.06h3.81v1.17H13.34V13.5Z" transform="translate(-1.19 -4.66)"/></svg> \ No newline at end of file diff --git a/src/assets/language-icons/en.svg b/src/assets/language-icons/en.svg deleted file mode 100644 index b8e640c2e1c4dcd4ac82eb5288e1008a6b38e61a..0000000000000000000000000000000000000000 --- a/src/assets/language-icons/en.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16.31 10.05"><title>EN</title><path d="M7.88,13.68v1.21H1.65v-10H7.88V6.05H3.15V9.24H7v1.17H3.15v3.27Z" transform="translate(-1.65 -4.84)"/><path d="M18,4.84V14.89H17.2a.65.65,0,0,1-.29-.06.82.82,0,0,1-.23-.2L11,7.29c0,.12,0,.25,0,.37s0,.23,0,.34v6.89H9.73v-10h.77a.72.72,0,0,1,.29,0A.69.69,0,0,1,11,5.1l5.69,7.34a2.56,2.56,0,0,1,0-.39c0-.13,0-.25,0-.36V4.84Z" transform="translate(-1.65 -4.84)"/></svg> \ No newline at end of file diff --git a/src/assets/language-icons/fr.svg b/src/assets/language-icons/fr.svg deleted file mode 100644 index d104588f204f7d53c1c1970d73c10b785a5f0278..0000000000000000000000000000000000000000 --- a/src/assets/language-icons/fr.svg +++ /dev/null @@ -1 +0,0 @@ -<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.46 10.05"><title>FR</title><path d="M3.39,6.93v3.36h4V11.5h-4v4.27H1.89V5.71H8.13V6.93Z" transform="translate(-1.89 -5.71)"/><path d="M17.35,15.77H16a.62.62,0,0,1-.58-.32L13,12a.76.76,0,0,0-.26-.25,1,1,0,0,0-.42-.08h-1v4.13H9.81V5.71h2.9a6.34,6.34,0,0,1,1.68.2,3.49,3.49,0,0,1,1.16.57,2.36,2.36,0,0,1,.68.89,2.86,2.86,0,0,1,.22,1.16,3.21,3.21,0,0,1-.16,1,2.77,2.77,0,0,1-.48.83,3,3,0,0,1-.76.63,3.39,3.39,0,0,1-1,.4,1.54,1.54,0,0,1,.48.47Zm-4.69-5.21a3.42,3.42,0,0,0,1-.14,2,2,0,0,0,.73-.4,1.59,1.59,0,0,0,.45-.61A2.13,2.13,0,0,0,15,8.63a1.56,1.56,0,0,0-.57-1.31,2.8,2.8,0,0,0-1.71-.44H11.3v3.68Z" transform="translate(-1.89 -5.71)"/></svg> \ No newline at end of file diff --git a/src/sass/abstracts/_variables.scss b/src/sass/abstracts/_variables.scss index 938401a7d0afdcd07c956d7db35a72a2f13eb87a..bf0bb0af7df3766e121d9641f0368105de1571d0 100644 --- a/src/sass/abstracts/_variables.scss +++ b/src/sass/abstracts/_variables.scss @@ -16,3 +16,11 @@ $toolbar-width: 60px; $main-toolbar-height: 80px; $header-mobile-toolbar: 54px; $breadcrumb-height: 38px; + +// ------------ +// THEMES +// ------------ +$theme-yareta: 'yareta'; +$theme-olos: 'olos'; +$theme-dlcm: 'dlcm'; +$theme-centella: 'centella'; diff --git a/src/sass/main.scss b/src/sass/main.scss index a29138e8aa07c244de8605619889e521f284dae2..2022d24f55f918adba31f4bb7c7e81da4d264ee0 100644 --- a/src/sass/main.scss +++ b/src/sass/main.scss @@ -6,12 +6,12 @@ @import "abstracts/mixins"; @import "base/typography"; @import "layout/dialogs"; -@import "src/sass/override/material-override"; -@import "themes/basic-theme"; +@import "override/dark-mode-override"; +@import "override/material-override"; @import "themes/yareta-theme"; @import "themes/dlcm-theme"; @import "themes/olos-theme"; @import "themes/centella-theme"; -@import "highlight.js/styles/github.css"; +//@import "highlight.js/styles/github.css"; @import "@angular/cdk/overlay-prebuilt.css"; diff --git a/src/sass/override/dark-mode-override.scss b/src/sass/override/dark-mode-override.scss new file mode 100644 index 0000000000000000000000000000000000000000..ac6eb9213f1e10d59597341479026a9894a6f23e --- /dev/null +++ b/src/sass/override/dark-mode-override.scss @@ -0,0 +1,6 @@ +@import "solidify-frontend/lib/scss/override/dark-mode-override"; +@import "abstracts/abstracts"; + +@mixin dlcm-dark-mode-override { + @include solidify-dark-mode-override-rules; +} diff --git a/src/sass/override/material-override.scss b/src/sass/override/material-override.scss index 79fd083f9a0e28f2095e0c186b1700a536b9b335..1cd50a648818318f25666e871c365c6d5efbfc37 100644 --- a/src/sass/override/material-override.scss +++ b/src/sass/override/material-override.scss @@ -1,6 +1,3 @@ -@import "abstracts/mixins"; @import "solidify-frontend/lib/scss/override/material-override"; +@import "abstracts/abstracts"; -mat-error { - @include truncate-with-ellipsis; -} diff --git a/src/sass/themes/basic-theme.scss b/src/sass/themes/basic-theme.scss deleted file mode 100644 index eff0d1f86389822015b96a4f9a08a8b36cc61de4..0000000000000000000000000000000000000000 --- a/src/sass/themes/basic-theme.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '@angular/material' as mat; -@import "themes/yareta-theme"; - -$basic-theme: $yareta-theme; - -// Load basic theme -@include mat.all-component-themes($basic-theme); -@include material-label; diff --git a/src/sass/themes/centella-theme.scss b/src/sass/themes/centella-theme.scss index 8cd6111ca8ed5124e3e924e7f710338428c10196..05c260b05318c18e7bd0102bcbba78ed11f5d200 100644 --- a/src/sass/themes/centella-theme.scss +++ b/src/sass/themes/centella-theme.scss @@ -91,12 +91,26 @@ $centella-theme: mat.define-light-theme( $warn ); +$centella-dark-theme: mat.define-dark-theme( + $primary, + $accent, + $warn +); + // Include theme styles for core and each component used in your app. // Alternatively, you can import and @include the theme mixins for each component // that you are using. -body[theme=centella] { - @include mat.all-component-themes($centella-theme); - @include material-label; +@include isInTheme($theme-centella, true) { --primary-color: #{map-get($mat-centella-primary, 950)}; --primary-color-lighter: #{map-get($mat-centella-primary, 800)}; + + &:not([dark-mode='true']) { + @include mat.all-component-themes($centella-theme); + @include material-label; + } + + &[dark-mode='true'] { + @include mat.all-component-colors($centella-dark-theme); + @include dlcm-dark-mode-override; + } } diff --git a/src/sass/themes/dlcm-theme.scss b/src/sass/themes/dlcm-theme.scss index 7d999a0d2265aa042d8bcd87f57b338ad5c1d361..a3ca6bf08fcac422e6df83874f0fb34805ba53f8 100644 --- a/src/sass/themes/dlcm-theme.scss +++ b/src/sass/themes/dlcm-theme.scss @@ -15,9 +15,23 @@ $dlcm-theme: mat.define-light-theme( $warn ); -body[theme=dlcm] { - @include mat.all-component-themes($dlcm-theme); - @include material-label; +$dlcm-dark-theme: mat.define-dark-theme( + $primary, + $accent, + $warn +); + +@include isInTheme($theme-dlcm, true) { --primary-color: #{map-get($primary, 800)}; --primary-color-lighter: #028dd6; + + &:not([dark-mode='true']) { + @include mat.all-component-themes($dlcm-theme); + @include material-label; + } + + &[dark-mode='true'] { + @include mat.all-component-colors($dlcm-dark-theme); + @include dlcm-dark-mode-override; + } } diff --git a/src/sass/themes/olos-theme.scss b/src/sass/themes/olos-theme.scss index 39509ad0300b674695d74dc43f8158902190becd..853288e88d8266abbdd283be294e24f914adfe4e 100644 --- a/src/sass/themes/olos-theme.scss +++ b/src/sass/themes/olos-theme.scss @@ -54,9 +54,23 @@ $olos-theme: mat.define-light-theme( $warn ); -body[theme=olos] { - @include mat.all-component-themes($olos-theme); - @include material-label; +$olos-dark-theme: mat.define-dark-theme( + $primary, + $accent, + $warn +); + +@include isInTheme($theme-olos, true) { --primary-color: #{map-get($olos-red, 900)}; --primary-color-lighter: #{map-get($olos-red, 700)}; + + &:not([dark-mode='true']) { + @include mat.all-component-themes($olos-theme); + @include material-label; + } + + &[dark-mode='true'] { + @include mat.all-component-colors($olos-dark-theme); + @include dlcm-dark-mode-override; + } } diff --git a/src/sass/themes/yareta-theme.scss b/src/sass/themes/yareta-theme.scss index 63fb9a702f843f3a281c44f4a745faed20958ee2..10d16fcce1c8cdabf5737166b247a05496fc5760 100644 --- a/src/sass/themes/yareta-theme.scss +++ b/src/sass/themes/yareta-theme.scss @@ -91,12 +91,26 @@ $yareta-theme: mat.define-light-theme( $warn ); +$yareta-dark-theme: mat.define-dark-theme( + $primary, + $accent, + $warn +); + // Include theme styles for core and each component used in your app. // Alternatively, you can import and @include the theme mixins for each component // that you are using. -body[theme=yareta] { - @include mat.all-component-themes($yareta-theme); - @include material-label; +@include isInTheme($theme-yareta, true) { --primary-color: #{map-get($mat-yareta-primary, 950)}; --primary-color-lighter: #{map-get($mat-yareta-primary, 800)}; + + &:not([dark-mode='true']) { + @include mat.all-component-themes($yareta-theme); + @include material-label; + } + + &[dark-mode='true'] { + @include mat.all-component-colors($yareta-dark-theme); + @include dlcm-dark-mode-override; + } }