Fix: Reload was not working due to changes in how Signals and inputs work. On reload, the input does not change so the resource does not fetch new data.

This commit is contained in:
2026-08-31 17:31:48 +00:00
parent 985993f273
commit 8c189cac21
51 changed files with 176 additions and 139 deletions
+14 -3
View File
@@ -1,13 +1,24 @@
{ {
// Use WSL paths + Poetry venv interpreter "python.defaultInterpreterPath": "/brewman/.venv/bin/python",
"python.defaultInterpreterPath": "${workspaceFolder}/brewman/.venv/bin/python", "python.terminal.useEnvFile": true,
"python.venvFolders": [
"barker/.venv",
"frank/.venv",
".venv"
],
"python.venvPath": "${workspaceFolder}/barker",
"python.terminal.activateEnvironment": true, "python.terminal.activateEnvironment": true,
// Quality-of-life // Quality-of-life
/* --- Pylance: keep IntelliSense, disable type checking --- */ /* --- Pylance: keep IntelliSense, disable type checking --- */
// "python.analysis.typeCheckingMode": "off", // "python.analysis.typeCheckingMode": "off",
// "python.analysis.diagnosticMode": "openFilesOnly", // "python.analysis.diagnosticMode": "openFilesOnly",
"python.analysis.typeCheckingMode": "basic", "python.analysis.typeCheckingMode": "basic",
"python.analysis.extraPaths": [ "python.analysis.extraPaths": [
"${workspaceFolder}/brewman",
"./brewman"
],
"python.autoComplete.extraPaths": [
"${workspaceFolder}/brewman",
"./brewman" "./brewman"
], ],
// Ruff (you have ruff installed via poetry) // Ruff (you have ruff installed via poetry)
+2 -8
View File
@@ -10,7 +10,7 @@ import { MomentDateAdapter } from '@angular/material-moment-adapter';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core'; import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar'; import { MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';
import { BrowserModule } from '@angular/platform-browser'; import { BrowserModule } from '@angular/platform-browser';
import { provideRouter, withComponentInputBinding, withRouterConfig } from '@angular/router'; import { provideRouter, withComponentInputBinding } from '@angular/router';
import { dateFormat } from './app.environment'; import { dateFormat } from './app.environment';
import { routes } from './app.routes'; import { routes } from './app.routes';
@@ -33,13 +33,7 @@ export const appConfig: ApplicationConfig = {
...(isDevMode() ? [delayInterceptor] : []), ...(isDevMode() ? [delayInterceptor] : []),
]), ]),
), ),
provideRouter( provideRouter(routes, withComponentInputBinding()),
routes,
withRouterConfig({
onSameUrlNavigation: 'reload',
}),
withComponentInputBinding(),
),
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }, { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS, useValue: dateFormat }, { provide: MAT_DATE_FORMATS, useValue: dateFormat },
{ provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 3000 } }, { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 3000 } },
@@ -99,7 +99,11 @@ export class AttendanceComponent {
show() { show() {
const date = moment(this.model().date).format('DD-MMM-YYYY'); const date = moment(this.model().date).format('DD-MMM-YYYY');
this.router.navigate(['/attendance', date]); if (this.date() === date) {
this.infoResource.reload();
} else {
this.router.navigate(['/attendance', date]);
}
} }
save() { save() {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Attendance', permission: 'Attendance',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':date', path: ':date',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Attendance', permission: 'Attendance',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -112,7 +112,11 @@ export class BalanceSheetComponent {
show() { show() {
const date = this.getDate(); const date = this.getDate();
this.router.navigate(['balance-sheet', date]); if (this.date() === date) {
this.infoResource.reload();
} else {
this.router.navigate(['balance-sheet', date]);
}
} }
getDate(): string { getDate(): string {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Balance Sheet', permission: 'Balance Sheet',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':date', path: ':date',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Balance Sheet', permission: 'Balance Sheet',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -105,12 +105,16 @@ export class CashFlowComponent {
show() { show() {
const info = this.getInfo(); const info = this.getInfo();
this.router.navigate(['cash-flow'], { if (this.startDate() === info.startDate && this.finishDate() === info.finishDate) {
queryParams: { this.infoResource.reload();
startDate: info.startDate, } else {
finishDate: info.finishDate, this.router.navigate(['cash-flow'], {
}, queryParams: {
}); startDate: info.startDate,
finishDate: info.finishDate,
},
});
}
} }
getInfo(): CashFlow { getInfo(): CashFlow {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Cash Flow', permission: 'Cash Flow',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Cash Flow', permission: 'Cash Flow',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -151,11 +151,15 @@ export class ClosingStockComponent {
return; return;
} }
const info = this.getInfo(); const info = this.getInfo();
this.router.navigate(['closing-stock', info.date], { if (this.date() === info.date && this.d() === info.costCentre.id) {
queryParams: { this.infoResource.reload();
d: info.costCentre.id, } else {
}, this.router.navigate(['closing-stock', info.date], {
}); queryParams: {
d: info.costCentre.id,
},
});
}
} }
save() { save() {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Closing Stock', permission: 'Closing Stock',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':date', path: ':date',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Closing Stock', permission: 'Closing Stock',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
+10 -6
View File
@@ -127,12 +127,16 @@ export class DaybookComponent {
show() { show() {
const l = this.prepareSubmit(); const l = this.prepareSubmit();
this.router.navigate(['daybook'], { if (this.startDate() === l.startDate && this.finishDate() === l.finishDate) {
queryParams: { this.infoResource.reload();
startDate: l.startDate, } else {
finishDate: l.finishDate, this.router.navigate(['daybook'], {
}, queryParams: {
}); startDate: l.startDate,
finishDate: l.finishDate,
},
});
}
} }
prepareSubmit(): Daybook { prepareSubmit(): Daybook {
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Daybook', permission: 'Daybook',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -126,12 +126,20 @@ export class EmployeeAttendanceComponent {
currentInfo.employee = currentInfo.employee =
typeof formValue.employee !== 'string' && formValue.employee ? formValue.employee : undefined; typeof formValue.employee !== 'string' && formValue.employee ? formValue.employee : undefined;
if (currentInfo.employee) { if (currentInfo.employee) {
this.router.navigate(['/employee-attendance', currentInfo.employee.id], { if (
queryParams: { this.id() === currentInfo.employee.id &&
startDate: currentInfo.startDate, this.startDate() === currentInfo.startDate &&
finishDate: currentInfo.finishDate, this.finishDate() === currentInfo.finishDate
}, ) {
}); this.infoResource.reload();
} else {
this.router.navigate(['/employee-attendance', currentInfo.employee.id], {
queryParams: {
startDate: currentInfo.startDate,
finishDate: currentInfo.finishDate,
},
});
}
} }
} }
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Attendance', permission: 'Attendance',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Attendance', permission: 'Attendance',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'employee-benefit', permission: 'employee-benefit',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'employee-benefit', permission: 'employee-benefit',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'employee-benefit', permission: 'employee-benefit',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Ledger', permission: 'Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'incentive', permission: 'incentive',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'incentive', permission: 'incentive',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
-2
View File
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Issue', permission: 'Issue',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Issue', permission: 'Issue',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Journal', permission: 'Journal',
}, },
runGuardsAndResolvers: 'paramsChange',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Journal', permission: 'Journal',
}, },
runGuardsAndResolvers: 'paramsChange',
}, },
]; ];
+7 -1
View File
@@ -260,7 +260,13 @@ export class LedgerComponent {
show() { show() {
const info = this.getInfo(); const info = this.getInfo();
if (info.account) { if (
this.id() === info.account?.id &&
this.startDate() === info.startDate &&
this.finishDate() === info.finishDate
) {
this.infoResource.reload();
} else if (info.account) {
this.router.navigate(['ledger', info.account.id], { this.router.navigate(['ledger', info.account.id], {
queryParams: { queryParams: {
startDate: info.startDate, startDate: info.startDate,
-2
View File
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Ledger', permission: 'Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Ledger', permission: 'Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -111,7 +111,11 @@ export class MozimoDailyRegisterComponent {
show() { show() {
const date = moment(this.model().date).format('DD-MMM-YYYY'); const date = moment(this.model().date).format('DD-MMM-YYYY');
this.router.navigate(['/mozimo-daily-register', date]); if (this.date() === date) {
this.infoResource.reload();
} else {
this.router.navigate(['/mozimo-daily-register', date]);
}
} }
save() { save() {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':date', path: ':date',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -136,12 +136,20 @@ export class MozimoProductRegisterComponent {
show() { show() {
const info = this.getInfo(); const info = this.getInfo();
if (info.product) { if (info.product) {
this.router.navigate(['mozimo-product-register', info.product.id], { if (
queryParams: { this.id() === info.product.id &&
startDate: info.startDate, this.startDate() === info.startDate &&
finishDate: info.finishDate, this.finishDate() === info.finishDate
}, ) {
}); this.infoResource.reload();
} else {
this.router.navigate(['mozimo-product-register', info.product.id], {
queryParams: {
startDate: info.startDate,
finishDate: info.finishDate,
},
});
}
} }
} }
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -117,12 +117,16 @@ export class NetTransactionsComponent {
show() { show() {
const l = this.prepareSubmit(); const l = this.prepareSubmit();
this.router.navigate(['net-transactions'], { if (this.startDate() === l.startDate && this.finishDate() === l.finishDate) {
queryParams: { this.infoResource.reload();
startDate: l.startDate, } else {
finishDate: l.finishDate, this.router.navigate(['net-transactions'], {
}, queryParams: {
}); startDate: l.startDate,
finishDate: l.finishDate,
},
});
}
} }
prepareSubmit(): NetTransactions { prepareSubmit(): NetTransactions {
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Net Transactions', permission: 'Net Transactions',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'journal', permission: 'journal',
}, },
runGuardsAndResolvers: 'paramsChange',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'journal', permission: 'journal',
}, },
runGuardsAndResolvers: 'paramsChange',
}, },
]; ];
@@ -211,12 +211,20 @@ export class ProductLedgerComponent {
show() { show() {
const info = this.getInfo(); const info = this.getInfo();
if (info.product) { if (info.product) {
this.router.navigate(['product-ledger', info.product.id], { if (
queryParams: { this.id() === info.product.id &&
startDate: info.startDate, this.startDate() === info.startDate &&
finishDate: info.finishDate, this.finishDate() === info.finishDate
}, ) {
}); this.infoResource.reload();
} else {
this.router.navigate(['product-ledger', info.product.id], {
queryParams: {
startDate: info.startDate,
finishDate: info.finishDate,
},
});
}
} }
} }
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Product Ledger', permission: 'Product Ledger',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -117,12 +117,16 @@ export class ProfitLossComponent {
show() { show() {
const info = this.getInfo(); const info = this.getInfo();
this.router.navigate(['profit-loss'], { if (this.startDate() === info.startDate && this.finishDate() === info.finishDate) {
queryParams: { this.infoResource.reload();
startDate: info.startDate, } else {
finishDate: info.finishDate, this.router.navigate(['profit-loss'], {
}, queryParams: {
}); startDate: info.startDate,
finishDate: info.finishDate,
},
});
}
} }
getInfo(): ProfitLoss { getInfo(): ProfitLoss {
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Profit & Loss', permission: 'Profit & Loss',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -121,12 +121,16 @@ export class PurchaseEntriesComponent {
show() { show() {
const l = this.prepareSubmit(); const l = this.prepareSubmit();
this.router.navigate(['purchase-entries'], { if (this.startDate() === l.startDate && this.finishDate() === l.finishDate) {
queryParams: { this.resource.reload();
startDate: l.startDate, } else {
finishDate: l.finishDate, this.router.navigate(['purchase-entries'], {
}, queryParams: {
}); startDate: l.startDate,
finishDate: l.finishDate,
},
});
}
} }
prepareSubmit(): PurchaseEntries { prepareSubmit(): PurchaseEntries {
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Purchase Entries', permission: 'Purchase Entries',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Purchase Return', permission: 'Purchase Return',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Purchase Return', permission: 'Purchase Return',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Purchase', permission: 'Purchase',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Purchase', permission: 'Purchase',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -115,12 +115,16 @@ export class PurchasesComponent {
show() { show() {
const l = this.prepareSubmit(); const l = this.prepareSubmit();
this.router.navigate(['purchases'], { if (this.startDate() === l.startDate && this.finishDate() === l.finishDate) {
queryParams: { this.resource.reload();
startDate: l.startDate, } else {
finishDate: l.finishDate, this.router.navigate(['purchases'], {
}, queryParams: {
}); startDate: l.startDate,
finishDate: l.finishDate,
},
});
}
} }
prepareSubmit(): Purchases { prepareSubmit(): Purchases {
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Purchases', permission: 'Purchases',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -131,12 +131,16 @@ export class RawMaterialCostComponent {
show() { show() {
const model = this.prepareSubmit(); const model = this.prepareSubmit();
this.router.navigate(['raw-material-cost'], { if (!this.id() && this.startDate() === model.startDate && this.finishDate() === model.finishDate) {
queryParams: { this.infoResource.reload();
startDate: model.startDate, } else {
finishDate: model.finishDate, this.router.navigate(['raw-material-cost'], {
}, queryParams: {
}); startDate: model.startDate,
finishDate: model.finishDate,
},
});
}
} }
prepareSubmit(): RawMaterialCost { prepareSubmit(): RawMaterialCost {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Raw Material Cost', permission: 'Raw Material Cost',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Raw Material Cost', permission: 'Raw Material Cost',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'journal', permission: 'journal',
}, },
runGuardsAndResolvers: 'paramsChange',
}, },
{ {
path: ':id', path: ':id',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'journal', permission: 'journal',
}, },
runGuardsAndResolvers: 'paramsChange',
}, },
]; ];
-1
View File
@@ -12,7 +12,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Recipes', permission: 'Recipes',
}, },
runGuardsAndResolvers: 'paramsOrQueryParamsChange',
}, },
{ {
path: 'new', path: 'new',
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Maintenance', // 'Lock Date' permission: 'Maintenance', // 'Lock Date'
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -114,12 +114,16 @@ export class StockMovementComponent {
show() { show() {
const l = this.prepareSubmit(); const l = this.prepareSubmit();
this.router.navigate(['stock-movement'], { if (this.startDate() === l.startDate && this.finishDate() === l.finishDate) {
queryParams: { this.resource.reload();
startDate: l.startDate, } else {
finishDate: l.finishDate, this.router.navigate(['stock-movement'], {
}, queryParams: {
}); startDate: l.startDate,
finishDate: l.finishDate,
},
});
}
} }
prepareSubmit(): StockMovement { prepareSubmit(): StockMovement {
@@ -11,6 +11,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Stock Movement', permission: 'Stock Movement',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
@@ -109,7 +109,11 @@ export class TrialBalanceComponent {
show() { show() {
const info = this.getInfo(); const info = this.getInfo();
this.router.navigate(['trial-balance', info.date]); if (this.date() === info.date) {
this.resource.reload();
} else {
this.router.navigate(['trial-balance', info.date]);
}
} }
getInfo(): TrialBalance { getInfo(): TrialBalance {
@@ -11,7 +11,6 @@ export const routes: Routes = [
data: { data: {
permission: 'Trial Balance', permission: 'Trial Balance',
}, },
runGuardsAndResolvers: 'always',
}, },
{ {
path: ':date', path: ':date',
@@ -20,6 +19,5 @@ export const routes: Routes = [
data: { data: {
permission: 'Trial Balance', permission: 'Trial Balance',
}, },
runGuardsAndResolvers: 'always',
}, },
]; ];
+2 -2
View File
@@ -32,12 +32,12 @@ a
text-decoration: underline text-decoration: underline
button.mat-primary button.mat-primary:not(:disabled)
background: var(--mat-sys-primary) !important background: var(--mat-sys-primary) !important
color: var(--mat-sys-on-primary) !important color: var(--mat-sys-on-primary) !important
button.mat-warn button.mat-warn:not(:disabled)
background: var(--mat-sys-error) !important background: var(--mat-sys-error) !important
color: var(--mat-sys-on-error) !important color: var(--mat-sys-on-error) !important