@abp/ng.core 7.0.1 → 7.0.3

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.
Files changed (124) hide show
  1. package/esm2020/lib/abstracts/auth-response.model.mjs +2 -0
  2. package/esm2020/lib/abstracts/auth.service.mjs +6 -3
  3. package/esm2020/lib/abstracts/index.mjs +2 -1
  4. package/esm2020/lib/abstracts/ng-model.component.mjs +1 -1
  5. package/esm2020/lib/clients/http.client.mjs +34 -0
  6. package/esm2020/lib/clients/index.mjs +2 -0
  7. package/esm2020/lib/components/dynamic-layout.component.mjs +6 -4
  8. package/esm2020/lib/components/replaceable-route-container.component.mjs +1 -1
  9. package/esm2020/lib/directives/debounce.directive.mjs +1 -1
  10. package/esm2020/lib/directives/for.directive.mjs +20 -12
  11. package/esm2020/lib/directives/form-submit.directive.mjs +2 -2
  12. package/esm2020/lib/directives/replaceable-template.directive.mjs +9 -5
  13. package/esm2020/lib/directives/stop-propagation.directive.mjs +2 -2
  14. package/esm2020/lib/handlers/routes.handler.mjs +9 -7
  15. package/esm2020/lib/interceptors/api.interceptor.mjs +3 -2
  16. package/esm2020/lib/models/auth.mjs +1 -1
  17. package/esm2020/lib/models/dtos.mjs +6 -6
  18. package/esm2020/lib/models/environment.mjs +1 -1
  19. package/esm2020/lib/models/session.mjs +1 -1
  20. package/esm2020/lib/providers/include-localization-resources.provider.mjs +2 -2
  21. package/esm2020/lib/providers/locale.provider.mjs +6 -2
  22. package/esm2020/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +1 -1
  23. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +1 -1
  24. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +1 -1
  25. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +2 -2
  26. package/esm2020/lib/proxy/volo/abp/http/modeling/models.mjs +1 -1
  27. package/esm2020/lib/proxy/volo/abp/localization/models.mjs +1 -1
  28. package/esm2020/lib/services/config-state.service.mjs +4 -1
  29. package/esm2020/lib/services/dom-insertion.service.mjs +6 -4
  30. package/esm2020/lib/services/environment.service.mjs +5 -5
  31. package/esm2020/lib/services/http-wait.service.mjs +4 -1
  32. package/esm2020/lib/services/lazy-load.service.mjs +6 -4
  33. package/esm2020/lib/services/localization.service.mjs +7 -7
  34. package/esm2020/lib/services/multi-tenancy.service.mjs +1 -1
  35. package/esm2020/lib/services/permission.service.mjs +1 -1
  36. package/esm2020/lib/services/replaceable-components.service.mjs +1 -1
  37. package/esm2020/lib/services/resource-wait.service.mjs +2 -2
  38. package/esm2020/lib/services/rest.service.mjs +2 -3
  39. package/esm2020/lib/services/router-events.service.mjs +2 -2
  40. package/esm2020/lib/services/routes.service.mjs +2 -2
  41. package/esm2020/lib/services/session-state.service.mjs +1 -1
  42. package/esm2020/lib/services/subscription.service.mjs +4 -2
  43. package/esm2020/lib/strategies/content-security.strategy.mjs +4 -2
  44. package/esm2020/lib/strategies/content.strategy.mjs +6 -2
  45. package/esm2020/lib/strategies/context.strategy.mjs +1 -1
  46. package/esm2020/lib/strategies/cross-origin.strategy.mjs +4 -2
  47. package/esm2020/lib/strategies/loading.strategy.mjs +1 -1
  48. package/esm2020/lib/tokens/http-context.token.mjs +3 -0
  49. package/esm2020/lib/tokens/include-localization-resources.token.mjs +2 -2
  50. package/esm2020/lib/tokens/index.mjs +2 -1
  51. package/esm2020/lib/tokens/localization.token.mjs +1 -1
  52. package/esm2020/lib/tokens/set-token-response-to-storage.token.mjs +4 -1
  53. package/esm2020/lib/utils/common-utils.mjs +4 -1
  54. package/esm2020/lib/utils/date-utils.mjs +3 -3
  55. package/esm2020/lib/utils/environment-utils.mjs +2 -2
  56. package/esm2020/lib/utils/factory-utils.mjs +2 -2
  57. package/esm2020/lib/utils/internal-store-utils.mjs +2 -1
  58. package/esm2020/lib/utils/lazy-load-utils.mjs +2 -2
  59. package/esm2020/lib/utils/localization-utils.mjs +1 -1
  60. package/esm2020/lib/utils/multi-tenancy-utils.mjs +7 -4
  61. package/esm2020/lib/utils/object-utils.mjs +1 -1
  62. package/esm2020/lib/utils/route-utils.mjs +2 -2
  63. package/esm2020/lib/utils/tree-utils.mjs +1 -1
  64. package/esm2020/lib/validators/range.validator.mjs +1 -1
  65. package/esm2020/lib/validators/required.validator.mjs +1 -1
  66. package/esm2020/lib/validators/string-length.validator.mjs +1 -1
  67. package/esm2020/lib/validators/username.validator.mjs +2 -2
  68. package/esm2020/locale/utils/register-locale.mjs +2 -2
  69. package/esm2020/public-api.mjs +2 -1
  70. package/esm2020/testing/lib/services/mock-permission.service.mjs +1 -1
  71. package/esm2020/testing/lib/services/mock-rest.service.mjs +2 -2
  72. package/fesm2015/abp-ng.core-locale.mjs +1 -1
  73. package/fesm2015/abp-ng.core-locale.mjs.map +1 -1
  74. package/fesm2015/abp-ng.core-testing.mjs.map +1 -1
  75. package/fesm2015/abp-ng.core.mjs +163 -75
  76. package/fesm2015/abp-ng.core.mjs.map +1 -1
  77. package/fesm2020/abp-ng.core-locale.mjs +1 -1
  78. package/fesm2020/abp-ng.core-locale.mjs.map +1 -1
  79. package/fesm2020/abp-ng.core-testing.mjs.map +1 -1
  80. package/fesm2020/abp-ng.core.mjs +153 -71
  81. package/fesm2020/abp-ng.core.mjs.map +1 -1
  82. package/lib/abstracts/auth-response.model.d.ts +10 -0
  83. package/lib/abstracts/auth.service.d.ts +4 -1
  84. package/lib/abstracts/index.d.ts +1 -0
  85. package/lib/abstracts/ng-model.component.d.ts +4 -4
  86. package/lib/clients/http.client.d.ts +11 -0
  87. package/lib/clients/index.d.ts +1 -0
  88. package/lib/components/dynamic-layout.component.d.ts +2 -2
  89. package/lib/components/replaceable-route-container.component.d.ts +1 -1
  90. package/lib/directives/for.directive.d.ts +6 -6
  91. package/lib/directives/form-submit.directive.d.ts +1 -1
  92. package/lib/models/auth.d.ts +4 -1
  93. package/lib/models/dtos.d.ts +11 -11
  94. package/lib/models/environment.d.ts +3 -1
  95. package/lib/models/session.d.ts +1 -1
  96. package/lib/providers/include-localization-resources.provider.d.ts +1 -1
  97. package/lib/proxy/volo/abp/http/modeling/models.d.ts +1 -1
  98. package/lib/proxy/volo/abp/localization/models.d.ts +1 -0
  99. package/lib/services/config-state.service.d.ts +5 -3
  100. package/lib/services/dom-insertion.service.d.ts +1 -1
  101. package/lib/services/environment.service.d.ts +1 -1
  102. package/lib/services/localization.service.d.ts +5 -2
  103. package/lib/services/multi-tenancy.service.d.ts +1 -1
  104. package/lib/services/permission.service.d.ts +2 -2
  105. package/lib/services/replaceable-components.service.d.ts +2 -2
  106. package/lib/services/rest.service.d.ts +1 -1
  107. package/lib/services/router-events.service.d.ts +2 -2
  108. package/lib/services/routes.service.d.ts +3 -1
  109. package/lib/services/session-state.service.d.ts +1 -1
  110. package/lib/services/subscription.service.d.ts +1 -1
  111. package/lib/strategies/cross-origin.strategy.d.ts +2 -2
  112. package/lib/tokens/http-context.token.d.ts +2 -0
  113. package/lib/tokens/include-localization-resources.token.d.ts +1 -1
  114. package/lib/tokens/index.d.ts +1 -0
  115. package/lib/tokens/localization.token.d.ts +2 -2
  116. package/lib/tokens/set-token-response-to-storage.token.d.ts +3 -0
  117. package/lib/utils/common-utils.d.ts +9 -8
  118. package/lib/utils/factory-utils.d.ts +3 -1
  119. package/lib/utils/localization-utils.d.ts +1 -1
  120. package/lib/utils/object-utils.d.ts +2 -1
  121. package/lib/utils/route-utils.d.ts +2 -2
  122. package/lib/utils/tree-utils.d.ts +3 -3
  123. package/package.json +3 -3
  124. package/public-api.d.ts +1 -0
@@ -1,17 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, isDevMode, Optional, SkipSelf, Directive, EventEmitter, Output, Self, Injector, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, NgModuleFactory, Compiler, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
3
- import { of, BehaviorSubject, Subject, throwError, combineLatest, from, Subscription, fromEvent, ReplaySubject, lastValueFrom, Observable, timer, concat } from 'rxjs';
3
+ import { of, BehaviorSubject, Subject, throwError, combineLatest, from, Subscription, fromEvent, ReplaySubject, lastValueFrom, Observable, timer, pipe, concat } from 'rxjs';
4
4
  import * as i1$1 from '@angular/router';
5
5
  import { PRIMARY_OUTLET, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, ActivatedRoute, Router, RouterModule } from '@angular/router';
6
6
  import * as i5 from '@angular/common';
7
7
  import { registerLocaleData, DOCUMENT, DatePipe, DATE_PIPE_DEFAULT_TIMEZONE, CommonModule } from '@angular/common';
8
- import { map, distinctUntilChanged, filter, catchError, switchMap, take, tap, debounceTime, mapTo, takeUntil, retryWhen, delay, shareReplay, finalize } from 'rxjs/operators';
8
+ import { map, distinctUntilChanged, filter, catchError, switchMap, take, tap, debounceTime, mapTo, takeUntil, delay, retryWhen, shareReplay, finalize } from 'rxjs/operators';
9
9
  import * as i1 from '@angular/common/http';
10
- import { HttpParams, HttpClient, HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
10
+ import { HttpParams, HttpClient, HttpClientModule, HttpClientXsrfModule, HttpContextToken, HttpHeaders, HttpContext } from '@angular/common/http';
11
11
  import compare from 'just-compare';
12
12
  import * as i1$2 from '@angular/forms';
13
13
  import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
14
14
  import clone from 'just-clone';
15
+ import { __classPrivateFieldGet } from 'tslib';
15
16
 
16
17
  // Not an abstract class on purpose. Do not change!
17
18
  class AbstractNgModelComponent {
@@ -89,7 +90,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
89
90
  * Abstract service for Authentication.
90
91
  */
91
92
  class AuthService {
92
- constructor() { }
93
93
  warningMessage() {
94
94
  console.error('You should add @abp/ng-oauth packages or create your own auth packages.');
95
95
  }
@@ -114,6 +114,10 @@ class AuthService {
114
114
  this.warningMessage();
115
115
  return false;
116
116
  }
117
+ loginUsingGrant(grantType, parameters, headers) {
118
+ console.log({ grantType, parameters, headers });
119
+ return Promise.reject(new Error('not implemented'));
120
+ }
117
121
  }
118
122
  AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
119
123
  AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthService, providedIn: 'root' });
@@ -122,7 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
122
126
  args: [{
123
127
  providedIn: 'root',
124
128
  }]
125
- }], ctorParameters: function () { return []; } });
129
+ }] });
126
130
 
127
131
  const LOCALIZATIONS = new InjectionToken('LOCALIZATIONS');
128
132
  function localizationContributor(localizations) {
@@ -248,6 +252,9 @@ function isNode(obj) {
248
252
  }
249
253
  function isObjectAndNotArrayNotNode(obj) {
250
254
  return isObjectAndNotArray(obj) && !isNode(obj);
255
+ }
256
+ function checkHasProp(object, key) {
257
+ return Object.prototype.hasOwnProperty.call(object, key);
251
258
  }
252
259
 
253
260
  function deepMerge(target, source) {
@@ -306,6 +313,7 @@ class InternalStore {
306
313
  this.update$.next(patchedState);
307
314
  }
308
315
  deepPatch(state) {
316
+ // TODO: Strict improve deepMerge
309
317
  this.state$.next(deepMerge(this.state, state));
310
318
  this.update$.next(state);
311
319
  }
@@ -318,7 +326,7 @@ class InternalStore {
318
326
  }
319
327
  }
320
328
 
321
- const mapToApiUrl = (key) => (apis) => (apis[key] || apis.default).url || apis.default.url;
329
+ const mapToApiUrl = (key) => (apis) => ((key && apis[key]) || apis.default).url || apis.default.url;
322
330
  const mapToIssuer = (issuer) => {
323
331
  if (!issuer) {
324
332
  return issuer;
@@ -339,7 +347,7 @@ class EnvironmentService {
339
347
  return this.store.state;
340
348
  }
341
349
  getApiUrl(key) {
342
- return mapToApiUrl(key)(this.store.state.apis);
350
+ return mapToApiUrl(key)(this.store.state?.apis);
343
351
  }
344
352
  getApiUrl$(key) {
345
353
  return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));
@@ -348,11 +356,11 @@ class EnvironmentService {
348
356
  this.store.set(environment);
349
357
  }
350
358
  getIssuer() {
351
- const issuer = this.store.state.oAuthConfig.issuer;
359
+ const issuer = this.store.state?.oAuthConfig?.issuer;
352
360
  return mapToIssuer(issuer);
353
361
  }
354
362
  getIssuer$() {
355
- return this.store.sliceState(state => state.oAuthConfig.issuer).pipe(map(mapToIssuer));
363
+ return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));
356
364
  }
357
365
  }
358
366
  EnvironmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -419,8 +427,7 @@ class RestService {
419
427
  .pipe(catchError(err => (skipHandleError ? throwError(err) : this.handleError(err))));
420
428
  }
421
429
  getParams(params, encoder) {
422
- const filteredParams = Object.keys(params).reduce((acc, key) => {
423
- const value = params[key];
430
+ const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {
424
431
  if (isUndefinedOrEmptyString(value))
425
432
  return acc;
426
433
  if (value === null && !this.options.sendNullsAsQueryParam)
@@ -511,6 +518,9 @@ class ConfigStateService {
511
518
  .subscribe(res => this.store.set(res));
512
519
  }
513
520
  getLocalizationAndCombineWithAppState(appState) {
521
+ if (!appState.localization.currentCulture.cultureName) {
522
+ throw new Error('culture name should defined');
523
+ }
514
524
  return this.getlocalizationResource(appState.localization.currentCulture.cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })));
515
525
  }
516
526
  getlocalizationResource(cultureName) {
@@ -771,13 +781,13 @@ class LocalizationService {
771
781
  Object.entries(remote).forEach(entry => {
772
782
  const resourceName = entry[0];
773
783
  const remoteTexts = entry[1];
774
- let resource = local.get(resourceName) || {};
784
+ let resource = local?.get(resourceName) || {};
775
785
  resource = { ...resource, ...remoteTexts };
776
- local.set(resourceName, resource);
786
+ local?.set(resourceName, resource);
777
787
  });
778
788
  }
779
789
  return local;
780
- }))
790
+ }), filter(Boolean))
781
791
  .subscribe(val => this.localizations$.next(val));
782
792
  }
783
793
  addLocalization(localizations) {
@@ -798,7 +808,7 @@ class LocalizationService {
798
808
  listenToSetLanguage() {
799
809
  this.sessionState
800
810
  .onLanguageChange$()
801
- .pipe(filter(lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang), switchMap(lang => this.configState.refreshAppState().pipe(map(() => lang))), switchMap(lang => from(this.registerLocale(lang).then(() => lang))))
811
+ .pipe(filter(lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang), switchMap(lang => this.configState.refreshAppState().pipe(map(() => lang))), filter(Boolean), switchMap(lang => from(this.registerLocale(lang).then(() => lang))))
802
812
  .subscribe(lang => this._languageChange$.next(lang));
803
813
  }
804
814
  registerLocale(locale) {
@@ -850,14 +860,14 @@ class LocalizationService {
850
860
  getLocalization(state, key, ...interpolateParams) {
851
861
  if (!key)
852
862
  key = '';
853
- let defaultValue;
863
+ let defaultValue = '';
854
864
  if (typeof key !== 'string') {
855
865
  defaultValue = key.defaultValue;
856
866
  key = key.key;
857
867
  }
858
868
  const keys = key.split('::');
859
869
  const warn = (message) => {
860
- if (isDevMode)
870
+ if (isDevMode())
861
871
  console.warn(message);
862
872
  };
863
873
  if (keys.length < 2) {
@@ -1262,7 +1272,7 @@ class AbstractNavTreeService extends AbstractTreeService {
1262
1272
  }
1263
1273
  hasInvisibleChild(identifier) {
1264
1274
  const node = this.find(item => item[this.id] === identifier);
1265
- return node?.children?.some(child => child.invisible);
1275
+ return node?.children?.some(child => child.invisible) || false;
1266
1276
  }
1267
1277
  /* istanbul ignore next */
1268
1278
  ngOnDestroy() {
@@ -1300,7 +1310,9 @@ class SubscriptionService {
1300
1310
  }
1301
1311
  closeOne(subscription) {
1302
1312
  this.removeOne(subscription);
1303
- subscription.unsubscribe();
1313
+ if (subscription) {
1314
+ subscription.unsubscribe();
1315
+ }
1304
1316
  }
1305
1317
  ngOnDestroy() {
1306
1318
  this.subscription.unsubscribe();
@@ -1335,7 +1347,7 @@ class DynamicLayoutComponent {
1335
1347
  ]);
1336
1348
  this.isLayoutVisible = true;
1337
1349
  if (dynamicLayoutComponent) {
1338
- if (isDevMode)
1350
+ if (isDevMode())
1339
1351
  console.warn('DynamicLayoutComponent must be used only in AppComponent.');
1340
1352
  return;
1341
1353
  }
@@ -1367,8 +1379,10 @@ class DynamicLayoutComponent {
1367
1379
  if (this.layoutKey === expectedLayout)
1368
1380
  return;
1369
1381
  const key = this.layouts.get(expectedLayout);
1370
- this.layout = this.getComponent(key)?.component;
1371
- this.layoutKey = expectedLayout;
1382
+ if (key) {
1383
+ this.layout = this.getComponent(key)?.component;
1384
+ this.layoutKey = expectedLayout;
1385
+ }
1372
1386
  if (!this.layout) {
1373
1387
  this.showLayoutNotFoundError(expectedLayout);
1374
1388
  }
@@ -1874,16 +1888,20 @@ class ForDirective {
1874
1888
  const rw = [];
1875
1889
  changes.forEachOperation((record, previousIndex, currentIndex) => {
1876
1890
  if (record.previousIndex == null) {
1877
- const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex);
1891
+ const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex || 0);
1878
1892
  rw.push(new RecordView(record, view));
1879
1893
  }
1880
- else if (currentIndex == null) {
1894
+ else if (currentIndex == null && previousIndex !== null) {
1881
1895
  this.vcRef.remove(previousIndex);
1882
1896
  }
1883
1897
  else {
1884
- const view = this.vcRef.get(previousIndex);
1885
- this.vcRef.move(view, currentIndex);
1886
- rw.push(new RecordView(record, view));
1898
+ if (previousIndex !== null) {
1899
+ const view = this.vcRef.get(previousIndex);
1900
+ if (view && currentIndex !== null) {
1901
+ this.vcRef.move(view, currentIndex);
1902
+ rw.push(new RecordView(record, view));
1903
+ }
1904
+ }
1887
1905
  }
1888
1906
  });
1889
1907
  for (let i = 0, l = rw.length; i < l; i++) {
@@ -1898,8 +1916,10 @@ class ForDirective {
1898
1916
  viewRef.context.list = this.items;
1899
1917
  }
1900
1918
  changes.forEachIdentityChange((record) => {
1901
- const viewRef = this.vcRef.get(record.currentIndex);
1902
- viewRef.context.$implicit = record.item;
1919
+ if (record.currentIndex !== null) {
1920
+ const viewRef = this.vcRef.get(record.currentIndex);
1921
+ viewRef.context.$implicit = record.item;
1922
+ }
1903
1923
  });
1904
1924
  }
1905
1925
  projectItems(items) {
@@ -1926,8 +1946,9 @@ class ForDirective {
1926
1946
  }
1927
1947
  }
1928
1948
  sortItems(items) {
1929
- if (this.orderBy) {
1930
- items.sort((a, b) => a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0);
1949
+ const orderBy = this.orderBy;
1950
+ if (orderBy) {
1951
+ items.sort((a, b) => (a[orderBy] > b[orderBy] ? 1 : a[orderBy] < b[orderBy] ? -1 : 0));
1931
1952
  }
1932
1953
  else {
1933
1954
  items.sort();
@@ -1938,10 +1959,11 @@ class ForDirective {
1938
1959
  if (!Array.isArray(items))
1939
1960
  return;
1940
1961
  const compareFn = this.compareFn;
1941
- if (typeof this.filterBy !== 'undefined' &&
1962
+ const filterBy = this.filterBy;
1963
+ if (typeof filterBy !== 'undefined' &&
1942
1964
  typeof this.filterVal !== 'undefined' &&
1943
1965
  this.filterVal !== '') {
1944
- items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));
1966
+ items = items.filter(item => compareFn(item[filterBy], this.filterVal));
1945
1967
  }
1946
1968
  switch (this.orderDir) {
1947
1969
  case 'ASC':
@@ -2012,7 +2034,7 @@ class FormSubmitDirective {
2012
2034
  }
2013
2035
  this.executedNgSubmit = true;
2014
2036
  });
2015
- const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter((event) => event && event.key === 'Enter'));
2037
+ const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter(event => event && event.key === 'Enter'));
2016
2038
  this.subscription.addOne(keyup$, () => {
2017
2039
  if (!this.executedNgSubmit) {
2018
2040
  this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));
@@ -2236,11 +2258,15 @@ class ReplaceableTemplateDirective {
2236
2258
  [key]: {
2237
2259
  enumerable: true,
2238
2260
  configurable: true,
2239
- get: () => this.data.inputs[key]?.value,
2240
- ...(this.data.inputs[key]?.twoWay && {
2261
+ get: () => this.data.inputs?.[key]?.value,
2262
+ ...(this.data.inputs?.[key]?.twoWay && {
2241
2263
  set: (newValue) => {
2242
- this.data.inputs[key].value = newValue;
2243
- this.data.outputs[`${key}Change`](newValue);
2264
+ if (this.data.inputs?.[key]) {
2265
+ this.data.inputs[key].value = newValue;
2266
+ }
2267
+ if (this.data.outputs?.[`${key}Change`]) {
2268
+ this.data.outputs[`${key}Change`](newValue);
2269
+ }
2244
2270
  },
2245
2271
  }),
2246
2272
  },
@@ -2275,7 +2301,7 @@ class StopPropagationDirective {
2275
2301
  this.stopPropEvent = new EventEmitter();
2276
2302
  }
2277
2303
  ngOnInit() {
2278
- this.subscription.addOne(fromEvent(this.el.nativeElement, 'click'), (event) => {
2304
+ this.subscription.addOne(fromEvent(this.el.nativeElement, 'click'), event => {
2279
2305
  event.stopPropagation();
2280
2306
  this.stopPropEvent.emit(event);
2281
2307
  });
@@ -2303,14 +2329,16 @@ class RoutesHandler {
2303
2329
  }
2304
2330
  addRoutes() {
2305
2331
  this.router?.config?.forEach(({ path = '', data }) => {
2306
- if (!data?.routes)
2307
- return;
2308
- if (Array.isArray(data.routes)) {
2309
- this.routes.add(data.routes);
2332
+ const routes = data?.routes;
2333
+ if (!routes)
2310
2334
  return;
2335
+ if (Array.isArray(routes)) {
2336
+ this.routes.add(routes);
2337
+ }
2338
+ else {
2339
+ const routesFlatten = flatRoutes([{ path, ...routes }], { path: '' });
2340
+ this.routes.add(routesFlatten);
2311
2341
  }
2312
- const routes = flatRoutes([{ path, ...data.routes }], { path: '' });
2313
- this.routes.add(routes);
2314
2342
  });
2315
2343
  }
2316
2344
  }
@@ -2483,7 +2511,10 @@ class LocaleId extends String {
2483
2511
  }
2484
2512
  toString() {
2485
2513
  const { currentLang } = this.localizationService;
2486
- return differentLocales[currentLang] || currentLang;
2514
+ if (checkHasProp(differentLocales, currentLang)) {
2515
+ return differentLocales[currentLang];
2516
+ }
2517
+ return currentLang;
2487
2518
  }
2488
2519
  valueOf() {
2489
2520
  return this.toString();
@@ -2518,7 +2549,7 @@ function getRemoteEnv(injector, environment) {
2518
2549
  httpErrorReporter.reportError(err);
2519
2550
  return of(null);
2520
2551
  }), // TODO: Consider get handle function from a provider
2521
- tap(env => environmentService.setState(mergeEnvironments(environment, env, remoteEnv))))
2552
+ tap(env => environmentService.setState(mergeEnvironments(environment, env || {}, remoteEnv))))
2522
2553
  .toPromise();
2523
2554
  }
2524
2555
  function mergeEnvironments(local, remote, config) {
@@ -2654,13 +2685,16 @@ function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder =
2654
2685
  if (environment.application.baseUrl) {
2655
2686
  environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
2656
2687
  }
2657
- if (environment.oAuthConfig.redirectUri) {
2688
+ if (environment.oAuthConfig?.redirectUri) {
2658
2689
  environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
2659
2690
  }
2660
- environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(placeholder, tenancyName);
2691
+ if (!environment.oAuthConfig) {
2692
+ environment.oAuthConfig = {};
2693
+ }
2694
+ environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(placeholder, tenancyName);
2661
2695
  Object.keys(environment.apis).forEach(api => {
2662
2696
  Object.keys(environment.apis[api]).forEach(key => {
2663
- environment.apis[api][key] = environment.apis[api][key].replace(placeholder, tenancyName);
2697
+ environment.apis[api][key] = (environment.apis[api][key] || '').replace(placeholder, tenancyName);
2664
2698
  });
2665
2699
  });
2666
2700
  return environmentService.setState(environment);
@@ -2736,11 +2770,11 @@ function getShortDateFormat(configStateService) {
2736
2770
  }
2737
2771
  function getShortTimeFormat(configStateService) {
2738
2772
  const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');
2739
- return dateTimeFormat.shortTimePattern.replace('tt', 'a');
2773
+ return dateTimeFormat?.shortTimePattern?.replace('tt', 'a');
2740
2774
  }
2741
2775
  function getShortDateShortTimeFormat(configStateService) {
2742
2776
  const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');
2743
- return `${dateTimeFormat.shortDatePattern} ${dateTimeFormat.shortTimePattern.replace('tt', 'a')}`;
2777
+ return `${dateTimeFormat.shortDatePattern} ${dateTimeFormat?.shortTimePattern?.replace('tt', 'a')}`;
2744
2778
  }
2745
2779
 
2746
2780
  class LazyModuleFactory extends NgModuleFactory {
@@ -2753,7 +2787,7 @@ class LazyModuleFactory extends NgModuleFactory {
2753
2787
  }
2754
2788
  create(parentInjector) {
2755
2789
  const injector = Injector.create({
2756
- parent: parentInjector,
2790
+ ...(parentInjector && { parent: parentInjector }),
2757
2791
  providers: this.moduleWithProviders.providers,
2758
2792
  });
2759
2793
  const compiler = injector.get(Compiler);
@@ -2855,7 +2889,9 @@ class CrossOriginStrategy {
2855
2889
  setCrossOrigin(element) {
2856
2890
  if (this.integrity)
2857
2891
  element.setAttribute('integrity', this.integrity);
2858
- element.setAttribute('crossorigin', this.crossorigin);
2892
+ if (this.crossorigin) {
2893
+ element.setAttribute('crossorigin', this.crossorigin);
2894
+ }
2859
2895
  }
2860
2896
  }
2861
2897
  class NoCrossOriginStrategy extends CrossOriginStrategy {
@@ -2924,7 +2960,7 @@ function fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossO
2924
2960
  function createErrorHandler(observer, element) {
2925
2961
  return function (event) {
2926
2962
  clearCallbacks(element);
2927
- element.parentNode.removeChild(element);
2963
+ element.parentNode?.removeChild(element);
2928
2964
  observer.error(event);
2929
2965
  };
2930
2966
  }
@@ -2991,9 +3027,11 @@ class DomInsertionService {
2991
3027
  return element;
2992
3028
  }
2993
3029
  removeContent(element) {
2994
- const hash = generateHash(element.textContent);
2995
- this.inserted.delete(hash);
2996
- element.parentNode.removeChild(element);
3030
+ if (element.textContent) {
3031
+ const hash = generateHash(element.textContent);
3032
+ this.inserted.delete(hash);
3033
+ element.parentNode?.removeChild(element);
3034
+ }
2997
3035
  }
2998
3036
  has(content) {
2999
3037
  const hash = generateHash(content);
@@ -3057,6 +3095,9 @@ class HttpWaitService {
3057
3095
  this.store.patch({ filteredRequests });
3058
3096
  }
3059
3097
  applyFilter(requests) {
3098
+ if (!requests) {
3099
+ return [];
3100
+ }
3060
3101
  const { filteredRequests } = this.store.state;
3061
3102
  return requests.filter(({ method, url }) => !filteredRequests.find(filteredRequest => this.isSameRequest(filteredRequest, { method, endpoint: getPathName(url) })));
3062
3103
  }
@@ -3085,7 +3126,7 @@ class ResourceWaitService {
3085
3126
  return this.store.sliceState(({ resources }) => !!resources.size);
3086
3127
  }
3087
3128
  updateLoading$() {
3088
- return this.store.sliceUpdate(({ resources }) => !!resources.size);
3129
+ return this.store.sliceUpdate(({ resources }) => !!resources?.size);
3089
3130
  }
3090
3131
  clearLoading() {
3091
3132
  this.store.patch({ resources: new Set() });
@@ -3119,7 +3160,9 @@ class LazyLoadService {
3119
3160
  if (this.loaded.has(strategy.path))
3120
3161
  return of(new CustomEvent('load'));
3121
3162
  this.resourceWaitService.addResource(strategy.path);
3122
- return strategy.createStream().pipe(retryWhen(error$ => concat(error$.pipe(delay(retryDelay), take(retryTimes)), throwError(new CustomEvent('error')))), tap(() => {
3163
+ const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();
3164
+ const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();
3165
+ return strategy.createStream().pipe(retryWhen(error$ => concat(error$.pipe(delayOperator, takeOp), throwError(() => new CustomEvent('error')))), tap(() => {
3123
3166
  this.loaded.set(strategy.path, strategy.element);
3124
3167
  this.resourceWaitService.deleteResource(strategy.path);
3125
3168
  }), delay(100), shareReplay({ bufferSize: 1, refCount: true }));
@@ -3128,7 +3171,7 @@ class LazyLoadService {
3128
3171
  const element = this.loaded.get(path);
3129
3172
  if (!element)
3130
3173
  return false;
3131
- element.parentNode.removeChild(element);
3174
+ element.parentNode?.removeChild(element);
3132
3175
  this.loaded.delete(path);
3133
3176
  return true;
3134
3177
  }
@@ -3658,7 +3701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
3658
3701
  class ListResultDto {
3659
3702
  constructor(initialValues = {}) {
3660
3703
  for (const key in initialValues) {
3661
- if (Object.prototype.hasOwnProperty.call(initialValues, key)) {
3704
+ if (checkHasProp(initialValues, key)) {
3662
3705
  this[key] = initialValues[key];
3663
3706
  }
3664
3707
  }
@@ -3673,8 +3716,7 @@ class LimitedResultRequestDto {
3673
3716
  constructor(initialValues = {}) {
3674
3717
  this.maxResultCount = 10;
3675
3718
  for (const key in initialValues) {
3676
- if (Object.prototype.hasOwnProperty.call(initialValues, key) &&
3677
- initialValues[key] !== undefined) {
3719
+ if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {
3678
3720
  this[key] = initialValues[key];
3679
3721
  }
3680
3722
  }
@@ -3693,7 +3735,7 @@ class PagedAndSortedResultRequestDto extends PagedResultRequestDto {
3693
3735
  class EntityDto {
3694
3736
  constructor(initialValues = {}) {
3695
3737
  for (const key in initialValues) {
3696
- if (Object.prototype.hasOwnProperty.call(initialValues, key)) {
3738
+ if (checkHasProp(initialValues, key)) {
3697
3739
  this[key] = initialValues[key];
3698
3740
  }
3699
3741
  }
@@ -3732,7 +3774,7 @@ class FullAuditedEntityWithUserDto extends FullAuditedEntityDto {
3732
3774
  class ExtensibleObject {
3733
3775
  constructor(initialValues = {}) {
3734
3776
  for (const key in initialValues) {
3735
- if (Object.prototype.hasOwnProperty.call(initialValues, key)) {
3777
+ if (checkHasProp(initialValues, key)) {
3736
3778
  this[key] = initialValues[key];
3737
3779
  }
3738
3780
  }
@@ -3846,7 +3888,9 @@ class LooseContentSecurityStrategy extends ContentSecurityStrategy {
3846
3888
  super(nonce);
3847
3889
  }
3848
3890
  applyCSP(element) {
3849
- element.setAttribute('nonce', this.nonce);
3891
+ if (this.nonce) {
3892
+ element.setAttribute('nonce', this.nonce);
3893
+ }
3850
3894
  }
3851
3895
  }
3852
3896
  class NoContentSecurityStrategy extends ContentSecurityStrategy {
@@ -3874,7 +3918,11 @@ class ContentStrategy {
3874
3918
  insertElement() {
3875
3919
  const element = this.createElement();
3876
3920
  if (this.options && Object.keys(this.options).length > 0) {
3877
- Object.keys(this.options).forEach(key => (element[key] = this.options[key]));
3921
+ Object.keys(this.options).forEach(key => {
3922
+ if (this.options[key]) {
3923
+ element[key] = this.options[key];
3924
+ }
3925
+ });
3878
3926
  }
3879
3927
  this.contentSecurityStrategy.applyCSP(element);
3880
3928
  this.domStrategy.insertElement(element);
@@ -4080,8 +4128,13 @@ const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken('NAVIGATE_TO_MANAGE_PROFIL
4080
4128
 
4081
4129
  const PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY');
4082
4130
 
4131
+ /**
4132
+ * @deprecated The token should not be used anymore.
4133
+ */
4083
4134
  const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken('SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY');
4084
4135
 
4136
+ const IS_EXTERNAL_REQUEST = new HttpContextToken(() => false);
4137
+
4085
4138
  function validateMinAge({ age = 18 } = {}) {
4086
4139
  return (control) => {
4087
4140
  if (['', null, undefined].indexOf(control.value) > -1)
@@ -4179,7 +4232,7 @@ function isValidUrl(value) {
4179
4232
  }
4180
4233
 
4181
4234
  const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
4182
- function validateUsername({ pattern } = { pattern: onlyLetterAndNumberRegex }) {
4235
+ function validateUsername({ pattern = /.*/ } = { pattern: onlyLetterAndNumberRegex }) {
4183
4236
  return (control) => {
4184
4237
  const isValid = isValidUserName(control.value, pattern);
4185
4238
  return isValid ? null : { usernamePattern: { actualValue: control.value } };
@@ -4207,7 +4260,7 @@ class ApiInterceptor {
4207
4260
  this.httpWaitService = httpWaitService;
4208
4261
  }
4209
4262
  getAdditionalHeaders(existingHeaders) {
4210
- return existingHeaders;
4263
+ return existingHeaders || new HttpHeaders();
4211
4264
  }
4212
4265
  intercept(request, next) {
4213
4266
  this.httpWaitService.addRequest(request);
@@ -4223,11 +4276,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
4223
4276
  }]
4224
4277
  }], ctorParameters: function () { return [{ type: HttpWaitService }]; } });
4225
4278
 
4279
+ var _ExternalHttpClient_instances, _ExternalHttpClient_setPlaceholderContext;
4280
+ // source : https://github.com/armanozak/demo-angular-server-specific-interceptors
4281
+ class ExternalHttpClient extends HttpClient {
4282
+ constructor() {
4283
+ super(...arguments);
4284
+ _ExternalHttpClient_instances.add(this);
4285
+ }
4286
+ request(first, url, options = {}) {
4287
+ if (typeof first === 'string') {
4288
+ __classPrivateFieldGet(this, _ExternalHttpClient_instances, "m", _ExternalHttpClient_setPlaceholderContext).call(this, options);
4289
+ return super.request(first, url || '', options);
4290
+ }
4291
+ __classPrivateFieldGet(this, _ExternalHttpClient_instances, "m", _ExternalHttpClient_setPlaceholderContext).call(this, first);
4292
+ return super.request(first);
4293
+ }
4294
+ }
4295
+ _ExternalHttpClient_instances = new WeakSet(), _ExternalHttpClient_setPlaceholderContext = function _ExternalHttpClient_setPlaceholderContext(optionsOrRequest) {
4296
+ optionsOrRequest.context ?? (optionsOrRequest.context = new HttpContext());
4297
+ optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);
4298
+ };
4299
+ ExternalHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExternalHttpClient, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
4300
+ ExternalHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExternalHttpClient, providedIn: 'root' });
4301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ExternalHttpClient, decorators: [{
4302
+ type: Injectable,
4303
+ args: [{
4304
+ providedIn: 'root',
4305
+ }]
4306
+ }] });
4307
+
4226
4308
  // export * from './lib/handlers';
4227
4309
 
4228
4310
  /**
4229
4311
  * Generated bundle index. Do not edit.
4230
4312
  */
4231
4313
 
4232
- export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpTenantService, AbpValidators, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleObject, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, WebHttpUrlEncodingCodec, coreOptionsFactory, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUrl };
4314
+ export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpTenantService, AbpValidators, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleObject, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, WebHttpUrlEncodingCodec, checkHasProp, coreOptionsFactory, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUrl };
4233
4315
  //# sourceMappingURL=abp-ng.core.mjs.map