@abp/ng.core 9.3.4 → 10.0.0-rc.1
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/abp-ng.core-locale.mjs +32 -21
- package/fesm2022/abp-ng.core-locale.mjs.map +1 -1
- package/fesm2022/abp-ng.core-testing.mjs +16 -15
- package/fesm2022/abp-ng.core-testing.mjs.map +1 -1
- package/fesm2022/abp-ng.core.mjs +1091 -898
- package/fesm2022/abp-ng.core.mjs.map +1 -1
- package/index.d.ts +1267 -1250
- package/locale/index.d.ts +2 -1
- package/package.json +2 -2
- package/testing/index.d.ts +2 -2
package/fesm2022/abp-ng.core.mjs
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ChangeDetectorRef, Input, Component, Injectable, InjectionToken,
|
|
3
|
-
import { of, BehaviorSubject, Subject,
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import * as i1$2 from '@angular/common';
|
|
7
|
-
import { DOCUMENT, registerLocaleData, CommonModule, DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';
|
|
2
|
+
import { inject, ChangeDetectorRef, Input, Component, Injectable, InjectionToken, Injector, NgModuleFactory, Compiler, PLATFORM_ID, makeStateKey, TransferState, REQUEST, NgZone, signal, computed, effect, LOCALE_ID, ComponentFactoryResolver, ApplicationRef, isDevMode, ElementRef, Directive, EventEmitter, Output, TemplateRef, ViewContainerRef, IterableDiffers, HostListener, provideAppInitializer, makeEnvironmentProviders, Pipe, SecurityContext, NgModule } from '@angular/core';
|
|
3
|
+
import { of, BehaviorSubject, Subject, firstValueFrom, throwError, Observable, timer, pipe, concat, ReplaySubject, EMPTY, map as map$1, Subscription, combineLatest, from, take as take$1, filter as filter$1, fromEvent, switchMap as switchMap$1, startWith, distinctUntilChanged as distinctUntilChanged$1 } from 'rxjs';
|
|
4
|
+
import { PRIMARY_OUTLET, Router, NavigationStart, NavigationError, NavigationEnd, NavigationCancel, TitleStrategy, ActivatedRoute, RouterOutlet, RouterModule } from '@angular/router';
|
|
5
|
+
import { isPlatformBrowser, DOCUMENT, registerLocaleData, NgComponentOutlet, isPlatformServer, DatePipe, DATE_PIPE_DEFAULT_TIMEZONE, CommonModule } from '@angular/common';
|
|
8
6
|
import { map, distinctUntilChanged, filter, catchError, tap, take, switchMap, mapTo, takeUntil, delay, retryWhen, shareReplay, debounceTime, finalize } from 'rxjs/operators';
|
|
9
|
-
import
|
|
10
|
-
import { HttpClient, HttpContextToken, HttpContext, HttpParams, HttpErrorResponse, HttpHeaders, provideHttpClient, HTTP_INTERCEPTORS, withInterceptorsFromDi, withXsrfConfiguration } from '@angular/common/http';
|
|
7
|
+
import { HttpClient, HttpContextToken, HttpErrorResponse, HttpContext, HttpParams, HttpHeaders, HttpResponse, provideHttpClient, withInterceptorsFromDi, withXsrfConfiguration, withFetch, withInterceptors } from '@angular/common/http';
|
|
11
8
|
import compare from 'just-compare';
|
|
12
9
|
import clone from 'just-clone';
|
|
13
10
|
import { NgxValidateCoreModule } from '@ngx-validate/core';
|
|
@@ -15,8 +12,7 @@ export { NgxValidateCoreModule } from '@ngx-validate/core';
|
|
|
15
12
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
16
13
|
import { Title, DomSanitizer } from '@angular/platform-browser';
|
|
17
14
|
import { DateTime } from 'luxon';
|
|
18
|
-
import
|
|
19
|
-
import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
15
|
+
import { FormGroupDirective, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
20
16
|
|
|
21
17
|
// Not an abstract class on purpose. Do not change!
|
|
22
18
|
class AbstractNgModelComponent {
|
|
@@ -97,6 +93,10 @@ const authGuard = () => {
|
|
|
97
93
|
console.error('You should add @abp/ng-oauth packages or create your own auth packages.');
|
|
98
94
|
return false;
|
|
99
95
|
};
|
|
96
|
+
const asyncAuthGuard = () => {
|
|
97
|
+
console.error('You should add @abp/ng-oauth packages or create your own auth packages.');
|
|
98
|
+
return false;
|
|
99
|
+
};
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
* Abstract service for Authentication.
|
|
@@ -282,19 +282,19 @@ function escapeHtmlChars(value) {
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
class ContentProjectionService {
|
|
285
|
-
constructor(
|
|
286
|
-
this.injector =
|
|
285
|
+
constructor() {
|
|
286
|
+
this.injector = inject(Injector);
|
|
287
287
|
}
|
|
288
288
|
projectContent(projectionStrategy, injector = this.injector) {
|
|
289
289
|
return projectionStrategy.injectContent(injector);
|
|
290
290
|
}
|
|
291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ContentProjectionService, deps: [
|
|
291
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ContentProjectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
292
292
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ContentProjectionService, providedIn: 'root' }); }
|
|
293
293
|
}
|
|
294
294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ContentProjectionService, decorators: [{
|
|
295
295
|
type: Injectable,
|
|
296
296
|
args: [{ providedIn: 'root' }]
|
|
297
|
-
}]
|
|
297
|
+
}] });
|
|
298
298
|
|
|
299
299
|
function pushValueTo(array) {
|
|
300
300
|
return (element) => {
|
|
@@ -640,24 +640,38 @@ class WebHttpUrlEncodingCodec {
|
|
|
640
640
|
}
|
|
641
641
|
|
|
642
642
|
class AbpLocalStorageService {
|
|
643
|
-
constructor() {
|
|
643
|
+
constructor() {
|
|
644
|
+
this.platformId = inject(PLATFORM_ID);
|
|
645
|
+
}
|
|
644
646
|
get length() {
|
|
645
|
-
return localStorage.length;
|
|
647
|
+
return isPlatformBrowser(this.platformId) ? localStorage.length : 0;
|
|
646
648
|
}
|
|
647
649
|
clear() {
|
|
648
|
-
|
|
650
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
651
|
+
localStorage.clear();
|
|
652
|
+
}
|
|
649
653
|
}
|
|
650
654
|
getItem(key) {
|
|
655
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
656
|
+
return null;
|
|
657
|
+
}
|
|
651
658
|
return localStorage.getItem(key);
|
|
652
659
|
}
|
|
653
660
|
key(index) {
|
|
661
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
662
|
+
return null;
|
|
663
|
+
}
|
|
654
664
|
return localStorage.key(index);
|
|
655
665
|
}
|
|
656
666
|
removeItem(key) {
|
|
657
|
-
|
|
667
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
668
|
+
localStorage.removeItem(key);
|
|
669
|
+
}
|
|
658
670
|
}
|
|
659
671
|
setItem(key, value) {
|
|
660
|
-
|
|
672
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
673
|
+
localStorage.setItem(key, value);
|
|
674
|
+
}
|
|
661
675
|
}
|
|
662
676
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
663
677
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpLocalStorageService, providedIn: 'root' }); }
|
|
@@ -669,20 +683,208 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
669
683
|
}]
|
|
670
684
|
}], ctorParameters: () => [] });
|
|
671
685
|
|
|
686
|
+
const APP_INIT_ERROR_HANDLERS = new InjectionToken('APP_INIT_ERROR_HANDLERS');
|
|
687
|
+
|
|
688
|
+
const COOKIE_LANGUAGE_KEY = new InjectionToken('COOKIE_LANGUAGE_KEY', {
|
|
689
|
+
factory: () => '.AspNetCore.Culture',
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
const LIST_QUERY_DEBOUNCE_TIME = new InjectionToken('LIST_QUERY_DEBOUNCE_TIME');
|
|
693
|
+
|
|
694
|
+
const LOADER_DELAY = new InjectionToken('LOADER_DELAY');
|
|
695
|
+
|
|
696
|
+
const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken('NAVIGATE_TO_MANAGE_PROFILE');
|
|
697
|
+
|
|
698
|
+
const QUEUE_MANAGER = new InjectionToken("QUEUE_MANAGER");
|
|
699
|
+
|
|
700
|
+
const TENANT_KEY = new InjectionToken('TENANT_KEY');
|
|
701
|
+
|
|
702
|
+
const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');
|
|
703
|
+
|
|
704
|
+
const PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY');
|
|
705
|
+
|
|
706
|
+
/**
|
|
707
|
+
* @deprecated The token should not be used anymore.
|
|
708
|
+
*/
|
|
709
|
+
const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken('SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY');
|
|
710
|
+
|
|
711
|
+
const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken('CHECK_AUTHENTICATION_STATE_FN_KEY');
|
|
712
|
+
|
|
713
|
+
const IS_EXTERNAL_REQUEST = new HttpContextToken(() => false);
|
|
714
|
+
|
|
715
|
+
const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP');
|
|
716
|
+
|
|
717
|
+
const TENANT_NOT_FOUND_BY_NAME = new InjectionToken('TENANT_NOT_FOUND_BY_NAME');
|
|
718
|
+
|
|
719
|
+
const SORT_COMPARE_FUNC = new InjectionToken('SORT_COMPARE_FUNC');
|
|
720
|
+
function compareFuncFactory() {
|
|
721
|
+
const localizationService = inject(LocalizationService);
|
|
722
|
+
const fn = (a, b) => {
|
|
723
|
+
const aNumber = a.order;
|
|
724
|
+
const bNumber = b.order;
|
|
725
|
+
if (aNumber > bNumber)
|
|
726
|
+
return 1;
|
|
727
|
+
if (aNumber < bNumber)
|
|
728
|
+
return -1;
|
|
729
|
+
if (a.id > b.id)
|
|
730
|
+
return 1;
|
|
731
|
+
if (a.id < b.id)
|
|
732
|
+
return -1;
|
|
733
|
+
if (!Number.isInteger(aNumber))
|
|
734
|
+
return 1;
|
|
735
|
+
if (!Number.isInteger(bNumber))
|
|
736
|
+
return -1;
|
|
737
|
+
const aName = localizationService.instant(a.name);
|
|
738
|
+
const bName = localizationService.instant(b.name);
|
|
739
|
+
if (aName > bName)
|
|
740
|
+
return 1;
|
|
741
|
+
if (aName < bName)
|
|
742
|
+
return -1;
|
|
743
|
+
return 0;
|
|
744
|
+
};
|
|
745
|
+
return fn;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken('DYNAMIC_LAYOUTS');
|
|
749
|
+
|
|
750
|
+
const DISABLE_PROJECT_NAME = new InjectionToken('DISABLE_APP_NAME');
|
|
751
|
+
|
|
752
|
+
const SSR_FLAG = makeStateKey('SSR_FLAG');
|
|
753
|
+
const APP_STARTED_WITH_SSR = new InjectionToken('APP_STARTED_WITH_SSR', {
|
|
754
|
+
providedIn: 'root',
|
|
755
|
+
factory: () => {
|
|
756
|
+
const platformId = inject(PLATFORM_ID);
|
|
757
|
+
const cookieService = inject(AbpCookieStorageService);
|
|
758
|
+
if (!isPlatformBrowser(platformId))
|
|
759
|
+
return true;
|
|
760
|
+
const ts = inject(TransferState);
|
|
761
|
+
const ssrEnabled = cookieService.getItem('ssr-init');
|
|
762
|
+
// Remove the cookie after reading its value because it's only needed once
|
|
763
|
+
cookieService.removeItem('ssr-init');
|
|
764
|
+
return ts.get(SSR_FLAG, false) || ssrEnabled === 'true';
|
|
765
|
+
},
|
|
766
|
+
});
|
|
767
|
+
|
|
768
|
+
class AbpCookieStorageService {
|
|
769
|
+
constructor() {
|
|
770
|
+
this.platformId = inject(PLATFORM_ID);
|
|
771
|
+
this.document = inject(DOCUMENT);
|
|
772
|
+
this.request = inject(REQUEST);
|
|
773
|
+
}
|
|
774
|
+
get length() {
|
|
775
|
+
return isPlatformBrowser(this.platformId) ? this.keys().length : this.getCookiesFromRequest()?.size ?? 0;
|
|
776
|
+
}
|
|
777
|
+
clear() {
|
|
778
|
+
if (!isPlatformBrowser(this.platformId))
|
|
779
|
+
return;
|
|
780
|
+
this.keys().forEach(k => this.removeItem(k));
|
|
781
|
+
}
|
|
782
|
+
getItem(key) {
|
|
783
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
784
|
+
return this.getCookiesFromRequest()?.get(key) ?? null;
|
|
785
|
+
}
|
|
786
|
+
const name = key + '=';
|
|
787
|
+
const parts = (this.document.cookie || '').split('; ');
|
|
788
|
+
for (const p of parts) {
|
|
789
|
+
if (p.startsWith(name)) {
|
|
790
|
+
return decodeURIComponent(p.slice(name.length));
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
return null;
|
|
794
|
+
}
|
|
795
|
+
key(index) {
|
|
796
|
+
if (!isPlatformBrowser(this.platformId))
|
|
797
|
+
return null;
|
|
798
|
+
return this.keys()[index] ?? null;
|
|
799
|
+
}
|
|
800
|
+
removeItem(key) {
|
|
801
|
+
if (!isPlatformBrowser(this.platformId))
|
|
802
|
+
return;
|
|
803
|
+
this.setCookie(key, '', { 'max-age': -1, path: '/' });
|
|
804
|
+
}
|
|
805
|
+
setItem(key, value) {
|
|
806
|
+
if (!isPlatformBrowser(this.platformId))
|
|
807
|
+
return;
|
|
808
|
+
this.setCookie(key, encodeURIComponent(value), {
|
|
809
|
+
path: '/',
|
|
810
|
+
sameSite: 'Lax',
|
|
811
|
+
secure: true,
|
|
812
|
+
});
|
|
813
|
+
}
|
|
814
|
+
setItemWithExpiry(key, value, seconds) {
|
|
815
|
+
if (!isPlatformBrowser(this.platformId))
|
|
816
|
+
return;
|
|
817
|
+
this.setCookie(key, encodeURIComponent(value), {
|
|
818
|
+
path: '/',
|
|
819
|
+
sameSite: 'Lax',
|
|
820
|
+
secure: true,
|
|
821
|
+
'max-age': Math.max(0, Math.floor(seconds)),
|
|
822
|
+
});
|
|
823
|
+
}
|
|
824
|
+
keys() {
|
|
825
|
+
const raw = (this.document.cookie || '').split('; ').filter(Boolean);
|
|
826
|
+
return raw
|
|
827
|
+
.map(c => decodeURIComponent(c.split('=')[0]));
|
|
828
|
+
}
|
|
829
|
+
setCookie(name, value, opts) {
|
|
830
|
+
let s = `${name}=${value}`;
|
|
831
|
+
if (opts.path)
|
|
832
|
+
s += `; Path=${opts.path}`;
|
|
833
|
+
if (opts.domain)
|
|
834
|
+
s += `; Domain=${opts.domain}`;
|
|
835
|
+
if (opts.sameSite)
|
|
836
|
+
s += `; SameSite=${opts.sameSite}`;
|
|
837
|
+
if (opts.secure)
|
|
838
|
+
s += `; Secure`;
|
|
839
|
+
if (opts.expires)
|
|
840
|
+
s += `; Expires=${opts.expires.toUTCString()}`;
|
|
841
|
+
if (typeof opts['max-age'] === 'number')
|
|
842
|
+
s += `; Max-Age=${opts['max-age']}`;
|
|
843
|
+
this.document.cookie = s;
|
|
844
|
+
}
|
|
845
|
+
getCookiesFromRequest() {
|
|
846
|
+
const cookies = new Map();
|
|
847
|
+
const cookieHeader = this.request?.headers.get('cookie') ?? '';
|
|
848
|
+
for (const part of cookieHeader.split(';')) {
|
|
849
|
+
const i = part.indexOf('=');
|
|
850
|
+
if (i > -1) {
|
|
851
|
+
const k = part.slice(0, i).trim();
|
|
852
|
+
const v = decodeURIComponent(part.slice(i + 1).trim());
|
|
853
|
+
cookies.set(k, v);
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
return cookies;
|
|
857
|
+
}
|
|
858
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpCookieStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
859
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpCookieStorageService, providedIn: 'root' }); }
|
|
860
|
+
}
|
|
861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpCookieStorageService, decorators: [{
|
|
862
|
+
type: Injectable,
|
|
863
|
+
args: [{ providedIn: 'root' }]
|
|
864
|
+
}] });
|
|
865
|
+
|
|
672
866
|
class SessionStateService {
|
|
673
|
-
constructor(
|
|
674
|
-
this.configState =
|
|
675
|
-
this.localStorageService =
|
|
867
|
+
constructor() {
|
|
868
|
+
this.configState = inject(ConfigStateService);
|
|
869
|
+
this.localStorageService = inject(AbpLocalStorageService);
|
|
870
|
+
this.appStartedWithSSR = inject(APP_STARTED_WITH_SSR, { optional: true });
|
|
871
|
+
this.cookieStorageService = inject(AbpCookieStorageService);
|
|
676
872
|
this.store = new InternalStore({});
|
|
677
873
|
this.document = inject(DOCUMENT);
|
|
678
874
|
this.updateLocalStorage = () => {
|
|
679
|
-
|
|
875
|
+
if (this.appStartedWithSSR) {
|
|
876
|
+
this.cookieStorageService.setItem('abpSession', JSON.stringify(this.store.state));
|
|
877
|
+
}
|
|
878
|
+
else {
|
|
879
|
+
this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));
|
|
880
|
+
}
|
|
680
881
|
};
|
|
681
882
|
this.init();
|
|
682
883
|
this.setInitialLanguage();
|
|
683
884
|
}
|
|
684
885
|
init() {
|
|
685
|
-
const
|
|
886
|
+
const storageService = this.appStartedWithSSR ? this.cookieStorageService : this.localStorageService;
|
|
887
|
+
const session = storageService.getItem('abpSession');
|
|
686
888
|
if (session) {
|
|
687
889
|
this.store.set(JSON.parse(session));
|
|
688
890
|
}
|
|
@@ -733,7 +935,7 @@ class SessionStateService {
|
|
|
733
935
|
this.document.documentElement.setAttribute('lang', language);
|
|
734
936
|
}
|
|
735
937
|
}
|
|
736
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: SessionStateService, deps: [
|
|
938
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: SessionStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
737
939
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: SessionStateService, providedIn: 'root' }); }
|
|
738
940
|
}
|
|
739
941
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: SessionStateService, decorators: [{
|
|
@@ -741,13 +943,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
741
943
|
args: [{
|
|
742
944
|
providedIn: 'root',
|
|
743
945
|
}]
|
|
744
|
-
}], ctorParameters: () => [
|
|
745
|
-
|
|
746
|
-
const APP_INIT_ERROR_HANDLERS = new InjectionToken('APP_INIT_ERROR_HANDLERS');
|
|
946
|
+
}], ctorParameters: () => [] });
|
|
747
947
|
|
|
748
948
|
class AbpTenantService {
|
|
749
|
-
constructor(
|
|
750
|
-
this.restService =
|
|
949
|
+
constructor() {
|
|
950
|
+
this.restService = inject(RestService);
|
|
751
951
|
this.apiName = 'abp';
|
|
752
952
|
this.findTenantById = (id, config) => this.restService.request({
|
|
753
953
|
method: 'GET',
|
|
@@ -758,7 +958,7 @@ class AbpTenantService {
|
|
|
758
958
|
url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,
|
|
759
959
|
}, { apiName: this.apiName, ...config });
|
|
760
960
|
}
|
|
761
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpTenantService, deps: [
|
|
961
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpTenantService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
762
962
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpTenantService, providedIn: 'root' }); }
|
|
763
963
|
}
|
|
764
964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpTenantService, decorators: [{
|
|
@@ -766,107 +966,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
766
966
|
args: [{
|
|
767
967
|
providedIn: 'root',
|
|
768
968
|
}]
|
|
769
|
-
}], ctorParameters: () => [{ type: RestService }] });
|
|
770
|
-
|
|
771
|
-
const TENANT_KEY = new InjectionToken('TENANT_KEY');
|
|
772
|
-
|
|
773
|
-
const IS_EXTERNAL_REQUEST = new HttpContextToken(() => false);
|
|
774
|
-
|
|
775
|
-
// source : https://github.com/armanozak/demo-angular-server-specific-interceptors
|
|
776
|
-
class ExternalHttpClient extends HttpClient {
|
|
777
|
-
request(first, url, options = {}) {
|
|
778
|
-
if (typeof first === 'string') {
|
|
779
|
-
this.#setPlaceholderContext(options);
|
|
780
|
-
return super.request(first, url || '', options);
|
|
781
|
-
}
|
|
782
|
-
this.#setPlaceholderContext(first);
|
|
783
|
-
return super.request(first);
|
|
784
|
-
}
|
|
785
|
-
#setPlaceholderContext(optionsOrRequest) {
|
|
786
|
-
optionsOrRequest.context ??= new HttpContext();
|
|
787
|
-
optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);
|
|
788
|
-
}
|
|
789
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
790
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, providedIn: 'root' }); }
|
|
791
|
-
}
|
|
792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, decorators: [{
|
|
793
|
-
type: Injectable,
|
|
794
|
-
args: [{
|
|
795
|
-
providedIn: 'root',
|
|
796
|
-
}]
|
|
797
969
|
}] });
|
|
798
970
|
|
|
799
|
-
class RestService {
|
|
800
|
-
constructor(options, http, externalHttp, environment, httpErrorReporter) {
|
|
801
|
-
this.options = options;
|
|
802
|
-
this.http = http;
|
|
803
|
-
this.externalHttp = externalHttp;
|
|
804
|
-
this.environment = environment;
|
|
805
|
-
this.httpErrorReporter = httpErrorReporter;
|
|
806
|
-
}
|
|
807
|
-
getApiFromStore(apiName) {
|
|
808
|
-
return this.environment.getApiUrl(apiName);
|
|
809
|
-
}
|
|
810
|
-
handleError(err) {
|
|
811
|
-
this.httpErrorReporter.reportError(err);
|
|
812
|
-
return throwError(() => err);
|
|
813
|
-
}
|
|
814
|
-
request(request, config, api) {
|
|
815
|
-
config = config || {};
|
|
816
|
-
api = api || this.getApiFromStore(config.apiName);
|
|
817
|
-
const { method, params, ...options } = request;
|
|
818
|
-
const { observe = "body" /* Rest.Observe.Body */, skipHandleError } = config;
|
|
819
|
-
const url = this.removeDuplicateSlashes(api + request.url);
|
|
820
|
-
const httpClient = this.getHttpClient(config.skipAddingHeader);
|
|
821
|
-
return httpClient
|
|
822
|
-
.request(method, url, {
|
|
823
|
-
observe,
|
|
824
|
-
...(params && {
|
|
825
|
-
params: this.getParams(params, config.httpParamEncoder),
|
|
826
|
-
}),
|
|
827
|
-
...options,
|
|
828
|
-
})
|
|
829
|
-
.pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));
|
|
830
|
-
}
|
|
831
|
-
getHttpClient(isExternal) {
|
|
832
|
-
return isExternal ? this.externalHttp : this.http;
|
|
833
|
-
}
|
|
834
|
-
getParams(params, encoder) {
|
|
835
|
-
const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {
|
|
836
|
-
if (isUndefinedOrEmptyString(value))
|
|
837
|
-
return acc;
|
|
838
|
-
if (value === null && !this.options.sendNullsAsQueryParam)
|
|
839
|
-
return acc;
|
|
840
|
-
acc[key] = value;
|
|
841
|
-
return acc;
|
|
842
|
-
}, {});
|
|
843
|
-
return encoder
|
|
844
|
-
? new HttpParams({ encoder, fromObject: filteredParams })
|
|
845
|
-
: new HttpParams({ fromObject: filteredParams });
|
|
846
|
-
}
|
|
847
|
-
removeDuplicateSlashes(url) {
|
|
848
|
-
return url.replace(/([^:]\/)\/+/g, '$1');
|
|
849
|
-
}
|
|
850
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: ExternalHttpClient }, { token: EnvironmentService }, { token: HttpErrorReporterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
851
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, providedIn: 'root' }); }
|
|
852
|
-
}
|
|
853
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, decorators: [{
|
|
854
|
-
type: Injectable,
|
|
855
|
-
args: [{
|
|
856
|
-
providedIn: 'root',
|
|
857
|
-
}]
|
|
858
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
859
|
-
type: Inject,
|
|
860
|
-
args: [CORE_OPTIONS]
|
|
861
|
-
}] }, { type: i1.HttpClient }, { type: ExternalHttpClient }, { type: EnvironmentService }, { type: HttpErrorReporterService }] });
|
|
862
|
-
|
|
863
971
|
class MultiTenancyService {
|
|
864
|
-
constructor(
|
|
865
|
-
this.
|
|
866
|
-
this.
|
|
867
|
-
this.
|
|
868
|
-
this.
|
|
869
|
-
this.tenantKey = tenantKey;
|
|
972
|
+
constructor() {
|
|
973
|
+
this.sessionState = inject(SessionStateService);
|
|
974
|
+
this.tenantService = inject(AbpTenantService);
|
|
975
|
+
this.configStateService = inject(ConfigStateService);
|
|
976
|
+
this.tenantKey = inject(TENANT_KEY);
|
|
870
977
|
this.domainTenant = null;
|
|
871
978
|
this.isTenantBoxVisible = true;
|
|
872
979
|
this.apiName = 'abp';
|
|
@@ -885,29 +992,35 @@ class MultiTenancyService {
|
|
|
885
992
|
.findTenantById(tenantId)
|
|
886
993
|
.pipe(switchMap(this.setTenantToState));
|
|
887
994
|
}
|
|
888
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: MultiTenancyService, deps: [
|
|
995
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: MultiTenancyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
889
996
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: MultiTenancyService, providedIn: 'root' }); }
|
|
890
997
|
}
|
|
891
998
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: MultiTenancyService, decorators: [{
|
|
892
999
|
type: Injectable,
|
|
893
1000
|
args: [{ providedIn: 'root' }]
|
|
894
|
-
}]
|
|
895
|
-
type: Inject,
|
|
896
|
-
args: [TENANT_KEY]
|
|
897
|
-
}] }] });
|
|
898
|
-
|
|
899
|
-
const TENANT_NOT_FOUND_BY_NAME = new InjectionToken('TENANT_NOT_FOUND_BY_NAME');
|
|
1001
|
+
}] });
|
|
900
1002
|
|
|
901
1003
|
const tenancyPlaceholder = '{0}';
|
|
902
|
-
function getCurrentTenancyName(appBaseUrl) {
|
|
1004
|
+
function getCurrentTenancyName(appBaseUrl, injector) {
|
|
1005
|
+
const platformId = injector.get(PLATFORM_ID);
|
|
1006
|
+
const document = injector.get(DOCUMENT);
|
|
903
1007
|
if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
|
|
904
1008
|
appBaseUrl += '/';
|
|
905
1009
|
const parseTokens = createTokenParser(appBaseUrl);
|
|
906
1010
|
const token = tenancyPlaceholder.replace(/[}{]/g, '');
|
|
907
|
-
|
|
1011
|
+
const tokenValue = isPlatformBrowser(platformId)
|
|
1012
|
+
? parseTokens(document.defaultView?.location.href)[token]?.[0]
|
|
1013
|
+
: undefined;
|
|
1014
|
+
return tokenValue;
|
|
908
1015
|
}
|
|
909
|
-
function getCurrentTenancyNameFromUrl(tenantKey) {
|
|
910
|
-
const
|
|
1016
|
+
function getCurrentTenancyNameFromUrl(tenantKey, injector) {
|
|
1017
|
+
const platformId = injector.get(PLATFORM_ID);
|
|
1018
|
+
const document = injector.get(DOCUMENT);
|
|
1019
|
+
if (!isPlatformBrowser(platformId)) {
|
|
1020
|
+
return null;
|
|
1021
|
+
}
|
|
1022
|
+
const search = document.defaultView?.location.search;
|
|
1023
|
+
const urlParams = new URLSearchParams(search);
|
|
911
1024
|
return urlParams.get(tenantKey);
|
|
912
1025
|
}
|
|
913
1026
|
async function parseTenantFromUrl(injector) {
|
|
@@ -915,7 +1028,7 @@ async function parseTenantFromUrl(injector) {
|
|
|
915
1028
|
const multiTenancyService = injector.get(MultiTenancyService);
|
|
916
1029
|
const tenantNotFoundHandler = injector.get(TENANT_NOT_FOUND_BY_NAME, null);
|
|
917
1030
|
const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';
|
|
918
|
-
const tenancyName = getCurrentTenancyName(baseUrl);
|
|
1031
|
+
const tenancyName = getCurrentTenancyName(baseUrl, injector);
|
|
919
1032
|
const hideTenantBox = () => {
|
|
920
1033
|
multiTenancyService.isTenantBoxVisible = false;
|
|
921
1034
|
};
|
|
@@ -956,7 +1069,7 @@ async function parseTenantFromUrl(injector) {
|
|
|
956
1069
|
* If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
|
|
957
1070
|
*/
|
|
958
1071
|
replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
|
|
959
|
-
const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
|
|
1072
|
+
const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey, injector);
|
|
960
1073
|
if (tenantIdFromQueryParams) {
|
|
961
1074
|
const tenantById$ = multiTenancyService.setTenantById(tenantIdFromQueryParams);
|
|
962
1075
|
return firstValueFrom(tenantById$);
|
|
@@ -984,8 +1097,6 @@ function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder =
|
|
|
984
1097
|
return environmentService.setState(environment);
|
|
985
1098
|
}
|
|
986
1099
|
|
|
987
|
-
const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken('CHECK_AUTHENTICATION_STATE_FN_KEY');
|
|
988
|
-
|
|
989
1100
|
async function getInitialData() {
|
|
990
1101
|
const injector = inject(Injector);
|
|
991
1102
|
const environmentService = injector.get(EnvironmentService);
|
|
@@ -1013,7 +1124,8 @@ async function getInitialData() {
|
|
|
1013
1124
|
}
|
|
1014
1125
|
return throwError(() => error);
|
|
1015
1126
|
}));
|
|
1016
|
-
|
|
1127
|
+
// TODO: Not working with SSR
|
|
1128
|
+
// await lastValueFrom(result$);
|
|
1017
1129
|
await localeInitializer(injector);
|
|
1018
1130
|
}
|
|
1019
1131
|
function localeInitializer(injector) {
|
|
@@ -1059,29 +1171,32 @@ const CROSS_ORIGIN_STRATEGY = {
|
|
|
1059
1171
|
};
|
|
1060
1172
|
|
|
1061
1173
|
class DomStrategy {
|
|
1062
|
-
constructor(
|
|
1063
|
-
this.
|
|
1174
|
+
constructor(getTarget, position = 'beforeend') {
|
|
1175
|
+
this.getTarget = getTarget;
|
|
1064
1176
|
this.position = position;
|
|
1065
1177
|
}
|
|
1066
1178
|
insertElement(element) {
|
|
1067
|
-
|
|
1179
|
+
if (typeof document !== 'undefined') {
|
|
1180
|
+
const target = this.getTarget();
|
|
1181
|
+
target.insertAdjacentElement(this.position, element);
|
|
1182
|
+
}
|
|
1068
1183
|
}
|
|
1069
1184
|
}
|
|
1070
1185
|
const DOM_STRATEGY = {
|
|
1071
1186
|
AfterElement(element) {
|
|
1072
|
-
return new DomStrategy(element, 'afterend');
|
|
1187
|
+
return new DomStrategy(() => element, 'afterend');
|
|
1073
1188
|
},
|
|
1074
1189
|
AppendToBody() {
|
|
1075
|
-
return new DomStrategy(document
|
|
1190
|
+
return new DomStrategy(() => document?.body, 'beforeend');
|
|
1076
1191
|
},
|
|
1077
1192
|
AppendToHead() {
|
|
1078
|
-
return new DomStrategy(document
|
|
1193
|
+
return new DomStrategy(() => document?.head, 'beforeend');
|
|
1079
1194
|
},
|
|
1080
1195
|
BeforeElement(element) {
|
|
1081
|
-
return new DomStrategy(element, 'beforebegin');
|
|
1196
|
+
return new DomStrategy(() => element, 'beforebegin');
|
|
1082
1197
|
},
|
|
1083
1198
|
PrependToHead() {
|
|
1084
|
-
return new DomStrategy(document
|
|
1199
|
+
return new DomStrategy(() => document?.head, 'afterbegin');
|
|
1085
1200
|
},
|
|
1086
1201
|
};
|
|
1087
1202
|
|
|
@@ -1256,6 +1371,48 @@ function createGroupMap(list, othersGroupKey) {
|
|
|
1256
1371
|
return mapGroup;
|
|
1257
1372
|
}
|
|
1258
1373
|
|
|
1374
|
+
class ServerCookieParser {
|
|
1375
|
+
static parse(cookieHeader) {
|
|
1376
|
+
const cookies = {};
|
|
1377
|
+
if (!cookieHeader)
|
|
1378
|
+
return cookies;
|
|
1379
|
+
try {
|
|
1380
|
+
cookieHeader.split(';').forEach(cookie => {
|
|
1381
|
+
const parts = cookie.trim().split('=');
|
|
1382
|
+
if (parts.length >= 2) {
|
|
1383
|
+
const name = parts[0].trim();
|
|
1384
|
+
const value = parts.slice(1).join('=');
|
|
1385
|
+
if (name) {
|
|
1386
|
+
try {
|
|
1387
|
+
cookies[name] = decodeURIComponent(value);
|
|
1388
|
+
}
|
|
1389
|
+
catch (e) {
|
|
1390
|
+
cookies[name] = value;
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
});
|
|
1395
|
+
}
|
|
1396
|
+
catch (error) {
|
|
1397
|
+
console.error('Error parsing cookies:', error);
|
|
1398
|
+
}
|
|
1399
|
+
return cookies;
|
|
1400
|
+
}
|
|
1401
|
+
static middleware() {
|
|
1402
|
+
return (req, res, next) => {
|
|
1403
|
+
req.cookies = ServerCookieParser.parse(req.headers.cookie || '');
|
|
1404
|
+
next();
|
|
1405
|
+
};
|
|
1406
|
+
}
|
|
1407
|
+
static getCookie(req, name) {
|
|
1408
|
+
const cookieHeader = req.headers.cookie;
|
|
1409
|
+
if (!cookieHeader)
|
|
1410
|
+
return undefined;
|
|
1411
|
+
const cookies = ServerCookieParser.parse(cookieHeader);
|
|
1412
|
+
return cookies[name];
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1259
1416
|
class DomInsertionService {
|
|
1260
1417
|
constructor() {
|
|
1261
1418
|
this.inserted = new Set();
|
|
@@ -1287,15 +1444,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1287
1444
|
args: [{ providedIn: 'root' }]
|
|
1288
1445
|
}] });
|
|
1289
1446
|
|
|
1290
|
-
const LOADER_DELAY = new InjectionToken('LOADER_DELAY');
|
|
1291
|
-
|
|
1292
1447
|
class HttpWaitService {
|
|
1293
|
-
constructor(
|
|
1448
|
+
constructor() {
|
|
1294
1449
|
this.store = new InternalStore({
|
|
1295
1450
|
requests: [],
|
|
1296
1451
|
filteredRequests: [],
|
|
1297
1452
|
});
|
|
1298
1453
|
this.destroy$ = new Subject();
|
|
1454
|
+
const injector = inject(Injector);
|
|
1299
1455
|
this.delay = injector.get(LOADER_DELAY, 500);
|
|
1300
1456
|
}
|
|
1301
1457
|
getLoading() {
|
|
@@ -1347,7 +1503,7 @@ class HttpWaitService {
|
|
|
1347
1503
|
const { method, endpoint } = filteredRequest;
|
|
1348
1504
|
return endpoint === request.endpoint && method === request.method;
|
|
1349
1505
|
}
|
|
1350
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, deps: [
|
|
1506
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1351
1507
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, providedIn: 'root' }); }
|
|
1352
1508
|
}
|
|
1353
1509
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, decorators: [{
|
|
@@ -1355,7 +1511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1355
1511
|
args: [{
|
|
1356
1512
|
providedIn: 'root',
|
|
1357
1513
|
}]
|
|
1358
|
-
}], ctorParameters: () => [
|
|
1514
|
+
}], ctorParameters: () => [] });
|
|
1359
1515
|
|
|
1360
1516
|
class ResourceWaitService {
|
|
1361
1517
|
constructor() {
|
|
@@ -1394,8 +1550,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1394
1550
|
}] });
|
|
1395
1551
|
|
|
1396
1552
|
class LazyLoadService {
|
|
1397
|
-
constructor(
|
|
1398
|
-
this.resourceWaitService =
|
|
1553
|
+
constructor() {
|
|
1554
|
+
this.resourceWaitService = inject(ResourceWaitService);
|
|
1399
1555
|
this.loaded = new Map();
|
|
1400
1556
|
}
|
|
1401
1557
|
load(strategy, retryTimes, retryDelay) {
|
|
@@ -1417,7 +1573,7 @@ class LazyLoadService {
|
|
|
1417
1573
|
this.loaded.delete(path);
|
|
1418
1574
|
return true;
|
|
1419
1575
|
}
|
|
1420
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, deps: [
|
|
1576
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1421
1577
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, providedIn: 'root' }); }
|
|
1422
1578
|
}
|
|
1423
1579
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, decorators: [{
|
|
@@ -1425,9 +1581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1425
1581
|
args: [{
|
|
1426
1582
|
providedIn: 'root',
|
|
1427
1583
|
}]
|
|
1428
|
-
}]
|
|
1429
|
-
|
|
1430
|
-
const LIST_QUERY_DEBOUNCE_TIME = new InjectionToken('LIST_QUERY_DEBOUNCE_TIME');
|
|
1584
|
+
}] });
|
|
1431
1585
|
|
|
1432
1586
|
class ListService {
|
|
1433
1587
|
set filter(value) {
|
|
@@ -1490,7 +1644,7 @@ class ListService {
|
|
|
1490
1644
|
get requestStatus$() {
|
|
1491
1645
|
return this._requestStatus.asObservable().pipe(takeUntil(this.destroy$));
|
|
1492
1646
|
}
|
|
1493
|
-
constructor(
|
|
1647
|
+
constructor() {
|
|
1494
1648
|
this._filter = '';
|
|
1495
1649
|
this._maxResultCount = 10;
|
|
1496
1650
|
this._page = 0;
|
|
@@ -1508,6 +1662,7 @@ class ListService {
|
|
|
1508
1662
|
this.getWithoutPageReset = () => {
|
|
1509
1663
|
this.next();
|
|
1510
1664
|
};
|
|
1665
|
+
const injector = inject(Injector);
|
|
1511
1666
|
const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300);
|
|
1512
1667
|
this.delay = delay ? debounceTime(delay) : tap();
|
|
1513
1668
|
this.get();
|
|
@@ -1542,16 +1697,16 @@ class ListService {
|
|
|
1542
1697
|
sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined,
|
|
1543
1698
|
});
|
|
1544
1699
|
}
|
|
1545
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService, deps: [
|
|
1700
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1546
1701
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService }); }
|
|
1547
1702
|
}
|
|
1548
1703
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService, decorators: [{
|
|
1549
1704
|
type: Injectable
|
|
1550
|
-
}], ctorParameters: () => [
|
|
1705
|
+
}], ctorParameters: () => [] });
|
|
1551
1706
|
|
|
1552
1707
|
class PermissionService {
|
|
1553
|
-
constructor(
|
|
1554
|
-
this.configState =
|
|
1708
|
+
constructor() {
|
|
1709
|
+
this.configState = inject(ConfigStateService);
|
|
1555
1710
|
}
|
|
1556
1711
|
getGrantedPolicy$(key) {
|
|
1557
1712
|
return this.getStream().pipe(map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)));
|
|
@@ -1599,13 +1754,13 @@ class PermissionService {
|
|
|
1599
1754
|
getPolicy(key, grantedPolicies) {
|
|
1600
1755
|
return grantedPolicies[key] || false;
|
|
1601
1756
|
}
|
|
1602
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, deps: [
|
|
1757
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1603
1758
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, providedIn: 'root' }); }
|
|
1604
1759
|
}
|
|
1605
1760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, decorators: [{
|
|
1606
1761
|
type: Injectable,
|
|
1607
1762
|
args: [{ providedIn: 'root' }]
|
|
1608
|
-
}]
|
|
1763
|
+
}] });
|
|
1609
1764
|
|
|
1610
1765
|
class ReplaceableComponentsService {
|
|
1611
1766
|
get replaceableComponents$() {
|
|
@@ -1617,9 +1772,9 @@ class ReplaceableComponentsService {
|
|
|
1617
1772
|
get onUpdate$() {
|
|
1618
1773
|
return this.store.sliceUpdate(state => state);
|
|
1619
1774
|
}
|
|
1620
|
-
constructor(
|
|
1621
|
-
this.ngZone =
|
|
1622
|
-
this.router =
|
|
1775
|
+
constructor() {
|
|
1776
|
+
this.ngZone = inject(NgZone);
|
|
1777
|
+
this.router = inject(Router);
|
|
1623
1778
|
this.store = new InternalStore([]);
|
|
1624
1779
|
}
|
|
1625
1780
|
add(replaceableComponent, reload) {
|
|
@@ -1641,23 +1796,109 @@ class ReplaceableComponentsService {
|
|
|
1641
1796
|
get$(replaceableComponentKey) {
|
|
1642
1797
|
return this.replaceableComponents$.pipe(map(components => components.find(component => component.key === replaceableComponentKey)));
|
|
1643
1798
|
}
|
|
1644
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, deps: [
|
|
1799
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1645
1800
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, providedIn: 'root' }); }
|
|
1646
1801
|
}
|
|
1647
1802
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, decorators: [{
|
|
1648
1803
|
type: Injectable,
|
|
1649
1804
|
args: [{ providedIn: 'root' }]
|
|
1650
|
-
}], ctorParameters: () => [
|
|
1805
|
+
}], ctorParameters: () => [] });
|
|
1651
1806
|
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1807
|
+
// source : https://github.com/armanozak/demo-angular-server-specific-interceptors
|
|
1808
|
+
class ExternalHttpClient extends HttpClient {
|
|
1809
|
+
request(first, url, options = {}) {
|
|
1810
|
+
if (typeof first === 'string') {
|
|
1811
|
+
this.#setPlaceholderContext(options);
|
|
1812
|
+
return super.request(first, url || '', options);
|
|
1813
|
+
}
|
|
1814
|
+
this.#setPlaceholderContext(first);
|
|
1815
|
+
return super.request(first);
|
|
1816
|
+
}
|
|
1817
|
+
#setPlaceholderContext(optionsOrRequest) {
|
|
1818
|
+
optionsOrRequest.context ??= new HttpContext();
|
|
1819
|
+
optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);
|
|
1820
|
+
}
|
|
1821
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1822
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, providedIn: 'root' }); }
|
|
1823
|
+
}
|
|
1824
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, decorators: [{
|
|
1825
|
+
type: Injectable,
|
|
1826
|
+
args: [{
|
|
1827
|
+
providedIn: 'root',
|
|
1828
|
+
}]
|
|
1829
|
+
}] });
|
|
1830
|
+
|
|
1831
|
+
class RestService {
|
|
1832
|
+
constructor() {
|
|
1833
|
+
this.options = inject(CORE_OPTIONS);
|
|
1834
|
+
this.http = inject(HttpClient);
|
|
1835
|
+
this.externalHttp = inject(ExternalHttpClient);
|
|
1836
|
+
this.environment = inject(EnvironmentService);
|
|
1837
|
+
this.httpErrorReporter = inject(HttpErrorReporterService);
|
|
1838
|
+
}
|
|
1839
|
+
getApiFromStore(apiName) {
|
|
1840
|
+
return this.environment.getApiUrl(apiName);
|
|
1841
|
+
}
|
|
1842
|
+
handleError(err) {
|
|
1843
|
+
this.httpErrorReporter.reportError(err);
|
|
1844
|
+
return throwError(() => err);
|
|
1845
|
+
}
|
|
1846
|
+
request(request, config, api) {
|
|
1847
|
+
config = config || {};
|
|
1848
|
+
api = api || this.getApiFromStore(config.apiName);
|
|
1849
|
+
const { method, params, ...options } = request;
|
|
1850
|
+
const { observe = "body" /* Rest.Observe.Body */, skipHandleError, responseType = "json" /* Rest.ResponseType.JSON */ } = config;
|
|
1851
|
+
const url = this.removeDuplicateSlashes(api + request.url);
|
|
1852
|
+
const httpClient = this.getHttpClient(config.skipAddingHeader);
|
|
1853
|
+
return httpClient
|
|
1854
|
+
.request(method, url, {
|
|
1855
|
+
observe,
|
|
1856
|
+
responseType: responseType,
|
|
1857
|
+
...(params && {
|
|
1858
|
+
params: this.getParams(params, config.httpParamEncoder),
|
|
1859
|
+
}),
|
|
1860
|
+
...options,
|
|
1861
|
+
})
|
|
1862
|
+
.pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));
|
|
1863
|
+
}
|
|
1864
|
+
getHttpClient(isExternal) {
|
|
1865
|
+
return isExternal ? this.externalHttp : this.http;
|
|
1866
|
+
}
|
|
1867
|
+
getParams(params, encoder) {
|
|
1868
|
+
const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {
|
|
1869
|
+
if (isUndefinedOrEmptyString(value))
|
|
1870
|
+
return acc;
|
|
1871
|
+
if (value === null && !this.options.sendNullsAsQueryParam)
|
|
1872
|
+
return acc;
|
|
1873
|
+
acc[key] = value;
|
|
1874
|
+
return acc;
|
|
1875
|
+
}, {});
|
|
1876
|
+
return encoder
|
|
1877
|
+
? new HttpParams({ encoder, fromObject: filteredParams })
|
|
1878
|
+
: new HttpParams({ fromObject: filteredParams });
|
|
1879
|
+
}
|
|
1880
|
+
removeDuplicateSlashes(url) {
|
|
1881
|
+
return url.replace(/([^:]\/)\/+/g, '$1');
|
|
1882
|
+
}
|
|
1883
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1884
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, providedIn: 'root' }); }
|
|
1885
|
+
}
|
|
1886
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, decorators: [{
|
|
1887
|
+
type: Injectable,
|
|
1888
|
+
args: [{
|
|
1889
|
+
providedIn: 'root',
|
|
1890
|
+
}]
|
|
1891
|
+
}] });
|
|
1892
|
+
|
|
1893
|
+
const NavigationEvent = {
|
|
1894
|
+
Cancel: NavigationCancel,
|
|
1895
|
+
End: NavigationEnd,
|
|
1896
|
+
Error: NavigationError,
|
|
1897
|
+
Start: NavigationStart,
|
|
1898
|
+
};
|
|
1899
|
+
class RouterEvents {
|
|
1900
|
+
#previousNavigation;
|
|
1901
|
+
#currentNavigation;
|
|
1661
1902
|
constructor() {
|
|
1662
1903
|
this.router = inject(Router);
|
|
1663
1904
|
this.#previousNavigation = signal(undefined);
|
|
@@ -1697,10 +1938,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1697
1938
|
}], ctorParameters: () => [] });
|
|
1698
1939
|
|
|
1699
1940
|
class RouterWaitService {
|
|
1700
|
-
constructor(
|
|
1701
|
-
this.routerEvents =
|
|
1941
|
+
constructor() {
|
|
1942
|
+
this.routerEvents = inject(RouterEvents);
|
|
1702
1943
|
this.store = new InternalStore({ loading: false });
|
|
1703
1944
|
this.destroy$ = new Subject();
|
|
1945
|
+
const injector = inject(Injector);
|
|
1704
1946
|
this.delay = injector.get(LOADER_DELAY, 500);
|
|
1705
1947
|
this.updateLoadingStatusOnNavigationEvents();
|
|
1706
1948
|
}
|
|
@@ -1728,7 +1970,7 @@ class RouterWaitService {
|
|
|
1728
1970
|
setLoading(loading) {
|
|
1729
1971
|
this.store.patch({ loading });
|
|
1730
1972
|
}
|
|
1731
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, deps: [
|
|
1973
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1732
1974
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, providedIn: 'root' }); }
|
|
1733
1975
|
}
|
|
1734
1976
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, decorators: [{
|
|
@@ -1736,59 +1978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1736
1978
|
args: [{
|
|
1737
1979
|
providedIn: 'root',
|
|
1738
1980
|
}]
|
|
1739
|
-
}], ctorParameters: () => [
|
|
1740
|
-
|
|
1741
|
-
const COOKIE_LANGUAGE_KEY = new InjectionToken('COOKIE_LANGUAGE_KEY', {
|
|
1742
|
-
factory: () => '.AspNetCore.Culture',
|
|
1743
|
-
});
|
|
1744
|
-
|
|
1745
|
-
const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken('NAVIGATE_TO_MANAGE_PROFILE');
|
|
1746
|
-
|
|
1747
|
-
const QUEUE_MANAGER = new InjectionToken("QUEUE_MANAGER");
|
|
1748
|
-
|
|
1749
|
-
const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');
|
|
1750
|
-
|
|
1751
|
-
const PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY');
|
|
1752
|
-
|
|
1753
|
-
/**
|
|
1754
|
-
* @deprecated The token should not be used anymore.
|
|
1755
|
-
*/
|
|
1756
|
-
const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken('SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY');
|
|
1757
|
-
|
|
1758
|
-
const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP');
|
|
1759
|
-
|
|
1760
|
-
const SORT_COMPARE_FUNC = new InjectionToken('SORT_COMPARE_FUNC');
|
|
1761
|
-
function compareFuncFactory() {
|
|
1762
|
-
const localizationService = inject(LocalizationService);
|
|
1763
|
-
const fn = (a, b) => {
|
|
1764
|
-
const aNumber = a.order;
|
|
1765
|
-
const bNumber = b.order;
|
|
1766
|
-
if (aNumber > bNumber)
|
|
1767
|
-
return 1;
|
|
1768
|
-
if (aNumber < bNumber)
|
|
1769
|
-
return -1;
|
|
1770
|
-
if (a.id > b.id)
|
|
1771
|
-
return 1;
|
|
1772
|
-
if (a.id < b.id)
|
|
1773
|
-
return -1;
|
|
1774
|
-
if (!Number.isInteger(aNumber))
|
|
1775
|
-
return 1;
|
|
1776
|
-
if (!Number.isInteger(bNumber))
|
|
1777
|
-
return -1;
|
|
1778
|
-
const aName = localizationService.instant(a.name);
|
|
1779
|
-
const bName = localizationService.instant(b.name);
|
|
1780
|
-
if (aName > bName)
|
|
1781
|
-
return 1;
|
|
1782
|
-
if (aName < bName)
|
|
1783
|
-
return -1;
|
|
1784
|
-
return 0;
|
|
1785
|
-
};
|
|
1786
|
-
return fn;
|
|
1787
|
-
}
|
|
1788
|
-
|
|
1789
|
-
const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken('DYNAMIC_LAYOUTS');
|
|
1790
|
-
|
|
1791
|
-
const DISABLE_PROJECT_NAME = new InjectionToken('DISABLE_APP_NAME');
|
|
1981
|
+
}], ctorParameters: () => [] });
|
|
1792
1982
|
|
|
1793
1983
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
1794
1984
|
class AbstractTreeService {
|
|
@@ -1925,15 +2115,16 @@ class AbstractTreeService {
|
|
|
1925
2115
|
}
|
|
1926
2116
|
}
|
|
1927
2117
|
class AbstractNavTreeService extends AbstractTreeService {
|
|
1928
|
-
constructor(
|
|
2118
|
+
constructor() {
|
|
1929
2119
|
super();
|
|
1930
|
-
this.injector =
|
|
2120
|
+
this.injector = inject(Injector);
|
|
1931
2121
|
this.id = 'name';
|
|
1932
2122
|
this.parentId = 'parentName';
|
|
1933
2123
|
this.hide = (item) => item.invisible || !this.isGranted(item);
|
|
1934
2124
|
this.sort = (a, b) => {
|
|
1935
2125
|
return this.compareFunc(a, b);
|
|
1936
2126
|
};
|
|
2127
|
+
const injector = this.injector;
|
|
1937
2128
|
const configState = this.injector.get(ConfigStateService);
|
|
1938
2129
|
this.subscription = configState
|
|
1939
2130
|
.createOnUpdateStream(state => state)
|
|
@@ -1957,12 +2148,12 @@ class AbstractNavTreeService extends AbstractTreeService {
|
|
|
1957
2148
|
ngOnDestroy() {
|
|
1958
2149
|
this.subscription.unsubscribe();
|
|
1959
2150
|
}
|
|
1960
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService, deps: [
|
|
2151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1961
2152
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService }); }
|
|
1962
2153
|
}
|
|
1963
2154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService, decorators: [{
|
|
1964
2155
|
type: Injectable
|
|
1965
|
-
}], ctorParameters: () => [
|
|
2156
|
+
}], ctorParameters: () => [] });
|
|
1966
2157
|
class RoutesService extends AbstractNavTreeService {
|
|
1967
2158
|
hasPathOrChild(item) {
|
|
1968
2159
|
return Boolean(item.path) || this.hasChildren(item.name);
|
|
@@ -2326,93 +2517,404 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2326
2517
|
}]
|
|
2327
2518
|
}] });
|
|
2328
2519
|
|
|
2329
|
-
class
|
|
2330
|
-
constructor(
|
|
2331
|
-
this.
|
|
2332
|
-
this.apiName = 'abp';
|
|
2333
|
-
this.get = (options, config) => this.restService.request({
|
|
2334
|
-
method: 'GET',
|
|
2335
|
-
url: '/api/abp/application-configuration',
|
|
2336
|
-
params: { includeLocalizationResources: options.includeLocalizationResources },
|
|
2337
|
-
}, { apiName: this.apiName, ...config });
|
|
2520
|
+
class ContainerStrategy {
|
|
2521
|
+
constructor(containerRef) {
|
|
2522
|
+
this.containerRef = containerRef;
|
|
2338
2523
|
}
|
|
2339
|
-
|
|
2340
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, providedIn: 'root' }); }
|
|
2524
|
+
prepare() { }
|
|
2341
2525
|
}
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
class AbpApplicationLocalizationService {
|
|
2350
|
-
constructor(restService) {
|
|
2351
|
-
this.restService = restService;
|
|
2352
|
-
this.apiName = 'abp';
|
|
2353
|
-
this.get = (input, config) => this.restService.request({
|
|
2354
|
-
method: 'GET',
|
|
2355
|
-
url: '/api/abp/application-localization',
|
|
2356
|
-
params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },
|
|
2357
|
-
}, { apiName: this.apiName, ...config });
|
|
2526
|
+
class ClearContainerStrategy extends ContainerStrategy {
|
|
2527
|
+
getIndex() {
|
|
2528
|
+
return 0;
|
|
2529
|
+
}
|
|
2530
|
+
prepare() {
|
|
2531
|
+
this.containerRef.clear();
|
|
2358
2532
|
}
|
|
2359
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, deps: [{ token: RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2360
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, providedIn: 'root' }); }
|
|
2361
2533
|
}
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
}]
|
|
2367
|
-
}], ctorParameters: () => [{ type: RestService }] });
|
|
2368
|
-
|
|
2369
|
-
class ConfigStateService {
|
|
2370
|
-
setState(config) {
|
|
2371
|
-
this.store.set(config);
|
|
2534
|
+
class InsertIntoContainerStrategy extends ContainerStrategy {
|
|
2535
|
+
constructor(containerRef, index) {
|
|
2536
|
+
super(containerRef);
|
|
2537
|
+
this.index = index;
|
|
2372
2538
|
}
|
|
2373
|
-
|
|
2374
|
-
return this.
|
|
2539
|
+
getIndex() {
|
|
2540
|
+
return Math.min(Math.max(0, this.index), this.containerRef.length);
|
|
2375
2541
|
}
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2542
|
+
}
|
|
2543
|
+
const CONTAINER_STRATEGY = {
|
|
2544
|
+
Clear(containerRef) {
|
|
2545
|
+
return new ClearContainerStrategy(containerRef);
|
|
2546
|
+
},
|
|
2547
|
+
Append(containerRef) {
|
|
2548
|
+
return new InsertIntoContainerStrategy(containerRef, containerRef.length);
|
|
2549
|
+
},
|
|
2550
|
+
Prepend(containerRef) {
|
|
2551
|
+
return new InsertIntoContainerStrategy(containerRef, 0);
|
|
2552
|
+
},
|
|
2553
|
+
Insert(containerRef, index) {
|
|
2554
|
+
return new InsertIntoContainerStrategy(containerRef, index);
|
|
2555
|
+
},
|
|
2556
|
+
};
|
|
2557
|
+
|
|
2558
|
+
class ContentSecurityStrategy {
|
|
2559
|
+
constructor(nonce) {
|
|
2560
|
+
this.nonce = nonce;
|
|
2383
2561
|
}
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
})))
|
|
2389
|
-
.pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
|
|
2390
|
-
.subscribe(res => this.store.set(res));
|
|
2562
|
+
}
|
|
2563
|
+
class LooseContentSecurityStrategy extends ContentSecurityStrategy {
|
|
2564
|
+
constructor(nonce) {
|
|
2565
|
+
super(nonce);
|
|
2391
2566
|
}
|
|
2392
|
-
|
|
2393
|
-
if (
|
|
2394
|
-
|
|
2567
|
+
applyCSP(element) {
|
|
2568
|
+
if (this.nonce) {
|
|
2569
|
+
element.setAttribute('nonce', this.nonce);
|
|
2395
2570
|
}
|
|
2396
|
-
const cultureName = this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;
|
|
2397
|
-
return this.getlocalizationResource(cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })), tap(() => (this.uiCultureFromAuthCodeFlow = undefined)));
|
|
2398
|
-
}
|
|
2399
|
-
getlocalizationResource(cultureName) {
|
|
2400
|
-
return this.abpApplicationLocalizationService.get({
|
|
2401
|
-
cultureName: cultureName,
|
|
2402
|
-
onlyDynamics: false,
|
|
2403
|
-
});
|
|
2404
2571
|
}
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2572
|
+
}
|
|
2573
|
+
class NoContentSecurityStrategy extends ContentSecurityStrategy {
|
|
2574
|
+
constructor() {
|
|
2575
|
+
super();
|
|
2408
2576
|
}
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
return
|
|
2414
|
-
|
|
2415
|
-
|
|
2577
|
+
applyCSP(_) { }
|
|
2578
|
+
}
|
|
2579
|
+
const CONTENT_SECURITY_STRATEGY = {
|
|
2580
|
+
Loose(nonce) {
|
|
2581
|
+
return new LooseContentSecurityStrategy(nonce);
|
|
2582
|
+
},
|
|
2583
|
+
None() {
|
|
2584
|
+
return new NoContentSecurityStrategy();
|
|
2585
|
+
},
|
|
2586
|
+
};
|
|
2587
|
+
|
|
2588
|
+
class ContentStrategy {
|
|
2589
|
+
constructor(content, domStrategy = DOM_STRATEGY.AppendToHead(), contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(), options = {}) {
|
|
2590
|
+
this.content = content;
|
|
2591
|
+
this.domStrategy = domStrategy;
|
|
2592
|
+
this.contentSecurityStrategy = contentSecurityStrategy;
|
|
2593
|
+
this.options = options;
|
|
2594
|
+
}
|
|
2595
|
+
insertElement() {
|
|
2596
|
+
const element = this.createElement();
|
|
2597
|
+
if (this.options && Object.keys(this.options).length > 0) {
|
|
2598
|
+
Object.keys(this.options).forEach(key => {
|
|
2599
|
+
if (this.options[key]) {
|
|
2600
|
+
element[key] = this.options[key];
|
|
2601
|
+
}
|
|
2602
|
+
});
|
|
2603
|
+
}
|
|
2604
|
+
this.contentSecurityStrategy.applyCSP(element);
|
|
2605
|
+
this.domStrategy.insertElement(element);
|
|
2606
|
+
return element;
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2609
|
+
class StyleContentStrategy extends ContentStrategy {
|
|
2610
|
+
createElement() {
|
|
2611
|
+
const element = inject(DOCUMENT).createElement('style');
|
|
2612
|
+
element.textContent = this.content;
|
|
2613
|
+
return element;
|
|
2614
|
+
}
|
|
2615
|
+
}
|
|
2616
|
+
class ScriptContentStrategy extends ContentStrategy {
|
|
2617
|
+
createElement() {
|
|
2618
|
+
const element = inject(DOCUMENT).createElement('script');
|
|
2619
|
+
element.textContent = this.content;
|
|
2620
|
+
return element;
|
|
2621
|
+
}
|
|
2622
|
+
}
|
|
2623
|
+
const CONTENT_STRATEGY = {
|
|
2624
|
+
AppendScriptToBody(content, options) {
|
|
2625
|
+
return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToBody(), undefined, options);
|
|
2626
|
+
},
|
|
2627
|
+
AppendScriptToHead(content, options) {
|
|
2628
|
+
return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
2629
|
+
},
|
|
2630
|
+
AppendStyleToHead(content, options) {
|
|
2631
|
+
return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
2632
|
+
},
|
|
2633
|
+
PrependStyleToHead(content, options) {
|
|
2634
|
+
return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);
|
|
2635
|
+
},
|
|
2636
|
+
};
|
|
2637
|
+
|
|
2638
|
+
class ContextStrategy {
|
|
2639
|
+
constructor(context) {
|
|
2640
|
+
this.context = context;
|
|
2641
|
+
}
|
|
2642
|
+
setContext(componentRef) {
|
|
2643
|
+
return this.context;
|
|
2644
|
+
}
|
|
2645
|
+
}
|
|
2646
|
+
class NoContextStrategy extends ContextStrategy {
|
|
2647
|
+
constructor() {
|
|
2648
|
+
super(undefined);
|
|
2649
|
+
}
|
|
2650
|
+
}
|
|
2651
|
+
class ComponentContextStrategy extends ContextStrategy {
|
|
2652
|
+
setContext(componentRef) {
|
|
2653
|
+
Object.keys(this.context).forEach(key => (componentRef.instance[key] = this.context[key]));
|
|
2654
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
2655
|
+
return this.context;
|
|
2656
|
+
}
|
|
2657
|
+
}
|
|
2658
|
+
class TemplateContextStrategy extends ContextStrategy {
|
|
2659
|
+
setContext() {
|
|
2660
|
+
return this.context;
|
|
2661
|
+
}
|
|
2662
|
+
}
|
|
2663
|
+
const CONTEXT_STRATEGY = {
|
|
2664
|
+
None() {
|
|
2665
|
+
return new NoContextStrategy();
|
|
2666
|
+
},
|
|
2667
|
+
Component(context) {
|
|
2668
|
+
return new ComponentContextStrategy(context);
|
|
2669
|
+
},
|
|
2670
|
+
Template(context) {
|
|
2671
|
+
return new TemplateContextStrategy(context);
|
|
2672
|
+
},
|
|
2673
|
+
};
|
|
2674
|
+
|
|
2675
|
+
class LoadingStrategy {
|
|
2676
|
+
constructor(path, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
|
|
2677
|
+
this.path = path;
|
|
2678
|
+
this.domStrategy = domStrategy;
|
|
2679
|
+
this.crossOriginStrategy = crossOriginStrategy;
|
|
2680
|
+
}
|
|
2681
|
+
createStream() {
|
|
2682
|
+
this.element = this.createElement();
|
|
2683
|
+
return of(null).pipe(switchMap(() => fromLazyLoad(this.element, this.domStrategy, this.crossOriginStrategy)));
|
|
2684
|
+
}
|
|
2685
|
+
}
|
|
2686
|
+
class ScriptLoadingStrategy extends LoadingStrategy {
|
|
2687
|
+
constructor(src, domStrategy, crossOriginStrategy) {
|
|
2688
|
+
super(src, domStrategy, crossOriginStrategy);
|
|
2689
|
+
}
|
|
2690
|
+
createElement() {
|
|
2691
|
+
const element = document.createElement('script');
|
|
2692
|
+
element.src = this.path;
|
|
2693
|
+
return element;
|
|
2694
|
+
}
|
|
2695
|
+
}
|
|
2696
|
+
class StyleLoadingStrategy extends LoadingStrategy {
|
|
2697
|
+
constructor(href, domStrategy, crossOriginStrategy) {
|
|
2698
|
+
super(href, domStrategy, crossOriginStrategy);
|
|
2699
|
+
}
|
|
2700
|
+
createElement() {
|
|
2701
|
+
const element = document.createElement('link');
|
|
2702
|
+
element.rel = 'stylesheet';
|
|
2703
|
+
element.href = this.path;
|
|
2704
|
+
return element;
|
|
2705
|
+
}
|
|
2706
|
+
}
|
|
2707
|
+
const LOADING_STRATEGY = {
|
|
2708
|
+
AppendScriptToBody(src) {
|
|
2709
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.None());
|
|
2710
|
+
},
|
|
2711
|
+
AppendAnonymousScriptToBody(src, integrity) {
|
|
2712
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2713
|
+
},
|
|
2714
|
+
AppendAnonymousScriptToHead(src, integrity) {
|
|
2715
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2716
|
+
},
|
|
2717
|
+
AppendAnonymousStyleToHead(src, integrity) {
|
|
2718
|
+
return new StyleLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2719
|
+
},
|
|
2720
|
+
PrependAnonymousScriptToHead(src, integrity) {
|
|
2721
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2722
|
+
},
|
|
2723
|
+
PrependAnonymousStyleToHead(src, integrity) {
|
|
2724
|
+
return new StyleLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2725
|
+
},
|
|
2726
|
+
};
|
|
2727
|
+
|
|
2728
|
+
class ProjectionStrategy {
|
|
2729
|
+
constructor(content) {
|
|
2730
|
+
this.content = content;
|
|
2731
|
+
}
|
|
2732
|
+
}
|
|
2733
|
+
class ComponentProjectionStrategy extends ProjectionStrategy {
|
|
2734
|
+
constructor(component, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {
|
|
2735
|
+
super(component);
|
|
2736
|
+
this.containerStrategy = containerStrategy;
|
|
2737
|
+
this.contextStrategy = contextStrategy;
|
|
2738
|
+
}
|
|
2739
|
+
injectContent(injector) {
|
|
2740
|
+
this.containerStrategy.prepare();
|
|
2741
|
+
const resolver = injector.get(ComponentFactoryResolver);
|
|
2742
|
+
const factory = resolver.resolveComponentFactory(this.content);
|
|
2743
|
+
const componentRef = this.containerStrategy.containerRef.createComponent(factory, this.containerStrategy.getIndex(), injector);
|
|
2744
|
+
this.contextStrategy.setContext(componentRef);
|
|
2745
|
+
return componentRef;
|
|
2746
|
+
}
|
|
2747
|
+
}
|
|
2748
|
+
class RootComponentProjectionStrategy extends ProjectionStrategy {
|
|
2749
|
+
constructor(component, contextStrategy = CONTEXT_STRATEGY.None(), domStrategy = DOM_STRATEGY.AppendToBody()) {
|
|
2750
|
+
super(component);
|
|
2751
|
+
this.contextStrategy = contextStrategy;
|
|
2752
|
+
this.domStrategy = domStrategy;
|
|
2753
|
+
}
|
|
2754
|
+
injectContent(injector) {
|
|
2755
|
+
const appRef = injector.get(ApplicationRef);
|
|
2756
|
+
const resolver = injector.get(ComponentFactoryResolver);
|
|
2757
|
+
const componentRef = resolver
|
|
2758
|
+
.resolveComponentFactory(this.content)
|
|
2759
|
+
.create(injector);
|
|
2760
|
+
this.contextStrategy.setContext(componentRef);
|
|
2761
|
+
appRef.attachView(componentRef.hostView);
|
|
2762
|
+
const element = componentRef.hostView.rootNodes[0];
|
|
2763
|
+
this.domStrategy.insertElement(element);
|
|
2764
|
+
return componentRef;
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2767
|
+
class TemplateProjectionStrategy extends ProjectionStrategy {
|
|
2768
|
+
constructor(templateRef, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {
|
|
2769
|
+
super(templateRef);
|
|
2770
|
+
this.containerStrategy = containerStrategy;
|
|
2771
|
+
this.contextStrategy = contextStrategy;
|
|
2772
|
+
}
|
|
2773
|
+
injectContent() {
|
|
2774
|
+
this.containerStrategy.prepare();
|
|
2775
|
+
const embeddedViewRef = this.containerStrategy.containerRef.createEmbeddedView(this.content, this.contextStrategy.context, this.containerStrategy.getIndex());
|
|
2776
|
+
embeddedViewRef.detectChanges();
|
|
2777
|
+
return embeddedViewRef;
|
|
2778
|
+
}
|
|
2779
|
+
}
|
|
2780
|
+
const PROJECTION_STRATEGY = {
|
|
2781
|
+
AppendComponentToBody(component, context) {
|
|
2782
|
+
return new RootComponentProjectionStrategy(component, context && CONTEXT_STRATEGY.Component(context));
|
|
2783
|
+
},
|
|
2784
|
+
AppendComponentToContainer(component, containerRef, context) {
|
|
2785
|
+
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
2786
|
+
},
|
|
2787
|
+
AppendTemplateToContainer(templateRef, containerRef, context) {
|
|
2788
|
+
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
2789
|
+
},
|
|
2790
|
+
PrependComponentToContainer(component, containerRef, context) {
|
|
2791
|
+
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
2792
|
+
},
|
|
2793
|
+
PrependTemplateToContainer(templateRef, containerRef, context) {
|
|
2794
|
+
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
2795
|
+
},
|
|
2796
|
+
ProjectComponentToContainer(component, containerRef, context) {
|
|
2797
|
+
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
2798
|
+
},
|
|
2799
|
+
ProjectTemplateToContainer(templateRef, containerRef, context) {
|
|
2800
|
+
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
2801
|
+
},
|
|
2802
|
+
};
|
|
2803
|
+
|
|
2804
|
+
class DomStrategyService {
|
|
2805
|
+
constructor() {
|
|
2806
|
+
this.document = inject(DOCUMENT);
|
|
2807
|
+
}
|
|
2808
|
+
afterElement(el) {
|
|
2809
|
+
return new DomStrategy(() => el, 'afterend');
|
|
2810
|
+
}
|
|
2811
|
+
beforeElement(el) {
|
|
2812
|
+
return new DomStrategy(() => el, 'beforebegin');
|
|
2813
|
+
}
|
|
2814
|
+
appendToBody() {
|
|
2815
|
+
return new DomStrategy(() => this.document.body, 'beforeend');
|
|
2816
|
+
}
|
|
2817
|
+
appendToHead() {
|
|
2818
|
+
return new DomStrategy(() => this.document.head, 'beforeend');
|
|
2819
|
+
}
|
|
2820
|
+
prependToHead() {
|
|
2821
|
+
return new DomStrategy(() => this.document.head, 'afterbegin');
|
|
2822
|
+
}
|
|
2823
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DomStrategyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2824
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DomStrategyService, providedIn: 'root' }); }
|
|
2825
|
+
}
|
|
2826
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DomStrategyService, decorators: [{
|
|
2827
|
+
type: Injectable,
|
|
2828
|
+
args: [{ providedIn: 'root' }]
|
|
2829
|
+
}] });
|
|
2830
|
+
|
|
2831
|
+
class AbpApplicationConfigurationService {
|
|
2832
|
+
constructor() {
|
|
2833
|
+
this.restService = inject(RestService);
|
|
2834
|
+
this.apiName = 'abp';
|
|
2835
|
+
this.get = (options, config) => this.restService.request({
|
|
2836
|
+
method: 'GET',
|
|
2837
|
+
url: '/api/abp/application-configuration',
|
|
2838
|
+
params: { includeLocalizationResources: options.includeLocalizationResources },
|
|
2839
|
+
}, { apiName: this.apiName, ...config });
|
|
2840
|
+
}
|
|
2841
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2842
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, providedIn: 'root' }); }
|
|
2843
|
+
}
|
|
2844
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, decorators: [{
|
|
2845
|
+
type: Injectable,
|
|
2846
|
+
args: [{
|
|
2847
|
+
providedIn: 'root',
|
|
2848
|
+
}]
|
|
2849
|
+
}] });
|
|
2850
|
+
|
|
2851
|
+
class AbpApplicationLocalizationService {
|
|
2852
|
+
constructor() {
|
|
2853
|
+
this.restService = inject(RestService);
|
|
2854
|
+
this.apiName = 'abp';
|
|
2855
|
+
this.get = (input, config) => this.restService.request({
|
|
2856
|
+
method: 'GET',
|
|
2857
|
+
url: '/api/abp/application-localization',
|
|
2858
|
+
params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },
|
|
2859
|
+
}, { apiName: this.apiName, ...config });
|
|
2860
|
+
}
|
|
2861
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2862
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, providedIn: 'root' }); }
|
|
2863
|
+
}
|
|
2864
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, decorators: [{
|
|
2865
|
+
type: Injectable,
|
|
2866
|
+
args: [{
|
|
2867
|
+
providedIn: 'root',
|
|
2868
|
+
}]
|
|
2869
|
+
}] });
|
|
2870
|
+
|
|
2871
|
+
class ConfigStateService {
|
|
2872
|
+
setState(config) {
|
|
2873
|
+
this.store.set(config);
|
|
2874
|
+
}
|
|
2875
|
+
get createOnUpdateStream() {
|
|
2876
|
+
return this.store.sliceUpdate;
|
|
2877
|
+
}
|
|
2878
|
+
constructor() {
|
|
2879
|
+
this.abpConfigService = inject(AbpApplicationConfigurationService);
|
|
2880
|
+
this.abpApplicationLocalizationService = inject(AbpApplicationLocalizationService);
|
|
2881
|
+
this.includeLocalizationResources = inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN, { optional: true });
|
|
2882
|
+
this.updateSubject = new Subject();
|
|
2883
|
+
this.store = new InternalStore({});
|
|
2884
|
+
this.initUpdateStream();
|
|
2885
|
+
}
|
|
2886
|
+
initUpdateStream() {
|
|
2887
|
+
this.updateSubject
|
|
2888
|
+
.pipe(switchMap(() => this.abpConfigService.get({
|
|
2889
|
+
includeLocalizationResources: !!this.includeLocalizationResources,
|
|
2890
|
+
})))
|
|
2891
|
+
.pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
|
|
2892
|
+
.subscribe(res => this.store.set(res));
|
|
2893
|
+
}
|
|
2894
|
+
getLocalizationAndCombineWithAppState(appState) {
|
|
2895
|
+
if (!appState.localization.currentCulture.cultureName) {
|
|
2896
|
+
throw new Error('culture name should defined');
|
|
2897
|
+
}
|
|
2898
|
+
const cultureName = this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;
|
|
2899
|
+
return this.getlocalizationResource(cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })), tap(() => (this.uiCultureFromAuthCodeFlow = undefined)));
|
|
2900
|
+
}
|
|
2901
|
+
getlocalizationResource(cultureName) {
|
|
2902
|
+
return this.abpApplicationLocalizationService.get({
|
|
2903
|
+
cultureName: cultureName,
|
|
2904
|
+
onlyDynamics: false,
|
|
2905
|
+
});
|
|
2906
|
+
}
|
|
2907
|
+
refreshAppState() {
|
|
2908
|
+
this.updateSubject.next();
|
|
2909
|
+
return this.createOnUpdateStream(state => state).pipe(take(1));
|
|
2910
|
+
}
|
|
2911
|
+
refreshLocalization(lang) {
|
|
2912
|
+
if (this.includeLocalizationResources) {
|
|
2913
|
+
return this.refreshAppState().pipe(map(() => null));
|
|
2914
|
+
}
|
|
2915
|
+
return this.getlocalizationResource(lang)
|
|
2916
|
+
.pipe(tap(result => this.store.patch({ localization: { ...this.store.state.localization, ...result } })))
|
|
2917
|
+
.pipe(map(() => null));
|
|
2416
2918
|
}
|
|
2417
2919
|
getOne$(key) {
|
|
2418
2920
|
return this.store.sliceState(state => state[key]);
|
|
@@ -2521,7 +3023,7 @@ class ConfigStateService {
|
|
|
2521
3023
|
getGlobalFeatureIsEnabled$(key) {
|
|
2522
3024
|
return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));
|
|
2523
3025
|
}
|
|
2524
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, deps: [
|
|
3026
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2525
3027
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, providedIn: 'root' }); }
|
|
2526
3028
|
}
|
|
2527
3029
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, decorators: [{
|
|
@@ -2529,12 +3031,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2529
3031
|
args: [{
|
|
2530
3032
|
providedIn: 'root',
|
|
2531
3033
|
}]
|
|
2532
|
-
}], ctorParameters: () => [
|
|
2533
|
-
type: Optional
|
|
2534
|
-
}, {
|
|
2535
|
-
type: Inject,
|
|
2536
|
-
args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]
|
|
2537
|
-
}] }] });
|
|
3034
|
+
}], ctorParameters: () => [] });
|
|
2538
3035
|
function splitKeys(keys) {
|
|
2539
3036
|
if (typeof keys === 'string') {
|
|
2540
3037
|
keys = keys.split('.');
|
|
@@ -2561,14 +3058,15 @@ class LocalizationService {
|
|
|
2561
3058
|
get languageChange$() {
|
|
2562
3059
|
return this._languageChange$.asObservable();
|
|
2563
3060
|
}
|
|
2564
|
-
constructor(
|
|
2565
|
-
this.sessionState =
|
|
2566
|
-
this.injector =
|
|
2567
|
-
this.configState =
|
|
3061
|
+
constructor() {
|
|
3062
|
+
this.sessionState = inject(SessionStateService);
|
|
3063
|
+
this.injector = inject(Injector);
|
|
3064
|
+
this.configState = inject(ConfigStateService);
|
|
2568
3065
|
this.latestLang = this.sessionState.getLanguage();
|
|
2569
3066
|
this._languageChange$ = new Subject();
|
|
2570
3067
|
this.uiLocalizations$ = new BehaviorSubject(new Map());
|
|
2571
3068
|
this.localizations$ = new BehaviorSubject(new Map());
|
|
3069
|
+
const otherInstance = inject(LocalizationService, { optional: true, skipSelf: true });
|
|
2572
3070
|
if (otherInstance)
|
|
2573
3071
|
throw new Error('LocalizationService should have only one instance.');
|
|
2574
3072
|
this.listenToSetLanguage();
|
|
@@ -2714,17 +3212,13 @@ class LocalizationService {
|
|
|
2714
3212
|
localization = '';
|
|
2715
3213
|
return localization || defaultValue || key;
|
|
2716
3214
|
}
|
|
2717
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, deps: [
|
|
3215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2718
3216
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }
|
|
2719
3217
|
}
|
|
2720
3218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, decorators: [{
|
|
2721
3219
|
type: Injectable,
|
|
2722
3220
|
args: [{ providedIn: 'root' }]
|
|
2723
|
-
}], ctorParameters: () => [
|
|
2724
|
-
type: Optional
|
|
2725
|
-
}, {
|
|
2726
|
-
type: SkipSelf
|
|
2727
|
-
}] }, { type: ConfigStateService }] });
|
|
3221
|
+
}], ctorParameters: () => [] });
|
|
2728
3222
|
function recursivelyMergeBaseResources(baseResourceName, source) {
|
|
2729
3223
|
const item = source[baseResourceName];
|
|
2730
3224
|
if (item.baseResources.length === 0) {
|
|
@@ -2751,7 +3245,7 @@ function combineLegacyandNewResources(legacy, resource) {
|
|
|
2751
3245
|
}
|
|
2752
3246
|
|
|
2753
3247
|
class DynamicLayoutComponent {
|
|
2754
|
-
constructor(
|
|
3248
|
+
constructor() {
|
|
2755
3249
|
this.layouts = inject(DYNAMIC_LAYOUTS_TOKEN);
|
|
2756
3250
|
this.isLayoutVisible = true;
|
|
2757
3251
|
this.router = inject(Router);
|
|
@@ -2762,6 +3256,7 @@ class DynamicLayoutComponent {
|
|
|
2762
3256
|
this.subscription = inject(SubscriptionService);
|
|
2763
3257
|
this.routerEvents = inject(RouterEvents);
|
|
2764
3258
|
this.environment = inject(EnvironmentService);
|
|
3259
|
+
const dynamicLayoutComponent = inject(DynamicLayoutComponent, { optional: true, skipSelf: true });
|
|
2765
3260
|
if (dynamicLayoutComponent) {
|
|
2766
3261
|
if (isDevMode())
|
|
2767
3262
|
console.warn('DynamicLayoutComponent must be used only in AppComponent.');
|
|
@@ -2769,15 +3264,7 @@ class DynamicLayoutComponent {
|
|
|
2769
3264
|
}
|
|
2770
3265
|
this.checkLayoutOnNavigationEnd();
|
|
2771
3266
|
this.listenToLanguageChange();
|
|
2772
|
-
|
|
2773
|
-
ngOnInit() {
|
|
2774
|
-
if (this.layout) {
|
|
2775
|
-
return;
|
|
2776
|
-
}
|
|
2777
|
-
const { oAuthConfig } = this.environment.getEnvironment();
|
|
2778
|
-
if (oAuthConfig.responseType === 'code') {
|
|
2779
|
-
this.getLayout();
|
|
2780
|
-
}
|
|
3267
|
+
this.listenToEnvironmentChange();
|
|
2781
3268
|
}
|
|
2782
3269
|
checkLayoutOnNavigationEnd() {
|
|
2783
3270
|
const navigationEnd$ = this.routerEvents.getNavigationEvents('End');
|
|
@@ -2829,12 +3316,23 @@ class DynamicLayoutComponent {
|
|
|
2829
3316
|
getComponent(key) {
|
|
2830
3317
|
return this.replaceableComponents.get(key);
|
|
2831
3318
|
}
|
|
2832
|
-
|
|
3319
|
+
listenToEnvironmentChange() {
|
|
3320
|
+
this.environment
|
|
3321
|
+
.createOnUpdateStream(x => x.oAuthConfig)
|
|
3322
|
+
.pipe(take$1(1), filter$1(config => config.responseType === 'code'))
|
|
3323
|
+
.subscribe(() => {
|
|
3324
|
+
if (this.layout) {
|
|
3325
|
+
return;
|
|
3326
|
+
}
|
|
3327
|
+
this.getLayout();
|
|
3328
|
+
});
|
|
3329
|
+
}
|
|
3330
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DynamicLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2833
3331
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: DynamicLayoutComponent, isStandalone: true, selector: "abp-dynamic-layout", providers: [SubscriptionService], ngImport: i0, template: `
|
|
2834
3332
|
@if (isLayoutVisible) {
|
|
2835
3333
|
<ng-container [ngComponentOutlet]="layout"></ng-container>
|
|
2836
3334
|
}
|
|
2837
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
3335
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] }); }
|
|
2838
3336
|
}
|
|
2839
3337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DynamicLayoutComponent, decorators: [{
|
|
2840
3338
|
type: Component,
|
|
@@ -2846,19 +3344,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2846
3344
|
}
|
|
2847
3345
|
`,
|
|
2848
3346
|
providers: [SubscriptionService],
|
|
2849
|
-
imports: [
|
|
3347
|
+
imports: [NgComponentOutlet],
|
|
2850
3348
|
}]
|
|
2851
|
-
}], ctorParameters: () => [
|
|
2852
|
-
type: Optional
|
|
2853
|
-
}, {
|
|
2854
|
-
type: SkipSelf
|
|
2855
|
-
}] }] });
|
|
3349
|
+
}], ctorParameters: () => [] });
|
|
2856
3350
|
|
|
2857
3351
|
class ReplaceableRouteContainerComponent {
|
|
2858
|
-
constructor(
|
|
2859
|
-
this.route =
|
|
2860
|
-
this.replaceableComponents =
|
|
2861
|
-
this.subscription =
|
|
3352
|
+
constructor() {
|
|
3353
|
+
this.route = inject(ActivatedRoute);
|
|
3354
|
+
this.replaceableComponents = inject(ReplaceableComponentsService);
|
|
3355
|
+
this.subscription = inject(SubscriptionService);
|
|
2862
3356
|
}
|
|
2863
3357
|
ngOnInit() {
|
|
2864
3358
|
this.defaultComponent = this.route.snapshot.data.replaceableComponent.defaultComponent;
|
|
@@ -2870,10 +3364,10 @@ class ReplaceableRouteContainerComponent {
|
|
|
2870
3364
|
this.externalComponent = res.component;
|
|
2871
3365
|
});
|
|
2872
3366
|
}
|
|
2873
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [
|
|
3367
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2874
3368
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: ReplaceableRouteContainerComponent, isStandalone: true, selector: "abp-replaceable-route-container", providers: [SubscriptionService], ngImport: i0, template: `
|
|
2875
3369
|
<ng-container *ngComponentOutlet="externalComponent || defaultComponent"></ng-container>
|
|
2876
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
3370
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] }); }
|
|
2877
3371
|
}
|
|
2878
3372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableRouteContainerComponent, decorators: [{
|
|
2879
3373
|
type: Component,
|
|
@@ -2883,20 +3377,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2883
3377
|
<ng-container *ngComponentOutlet="externalComponent || defaultComponent"></ng-container>
|
|
2884
3378
|
`,
|
|
2885
3379
|
providers: [SubscriptionService],
|
|
2886
|
-
imports: [
|
|
3380
|
+
imports: [NgComponentOutlet],
|
|
2887
3381
|
}]
|
|
2888
|
-
}]
|
|
3382
|
+
}] });
|
|
2889
3383
|
|
|
2890
3384
|
class RouterOutletComponent {
|
|
2891
3385
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2892
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: RouterOutletComponent, isStandalone: true, selector: "abp-router-outlet", ngImport: i0, template: ` <router-outlet></router-outlet> `, isInline: true, dependencies: [{ kind: "
|
|
3386
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: RouterOutletComponent, isStandalone: true, selector: "abp-router-outlet", ngImport: i0, template: ` <router-outlet></router-outlet> `, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
2893
3387
|
}
|
|
2894
3388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterOutletComponent, decorators: [{
|
|
2895
3389
|
type: Component,
|
|
2896
3390
|
args: [{
|
|
2897
3391
|
selector: 'abp-router-outlet',
|
|
2898
3392
|
template: ` <router-outlet></router-outlet> `,
|
|
2899
|
-
imports: [
|
|
3393
|
+
imports: [RouterOutlet],
|
|
2900
3394
|
}]
|
|
2901
3395
|
}] });
|
|
2902
3396
|
|
|
@@ -3244,20 +3738,20 @@ const DEFAULT_DYNAMIC_LAYOUTS = new Map([
|
|
|
3244
3738
|
]);
|
|
3245
3739
|
|
|
3246
3740
|
class AutofocusDirective {
|
|
3741
|
+
constructor() {
|
|
3742
|
+
this.elRef = inject(ElementRef);
|
|
3743
|
+
this._delay = 0;
|
|
3744
|
+
}
|
|
3247
3745
|
set delay(val) {
|
|
3248
3746
|
this._delay = Number(val) || 0;
|
|
3249
3747
|
}
|
|
3250
3748
|
get delay() {
|
|
3251
3749
|
return this._delay;
|
|
3252
3750
|
}
|
|
3253
|
-
constructor(elRef) {
|
|
3254
|
-
this.elRef = elRef;
|
|
3255
|
-
this._delay = 0;
|
|
3256
|
-
}
|
|
3257
3751
|
ngAfterViewInit() {
|
|
3258
3752
|
setTimeout(() => this.elRef.nativeElement.focus(), this.delay);
|
|
3259
3753
|
}
|
|
3260
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AutofocusDirective, deps: [
|
|
3754
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3261
3755
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: AutofocusDirective, isStandalone: true, selector: "[autofocus]", inputs: { delay: ["autofocus", "delay"] }, ngImport: i0 }); }
|
|
3262
3756
|
}
|
|
3263
3757
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
@@ -3265,15 +3759,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3265
3759
|
args: [{
|
|
3266
3760
|
selector: '[autofocus]',
|
|
3267
3761
|
}]
|
|
3268
|
-
}],
|
|
3762
|
+
}], propDecorators: { delay: [{
|
|
3269
3763
|
type: Input,
|
|
3270
3764
|
args: ['autofocus']
|
|
3271
3765
|
}] } });
|
|
3272
3766
|
|
|
3273
3767
|
class InputEventDebounceDirective {
|
|
3274
|
-
constructor(
|
|
3275
|
-
this.el =
|
|
3276
|
-
this.subscription =
|
|
3768
|
+
constructor() {
|
|
3769
|
+
this.el = inject(ElementRef);
|
|
3770
|
+
this.subscription = inject(SubscriptionService);
|
|
3277
3771
|
this.debounce = 300;
|
|
3278
3772
|
this.debounceEvent = new EventEmitter();
|
|
3279
3773
|
}
|
|
@@ -3283,7 +3777,7 @@ class InputEventDebounceDirective {
|
|
|
3283
3777
|
this.debounceEvent.emit(event);
|
|
3284
3778
|
});
|
|
3285
3779
|
}
|
|
3286
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InputEventDebounceDirective, deps: [
|
|
3780
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InputEventDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3287
3781
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: InputEventDebounceDirective, isStandalone: true, selector: "[input.debounce]", inputs: { debounce: "debounce" }, outputs: { debounceEvent: "input.debounce" }, providers: [SubscriptionService], ngImport: i0 }); }
|
|
3288
3782
|
}
|
|
3289
3783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
|
|
@@ -3292,7 +3786,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3292
3786
|
selector: '[input.debounce]',
|
|
3293
3787
|
providers: [SubscriptionService],
|
|
3294
3788
|
}]
|
|
3295
|
-
}],
|
|
3789
|
+
}], propDecorators: { debounce: [{
|
|
3296
3790
|
type: Input
|
|
3297
3791
|
}], debounceEvent: [{
|
|
3298
3792
|
type: Output,
|
|
@@ -3314,17 +3808,17 @@ class RecordView {
|
|
|
3314
3808
|
}
|
|
3315
3809
|
}
|
|
3316
3810
|
class ForDirective {
|
|
3811
|
+
constructor() {
|
|
3812
|
+
this.tempRef = inject(TemplateRef);
|
|
3813
|
+
this.vcRef = inject(ViewContainerRef);
|
|
3814
|
+
this.differs = inject(IterableDiffers);
|
|
3815
|
+
}
|
|
3317
3816
|
get compareFn() {
|
|
3318
3817
|
return this.compareBy || compare;
|
|
3319
3818
|
}
|
|
3320
3819
|
get trackByFn() {
|
|
3321
3820
|
return this.trackBy || ((index, item) => item.id || index);
|
|
3322
3821
|
}
|
|
3323
|
-
constructor(tempRef, vcRef, differs) {
|
|
3324
|
-
this.tempRef = tempRef;
|
|
3325
|
-
this.vcRef = vcRef;
|
|
3326
|
-
this.differs = differs;
|
|
3327
|
-
}
|
|
3328
3822
|
iterateOverAppliedOperations(changes) {
|
|
3329
3823
|
const rw = [];
|
|
3330
3824
|
changes.forEachOperation((record, previousIndex, currentIndex) => {
|
|
@@ -3420,7 +3914,7 @@ class ForDirective {
|
|
|
3420
3914
|
this.projectItems(items);
|
|
3421
3915
|
}
|
|
3422
3916
|
}
|
|
3423
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ForDirective, deps: [
|
|
3917
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3424
3918
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: ForDirective, isStandalone: true, selector: "[abpFor]", inputs: { items: ["abpForOf", "items"], orderBy: ["abpForOrderBy", "orderBy"], orderDir: ["abpForOrderDir", "orderDir"], filterBy: ["abpForFilterBy", "filterBy"], filterVal: ["abpForFilterVal", "filterVal"], trackBy: ["abpForTrackBy", "trackBy"], compareBy: ["abpForCompareBy", "compareBy"], emptyRef: ["abpForEmptyRef", "emptyRef"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
3425
3919
|
}
|
|
3426
3920
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ForDirective, decorators: [{
|
|
@@ -3428,7 +3922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3428
3922
|
args: [{
|
|
3429
3923
|
selector: '[abpFor]',
|
|
3430
3924
|
}]
|
|
3431
|
-
}],
|
|
3925
|
+
}], propDecorators: { items: [{
|
|
3432
3926
|
type: Input,
|
|
3433
3927
|
args: ['abpForOf']
|
|
3434
3928
|
}], orderBy: [{
|
|
@@ -3458,11 +3952,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3458
3952
|
* @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.
|
|
3459
3953
|
*/
|
|
3460
3954
|
class FormSubmitDirective {
|
|
3461
|
-
constructor(
|
|
3462
|
-
this.formGroupDirective =
|
|
3463
|
-
this.host =
|
|
3464
|
-
this.cdRef =
|
|
3465
|
-
this.subscription =
|
|
3955
|
+
constructor() {
|
|
3956
|
+
this.formGroupDirective = inject(FormGroupDirective, { self: true });
|
|
3957
|
+
this.host = inject(ElementRef);
|
|
3958
|
+
this.cdRef = inject(ChangeDetectorRef);
|
|
3959
|
+
this.subscription = inject(SubscriptionService);
|
|
3466
3960
|
this.debounce = 200;
|
|
3467
3961
|
this.markAsDirtyWhenSubmit = true;
|
|
3468
3962
|
this.ngSubmit = new EventEmitter();
|
|
@@ -3489,7 +3983,7 @@ class FormSubmitDirective {
|
|
|
3489
3983
|
form.markAsDirty();
|
|
3490
3984
|
this.cdRef.detectChanges();
|
|
3491
3985
|
}
|
|
3492
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: FormSubmitDirective, deps: [
|
|
3986
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: FormSubmitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3493
3987
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: FormSubmitDirective, isStandalone: true, selector: "form[ngSubmit][formGroup]", inputs: { debounce: "debounce", notValidateOnSubmit: "notValidateOnSubmit", markAsDirtyWhenSubmit: "markAsDirtyWhenSubmit" }, outputs: { ngSubmit: "ngSubmit" }, providers: [SubscriptionService], ngImport: i0 }); }
|
|
3494
3988
|
}
|
|
3495
3989
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: FormSubmitDirective, decorators: [{
|
|
@@ -3498,9 +3992,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3498
3992
|
selector: 'form[ngSubmit][formGroup]',
|
|
3499
3993
|
providers: [SubscriptionService],
|
|
3500
3994
|
}]
|
|
3501
|
-
}],
|
|
3502
|
-
type: Self
|
|
3503
|
-
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: SubscriptionService }], propDecorators: { debounce: [{
|
|
3995
|
+
}], propDecorators: { debounce: [{
|
|
3504
3996
|
type: Input
|
|
3505
3997
|
}], notValidateOnSubmit: [{
|
|
3506
3998
|
type: Input
|
|
@@ -3523,14 +4015,14 @@ function setDirty(controls) {
|
|
|
3523
4015
|
}
|
|
3524
4016
|
|
|
3525
4017
|
class InitDirective {
|
|
3526
|
-
constructor(
|
|
3527
|
-
this.elRef =
|
|
4018
|
+
constructor() {
|
|
4019
|
+
this.elRef = inject(ElementRef);
|
|
3528
4020
|
this.init = new EventEmitter();
|
|
3529
4021
|
}
|
|
3530
4022
|
ngAfterViewInit() {
|
|
3531
4023
|
this.init.emit(this.elRef);
|
|
3532
4024
|
}
|
|
3533
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InitDirective, deps: [
|
|
4025
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3534
4026
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: InitDirective, isStandalone: true, selector: "[abpInit]", outputs: { init: "abpInit" }, ngImport: i0 }); }
|
|
3535
4027
|
}
|
|
3536
4028
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InitDirective, decorators: [{
|
|
@@ -3538,18 +4030,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3538
4030
|
args: [{
|
|
3539
4031
|
selector: '[abpInit]',
|
|
3540
4032
|
}]
|
|
3541
|
-
}],
|
|
4033
|
+
}], propDecorators: { init: [{
|
|
3542
4034
|
type: Output,
|
|
3543
4035
|
args: ['abpInit']
|
|
3544
4036
|
}] } });
|
|
3545
4037
|
|
|
3546
4038
|
class PermissionDirective {
|
|
3547
|
-
constructor(
|
|
3548
|
-
this.templateRef =
|
|
3549
|
-
this.vcRef =
|
|
3550
|
-
this.permissionService =
|
|
3551
|
-
this.cdRef =
|
|
3552
|
-
this.queue =
|
|
4039
|
+
constructor() {
|
|
4040
|
+
this.templateRef = inject(TemplateRef, { optional: true });
|
|
4041
|
+
this.vcRef = inject(ViewContainerRef);
|
|
4042
|
+
this.permissionService = inject(PermissionService);
|
|
4043
|
+
this.cdRef = inject(ChangeDetectorRef);
|
|
4044
|
+
this.queue = inject(QUEUE_MANAGER);
|
|
3553
4045
|
this.runChangeDetection = true;
|
|
3554
4046
|
this.cdrSubject = new ReplaySubject();
|
|
3555
4047
|
this.rendered = false;
|
|
@@ -3589,7 +4081,7 @@ class PermissionDirective {
|
|
|
3589
4081
|
this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));
|
|
3590
4082
|
this.rendered = true;
|
|
3591
4083
|
}
|
|
3592
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionDirective, deps: [
|
|
4084
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3593
4085
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: PermissionDirective, isStandalone: true, selector: "[abpPermission]", inputs: { condition: ["abpPermission", "condition"], runChangeDetection: ["abpPermissionRunChangeDetection", "runChangeDetection"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
3594
4086
|
}
|
|
3595
4087
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionDirective, decorators: [{
|
|
@@ -3597,12 +4089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3597
4089
|
args: [{
|
|
3598
4090
|
selector: '[abpPermission]',
|
|
3599
4091
|
}]
|
|
3600
|
-
}],
|
|
3601
|
-
type: Optional
|
|
3602
|
-
}] }, { type: i0.ViewContainerRef }, { type: PermissionService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
3603
|
-
type: Inject,
|
|
3604
|
-
args: [QUEUE_MANAGER]
|
|
3605
|
-
}] }], propDecorators: { condition: [{
|
|
4092
|
+
}], propDecorators: { condition: [{
|
|
3606
4093
|
type: Input,
|
|
3607
4094
|
args: ['abpPermission']
|
|
3608
4095
|
}], runChangeDetection: [{
|
|
@@ -3611,12 +4098,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3611
4098
|
}] } });
|
|
3612
4099
|
|
|
3613
4100
|
class ReplaceableTemplateDirective {
|
|
3614
|
-
constructor(
|
|
3615
|
-
this.injector =
|
|
3616
|
-
this.templateRef =
|
|
3617
|
-
this.vcRef =
|
|
3618
|
-
this.replaceableComponents =
|
|
3619
|
-
this.subscription =
|
|
4101
|
+
constructor() {
|
|
4102
|
+
this.injector = inject(Injector);
|
|
4103
|
+
this.templateRef = inject(TemplateRef);
|
|
4104
|
+
this.vcRef = inject(ViewContainerRef);
|
|
4105
|
+
this.replaceableComponents = inject(ReplaceableComponentsService);
|
|
4106
|
+
this.subscription = inject(SubscriptionService);
|
|
3620
4107
|
this.providedData = {
|
|
3621
4108
|
inputs: {},
|
|
3622
4109
|
outputs: {},
|
|
@@ -3720,7 +4207,7 @@ class ReplaceableTemplateDirective {
|
|
|
3720
4207
|
this.defaultComponentSubscriptions = {};
|
|
3721
4208
|
this.defaultComponentRef = null;
|
|
3722
4209
|
}
|
|
3723
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableTemplateDirective, deps: [
|
|
4210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3724
4211
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: ReplaceableTemplateDirective, isStandalone: true, selector: "[abpReplaceableTemplate]", inputs: { data: ["abpReplaceableTemplate", "data"] }, providers: [SubscriptionService], usesOnChanges: true, ngImport: i0 }); }
|
|
3725
4212
|
}
|
|
3726
4213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableTemplateDirective, decorators: [{
|
|
@@ -3729,15 +4216,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3729
4216
|
selector: '[abpReplaceableTemplate]',
|
|
3730
4217
|
providers: [SubscriptionService],
|
|
3731
4218
|
}]
|
|
3732
|
-
}], ctorParameters: () => [
|
|
4219
|
+
}], ctorParameters: () => [], propDecorators: { data: [{
|
|
3733
4220
|
type: Input,
|
|
3734
4221
|
args: ['abpReplaceableTemplate']
|
|
3735
4222
|
}] } });
|
|
3736
4223
|
|
|
3737
4224
|
class StopPropagationDirective {
|
|
3738
|
-
constructor(
|
|
3739
|
-
this.el =
|
|
3740
|
-
this.subscription =
|
|
4225
|
+
constructor() {
|
|
4226
|
+
this.el = inject(ElementRef);
|
|
4227
|
+
this.subscription = inject(SubscriptionService);
|
|
3741
4228
|
this.stopPropEvent = new EventEmitter();
|
|
3742
4229
|
}
|
|
3743
4230
|
ngOnInit() {
|
|
@@ -3746,7 +4233,7 @@ class StopPropagationDirective {
|
|
|
3746
4233
|
this.stopPropEvent.emit(event);
|
|
3747
4234
|
});
|
|
3748
4235
|
}
|
|
3749
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: StopPropagationDirective, deps: [
|
|
4236
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: StopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3750
4237
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: StopPropagationDirective, isStandalone: true, selector: "[click.stop]", outputs: { stopPropEvent: "click.stop" }, providers: [SubscriptionService], ngImport: i0 }); }
|
|
3751
4238
|
}
|
|
3752
4239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: StopPropagationDirective, decorators: [{
|
|
@@ -3755,7 +4242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3755
4242
|
selector: '[click.stop]',
|
|
3756
4243
|
providers: [SubscriptionService],
|
|
3757
4244
|
}]
|
|
3758
|
-
}],
|
|
4245
|
+
}], propDecorators: { stopPropEvent: [{
|
|
3759
4246
|
type: Output,
|
|
3760
4247
|
args: ['click.stop']
|
|
3761
4248
|
}] } });
|
|
@@ -3827,6 +4314,9 @@ Date.prototype.toLocalISOString = function () {
|
|
|
3827
4314
|
|
|
3828
4315
|
function setLanguageToCookie() {
|
|
3829
4316
|
const injector = inject(Injector);
|
|
4317
|
+
const platformId = injector.get(PLATFORM_ID);
|
|
4318
|
+
if (!isPlatformBrowser(platformId))
|
|
4319
|
+
return;
|
|
3830
4320
|
const sessionState = injector.get(SessionStateService);
|
|
3831
4321
|
const document = injector.get(DOCUMENT);
|
|
3832
4322
|
const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);
|
|
@@ -3840,9 +4330,9 @@ const CookieLanguageProvider = provideAppInitializer(() => {
|
|
|
3840
4330
|
});
|
|
3841
4331
|
|
|
3842
4332
|
class LocaleId extends String {
|
|
3843
|
-
constructor(
|
|
4333
|
+
constructor() {
|
|
3844
4334
|
super();
|
|
3845
|
-
this.localizationService =
|
|
4335
|
+
this.localizationService = inject(LocalizationService);
|
|
3846
4336
|
}
|
|
3847
4337
|
toString() {
|
|
3848
4338
|
const { currentLang } = this.localizationService;
|
|
@@ -3858,7 +4348,6 @@ class LocaleId extends String {
|
|
|
3858
4348
|
const LocaleProvider = {
|
|
3859
4349
|
provide: LOCALE_ID,
|
|
3860
4350
|
useClass: LocaleId,
|
|
3861
|
-
deps: [LocalizationService],
|
|
3862
4351
|
};
|
|
3863
4352
|
|
|
3864
4353
|
const IncludeLocalizationResourcesProvider = {
|
|
@@ -3867,9 +4356,9 @@ const IncludeLocalizationResourcesProvider = {
|
|
|
3867
4356
|
};
|
|
3868
4357
|
|
|
3869
4358
|
class RoutesHandler {
|
|
3870
|
-
constructor(
|
|
3871
|
-
this.routes =
|
|
3872
|
-
this.router =
|
|
4359
|
+
constructor() {
|
|
4360
|
+
this.routes = inject(RoutesService);
|
|
4361
|
+
this.router = inject(Router, { optional: true });
|
|
3873
4362
|
this.addRoutes();
|
|
3874
4363
|
}
|
|
3875
4364
|
addRoutes() {
|
|
@@ -3886,7 +4375,7 @@ class RoutesHandler {
|
|
|
3886
4375
|
}
|
|
3887
4376
|
});
|
|
3888
4377
|
}
|
|
3889
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, deps: [
|
|
4378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3890
4379
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, providedIn: 'root' }); }
|
|
3891
4380
|
}
|
|
3892
4381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, decorators: [{
|
|
@@ -3894,9 +4383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3894
4383
|
args: [{
|
|
3895
4384
|
providedIn: 'root',
|
|
3896
4385
|
}]
|
|
3897
|
-
}], ctorParameters: () => [
|
|
3898
|
-
type: Optional
|
|
3899
|
-
}] }] });
|
|
4386
|
+
}], ctorParameters: () => [] });
|
|
3900
4387
|
function flatRoutes(routes, parent) {
|
|
3901
4388
|
if (!routes)
|
|
3902
4389
|
return [];
|
|
@@ -3912,8 +4399,8 @@ function flatRoutes(routes, parent) {
|
|
|
3912
4399
|
}
|
|
3913
4400
|
|
|
3914
4401
|
class ApiInterceptor {
|
|
3915
|
-
constructor(
|
|
3916
|
-
this.httpWaitService =
|
|
4402
|
+
constructor() {
|
|
4403
|
+
this.httpWaitService = inject(HttpWaitService);
|
|
3917
4404
|
}
|
|
3918
4405
|
getAdditionalHeaders(existingHeaders) {
|
|
3919
4406
|
return existingHeaders || new HttpHeaders();
|
|
@@ -3922,7 +4409,7 @@ class ApiInterceptor {
|
|
|
3922
4409
|
this.httpWaitService.addRequest(request);
|
|
3923
4410
|
return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));
|
|
3924
4411
|
}
|
|
3925
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, deps: [
|
|
4412
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3926
4413
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, providedIn: 'root' }); }
|
|
3927
4414
|
}
|
|
3928
4415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, decorators: [{
|
|
@@ -3930,35 +4417,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3930
4417
|
args: [{
|
|
3931
4418
|
providedIn: 'root',
|
|
3932
4419
|
}]
|
|
3933
|
-
}]
|
|
4420
|
+
}] });
|
|
3934
4421
|
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
4422
|
+
const timezoneInterceptor = (req, next) => {
|
|
4423
|
+
const timezoneService = inject(TimezoneService);
|
|
4424
|
+
if (!timezoneService.isUtcClockEnabled) {
|
|
4425
|
+
return next(req);
|
|
3938
4426
|
}
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
4427
|
+
const timezone = timezoneService.timezone;
|
|
4428
|
+
if (timezone) {
|
|
4429
|
+
req = req.clone({
|
|
4430
|
+
setHeaders: {
|
|
4431
|
+
__timezone: timezone,
|
|
4432
|
+
},
|
|
4433
|
+
});
|
|
4434
|
+
}
|
|
4435
|
+
return next(req);
|
|
4436
|
+
};
|
|
4437
|
+
|
|
4438
|
+
const transferStateInterceptor = (req, next) => {
|
|
4439
|
+
const transferState = inject(TransferState);
|
|
4440
|
+
const platformId = inject(PLATFORM_ID);
|
|
4441
|
+
if (req.method !== 'GET') {
|
|
4442
|
+
return next(req);
|
|
4443
|
+
}
|
|
4444
|
+
const stateKey = makeStateKey(req.urlWithParams);
|
|
4445
|
+
if (isPlatformBrowser(platformId)) {
|
|
4446
|
+
const storedResponse = transferState.get(stateKey, null);
|
|
4447
|
+
if (storedResponse) {
|
|
4448
|
+
transferState.remove(stateKey);
|
|
4449
|
+
return of(new HttpResponse({ body: storedResponse, status: 200 }));
|
|
3950
4450
|
}
|
|
3951
|
-
return next.handle(req);
|
|
3952
4451
|
}
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
}]
|
|
3961
|
-
}] });
|
|
4452
|
+
return next(req).pipe(tap(event => {
|
|
4453
|
+
if (isPlatformServer(platformId) && event instanceof HttpResponse) {
|
|
4454
|
+
transferState.set(stateKey, event.body);
|
|
4455
|
+
console.log(`Interceptor: ${req.urlWithParams} is stored in TransferState.`);
|
|
4456
|
+
}
|
|
4457
|
+
}));
|
|
4458
|
+
};
|
|
3962
4459
|
|
|
3963
4460
|
var CoreFeatureKind;
|
|
3964
4461
|
(function (CoreFeatureKind) {
|
|
@@ -4021,7 +4518,7 @@ function provideAbpCore(...features) {
|
|
|
4021
4518
|
provideHttpClient(withInterceptorsFromDi(), withXsrfConfiguration({
|
|
4022
4519
|
cookieName: 'XSRF-TOKEN',
|
|
4023
4520
|
headerName: 'RequestVerificationToken',
|
|
4024
|
-
})),
|
|
4521
|
+
}), withFetch(), withInterceptors([transferStateInterceptor, timezoneInterceptor])),
|
|
4025
4522
|
provideAppInitializer(async () => {
|
|
4026
4523
|
inject(LocalizationService);
|
|
4027
4524
|
inject(LocalStorageListenerService);
|
|
@@ -4044,11 +4541,6 @@ function provideAbpCore(...features) {
|
|
|
4044
4541
|
provide: TitleStrategy,
|
|
4045
4542
|
useExisting: AbpTitleStrategy,
|
|
4046
4543
|
},
|
|
4047
|
-
{
|
|
4048
|
-
provide: HTTP_INTERCEPTORS,
|
|
4049
|
-
useClass: TimezoneInterceptor,
|
|
4050
|
-
multi: true,
|
|
4051
|
-
},
|
|
4052
4544
|
];
|
|
4053
4545
|
for (const feature of features) {
|
|
4054
4546
|
providers.push(...feature.ɵproviders);
|
|
@@ -4067,8 +4559,8 @@ function provideAbpCoreChild(options = {}) {
|
|
|
4067
4559
|
}
|
|
4068
4560
|
|
|
4069
4561
|
class LocalizationPipe {
|
|
4070
|
-
constructor(
|
|
4071
|
-
this.localization =
|
|
4562
|
+
constructor() {
|
|
4563
|
+
this.localization = inject(LocalizationService);
|
|
4072
4564
|
}
|
|
4073
4565
|
transform(value = '', ...interpolateParams) {
|
|
4074
4566
|
const params = interpolateParams.reduce((acc, val) => {
|
|
@@ -4082,7 +4574,7 @@ class LocalizationPipe {
|
|
|
4082
4574
|
}, []) || [];
|
|
4083
4575
|
return this.localization.instant(value, ...params);
|
|
4084
4576
|
}
|
|
4085
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe, deps: [
|
|
4577
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4086
4578
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe, isStandalone: true, name: "abpLocalization" }); }
|
|
4087
4579
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe }); }
|
|
4088
4580
|
}
|
|
@@ -4093,7 +4585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4093
4585
|
args: [{
|
|
4094
4586
|
name: 'abpLocalization',
|
|
4095
4587
|
}]
|
|
4096
|
-
}]
|
|
4588
|
+
}] });
|
|
4097
4589
|
|
|
4098
4590
|
class SafeHtmlPipe {
|
|
4099
4591
|
constructor() {
|
|
@@ -4166,8 +4658,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4166
4658
|
|
|
4167
4659
|
const INJECTOR_PIPE_DATA_TOKEN = new InjectionToken('INJECTOR_PIPE_DATA_TOKEN');
|
|
4168
4660
|
class ToInjectorPipe {
|
|
4169
|
-
constructor(
|
|
4170
|
-
this.injector =
|
|
4661
|
+
constructor() {
|
|
4662
|
+
this.injector = inject(Injector);
|
|
4171
4663
|
}
|
|
4172
4664
|
transform(value, token = INJECTOR_PIPE_DATA_TOKEN, name = 'ToInjectorPipe') {
|
|
4173
4665
|
return Injector.create({
|
|
@@ -4181,7 +4673,7 @@ class ToInjectorPipe {
|
|
|
4181
4673
|
name,
|
|
4182
4674
|
});
|
|
4183
4675
|
}
|
|
4184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, deps: [
|
|
4676
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4185
4677
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, isStandalone: true, name: "toInjector" }); }
|
|
4186
4678
|
}
|
|
4187
4679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, decorators: [{
|
|
@@ -4189,18 +4681,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4189
4681
|
args: [{
|
|
4190
4682
|
name: 'toInjector',
|
|
4191
4683
|
}]
|
|
4192
|
-
}]
|
|
4684
|
+
}] });
|
|
4193
4685
|
|
|
4194
4686
|
class ShortDatePipe extends DatePipe {
|
|
4195
|
-
constructor(
|
|
4687
|
+
constructor() {
|
|
4688
|
+
const locale = inject(LOCALE_ID);
|
|
4689
|
+
const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });
|
|
4196
4690
|
super(locale, defaultTimezone);
|
|
4197
|
-
this.configStateService =
|
|
4691
|
+
this.configStateService = inject(ConfigStateService);
|
|
4198
4692
|
}
|
|
4199
4693
|
transform(value, timezone, locale) {
|
|
4200
4694
|
const format = getShortDateFormat(this.configStateService);
|
|
4201
4695
|
return super.transform(value, format, timezone, locale);
|
|
4202
4696
|
}
|
|
4203
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, deps: [
|
|
4697
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4204
4698
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, isStandalone: true, name: "shortDate" }); }
|
|
4205
4699
|
}
|
|
4206
4700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, decorators: [{
|
|
@@ -4209,26 +4703,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4209
4703
|
name: 'shortDate',
|
|
4210
4704
|
pure: true,
|
|
4211
4705
|
}]
|
|
4212
|
-
}], ctorParameters: () => [
|
|
4213
|
-
type: Inject,
|
|
4214
|
-
args: [LOCALE_ID]
|
|
4215
|
-
}] }, { type: undefined, decorators: [{
|
|
4216
|
-
type: Inject,
|
|
4217
|
-
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
4218
|
-
}, {
|
|
4219
|
-
type: Optional
|
|
4220
|
-
}] }] });
|
|
4706
|
+
}], ctorParameters: () => [] });
|
|
4221
4707
|
|
|
4222
4708
|
class ShortTimePipe extends DatePipe {
|
|
4223
|
-
constructor(
|
|
4709
|
+
constructor() {
|
|
4710
|
+
const locale = inject(LOCALE_ID);
|
|
4711
|
+
const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });
|
|
4224
4712
|
super(locale, defaultTimezone);
|
|
4225
|
-
this.configStateService =
|
|
4713
|
+
this.configStateService = inject(ConfigStateService);
|
|
4226
4714
|
}
|
|
4227
4715
|
transform(value, timezone, locale) {
|
|
4228
4716
|
const format = getShortTimeFormat(this.configStateService);
|
|
4229
4717
|
return super.transform(value, format, timezone, locale);
|
|
4230
4718
|
}
|
|
4231
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, deps: [
|
|
4719
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4232
4720
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, isStandalone: true, name: "shortTime" }); }
|
|
4233
4721
|
}
|
|
4234
4722
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, decorators: [{
|
|
@@ -4237,26 +4725,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4237
4725
|
name: 'shortTime',
|
|
4238
4726
|
pure: true,
|
|
4239
4727
|
}]
|
|
4240
|
-
}], ctorParameters: () => [
|
|
4241
|
-
type: Inject,
|
|
4242
|
-
args: [LOCALE_ID]
|
|
4243
|
-
}] }, { type: undefined, decorators: [{
|
|
4244
|
-
type: Inject,
|
|
4245
|
-
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
4246
|
-
}, {
|
|
4247
|
-
type: Optional
|
|
4248
|
-
}] }] });
|
|
4728
|
+
}], ctorParameters: () => [] });
|
|
4249
4729
|
|
|
4250
4730
|
class ShortDateTimePipe extends DatePipe {
|
|
4251
|
-
constructor(
|
|
4731
|
+
constructor() {
|
|
4732
|
+
const locale = inject(LOCALE_ID);
|
|
4733
|
+
const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });
|
|
4252
4734
|
super(locale, defaultTimezone);
|
|
4253
|
-
this.configStateService =
|
|
4735
|
+
this.configStateService = inject(ConfigStateService);
|
|
4254
4736
|
}
|
|
4255
4737
|
transform(value, timezone, locale) {
|
|
4256
4738
|
const format = getShortDateShortTimeFormat(this.configStateService);
|
|
4257
4739
|
return super.transform(value, format, timezone, locale);
|
|
4258
4740
|
}
|
|
4259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, deps: [
|
|
4741
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4260
4742
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, isStandalone: true, name: "shortDateTime" }); }
|
|
4261
4743
|
}
|
|
4262
4744
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, decorators: [{
|
|
@@ -4265,15 +4747,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4265
4747
|
name: 'shortDateTime',
|
|
4266
4748
|
pure: true,
|
|
4267
4749
|
}]
|
|
4268
|
-
}], ctorParameters: () => [
|
|
4269
|
-
type: Inject,
|
|
4270
|
-
args: [LOCALE_ID]
|
|
4271
|
-
}] }, { type: undefined, decorators: [{
|
|
4272
|
-
type: Inject,
|
|
4273
|
-
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
4274
|
-
}, {
|
|
4275
|
-
type: Optional
|
|
4276
|
-
}] }] });
|
|
4750
|
+
}], ctorParameters: () => [] });
|
|
4277
4751
|
|
|
4278
4752
|
class UtcToLocalPipe {
|
|
4279
4753
|
constructor() {
|
|
@@ -4432,13 +4906,11 @@ class BaseCoreModule {
|
|
|
4432
4906
|
ReplaceableRouteContainerComponent,
|
|
4433
4907
|
RouterOutletComponent,
|
|
4434
4908
|
AbstractNgModelComponent] }); }
|
|
4435
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
|
|
4909
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi(), withFetch())], imports: [CommonModule,
|
|
4436
4910
|
FormsModule,
|
|
4437
4911
|
ReactiveFormsModule,
|
|
4438
4912
|
RouterModule,
|
|
4439
|
-
NgxValidateCoreModule,
|
|
4440
|
-
ReplaceableRouteContainerComponent,
|
|
4441
|
-
RouterOutletComponent, CommonModule,
|
|
4913
|
+
NgxValidateCoreModule, CommonModule,
|
|
4442
4914
|
FormsModule,
|
|
4443
4915
|
ReactiveFormsModule,
|
|
4444
4916
|
RouterModule,
|
|
@@ -4468,7 +4940,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4468
4940
|
...CORE_COMPONENTS,
|
|
4469
4941
|
],
|
|
4470
4942
|
declarations: [],
|
|
4471
|
-
providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())],
|
|
4943
|
+
providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi(), withFetch())],
|
|
4472
4944
|
}]
|
|
4473
4945
|
}] });
|
|
4474
4946
|
/**
|
|
@@ -4573,6 +5045,7 @@ const permissionGuard = (route, state) => {
|
|
|
4573
5045
|
const authService = inject(AuthService);
|
|
4574
5046
|
const permissionService = inject(PermissionService);
|
|
4575
5047
|
const httpErrorReporter = inject(HttpErrorReporterService);
|
|
5048
|
+
const platformId = inject(PLATFORM_ID);
|
|
4576
5049
|
let { requiredPolicy } = route.data || {};
|
|
4577
5050
|
if (!requiredPolicy) {
|
|
4578
5051
|
const routeFound = findRoute(routesService, getRoutePath(router, state.url));
|
|
@@ -4581,6 +5054,10 @@ const permissionGuard = (route, state) => {
|
|
|
4581
5054
|
if (!requiredPolicy) {
|
|
4582
5055
|
return of(true);
|
|
4583
5056
|
}
|
|
5057
|
+
//TODO enable permission check on ssr
|
|
5058
|
+
if (isPlatformServer(platformId)) {
|
|
5059
|
+
return of(true);
|
|
5060
|
+
}
|
|
4584
5061
|
return permissionService.getGrantedPolicy$(requiredPolicy).pipe(filter(Boolean), take(1), tap(access => {
|
|
4585
5062
|
if (!access && authService.isAuthenticated) {
|
|
4586
5063
|
httpErrorReporter.reportError({ status: 403 });
|
|
@@ -4664,419 +5141,135 @@ class PagedAndSortedResultRequestDto extends PagedResultRequestDto {
|
|
|
4664
5141
|
super(initialValues);
|
|
4665
5142
|
}
|
|
4666
5143
|
}
|
|
4667
|
-
class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {
|
|
4668
|
-
constructor(initialValues = {}) {
|
|
4669
|
-
super(initialValues);
|
|
4670
|
-
}
|
|
4671
|
-
}
|
|
4672
|
-
class EntityDto {
|
|
4673
|
-
constructor(initialValues = {}) {
|
|
4674
|
-
for (const key in initialValues) {
|
|
4675
|
-
if (checkHasProp(initialValues, key)) {
|
|
4676
|
-
this[key] = initialValues[key];
|
|
4677
|
-
}
|
|
4678
|
-
}
|
|
4679
|
-
}
|
|
4680
|
-
}
|
|
4681
|
-
class CreationAuditedEntityDto extends EntityDto {
|
|
4682
|
-
constructor(initialValues = {}) {
|
|
4683
|
-
super(initialValues);
|
|
4684
|
-
}
|
|
4685
|
-
}
|
|
4686
|
-
class CreationAuditedEntityWithUserDto extends CreationAuditedEntityDto {
|
|
4687
|
-
constructor(initialValues = {}) {
|
|
4688
|
-
super(initialValues);
|
|
4689
|
-
}
|
|
4690
|
-
}
|
|
4691
|
-
class AuditedEntityDto extends CreationAuditedEntityDto {
|
|
4692
|
-
constructor(initialValues = {}) {
|
|
4693
|
-
super(initialValues);
|
|
4694
|
-
}
|
|
4695
|
-
}
|
|
4696
|
-
/** @deprecated the class signature will change in v8.0 */
|
|
4697
|
-
class AuditedEntityWithUserDto extends AuditedEntityDto {
|
|
4698
|
-
constructor(initialValues = {}) {
|
|
4699
|
-
super(initialValues);
|
|
4700
|
-
}
|
|
4701
|
-
}
|
|
4702
|
-
class FullAuditedEntityDto extends AuditedEntityDto {
|
|
4703
|
-
constructor(initialValues = {}) {
|
|
4704
|
-
super(initialValues);
|
|
4705
|
-
}
|
|
4706
|
-
}
|
|
4707
|
-
/** @deprecated the class signature will change in v8.0 */
|
|
4708
|
-
class FullAuditedEntityWithUserDto extends FullAuditedEntityDto {
|
|
4709
|
-
constructor(initialValues = {}) {
|
|
4710
|
-
super(initialValues);
|
|
4711
|
-
}
|
|
4712
|
-
}
|
|
4713
|
-
class ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto {
|
|
4714
|
-
constructor(initialValues = {}) {
|
|
4715
|
-
super(initialValues);
|
|
4716
|
-
}
|
|
4717
|
-
}
|
|
4718
|
-
class ExtensibleAuditedEntityDto extends ExtensibleCreationAuditedEntityDto {
|
|
4719
|
-
constructor(initialValues = {}) {
|
|
4720
|
-
super(initialValues);
|
|
4721
|
-
}
|
|
4722
|
-
}
|
|
4723
|
-
class ExtensibleAuditedEntityWithUserDto extends ExtensibleAuditedEntityDto {
|
|
4724
|
-
constructor(initialValues = {}) {
|
|
4725
|
-
super(initialValues);
|
|
4726
|
-
}
|
|
4727
|
-
}
|
|
4728
|
-
class ExtensibleCreationAuditedEntityWithUserDto extends ExtensibleCreationAuditedEntityDto {
|
|
4729
|
-
constructor(initialValues = {}) {
|
|
4730
|
-
super(initialValues);
|
|
4731
|
-
}
|
|
4732
|
-
}
|
|
4733
|
-
class ExtensibleFullAuditedEntityDto extends ExtensibleAuditedEntityDto {
|
|
4734
|
-
constructor(initialValues = {}) {
|
|
4735
|
-
super(initialValues);
|
|
4736
|
-
}
|
|
4737
|
-
}
|
|
4738
|
-
class ExtensibleFullAuditedEntityWithUserDto extends ExtensibleFullAuditedEntityDto {
|
|
4739
|
-
constructor(initialValues = {}) {
|
|
4740
|
-
super(initialValues);
|
|
4741
|
-
}
|
|
4742
|
-
}
|
|
4743
|
-
|
|
4744
|
-
class AuthEvent {
|
|
4745
|
-
constructor(type) {
|
|
4746
|
-
this.type = type;
|
|
4747
|
-
this.type = type;
|
|
4748
|
-
}
|
|
4749
|
-
}
|
|
4750
|
-
class AuthSuccessEvent extends AuthEvent {
|
|
4751
|
-
constructor(type, info) {
|
|
4752
|
-
super(type);
|
|
4753
|
-
this.type = type;
|
|
4754
|
-
this.info = info;
|
|
4755
|
-
}
|
|
4756
|
-
}
|
|
4757
|
-
class AuthInfoEvent extends AuthEvent {
|
|
4758
|
-
constructor(type, info) {
|
|
4759
|
-
super(type);
|
|
4760
|
-
this.type = type;
|
|
4761
|
-
this.info = info;
|
|
4762
|
-
}
|
|
4763
|
-
}
|
|
4764
|
-
class AuthErrorEvent extends AuthEvent {
|
|
4765
|
-
constructor(type, reason, params) {
|
|
4766
|
-
super(type);
|
|
4767
|
-
this.type = type;
|
|
4768
|
-
this.reason = reason;
|
|
4769
|
-
this.params = params;
|
|
4770
|
-
}
|
|
4771
|
-
}
|
|
4772
|
-
|
|
4773
|
-
class AbpApiDefinitionService {
|
|
4774
|
-
constructor(restService) {
|
|
4775
|
-
this.restService = restService;
|
|
4776
|
-
this.apiName = 'abp';
|
|
4777
|
-
this.getByModel = (model, config) => this.restService.request({
|
|
4778
|
-
method: 'GET',
|
|
4779
|
-
url: '/api/abp/api-definition',
|
|
4780
|
-
params: { includeTypes: model.includeTypes },
|
|
4781
|
-
}, { apiName: this.apiName, ...config });
|
|
4782
|
-
}
|
|
4783
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, deps: [{ token: RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4784
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, providedIn: 'root' }); }
|
|
4785
|
-
}
|
|
4786
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, decorators: [{
|
|
4787
|
-
type: Injectable,
|
|
4788
|
-
args: [{
|
|
4789
|
-
providedIn: 'root',
|
|
4790
|
-
}]
|
|
4791
|
-
}], ctorParameters: () => [{ type: RestService }] });
|
|
4792
|
-
|
|
4793
|
-
var index = /*#__PURE__*/Object.freeze({
|
|
4794
|
-
__proto__: null
|
|
4795
|
-
});
|
|
4796
|
-
|
|
4797
|
-
class ContainerStrategy {
|
|
4798
|
-
constructor(containerRef) {
|
|
4799
|
-
this.containerRef = containerRef;
|
|
4800
|
-
}
|
|
4801
|
-
prepare() { }
|
|
4802
|
-
}
|
|
4803
|
-
class ClearContainerStrategy extends ContainerStrategy {
|
|
4804
|
-
getIndex() {
|
|
4805
|
-
return 0;
|
|
4806
|
-
}
|
|
4807
|
-
prepare() {
|
|
4808
|
-
this.containerRef.clear();
|
|
4809
|
-
}
|
|
4810
|
-
}
|
|
4811
|
-
class InsertIntoContainerStrategy extends ContainerStrategy {
|
|
4812
|
-
constructor(containerRef, index) {
|
|
4813
|
-
super(containerRef);
|
|
4814
|
-
this.index = index;
|
|
4815
|
-
}
|
|
4816
|
-
getIndex() {
|
|
4817
|
-
return Math.min(Math.max(0, this.index), this.containerRef.length);
|
|
4818
|
-
}
|
|
4819
|
-
}
|
|
4820
|
-
const CONTAINER_STRATEGY = {
|
|
4821
|
-
Clear(containerRef) {
|
|
4822
|
-
return new ClearContainerStrategy(containerRef);
|
|
4823
|
-
},
|
|
4824
|
-
Append(containerRef) {
|
|
4825
|
-
return new InsertIntoContainerStrategy(containerRef, containerRef.length);
|
|
4826
|
-
},
|
|
4827
|
-
Prepend(containerRef) {
|
|
4828
|
-
return new InsertIntoContainerStrategy(containerRef, 0);
|
|
4829
|
-
},
|
|
4830
|
-
Insert(containerRef, index) {
|
|
4831
|
-
return new InsertIntoContainerStrategy(containerRef, index);
|
|
4832
|
-
},
|
|
4833
|
-
};
|
|
4834
|
-
|
|
4835
|
-
class ContentSecurityStrategy {
|
|
4836
|
-
constructor(nonce) {
|
|
4837
|
-
this.nonce = nonce;
|
|
4838
|
-
}
|
|
4839
|
-
}
|
|
4840
|
-
class LooseContentSecurityStrategy extends ContentSecurityStrategy {
|
|
4841
|
-
constructor(nonce) {
|
|
4842
|
-
super(nonce);
|
|
4843
|
-
}
|
|
4844
|
-
applyCSP(element) {
|
|
4845
|
-
if (this.nonce) {
|
|
4846
|
-
element.setAttribute('nonce', this.nonce);
|
|
4847
|
-
}
|
|
4848
|
-
}
|
|
4849
|
-
}
|
|
4850
|
-
class NoContentSecurityStrategy extends ContentSecurityStrategy {
|
|
4851
|
-
constructor() {
|
|
4852
|
-
super();
|
|
4853
|
-
}
|
|
4854
|
-
applyCSP(_) { }
|
|
4855
|
-
}
|
|
4856
|
-
const CONTENT_SECURITY_STRATEGY = {
|
|
4857
|
-
Loose(nonce) {
|
|
4858
|
-
return new LooseContentSecurityStrategy(nonce);
|
|
4859
|
-
},
|
|
4860
|
-
None() {
|
|
4861
|
-
return new NoContentSecurityStrategy();
|
|
4862
|
-
},
|
|
4863
|
-
};
|
|
4864
|
-
|
|
4865
|
-
class ContentStrategy {
|
|
4866
|
-
constructor(content, domStrategy = DOM_STRATEGY.AppendToHead(), contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(), options = {}) {
|
|
4867
|
-
this.content = content;
|
|
4868
|
-
this.domStrategy = domStrategy;
|
|
4869
|
-
this.contentSecurityStrategy = contentSecurityStrategy;
|
|
4870
|
-
this.options = options;
|
|
4871
|
-
}
|
|
4872
|
-
insertElement() {
|
|
4873
|
-
const element = this.createElement();
|
|
4874
|
-
if (this.options && Object.keys(this.options).length > 0) {
|
|
4875
|
-
Object.keys(this.options).forEach(key => {
|
|
4876
|
-
if (this.options[key]) {
|
|
4877
|
-
element[key] = this.options[key];
|
|
4878
|
-
}
|
|
4879
|
-
});
|
|
4880
|
-
}
|
|
4881
|
-
this.contentSecurityStrategy.applyCSP(element);
|
|
4882
|
-
this.domStrategy.insertElement(element);
|
|
4883
|
-
return element;
|
|
4884
|
-
}
|
|
4885
|
-
}
|
|
4886
|
-
class StyleContentStrategy extends ContentStrategy {
|
|
4887
|
-
createElement() {
|
|
4888
|
-
const element = document.createElement('style');
|
|
4889
|
-
element.textContent = this.content;
|
|
4890
|
-
return element;
|
|
5144
|
+
class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {
|
|
5145
|
+
constructor(initialValues = {}) {
|
|
5146
|
+
super(initialValues);
|
|
4891
5147
|
}
|
|
4892
5148
|
}
|
|
4893
|
-
class
|
|
4894
|
-
|
|
4895
|
-
const
|
|
4896
|
-
|
|
4897
|
-
|
|
5149
|
+
class EntityDto {
|
|
5150
|
+
constructor(initialValues = {}) {
|
|
5151
|
+
for (const key in initialValues) {
|
|
5152
|
+
if (checkHasProp(initialValues, key)) {
|
|
5153
|
+
this[key] = initialValues[key];
|
|
5154
|
+
}
|
|
5155
|
+
}
|
|
4898
5156
|
}
|
|
4899
5157
|
}
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
},
|
|
4904
|
-
AppendScriptToHead(content, options) {
|
|
4905
|
-
return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
4906
|
-
},
|
|
4907
|
-
AppendStyleToHead(content, options) {
|
|
4908
|
-
return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
4909
|
-
},
|
|
4910
|
-
PrependStyleToHead(content, options) {
|
|
4911
|
-
return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);
|
|
4912
|
-
},
|
|
4913
|
-
};
|
|
4914
|
-
|
|
4915
|
-
class ContextStrategy {
|
|
4916
|
-
constructor(context) {
|
|
4917
|
-
this.context = context;
|
|
4918
|
-
}
|
|
4919
|
-
setContext(componentRef) {
|
|
4920
|
-
return this.context;
|
|
5158
|
+
class CreationAuditedEntityDto extends EntityDto {
|
|
5159
|
+
constructor(initialValues = {}) {
|
|
5160
|
+
super(initialValues);
|
|
4921
5161
|
}
|
|
4922
5162
|
}
|
|
4923
|
-
class
|
|
4924
|
-
constructor() {
|
|
4925
|
-
super(
|
|
5163
|
+
class CreationAuditedEntityWithUserDto extends CreationAuditedEntityDto {
|
|
5164
|
+
constructor(initialValues = {}) {
|
|
5165
|
+
super(initialValues);
|
|
4926
5166
|
}
|
|
4927
5167
|
}
|
|
4928
|
-
class
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
componentRef.changeDetectorRef.detectChanges();
|
|
4932
|
-
return this.context;
|
|
5168
|
+
class AuditedEntityDto extends CreationAuditedEntityDto {
|
|
5169
|
+
constructor(initialValues = {}) {
|
|
5170
|
+
super(initialValues);
|
|
4933
5171
|
}
|
|
4934
5172
|
}
|
|
4935
|
-
class
|
|
4936
|
-
|
|
4937
|
-
|
|
5173
|
+
/** @deprecated the class signature will change in v8.0 */
|
|
5174
|
+
class AuditedEntityWithUserDto extends AuditedEntityDto {
|
|
5175
|
+
constructor(initialValues = {}) {
|
|
5176
|
+
super(initialValues);
|
|
4938
5177
|
}
|
|
4939
5178
|
}
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
},
|
|
4944
|
-
Component(context) {
|
|
4945
|
-
return new ComponentContextStrategy(context);
|
|
4946
|
-
},
|
|
4947
|
-
Template(context) {
|
|
4948
|
-
return new TemplateContextStrategy(context);
|
|
4949
|
-
},
|
|
4950
|
-
};
|
|
4951
|
-
|
|
4952
|
-
class LoadingStrategy {
|
|
4953
|
-
constructor(path, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
|
|
4954
|
-
this.path = path;
|
|
4955
|
-
this.domStrategy = domStrategy;
|
|
4956
|
-
this.crossOriginStrategy = crossOriginStrategy;
|
|
5179
|
+
class FullAuditedEntityDto extends AuditedEntityDto {
|
|
5180
|
+
constructor(initialValues = {}) {
|
|
5181
|
+
super(initialValues);
|
|
4957
5182
|
}
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
5183
|
+
}
|
|
5184
|
+
/** @deprecated the class signature will change in v8.0 */
|
|
5185
|
+
class FullAuditedEntityWithUserDto extends FullAuditedEntityDto {
|
|
5186
|
+
constructor(initialValues = {}) {
|
|
5187
|
+
super(initialValues);
|
|
4961
5188
|
}
|
|
4962
5189
|
}
|
|
4963
|
-
class
|
|
4964
|
-
constructor(
|
|
4965
|
-
super(
|
|
5190
|
+
class ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto {
|
|
5191
|
+
constructor(initialValues = {}) {
|
|
5192
|
+
super(initialValues);
|
|
4966
5193
|
}
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
5194
|
+
}
|
|
5195
|
+
class ExtensibleAuditedEntityDto extends ExtensibleCreationAuditedEntityDto {
|
|
5196
|
+
constructor(initialValues = {}) {
|
|
5197
|
+
super(initialValues);
|
|
4971
5198
|
}
|
|
4972
5199
|
}
|
|
4973
|
-
class
|
|
4974
|
-
constructor(
|
|
4975
|
-
super(
|
|
5200
|
+
class ExtensibleAuditedEntityWithUserDto extends ExtensibleAuditedEntityDto {
|
|
5201
|
+
constructor(initialValues = {}) {
|
|
5202
|
+
super(initialValues);
|
|
4976
5203
|
}
|
|
4977
|
-
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
return element;
|
|
5204
|
+
}
|
|
5205
|
+
class ExtensibleCreationAuditedEntityWithUserDto extends ExtensibleCreationAuditedEntityDto {
|
|
5206
|
+
constructor(initialValues = {}) {
|
|
5207
|
+
super(initialValues);
|
|
4982
5208
|
}
|
|
4983
5209
|
}
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
},
|
|
4988
|
-
AppendAnonymousScriptToBody(src, integrity) {
|
|
4989
|
-
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
4990
|
-
},
|
|
4991
|
-
AppendAnonymousScriptToHead(src, integrity) {
|
|
4992
|
-
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
4993
|
-
},
|
|
4994
|
-
AppendAnonymousStyleToHead(src, integrity) {
|
|
4995
|
-
return new StyleLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
4996
|
-
},
|
|
4997
|
-
PrependAnonymousScriptToHead(src, integrity) {
|
|
4998
|
-
return new ScriptLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
4999
|
-
},
|
|
5000
|
-
PrependAnonymousStyleToHead(src, integrity) {
|
|
5001
|
-
return new StyleLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
5002
|
-
},
|
|
5003
|
-
};
|
|
5004
|
-
|
|
5005
|
-
class ProjectionStrategy {
|
|
5006
|
-
constructor(content) {
|
|
5007
|
-
this.content = content;
|
|
5210
|
+
class ExtensibleFullAuditedEntityDto extends ExtensibleAuditedEntityDto {
|
|
5211
|
+
constructor(initialValues = {}) {
|
|
5212
|
+
super(initialValues);
|
|
5008
5213
|
}
|
|
5009
5214
|
}
|
|
5010
|
-
class
|
|
5011
|
-
constructor(
|
|
5012
|
-
super(
|
|
5013
|
-
this.containerStrategy = containerStrategy;
|
|
5014
|
-
this.contextStrategy = contextStrategy;
|
|
5215
|
+
class ExtensibleFullAuditedEntityWithUserDto extends ExtensibleFullAuditedEntityDto {
|
|
5216
|
+
constructor(initialValues = {}) {
|
|
5217
|
+
super(initialValues);
|
|
5015
5218
|
}
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
this.
|
|
5022
|
-
return componentRef;
|
|
5219
|
+
}
|
|
5220
|
+
|
|
5221
|
+
class AuthEvent {
|
|
5222
|
+
constructor(type) {
|
|
5223
|
+
this.type = type;
|
|
5224
|
+
this.type = type;
|
|
5023
5225
|
}
|
|
5024
5226
|
}
|
|
5025
|
-
class
|
|
5026
|
-
constructor(
|
|
5027
|
-
super(
|
|
5028
|
-
this.
|
|
5029
|
-
this.
|
|
5227
|
+
class AuthSuccessEvent extends AuthEvent {
|
|
5228
|
+
constructor(type, info) {
|
|
5229
|
+
super(type);
|
|
5230
|
+
this.type = type;
|
|
5231
|
+
this.info = info;
|
|
5030
5232
|
}
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
this.contextStrategy.setContext(componentRef);
|
|
5038
|
-
appRef.attachView(componentRef.hostView);
|
|
5039
|
-
const element = componentRef.hostView.rootNodes[0];
|
|
5040
|
-
this.domStrategy.insertElement(element);
|
|
5041
|
-
return componentRef;
|
|
5233
|
+
}
|
|
5234
|
+
class AuthInfoEvent extends AuthEvent {
|
|
5235
|
+
constructor(type, info) {
|
|
5236
|
+
super(type);
|
|
5237
|
+
this.type = type;
|
|
5238
|
+
this.info = info;
|
|
5042
5239
|
}
|
|
5043
5240
|
}
|
|
5044
|
-
class
|
|
5045
|
-
constructor(
|
|
5046
|
-
super(
|
|
5047
|
-
this.
|
|
5048
|
-
this.
|
|
5241
|
+
class AuthErrorEvent extends AuthEvent {
|
|
5242
|
+
constructor(type, reason, params) {
|
|
5243
|
+
super(type);
|
|
5244
|
+
this.type = type;
|
|
5245
|
+
this.reason = reason;
|
|
5246
|
+
this.params = params;
|
|
5049
5247
|
}
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5248
|
+
}
|
|
5249
|
+
|
|
5250
|
+
class AbpApiDefinitionService {
|
|
5251
|
+
constructor() {
|
|
5252
|
+
this.restService = inject(RestService);
|
|
5253
|
+
this.apiName = 'abp';
|
|
5254
|
+
this.getByModel = (model, config) => this.restService.request({
|
|
5255
|
+
method: 'GET',
|
|
5256
|
+
url: '/api/abp/api-definition',
|
|
5257
|
+
params: { includeTypes: model.includeTypes },
|
|
5258
|
+
}, { apiName: this.apiName, ...config });
|
|
5055
5259
|
}
|
|
5260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5261
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, providedIn: 'root' }); }
|
|
5056
5262
|
}
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
PrependComponentToContainer(component, containerRef, context) {
|
|
5068
|
-
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
5069
|
-
},
|
|
5070
|
-
PrependTemplateToContainer(templateRef, containerRef, context) {
|
|
5071
|
-
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
5072
|
-
},
|
|
5073
|
-
ProjectComponentToContainer(component, containerRef, context) {
|
|
5074
|
-
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
5075
|
-
},
|
|
5076
|
-
ProjectTemplateToContainer(templateRef, containerRef, context) {
|
|
5077
|
-
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
5078
|
-
},
|
|
5079
|
-
};
|
|
5263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, decorators: [{
|
|
5264
|
+
type: Injectable,
|
|
5265
|
+
args: [{
|
|
5266
|
+
providedIn: 'root',
|
|
5267
|
+
}]
|
|
5268
|
+
}] });
|
|
5269
|
+
|
|
5270
|
+
var index = /*#__PURE__*/Object.freeze({
|
|
5271
|
+
__proto__: null
|
|
5272
|
+
});
|
|
5080
5273
|
|
|
5081
5274
|
function validateMinAge({ age = 18 } = {}) {
|
|
5082
5275
|
return (control) => {
|
|
@@ -5217,5 +5410,5 @@ const AbpValidators = {
|
|
|
5217
5410
|
* Generated bundle index. Do not edit.
|
|
5218
5411
|
*/
|
|
5219
5412
|
|
|
5220
|
-
export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpLocalStorageService, AbpTenantService, AbpTitleStrategy, AbpValidators, AbpWindowService, AbstractAuthErrorFilter, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthErrorEvent, AuthErrorFilterService, AuthEvent, AuthGuard, AuthInfoEvent, AuthService, AuthSuccessEvent, 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, CookieLanguageProvider, CoreFeatureKind, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DEFAULT_DYNAMIC_LAYOUTS, DISABLE_PROJECT_NAME, DOM_STRATEGY, DYNAMIC_LAYOUTS_TOKEN, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleLimitedResultRequestDto, ExtensibleObject, ExtensiblePagedAndSortedResultRequestDto, ExtensiblePagedResultRequestDto, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, IncludeLocalizationResourcesProvider, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, InternetConnectionService, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyLocalizationPipe, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalStorageListenerService, LocaleId, LocaleProvider, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, OTHERS_GROUP, 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, SORT_COMPARE_FUNC, SafeHtmlPipe, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, ShowPasswordDirective, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TENANT_NOT_FOUND_BY_NAME, TemplateContextStrategy, TemplateProjectionStrategy, TimeService,
|
|
5413
|
+
export { APP_INIT_ERROR_HANDLERS, APP_STARTED_WITH_SSR, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpCookieStorageService, AbpLocalStorageService, AbpTenantService, AbpTitleStrategy, AbpValidators, AbpWindowService, AbstractAuthErrorFilter, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthErrorEvent, AuthErrorFilterService, AuthEvent, AuthGuard, AuthInfoEvent, AuthService, AuthSuccessEvent, 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, CookieLanguageProvider, CoreFeatureKind, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DEFAULT_DYNAMIC_LAYOUTS, DISABLE_PROJECT_NAME, DOM_STRATEGY, DYNAMIC_LAYOUTS_TOKEN, DefaultQueueManager, DomInsertionService, DomStrategy, DomStrategyService, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleLimitedResultRequestDto, ExtensibleObject, ExtensiblePagedAndSortedResultRequestDto, ExtensiblePagedResultRequestDto, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, IncludeLocalizationResourcesProvider, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, InternetConnectionService, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyLocalizationPipe, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalStorageListenerService, LocaleId, LocaleProvider, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, OTHERS_GROUP, 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, SORT_COMPARE_FUNC, SSR_FLAG, SafeHtmlPipe, ScriptContentStrategy, ScriptLoadingStrategy, ServerCookieParser, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, ShowPasswordDirective, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TENANT_NOT_FOUND_BY_NAME, TemplateContextStrategy, TemplateProjectionStrategy, TimeService, TimezoneService, ToInjectorPipe, TrackByService, TrackCapsLockDirective, UtcToLocalPipe, WebHttpUrlEncodingCodec, asyncAuthGuard, authGuard, checkHasProp, compareFuncFactory, coreOptionsFactory, createGroupMap, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getCurrentTenancyNameFromUrl, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, permissionGuard, provideAbpCore, provideAbpCoreChild, pushValueTo, reloadRoute, setLanguageToCookie, timezoneInterceptor, trackBy, trackByDeep, transferStateInterceptor, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUniqueCharacter, validateUrl, withCompareFuncFactory, withOptions, withTitleStrategy };
|
|
5221
5414
|
//# sourceMappingURL=abp-ng.core.mjs.map
|