Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumWarning": "3mb",
"maximumError": "5mb"
},
{
Expand Down Expand Up @@ -89,7 +89,7 @@
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumWarning": "3mb",
"maximumError": "5mb"
},
{
Expand Down
1 change: 0 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ module.exports = tseslint.config(
],
processor: angular.processInlineTemplates,
rules: {
"@angular-eslint/prefer-standalone": "off",
"@angular-eslint/directive-selector": [
"error",
{
Expand Down
826 changes: 422 additions & 404 deletions npm-shrinkwrap.json

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@
"license": "MIT",
"private": true,
"dependencies": {
"@angular/animations": "~20.2.2",
"@angular/cdk": "~20.2.1",
"@angular/common": "~20.2.2",
"@angular/compiler": "~20.2.2",
"@angular/core": "~20.2.2",
"@angular/forms": "~20.2.2",
"@angular/localize": "~20.2.2",
"@angular/material": "~20.2.1",
"@angular/platform-browser": "~20.2.2",
"@angular/platform-browser-dynamic": "~20.2.2",
"@angular/router": "~20.2.2",
"@angular/service-worker": "~20.2.2",
"@angular/animations": "~20.2.4",
"@angular/cdk": "~20.2.2",
"@angular/common": "~20.2.4",
"@angular/compiler": "~20.2.4",
"@angular/core": "~20.2.4",
"@angular/forms": "~20.2.4",
"@angular/localize": "~20.2.4",
"@angular/material": "~20.2.2",
"@angular/platform-browser": "~20.2.4",
"@angular/platform-browser-dynamic": "~20.2.4",
"@angular/router": "~20.2.4",
"@angular/service-worker": "~20.2.4",
"@apollo/client": "^3.14.0",
"@ng-bootstrap/ng-bootstrap": "~19.0.1",
"@popperjs/core": "^2.11.8",
Expand All @@ -46,22 +46,22 @@
"core-js": "^3.45.1",
"graphql": "^16.11.0",
"graphql-tag": "^2.12.6",
"ngx-markdown": "^20.0.0",
"ngx-markdown": "^20.1.0",
"rxjs": "^7.8.2",
"tslib": "^2.8.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^20.2.1",
"@angular/cli": "^20.2.1",
"@angular/compiler-cli": "~20.2.2",
"@angular/language-service": "20.2.2",
"@types/node": "^24.3.0",
"@angular-devkit/build-angular": "^20.2.2",
"@angular/cli": "^20.2.2",
"@angular/compiler-cli": "~20.2.4",
"@angular/language-service": "20.2.4",
"@types/node": "^24.3.1",
"@types/react": "^19.1.12",
"angular-eslint": "20.2.0",
"eslint": "^9.34.0",
"eslint": "^9.35.0",
"ts-node": "^10.9.2",
"typescript": "^5.9.2",
"typescript-eslint": "8.41.0"
"typescript-eslint": "8.42.0"
},
"repository": {
"type": "git",
Expand Down
5 changes: 2 additions & 3 deletions src/app/_helpers/confirmation-dialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
<button type="button" class="btn btn-outline-secondary" (click)="nok()">Cancel</button>
<button type="button" class="btn btn-danger" (click)="ok()">Ok</button>
</div>
`,
standalone: false
})
`
})
export class NgbdModalConfirmComponent {
modal = inject(NgbActiveModal);

Expand Down
20 changes: 9 additions & 11 deletions src/app/_helpers/toaster/toaster.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,14 @@ import { ToastsContainerComponent } from '../toasts-container.component';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

@NgModule({
declarations: [
ToastsContainerComponent
],
imports: [
CommonModule,
NgbModule
],
exports: [
ToastsContainerComponent
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
imports: [
CommonModule,
NgbModule,
ToastsContainerComponent
],
exports: [
ToastsContainerComponent
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class ToasterModule { }
43 changes: 23 additions & 20 deletions src/app/_helpers/toasts-container.component.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
import { Component, TemplateRef, inject } from '@angular/core';
import { ToastService } from './toast.service';
import { NgTemplateOutlet } from '@angular/common';
import { NgbToast } from '@ng-bootstrap/ng-bootstrap';

@Component({
selector: 'app-toasts',
template: `
<ngb-toast
*ngFor="let toast of toastService.toasts"
[class]="toast.classname"
[autohide]="true"
[delay]="toast.delay || 3000"
(hidden)="toastService.remove(toast)"
>
<ng-template [ngIf]="isTemplate(toast)" [ngIfElse]="text">
<ng-template [ngTemplateOutlet]="toast.textOrTpl"></ng-template>
</ng-template>

<ng-template #text>{{ toast.textOrTpl }}</ng-template>
</ngb-toast>
selector: 'app-toasts',
template: `
@for (toast of toastService.toasts; track toast) {
<ngb-toast
[class]="toast.classname"
[autohide]="true"
[delay]="toast.delay || 3000"
(hidden)="toastService.remove(toast)"
>
@if (isTemplate(toast)) {
<ng-template [ngTemplateOutlet]="toast.textOrTpl"></ng-template>
} @else {
{{ toast.textOrTpl }}
}
</ngb-toast>
}
`,
host: {
'class': 'toast-container position-fixed bottom-0 start-50 translate-middle-x',
'style': 'z-index: 1200; margin-bottom: .5rem;'
},
standalone: false
host: {
'class': 'toast-container position-fixed bottom-0 start-50 translate-middle-x',
'style': 'z-index: 1200; margin-bottom: .5rem;'
},
imports: [NgbToast, NgTemplateOutlet]
})
export class ToastsContainerComponent {
toastService = inject(ToastService);
Expand Down
9 changes: 5 additions & 4 deletions src/app/app-version/app-version.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import { takeUntil } from 'rxjs/operators';
import { environment } from 'src/environments/environment';
import { AuthService } from '../auth/services/auth.service';
import { ConsoleLogger } from '../_helpers/console-logger';
import { MatTooltip } from '@angular/material/tooltip';

@Component({
selector: 'app-version',
templateUrl: './app-version.component.html',
styleUrls: ['./app-version.component.css'],
standalone: false
selector: 'app-version',
templateUrl: './app-version.component.html',
styleUrls: ['./app-version.component.css'],
imports: [MatTooltip]
})
export class AppVersionComponent implements OnInit {
private readonly authService = inject(AuthService);
Expand Down
36 changes: 27 additions & 9 deletions src/app/app.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,21 @@
<div>Menu</div>
</li>
<li>
<a *ngIf="showHome()" class="topbar-menu-item" routerLink="/" title="Home" (click)="onMenuClick('mainMenu')">
@if (showHome()) {
<a class="topbar-menu-item" routerLink="/" title="Home" (click)="onMenuClick('mainMenu')">
<mat-icon class="menu-item-icon">home</mat-icon>
Home
</a>
}
</li>
<hr style="margin: 0;">
<li>
<a *ngIf="currentToken" class="topbar-menu-item" routerLink="/dashboard" title="Dashboard" (click)="onMenuClick('mainMenu')">
@if (currentToken) {
<a class="topbar-menu-item" routerLink="/dashboard" title="Dashboard" (click)="onMenuClick('mainMenu')">
<mat-icon class="menu-item-icon">dashboard</mat-icon>
Dashboard
</a>
}
</li>
<li>
<a class="topbar-menu-item" routerLink="/documentation" title="Documentation" (click)="onMenuClick('mainMenu')">
Expand All @@ -31,37 +35,50 @@
</a>
</li>
<li>
<a *ngIf="!currentToken" class="topbar-menu-item" routerLink="/login" title="Sign in" (click)="onMenuClick('mainMenu')">
@if (!currentToken) {
<a class="topbar-menu-item" routerLink="/login" title="Sign in" (click)="onMenuClick('mainMenu')">
<mat-icon class="menu-item-icon">login</mat-icon>
Sign in
</a>
}
</li>
<hr style="margin: 0;">
<li>
<a *ngIf="!currentToken" class="topbar-menu-item" routerLink="/signup" title="Sign up" (click)="onMenuClick('mainMenu')">
@if (!currentToken) {
<a class="topbar-menu-item" routerLink="/signup" title="Sign up" (click)="onMenuClick('mainMenu')">
<mat-icon class="menu-item-icon">person_add</mat-icon>
Sign up
</a>
}
</li>
</ul>

<mat-divider class="divider-style"></mat-divider>

<div class="navbar-nav" style="width: 100%;">
<a class="nav-item nav-link hide-main-menu" routerLink="/dashboard" *ngIf="currentToken">Dashboard</a>
@if (currentToken) {
<a class="nav-item nav-link hide-main-menu" routerLink="/dashboard">Dashboard</a>
}
<a class="nav-item nav-link hide-main-menu" routerLink="/documentation">Documentation</a>
<a class="nav-item nav-link hide-main-menu" routerLink="/login" *ngIf="!currentToken">Sign in</a>
@if (!currentToken) {
<a class="nav-item nav-link hide-main-menu" routerLink="/login">Sign in</a>
}
<a id="appTitle" class="nav-item nav-link hide-non-mobile" routerLink="/">Switcher Management</a>
<div class="menu-border-left" *ngIf="!currentToken">
@if (!currentToken) {
<div class="menu-border-left">
<a id="toggleTheme" class="nav-item nav-link transition" (click)="toggleDarkMode()">
<mat-icon>{{ darkMode ? 'brightness_7' : 'brightness_4' }}</mat-icon>
</a>
<a id="signUp" class="nav-item nav-link hide-main-menu" routerLink="/signup">Sign up</a>
</div>
<div id="menuProfile" *ngIf="currentToken" class="profile-btn menu-border-left">
}
@if (currentToken) {
<div id="menuProfile" class="profile-btn menu-border-left">
<img class="profile-avatar switcher-logo transition" src="{{ profileAvatar }}" alt="User avatar">
</div>
<ul id="profileMenu" *ngIf="currentToken" class="navigation-nested nav-user">
}
@if (currentToken) {
<ul id="profileMenu" class="navigation-nested nav-user">
<li class="menu-header navigation-nested__header">
<div>{{ loggedUserName }}</div>
</li>
Expand All @@ -85,6 +102,7 @@
</a>
</li>
</ul>
}
</div>
</nav>

Expand Down
6 changes: 4 additions & 2 deletions src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { Router } from '@angular/router';
import { Router, RouterOutlet, RouterLink } from '@angular/router';
import { MatIconModule } from '@angular/material/icon';
import { MatDividerModule } from '@angular/material/divider';
import { AuthService } from './auth/services/auth.service';
import { PwaService } from './services/pwa.service';
import { environment } from 'src/environments/environment';
Expand All @@ -8,7 +10,7 @@ import { environment } from 'src/environments/environment';
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
standalone: false
imports: [RouterOutlet, RouterLink, MatIconModule, MatDividerModule]
})
export class AppComponent implements OnInit, OnDestroy {
private readonly router = inject(Router);
Expand Down
75 changes: 0 additions & 75 deletions src/app/app.module.ts

This file was deleted.

Loading