@nettyapps/ntyux 21.0.25 → 21.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/nettyapps-ntyux.mjs +52 -36
- package/fesm2022/nettyapps-ntyux.mjs.map +1 -1
- package/package.json +2 -2
- package/themes/deep-bluetheme.css +86 -132
- package/themes/graytheme.css +66 -76
- package/themes/greentheme.css +66 -76
- package/themes/nettytheme.css +276 -0
- package/themes/orangetheme.css +65 -75
- package/themes/purpletheme.css +65 -75
- package/themes/redtheme.css +65 -75
- package/themes/themes.css +1 -0
- package/types/nettyapps-ntyux.d.ts +14 -6
|
@@ -18,7 +18,7 @@ import { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogModule } from '@a
|
|
|
18
18
|
import * as i1 from '@angular/common';
|
|
19
19
|
import { CommonModule, Location, TitleCasePipe } from '@angular/common';
|
|
20
20
|
import * as i3 from '@ngx-translate/core';
|
|
21
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
21
|
+
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
22
22
|
import { Clipboard } from '@angular/cdk/clipboard';
|
|
23
23
|
import { AlertService, CommonService, AuthenticationService, NettyMenuService, CredentialsService, NettyImageService } from '@nettyapps/ntybase';
|
|
24
24
|
import * as i5 from '@angular/router';
|
|
@@ -1003,42 +1003,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
1003
1003
|
}], ctorParameters: () => [], propDecorators: { isMinimized: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMinimized", required: false }] }], toggleMinimize: [{ type: i0.Output, args: ["toggleMinimize"] }] } });
|
|
1004
1004
|
|
|
1005
1005
|
class Theme {
|
|
1006
|
-
THEME_STORAGE_KEY = 'app-theme';
|
|
1007
1006
|
appTheme = signal('light', ...(ngDevMode ? [{ debugName: "appTheme" }] : []));
|
|
1008
1007
|
themes = [
|
|
1009
1008
|
{ name: 'light', icon: 'light_mode' },
|
|
1010
1009
|
{ name: 'dark', icon: 'dark_mode' },
|
|
1011
1010
|
];
|
|
1012
1011
|
selectedTheme = computed(() => this.themes.find((theme) => theme.name === this.appTheme()), ...(ngDevMode ? [{ debugName: "selectedTheme" }] : []));
|
|
1013
|
-
constructor() {
|
|
1014
|
-
const savedTheme = this.getSavedTheme();
|
|
1015
|
-
if (savedTheme) {
|
|
1016
|
-
this.appTheme.set(savedTheme);
|
|
1017
|
-
}
|
|
1018
|
-
effect(() => {
|
|
1019
|
-
const appTheme = this.appTheme();
|
|
1020
|
-
document.body.style.setProperty('color-scheme', appTheme);
|
|
1021
|
-
document.body.setAttribute('data-ag-theme-mode', appTheme);
|
|
1022
|
-
});
|
|
1023
|
-
}
|
|
1024
1012
|
getThemes() {
|
|
1025
1013
|
return this.themes;
|
|
1026
1014
|
}
|
|
1027
1015
|
setTheme(theme) {
|
|
1028
1016
|
this.appTheme.set(theme);
|
|
1029
|
-
this.saveTheme(theme);
|
|
1030
|
-
}
|
|
1031
|
-
getSavedTheme() {
|
|
1032
|
-
if (typeof window !== 'undefined' && window.localStorage) {
|
|
1033
|
-
const saved = localStorage.getItem(this.THEME_STORAGE_KEY);
|
|
1034
|
-
return saved === 'light' || saved === 'dark' ? saved : null;
|
|
1035
|
-
}
|
|
1036
|
-
return null;
|
|
1037
1017
|
}
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1018
|
+
constructor() {
|
|
1019
|
+
effect(() => {
|
|
1020
|
+
const appTheme = this.appTheme();
|
|
1021
|
+
document.body.style.setProperty('color-scheme', appTheme);
|
|
1022
|
+
document.body.setAttribute('data-ag-theme-mode', appTheme);
|
|
1023
|
+
});
|
|
1042
1024
|
}
|
|
1043
1025
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: Theme, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1044
1026
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: Theme, providedIn: 'root' });
|
|
@@ -1053,6 +1035,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
1053
1035
|
class ColorPalette {
|
|
1054
1036
|
THEME_STORAGE_KEY = 'selected-theme';
|
|
1055
1037
|
themes = [];
|
|
1038
|
+
themeService = inject(Theme);
|
|
1056
1039
|
currentTheme = signal(null, ...(ngDevMode ? [{ debugName: "currentTheme" }] : []));
|
|
1057
1040
|
setThemes(customThemes) {
|
|
1058
1041
|
this.themes = customThemes;
|
|
@@ -1063,12 +1046,6 @@ class ColorPalette {
|
|
|
1063
1046
|
if (themeToSet) {
|
|
1064
1047
|
this.currentTheme.set(themeToSet);
|
|
1065
1048
|
}
|
|
1066
|
-
else if (this.themes.length > 0) {
|
|
1067
|
-
this.currentTheme.set(this.themes[0]);
|
|
1068
|
-
}
|
|
1069
|
-
}
|
|
1070
|
-
getThemes() {
|
|
1071
|
-
return this.themes;
|
|
1072
1049
|
}
|
|
1073
1050
|
setTheme(themeId) {
|
|
1074
1051
|
const theme = this.themes.find((t) => t.id === themeId);
|
|
@@ -1077,6 +1054,12 @@ class ColorPalette {
|
|
|
1077
1054
|
this.saveTheme(themeId);
|
|
1078
1055
|
}
|
|
1079
1056
|
}
|
|
1057
|
+
getThemes() {
|
|
1058
|
+
return this.themes;
|
|
1059
|
+
}
|
|
1060
|
+
getCurrentTheme() {
|
|
1061
|
+
return this.currentTheme();
|
|
1062
|
+
}
|
|
1080
1063
|
getSavedTheme() {
|
|
1081
1064
|
if (typeof window !== 'undefined' && window.localStorage) {
|
|
1082
1065
|
return localStorage.getItem(this.THEME_STORAGE_KEY);
|
|
@@ -1093,8 +1076,28 @@ class ColorPalette {
|
|
|
1093
1076
|
if (theme) {
|
|
1094
1077
|
document.body.classList.remove(...this.themes.map((t) => `${t.id}-theme`));
|
|
1095
1078
|
document.body.classList.add(`${theme.id}-theme`);
|
|
1079
|
+
this.themeService.setTheme(theme.type);
|
|
1096
1080
|
}
|
|
1097
1081
|
}, ...(ngDevMode ? [{ debugName: "updateThemeClass" }] : []));
|
|
1082
|
+
loadCustomThemes(customThemes = [], defaultTheme = 'deep-blue') {
|
|
1083
|
+
if (!customThemes || customThemes.length === 0) {
|
|
1084
|
+
customThemes = [
|
|
1085
|
+
{ id: 'deep-blue', primary: '#1976D2', displayName: 'Deep Blue', type: 'light' },
|
|
1086
|
+
{ id: 'green', primary: '#00796B', displayName: 'Green', type: 'light' },
|
|
1087
|
+
{ id: 'orange', primary: '#E65100', displayName: 'Orange', type: 'light' },
|
|
1088
|
+
{ id: 'purple', primary: '#6200EE', displayName: 'Purple', type: 'light' },
|
|
1089
|
+
{ id: 'red', primary: '#C2185B', displayName: 'Red', type: 'light' },
|
|
1090
|
+
{ id: 'gray', primary: '#555', displayName: 'Gray', type: 'light' },
|
|
1091
|
+
{ id: 'netty', primary: 'rgb(0 103 126)', displayName: 'Netty', type: 'dark' },
|
|
1092
|
+
];
|
|
1093
|
+
}
|
|
1094
|
+
this.setThemes(customThemes);
|
|
1095
|
+
// Default theme
|
|
1096
|
+
if (!defaultTheme || defaultTheme.length === 0) {
|
|
1097
|
+
defaultTheme = 'deep-blue';
|
|
1098
|
+
}
|
|
1099
|
+
this.setTheme(defaultTheme);
|
|
1100
|
+
}
|
|
1098
1101
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ColorPalette, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1099
1102
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ColorPalette, providedIn: 'root' });
|
|
1100
1103
|
}
|
|
@@ -1149,7 +1152,7 @@ class Toolbar {
|
|
|
1149
1152
|
}
|
|
1150
1153
|
}
|
|
1151
1154
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: Toolbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1152
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: Toolbar, isStandalone: true, selector: "ntybase-toolbar", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleSidenav: "toggleSidenav", icon: "iconChange" }, ngImport: i0, template: "<mat-toolbar class=\"sidenav-header\">\n <div class=\"left-section\">\n <button mat-icon-button (click)=\"onToggleSidenav()\" class=\"menu-button\">\n <mat-icon>menu</mat-icon>\n </button>\n <span>{{'app_name' | translate }}</span>\n\n <!-- Language Selection -->\n <div class=\"language-toggle\">\n @if (icon()) {\n <button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <span class=\"{{ getCurrentLanguageIcon() }}\"></span>\n </button>\n } @else {\n <button\n mat-raised-button\n color=\"primary\"\n [matMenuTriggerFor]=\"languageMenu\"\n >\n {{ currentLanguage }}\n </button>\n }\n </div>\n\n <!-- Language Menu -->\n <mat-menu #languageMenu=\"matMenu\">\n @for (language of languages; track language) {\n <button mat-menu-item (click)=\"setLanguage(language)\">\n <span class=\"{{ getLanguageIcon(language) }}\"></span>\n {{ language }}\n </button>\n }\n </mat-menu>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"flex-stretch\"></div>\n <button\n mat-icon-button\n [mat-menu-trigger-for]=\"themeMenu\"\n class=\"theme-button\"\n >\n <mat-icon>{{ themeService.selectedTheme()?.icon }}</mat-icon>\n </button
|
|
1155
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: Toolbar, isStandalone: true, selector: "ntybase-toolbar", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleSidenav: "toggleSidenav", icon: "iconChange" }, ngImport: i0, template: "<mat-toolbar class=\"sidenav-header\">\n <div class=\"left-section\">\n <button mat-icon-button (click)=\"onToggleSidenav()\" class=\"menu-button\">\n <mat-icon>menu</mat-icon>\n </button>\n <span>{{'app_name' | translate }}</span>\n\n <!-- Language Selection -->\n <div class=\"language-toggle\">\n @if (icon()) {\n <button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <span class=\"{{ getCurrentLanguageIcon() }}\"></span>\n </button>\n } @else {\n <button\n mat-raised-button\n color=\"primary\"\n [matMenuTriggerFor]=\"languageMenu\"\n >\n {{ currentLanguage }}\n </button>\n }\n </div>\n\n <!-- Language Menu -->\n <mat-menu #languageMenu=\"matMenu\">\n @for (language of languages; track language) {\n <button mat-menu-item (click)=\"setLanguage(language)\">\n <span class=\"{{ getLanguageIcon(language) }}\"></span>\n {{ language }}\n </button>\n }\n </mat-menu>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"flex-stretch\"></div>\n <!-- <button\n mat-icon-button\n [mat-menu-trigger-for]=\"themeMenu\"\n class=\"theme-button\"\n >\n <mat-icon>{{ themeService.selectedTheme()?.icon }}</mat-icon>\n </button> -->\n <mat-menu #themeMenu=\"matMenu\">\n @for (theme of themeService.getThemes(); track theme.name) {\n <button\n [class.selected-theme]=\"themeService.selectedTheme()?.name === theme.name\"\n mat-menu-item\n (click)=\"themeService.setTheme(theme.name)\"\n >\n <mat-icon>{{ theme.icon }}</mat-icon>\n <span>{{ theme.name | titlecase }}</span>\n </button>\n }\n </mat-menu>\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"customThemeMenu\"\n class=\"custom-theme-button\"\n >\n <mat-icon>format_color_fill</mat-icon>\n </button>\n <mat-menu #customThemeMenu=\"matMenu\">\n @for (customTheme of colorPaletteService.getThemes(); track customTheme.id)\n {\n <button\n mat-menu-item\n (click)=\"colorPaletteService.setTheme(customTheme.id)\"\n >\n <div class=\"theme-menu-item\">\n <div\n class=\"color-preview\"\n [style.background-color]=\"customTheme.primary\"\n ></div>\n <span>{{ customTheme.displayName }}</span>\n </div>\n </button>\n }\n </mat-menu>\n</mat-toolbar>\n", styles: ["mat-toolbar{position:fixed;top:0;left:0;right:0;z-index:3;box-shadow:0 1px 5px #0000001a;display:flex;align-items:center}.sidenav-header{display:flex;justify-content:space-between;align-items:center;padding:16px;margin:0;font-weight:500}.sidenav-header .left-section{display:flex;align-items:center;gap:16px}.sidenav-header .spacer{flex:1 1 auto}.flex-stretch{flex:1 0 auto}.theme-menu-item{display:flex;align-items:center;gap:12px}.color-preview{width:24px;height:24px;border-radius:50%}::ng-deep .theme-button{border:none;background:none;margin-right:15px;cursor:pointer}::ng-deep .custom-theme-button{border:none;background:none;cursor:pointer}::ng-deep .menu-button{border:none;background:none;cursor:pointer}.language-button{margin:0 auto}::ng-deep button{border:none;background:none;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i3$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
1153
1156
|
}
|
|
1154
1157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: Toolbar, decorators: [{
|
|
1155
1158
|
type: Component,
|
|
@@ -1160,7 +1163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
1160
1163
|
CommonModule,
|
|
1161
1164
|
TitleCasePipe,
|
|
1162
1165
|
TranslateModule,
|
|
1163
|
-
], template: "<mat-toolbar class=\"sidenav-header\">\n <div class=\"left-section\">\n <button mat-icon-button (click)=\"onToggleSidenav()\" class=\"menu-button\">\n <mat-icon>menu</mat-icon>\n </button>\n <span>{{'app_name' | translate }}</span>\n\n <!-- Language Selection -->\n <div class=\"language-toggle\">\n @if (icon()) {\n <button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <span class=\"{{ getCurrentLanguageIcon() }}\"></span>\n </button>\n } @else {\n <button\n mat-raised-button\n color=\"primary\"\n [matMenuTriggerFor]=\"languageMenu\"\n >\n {{ currentLanguage }}\n </button>\n }\n </div>\n\n <!-- Language Menu -->\n <mat-menu #languageMenu=\"matMenu\">\n @for (language of languages; track language) {\n <button mat-menu-item (click)=\"setLanguage(language)\">\n <span class=\"{{ getLanguageIcon(language) }}\"></span>\n {{ language }}\n </button>\n }\n </mat-menu>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"flex-stretch\"></div>\n <button\n mat-icon-button\n [mat-menu-trigger-for]=\"themeMenu\"\n class=\"theme-button\"\n >\n <mat-icon>{{ themeService.selectedTheme()?.icon }}</mat-icon>\n </button
|
|
1166
|
+
], template: "<mat-toolbar class=\"sidenav-header\">\n <div class=\"left-section\">\n <button mat-icon-button (click)=\"onToggleSidenav()\" class=\"menu-button\">\n <mat-icon>menu</mat-icon>\n </button>\n <span>{{'app_name' | translate }}</span>\n\n <!-- Language Selection -->\n <div class=\"language-toggle\">\n @if (icon()) {\n <button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <span class=\"{{ getCurrentLanguageIcon() }}\"></span>\n </button>\n } @else {\n <button\n mat-raised-button\n color=\"primary\"\n [matMenuTriggerFor]=\"languageMenu\"\n >\n {{ currentLanguage }}\n </button>\n }\n </div>\n\n <!-- Language Menu -->\n <mat-menu #languageMenu=\"matMenu\">\n @for (language of languages; track language) {\n <button mat-menu-item (click)=\"setLanguage(language)\">\n <span class=\"{{ getLanguageIcon(language) }}\"></span>\n {{ language }}\n </button>\n }\n </mat-menu>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"flex-stretch\"></div>\n <!-- <button\n mat-icon-button\n [mat-menu-trigger-for]=\"themeMenu\"\n class=\"theme-button\"\n >\n <mat-icon>{{ themeService.selectedTheme()?.icon }}</mat-icon>\n </button> -->\n <mat-menu #themeMenu=\"matMenu\">\n @for (theme of themeService.getThemes(); track theme.name) {\n <button\n [class.selected-theme]=\"themeService.selectedTheme()?.name === theme.name\"\n mat-menu-item\n (click)=\"themeService.setTheme(theme.name)\"\n >\n <mat-icon>{{ theme.icon }}</mat-icon>\n <span>{{ theme.name | titlecase }}</span>\n </button>\n }\n </mat-menu>\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"customThemeMenu\"\n class=\"custom-theme-button\"\n >\n <mat-icon>format_color_fill</mat-icon>\n </button>\n <mat-menu #customThemeMenu=\"matMenu\">\n @for (customTheme of colorPaletteService.getThemes(); track customTheme.id)\n {\n <button\n mat-menu-item\n (click)=\"colorPaletteService.setTheme(customTheme.id)\"\n >\n <div class=\"theme-menu-item\">\n <div\n class=\"color-preview\"\n [style.background-color]=\"customTheme.primary\"\n ></div>\n <span>{{ customTheme.displayName }}</span>\n </div>\n </button>\n }\n </mat-menu>\n</mat-toolbar>\n", styles: ["mat-toolbar{position:fixed;top:0;left:0;right:0;z-index:3;box-shadow:0 1px 5px #0000001a;display:flex;align-items:center}.sidenav-header{display:flex;justify-content:space-between;align-items:center;padding:16px;margin:0;font-weight:500}.sidenav-header .left-section{display:flex;align-items:center;gap:16px}.sidenav-header .spacer{flex:1 1 auto}.flex-stretch{flex:1 0 auto}.theme-menu-item{display:flex;align-items:center;gap:12px}.color-preview{width:24px;height:24px;border-radius:50%}::ng-deep .theme-button{border:none;background:none;margin-right:15px;cursor:pointer}::ng-deep .custom-theme-button{border:none;background:none;cursor:pointer}::ng-deep .menu-button{border:none;background:none;cursor:pointer}.language-button{margin:0 auto}::ng-deep button{border:none;background:none;cursor:pointer}\n"] }]
|
|
1164
1167
|
}], propDecorators: { toggleSidenav: [{ type: i0.Output, args: ["toggleSidenav"] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }, { type: i0.Output, args: ["iconChange"] }] } });
|
|
1165
1168
|
|
|
1166
1169
|
class NettyUXFilterCard extends UiBase {
|
|
@@ -1171,13 +1174,26 @@ class NettyUXFilterCard extends UiBase {
|
|
|
1171
1174
|
onExport = output();
|
|
1172
1175
|
onReset = output();
|
|
1173
1176
|
onApply = output();
|
|
1177
|
+
resetButtonLabel = input("", ...(ngDevMode ? [{ debugName: "resetButtonLabel" }] : []));
|
|
1178
|
+
applyButtonLabel = input("", ...(ngDevMode ? [{ debugName: "applyButtonLabel" }] : []));
|
|
1179
|
+
exportButtonLabel = input("", ...(ngDevMode ? [{ debugName: "exportButtonLabel" }] : []));
|
|
1180
|
+
translateService = inject(TranslateService);
|
|
1181
|
+
getResetButtonLabel() {
|
|
1182
|
+
return this.resetButtonLabel() || this.translateService.instant("@resetButtonLabel");
|
|
1183
|
+
}
|
|
1184
|
+
getApplyButtonLabel() {
|
|
1185
|
+
return this.applyButtonLabel() || this.translateService.instant("@applyButtonLabel");
|
|
1186
|
+
}
|
|
1187
|
+
getExportButtonLabel() {
|
|
1188
|
+
return this.exportButtonLabel() || this.translateService.instant("@exportButtonLabel");
|
|
1189
|
+
}
|
|
1174
1190
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NettyUXFilterCard, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1175
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: NettyUXFilterCard, isStandalone: true, selector: "ntyux-filter-card", inputs: { Title: { classPropertyName: "Title", publicName: "Title", isSignal: true, isRequired: false, transformFunction: null }, SubTitle: { classPropertyName: "SubTitle", publicName: "SubTitle", isSignal: true, isRequired: false, transformFunction: null }, isExportVisible: { classPropertyName: "isExportVisible", publicName: "isExportVisible", isSignal: true, isRequired: false, transformFunction: null }, isFormValid: { classPropertyName: "isFormValid", publicName: "isFormValid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onExport: "onExport", onReset: "onReset", onApply: "onApply" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"filter-card\" apperance=\"outlined\">\n <mat-card-title>{{Title()}}</mat-card-title>\n <mat-card-subtitle>{{SubTitle()}}</mat-card-subtitle>\n <mat-card-content>\n <ng-content>\n No content provided\n </ng-content>\n </mat-card-content>\n <mat-card-actions class=\"mat-card-actions\">\n <button matButton=\"outlined\" (click)=\"onReset.emit()\">
|
|
1191
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: NettyUXFilterCard, isStandalone: true, selector: "ntyux-filter-card", inputs: { Title: { classPropertyName: "Title", publicName: "Title", isSignal: true, isRequired: false, transformFunction: null }, SubTitle: { classPropertyName: "SubTitle", publicName: "SubTitle", isSignal: true, isRequired: false, transformFunction: null }, isExportVisible: { classPropertyName: "isExportVisible", publicName: "isExportVisible", isSignal: true, isRequired: false, transformFunction: null }, isFormValid: { classPropertyName: "isFormValid", publicName: "isFormValid", isSignal: true, isRequired: false, transformFunction: null }, resetButtonLabel: { classPropertyName: "resetButtonLabel", publicName: "resetButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, applyButtonLabel: { classPropertyName: "applyButtonLabel", publicName: "applyButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, exportButtonLabel: { classPropertyName: "exportButtonLabel", publicName: "exportButtonLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onExport: "onExport", onReset: "onReset", onApply: "onApply" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"filter-card\" apperance=\"outlined\">\n <mat-card-title>{{Title()}}</mat-card-title>\n <mat-card-subtitle>{{SubTitle()}}</mat-card-subtitle>\n <mat-card-content>\n <ng-content>\n No content provided\n </ng-content>\n </mat-card-content>\n <mat-card-actions class=\"mat-card-actions\">\n <button matButton=\"outlined\" (click)=\"onReset.emit()\">{{getResetButtonLabel()}}</button>\n @if (isExportVisible()) {\n <button matButton=\"outlined\" [disabled]=\"!isFormValid()\"\n (click)=\"onExport.emit()\">{{getExportButtonLabel()}}</button>\n }\n <button matButton=\"filled\" [disabled]=\"!isFormValid()\"\n (click)=\"onApply.emit()\">{{getApplyButtonLabel()}}</button>\n </mat-card-actions>\n</mat-card>", styles: [".filter-card{padding:1rem 1rem 0}.mat-card-actions{justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1$2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i1$2.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i1$2.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: FormsModule }] });
|
|
1176
1192
|
}
|
|
1177
1193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NettyUXFilterCard, decorators: [{
|
|
1178
1194
|
type: Component,
|
|
1179
|
-
args: [{ selector: 'ntyux-filter-card',
|
|
1180
|
-
}], propDecorators: { Title: [{ type: i0.Input, args: [{ isSignal: true, alias: "Title", required: false }] }], SubTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "SubTitle", required: false }] }], isExportVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExportVisible", required: false }] }], isFormValid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFormValid", required: false }] }], onExport: [{ type: i0.Output, args: ["onExport"] }], onReset: [{ type: i0.Output, args: ["onReset"] }], onApply: [{ type: i0.Output, args: ["onApply"] }] } });
|
|
1195
|
+
args: [{ selector: 'ntyux-filter-card', imports: [MatCardModule, MatButtonModule, FormsModule], template: "<mat-card class=\"filter-card\" apperance=\"outlined\">\n <mat-card-title>{{Title()}}</mat-card-title>\n <mat-card-subtitle>{{SubTitle()}}</mat-card-subtitle>\n <mat-card-content>\n <ng-content>\n No content provided\n </ng-content>\n </mat-card-content>\n <mat-card-actions class=\"mat-card-actions\">\n <button matButton=\"outlined\" (click)=\"onReset.emit()\">{{getResetButtonLabel()}}</button>\n @if (isExportVisible()) {\n <button matButton=\"outlined\" [disabled]=\"!isFormValid()\"\n (click)=\"onExport.emit()\">{{getExportButtonLabel()}}</button>\n }\n <button matButton=\"filled\" [disabled]=\"!isFormValid()\"\n (click)=\"onApply.emit()\">{{getApplyButtonLabel()}}</button>\n </mat-card-actions>\n</mat-card>", styles: [".filter-card{padding:1rem 1rem 0}.mat-card-actions{justify-content:flex-end}\n"] }]
|
|
1196
|
+
}], propDecorators: { Title: [{ type: i0.Input, args: [{ isSignal: true, alias: "Title", required: false }] }], SubTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "SubTitle", required: false }] }], isExportVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExportVisible", required: false }] }], isFormValid: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFormValid", required: false }] }], onExport: [{ type: i0.Output, args: ["onExport"] }], onReset: [{ type: i0.Output, args: ["onReset"] }], onApply: [{ type: i0.Output, args: ["onApply"] }], resetButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "resetButtonLabel", required: false }] }], applyButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "applyButtonLabel", required: false }] }], exportButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportButtonLabel", required: false }] }] } });
|
|
1181
1197
|
|
|
1182
1198
|
class NtySidenavResizableDirective {
|
|
1183
1199
|
el = inject(ElementRef);
|