@nova-design-system/nova-angular-19 3.20.0 → 3.21.1-beta.0
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/dist/nova-components/fesm2022/nova-components.mjs +499 -47
- package/dist/nova-components/fesm2022/nova-components.mjs.map +1 -1
- package/dist/nova-components/lib/components/nv-datatable.component.d.ts +51 -2
- package/dist/nova-components/lib/nova-components.module.d.ts +2 -2
- package/dist/nova-components/lib/providers/notification.service.d.ts +7 -0
- package/dist/nova-components/lib/stencil-generated/component-value-accessors.d.ts +7 -0
- package/dist/nova-components/lib/stencil-generated/components.d.ts +110 -2
- package/dist/nova-components/lib/stencil-generated/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { __decorate } from 'tslib';
|
|
|
4
4
|
import { fromEvent, BehaviorSubject } from 'rxjs';
|
|
5
5
|
import * as i2 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { memo, createTable, getCoreRowModel, getPaginationRowModel } from '@tanstack/table-core';
|
|
7
|
+
import { memo, createTable, getCoreRowModel, getSortedRowModel, getPaginationRowModel } from '@tanstack/table-core';
|
|
8
8
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
9
9
|
export * from '@nova-design-system/nova-webcomponents/constants';
|
|
10
10
|
|
|
@@ -252,11 +252,11 @@ let NvButton = class NvButton {
|
|
|
252
252
|
this.el = r.nativeElement;
|
|
253
253
|
}
|
|
254
254
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
255
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvButton, isStandalone: false, selector: "nv-button", inputs: { active: "active", danger: "danger", disabled: "disabled", emphasis: "emphasis", fluid: "fluid", form: "form", loading: "loading", size: "size", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
255
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvButton, isStandalone: false, selector: "nv-button", inputs: { active: "active", danger: "danger", disableTabindex: "disableTabindex", disabled: "disabled", emphasis: "emphasis", fluid: "fluid", form: "form", loading: "loading", size: "size", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
256
256
|
};
|
|
257
257
|
NvButton = __decorate([
|
|
258
258
|
ProxyCmp({
|
|
259
|
-
inputs: ['active', 'danger', 'disabled', 'emphasis', 'fluid', 'form', 'loading', 'size', 'type']
|
|
259
|
+
inputs: ['active', 'danger', 'disableTabindex', 'disabled', 'emphasis', 'fluid', 'form', 'loading', 'size', 'type']
|
|
260
260
|
})
|
|
261
261
|
], NvButton);
|
|
262
262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvButton, decorators: [{
|
|
@@ -266,7 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
266
266
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
267
267
|
template: '<ng-content></ng-content>',
|
|
268
268
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
269
|
-
inputs: ['active', 'danger', 'disabled', 'emphasis', 'fluid', 'form', 'loading', 'size', 'type'],
|
|
269
|
+
inputs: ['active', 'danger', 'disableTabindex', 'disabled', 'emphasis', 'fluid', 'form', 'loading', 'size', 'type'],
|
|
270
270
|
standalone: false
|
|
271
271
|
}]
|
|
272
272
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -902,11 +902,11 @@ let NvIconbutton = class NvIconbutton {
|
|
|
902
902
|
this.el = r.nativeElement;
|
|
903
903
|
}
|
|
904
904
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvIconbutton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
905
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvIconbutton, isStandalone: false, selector: "nv-iconbutton", inputs: { active: "active", disabled: "disabled", emphasis: "emphasis", loading: "loading", name: "name", shape: "shape", size: "size", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
905
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvIconbutton, isStandalone: false, selector: "nv-iconbutton", inputs: { active: "active", disableTabindex: "disableTabindex", disabled: "disabled", emphasis: "emphasis", loading: "loading", name: "name", shape: "shape", size: "size", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
906
906
|
};
|
|
907
907
|
NvIconbutton = __decorate([
|
|
908
908
|
ProxyCmp({
|
|
909
|
-
inputs: ['active', 'disabled', 'emphasis', 'loading', 'name', 'shape', 'size', 'type']
|
|
909
|
+
inputs: ['active', 'disableTabindex', 'disabled', 'emphasis', 'loading', 'name', 'shape', 'size', 'type']
|
|
910
910
|
})
|
|
911
911
|
], NvIconbutton);
|
|
912
912
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvIconbutton, decorators: [{
|
|
@@ -916,7 +916,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
916
916
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
917
917
|
template: '<ng-content></ng-content>',
|
|
918
918
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
919
|
-
inputs: ['active', 'disabled', 'emphasis', 'loading', 'name', 'shape', 'size', 'type'],
|
|
919
|
+
inputs: ['active', 'disableTabindex', 'disabled', 'emphasis', 'loading', 'name', 'shape', 'size', 'type'],
|
|
920
920
|
standalone: false
|
|
921
921
|
}]
|
|
922
922
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
@@ -1025,6 +1025,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
1025
1025
|
standalone: false
|
|
1026
1026
|
}]
|
|
1027
1027
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1028
|
+
let NvNotificationBullet = class NvNotificationBullet {
|
|
1029
|
+
constructor(c, r, z) {
|
|
1030
|
+
this.z = z;
|
|
1031
|
+
c.detach();
|
|
1032
|
+
this.el = r.nativeElement;
|
|
1033
|
+
}
|
|
1034
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvNotificationBullet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1035
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvNotificationBullet, isStandalone: false, selector: "nv-notification-bullet", inputs: { contrastingBorder: "contrastingBorder", count: "count", emphasis: "emphasis", intention: "intention", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1036
|
+
};
|
|
1037
|
+
NvNotificationBullet = __decorate([
|
|
1038
|
+
ProxyCmp({
|
|
1039
|
+
inputs: ['contrastingBorder', 'count', 'emphasis', 'intention', 'size']
|
|
1040
|
+
})
|
|
1041
|
+
], NvNotificationBullet);
|
|
1042
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvNotificationBullet, decorators: [{
|
|
1043
|
+
type: Component,
|
|
1044
|
+
args: [{
|
|
1045
|
+
selector: 'nv-notification-bullet',
|
|
1046
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1047
|
+
template: '<ng-content></ng-content>',
|
|
1048
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1049
|
+
inputs: ['contrastingBorder', 'count', 'emphasis', 'intention', 'size'],
|
|
1050
|
+
standalone: false
|
|
1051
|
+
}]
|
|
1052
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1028
1053
|
let NvNotificationcontainer = class NvNotificationcontainer {
|
|
1029
1054
|
constructor(c, r, z) {
|
|
1030
1055
|
this.z = z;
|
|
@@ -1100,6 +1125,224 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
1100
1125
|
standalone: false
|
|
1101
1126
|
}]
|
|
1102
1127
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1128
|
+
let NvSidebar = class NvSidebar {
|
|
1129
|
+
constructor(c, r, z) {
|
|
1130
|
+
this.z = z;
|
|
1131
|
+
c.detach();
|
|
1132
|
+
this.el = r.nativeElement;
|
|
1133
|
+
proxyOutputs(this, this.el, ['openChanged']);
|
|
1134
|
+
}
|
|
1135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebar, isStandalone: false, selector: "nv-sidebar", inputs: { activePath: "activePath", notificationEmphasis: "notificationEmphasis", notificationIntention: "notificationIntention", open: "open", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1137
|
+
};
|
|
1138
|
+
NvSidebar = __decorate([
|
|
1139
|
+
ProxyCmp({
|
|
1140
|
+
inputs: ['activePath', 'notificationEmphasis', 'notificationIntention', 'open', 'type']
|
|
1141
|
+
})
|
|
1142
|
+
], NvSidebar);
|
|
1143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebar, decorators: [{
|
|
1144
|
+
type: Component,
|
|
1145
|
+
args: [{
|
|
1146
|
+
selector: 'nv-sidebar',
|
|
1147
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1148
|
+
template: '<ng-content></ng-content>',
|
|
1149
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1150
|
+
inputs: ['activePath', 'notificationEmphasis', 'notificationIntention', 'open', 'type'],
|
|
1151
|
+
standalone: false
|
|
1152
|
+
}]
|
|
1153
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1154
|
+
let NvSidebarcontent = class NvSidebarcontent {
|
|
1155
|
+
constructor(c, r, z) {
|
|
1156
|
+
this.z = z;
|
|
1157
|
+
c.detach();
|
|
1158
|
+
this.el = r.nativeElement;
|
|
1159
|
+
}
|
|
1160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarcontent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarcontent, isStandalone: false, selector: "nv-sidebarcontent", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1162
|
+
};
|
|
1163
|
+
NvSidebarcontent = __decorate([
|
|
1164
|
+
ProxyCmp({})
|
|
1165
|
+
], NvSidebarcontent);
|
|
1166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarcontent, decorators: [{
|
|
1167
|
+
type: Component,
|
|
1168
|
+
args: [{
|
|
1169
|
+
selector: 'nv-sidebarcontent',
|
|
1170
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1171
|
+
template: '<ng-content></ng-content>',
|
|
1172
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1173
|
+
inputs: [],
|
|
1174
|
+
standalone: false
|
|
1175
|
+
}]
|
|
1176
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1177
|
+
let NvSidebardivider = class NvSidebardivider {
|
|
1178
|
+
constructor(c, r, z) {
|
|
1179
|
+
this.z = z;
|
|
1180
|
+
c.detach();
|
|
1181
|
+
this.el = r.nativeElement;
|
|
1182
|
+
}
|
|
1183
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebardivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1184
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebardivider, isStandalone: false, selector: "nv-sidebardivider", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1185
|
+
};
|
|
1186
|
+
NvSidebardivider = __decorate([
|
|
1187
|
+
ProxyCmp({})
|
|
1188
|
+
], NvSidebardivider);
|
|
1189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebardivider, decorators: [{
|
|
1190
|
+
type: Component,
|
|
1191
|
+
args: [{
|
|
1192
|
+
selector: 'nv-sidebardivider',
|
|
1193
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1194
|
+
template: '<ng-content></ng-content>',
|
|
1195
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1196
|
+
inputs: [],
|
|
1197
|
+
standalone: false
|
|
1198
|
+
}]
|
|
1199
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1200
|
+
let NvSidebarfooter = class NvSidebarfooter {
|
|
1201
|
+
constructor(c, r, z) {
|
|
1202
|
+
this.z = z;
|
|
1203
|
+
c.detach();
|
|
1204
|
+
this.el = r.nativeElement;
|
|
1205
|
+
}
|
|
1206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarfooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1207
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarfooter, isStandalone: false, selector: "nv-sidebarfooter", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1208
|
+
};
|
|
1209
|
+
NvSidebarfooter = __decorate([
|
|
1210
|
+
ProxyCmp({})
|
|
1211
|
+
], NvSidebarfooter);
|
|
1212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarfooter, decorators: [{
|
|
1213
|
+
type: Component,
|
|
1214
|
+
args: [{
|
|
1215
|
+
selector: 'nv-sidebarfooter',
|
|
1216
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1217
|
+
template: '<ng-content></ng-content>',
|
|
1218
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1219
|
+
inputs: [],
|
|
1220
|
+
standalone: false
|
|
1221
|
+
}]
|
|
1222
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1223
|
+
let NvSidebargroup = class NvSidebargroup {
|
|
1224
|
+
constructor(c, r, z) {
|
|
1225
|
+
this.z = z;
|
|
1226
|
+
c.detach();
|
|
1227
|
+
this.el = r.nativeElement;
|
|
1228
|
+
}
|
|
1229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebargroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebargroup, isStandalone: false, selector: "nv-sidebargroup", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1231
|
+
};
|
|
1232
|
+
NvSidebargroup = __decorate([
|
|
1233
|
+
ProxyCmp({
|
|
1234
|
+
inputs: ['label']
|
|
1235
|
+
})
|
|
1236
|
+
], NvSidebargroup);
|
|
1237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebargroup, decorators: [{
|
|
1238
|
+
type: Component,
|
|
1239
|
+
args: [{
|
|
1240
|
+
selector: 'nv-sidebargroup',
|
|
1241
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1242
|
+
template: '<ng-content></ng-content>',
|
|
1243
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1244
|
+
inputs: ['label'],
|
|
1245
|
+
standalone: false
|
|
1246
|
+
}]
|
|
1247
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1248
|
+
let NvSidebarheader = class NvSidebarheader {
|
|
1249
|
+
constructor(c, r, z) {
|
|
1250
|
+
this.z = z;
|
|
1251
|
+
c.detach();
|
|
1252
|
+
this.el = r.nativeElement;
|
|
1253
|
+
}
|
|
1254
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarheader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1255
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarheader, isStandalone: false, selector: "nv-sidebarheader", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1256
|
+
};
|
|
1257
|
+
NvSidebarheader = __decorate([
|
|
1258
|
+
ProxyCmp({})
|
|
1259
|
+
], NvSidebarheader);
|
|
1260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarheader, decorators: [{
|
|
1261
|
+
type: Component,
|
|
1262
|
+
args: [{
|
|
1263
|
+
selector: 'nv-sidebarheader',
|
|
1264
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1265
|
+
template: '<ng-content></ng-content>',
|
|
1266
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1267
|
+
inputs: [],
|
|
1268
|
+
standalone: false
|
|
1269
|
+
}]
|
|
1270
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1271
|
+
let NvSidebarlogo = class NvSidebarlogo {
|
|
1272
|
+
constructor(c, r, z) {
|
|
1273
|
+
this.z = z;
|
|
1274
|
+
c.detach();
|
|
1275
|
+
this.el = r.nativeElement;
|
|
1276
|
+
}
|
|
1277
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarlogo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarlogo, isStandalone: false, selector: "nv-sidebarlogo", inputs: { collapsedLogo: "collapsedLogo", label: "label", logo: "logo" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1279
|
+
};
|
|
1280
|
+
NvSidebarlogo = __decorate([
|
|
1281
|
+
ProxyCmp({
|
|
1282
|
+
inputs: ['collapsedLogo', 'label', 'logo']
|
|
1283
|
+
})
|
|
1284
|
+
], NvSidebarlogo);
|
|
1285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarlogo, decorators: [{
|
|
1286
|
+
type: Component,
|
|
1287
|
+
args: [{
|
|
1288
|
+
selector: 'nv-sidebarlogo',
|
|
1289
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1290
|
+
template: '<ng-content></ng-content>',
|
|
1291
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1292
|
+
inputs: ['collapsedLogo', 'label', 'logo'],
|
|
1293
|
+
standalone: false
|
|
1294
|
+
}]
|
|
1295
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1296
|
+
let NvSidebarnavitem = class NvSidebarnavitem {
|
|
1297
|
+
constructor(c, r, z) {
|
|
1298
|
+
this.z = z;
|
|
1299
|
+
c.detach();
|
|
1300
|
+
this.el = r.nativeElement;
|
|
1301
|
+
}
|
|
1302
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarnavitem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1303
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarnavitem, isStandalone: false, selector: "nv-sidebarnavitem", inputs: { active: "active", collapsible: "collapsible", icon: "icon", notificationCount: "notificationCount", open: "open" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1304
|
+
};
|
|
1305
|
+
NvSidebarnavitem = __decorate([
|
|
1306
|
+
ProxyCmp({
|
|
1307
|
+
inputs: ['active', 'collapsible', 'icon', 'notificationCount', 'open']
|
|
1308
|
+
})
|
|
1309
|
+
], NvSidebarnavitem);
|
|
1310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarnavitem, decorators: [{
|
|
1311
|
+
type: Component,
|
|
1312
|
+
args: [{
|
|
1313
|
+
selector: 'nv-sidebarnavitem',
|
|
1314
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1315
|
+
template: '<ng-content></ng-content>',
|
|
1316
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1317
|
+
inputs: ['active', 'collapsible', 'icon', 'notificationCount', 'open'],
|
|
1318
|
+
standalone: false
|
|
1319
|
+
}]
|
|
1320
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1321
|
+
let NvSidebarnavsubitem = class NvSidebarnavsubitem {
|
|
1322
|
+
constructor(c, r, z) {
|
|
1323
|
+
this.z = z;
|
|
1324
|
+
c.detach();
|
|
1325
|
+
this.el = r.nativeElement;
|
|
1326
|
+
}
|
|
1327
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarnavsubitem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1328
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarnavsubitem, isStandalone: false, selector: "nv-sidebarnavsubitem", inputs: { active: "active" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1329
|
+
};
|
|
1330
|
+
NvSidebarnavsubitem = __decorate([
|
|
1331
|
+
ProxyCmp({
|
|
1332
|
+
inputs: ['active']
|
|
1333
|
+
})
|
|
1334
|
+
], NvSidebarnavsubitem);
|
|
1335
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarnavsubitem, decorators: [{
|
|
1336
|
+
type: Component,
|
|
1337
|
+
args: [{
|
|
1338
|
+
selector: 'nv-sidebarnavsubitem',
|
|
1339
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1340
|
+
template: '<ng-content></ng-content>',
|
|
1341
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1342
|
+
inputs: ['active'],
|
|
1343
|
+
standalone: false
|
|
1344
|
+
}]
|
|
1345
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1103
1346
|
let NvSplit = class NvSplit {
|
|
1104
1347
|
constructor(c, r, z) {
|
|
1105
1348
|
this.z = z;
|
|
@@ -1175,6 +1418,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
1175
1418
|
standalone: false
|
|
1176
1419
|
}]
|
|
1177
1420
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1421
|
+
let NvTableheader = class NvTableheader {
|
|
1422
|
+
constructor(c, r, z) {
|
|
1423
|
+
this.z = z;
|
|
1424
|
+
c.detach();
|
|
1425
|
+
this.el = r.nativeElement;
|
|
1426
|
+
proxyOutputs(this, this.el, ['sortDirectionChanged']);
|
|
1427
|
+
}
|
|
1428
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvTableheader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1429
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: NvTableheader, isStandalone: false, selector: "nv-tableheader", inputs: { sortDirection: "sortDirection", sortable: "sortable" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1430
|
+
};
|
|
1431
|
+
NvTableheader = __decorate([
|
|
1432
|
+
ProxyCmp({
|
|
1433
|
+
inputs: ['sortDirection', 'sortable']
|
|
1434
|
+
})
|
|
1435
|
+
], NvTableheader);
|
|
1436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvTableheader, decorators: [{
|
|
1437
|
+
type: Component,
|
|
1438
|
+
args: [{
|
|
1439
|
+
selector: 'nv-tableheader',
|
|
1440
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1441
|
+
template: '<ng-content></ng-content>',
|
|
1442
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1443
|
+
inputs: ['sortDirection', 'sortable'],
|
|
1444
|
+
standalone: false
|
|
1445
|
+
}]
|
|
1446
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1178
1447
|
let NvToggle = class NvToggle {
|
|
1179
1448
|
constructor(c, r, z) {
|
|
1180
1449
|
this.z = z;
|
|
@@ -1318,12 +1587,23 @@ const DIRECTIVES = [
|
|
|
1318
1587
|
NvMenu,
|
|
1319
1588
|
NvMenuitem,
|
|
1320
1589
|
NvNotification,
|
|
1590
|
+
NvNotificationBullet,
|
|
1321
1591
|
NvNotificationcontainer,
|
|
1322
1592
|
NvPopover,
|
|
1323
1593
|
NvRow,
|
|
1594
|
+
NvSidebar,
|
|
1595
|
+
NvSidebarcontent,
|
|
1596
|
+
NvSidebardivider,
|
|
1597
|
+
NvSidebarfooter,
|
|
1598
|
+
NvSidebargroup,
|
|
1599
|
+
NvSidebarheader,
|
|
1600
|
+
NvSidebarlogo,
|
|
1601
|
+
NvSidebarnavitem,
|
|
1602
|
+
NvSidebarnavsubitem,
|
|
1324
1603
|
NvSplit,
|
|
1325
1604
|
NvStack,
|
|
1326
1605
|
NvTable,
|
|
1606
|
+
NvTableheader,
|
|
1327
1607
|
NvToggle,
|
|
1328
1608
|
NvTogglebutton,
|
|
1329
1609
|
NvTogglebuttongroup,
|
|
@@ -2092,6 +2372,7 @@ function createAngularTable(options) {
|
|
|
2092
2372
|
|
|
2093
2373
|
/* eslint-disable jsdoc/require-jsdoc */
|
|
2094
2374
|
/* eslint-disable jsdoc/require-returns */
|
|
2375
|
+
/* eslint-disable jsdoc/require-param */
|
|
2095
2376
|
/**
|
|
2096
2377
|
* A powerful, flexible datatable component built on TanStack Table.
|
|
2097
2378
|
* Supports custom cell rendering, column configuration, pagination, and full TypeScript typing.
|
|
@@ -2101,6 +2382,37 @@ class NvDatatable {
|
|
|
2101
2382
|
table() {
|
|
2102
2383
|
return this.tableInstance();
|
|
2103
2384
|
}
|
|
2385
|
+
/**
|
|
2386
|
+
* Handle sort direction change from table header
|
|
2387
|
+
* @param {Event} event The sort direction change event or direction string
|
|
2388
|
+
* @param {object} header The table header object
|
|
2389
|
+
*/
|
|
2390
|
+
handleSortDirectionChanged(event, header) {
|
|
2391
|
+
// Extract direction from event or use directly if string
|
|
2392
|
+
let direction;
|
|
2393
|
+
if (typeof event === 'string') {
|
|
2394
|
+
direction = event;
|
|
2395
|
+
}
|
|
2396
|
+
else if ('detail' in event && typeof event.detail === 'string') {
|
|
2397
|
+
direction = event.detail;
|
|
2398
|
+
}
|
|
2399
|
+
else {
|
|
2400
|
+
// Fallback - shouldn't happen but handle gracefully
|
|
2401
|
+
console.warn('Unexpected event type in handleSortDirectionChanged:', event);
|
|
2402
|
+
return;
|
|
2403
|
+
}
|
|
2404
|
+
const sortingConfig = this.sorting();
|
|
2405
|
+
// Check if multi-sort is enabled
|
|
2406
|
+
const isMultiSort = sortingConfig?.enableMultiSort ?? false;
|
|
2407
|
+
if (direction === 'none') {
|
|
2408
|
+
// Clear this column's sort
|
|
2409
|
+
header.column.clearSorting();
|
|
2410
|
+
}
|
|
2411
|
+
else {
|
|
2412
|
+
// Toggle sort - TanStack will handle the logic internally
|
|
2413
|
+
header.column.toggleSorting(direction === 'desc', isMultiSort);
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2104
2416
|
constructor() {
|
|
2105
2417
|
/** Column definitions */
|
|
2106
2418
|
this.columns = input([]);
|
|
@@ -2108,6 +2420,8 @@ class NvDatatable {
|
|
|
2108
2420
|
this.rows = input([]);
|
|
2109
2421
|
/** Optional pagination configuration */
|
|
2110
2422
|
this.pagination = input(undefined);
|
|
2423
|
+
/** Optional sorting configuration */
|
|
2424
|
+
this.sorting = input(undefined);
|
|
2111
2425
|
/** Should the header stick to the top of the table when scrolling? */
|
|
2112
2426
|
this.stickyHeader = input(false);
|
|
2113
2427
|
/** Signal to track cell templates array */
|
|
@@ -2125,6 +2439,8 @@ class NvDatatable {
|
|
|
2125
2439
|
pageIndex: 0,
|
|
2126
2440
|
pageSize: this.pagination()?.initialPageSize || 10,
|
|
2127
2441
|
});
|
|
2442
|
+
/** Sorting state for controlled sorting (server mode) */
|
|
2443
|
+
this.sortingState = signal(this.sorting()?.sortState || []);
|
|
2128
2444
|
/** Reference to table rows for infinite scroll observer */
|
|
2129
2445
|
this.tableRows = viewChild('tableRow');
|
|
2130
2446
|
/** Intersection observer for infinite scroll */
|
|
@@ -2153,7 +2469,7 @@ class NvDatatable {
|
|
|
2153
2469
|
// Default: just return the value (formatted if valueFormatter was used)
|
|
2154
2470
|
return context.getValue();
|
|
2155
2471
|
};
|
|
2156
|
-
|
|
2472
|
+
const columnDef = {
|
|
2157
2473
|
accessorKey: col.field,
|
|
2158
2474
|
accessorFn: col.valueFormatter
|
|
2159
2475
|
? (row) => {
|
|
@@ -2168,27 +2484,82 @@ class NvDatatable {
|
|
|
2168
2484
|
header: col.headerName || String(col.field),
|
|
2169
2485
|
size: col.width,
|
|
2170
2486
|
enableResizing: col.resizable ?? true,
|
|
2487
|
+
// Sorting configuration
|
|
2488
|
+
enableSorting: this.sorting() ? col.sortable ?? true : false,
|
|
2171
2489
|
cell: cellRenderer,
|
|
2172
2490
|
};
|
|
2491
|
+
// Add optional sorting properties only if defined
|
|
2492
|
+
if (col.sortingFn !== undefined) {
|
|
2493
|
+
// @ts-expect-error - TanStack typing is strict but this works at runtime
|
|
2494
|
+
columnDef.sortingFn = col.sortingFn;
|
|
2495
|
+
}
|
|
2496
|
+
if (col.sortDescFirst !== undefined) {
|
|
2497
|
+
columnDef.sortDescFirst = col.sortDescFirst;
|
|
2498
|
+
}
|
|
2499
|
+
if (col.invertSorting !== undefined) {
|
|
2500
|
+
columnDef.invertSorting = col.invertSorting;
|
|
2501
|
+
}
|
|
2502
|
+
if (col.sortUndefined !== undefined) {
|
|
2503
|
+
columnDef.sortUndefined = col.sortUndefined;
|
|
2504
|
+
}
|
|
2505
|
+
return columnDef;
|
|
2173
2506
|
});
|
|
2174
2507
|
});
|
|
2175
2508
|
/** TanStack table instance with Signals */
|
|
2176
2509
|
this.tableInstance = createAngularTable(() => {
|
|
2177
2510
|
const paginationConfig = this.pagination();
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2511
|
+
const sortingConfig = this.sorting();
|
|
2512
|
+
// Determine base table configuration with sorting
|
|
2513
|
+
const getBaseTableConfig = () => {
|
|
2514
|
+
const baseConfig = {
|
|
2181
2515
|
data: this.rows(),
|
|
2182
2516
|
columns: this.tableColumns(),
|
|
2183
2517
|
getCoreRowModel: getCoreRowModel(),
|
|
2518
|
+
// Sorting configuration
|
|
2519
|
+
...(sortingConfig && {
|
|
2520
|
+
state: {
|
|
2521
|
+
sorting: sortingConfig.mode === 'server' && sortingConfig.sortState
|
|
2522
|
+
? sortingConfig.sortState
|
|
2523
|
+
: this.sortingState(),
|
|
2524
|
+
},
|
|
2525
|
+
onSortingChange: (updaterOrValue) => {
|
|
2526
|
+
const currentSort = sortingConfig.mode === 'server' && sortingConfig.sortState
|
|
2527
|
+
? sortingConfig.sortState
|
|
2528
|
+
: this.sortingState();
|
|
2529
|
+
const newSort = typeof updaterOrValue === 'function'
|
|
2530
|
+
? updaterOrValue(currentSort)
|
|
2531
|
+
: updaterOrValue;
|
|
2532
|
+
// Always update internal state for reactivity
|
|
2533
|
+
this.sortingState.set(newSort);
|
|
2534
|
+
// For server-side sorting, also call the callback
|
|
2535
|
+
if (sortingConfig?.mode === 'server' &&
|
|
2536
|
+
sortingConfig.onSortingChange) {
|
|
2537
|
+
sortingConfig.onSortingChange(newSort);
|
|
2538
|
+
}
|
|
2539
|
+
},
|
|
2540
|
+
manualSorting: sortingConfig.mode === 'server',
|
|
2541
|
+
enableSorting: true,
|
|
2542
|
+
enableMultiSort: sortingConfig.enableMultiSort ?? false,
|
|
2543
|
+
enableSortingRemoval: sortingConfig.enableSortingRemoval ?? true,
|
|
2544
|
+
maxMultiSortColCount: sortingConfig.maxMultiSortColCount,
|
|
2545
|
+
sortDescFirst: sortingConfig.sortDescFirst ?? false,
|
|
2546
|
+
// When multi-sort is enabled, treat all clicks as multi-sort events
|
|
2547
|
+
isMultiSortEvent: sortingConfig.enableMultiSort
|
|
2548
|
+
? () => true
|
|
2549
|
+
: undefined,
|
|
2550
|
+
getSortedRowModel: sortingConfig.mode === 'client' ? getSortedRowModel() : undefined,
|
|
2551
|
+
}),
|
|
2184
2552
|
};
|
|
2553
|
+
return baseConfig;
|
|
2554
|
+
};
|
|
2555
|
+
if (!paginationConfig || paginationConfig.mode === 'infinite') {
|
|
2556
|
+
// No pagination or infinite scroll - simple config
|
|
2557
|
+
return getBaseTableConfig();
|
|
2185
2558
|
}
|
|
2186
2559
|
else if (paginationConfig.mode === 'client') {
|
|
2187
2560
|
// Client-side pagination
|
|
2188
2561
|
return {
|
|
2189
|
-
|
|
2190
|
-
columns: this.tableColumns(),
|
|
2191
|
-
getCoreRowModel: getCoreRowModel(),
|
|
2562
|
+
...getBaseTableConfig(),
|
|
2192
2563
|
getPaginationRowModel: getPaginationRowModel(),
|
|
2193
2564
|
initialState: {
|
|
2194
2565
|
pagination: {
|
|
@@ -2199,12 +2570,11 @@ class NvDatatable {
|
|
|
2199
2570
|
};
|
|
2200
2571
|
}
|
|
2201
2572
|
else {
|
|
2202
|
-
// Server-side pagination
|
|
2573
|
+
// Server-side pagination - manual pagination with reactive state
|
|
2574
|
+
const baseConfig = getBaseTableConfig();
|
|
2203
2575
|
const pageSize = this.paginationState().pageSize;
|
|
2204
2576
|
return {
|
|
2205
|
-
|
|
2206
|
-
columns: this.tableColumns(),
|
|
2207
|
-
getCoreRowModel: getCoreRowModel(),
|
|
2577
|
+
...baseConfig,
|
|
2208
2578
|
manualPagination: true,
|
|
2209
2579
|
pageCount: paginationConfig.totalPageCount !== undefined
|
|
2210
2580
|
? paginationConfig.totalPageCount
|
|
@@ -2213,13 +2583,19 @@ class NvDatatable {
|
|
|
2213
2583
|
: -1,
|
|
2214
2584
|
state: {
|
|
2215
2585
|
pagination: this.paginationState(),
|
|
2586
|
+
...(baseConfig.state && { sorting: baseConfig.state.sorting }),
|
|
2216
2587
|
},
|
|
2217
2588
|
onPaginationChange: (updaterOrValue) => {
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2589
|
+
const newState = typeof updaterOrValue === 'function'
|
|
2590
|
+
? updaterOrValue(this.paginationState())
|
|
2591
|
+
: updaterOrValue;
|
|
2592
|
+
this.paginationState.set(newState);
|
|
2593
|
+
// Call user's callback for server-side pagination
|
|
2594
|
+
if (paginationConfig.onPaginationChange) {
|
|
2595
|
+
paginationConfig.onPaginationChange({
|
|
2596
|
+
pageIndex: newState.pageIndex,
|
|
2597
|
+
pageSize: newState.pageSize,
|
|
2598
|
+
});
|
|
2223
2599
|
}
|
|
2224
2600
|
},
|
|
2225
2601
|
};
|
|
@@ -2258,18 +2634,6 @@ class NvDatatable {
|
|
|
2258
2634
|
: undefined,
|
|
2259
2635
|
};
|
|
2260
2636
|
});
|
|
2261
|
-
// Watch pagination state changes for server mode
|
|
2262
|
-
effect(() => {
|
|
2263
|
-
const paginationConfig = this.pagination();
|
|
2264
|
-
const state = this.paginationState();
|
|
2265
|
-
if (paginationConfig?.mode === 'server' &&
|
|
2266
|
-
paginationConfig.onPaginationChange) {
|
|
2267
|
-
paginationConfig.onPaginationChange({
|
|
2268
|
-
pageIndex: state.pageIndex,
|
|
2269
|
-
pageSize: state.pageSize,
|
|
2270
|
-
});
|
|
2271
|
-
}
|
|
2272
|
-
}, { allowSignalWrites: true });
|
|
2273
2637
|
// Set up intersection observer for infinite scroll
|
|
2274
2638
|
effect(() => {
|
|
2275
2639
|
const paginationConfig = this.pagination();
|
|
@@ -2328,7 +2692,7 @@ class NvDatatable {
|
|
|
2328
2692
|
}
|
|
2329
2693
|
}
|
|
2330
2694
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvDatatable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2331
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: NvDatatable, isStandalone: true, selector: "nv-datatable", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "paginationTemplate", first: true, predicate: ["paginationTemplate"], descendants: true, read: TemplateRef }, { propertyName: "cellTemplates", predicate: NvDatatableCellDirective }], viewQueries: [{ propertyName: "tableRows", first: true, predicate: ["tableRow"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
2695
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: NvDatatable, isStandalone: true, selector: "nv-datatable", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null }, sorting: { classPropertyName: "sorting", publicName: "sorting", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "paginationTemplate", first: true, predicate: ["paginationTemplate"], descendants: true, read: TemplateRef }, { propertyName: "cellTemplates", predicate: NvDatatableCellDirective }], viewQueries: [{ propertyName: "tableRows", first: true, predicate: ["tableRow"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
2332
2696
|
<nv-table>
|
|
2333
2697
|
<table>
|
|
2334
2698
|
<thead [attr.data-sticky-top]="stickyHeader() ? 'true' : null">
|
|
@@ -2347,9 +2711,19 @@ class NvDatatable {
|
|
|
2347
2711
|
!header.column.columnDef.enableResizing ? 'true' : null
|
|
2348
2712
|
"
|
|
2349
2713
|
>
|
|
2350
|
-
@if (!header.isPlaceholder) {
|
|
2714
|
+
@if (!header.isPlaceholder) { @if (header.column.getCanSort()) {
|
|
2715
|
+
<nv-tableheader
|
|
2716
|
+
[sortable]="true"
|
|
2717
|
+
[sortDirection]="header.column.getIsSorted() || 'none'"
|
|
2718
|
+
(sortDirectionChanged)="
|
|
2719
|
+
handleSortDirectionChanged($event, header)
|
|
2720
|
+
"
|
|
2721
|
+
>
|
|
2722
|
+
{{ header.column.columnDef.header }}
|
|
2723
|
+
</nv-tableheader>
|
|
2724
|
+
} @else {
|
|
2351
2725
|
{{ header.column.columnDef.header }}
|
|
2352
|
-
}
|
|
2726
|
+
} }
|
|
2353
2727
|
</th>
|
|
2354
2728
|
}
|
|
2355
2729
|
</tr>
|
|
@@ -2360,7 +2734,7 @@ class NvDatatable {
|
|
|
2360
2734
|
@for (row of table().getRowModel().rows; track row.id; let i = $index)
|
|
2361
2735
|
{
|
|
2362
2736
|
<tr
|
|
2363
|
-
[attr.data-testid]="'datatable-row-' +
|
|
2737
|
+
[attr.data-testid]="'datatable-row-' + i"
|
|
2364
2738
|
#tableRow
|
|
2365
2739
|
[attr.data-is-last]="
|
|
2366
2740
|
isInfiniteScroll() && i === table().getRowModel().rows.length - 1
|
|
@@ -2369,7 +2743,7 @@ class NvDatatable {
|
|
|
2369
2743
|
"
|
|
2370
2744
|
>
|
|
2371
2745
|
@for (cell of row.getVisibleCells(); track cell.id) {
|
|
2372
|
-
<td [attr.data-testid]="'datatable-cell-' + cell.id">
|
|
2746
|
+
<td [attr.data-testid]="'datatable-cell-' + cell.column.id">
|
|
2373
2747
|
<ng-container
|
|
2374
2748
|
*flexRender="
|
|
2375
2749
|
cell.column.columnDef.cell;
|
|
@@ -2424,9 +2798,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
2424
2798
|
!header.column.columnDef.enableResizing ? 'true' : null
|
|
2425
2799
|
"
|
|
2426
2800
|
>
|
|
2427
|
-
@if (!header.isPlaceholder) {
|
|
2801
|
+
@if (!header.isPlaceholder) { @if (header.column.getCanSort()) {
|
|
2802
|
+
<nv-tableheader
|
|
2803
|
+
[sortable]="true"
|
|
2804
|
+
[sortDirection]="header.column.getIsSorted() || 'none'"
|
|
2805
|
+
(sortDirectionChanged)="
|
|
2806
|
+
handleSortDirectionChanged($event, header)
|
|
2807
|
+
"
|
|
2808
|
+
>
|
|
2809
|
+
{{ header.column.columnDef.header }}
|
|
2810
|
+
</nv-tableheader>
|
|
2811
|
+
} @else {
|
|
2428
2812
|
{{ header.column.columnDef.header }}
|
|
2429
|
-
}
|
|
2813
|
+
} }
|
|
2430
2814
|
</th>
|
|
2431
2815
|
}
|
|
2432
2816
|
</tr>
|
|
@@ -2437,7 +2821,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
2437
2821
|
@for (row of table().getRowModel().rows; track row.id; let i = $index)
|
|
2438
2822
|
{
|
|
2439
2823
|
<tr
|
|
2440
|
-
[attr.data-testid]="'datatable-row-' +
|
|
2824
|
+
[attr.data-testid]="'datatable-row-' + i"
|
|
2441
2825
|
#tableRow
|
|
2442
2826
|
[attr.data-is-last]="
|
|
2443
2827
|
isInfiniteScroll() && i === table().getRowModel().rows.length - 1
|
|
@@ -2446,7 +2830,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
2446
2830
|
"
|
|
2447
2831
|
>
|
|
2448
2832
|
@for (cell of row.getVisibleCells(); track cell.id) {
|
|
2449
|
-
<td [attr.data-testid]="'datatable-cell-' + cell.id">
|
|
2833
|
+
<td [attr.data-testid]="'datatable-cell-' + cell.column.id">
|
|
2450
2834
|
<ng-container
|
|
2451
2835
|
*flexRender="
|
|
2452
2836
|
cell.column.columnDef.cell;
|
|
@@ -3247,6 +3631,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
3247
3631
|
type: HostListener,
|
|
3248
3632
|
args: ['openChanged', ['$event']]
|
|
3249
3633
|
}] } });
|
|
3634
|
+
class NvSidebarValueAccessor extends ValueAccessor {
|
|
3635
|
+
constructor(el) {
|
|
3636
|
+
super(el);
|
|
3637
|
+
}
|
|
3638
|
+
handleOpenChanged(event) {
|
|
3639
|
+
this.handleChangeEvent(event.target.open);
|
|
3640
|
+
}
|
|
3641
|
+
writeValue(value) {
|
|
3642
|
+
this.el.nativeElement.open = this.lastValue = value;
|
|
3643
|
+
}
|
|
3644
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3645
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: NvSidebarValueAccessor, isStandalone: true, selector: "nv-sidebar", host: { listeners: { "openChanged": "handleOpenChanged($event)" } }, providers: [
|
|
3646
|
+
{
|
|
3647
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3648
|
+
useExisting: NvSidebarValueAccessor,
|
|
3649
|
+
multi: true,
|
|
3650
|
+
},
|
|
3651
|
+
], usesInheritance: true, ngImport: i0 }); }
|
|
3652
|
+
}
|
|
3653
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NvSidebarValueAccessor, decorators: [{
|
|
3654
|
+
type: Directive,
|
|
3655
|
+
args: [{
|
|
3656
|
+
selector: 'nv-sidebar',
|
|
3657
|
+
providers: [
|
|
3658
|
+
{
|
|
3659
|
+
provide: NG_VALUE_ACCESSOR,
|
|
3660
|
+
useExisting: NvSidebarValueAccessor,
|
|
3661
|
+
multi: true,
|
|
3662
|
+
},
|
|
3663
|
+
],
|
|
3664
|
+
}]
|
|
3665
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handleOpenChanged: [{
|
|
3666
|
+
type: HostListener,
|
|
3667
|
+
args: ['openChanged', ['$event']]
|
|
3668
|
+
}] } });
|
|
3250
3669
|
class NvSplitValueAccessor extends ValueAccessor {
|
|
3251
3670
|
constructor(el) {
|
|
3252
3671
|
super(el);
|
|
@@ -3373,6 +3792,7 @@ const VALUE_ACCESSORS = [
|
|
|
3373
3792
|
NvFieldtimeValueAccessor,
|
|
3374
3793
|
NvNotificationValueAccessor,
|
|
3375
3794
|
NvPopoverValueAccessor,
|
|
3795
|
+
NvSidebarValueAccessor,
|
|
3376
3796
|
NvSplitValueAccessor,
|
|
3377
3797
|
NvToggleValueAccessor,
|
|
3378
3798
|
NvTogglebuttongroupValueAccessor,
|
|
@@ -3380,7 +3800,7 @@ const VALUE_ACCESSORS = [
|
|
|
3380
3800
|
|
|
3381
3801
|
class NovaComponentsModule {
|
|
3382
3802
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3383
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, declarations: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationcontainer, NvPopover, NvRow, NvSplit, NvStack, NvTable, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip], imports: [NvDatatable], exports: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationcontainer, NvPopover, NvRow, NvSplit, NvStack, NvTable, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip, NvDatatable] }); }
|
|
3803
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, declarations: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationcontainer, NvPopover, NvRow, NvSidebar, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvStack, NvTable, NvTableheader, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip], imports: [NvDatatable], exports: [NvAccordion, NvAccordionItem, NvAlert, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCol, NvDatagrid, NvDatagridcolumn, NvDialog, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFielddate, NvFielddaterange, NvFielddropdown, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldnumber, NvFieldpassword, NvFieldradio, NvFieldselect, NvFieldslider, NvFieldtext, NvFieldtextarea, NvFieldtime, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationcontainer, NvPopover, NvRow, NvSidebar, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvStack, NvTable, NvTableheader, NvToggle, NvTogglebutton, NvTogglebuttongroup, NvTooltip, NvDatatable] }); }
|
|
3384
3804
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, imports: [NvDatatable] }); }
|
|
3385
3805
|
}
|
|
3386
3806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsModule, decorators: [{
|
|
@@ -3393,7 +3813,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
3393
3813
|
}] });
|
|
3394
3814
|
class NovaComponentsValueAccessorModule {
|
|
3395
3815
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3396
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, imports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor], exports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor] }); }
|
|
3816
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, imports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvSidebarValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor], exports: [NvAccordionValueAccessor, NvAlertValueAccessor, NvCalendarValueAccessor, NvDatagridValueAccessor, NvDialogValueAccessor, NvFieldcheckboxValueAccessor, NvFielddateValueAccessor, NvFielddaterangeValueAccessor, NvFielddropdownValueAccessor, NvFieldmultiselectValueAccessor, NvFieldnumberValueAccessor, NvFieldpasswordValueAccessor, NvFieldradioValueAccessor, NvFieldselectValueAccessor, NvFieldsliderValueAccessor, NvFieldtextValueAccessor, NvFieldtextareaValueAccessor, NvFieldtimeValueAccessor, NvNotificationValueAccessor, NvPopoverValueAccessor, NvSidebarValueAccessor, NvSplitValueAccessor, NvToggleValueAccessor, NvTogglebuttongroupValueAccessor] }); }
|
|
3397
3817
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule }); }
|
|
3398
3818
|
}
|
|
3399
3819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NovaComponentsValueAccessorModule, decorators: [{
|
|
@@ -3428,6 +3848,7 @@ class NotificationService {
|
|
|
3428
3848
|
}
|
|
3429
3849
|
constructor() {
|
|
3430
3850
|
this._notifications = new BehaviorSubject([]);
|
|
3851
|
+
this.timers = new Map();
|
|
3431
3852
|
/**
|
|
3432
3853
|
* Observable stream of active notifications.
|
|
3433
3854
|
*/
|
|
@@ -3465,6 +3886,14 @@ class NotificationService {
|
|
|
3465
3886
|
clearRefs() {
|
|
3466
3887
|
this.elRefs.clear();
|
|
3467
3888
|
}
|
|
3889
|
+
/**
|
|
3890
|
+
* Clean up all timers and references.
|
|
3891
|
+
*/
|
|
3892
|
+
ngOnDestroy() {
|
|
3893
|
+
this.timers.forEach((timer) => clearTimeout(timer));
|
|
3894
|
+
this.timers.clear();
|
|
3895
|
+
this.clearRefs();
|
|
3896
|
+
}
|
|
3468
3897
|
/**
|
|
3469
3898
|
* Show a new notification.
|
|
3470
3899
|
*
|
|
@@ -3483,6 +3912,7 @@ class NotificationService {
|
|
|
3483
3912
|
icon: options.icon,
|
|
3484
3913
|
actions: options.actions ?? [],
|
|
3485
3914
|
actionSlot: options.actionSlot,
|
|
3915
|
+
duration: options.duration ?? 0,
|
|
3486
3916
|
createdAt: Date.now(),
|
|
3487
3917
|
};
|
|
3488
3918
|
const currentNotifications = this._notifications.value;
|
|
@@ -3497,6 +3927,13 @@ class NotificationService {
|
|
|
3497
3927
|
setTimeout(() => {
|
|
3498
3928
|
const ref = this.elRefs.get(id);
|
|
3499
3929
|
ref?.show();
|
|
3930
|
+
// Set up auto-dismiss timer if duration > 0
|
|
3931
|
+
if (notification.duration && notification.duration > 0) {
|
|
3932
|
+
const timer = setTimeout(() => {
|
|
3933
|
+
this.dismiss(id);
|
|
3934
|
+
}, notification.duration);
|
|
3935
|
+
this.timers.set(id, timer);
|
|
3936
|
+
}
|
|
3500
3937
|
}, 0);
|
|
3501
3938
|
return id;
|
|
3502
3939
|
}
|
|
@@ -3507,6 +3944,12 @@ class NotificationService {
|
|
|
3507
3944
|
* @param {string} id The notification ID to dismiss
|
|
3508
3945
|
*/
|
|
3509
3946
|
dismiss(id) {
|
|
3947
|
+
// Clear timer if exists
|
|
3948
|
+
const timer = this.timers.get(id);
|
|
3949
|
+
if (timer) {
|
|
3950
|
+
clearTimeout(timer);
|
|
3951
|
+
this.timers.delete(id);
|
|
3952
|
+
}
|
|
3510
3953
|
this.elRefs.get(id)?.dismiss?.();
|
|
3511
3954
|
}
|
|
3512
3955
|
/**
|
|
@@ -3515,6 +3958,12 @@ class NotificationService {
|
|
|
3515
3958
|
* @param {string} id The notification ID to dismiss
|
|
3516
3959
|
*/
|
|
3517
3960
|
remove(id) {
|
|
3961
|
+
// Clear timer if exists
|
|
3962
|
+
const timer = this.timers.get(id);
|
|
3963
|
+
if (timer) {
|
|
3964
|
+
clearTimeout(timer);
|
|
3965
|
+
this.timers.delete(id);
|
|
3966
|
+
}
|
|
3518
3967
|
const currentNotifications = this._notifications.value;
|
|
3519
3968
|
const filteredNotifications = currentNotifications.filter((notification) => notification.id !== id);
|
|
3520
3969
|
this._notifications.next(filteredNotifications);
|
|
@@ -3523,6 +3972,9 @@ class NotificationService {
|
|
|
3523
3972
|
* Immediately remove all active notifications.
|
|
3524
3973
|
*/
|
|
3525
3974
|
removeAll() {
|
|
3975
|
+
// Clear all timers
|
|
3976
|
+
this.timers.forEach((timer) => clearTimeout(timer));
|
|
3977
|
+
this.timers.clear();
|
|
3526
3978
|
this._notifications.next([]);
|
|
3527
3979
|
}
|
|
3528
3980
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -3721,5 +4173,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
3721
4173
|
* Generated bundle index. Do not edit.
|
|
3722
4174
|
*/
|
|
3723
4175
|
|
|
3724
|
-
export { NotificationService, NotificationServiceComponent, NovaComponentsModule, NovaComponentsValueAccessorModule, NvAccordion, NvAccordionItem, NvAccordionValueAccessor, NvAlert, NvAlertValueAccessor, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCalendarValueAccessor, NvCol, NvDatagrid, NvDatagridValueAccessor, NvDatagridcolumn, NvDatatable, NvDatatableCellDirective, NvDialog, NvDialogValueAccessor, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFieldcheckboxValueAccessor, NvFielddate, NvFielddateValueAccessor, NvFielddaterange, NvFielddaterangeValueAccessor, NvFielddropdown, NvFielddropdownValueAccessor, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldmultiselectValueAccessor, NvFieldnumber, NvFieldnumberValueAccessor, NvFieldpassword, NvFieldpasswordValueAccessor, NvFieldradio, NvFieldradioValueAccessor, NvFieldselect, NvFieldselectValueAccessor, NvFieldslider, NvFieldsliderValueAccessor, NvFieldtext, NvFieldtextValueAccessor, NvFieldtextarea, NvFieldtextareaValueAccessor, NvFieldtime, NvFieldtimeValueAccessor, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationValueAccessor, NvNotificationcontainer, NvPopover, NvPopoverValueAccessor, NvRow, NvSplit, NvSplitValueAccessor, NvStack, NvTable, NvToggle, NvToggleValueAccessor, NvTogglebutton, NvTogglebuttongroup, NvTogglebuttongroupValueAccessor, NvTooltip, VALUE_ACCESSORS, makeColumn, flexRenderComponent as nvDatatableRenderComponent };
|
|
4176
|
+
export { NotificationService, NotificationServiceComponent, NovaComponentsModule, NovaComponentsValueAccessorModule, NvAccordion, NvAccordionItem, NvAccordionValueAccessor, NvAlert, NvAlertValueAccessor, NvAvatar, NvBadge, NvBreadcrumb, NvBreadcrumbs, NvButton, NvButtongroup, NvCalendar, NvCalendarValueAccessor, NvCol, NvDatagrid, NvDatagridValueAccessor, NvDatagridcolumn, NvDatatable, NvDatatableCellDirective, NvDialog, NvDialogValueAccessor, NvDialogfooter, NvDialogheader, NvFieldcheckbox, NvFieldcheckboxValueAccessor, NvFielddate, NvFielddateValueAccessor, NvFielddaterange, NvFielddaterangeValueAccessor, NvFielddropdown, NvFielddropdownValueAccessor, NvFielddropdownitem, NvFielddropdownitemcheck, NvFieldmultiselect, NvFieldmultiselectValueAccessor, NvFieldnumber, NvFieldnumberValueAccessor, NvFieldpassword, NvFieldpasswordValueAccessor, NvFieldradio, NvFieldradioValueAccessor, NvFieldselect, NvFieldselectValueAccessor, NvFieldslider, NvFieldsliderValueAccessor, NvFieldtext, NvFieldtextValueAccessor, NvFieldtextarea, NvFieldtextareaValueAccessor, NvFieldtime, NvFieldtimeValueAccessor, NvIcon, NvIconbutton, NvLoader, NvMenu, NvMenuitem, NvNotification, NvNotificationBullet, NvNotificationValueAccessor, NvNotificationcontainer, NvPopover, NvPopoverValueAccessor, NvRow, NvSidebar, NvSidebarValueAccessor, NvSidebarcontent, NvSidebardivider, NvSidebarfooter, NvSidebargroup, NvSidebarheader, NvSidebarlogo, NvSidebarnavitem, NvSidebarnavsubitem, NvSplit, NvSplitValueAccessor, NvStack, NvTable, NvTableheader, NvToggle, NvToggleValueAccessor, NvTogglebutton, NvTogglebuttongroup, NvTogglebuttongroupValueAccessor, NvTooltip, VALUE_ACCESSORS, makeColumn, flexRenderComponent as nvDatatableRenderComponent };
|
|
3725
4177
|
//# sourceMappingURL=nova-components.mjs.map
|