@gloww/gloww 20.0.0-beta.3 → 20.0.0-beta.31
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/gloww-gloww.mjs +395 -183
- package/fesm2022/gloww-gloww.mjs.map +1 -1
- package/gloww.theme.scss +190 -0
- package/index.d.ts +107 -62
- package/package.json +27 -11
package/fesm2022/gloww-gloww.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, HostListener, Input, Directive, Pipe, Inject, Component, EventEmitter, Output, HostBinding, ViewChild, ContentChildren,
|
|
3
|
-
import { Subject, firstValueFrom, BehaviorSubject,
|
|
2
|
+
import { InjectionToken, Injectable, HostListener, Input, Directive, Pipe, Inject, Component, EventEmitter, Output, HostBinding, ViewChild, ContentChildren, Optional, PLATFORM_ID, ContentChild, ViewEncapsulation, makeEnvironmentProviders, NgModule, SecurityContext, forwardRef } from '@angular/core';
|
|
3
|
+
import { Subject, firstValueFrom, BehaviorSubject, of, Subscription, combineLatest, forkJoin, throwError } from 'rxjs';
|
|
4
4
|
import * as i1 from '@angular/common/http';
|
|
5
5
|
import { HttpClient, HttpParams, HttpEventType, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, HttpResponse } from '@angular/common/http';
|
|
6
6
|
import * as i3 from '@angular/common';
|
|
@@ -12,12 +12,11 @@ import * as i2 from '@angular/router';
|
|
|
12
12
|
import { NavigationEnd, RouterLink, RouterModule } from '@angular/router';
|
|
13
13
|
import { MatButton, MatButtonModule } from '@angular/material/button';
|
|
14
14
|
import * as i1$1 from '@angular/platform-browser';
|
|
15
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
16
15
|
import * as i5 from '@kolkov/angular-editor';
|
|
17
16
|
import { AngularEditorModule } from '@kolkov/angular-editor';
|
|
18
17
|
import { switchMap, map, tap, filter, catchError, take, mergeMap, retryWhen, scan, delay, first, distinctUntilChanged, debounceTime } from 'rxjs/operators';
|
|
19
18
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
20
|
-
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
|
|
19
|
+
import { MatPaginator, MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
|
|
21
20
|
import { MatColumnDef, MatTableDataSource, MatTable, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatTableModule } from '@angular/material/table';
|
|
22
21
|
import { MatProgressSpinner, MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
23
22
|
import { MatCard, MatCardContent, MatCardActions, MatCardHeader, MatCardTitle, MatCardModule } from '@angular/material/card';
|
|
@@ -26,27 +25,27 @@ import { MatError, MatFormField, MatInput, MatLabel, MatInputModule, MatSuffix }
|
|
|
26
25
|
import * as i4 from '@ctrl/ngx-codemirror';
|
|
27
26
|
import { CodemirrorModule, CodemirrorComponent } from '@ctrl/ngx-codemirror';
|
|
28
27
|
import * as i1$3 from '@angular/forms';
|
|
29
|
-
import { NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
28
|
+
import { NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, ReactiveFormsModule, Validators, FormControl } from '@angular/forms';
|
|
30
29
|
import { MatProgressBar, MatProgressBarModule } from '@angular/material/progress-bar';
|
|
31
30
|
import { MatDatepickerInput, MatDatepickerToggle, MatDatepicker, MatDatepickerModule } from '@angular/material/datepicker';
|
|
32
|
-
import * as i2$1 from 'ngx-mat-datetime-picker-v2';
|
|
33
31
|
import { NgxMatDatetimePickerModule, NgxMatTimepickerComponent, NgxMatNativeDateModule } from 'ngx-mat-datetime-picker-v2';
|
|
32
|
+
import moment from 'moment';
|
|
33
|
+
import * as i1$4 from '@ngx-translate/core';
|
|
34
|
+
import { TranslateDefaultParser } from '@ngx-translate/core';
|
|
34
35
|
import { MatSelect, MatOption, MatSelectModule } from '@angular/material/select';
|
|
35
36
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import
|
|
39
|
-
import
|
|
37
|
+
import { MatListItem, MatListItemIcon, MatListItemTitle } from '@angular/material/list';
|
|
38
|
+
import * as prettier from 'prettier/standalone';
|
|
39
|
+
import * as parserTypescript from 'prettier/plugins/typescript';
|
|
40
|
+
import * as parserBabel from 'prettier/plugins/babel';
|
|
40
41
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
41
42
|
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
42
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
43
|
+
import { MatFormFieldModule, MatFormField as MatFormField$1, MatLabel as MatLabel$1 } from '@angular/material/form-field';
|
|
43
44
|
import { jwtDecode } from 'jwt-decode';
|
|
44
45
|
import { CdkDrag, CdkDragHandle, DragDropModule } from '@angular/cdk/drag-drop';
|
|
45
46
|
import FileSaver from 'file-saver';
|
|
46
47
|
import JSZip from 'jszip';
|
|
47
|
-
import { TranslateDefaultParser } from '@ngx-translate/core';
|
|
48
48
|
import { MatAutocompleteTrigger, MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
49
|
-
import moment from 'moment';
|
|
50
49
|
import { MAT_DATE_LOCALE } from '@angular/material/core';
|
|
51
50
|
import { AngularResizeEventModule } from 'angular-resize-event';
|
|
52
51
|
|
|
@@ -223,7 +222,10 @@ class RouteDirective {
|
|
|
223
222
|
}
|
|
224
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: RouteDirective, decorators: [{
|
|
225
224
|
type: Directive,
|
|
226
|
-
args: [{
|
|
225
|
+
args: [{
|
|
226
|
+
selector: '[glowwRoute]',
|
|
227
|
+
standalone: true
|
|
228
|
+
}]
|
|
227
229
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.Router }], propDecorators: { dlg: [{
|
|
228
230
|
type: Input
|
|
229
231
|
}], onClick: [{
|
|
@@ -245,7 +247,10 @@ class SafeHtmlPipe {
|
|
|
245
247
|
}
|
|
246
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
247
249
|
type: Pipe,
|
|
248
|
-
args: [{
|
|
250
|
+
args: [{
|
|
251
|
+
name: 'safeHtml',
|
|
252
|
+
standalone: true
|
|
253
|
+
}]
|
|
249
254
|
}], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
|
|
250
255
|
|
|
251
256
|
class ConfirmationComponent {
|
|
@@ -455,7 +460,10 @@ class FileSinkDirective {
|
|
|
455
460
|
}
|
|
456
461
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FileSinkDirective, decorators: [{
|
|
457
462
|
type: Directive,
|
|
458
|
-
args: [{
|
|
463
|
+
args: [{
|
|
464
|
+
selector: '[glowwFileSink]',
|
|
465
|
+
standalone: true
|
|
466
|
+
}]
|
|
459
467
|
}], propDecorators: { fileOver: [{
|
|
460
468
|
type: HostBinding,
|
|
461
469
|
args: ['class.fileover']
|
|
@@ -739,8 +747,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
739
747
|
args: [MatColumnDef]
|
|
740
748
|
}] } });
|
|
741
749
|
|
|
750
|
+
class GlowwI18nService {
|
|
751
|
+
constructor(translate) {
|
|
752
|
+
this.translate = translate;
|
|
753
|
+
}
|
|
754
|
+
get langChanges$() {
|
|
755
|
+
return this.translate?.onLangChange ?? of(null);
|
|
756
|
+
}
|
|
757
|
+
instant(key, fallback) {
|
|
758
|
+
if (!this.translate) {
|
|
759
|
+
return fallback;
|
|
760
|
+
}
|
|
761
|
+
const translated = this.translate.instant(key);
|
|
762
|
+
return translated && translated !== key ? translated : fallback;
|
|
763
|
+
}
|
|
764
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwI18nService, deps: [{ token: i1$4.TranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
765
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwI18nService, providedIn: 'root' }); }
|
|
766
|
+
}
|
|
767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwI18nService, decorators: [{
|
|
768
|
+
type: Injectable,
|
|
769
|
+
args: [{ providedIn: 'root' }]
|
|
770
|
+
}], ctorParameters: () => [{ type: i1$4.TranslateService, decorators: [{
|
|
771
|
+
type: Optional
|
|
772
|
+
}] }] });
|
|
773
|
+
|
|
742
774
|
class FilterFormComponent {
|
|
743
|
-
constructor() {
|
|
775
|
+
constructor(i18n) {
|
|
776
|
+
this.i18n = i18n;
|
|
744
777
|
this.filter = new EventEmitter();
|
|
745
778
|
}
|
|
746
779
|
ngOnInit() {
|
|
@@ -748,13 +781,16 @@ class FilterFormComponent {
|
|
|
748
781
|
onFilter() {
|
|
749
782
|
this.filter.emit("xxx");
|
|
750
783
|
}
|
|
751
|
-
|
|
752
|
-
|
|
784
|
+
get filterLabel() {
|
|
785
|
+
return this.i18n.instant('COMMON.FILTER', 'Filter');
|
|
786
|
+
}
|
|
787
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FilterFormComponent, deps: [{ token: GlowwI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
788
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.18", type: FilterFormComponent, isStandalone: true, selector: "glw-filter-form", outputs: { filter: "filter" }, ngImport: i0, template: "<mat-card appearance=\"outlined\">\r\n <mat-card-content>\r\n <ng-content></ng-content>\r\n </mat-card-content>\r\n <mat-card-actions align=\"end\">\n <button mat-stroked-button color=\"accent\" (click)=\"onFilter()\">\n <mat-icon>search</mat-icon>\n {{ filterLabel }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: [""], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: 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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
753
789
|
}
|
|
754
790
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: FilterFormComponent, decorators: [{
|
|
755
791
|
type: Component,
|
|
756
|
-
args: [{ selector: 'glw-filter-form', imports: [MatCard, MatCardContent, MatCardActions, MatButton, MatIcon], template: "<mat-card appearance=\"outlined\">\r\n <mat-card-content>\r\n <ng-content></ng-content>\r\n </mat-card-content>\r\n <mat-card-actions align=\"end\">\
|
|
757
|
-
}], ctorParameters: () => [], propDecorators: { filter: [{
|
|
792
|
+
args: [{ selector: 'glw-filter-form', imports: [MatCard, MatCardContent, MatCardActions, MatButton, MatIcon], template: "<mat-card appearance=\"outlined\">\r\n <mat-card-content>\r\n <ng-content></ng-content>\r\n </mat-card-content>\r\n <mat-card-actions align=\"end\">\n <button mat-stroked-button color=\"accent\" (click)=\"onFilter()\">\n <mat-icon>search</mat-icon>\n {{ filterLabel }}\n </button>\n </mat-card-actions>\n</mat-card>\n" }]
|
|
793
|
+
}], ctorParameters: () => [{ type: GlowwI18nService }], propDecorators: { filter: [{
|
|
758
794
|
type: Output
|
|
759
795
|
}] } });
|
|
760
796
|
|
|
@@ -985,7 +1021,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
985
1021
|
|
|
986
1022
|
;
|
|
987
1023
|
class DisplayObjectsComponent {
|
|
988
|
-
constructor(glowwService, changeDetectorRef, dialog, router, location, authenticationService, formBuilder, route) {
|
|
1024
|
+
constructor(glowwService, changeDetectorRef, dialog, router, location, authenticationService, formBuilder, route, i18n) {
|
|
989
1025
|
this.changeDetectorRef = changeDetectorRef;
|
|
990
1026
|
this.dialog = dialog;
|
|
991
1027
|
this.router = router;
|
|
@@ -993,6 +1029,7 @@ class DisplayObjectsComponent {
|
|
|
993
1029
|
this.authenticationService = authenticationService;
|
|
994
1030
|
this.formBuilder = formBuilder;
|
|
995
1031
|
this.route = route;
|
|
1032
|
+
this.i18n = i18n;
|
|
996
1033
|
this.canDisplayObj = false;
|
|
997
1034
|
this.canEdit = true;
|
|
998
1035
|
this.canDelete = true;
|
|
@@ -1141,6 +1178,9 @@ class DisplayObjectsComponent {
|
|
|
1141
1178
|
ngOnDestroy() {
|
|
1142
1179
|
this.navSubscription?.unsubscribe(); // this prevents a memory leak
|
|
1143
1180
|
}
|
|
1181
|
+
t(key, fallback) {
|
|
1182
|
+
return this.i18n.instant(key, fallback);
|
|
1183
|
+
}
|
|
1144
1184
|
Init(data) {
|
|
1145
1185
|
if ((data && Object.keys(data).length > 0) || this.displayresult) {
|
|
1146
1186
|
this.Search(data);
|
|
@@ -1217,6 +1257,9 @@ class DisplayObjectsComponent {
|
|
|
1217
1257
|
this.queryParams[name] = this.queryParams[name];
|
|
1218
1258
|
});
|
|
1219
1259
|
}
|
|
1260
|
+
Object.keys(this.queryParams).forEach(name => {
|
|
1261
|
+
this.queryParams[name] = this.serializeQueryParamValue(this.queryParams[name]);
|
|
1262
|
+
});
|
|
1220
1263
|
this.queryParams['__guid'] = (Math.random().toString()).substring(2);
|
|
1221
1264
|
console.log("Before searchRequest");
|
|
1222
1265
|
//debugger;
|
|
@@ -1235,7 +1278,7 @@ class DisplayObjectsComponent {
|
|
|
1235
1278
|
}, error => {
|
|
1236
1279
|
this.displayresult = false;
|
|
1237
1280
|
this.displayform = true;
|
|
1238
|
-
this.resultException = error;
|
|
1281
|
+
this.resultException = this.toErrorMessage(error);
|
|
1239
1282
|
});
|
|
1240
1283
|
}
|
|
1241
1284
|
clean(obj) {
|
|
@@ -1250,8 +1293,7 @@ class DisplayObjectsComponent {
|
|
|
1250
1293
|
const searchData = this.parent.form.value.searchData;
|
|
1251
1294
|
if (searchData) {
|
|
1252
1295
|
Object.keys(searchData).forEach(name => {
|
|
1253
|
-
|
|
1254
|
-
this.queryParams[name] = val;
|
|
1296
|
+
this.queryParams[name] = this.serializeQueryParamValue(searchData[name]);
|
|
1255
1297
|
});
|
|
1256
1298
|
}
|
|
1257
1299
|
if (this.form2.value._MaxRow_) {
|
|
@@ -1263,6 +1305,18 @@ class DisplayObjectsComponent {
|
|
|
1263
1305
|
this.location.replaceState(this.router.url, params.toString());
|
|
1264
1306
|
this.Search();
|
|
1265
1307
|
}
|
|
1308
|
+
serializeQueryParamValue(value) {
|
|
1309
|
+
if (value === undefined || value === null || value === '') {
|
|
1310
|
+
return value;
|
|
1311
|
+
}
|
|
1312
|
+
if (value instanceof Date) {
|
|
1313
|
+
return Number.isNaN(value.getTime()) ? null : moment(value).format('YYYY-MM-DD HH:mm:ss');
|
|
1314
|
+
}
|
|
1315
|
+
if (moment.isMoment(value)) {
|
|
1316
|
+
return value.isValid() ? value.format('YYYY-MM-DD HH:mm:ss') : null;
|
|
1317
|
+
}
|
|
1318
|
+
return value;
|
|
1319
|
+
}
|
|
1266
1320
|
onFilter() {
|
|
1267
1321
|
}
|
|
1268
1322
|
UpdateDataSource(r) {
|
|
@@ -1418,9 +1472,10 @@ class DisplayObjectsComponent {
|
|
|
1418
1472
|
dialogConfig.disableClose = true;
|
|
1419
1473
|
dialogConfig.autoFocus = true;
|
|
1420
1474
|
dialogConfig.closeOnNavigation = false;
|
|
1421
|
-
dialogConfig.
|
|
1422
|
-
dialogConfig.
|
|
1423
|
-
dialogConfig.
|
|
1475
|
+
dialogConfig.panelClass = 'gw-resizable-dialog-panel';
|
|
1476
|
+
dialogConfig.width = '900px';
|
|
1477
|
+
dialogConfig.maxWidth = '100vw';
|
|
1478
|
+
dialogConfig.maxHeight = '100vh';
|
|
1424
1479
|
if (this.dialogConfig) {
|
|
1425
1480
|
Object.keys(this.dialogConfig).forEach(name => {
|
|
1426
1481
|
dialogConfig[name] = this.dialogConfig[name];
|
|
@@ -1476,14 +1531,14 @@ class DisplayObjectsComponent {
|
|
|
1476
1531
|
});
|
|
1477
1532
|
}
|
|
1478
1533
|
DeleteObj(obj) {
|
|
1479
|
-
if (confirm('Are you sure you want to delete this
|
|
1534
|
+
if (confirm(this.t('GLOWW.CONFIRM_DELETE', 'Are you sure you want to delete this object ?'))) {
|
|
1480
1535
|
this.deleteRequest.apply(this.glowwService, this.getPrimaryKey(obj)).subscribe(p => {
|
|
1481
1536
|
const i = this.dataSource.data.indexOf(obj);
|
|
1482
1537
|
const tmp = this.dataSource.data;
|
|
1483
1538
|
tmp.splice(i, 1);
|
|
1484
1539
|
this.dataSource.data = tmp;
|
|
1485
1540
|
}, error => {
|
|
1486
|
-
alert(
|
|
1541
|
+
alert(`${this.t('GLOWW.UNABLE_TO_DELETE_OBJECT', 'Unable to delete object')} ${error.status} ${error.statusText}\n${error.Message}\n${error.error}`);
|
|
1487
1542
|
});
|
|
1488
1543
|
}
|
|
1489
1544
|
}
|
|
@@ -1508,9 +1563,10 @@ class DisplayObjectsComponent {
|
|
|
1508
1563
|
dialogConfig.disableClose = true;
|
|
1509
1564
|
dialogConfig.autoFocus = true;
|
|
1510
1565
|
dialogConfig.closeOnNavigation = false;
|
|
1511
|
-
dialogConfig.
|
|
1512
|
-
dialogConfig.
|
|
1513
|
-
dialogConfig.
|
|
1566
|
+
dialogConfig.panelClass = 'gw-resizable-dialog-panel';
|
|
1567
|
+
dialogConfig.width = '900px';
|
|
1568
|
+
dialogConfig.maxWidth = '100vw';
|
|
1569
|
+
dialogConfig.maxHeight = '100vh';
|
|
1514
1570
|
if (this.dialogConfig) {
|
|
1515
1571
|
Object.keys(this.dialogConfig).forEach(name => {
|
|
1516
1572
|
dialogConfig[name] = this.dialogConfig[name];
|
|
@@ -1559,16 +1615,23 @@ class DisplayObjectsComponent {
|
|
|
1559
1615
|
}
|
|
1560
1616
|
});
|
|
1561
1617
|
}
|
|
1562
|
-
|
|
1563
|
-
|
|
1618
|
+
toErrorMessage(error) {
|
|
1619
|
+
if (!error) {
|
|
1620
|
+
return '';
|
|
1621
|
+
}
|
|
1622
|
+
const details = error.error?.message || error.error || error.message || error.statusText || `${error}`;
|
|
1623
|
+
return `${this.t('GLOWW.UNABLE_TO_QUERY', 'Unable to query')} : ${details}`;
|
|
1624
|
+
}
|
|
1625
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DisplayObjectsComponent, deps: [{ token: 'glowwService' }, { token: i0.ChangeDetectorRef }, { token: i1$2.MatDialog }, { token: i2.Router }, { token: i3.Location }, { token: AuthenticationService }, { token: i1$3.UntypedFormBuilder }, { token: i2.ActivatedRoute }, { token: GlowwI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1626
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DisplayObjectsComponent, isStandalone: true, selector: "glw-display-objects", inputs: { configuration: "configuration", displayObjLink: "displayObjLink", canDisplayObj: "canDisplayObj", canEdit: "canEdit", canDelete: "canDelete", canAdd: "canAdd", form: "form", SearchForm: "SearchForm", searchRequest: "searchRequest", postRequest: "postRequest", deleteRequest: "deleteRequest", putRequest: "putRequest", maxrows: "maxrows", mandatoryParams: "mandatoryParams", actions: "actions", dialogConfig: "dialogConfig", parent: "parent", columns: "columns", objectName: "objectName", primaryKey: "primaryKey", Editor: "Editor", AddEditor: "AddEditor" }, queries: [{ propertyName: "header", first: true, predicate: HeaderComponent, descendants: true }, { propertyName: "searchFormLayout", first: true, predicate: SearchFormComponent, descendants: true }, { propertyName: "filterFormLayout", first: true, predicate: FilterFormComponent, descendants: true }, { propertyName: "resultLayout", first: true, predicate: ResultTableComponent, descendants: true }], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div>\n <ng-content select=\"glw-header\"></ng-content>\n</div>\n\n@if (displayform) {\n <div>\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n @if (resultException) {\n <mat-error>\n {{ resultException }}\n </mat-error>\n }\n <ng-content select=\"glw-search-form\"></ng-content>\n <!--<ng-container *ngComponentOutlet=\"SearchForm; injector: objInjector\"></ng-container>-->\n @if (maxrows) {\n <div [formGroup]=\"form2\">\n <br />\n <mat-form-field>\n <mat-select [placeholder]=\"t('COMMON.MAX_ROW', 'MaxRow')\" formControlName=\"_MaxRow_\">\n @for (maxrow of maxrows; track maxrow) {\n <mat-option [value]=\"maxrow\">\n @if (maxrow) {\n <span>{{maxrow}} {{ t('COMMON.OBJECTS_SUFFIX', 'objects') }}</span>\n }\n @if (!maxrow) {\n <span>{{ t('COMMON.DEFAULT', 'Default') }}</span>\n }\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n </mat-card-content>\n <mat-card-actions>\n <button mat-stroked-button color=\"accent\" (click)=\"onSearch()\">\n <mat-icon>search</mat-icon>\n {{ t('COMMON.SEARCH', 'Search') }}\n </button>\n </mat-card-actions>\n </mat-card>\n </div>\n}\n\n<div [hidden]=\"!displayresult\">\n <!--*ngIf=\"displayresult\"-->\n <div class=\"mat-elevation-z8\" [hidden]=\"!dataSource\">\n <ng-content select=\"[filter]\"></ng-content>\n\n <!--*ngIf=\"dataSource; else Spinner\"-->\n <table mat-table [dataSource]=\"dataSource\" matSort>\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef>\n @if (canAddThis()) {\n <i class=\"fal fa-plus\" (click)=\"AddObj()\">\n </i>\n }\n </th>\n <td mat-cell *matCellDef=\"let obj\">\n @if (canDisplayObjThis(obj)) {\n <i class=\"fal fa-eye\" [routerLink]=\"displayObjLinkThis(obj)\">\n </i>\n }\n @for (action of actions; track action) {\n @if (action.icon.icon && (!action.display || action.display(obj, action.name))) {\n <i [ngClass]=\"action.icon\" [routerLink]=\"action.routerLinkFct(obj)\">\n </i>\n }\n @if (!action.icon.icon && (!action.display || action.display(obj, action.name))) {\n <i [ngClass]=\"action.icon\" [routerLink]=\"action.routerLinkFct(obj)\"></i>\n }\n }\n @if (canDeleteThis(obj)) {\n <i class=\"fal fa-trash-alt\" (click)=\"DeleteObj(obj)\">\n </i>\n }\n @if (canEditThis(obj)) {\n <i class=\"fal fa-pencil\" (click)=\"EditObj(obj)\">\n </i>\n }\n </td>\n </ng-container>\n <ng-content select=\"glw-result-table\"></ng-content>\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let myRowData; columns: columnsToDisplay\"></tr>\n </table>\n <mat-paginator [pageSize]=\"10\" [pageSizeOptions]=\"[10, 20, 50, 100]\" [showFirstLastButtons]=\"true\"></mat-paginator>\n </div>\n <div #Spinner [hidden]=\"dataSource\">\n <mat-spinner></mat-spinner>\n </div>\n</div>\n", styles: ["table{width:100%}i{cursor:pointer;padding:5px}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: 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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatDialogModule }] }); }
|
|
1564
1627
|
}
|
|
1565
1628
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DisplayObjectsComponent, decorators: [{
|
|
1566
1629
|
type: Component,
|
|
1567
|
-
args: [{ selector: 'glw-display-objects', imports: [MatCard, MatCardContent, MatError, FormsModule, ReactiveFormsModule, MatFormField, MatSelect, MatOption, MatCardActions, MatButton, MatIcon, MatTable, MatSort, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, RouterLink, NgClass, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatPaginator, MatProgressSpinner], template: "<div>\n <ng-content select=\"glw-header\"></ng-content>\n</div>\n\n@if (displayform) {\n <div>\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n @if (resultException) {\n <mat-error>\n
|
|
1630
|
+
args: [{ selector: 'glw-display-objects', imports: [MatCard, MatCardContent, MatError, FormsModule, ReactiveFormsModule, MatFormField, MatSelect, MatOption, MatCardActions, MatButton, MatIcon, MatTable, MatSort, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, RouterLink, NgClass, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatPaginator, MatProgressSpinner, MatDialogModule], template: "<div>\n <ng-content select=\"glw-header\"></ng-content>\n</div>\n\n@if (displayform) {\n <div>\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n @if (resultException) {\n <mat-error>\n {{ resultException }}\n </mat-error>\n }\n <ng-content select=\"glw-search-form\"></ng-content>\n <!--<ng-container *ngComponentOutlet=\"SearchForm; injector: objInjector\"></ng-container>-->\n @if (maxrows) {\n <div [formGroup]=\"form2\">\n <br />\n <mat-form-field>\n <mat-select [placeholder]=\"t('COMMON.MAX_ROW', 'MaxRow')\" formControlName=\"_MaxRow_\">\n @for (maxrow of maxrows; track maxrow) {\n <mat-option [value]=\"maxrow\">\n @if (maxrow) {\n <span>{{maxrow}} {{ t('COMMON.OBJECTS_SUFFIX', 'objects') }}</span>\n }\n @if (!maxrow) {\n <span>{{ t('COMMON.DEFAULT', 'Default') }}</span>\n }\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n </mat-card-content>\n <mat-card-actions>\n <button mat-stroked-button color=\"accent\" (click)=\"onSearch()\">\n <mat-icon>search</mat-icon>\n {{ t('COMMON.SEARCH', 'Search') }}\n </button>\n </mat-card-actions>\n </mat-card>\n </div>\n}\n\n<div [hidden]=\"!displayresult\">\n <!--*ngIf=\"displayresult\"-->\n <div class=\"mat-elevation-z8\" [hidden]=\"!dataSource\">\n <ng-content select=\"[filter]\"></ng-content>\n\n <!--*ngIf=\"dataSource; else Spinner\"-->\n <table mat-table [dataSource]=\"dataSource\" matSort>\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef>\n @if (canAddThis()) {\n <i class=\"fal fa-plus\" (click)=\"AddObj()\">\n </i>\n }\n </th>\n <td mat-cell *matCellDef=\"let obj\">\n @if (canDisplayObjThis(obj)) {\n <i class=\"fal fa-eye\" [routerLink]=\"displayObjLinkThis(obj)\">\n </i>\n }\n @for (action of actions; track action) {\n @if (action.icon.icon && (!action.display || action.display(obj, action.name))) {\n <i [ngClass]=\"action.icon\" [routerLink]=\"action.routerLinkFct(obj)\">\n </i>\n }\n @if (!action.icon.icon && (!action.display || action.display(obj, action.name))) {\n <i [ngClass]=\"action.icon\" [routerLink]=\"action.routerLinkFct(obj)\"></i>\n }\n }\n @if (canDeleteThis(obj)) {\n <i class=\"fal fa-trash-alt\" (click)=\"DeleteObj(obj)\">\n </i>\n }\n @if (canEditThis(obj)) {\n <i class=\"fal fa-pencil\" (click)=\"EditObj(obj)\">\n </i>\n }\n </td>\n </ng-container>\n <ng-content select=\"glw-result-table\"></ng-content>\n <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\n <tr mat-row *matRowDef=\"let myRowData; columns: columnsToDisplay\"></tr>\n </table>\n <mat-paginator [pageSize]=\"10\" [pageSizeOptions]=\"[10, 20, 50, 100]\" [showFirstLastButtons]=\"true\"></mat-paginator>\n </div>\n <div #Spinner [hidden]=\"dataSource\">\n <mat-spinner></mat-spinner>\n </div>\n</div>\n", styles: ["table{width:100%}i{cursor:pointer;padding:5px}\n"] }]
|
|
1568
1631
|
}], ctorParameters: () => [{ type: GlowwService, decorators: [{
|
|
1569
1632
|
type: Inject,
|
|
1570
1633
|
args: ['glowwService']
|
|
1571
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i1$2.MatDialog }, { type: i2.Router }, { type: i3.Location }, { type: AuthenticationService }, { type: i1$3.UntypedFormBuilder }, { type: i2.ActivatedRoute }], propDecorators: { header: [{
|
|
1634
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i1$2.MatDialog }, { type: i2.Router }, { type: i3.Location }, { type: AuthenticationService }, { type: i1$3.UntypedFormBuilder }, { type: i2.ActivatedRoute }, { type: GlowwI18nService }], propDecorators: { header: [{
|
|
1572
1635
|
type: ContentChild,
|
|
1573
1636
|
args: [HeaderComponent]
|
|
1574
1637
|
}], searchFormLayout: [{
|
|
@@ -1711,7 +1774,10 @@ class SecurePipe {
|
|
|
1711
1774
|
}
|
|
1712
1775
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: SecurePipe, decorators: [{
|
|
1713
1776
|
type: Pipe,
|
|
1714
|
-
args: [{
|
|
1777
|
+
args: [{
|
|
1778
|
+
name: 'secure',
|
|
1779
|
+
standalone: true
|
|
1780
|
+
}]
|
|
1715
1781
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.DomSanitizer }] });
|
|
1716
1782
|
|
|
1717
1783
|
class MenuListItemComponent {
|
|
@@ -1722,9 +1788,10 @@ class MenuListItemComponent {
|
|
|
1722
1788
|
console.log("change expanded");
|
|
1723
1789
|
this._expanded = value;
|
|
1724
1790
|
}
|
|
1725
|
-
constructor(glowwService, navService, router) {
|
|
1791
|
+
constructor(glowwService, navService, router, i18n) {
|
|
1726
1792
|
this.navService = navService;
|
|
1727
1793
|
this.router = router;
|
|
1794
|
+
this.i18n = i18n;
|
|
1728
1795
|
this._expanded = false;
|
|
1729
1796
|
this.ariaExpanded = this.expanded;
|
|
1730
1797
|
this.falsePromise = new Promise((resolve, reject) => {
|
|
@@ -1768,6 +1835,9 @@ class MenuListItemComponent {
|
|
|
1768
1835
|
}
|
|
1769
1836
|
return route;
|
|
1770
1837
|
}
|
|
1838
|
+
displayName(item) {
|
|
1839
|
+
return this.i18n.instant(item.displayName, item.displayName);
|
|
1840
|
+
}
|
|
1771
1841
|
getDisabledPromise() {
|
|
1772
1842
|
//console.log(`isdisable item ${item.displayName} ${item.disabled}`);
|
|
1773
1843
|
if (!this.item.disabled) {
|
|
@@ -1781,8 +1851,8 @@ class MenuListItemComponent {
|
|
|
1781
1851
|
}
|
|
1782
1852
|
return this.item.hidden();
|
|
1783
1853
|
}
|
|
1784
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MenuListItemComponent, deps: [{ token: 'glowwService' }, { token: NavService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1785
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: MenuListItemComponent, isStandalone: true, selector: "gloww-menu-list-item", inputs: { item: "item", depth: "depth" }, host: { properties: { "attr.aria-expanded": "this.ariaExpanded" } }, ngImport: i0, template: "@if (item) {\n @if (!(_hidden | async)) {\n <div class=\"thisMenu\" (click)=\"onItemSelected(item)\" [class.disabled]=\"(_disabled | async)\">\n <a mat-list-item\n [ngStyle]=\"{'padding-left': (depth * 12) + 'px'}\"\n [ngClass]=\"{'active': isActive(item) && !(_disabled | async), 'expanded': expanded}\"\n class=\"menu-list-item\"\n [routerLink]=\"routerLink(item)\">\n <
|
|
1854
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: MenuListItemComponent, deps: [{ token: 'glowwService' }, { token: NavService }, { token: i2.Router }, { token: GlowwI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1855
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: MenuListItemComponent, isStandalone: true, selector: "gloww-menu-list-item", inputs: { item: "item", depth: "depth" }, host: { properties: { "attr.aria-expanded": "this.ariaExpanded" } }, ngImport: i0, template: "@if (item) {\n @if (!(_hidden | async)) {\n <div class=\"thisMenu\" (click)=\"onItemSelected(item)\" [class.disabled]=\"(_disabled | async)\">\n <a mat-list-item lines=\"1\"\n [ngStyle]=\"{'padding-left': (depth * 12) + 'px'}\"\n [ngClass]=\"{'active': isActive(item) && !(_disabled | async), 'expanded': expanded}\"\n class=\"menu-list-item\"\n [routerLink]=\"routerLink(item)\">\n <span matListItemIcon class=\"routeIcon\">\n <i [ngClass]=\"item.icon\" [ngStyle]=\"item.iconStyle\"></i>\n </span>\n <span matListItemTitle class=\"menu-label\">{{ displayName(item) }}</span>\n </a>\n @if (item.children?.length && !(_disabled | async)) {\n <div class=\"expand-container\">\n <mat-icon [@indicatorRotate]=\"expanded ? 'expanded': 'collapsed'\" class=\"expandIcon\">\n expand_more\n </mat-icon>\n </div>\n }\n </div>\n }\n @if (expanded && !(_disabled | async)) {\n <div>\n @for (child of item.children; track child) {\n <gloww-menu-list-item [item]=\"child\" [depth]=\"depth+1\">\n </gloww-menu-list-item>\n }\n </div>\n }\n}\n", styles: [".thisMenu{display:flex;flex-direction:row;align-items:center;outline:none;width:calc(100% - 20px);margin:10px;cursor:pointer}.menu-list-item{display:flex;align-items:center;flex:1;padding:8px 0;text-decoration:none;color:inherit;min-width:0}.menu-list-item .menu-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expand-container{display:flex;align-items:center;justify-content:center;flex-shrink:0}.routeIcon{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:32px;margin-right:20px;flex-shrink:0;overflow:visible}.routeIcon i{display:inline-block;line-height:1}mat-icon{height:32px;width:40px;display:flex;align-items:center;justify-content:center}.expandIcon{cursor:pointer}:disabled,.disabled{color:#d3d3d3!important;pointer-events:none}:disabled .routeIcon i,:disabled mat-icon i,.disabled .routeIcon i,.disabled mat-icon i{color:#d3d3d3!important}\n"], dependencies: [{ kind: "component", type: MenuListItemComponent, selector: "gloww-menu-list-item", inputs: ["item", "depth"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [
|
|
1786
1856
|
trigger('indicatorRotate', [
|
|
1787
1857
|
state('collapsed', style({ transform: 'rotate(0deg)' })),
|
|
1788
1858
|
state('expanded', style({ transform: 'rotate(180deg)' })),
|
|
@@ -1798,11 +1868,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
1798
1868
|
state('expanded', style({ transform: 'rotate(180deg)' })),
|
|
1799
1869
|
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4,0.0,0.2,1)'))
|
|
1800
1870
|
])
|
|
1801
|
-
], imports: [NgStyle, NgClass, RouterLink, MatIcon,
|
|
1871
|
+
], imports: [NgStyle, NgClass, RouterLink, MatIcon, MatListItem, MatListItemIcon, MatListItemTitle, AsyncPipe], template: "@if (item) {\n @if (!(_hidden | async)) {\n <div class=\"thisMenu\" (click)=\"onItemSelected(item)\" [class.disabled]=\"(_disabled | async)\">\n <a mat-list-item lines=\"1\"\n [ngStyle]=\"{'padding-left': (depth * 12) + 'px'}\"\n [ngClass]=\"{'active': isActive(item) && !(_disabled | async), 'expanded': expanded}\"\n class=\"menu-list-item\"\n [routerLink]=\"routerLink(item)\">\n <span matListItemIcon class=\"routeIcon\">\n <i [ngClass]=\"item.icon\" [ngStyle]=\"item.iconStyle\"></i>\n </span>\n <span matListItemTitle class=\"menu-label\">{{ displayName(item) }}</span>\n </a>\n @if (item.children?.length && !(_disabled | async)) {\n <div class=\"expand-container\">\n <mat-icon [@indicatorRotate]=\"expanded ? 'expanded': 'collapsed'\" class=\"expandIcon\">\n expand_more\n </mat-icon>\n </div>\n }\n </div>\n }\n @if (expanded && !(_disabled | async)) {\n <div>\n @for (child of item.children; track child) {\n <gloww-menu-list-item [item]=\"child\" [depth]=\"depth+1\">\n </gloww-menu-list-item>\n }\n </div>\n }\n}\n", styles: [".thisMenu{display:flex;flex-direction:row;align-items:center;outline:none;width:calc(100% - 20px);margin:10px;cursor:pointer}.menu-list-item{display:flex;align-items:center;flex:1;padding:8px 0;text-decoration:none;color:inherit;min-width:0}.menu-list-item .menu-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expand-container{display:flex;align-items:center;justify-content:center;flex-shrink:0}.routeIcon{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:32px;margin-right:20px;flex-shrink:0;overflow:visible}.routeIcon i{display:inline-block;line-height:1}mat-icon{height:32px;width:40px;display:flex;align-items:center;justify-content:center}.expandIcon{cursor:pointer}:disabled,.disabled{color:#d3d3d3!important;pointer-events:none}:disabled .routeIcon i,:disabled mat-icon i,.disabled .routeIcon i,.disabled mat-icon i{color:#d3d3d3!important}\n"] }]
|
|
1802
1872
|
}], ctorParameters: () => [{ type: GlowwService, decorators: [{
|
|
1803
1873
|
type: Inject,
|
|
1804
1874
|
args: ['glowwService']
|
|
1805
|
-
}] }, { type: NavService }, { type: i2.Router }], propDecorators: { ariaExpanded: [{
|
|
1875
|
+
}] }, { type: NavService }, { type: i2.Router }, { type: GlowwI18nService }], propDecorators: { ariaExpanded: [{
|
|
1806
1876
|
type: HostBinding,
|
|
1807
1877
|
args: ['attr.aria-expanded']
|
|
1808
1878
|
}], item: [{
|
|
@@ -1986,7 +2056,10 @@ class HtmlFormatPipe {
|
|
|
1986
2056
|
}
|
|
1987
2057
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: HtmlFormatPipe, decorators: [{
|
|
1988
2058
|
type: Pipe,
|
|
1989
|
-
args: [{
|
|
2059
|
+
args: [{
|
|
2060
|
+
name: 'htmlFormat',
|
|
2061
|
+
standalone: true
|
|
2062
|
+
}]
|
|
1990
2063
|
}], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
|
|
1991
2064
|
|
|
1992
2065
|
class SocialNetworkComponent {
|
|
@@ -2048,15 +2121,10 @@ class LoginComponent {
|
|
|
2048
2121
|
if (config && config.showDomain) {
|
|
2049
2122
|
this.showDomain = config.showDomain;
|
|
2050
2123
|
}
|
|
2124
|
+
this.initializeForms();
|
|
2051
2125
|
this.authenticationService.getOAuthProviders().subscribe(oap => this.oAuthProviders = oap);
|
|
2052
2126
|
}
|
|
2053
|
-
|
|
2054
|
-
if (!fg) {
|
|
2055
|
-
return;
|
|
2056
|
-
}
|
|
2057
|
-
return fg.get('newpassword')?.value === fg.get('confirmationPassword')?.value;
|
|
2058
|
-
}
|
|
2059
|
-
ngOnInit() {
|
|
2127
|
+
initializeForms() {
|
|
2060
2128
|
const grp = {
|
|
2061
2129
|
username: ['', Validators.required],
|
|
2062
2130
|
password: ['', Validators.required]
|
|
@@ -2079,6 +2147,14 @@ class LoginComponent {
|
|
|
2079
2147
|
this.loginForm = this.formBuilder.group(grp);
|
|
2080
2148
|
this.lostPasswordForm = this.formBuilder.group(lostPwd);
|
|
2081
2149
|
this.resetPasswordForm = this.formBuilder.group(resetPwd, { validator: this.MatchPassword });
|
|
2150
|
+
}
|
|
2151
|
+
MatchPassword(fg) {
|
|
2152
|
+
if (!fg) {
|
|
2153
|
+
return;
|
|
2154
|
+
}
|
|
2155
|
+
return fg.get('newpassword')?.value === fg.get('confirmationPassword')?.value;
|
|
2156
|
+
}
|
|
2157
|
+
ngOnInit() {
|
|
2082
2158
|
// get return url from route parameters or default to '/'
|
|
2083
2159
|
this.returnUrl = this.route.snapshot.queryParams.returnUrl; //|| window.location.search;
|
|
2084
2160
|
this.application = this.route.snapshot.queryParams.application; //|| window.location.pathname;
|
|
@@ -2499,6 +2575,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
2499
2575
|
}]
|
|
2500
2576
|
}], ctorParameters: () => [{ type: i2.Router }, { type: AuthenticationService }, { type: i3.PlatformLocation }] });
|
|
2501
2577
|
|
|
2578
|
+
const GLOWW_SECURITY_STANDALONE_DECLARATIONS = [
|
|
2579
|
+
LoginComponent,
|
|
2580
|
+
ChangePasswordDlgComponent,
|
|
2581
|
+
UserMenuComponent,
|
|
2582
|
+
SocialNetworkDlgComponent,
|
|
2583
|
+
SocialNetworkComponent
|
|
2584
|
+
];
|
|
2585
|
+
function getGlowwSecurityProviders(authenticationServiceConfig) {
|
|
2586
|
+
return [
|
|
2587
|
+
AuthenticationService,
|
|
2588
|
+
AuthenticationServiceConfig,
|
|
2589
|
+
{ provide: AuthenticationServiceConfig, useValue: authenticationServiceConfig },
|
|
2590
|
+
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
|
|
2591
|
+
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
|
|
2592
|
+
//{ provide: HTTP_INTERCEPTORS, useClass: StagingInterceptor, multi: true },
|
|
2593
|
+
//socialLoginProviders
|
|
2594
|
+
];
|
|
2595
|
+
}
|
|
2596
|
+
function provideGlowwSecurity(authenticationServiceConfig) {
|
|
2597
|
+
return makeEnvironmentProviders([
|
|
2598
|
+
provideHttpClient(withInterceptorsFromDi()),
|
|
2599
|
+
...getGlowwSecurityProviders(authenticationServiceConfig)
|
|
2600
|
+
]);
|
|
2601
|
+
}
|
|
2502
2602
|
class GlowwSecurityModule {
|
|
2503
2603
|
static forRoot(authenticationServiceConfig) {
|
|
2504
2604
|
/*
|
|
@@ -2557,23 +2657,13 @@ class GlowwSecurityModule {
|
|
|
2557
2657
|
*/
|
|
2558
2658
|
return {
|
|
2559
2659
|
ngModule: GlowwSecurityModule,
|
|
2560
|
-
providers:
|
|
2561
|
-
AuthenticationService,
|
|
2562
|
-
AuthenticationServiceConfig,
|
|
2563
|
-
{ provide: AuthenticationServiceConfig, useValue: authenticationServiceConfig },
|
|
2564
|
-
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
|
|
2565
|
-
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
|
|
2566
|
-
//{ provide: HTTP_INTERCEPTORS, useClass: StagingInterceptor, multi: true },
|
|
2567
|
-
//socialLoginProviders
|
|
2568
|
-
]
|
|
2660
|
+
providers: getGlowwSecurityProviders(authenticationServiceConfig)
|
|
2569
2661
|
};
|
|
2570
2662
|
}
|
|
2571
2663
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwSecurityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2572
2664
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: GlowwSecurityModule, imports: [CommonModule,
|
|
2573
2665
|
FormsModule,
|
|
2574
2666
|
ReactiveFormsModule,
|
|
2575
|
-
BrowserModule,
|
|
2576
|
-
BrowserAnimationsModule,
|
|
2577
2667
|
MatToolbarModule,
|
|
2578
2668
|
MatButtonModule,
|
|
2579
2669
|
MatSidenavModule,
|
|
@@ -2585,12 +2675,14 @@ class GlowwSecurityModule {
|
|
|
2585
2675
|
ChangePasswordDlgComponent,
|
|
2586
2676
|
UserMenuComponent,
|
|
2587
2677
|
SocialNetworkDlgComponent,
|
|
2588
|
-
SocialNetworkComponent], exports: [LoginComponent,
|
|
2678
|
+
SocialNetworkComponent], exports: [LoginComponent,
|
|
2679
|
+
ChangePasswordDlgComponent,
|
|
2680
|
+
UserMenuComponent,
|
|
2681
|
+
SocialNetworkDlgComponent,
|
|
2682
|
+
SocialNetworkComponent, RouterModule] }); }
|
|
2589
2683
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwSecurityModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
|
|
2590
2684
|
FormsModule,
|
|
2591
2685
|
ReactiveFormsModule,
|
|
2592
|
-
BrowserModule,
|
|
2593
|
-
BrowserAnimationsModule,
|
|
2594
2686
|
MatToolbarModule,
|
|
2595
2687
|
MatButtonModule,
|
|
2596
2688
|
MatSidenavModule,
|
|
@@ -2605,11 +2697,9 @@ class GlowwSecurityModule {
|
|
|
2605
2697
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwSecurityModule, decorators: [{
|
|
2606
2698
|
type: NgModule,
|
|
2607
2699
|
args: [{
|
|
2608
|
-
exports: [
|
|
2700
|
+
exports: [...GLOWW_SECURITY_STANDALONE_DECLARATIONS, RouterModule], imports: [CommonModule,
|
|
2609
2701
|
FormsModule,
|
|
2610
2702
|
ReactiveFormsModule,
|
|
2611
|
-
BrowserModule,
|
|
2612
|
-
BrowserAnimationsModule,
|
|
2613
2703
|
MatToolbarModule,
|
|
2614
2704
|
MatButtonModule,
|
|
2615
2705
|
MatSidenavModule,
|
|
@@ -2617,11 +2707,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
2617
2707
|
MatFormFieldModule,
|
|
2618
2708
|
MatCardModule,
|
|
2619
2709
|
MatDialogModule,
|
|
2620
|
-
RouterModule,
|
|
2621
|
-
|
|
2622
|
-
UserMenuComponent,
|
|
2623
|
-
SocialNetworkDlgComponent,
|
|
2624
|
-
SocialNetworkComponent], providers: [provideHttpClient(withInterceptorsFromDi())]
|
|
2710
|
+
RouterModule,
|
|
2711
|
+
...GLOWW_SECURITY_STANDALONE_DECLARATIONS], providers: [provideHttpClient(withInterceptorsFromDi())]
|
|
2625
2712
|
}]
|
|
2626
2713
|
}] });
|
|
2627
2714
|
|
|
@@ -3525,31 +3612,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
3525
3612
|
}] } });
|
|
3526
3613
|
|
|
3527
3614
|
class DatetimeComponent {
|
|
3528
|
-
|
|
3615
|
+
static { this.DATE_FORMATS = [
|
|
3616
|
+
moment.ISO_8601,
|
|
3617
|
+
'DD/MM/YYYY HH:mm:ss',
|
|
3618
|
+
'DD/MM/YYYY HH:mm',
|
|
3619
|
+
'DD/MM/YYYY',
|
|
3620
|
+
'MM/DD/YYYY HH:mm:ss',
|
|
3621
|
+
'MM/DD/YYYY HH:mm',
|
|
3622
|
+
'MM/DD/YYYY',
|
|
3623
|
+
'YYYY-MM-DD HH:mm:ss',
|
|
3624
|
+
'YYYY-MM-DD HH:mm',
|
|
3625
|
+
'YYYY-MM-DD',
|
|
3626
|
+
'YYYY-MM-DDTHH:mm:ss',
|
|
3627
|
+
'YYYY-MM-DDTHH:mm'
|
|
3628
|
+
]; }
|
|
3629
|
+
constructor(locale) {
|
|
3630
|
+
this.locale = locale;
|
|
3529
3631
|
this._value = null;
|
|
3530
3632
|
this.display = null;
|
|
3531
3633
|
this.placeHolder = null;
|
|
3532
3634
|
this.mode = 'date';
|
|
3533
|
-
this.showSpinners = true;
|
|
3534
3635
|
this.showSeconds = false;
|
|
3535
|
-
this.
|
|
3636
|
+
this.dateControl = new FormControl(null);
|
|
3637
|
+
this.hourControl = new FormControl('00', { nonNullable: true });
|
|
3638
|
+
this.minuteControl = new FormControl('00', { nonNullable: true });
|
|
3639
|
+
this.secondControl = new FormControl('00', { nonNullable: true });
|
|
3640
|
+
this.isDisabled = false;
|
|
3641
|
+
this.hours = Array.from({ length: 24 }, (_, value) => value.toString().padStart(2, '0'));
|
|
3642
|
+
this.minutes = Array.from({ length: 60 }, (_, value) => value.toString().padStart(2, '0'));
|
|
3643
|
+
this.seconds = Array.from({ length: 60 }, (_, value) => value.toString().padStart(2, '0'));
|
|
3536
3644
|
this.onChange = () => { };
|
|
3537
3645
|
this.onTouched = () => { };
|
|
3646
|
+
this.dateControl.valueChanges.subscribe(() => this.emitCurrentValue());
|
|
3647
|
+
this.hourControl.valueChanges.subscribe(() => this.emitCurrentValue());
|
|
3648
|
+
this.minuteControl.valueChanges.subscribe(() => this.emitCurrentValue());
|
|
3649
|
+
this.secondControl.valueChanges.subscribe(() => this.emitCurrentValue());
|
|
3650
|
+
}
|
|
3651
|
+
get isDateTime() {
|
|
3652
|
+
return this.mode === 'datetime';
|
|
3538
3653
|
}
|
|
3539
3654
|
get value() {
|
|
3540
3655
|
return this._value;
|
|
3541
3656
|
}
|
|
3542
3657
|
set value(val) {
|
|
3543
|
-
this.
|
|
3544
|
-
let dt = this._value;
|
|
3545
|
-
if (typeof (this._value) === 'string') {
|
|
3546
|
-
dt = moment(this._value).toISOString();
|
|
3547
|
-
}
|
|
3548
|
-
this.onChange(dt);
|
|
3549
|
-
this.onTouched();
|
|
3658
|
+
this.setValueFromOutside(val, true);
|
|
3550
3659
|
}
|
|
3551
3660
|
writeValue(obj) {
|
|
3552
|
-
this.
|
|
3661
|
+
this.setValueFromOutside(obj, false);
|
|
3553
3662
|
}
|
|
3554
3663
|
registerOnChange(fn) {
|
|
3555
3664
|
this.onChange = fn;
|
|
@@ -3558,27 +3667,102 @@ class DatetimeComponent {
|
|
|
3558
3667
|
this.onTouched = fn;
|
|
3559
3668
|
}
|
|
3560
3669
|
setDisabledState(isDisabled) {
|
|
3561
|
-
|
|
3670
|
+
this.isDisabled = isDisabled;
|
|
3671
|
+
const action = isDisabled ? 'disable' : 'enable';
|
|
3672
|
+
this.dateControl[action]({ emitEvent: false });
|
|
3673
|
+
this.hourControl[action]({ emitEvent: false });
|
|
3674
|
+
this.minuteControl[action]({ emitEvent: false });
|
|
3675
|
+
this.secondControl[action]({ emitEvent: false });
|
|
3676
|
+
}
|
|
3677
|
+
clear() {
|
|
3678
|
+
this._value = null;
|
|
3679
|
+
this.dateControl.setValue(null, { emitEvent: false });
|
|
3680
|
+
this.hourControl.setValue('00', { emitEvent: false });
|
|
3681
|
+
this.minuteControl.setValue('00', { emitEvent: false });
|
|
3682
|
+
this.secondControl.setValue('00', { emitEvent: false });
|
|
3683
|
+
this.onChange(null);
|
|
3684
|
+
this.onTouched();
|
|
3685
|
+
}
|
|
3686
|
+
markTouched() {
|
|
3687
|
+
this.onTouched();
|
|
3688
|
+
}
|
|
3689
|
+
setValueFromOutside(value, emit) {
|
|
3690
|
+
const normalized = this.normalizeDateValue(value);
|
|
3691
|
+
this._value = normalized;
|
|
3692
|
+
this.dateControl.setValue(normalized ? new Date(normalized.getTime()) : null, { emitEvent: false });
|
|
3693
|
+
this.hourControl.setValue(normalized ? normalized.getHours().toString().padStart(2, '0') : '00', { emitEvent: false });
|
|
3694
|
+
this.minuteControl.setValue(normalized ? normalized.getMinutes().toString().padStart(2, '0') : '00', { emitEvent: false });
|
|
3695
|
+
this.secondControl.setValue(normalized ? normalized.getSeconds().toString().padStart(2, '0') : '00', { emitEvent: false });
|
|
3696
|
+
if (emit) {
|
|
3697
|
+
this.onChange(normalized);
|
|
3698
|
+
this.onTouched();
|
|
3699
|
+
}
|
|
3562
3700
|
}
|
|
3563
|
-
|
|
3564
|
-
|
|
3701
|
+
emitCurrentValue() {
|
|
3702
|
+
const date = this.normalizeDateValue(this.dateControl.value);
|
|
3703
|
+
if (!date) {
|
|
3704
|
+
this._value = null;
|
|
3705
|
+
this.onChange(null);
|
|
3706
|
+
return;
|
|
3707
|
+
}
|
|
3708
|
+
const next = new Date(date.getTime());
|
|
3709
|
+
next.setHours(this.toNumber(this.hourControl.value), this.toNumber(this.minuteControl.value), this.showSeconds ? this.toNumber(this.secondControl.value) : 0, 0);
|
|
3710
|
+
this._value = next;
|
|
3711
|
+
this.onChange(next);
|
|
3712
|
+
}
|
|
3713
|
+
toNumber(value) {
|
|
3714
|
+
const parsed = Number.parseInt(value ?? '0', 10);
|
|
3715
|
+
return Number.isNaN(parsed) ? 0 : parsed;
|
|
3716
|
+
}
|
|
3717
|
+
normalizeDateValue(value) {
|
|
3718
|
+
if (value === undefined || value === null || value === '') {
|
|
3719
|
+
return null;
|
|
3720
|
+
}
|
|
3721
|
+
if (value instanceof Date) {
|
|
3722
|
+
return Number.isNaN(value.getTime()) ? null : new Date(value.getTime());
|
|
3723
|
+
}
|
|
3724
|
+
if (moment.isMoment(value)) {
|
|
3725
|
+
const date = value.toDate();
|
|
3726
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
3727
|
+
}
|
|
3728
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
3729
|
+
const strictMoment = moment(value, DatetimeComponent.DATE_FORMATS, this.locale ?? undefined, true);
|
|
3730
|
+
if (strictMoment.isValid()) {
|
|
3731
|
+
return strictMoment.toDate();
|
|
3732
|
+
}
|
|
3733
|
+
const lenientMoment = moment(value, DatetimeComponent.DATE_FORMATS, this.locale ?? undefined, false);
|
|
3734
|
+
if (lenientMoment.isValid()) {
|
|
3735
|
+
return lenientMoment.toDate();
|
|
3736
|
+
}
|
|
3737
|
+
const date = new Date(value);
|
|
3738
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
3739
|
+
}
|
|
3740
|
+
return null;
|
|
3741
|
+
}
|
|
3742
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DatetimeComponent, deps: [{ token: MAT_DATE_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3743
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DatetimeComponent, isStandalone: true, selector: "gloww-datetime", inputs: { _value: ["value", "_value"], display: "display", placeHolder: "placeHolder", mode: "mode", showSeconds: "showSeconds" }, providers: [
|
|
3565
3744
|
{
|
|
3566
3745
|
provide: NG_VALUE_ACCESSOR,
|
|
3567
3746
|
multi: true,
|
|
3568
|
-
useExisting: DatetimeComponent
|
|
3747
|
+
useExisting: forwardRef(() => DatetimeComponent)
|
|
3569
3748
|
}
|
|
3570
|
-
], ngImport: i0, template: "<div
|
|
3749
|
+
], ngImport: i0, template: "<div class=\"datetime-wrapper\" [class.datetime-mode]=\"isDateTime\" [class.has-seconds]=\"showSeconds\">\n <mat-form-field class=\"date-field\">\n @if (display) {\n <mat-label>{{ display }}</mat-label>\n }\n <input\n matInput\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeHolder\"\n [formControl]=\"dateControl\"\n [disabled]=\"isDisabled\"\n (dateChange)=\"markTouched()\"\n (blur)=\"markTouched()\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n\n @if (isDateTime) {\n <div class=\"time-row\">\n <mat-form-field class=\"time-field\">\n <mat-label>HH</mat-label>\n <mat-select [formControl]=\"hourControl\" [disabled]=\"isDisabled\" (selectionChange)=\"markTouched()\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"time-field\">\n <mat-label>MM</mat-label>\n <mat-select [formControl]=\"minuteControl\" [disabled]=\"isDisabled\" (selectionChange)=\"markTouched()\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (showSeconds) {\n <mat-form-field class=\"time-field\">\n <mat-label>SS</mat-label>\n <mat-select [formControl]=\"secondControl\" [disabled]=\"isDisabled\" (selectionChange)=\"markTouched()\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n }\n\n <div class=\"actions-row\">\n <button mat-button type=\"button\" (click)=\"clear()\" [disabled]=\"isDisabled\">Clear</button>\n </div>\n</div>\n", styles: [".datetime-wrapper{display:flex;flex-direction:column;gap:8px;width:100%}.date-field,.time-field{width:100%}.time-row{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.actions-row{display:flex;justify-content:flex-end}@media(min-width:720px){.time-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:960px){.datetime-wrapper.datetime-mode{display:grid;align-items:start;gap:8px;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(84px,96px)) auto}.datetime-wrapper.datetime-mode.has-seconds{grid-template-columns:minmax(240px,2fr) repeat(3,minmax(84px,96px)) auto}.datetime-wrapper.datetime-mode .date-field{margin-bottom:0}.datetime-wrapper.datetime-mode .time-row{display:contents}.datetime-wrapper.datetime-mode .actions-row{align-self:start;justify-content:flex-start;padding-top:4px}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel$1, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: 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"] }] }); }
|
|
3571
3750
|
}
|
|
3572
3751
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DatetimeComponent, decorators: [{
|
|
3573
3752
|
type: Component,
|
|
3574
|
-
args: [{ selector: 'gloww-datetime', providers: [
|
|
3753
|
+
args: [{ selector: 'gloww-datetime', standalone: true, providers: [
|
|
3575
3754
|
{
|
|
3576
3755
|
provide: NG_VALUE_ACCESSOR,
|
|
3577
3756
|
multi: true,
|
|
3578
|
-
useExisting: DatetimeComponent
|
|
3757
|
+
useExisting: forwardRef(() => DatetimeComponent)
|
|
3579
3758
|
}
|
|
3580
|
-
], imports: [MatFormField, MatLabel, MatInput, MatDatepickerInput,
|
|
3581
|
-
}], ctorParameters: () => [
|
|
3759
|
+
], imports: [ReactiveFormsModule, MatFormField$1, MatLabel$1, MatInput, MatDatepickerInput, MatDatepickerToggle, MatDatepicker, MatSuffix, MatSelect, MatOption, MatButton], template: "<div class=\"datetime-wrapper\" [class.datetime-mode]=\"isDateTime\" [class.has-seconds]=\"showSeconds\">\n <mat-form-field class=\"date-field\">\n @if (display) {\n <mat-label>{{ display }}</mat-label>\n }\n <input\n matInput\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeHolder\"\n [formControl]=\"dateControl\"\n [disabled]=\"isDisabled\"\n (dateChange)=\"markTouched()\"\n (blur)=\"markTouched()\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n\n @if (isDateTime) {\n <div class=\"time-row\">\n <mat-form-field class=\"time-field\">\n <mat-label>HH</mat-label>\n <mat-select [formControl]=\"hourControl\" [disabled]=\"isDisabled\" (selectionChange)=\"markTouched()\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"time-field\">\n <mat-label>MM</mat-label>\n <mat-select [formControl]=\"minuteControl\" [disabled]=\"isDisabled\" (selectionChange)=\"markTouched()\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n @if (showSeconds) {\n <mat-form-field class=\"time-field\">\n <mat-label>SS</mat-label>\n <mat-select [formControl]=\"secondControl\" [disabled]=\"isDisabled\" (selectionChange)=\"markTouched()\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n }\n\n <div class=\"actions-row\">\n <button mat-button type=\"button\" (click)=\"clear()\" [disabled]=\"isDisabled\">Clear</button>\n </div>\n</div>\n", styles: [".datetime-wrapper{display:flex;flex-direction:column;gap:8px;width:100%}.date-field,.time-field{width:100%}.time-row{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.actions-row{display:flex;justify-content:flex-end}@media(min-width:720px){.time-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:960px){.datetime-wrapper.datetime-mode{display:grid;align-items:start;gap:8px;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(84px,96px)) auto}.datetime-wrapper.datetime-mode.has-seconds{grid-template-columns:minmax(240px,2fr) repeat(3,minmax(84px,96px)) auto}.datetime-wrapper.datetime-mode .date-field{margin-bottom:0}.datetime-wrapper.datetime-mode .time-row{display:contents}.datetime-wrapper.datetime-mode .actions-row{align-self:start;justify-content:flex-start;padding-top:4px}}\n"] }]
|
|
3760
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
3761
|
+
type: Optional
|
|
3762
|
+
}, {
|
|
3763
|
+
type: Inject,
|
|
3764
|
+
args: [MAT_DATE_LOCALE]
|
|
3765
|
+
}] }], propDecorators: { _value: [{
|
|
3582
3766
|
type: Input,
|
|
3583
3767
|
args: ['value']
|
|
3584
3768
|
}], display: [{
|
|
@@ -3590,14 +3774,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
3590
3774
|
}], mode: [{
|
|
3591
3775
|
type: Input,
|
|
3592
3776
|
args: ['mode']
|
|
3593
|
-
}], showSpinners: [{
|
|
3594
|
-
type: Input
|
|
3595
3777
|
}], showSeconds: [{
|
|
3596
3778
|
type: Input
|
|
3597
|
-
}], disableMinute: [{
|
|
3598
|
-
type: Input
|
|
3599
3779
|
}] } });
|
|
3600
3780
|
|
|
3781
|
+
class CallbackDirective {
|
|
3782
|
+
constructor() { }
|
|
3783
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CallbackDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3784
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: CallbackDirective, isStandalone: true, selector: "[glowwCallback]", ngImport: i0 }); }
|
|
3785
|
+
}
|
|
3786
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: CallbackDirective, decorators: [{
|
|
3787
|
+
type: Directive,
|
|
3788
|
+
args: [{
|
|
3789
|
+
selector: '[glowwCallback]',
|
|
3790
|
+
standalone: true
|
|
3791
|
+
}]
|
|
3792
|
+
}], ctorParameters: () => [] });
|
|
3793
|
+
|
|
3794
|
+
class GlowwMatPaginatorIntlService extends MatPaginatorIntl {
|
|
3795
|
+
constructor(i18n) {
|
|
3796
|
+
super();
|
|
3797
|
+
this.i18n = i18n;
|
|
3798
|
+
this.getRangeLabel = (page, pageSize, length) => {
|
|
3799
|
+
if (length === 0 || pageSize === 0) {
|
|
3800
|
+
return `0 ${this.i18n.instant('PAGINATOR.OF', 'of')} ${length}`;
|
|
3801
|
+
}
|
|
3802
|
+
const startIndex = page * pageSize;
|
|
3803
|
+
const endIndex = Math.min(startIndex + pageSize, length);
|
|
3804
|
+
return `${startIndex + 1}-${endIndex} ${this.i18n.instant('PAGINATOR.OF', 'of')} ${length}`;
|
|
3805
|
+
};
|
|
3806
|
+
this.subscription = this.i18n.langChanges$.subscribe(() => this.translateLabels());
|
|
3807
|
+
this.translateLabels();
|
|
3808
|
+
}
|
|
3809
|
+
ngOnDestroy() {
|
|
3810
|
+
this.subscription.unsubscribe();
|
|
3811
|
+
}
|
|
3812
|
+
translateLabels() {
|
|
3813
|
+
this.itemsPerPageLabel = this.i18n.instant('PAGINATOR.ITEMS_PER_PAGE', 'Items per page');
|
|
3814
|
+
this.nextPageLabel = this.i18n.instant('PAGINATOR.NEXT_PAGE', 'Next page');
|
|
3815
|
+
this.previousPageLabel = this.i18n.instant('PAGINATOR.PREVIOUS_PAGE', 'Previous page');
|
|
3816
|
+
this.firstPageLabel = this.i18n.instant('PAGINATOR.FIRST_PAGE', 'First page');
|
|
3817
|
+
this.lastPageLabel = this.i18n.instant('PAGINATOR.LAST_PAGE', 'Last page');
|
|
3818
|
+
this.changes.next();
|
|
3819
|
+
}
|
|
3820
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwMatPaginatorIntlService, deps: [{ token: GlowwI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3821
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwMatPaginatorIntlService }); }
|
|
3822
|
+
}
|
|
3823
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwMatPaginatorIntlService, decorators: [{
|
|
3824
|
+
type: Injectable
|
|
3825
|
+
}], ctorParameters: () => [{ type: GlowwI18nService }] });
|
|
3826
|
+
|
|
3601
3827
|
class BaseCollectionComponent {
|
|
3602
3828
|
constructor(_formBuilder) {
|
|
3603
3829
|
this._formBuilder = _formBuilder;
|
|
@@ -3639,26 +3865,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
3639
3865
|
type: Injectable
|
|
3640
3866
|
}] });
|
|
3641
3867
|
|
|
3868
|
+
const GLOWW_STANDALONE_DECLARATIONS = [
|
|
3869
|
+
UploadDocComponent,
|
|
3870
|
+
SafeHtmlPipe,
|
|
3871
|
+
DisplayObjectsComponent,
|
|
3872
|
+
HeaderComponent,
|
|
3873
|
+
ResultTableComponent,
|
|
3874
|
+
SearchFormComponent,
|
|
3875
|
+
ConfirmationComponent,
|
|
3876
|
+
PromptComponent,
|
|
3877
|
+
SecurePipe,
|
|
3878
|
+
SecureImgComponent,
|
|
3879
|
+
MenuListItemComponent,
|
|
3880
|
+
CodeEditorComponent,
|
|
3881
|
+
HtmlEditorComponent,
|
|
3882
|
+
HtmlFormatPipe,
|
|
3883
|
+
UploadFileComponent,
|
|
3884
|
+
FileSinkDirective,
|
|
3885
|
+
FileEditComponent,
|
|
3886
|
+
FoldersComponent,
|
|
3887
|
+
DownloadProgressComponent,
|
|
3888
|
+
SecureAComponent,
|
|
3889
|
+
DummyComponent,
|
|
3890
|
+
SelectComponent,
|
|
3891
|
+
AutoCompleteComponent,
|
|
3892
|
+
DatetimeComponent,
|
|
3893
|
+
RouteDirective,
|
|
3894
|
+
CallbackDirective,
|
|
3895
|
+
FilterFormComponent
|
|
3896
|
+
];
|
|
3897
|
+
const GLOWW_MODULE_EXPORTS = [
|
|
3898
|
+
...GLOWW_STANDALONE_DECLARATIONS,
|
|
3899
|
+
MatDatepickerModule,
|
|
3900
|
+
NgxMatDatetimePickerModule,
|
|
3901
|
+
NgxMatTimepickerComponent,
|
|
3902
|
+
NgxMatNativeDateModule
|
|
3903
|
+
];
|
|
3904
|
+
function getGlowwProviders(folderServiceConfig) {
|
|
3905
|
+
return [
|
|
3906
|
+
VersionCheckService,
|
|
3907
|
+
NavService,
|
|
3908
|
+
VoiceRecognitionService,
|
|
3909
|
+
{
|
|
3910
|
+
provide: FolderServiceConfig,
|
|
3911
|
+
useValue: folderServiceConfig
|
|
3912
|
+
},
|
|
3913
|
+
{ provide: MAT_DATE_LOCALE, useValue: 'fr' }
|
|
3914
|
+
];
|
|
3915
|
+
}
|
|
3916
|
+
function provideGloww(folderServiceConfig) {
|
|
3917
|
+
return makeEnvironmentProviders(getGlowwProviders(folderServiceConfig));
|
|
3918
|
+
}
|
|
3642
3919
|
class GlowwModule {
|
|
3643
3920
|
static forRoot(folderServiceConfig) {
|
|
3644
3921
|
console.log(`forRoot ${folderServiceConfig}`);
|
|
3645
3922
|
return {
|
|
3646
3923
|
ngModule: GlowwModule,
|
|
3647
|
-
providers:
|
|
3648
|
-
VersionCheckService,
|
|
3649
|
-
NavService,
|
|
3650
|
-
VoiceRecognitionService,
|
|
3651
|
-
{
|
|
3652
|
-
provide: FolderServiceConfig,
|
|
3653
|
-
useValue: folderServiceConfig
|
|
3654
|
-
},
|
|
3655
|
-
{ provide: MAT_DATE_LOCALE, useValue: 'fr' }
|
|
3656
|
-
]
|
|
3924
|
+
providers: getGlowwProviders(folderServiceConfig)
|
|
3657
3925
|
};
|
|
3658
3926
|
}
|
|
3659
3927
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3660
3928
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: GlowwModule, imports: [CommonModule,
|
|
3661
|
-
BrowserModule,
|
|
3662
3929
|
RouterModule,
|
|
3663
3930
|
FormsModule,
|
|
3664
3931
|
ReactiveFormsModule,
|
|
@@ -3683,8 +3950,7 @@ class GlowwModule {
|
|
|
3683
3950
|
NgxMatNativeDateModule, // Existe selon ta liste
|
|
3684
3951
|
//NgxMatMomentModule,
|
|
3685
3952
|
DragDropModule,
|
|
3686
|
-
AngularResizeEventModule,
|
|
3687
|
-
UploadDocComponent,
|
|
3953
|
+
AngularResizeEventModule, UploadDocComponent,
|
|
3688
3954
|
SafeHtmlPipe,
|
|
3689
3955
|
DisplayObjectsComponent,
|
|
3690
3956
|
HeaderComponent,
|
|
@@ -3709,9 +3975,9 @@ class GlowwModule {
|
|
|
3709
3975
|
AutoCompleteComponent,
|
|
3710
3976
|
DatetimeComponent,
|
|
3711
3977
|
RouteDirective,
|
|
3712
|
-
|
|
3713
|
-
UploadDocComponent,
|
|
3714
|
-
|
|
3978
|
+
CallbackDirective,
|
|
3979
|
+
FilterFormComponent], exports: [UploadDocComponent,
|
|
3980
|
+
SafeHtmlPipe,
|
|
3715
3981
|
DisplayObjectsComponent,
|
|
3716
3982
|
HeaderComponent,
|
|
3717
3983
|
ResultTableComponent,
|
|
@@ -3724,6 +3990,9 @@ class GlowwModule {
|
|
|
3724
3990
|
CodeEditorComponent,
|
|
3725
3991
|
HtmlEditorComponent,
|
|
3726
3992
|
HtmlFormatPipe,
|
|
3993
|
+
UploadFileComponent,
|
|
3994
|
+
FileSinkDirective,
|
|
3995
|
+
FileEditComponent,
|
|
3727
3996
|
FoldersComponent,
|
|
3728
3997
|
DownloadProgressComponent,
|
|
3729
3998
|
SecureAComponent,
|
|
@@ -3731,14 +4000,13 @@ class GlowwModule {
|
|
|
3731
4000
|
SelectComponent,
|
|
3732
4001
|
AutoCompleteComponent,
|
|
3733
4002
|
DatetimeComponent,
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwModule, imports: [CommonModule,
|
|
3741
|
-
BrowserModule,
|
|
4003
|
+
RouteDirective,
|
|
4004
|
+
CallbackDirective,
|
|
4005
|
+
FilterFormComponent, MatDatepickerModule,
|
|
4006
|
+
NgxMatDatetimePickerModule,
|
|
4007
|
+
NgxMatTimepickerComponent,
|
|
4008
|
+
NgxMatNativeDateModule] }); }
|
|
4009
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwModule, providers: [{ provide: MatPaginatorIntl, useClass: GlowwMatPaginatorIntlService }], imports: [CommonModule,
|
|
3742
4010
|
RouterModule,
|
|
3743
4011
|
FormsModule,
|
|
3744
4012
|
ReactiveFormsModule,
|
|
@@ -3763,8 +4031,7 @@ class GlowwModule {
|
|
|
3763
4031
|
NgxMatNativeDateModule, // Existe selon ta liste
|
|
3764
4032
|
//NgxMatMomentModule,
|
|
3765
4033
|
DragDropModule,
|
|
3766
|
-
AngularResizeEventModule,
|
|
3767
|
-
UploadDocComponent,
|
|
4034
|
+
AngularResizeEventModule, UploadDocComponent,
|
|
3768
4035
|
DisplayObjectsComponent,
|
|
3769
4036
|
ConfirmationComponent,
|
|
3770
4037
|
PromptComponent,
|
|
@@ -3779,7 +4046,7 @@ class GlowwModule {
|
|
|
3779
4046
|
AutoCompleteComponent,
|
|
3780
4047
|
DatetimeComponent,
|
|
3781
4048
|
FilterFormComponent, MatDatepickerModule,
|
|
3782
|
-
NgxMatDatetimePickerModule,
|
|
4049
|
+
NgxMatDatetimePickerModule,
|
|
3783
4050
|
NgxMatNativeDateModule] }); }
|
|
3784
4051
|
}
|
|
3785
4052
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: GlowwModule, decorators: [{
|
|
@@ -3787,7 +4054,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
3787
4054
|
args: [{
|
|
3788
4055
|
imports: [
|
|
3789
4056
|
CommonModule,
|
|
3790
|
-
BrowserModule,
|
|
3791
4057
|
RouterModule,
|
|
3792
4058
|
FormsModule,
|
|
3793
4059
|
ReactiveFormsModule,
|
|
@@ -3813,64 +4079,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
3813
4079
|
//NgxMatMomentModule,
|
|
3814
4080
|
DragDropModule,
|
|
3815
4081
|
AngularResizeEventModule,
|
|
3816
|
-
|
|
3817
|
-
SafeHtmlPipe,
|
|
3818
|
-
DisplayObjectsComponent,
|
|
3819
|
-
HeaderComponent,
|
|
3820
|
-
ResultTableComponent,
|
|
3821
|
-
SearchFormComponent,
|
|
3822
|
-
ConfirmationComponent,
|
|
3823
|
-
PromptComponent,
|
|
3824
|
-
SecurePipe,
|
|
3825
|
-
SecureImgComponent,
|
|
3826
|
-
MenuListItemComponent,
|
|
3827
|
-
CodeEditorComponent,
|
|
3828
|
-
HtmlEditorComponent,
|
|
3829
|
-
HtmlFormatPipe,
|
|
3830
|
-
UploadFileComponent,
|
|
3831
|
-
FileSinkDirective,
|
|
3832
|
-
FileEditComponent,
|
|
3833
|
-
FoldersComponent,
|
|
3834
|
-
DownloadProgressComponent,
|
|
3835
|
-
SecureAComponent,
|
|
3836
|
-
DummyComponent,
|
|
3837
|
-
SelectComponent,
|
|
3838
|
-
AutoCompleteComponent,
|
|
3839
|
-
DatetimeComponent,
|
|
3840
|
-
RouteDirective,
|
|
3841
|
-
FilterFormComponent
|
|
4082
|
+
...GLOWW_STANDALONE_DECLARATIONS
|
|
3842
4083
|
],
|
|
3843
|
-
providers: [],
|
|
3844
|
-
exports: [
|
|
3845
|
-
SafeHtmlPipe,
|
|
3846
|
-
UploadDocComponent,
|
|
3847
|
-
UploadFileComponent,
|
|
3848
|
-
DisplayObjectsComponent,
|
|
3849
|
-
HeaderComponent,
|
|
3850
|
-
ResultTableComponent,
|
|
3851
|
-
SearchFormComponent,
|
|
3852
|
-
ConfirmationComponent,
|
|
3853
|
-
PromptComponent,
|
|
3854
|
-
SecurePipe,
|
|
3855
|
-
SecureImgComponent,
|
|
3856
|
-
MenuListItemComponent,
|
|
3857
|
-
CodeEditorComponent,
|
|
3858
|
-
HtmlEditorComponent,
|
|
3859
|
-
HtmlFormatPipe,
|
|
3860
|
-
FoldersComponent,
|
|
3861
|
-
DownloadProgressComponent,
|
|
3862
|
-
SecureAComponent,
|
|
3863
|
-
DummyComponent,
|
|
3864
|
-
SelectComponent,
|
|
3865
|
-
AutoCompleteComponent,
|
|
3866
|
-
DatetimeComponent,
|
|
3867
|
-
MatDatepickerModule,
|
|
3868
|
-
NgxMatDatetimePickerModule, // Existe selon ta liste
|
|
3869
|
-
NgxMatTimepickerComponent, // Attention : ta liste dit "NgxMatTimepickerComponent"
|
|
3870
|
-
NgxMatNativeDateModule, // Existe selon ta liste
|
|
3871
|
-
//NgxMatMomentModule,
|
|
3872
|
-
FilterFormComponent
|
|
3873
|
-
]
|
|
4084
|
+
providers: [{ provide: MatPaginatorIntl, useClass: GlowwMatPaginatorIntlService }],
|
|
4085
|
+
exports: [...GLOWW_MODULE_EXPORTS]
|
|
3874
4086
|
}]
|
|
3875
4087
|
}] });
|
|
3876
4088
|
|
|
@@ -4010,5 +4222,5 @@ class GlowwValidators {
|
|
|
4010
4222
|
* Generated bundle index. Do not edit.
|
|
4011
4223
|
*/
|
|
4012
4224
|
|
|
4013
|
-
export { API_SERVER_URL, AdministratorGuard, AuthGuard, AuthenticationService, AuthenticationServiceConfig, AutoCompleteComponent, BaseCollectionComponent, ChangePasswordDlgComponent, CodeEditorComponent, ConfirmationComponent, ConfirmationModel, DatetimeComponent, DialogService, DisplayObjectsComponent, DownloadProgressComponent, DummyComponent, ErrorInterceptor, FilterFormComponent, FolderService, FolderServiceConfig, FoldersComponent, GLOWW_APPLI, GlowwModule, GlowwSecurityModule, GlowwSecurityService, GlowwService, GlowwValidators, HasUnsavedDataGuard, HeaderComponent, HtmlEditorComponent, HtmlFormatPipe, JwtInterceptor, LoginComponent, MenuListItemComponent, NavService, PromptComponent, PromptModel, ResultTableComponent, SafeHtmlPipe, SearchFormComponent, SecureAComponent, SecureImgComponent, SecurePipe, SelectComponent, StagingInterceptor, UploadDocComponent, UploadFileComponent, UserMenuComponent, VersionCheckService, VoiceRecognitionService };
|
|
4225
|
+
export { API_SERVER_URL, AdministratorGuard, AuthGuard, AuthenticationService, AuthenticationServiceConfig, AutoCompleteComponent, BaseCollectionComponent, CallbackDirective, ChangePasswordDlgComponent, CodeEditorComponent, ConfirmationComponent, ConfirmationModel, DatetimeComponent, DialogService, DisplayObjectsComponent, DownloadProgressComponent, DummyComponent, ErrorInterceptor, FileEditComponent, FileSinkDirective, FilterFormComponent, FolderService, FolderServiceConfig, FoldersComponent, GLOWW_APPLI, GLOWW_MODULE_EXPORTS, GLOWW_SECURITY_STANDALONE_DECLARATIONS, GLOWW_STANDALONE_DECLARATIONS, GlowwModule, GlowwSecurityModule, GlowwSecurityService, GlowwService, GlowwValidators, HasUnsavedDataGuard, HeaderComponent, HtmlEditorComponent, HtmlFormatPipe, JwtInterceptor, LoginComponent, MenuListItemComponent, NavService, PromptComponent, PromptModel, ResultTableComponent, RouteDirective, SafeHtmlPipe, SearchFormComponent, SecureAComponent, SecureImgComponent, SecurePipe, SelectComponent, SocialNetworkComponent, SocialNetworkDlgComponent, StagingInterceptor, UploadDocComponent, UploadFileComponent, UserMenuComponent, VersionCheckService, VoiceRecognitionService, provideGloww, provideGlowwSecurity };
|
|
4014
4226
|
//# sourceMappingURL=gloww-gloww.mjs.map
|