@nettyapps/ntybase 21.1.10 → 21.1.13

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Injectable, inject, NgModule, input, computed, signal, output, effect, linkedSignal, ViewChild, model, Input, InjectionToken, Optional, Inject } from '@angular/core';
2
+ import { Component, Injectable, inject, NgModule, signal, input, computed, effect, output, linkedSignal, ViewChild, model, Input, InjectionToken, Optional, Inject } from '@angular/core';
3
3
  import * as i1$3 from '@angular/common/http';
4
4
  import { HttpErrorResponse, HttpResponse, HTTP_INTERCEPTORS, HttpClient, HttpHeaders } from '@angular/common/http';
5
5
  import { of, throwError, Subject, lastValueFrom, map, catchError as catchError$1, finalize, take as take$1, takeUntil } from 'rxjs';
@@ -19,6 +19,7 @@ import * as i1$2 from '@angular/material/snack-bar';
19
19
  import { MatSnackBarModule } from '@angular/material/snack-bar';
20
20
  import * as i1$1 from '@ngx-translate/core';
21
21
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
22
+ import { Title } from '@angular/platform-browser';
22
23
  import { Mutex } from 'async-mutex';
23
24
  import { themeQuartz, StatusBarModule, ClipboardModule, ExcelExportModule, ColumnMenuModule, ContextMenuModule, CellSelectionModule, RowSelectionModule } from 'ag-grid-enterprise';
24
25
  import { toSignal } from '@angular/core/rxjs-interop';
@@ -27,7 +28,6 @@ import * as i2$2 from '@angular/material/tooltip';
27
28
  import { MatTooltipModule } from '@angular/material/tooltip';
28
29
  import * as i2$3 from '@angular/material/menu';
29
30
  import { MatMenuModule } from '@angular/material/menu';
30
- import { Title } from '@angular/platform-browser';
31
31
  import * as XLSX from 'xlsx';
32
32
  import { I18nService } from '@nettyapps/ntyi18n';
33
33
  import * as i1$4 from '@angular/forms';
@@ -422,6 +422,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
422
422
  }]
423
423
  }], ctorParameters: () => [{ type: i1$2.MatSnackBar }, { type: i1.MatDialog }, { type: i1$1.TranslateService }] });
424
424
 
425
+ class PageTitle {
426
+ title = signal('', ...(ngDevMode ? [{ debugName: "title" }] : []));
427
+ setTitle(newTitle) {
428
+ this.title.set(newTitle);
429
+ }
430
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PageTitle, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
431
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PageTitle, providedIn: 'root' });
432
+ }
433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PageTitle, decorators: [{
434
+ type: Injectable,
435
+ args: [{
436
+ providedIn: 'root',
437
+ }]
438
+ }] });
439
+
425
440
  class NettyAppsBase {
426
441
  // ********************************************
427
442
  // *** INPUTS ***
@@ -429,10 +444,38 @@ class NettyAppsBase {
429
444
  embedded = input(false, ...(ngDevMode ? [{ debugName: "embedded" }] : [])); // Is the form embedded to an other component
430
445
  _isEmbedded = computed(() => this.embedded() ?? false, ...(ngDevMode ? [{ debugName: "_isEmbedded" }] : []));
431
446
  // ---------------------------------
447
+ // --- PAGE TITLE & STATE ---
448
+ // ---------------------------------
449
+ pageName = signal('', ...(ngDevMode ? [{ debugName: "pageName" }] : []));
450
+ currentPageTitle = computed(() => {
451
+ const name = this.pageName();
452
+ return name ? name.startsWith('@') ? name : `@${name}` : '@Page_Title';
453
+ }, ...(ngDevMode ? [{ debugName: "currentPageTitle" }] : []));
454
+ // ---------------------------------
432
455
  // --- SERVICES ---
433
456
  // ---------------------------------
434
457
  alertService = inject(AlertService);
435
458
  translateService = inject(TranslateService);
459
+ pageTitleService = inject(PageTitle);
460
+ titleService = inject(Title);
461
+ // ---------------------------------
462
+ // --- LIFECYLE ---
463
+ // ---------------------------------
464
+ constructor() {
465
+ effect(() => {
466
+ const name = this.pageName();
467
+ if (name) {
468
+ const translationKey = name.startsWith('@') ? name : `@${name}`;
469
+ this.translateService.stream(translationKey).subscribe((translated) => {
470
+ if (translated == translationKey) {
471
+ translated = name;
472
+ }
473
+ this.titleService.setTitle(`${translated}`);
474
+ this.pageTitleService.setTitle(translated);
475
+ });
476
+ }
477
+ });
478
+ }
436
479
  // ---------------------------------
437
480
  // --- DOWNLOAD METHODS ---
438
481
  // ---------------------------------
@@ -548,7 +591,7 @@ class NettyAppsBase {
548
591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NettyAppsBase, decorators: [{
549
592
  type: Component,
550
593
  args: [{ selector: 'ntybase-netty-apps-base', imports: [], template: `` }]
551
- }], propDecorators: { embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }] } });
594
+ }], ctorParameters: () => [], propDecorators: { embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }] } });
552
595
 
553
596
  class NettyHelper {
554
597
  /**
@@ -1283,7 +1326,6 @@ class NettyAgGridBase extends NettyAppsBase {
1283
1326
  searchValueName = signal('Invalid_searchValue', ...(ngDevMode ? [{ debugName: "searchValueName" }] : []));
1284
1327
  preferenceType = signal('Invalid_columnState', ...(ngDevMode ? [{ debugName: "preferenceType" }] : []));
1285
1328
  searchValue = signal('', ...(ngDevMode ? [{ debugName: "searchValue" }] : []));
1286
- pageName = signal('', ...(ngDevMode ? [{ debugName: "pageName" }] : []));
1287
1329
  // Query Parameters can be provide as parameters
1288
1330
  parameterGUID = signal('', ...(ngDevMode ? [{ debugName: "parameterGUID" }] : []));
1289
1331
  parameterType = signal('', ...(ngDevMode ? [{ debugName: "parameterType" }] : []));
@@ -1828,21 +1870,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
1828
1870
  args: [{ selector: 'ntybase-checkbox-renderer', imports: [], host: { 'ntybase-id': 'CheckboxRenderer' }, template: "@if (supportClick) {\n<input\n id=\"checkbox\"\n type=\"checkbox\"\n [checked]=\"checked\"\n (click)=\"onClick($event)\"\n/>\n} @if (!supportClick) {\n<input id=\"checkbox\" type=\"checkbox\" [checked]=\"params.value\" disabled />\n}\n\n<label for=\"checkbox\">{{label}}</label>\n" }]
1829
1871
  }] });
1830
1872
 
1831
- class PageTitle {
1832
- title = signal('', ...(ngDevMode ? [{ debugName: "title" }] : []));
1833
- setTitle(newTitle) {
1834
- this.title.set(newTitle);
1835
- }
1836
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PageTitle, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1837
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PageTitle, providedIn: 'root' });
1838
- }
1839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: PageTitle, decorators: [{
1840
- type: Injectable,
1841
- args: [{
1842
- providedIn: 'root',
1843
- }]
1844
- }] });
1845
-
1846
1873
  ModuleRegistry.registerModules([AllCommunityModule, StatusBarModule, ClientSideRowModelModule, ClipboardModule, ExcelExportModule, ColumnMenuModule,
1847
1874
  ContextMenuModule, CellSelectionModule, HighlightChangesModule, RowSelectionModule,]);
1848
1875
  // AgGrid Dark Mode Row Style
@@ -1854,8 +1881,6 @@ class NettyAgGridListBase extends NettyAgGridBase {
1854
1881
  router = inject(Router);
1855
1882
  routerActive = inject(ActivatedRoute);
1856
1883
  dialog = inject(MatDialog);
1857
- titleService = inject(Title);
1858
- pageTitleService = inject(PageTitle);
1859
1884
  // Parse query parameters
1860
1885
  queryParameterGUID = toSignal(this.routerActive.queryParamMap.pipe(map((params) => params.get('parameters')), map((value) => this.parseOrReturnValue(value))), {
1861
1886
  initialValue: null, // set initial value to null
@@ -2008,10 +2033,7 @@ class NettyAgGridListBase extends NettyAgGridBase {
2008
2033
  }
2009
2034
  if (this.hasValidValue(this.parameterGUID())) {
2010
2035
  this.setFilter();
2011
- if (this._isEmbedded()) {
2012
- this.loadData();
2013
- }
2014
- //this.loadData();
2036
+ this.loadData();
2015
2037
  }
2016
2038
  else if (!this._isPopupValid()) {
2017
2039
  // Clear right side nav if parameterGUID is not provided
@@ -2038,16 +2060,24 @@ class NettyAgGridListBase extends NettyAgGridBase {
2038
2060
  this.initAgGrid();
2039
2061
  });
2040
2062
  effect(() => {
2041
- const name = this.pageName();
2042
- if (name) {
2043
- const translationKey = name.startsWith('@') ? name : `@${name}`;
2044
- this.translateService.stream(translationKey).subscribe((translated) => {
2045
- if (translated == translationKey) {
2046
- translated = name;
2047
- }
2048
- this.titleService.setTitle(`${translated}`);
2049
- this.pageTitleService.setTitle(translated);
2050
- });
2063
+ const isEmbedded = this._isEmbedded();
2064
+ const currentPref = this.preferenceType();
2065
+ const currentSearch = this.searchValueName();
2066
+ if (isEmbedded) {
2067
+ if (currentPref && !currentPref.endsWith('_isEmbedded')) {
2068
+ this.preferenceType.set(`${currentPref}_isEmbedded`);
2069
+ }
2070
+ if (currentSearch && !currentSearch.endsWith('_isEmbedded')) {
2071
+ this.searchValueName.set(`${currentSearch}_isEmbedded`);
2072
+ }
2073
+ }
2074
+ else {
2075
+ if (currentPref?.endsWith('_isEmbedded')) {
2076
+ this.preferenceType.set(currentPref.replace('_isEmbedded', ''));
2077
+ }
2078
+ if (currentSearch?.endsWith('_isEmbedded')) {
2079
+ this.searchValueName.set(currentSearch.replace('_isEmbedded', ''));
2080
+ }
2051
2081
  }
2052
2082
  });
2053
2083
  }
@@ -2107,10 +2137,6 @@ class NettyAgGridListBase extends NettyAgGridBase {
2107
2137
  error: (err) => this.alertService.showError(err),
2108
2138
  });
2109
2139
  }
2110
- currentPageTitle = computed(() => {
2111
- const name = this.pageName();
2112
- return name ? name.startsWith('@') ? name : `@${name}` : '@Page_Title';
2113
- }, ...(ngDevMode ? [{ debugName: "currentPageTitle" }] : []));
2114
2140
  // *****************************************
2115
2141
  // *** Logging Functions ***
2116
2142
  // *****************************************
@@ -2138,6 +2164,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
2138
2164
  args: [{ selector: 'ntybase-ag-grid-list-base', imports: [], template: ``, host: { 'ntybase-id': 'NettyAgGridListBase' } }]
2139
2165
  }], ctorParameters: () => [] });
2140
2166
 
2167
+ class Guid {
2168
+ value = this.empty;
2169
+ constructor(value) {
2170
+ if (value) {
2171
+ if (Guid.isValid(value)) {
2172
+ this.value = value;
2173
+ }
2174
+ }
2175
+ }
2176
+ static newGuid() {
2177
+ return new Guid('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
2178
+ const r = (Math.random() * 16) | 0;
2179
+ const v = c == 'x' ? r : (r & 0x3) | 0x8;
2180
+ return v.toString(16);
2181
+ }));
2182
+ }
2183
+ /**
2184
+ * return all zeros '00000000-0000-0000-0000-000000000000'
2185
+ */
2186
+ static get empty() {
2187
+ return '00000000-0000-0000-0000-000000000000';
2188
+ }
2189
+ get empty() {
2190
+ return Guid.empty;
2191
+ }
2192
+ static isValid(str) {
2193
+ const validRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
2194
+ return validRegex.test(str);
2195
+ }
2196
+ toString() {
2197
+ return this.value;
2198
+ }
2199
+ toJSON() {
2200
+ return this.value;
2201
+ }
2202
+ /**
2203
+ * True is guid is empty or not valid
2204
+ * @param str
2205
+ * @returns
2206
+ */
2207
+ static isNullOrEmpty(str) {
2208
+ if (str == null || str == undefined || str.trim() == '' || str == Guid.empty) {
2209
+ return true;
2210
+ }
2211
+ if (!Guid.isValid(str)) {
2212
+ return true;
2213
+ }
2214
+ return false;
2215
+ }
2216
+ /**
2217
+ * True if the guid is valid and not all zeros (empty)
2218
+ * @param str
2219
+ * @returns
2220
+ */
2221
+ static isValidAndNotEmpty(str) {
2222
+ return !Guid.isNullOrEmpty(str);
2223
+ }
2224
+ /**
2225
+ * Return empty guid if the given guid is not valid
2226
+ * @param guid
2227
+ * @returns
2228
+ */
2229
+ static emptyWhenNull(guid) {
2230
+ if (Guid.isValidAndNotEmpty(guid)) {
2231
+ return guid;
2232
+ }
2233
+ return Guid.empty;
2234
+ }
2235
+ }
2236
+
2141
2237
  ModuleRegistry.registerModules([AllCommunityModule, StatusBarModule, ClientSideRowModelModule, ClipboardModule, ExcelExportModule, ColumnMenuModule,
2142
2238
  ContextMenuModule, CellSelectionModule, HighlightChangesModule, RowSelectionModule,]);
2143
2239
  // AgGrid Dark Mode Row Style
@@ -2178,7 +2274,7 @@ class NettyAgGridListFilterBase extends NettyAgGridListBase {
2178
2274
  // *** Data Management Functions ***
2179
2275
  // *********************************************************
2180
2276
  loadData() {
2181
- if (this._displayFilter()) {
2277
+ if (Guid.isNullOrEmpty(this.parameterGUID())) {
2182
2278
  this.setData([], true);
2183
2279
  return;
2184
2280
  }
@@ -4579,5 +4675,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
4579
4675
  * Generated bundle index. Do not edit.
4580
4676
  */
4581
4677
 
4582
- export { AlertService, AuthenticationGuard, AuthenticationInterceptor, AuthenticationService, ButtonRenderer, CanDeactivateGuard, CheckboxRenderer, CommonService, ConfirmDialog, CredentialsService, CurrentUserPreference, ENVIRONMENT_CONFIG, EnvironmentInfo, EnvironmentInfoService, ExcelImportBase, ForgotPassword, Login, LoginDto, MFACodeDto, MfaLogin, NettyAgGridBase, NettyAgGridListBase, NettyAgGridListFilterBase, NettyAgGridLogBase, NettyAgGridSaveBase, NettyAgGridService, NettyAppsBase, NettyAppsFilterBase, NettyBaseApp, NettyHelper, NettyImageService, NettyMenuService, NtyLoadingComponent, NtyLoadingInterceptor, NtyLoadingService, Ntybase, NtybaseModule, PageTitle, RangeDateTimeFilter, RangeNumberFilter, RangeStringFilter, UrlHelperService, ntyAuthenticationInterceptor };
4678
+ export { AlertService, AuthenticationGuard, AuthenticationInterceptor, AuthenticationService, ButtonRenderer, CanDeactivateGuard, CheckboxRenderer, CommonService, ConfirmDialog, CredentialsService, CurrentUserPreference, ENVIRONMENT_CONFIG, EnvironmentInfo, EnvironmentInfoService, ExcelImportBase, ForgotPassword, Guid, Login, LoginDto, MFACodeDto, MfaLogin, NettyAgGridBase, NettyAgGridListBase, NettyAgGridListFilterBase, NettyAgGridLogBase, NettyAgGridSaveBase, NettyAgGridService, NettyAppsBase, NettyAppsFilterBase, NettyBaseApp, NettyHelper, NettyImageService, NettyMenuService, NtyLoadingComponent, NtyLoadingInterceptor, NtyLoadingService, Ntybase, NtybaseModule, PageTitle, RangeDateTimeFilter, RangeNumberFilter, RangeStringFilter, UrlHelperService, ntyAuthenticationInterceptor };
4583
4679
  //# sourceMappingURL=nettyapps-ntybase.mjs.map